1 puntos por GN⁺ 3 시간 전 | 1 comentarios | Compartir por WhatsApp
  • El SDK de Bright Data integrado en apps de consumo, con el consentimiento del usuario, convierte el teléfono o la smart TV en un nodo de salida de proxy residencial y enruta por IP residenciales el tráfico de scraping web de los clientes.
  • Los proxies residenciales son una vía de evasión para llegar a sitios objetivo usando la IP de clientes residenciales de pago, en un entorno donde Cloudflare, DataDome, HUMAN y otros limitan o bloquean solicitudes desde IP de nube conocidas.
  • Las TV conectadas no tienen restricciones de batería, siempre están conectadas a Wi-Fi y operan en espera 24/7, por lo que ofrecen mejores condiciones de proxy que los teléfonos en términos de persistencia y posibilidad de dejarlas desatendidas.
  • El SDK de iOS recibe de un endpoint de configuración sin autenticación criterios de inactividad, límites de ancho de banda y lista de socios, y abre un túnel peer WebSocket para manejar telemetría del estado del dispositivo y tareas de scraping cmd_tun.
  • La defensa se centra en bloquear por DNS proxyjs.* y clientsdk.*, filtrado SNI, detección de huellas digitales de certificados TLS y escaneo del binario de apps con MDM; en iOS, use_netifs impone una limitación que evita la visibilidad basada en VPN.

Panorama general

  • Más allá de la oposición comunitaria a la construcción de centros de datos para aumentar la capacidad de IA, existe una estructura en la que dispositivos dentro del hogar pueden usarse para la recolección distribuida de datos para entrenamiento de IA.
  • Bright Data vende acceso a una red de proxies residenciales de más de 400 millones de direcciones IP domésticas, que sus clientes usan para enrutar tráfico de scraping web, y la fuente de suministro es un SDK integrado en apps de consumo.
  • Ese SDK, con el consentimiento del usuario, convierte teléfonos o smart TV en nodos de salida; el análisis se enfoca en cómo funciona el SDK, en qué plataformas se distribuye y por qué las TV conectadas a internet son adecuadas como proxies de scraping web para modelos de IA.

Por qué importa ahora

  • Las empresas de IA dependen de contenido obtenido por scraping web para preentrenamiento, búsqueda y búsqueda aumentada, grounding de agentes y funciones de búsqueda.
  • La web moderna es un entorno que no se puede scrapear fácilmente desde centros de datos, y Cloudflare, DataDome, HUMAN y otros limitan o bloquean solicitudes desde IP de nube conocidas.
  • La alternativa es un proxy residencial que llega al sitio objetivo desde la IP de un cliente residencial de pago, como una conexión de abonado de Comcast o T-Mobile.
  • Una cita de un reporte de Krebs de octubre de 2025 dice: “La sobreoferta de proxies de Aisuru y otras fuentes está alimentando esfuerzos masivos de recolección de datos vinculados a múltiples proyectos de IA”.
  • Mediciones académicas que se remontan a 2019 concluyen que estas redes se usan abrumadoramente de forma indebida, y el FBI también emitió una alerta oficial a inicios de este año.
  • La mayoría de la cobertura previa se ha enfocado en el suministro ilegal de proxies residenciales, como botnets tipo Aisuru y Kimwolf, apps troyanizadas como PROXYLIB y hardware IoT previamente infectado como IPIDEA.
  • El lado de la oferta legal ha recibido relativamente poco escrutinio, y Bright Data, que según su propio marketing es la mayor red de proxies residenciales del mundo, promociona “150M+ IPs” basadas en SDK con consentimiento integrados en apps asociadas.

Por qué las TV conectadas son proxies ideales

