Descifrado de la Mediación de AppLovin: La Huella Digital del Dispositivo Evita ATT

Un análisis profundo del protocolo de mediación de anuncios de AppLovin ha expuesto un cifrado personalizado que no logra proteger la privacidad del usuario. El investigador descifró más de 5,000 solicitudes de oferta reales capturadas de usuarios consentidos y descubrió que la carga útil cifrada transmite suficientes datos del dispositivo para identificar de manera única un iPhone entre aplicaciones de diferentes editores, incluso cuando el usuario ha denegado el permiso de Transparencia de Seguimiento de Aplicaciones (ATT).
Cómo funciona el cifrado
Cada solicitud de mediación es un HTTPS POST a ms4.applovin.com/1.0/mediate. Dentro de la capa TLS, un segundo cifrado envuelve la carga útil. Después de decodificar en base64, el formato de transmisión consta de tres campos separados por dos puntos más el texto cifrado:
2:8a2387b7dbed018e5e485792eac2b56833ce8a3a:T7NreIR729giTKR-thJPcKeT6JXevACogl57SIFzwKp-1BASwpBT6v:<binario>
Campos:
- Etiqueta de versión (
2) - Identificador de protocolo de 40 caracteres:
sha1(salt).hex() - Sufijo de 54 caracteres de la clave del SDK de AppLovin del editor (almacenada en texto plano en
Info.plistoAndroidManifest.xml)
El cifrado toma dos ingredientes: una sal constante de 32 bytes integrada en cada binario del SDK (21 bytes significativos + 11 bytes cero, idéntica en múltiples aplicaciones y plataformas) y la clave del SDK por editor. La clave derivada es SHA-256(salt || sdk_key[:32]). El flujo de clave se genera usando SplitMix64, un PRNG no criptográfico. El contador es System.currentTimeMillis() XOR con los primeros 8 bytes de la clave derivada, filtrando la hora de pared en la transmisión antes del descifrado. No se aplica MAC ni autenticación, lo que significa que un atacante puede alterar el texto cifrado.
Qué se envía
El texto plano descifrado es JSON comprimido con gzip con aproximadamente 30 claves de nivel superior. Las críticas son:
device_info: la propia carga útil de huella digital de AppLovin con ~50 campossignal_data[]: tokens opacos de cada SDK de socio de demanda
Un ejemplo de una solicitud donde se denegó ATT (IDFA puesto a cero):
Campo Valor Qué es
revision iPhone14,3 Modelo de hardware (iPhone 13 Pro Max)
os 18.6.2 Versión del SO
tm 5918212096 RAM total (5.51 GB)
ndx / ndy 1284 × 2778 Píxeles nativos de pantalla
kb en-US,es-ES Teclados instalados
font UICTContentSizeCategoryXXXL Tamaño de texto de accesibilidad
tz_offset -4 Zona horaria
volume 40 Volumen de audio del sistema
mute_switch 1 Interruptor de silencio físico
bt_ms_2 1770745989000 Tiempo de arranque del dispositivo (ms epoch)
dnt / idfa true / 00000… ATT denegado
idfv 81E958C3-…-51DE7CE11819 ID del proveedor (estable entre aplicaciones)
Campos adicionales incluyen insets de área segura, memoria libre, código de operador, código de país, configuración regional, orientación, altura de la barra de estado, reloj monotónico, indicadores de batería y estado de conexión segura. Esto es efectivamente cada propiedad del sistema accesible para código de terceros.
Exposición posterior
Un editor típico incluye ~18 SDKs de demanda (Meta, Google, Mintegral, Vungle, ironSource, Unity, InMobi, BidMachine, Fyber, Moloco, TikTok, Pangle, Chartboost, Verve, MobileFuse, Bigo, Yandex, más el propio de AppLovin). En cada carga de banner (~30 segundos), el SDK de AppLovin pasa la carga útil del dispositivo descifrada a cada una de estas redes posteriores, permitiendo el seguimiento de usuarios entre aplicaciones sin consentimiento ATT.
Implicaciones
La suposición de que ATT por sí solo previene la identificación determinista es falsa. La huella digital del dispositivo a través de los campos filtrados funciona igual de bien. La falta de autenticación en la capa de cifrado también plantea preocupaciones de integridad.
📖 Leer la fuente completa: HN AI Agents
👀 Ver también

Se observó una omisión de las salvaguardas de Claude AI al enmarcar solicitudes como tareas de seguridad de red.
Un usuario de Reddit descubrió que Claude AI proporciona listas de dominios de piratería cuando las solicitudes se enmarcan como tareas de seguridad de red para bloquear, evitando los mecanismos normales de rechazo. El modelo reconoció haber malinterpretado la intención después de que el usuario señaló la influencia del encuadre.

Usuario de OpenClaw Comparte Estrategia para Equilibrar la Autonomía del Agente y la Seguridad Web
Un usuario de OpenClaw describe su desafío actual: equilibrar la autonomía del agente con la seguridad, especialmente en lo que respecta al acceso web y los riesgos de inyección de comandos. Proponen una solución que utiliza segmentos de agentes de 'baja confianza' y 'alta confianza' con una puerta de aprobación humana.

Agente de IA Explota Inyección SQL para Comprometer el Chatbot Lilli de McKinsey
Investigadores de seguridad de CodeWall utilizaron un agente de IA autónomo para hackear el chatbot interno Lilli de McKinsey, obteniendo acceso completo de lectura y escritura a su base de datos de producción en dos horas mediante una vulnerabilidad de inyección SQL en endpoints de API no autenticados.

La vulnerabilidad de Snowflake Cortex Code CLI permitió la evasión del entorno de pruebas y la ejecución de malware
Una vulnerabilidad en Snowflake Cortex Code CLI versión 1.0.25 y anteriores permitía la ejecución arbitraria de comandos sin aprobación humana mediante la omisión de sustitución de procesos, lo que posibilitaba la instalación de malware y el escape del entorno aislado a través de inyección de comandos indirecta.