Factor Teléfono Smart TV / CTV
Energía Usa batería la mayor parte del día Siempre conectada a la corriente
Red Wi-Fi + celular Siempre en Wi-Fi, alta velocidad
Tiempo de actividad Intermitente 24/7 en espera
Límite de ancho de banda Bajo, con restricciones celulares Prácticamente ilimitado
Atención del usuario Uso activo A menudo desatendida
UI de consentimiento Texto en la pantalla del teléfono Texto que se navega con las flechas del control remoto de la TV
Supervisión empresarial o familiar Mayor, con MDM, EDR móvil, etc. Prácticamente nula
  • Las TV no llegan a 1% de batería, no cambian frecuentemente entre redes Wi-Fi y no se bloquean mientras el usuario duerme.
  • Algunos publishers socios revelan su relación con Bright Data en sus políticas de privacidad, y la política de privacidad de PlayWorks es un ejemplo.
  • La divulgación en la política de privacidad no es un punto de control adecuado para TV: es difícil desplazarse por documentos legales con las flechas del control remoto, y los cuadros de diálogo de consentimiento dentro de la app no logran comunicar que clientes de pago de Bright Data enrutan tráfico de scraping a través del internet doméstico del usuario.
  • La pantalla de opt-in de la app Petflix para Roku, documentada por The Verge, usa la frase: “Para ver menos anuncios y disfrutar gratis, permite que Bright Data use ocasionalmente los recursos disponibles y la dirección IP de tu dispositivo para descargar datos públicos de la web”.
  • El cuadro de diálogo de Petflix usa la expresión “ocasionalmente”, pero la configuración del SDK públicamente consultable muestra max_bw_monthly_wifi: 200,000,000,000, es decir, un presupuesto base mensual de 200 GB por Wi-Fi.

Entidades que Bright Data identifica como socios

  • Bright Data expone un endpoint de manifiesto de socios que cualquiera puede consultar sin autenticación.
  • Elementos de identificación de alta confianza según fuentes públicas.
Partner ID Entidad Escala
playworks_digital PlayWorks Digital Ltd Más de 400 títulos de juegos para CTV, alcance a unos 250M de hogares con TV a través de Comcast, Sky, Cox, LG, Samsung, Vizio y Roku
cloudtv CloudTV Integrado en más de 125 marcas de TV y más de 15 OEM
longvision_media_hong_kong_co_limited Longvision Media HK (LongTV) 5M de usuarios OTT en Hong Kong y Malasia
viber_media_s_r_l Viber Media S.à r.l. (Rakuten) 250M–820M de usuarios mensuales de Viber Messenger
supercent_inc Supercent Publisher móvil número 1 de Corea por descargas en 2023
moonfrog_labs_private_limited Moonfrog Labs Solo Teen Patti Gold tiene unos 10M de MAU; fue adquirida por 90 millones de dólares
hola_networks Hola Networks Empresa matriz histórica de Bright Data; según el marketing previo de Hola, su pico de usuarios estuvo en un rango de decenas de millones hasta unos 100M+
  • desoline, free_time, ott_studio, global_microtrading, m_m_media, easystaff_lp aparecen en el manifest, pero son elementos difíciles de identificar con fuentes públicas
  • bright_screensavers, bright_videos, brightdata son apps propias de Bright Data
  • El hecho de que esos nombres aparezcan en la configuración de Bright Data sugiere que pudo haber habido alguna integración en algún momento, pero no es evidencia directa de que una app distribuida actualmente por un editor específico lleve el SDK en producción
  • Lo que la lista de socios demuestra directamente es que Bright Data distribuye esta nómina en un endpoint público sin autenticación, y que al menos tres empresas centradas en CTV —como PlayWorks, CloudTV y Longvision— monetizaron dispositivos de usuarios como nodos de salida de proxies residenciales
  • Según sus propios materiales de marketing, PlayWorks afirma tener despliegue de CTV en las principales plataformas de TV y entre distintos ISP, con un alcance de cientos de millones de hogares
Publicidad

Cómo el SDK de Bright Data convierte los dispositivos de los usuarios en nodos de salida de proxies residenciales

  • El SDK de Bright Data es un producto comercial documentado públicamente, con documentación de integración del SDK para publishers y una variante en JavaScript para la web

  • El análisis se basa en la ingeniería inversa de un framework de iOS desplegado y en la instrumentación de tráfico en tiempo de ejecución durante 30 días

  • El SDK se distribuye dentro de apps asociadas en forma del framework de iOS brdsdk.framework

  • Configuración sin autenticación

    • El SDK llama a la siguiente solicitud cada vez que se ejecuta
    • GET https://clientsdk.bright-sdk.com/sdk_config_ios.json/…;
    • El endpoint funciona sin una autenticación significativa, y el servidor solo verifica dos parámetros de consulta: appid, que es el bundle ID de la app, y ver, que es la cadena de versión del SDK
    • Si se proporcionan el bundle ID que puede encontrarse en la ficha de App Store de una app asociada, la cadena de versión del SDK y un UUID generado arbitrariamente, devuelve la misma configuración que recibe un dispositivo real
    • La respuesta incluye flags de funciones, umbrales de detección de inactividad como nivel de batería, topes de CPU/memoria y reglas de Wi‑Fi/celular, niveles de ancho de banda por país y una estructura con el manifiesto del socio
    • Dentro de la configuración existen reglas de inactividad para que el dispositivo obtenga elegibilidad para retransmitir tráfico, flags para enrutar tráfico de pares alrededor de la VPN, un map que vincula instalaciones entre plataformas bajo una sola identidad y límites de ancho de banda por país
  • Túnel de pares

    • Después de obtener la configuración, el SDK abre un WebSocket persistente a la siguiente dirección
    • wss://proxyjs.brdtnet.com:443
    • Al momento de escribir esto, este nombre de host resuelve a las IP de AWS Global Accelerator 3.33.193.183, 15.197.193.114
    • El certificado TLS es CN=*.luminatinet.com, y Luminati Networks era el nombre anterior de Bright Data antes de 2018
    • Incluso después del rebranding de 2018, la infraestructura activa del SDK sigue usando certificados legacy, y el tráfico hacia luminatinet.com o brdtnet.com es una pista para identificar el plano de túneles entre pares, no el uso de Bright Data del lado del cliente
    • El servicio de proxy orientado a clientes actualmente opera bajo dominios de marca brightdata.com, por lo que el tráfico de red hacia luminatinet.com y brdtnet.com corresponde al plano de túneles entre pares
    • El servidor se identifica como uWebSockets: 20
    • El endpoint de pares no exige autenticación para el upgrade y, tras aceptar un WebSocket upgrade válido sobre TLS, envía de inmediato un frame de capa de aplicación que devuelve la IP pública del cliente
    • Flujo del handshake
      1. Servidor → Cliente tunnel_init: crea la sesión y devuelve la IP pública del cliente
      1. Servidor → Cliente cid_set: asigna un identificador de seguimiento de sesión con el formato <IP>-<token>/ls<N>c<M>p443_<IP>_<counter>, confirmado como coincidente con el campo cid en la telemetría de dispositivos reales
      1. Servidor → Cliente status_get: consulta el estado de inactividad del dispositivo, batería, tipo de red y ancho de banda disponible, y el dispositivo responde con telemetría continua como idle, wifi_connected, mobile_connected, mobile_type, roaming, battery_level, using_battery, screen_on, on_call, cpu_usage, mem_usage, raw_bw, bw, ipv6_supported, appid, sdk_version, platform, cid
      Publicidad
      1. Tras completar el handshake, si el dispositivo reporta un estado favorable, la capa de emparejamiento de tareas del servidor puede enviar frames cmd_tun, y el SDK los ejecuta como solicitudes HTTP a sitios de terceros usando como origen la IP residencial del usuario
    • Todos los frames del WebSocket son JSON plano con un envelope fijo
    • {"type": "ipc_call"|"ipc_post"|"ipc_result"|"ipc_error","cmd": <command>, "cookie": <correlation-id>,"err_code": 0, "msg": { ...payload... }}
    • Comandos extraídos del binario y verificados en comunicaciones reales
    • | Dirección | cmd | Propósito |
    • |---|---|---|
    • | Server → Client | tunnel_init | Apertura de sesión, eco de IP pública |
    • | Server → Client | cid_set | Asignación del identificador de sesión |
    • | Server → Client | status_get | Sondeo de inactividad, batería y ancho de banda del dispositivo |
    • | Server → Client | cmd_tun / tun | Entrega de trabajos de scraping |
    • | Server → Client | dns | Solicitud de resolución DNS del destino |
    • | Server → Client | consent | Solicitud de estado de consentimiento |
    • | Client → Server | status_send | Heartbeat periódico del estado del dispositivo |
    • | Client → Server | tun_report / tun_ack / tun_fin | Respuestas del ciclo de vida del trabajo de relay |
    • | Client → Server | tunnel_init_decline | Rechazo de sesión |
    • | Client → Server | logs | Envío de logs de diagnóstico al servidor |
    • No hay firma de mensajes, HMAC, certificados de cliente ni attestation del dispositivo, y en la práctica lo único que separa a los pares que reciben trabajo real son la capa TLS y los filtros de reputación de IP del servidor
    • Para lectores familiarizados con el diseño de protocolos de malware comercial, el nivel de seguridad es en la práctica inferior al de un C2 típico
  • Qué considera el SDK como “inactivo”

    • La configuración especifica las reglas de estado del dispositivo que permiten retransmitir tráfico de otras personas
    "idle_metrics": {
      "ignore_screen_on": true,
      "ignore_on_call": true,
      "max_bw_ratio": 1,
      "min_battery": 0.2,
      "wifi_on_battery": true,
      "min_battery_wifi": 0.2,
      "max_cpu_usage": 70,
      "max_mem_usage": 90,
      "mem_screen_off": true,
      "idle_timeout": 30,
      "not_idle_timeout": 10
    }
    
    • Debido a los flags ignore_screen_on y ignore_on_call, “inactivo” no significa que el usuario esté lejos del dispositivo, sino que CPU, memoria y batería están dentro de los umbrales del SDK
    • Incluso si el usuario está en una llamada o leyendo activamente la pantalla, el estado se considera inactivo para fines de relay
  • Vinculación de identidad entre plataformas

    • La configuración contiene el siguiente map dual_pairing
    Publicidad
    "dual_pairing": {
      "ios_com.brd.earnapp": ["win_earnapp.com", "mac_com.earnapp"]
    }
    
    • Este map es una estructura de vinculación del lado del servidor que agrupa instalaciones de iOS, Windows y macOS de la misma marca como una sola entidad
    • El campo http3_enabled: true es un flag para transporte de pares basado en QUIC, y versiones futuras podrían mover el túnel de pares de TCP/443 a UDP/443
    • Los defensores que detectan el WebSocket mediante rastreo de conexiones TCP podrían ver rota su forma de detección si se migra a UDP/443
  • Evasión de inspección

    • El flag use_netifs: true en la configuración del SDK es la condición que hace que el código binario del SDK construya NWConnection sobre interfaces requeridas específicas en lugar de la ruta predeterminada del sistema
    • Las interfaces requeridas son en0 para Wi‑Fi o pdp_ip0 para celular
    • En iOS, este método evita por completo la interfaz tun0 de una VPN configurada, y aunque otro tráfico HTTPS de la app pase por la VPN, el túnel de pares no atraviesa la VPN configurada por el usuario
  • El entorno de investigación de interceptación TLS transparente capturó todas las llamadas HTTPS del SDK, pero no logró capturar el túnel peer proxyjs.brdtnet.com:443 aunque el puerto 443 fue redirigido explícitamente al inspector

    • La evasión usa la API documentada de Apple NWParameters.requiredInterface
    • El SDK usa dos evasiones independientes de inspección
    • Plano de control: la obtención de configuración y los pings de telemetría se basan en las primitivas CFHTTPMessage de CFNetwork en lugar de URLSession y NSURLConnection, desactivando la instrumentación a nivel URLSession, el swizzling, las network extension y las subclases de URLProtocol, comunes en herramientas de seguridad para apps móviles, mientras sigue respetando el proxy del sistema, lo que mantiene visibilidad para investigadores de interceptación TLS
    • Plano de datos: el túnel peer se basa en NWConnection con la interfaz física configurada como interfaz obligatoria, desactivando la VPN y garantizando que el scraping se ejecute desde una IP residencial
    • El canal más sensible para los equipos de seguridad que usan MDM, inspección de tráfico basada en VPN corporativa o controles parentales del router doméstico está diseñado para eludir la capa de visibilidad

Niveles por país

  • La configuración incluye umbrales de ancho de banda por país
Publicidad
País Batería mínima para relay Límite diario Límite mensual
Uzbekistan 1% 1GB 30GB
Oman 1% 1GB 30GB
Qatar 20% 40MB 250MB
UAE 20% 40MB 250MB
default, worldwide 20% 50MB 500MB
  • Los dispositivos de Uzbekistan y Oman permiten relay hasta con 1% de batería; el límite diario es 20 veces el valor predeterminado y el mensual es 60 veces el valor predeterminado
  • Los dispositivos de Qatar y UAE quedan restringidos con límites más bajos que el valor predeterminado
  • No es posible confirmar por qué los niveles por país están configurados de esta forma; solo se puede especular
  • Incluso la asignación predeterminada global permite 500MB mensuales de tráfico de otras personas a través del internet doméstico del usuario

Configuración de pruebas y metodología

  • Durante 30 días se realizó captura con un proxy de interceptación TLS en dispositivos iOS que ejecutaban apps asociadas instaladas con consentimiento; una app de ejemplo fue XYO COIN, que integra Bright SDK
  • Se realizó análisis estático de brdsdk.framework version 1.532.120, para el binario iOS arm64
  • Los nombres de host específicos de Bright Data, huellas de certificados e infraestructura TLS son observables públicamente por cualquiera que realice las mismas solicitudes
  • El documento no incluye datos de identificación por sesión de la flota o clientes de investigación

Cronología

  • El 11 de mayo de 2026 se envió un correo de aviso previo a publicación a privacy@brightdata.com
  • Hasta el momento de la publicación no hubo respuesta a ese aviso

Enfoques de defensa

  • El tráfico deja un fingerprint claro en el perímetro de red, y el SDK está diseñado para dejar símbolos identificables en el binario de la app
  • Enfoque 1: bloqueo por DNS, una forma simple y efectiva para dispositivos que enrutan por la red
    • proxyjs.brdtnet.com
    • proxyjs.luminatinet.com
    • proxyjs.bright-sdk.com
    • clientsdk.bright-sdk.com
    • clientsdk.brdtnet.com
  • Bloquear proxyjs.* interrumpe los túneles peer y no afecta a clientes que usen legítimamente el servicio de proxy de Bright Data para clientes en otros dominios
  • Enfoque 2: filtrado TLS SNI, que bloquea o alerta sobre handshakes TLS cuyo server_name coincida con *.brdtnet.com, *.luminatinet.com, *.luminati.io
  • El filtrado SNI funciona en el perímetro de red sin inspección TLS
  • Enfoque 3: detección por huella de certificado TLS, que bloquea o alerta según las siguientes huellas
    • .brdtnet.com → SHA256 313ce4ec7d5a51e5…
    • .luminatinet.com → SHA256 5028612e625befea…
  • Las huellas de certificados son estables hasta que Sectigo reemplace los certificados, y los certificados actuales son válidos hasta mediados de 2026
  • Debido a las restricciones relacionadas con use_netifs, los tres niveles solo funcionan cuando el tráfico cruza el perímetro de red
  • Cuando un dispositivo iOS usa red celular, el binding use_netifs del SDK hace posible que el tráfico peer evite por completo el Wi‑Fi corporativo
  • Un control complementario para flotas de dispositivos administrados es el escaneo del binario de apps basado en MDM: buscar en las apps instaladas los símbolos de Swift BrdWebSocketFacade y BrdNetwork.DNSResolver, y prohibir en dispositivos corporativos las apps que contengan esos símbolos
  • Los usuarios domésticos preocupados por una smart TV o app móvil específica pueden bloquear esos nombres de host en la configuración DNS del router
  • Ejemplos de herramientas de bloqueo: Pi-hole, NextDNS, Cloudflare Gateway o funciones equivalentes del ISP

1 comentarios

 
GN⁺ 3 시간 전
Opiniones de Lobste.rs
  • Hablando de este protocolo, crear un honeypot inverso que voluntariamente devuelva datos basura generados aleatoriamente en cada solicitud podría convertirse en un divertido proyecto de vibe coding para alguien a quien le sobren tokens

    • Ni siquiera parece necesario implementar el protocolo. Viendo los logs, una parte importante de estos proxies residenciales fracasa por completo a la hora de ocultarse, así que se les puede enviar datos basura sin dificultad
      Ni siquiera hace falta vibe coding; ya existen decenas de herramientas capaces de hacer esto. Muchas de ellas llevan más de un año suministrando datos basura interminables a este tipo de proxies
  • No entiendo en absoluto por qué alguien conectaría a internet una TV o cualquier otro electrodoméstico. No hay una buena razón para hacerlo

    • La gente ve servicios de streaming en la TV. Conectar la TV a internet es la forma más fácil de hacerlo