Resultados del análisis tras interceptar el tráfico de red de la app oficial de la Casa Blanca
(atomic.computer)- Se capturó el tráfico HTTPS real de la app de iOS de la Casa Blanca con un proxy MITM para analizar con qué servidores y datos se comunica
- La app se comunica no solo con whitehouse.gov, sino también con 31 hosts de terceros como Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook y Twitter
- Hacia OneSignal se envía de forma continua información de perfilado de usuario como idioma, zona horaria, IP, modelo del dispositivo y cantidad de sesiones
- A través del cargador de widgets de Elfsight se ejecutan scripts externos, y también funciona dentro de la app código de seguimiento publicitario de Google DoubleClick
- Aunque en el manifiesto de privacidad de la app figura “sin recopilación de datos”, en la práctica se realizan múltiples rastreos y transferencias de datos a terceros
Resumen del análisis de tráfico de red
- Se capturó y analizó el tráfico de red de la app oficial de iOS de la Casa Blanca con un proxy MITM (man-in-the-middle)
- En un entorno macOS se instaló mitmproxy y se registró todo el tráfico HTTPS del iPhone a través del proxy
- La versión de la app era v47.0.4 (build 81) y se recorrieron por completo las pestañas Home, News, Live, Social y Explore
- El tráfico se descifró y registró sin alteraciones, siguiendo un uso normal de un usuario común
Servidores a los que se conectó la app
- En una sola sesión, la app envió solicitudes a 31 hosts únicos (excluyendo el tráfico del sistema iOS)
- De un total de 206 solicitudes, solo 48 (23%) se enviaron a whitehouse.gov
- Las 158 restantes (77%) se enviaron a servicios de terceros como Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook y Twitter
- Principales destinos de las solicitudes
- whitehouse.gov: API de WordPress (noticias, inicio, galería, etc.)
- YouTube: inserción de videos y miniaturas
- Elfsight: carga de widgets, recursos estáticos, almacenamiento de archivos y API de arranque
- OneSignal: analítica y perfilado de usuarios
- Facebook/Twitter CDN: carga de imágenes
- Google APIs y DoubleClick: publicidad y seguimiento
Datos enviados a OneSignal
- Al ejecutar la app, se envía un cuerpo de solicitud HTTPS a
api.onesignal.com- Información incluida: idioma, zona horaria, país, dirección IP, hora de primer uso y de última actividad, modelo del dispositivo, versión del SO, tipo de red (WiFi/celular), operador, si tiene jailbreak, cantidad de sesiones, duración de sesión e identificador único
- En cada ejecución de la app se envían múltiples solicitudes PATCH para actualizar el perfil
- En la primera ejecución hubo 18 solicitudes PATCH y en la sesión completa se confirmaron 9 solicitudes a OneSignal
- Secuencia: consulta del perfil existente con GET → actualización de la información de sesión con PATCH
- OneSignal registra de forma continua la IP por sesión, la hora de actividad, la cantidad de sesiones y la duración de la sesión
- Si cambia la dirección IP, se actualiza el perfil
- La marca de tiempo
first_activeno cambia después del momento de la instalación
- En consecuencia, OneSignal mantiene un perfil persistente por usuario y rastrea patrones de uso de la app y el entorno de red
- El User-Agent del tráfico es
WhiteHouse/81 CFNetwork/3860.400.51 Darwin/25.3.0
Tráfico relacionado con Elfsight
- En el tráfico real también se confirmaron 6 widgets y un cargador JavaScript de 2 etapas detectados en el análisis estático
- Al abrir la pestaña Social, la app se conecta a 13 dominios de Elfsight
elfsightcdn.com,core.service.elfsight.com,static.elfsight.com,storage.elfsight.com,widget-data.service.elfsight.com,video-proxy.wu.elfsightcompute.com, etc.
- Al enviar cada ID de widget mediante la solicitud
/p/boot/, el servidor devuelve una lista de scripts a ejecutar (arregloassets)- Ejemplo: TikTok →
tiktokFeed.js, Instagram →instashow.js, Facebook →facebookFeed.js, YouTube →yottie.js
- Ejemplo: TikTok →
- La función
loadAssetsde la app inserta y ejecuta cada URL como<script>- Es una estructura donde el servidor decide qué código se ejecuta
- Durante la sesión, los servidores de Elfsight configuran más de 10 cookies
- Incluyen
elfsight_viewed_recently, cookies de seguimiento de Cloudflare (_cfuvid,__cf_bm) e identificadores de sesión
- Incluyen
Seguimiento publicitario de Google DoubleClick
- Al incrustar YouTube, también se carga la infraestructura de seguimiento publicitario de Google
- Se confirmaron solicitudes a
googleads.g.doubleclick.netystatic.doubleclick.net
- Se confirmaron solicitudes a
- DoubleClick es la plataforma de publicidad y seguimiento de Google,
y dentro de la app oficial de la Casa Blanca se ejecuta código de seguimiento publicitario
- Esto no está especificado en el manifiesto de privacidad de la app
Desajuste entre el manifiesto de privacidad y el comportamiento real
- Configuración de privacidad declarada por la app:
NSPrivacyCollectedDataTypes: [] NSPrivacyTracking: false - Transferencias de datos confirmadas en la sesión real:
- Envío a OneSignal de modelo del dispositivo, SO, IP, zona horaria, idioma, cantidad de sesiones, duración de sesión e identificador único
- Conexión a 13 dominios de Elfsight y recepción de más de 10 cookies de seguimiento
- Ejecución de código de seguimiento publicitario de Google DoubleClick
- Solicitudes a Facebook, Twitter/X, YouTube y Google API
- En consecuencia, aunque la app figura como “sin recopilación de datos”, en la práctica se realizan múltiples rastreos y transferencias de datos a terceros
Metodología del análisis
- Herramienta de proxy: mitmproxy (mitmdump)
- Entorno: macOS, iPhone(iOS), misma red WiFi
- Certificado: se añadió la CA de mitmproxy a la configuración de confianza de iOS
- Alcance de la captura: tráfico HTTPS generado al recorrer por completo las 5 pestañas de la app
- Hubo alteración o no: no, solo se observó el tráfico
- Tratamiento de datos personales: la IP, identificadores del dispositivo y OneSignal ID fueron enmascarados en la publicación
- No hubo intrusión ni manipulación del servidor, solo se registraron las comunicaciones voluntarias de la app
Investigación relacionada
- Informe de análisis estático de la app de iOS de la Casa Blanca
- Resultados del análisis de Thereallo de la versión Android
Presentación de Atomic Computer
- Atomic Computer es una empresa que ofrece servicios de ciberseguridad, infraestructura y desarrollo
- Realiza evaluaciones y análisis de seguridad de aplicaciones móviles
1 comentarios
Comentarios de Hacker News
Del total de solicitudes a terceros, 43% están relacionadas con Google (incluyendo YouTube, Fonts y Analytics), y si se suman Facebook y Twitter llega a alrededor de 55%
Es problemático que una app gubernamental incluya demasiado tracking o código de analítica, pero no me parece tan grave usar Google Fonts o incrustaciones de YouTube
Por el título esperaba algo más impactante, como dominios de Palantir o ICE, pero que sea Google/Facebook se siente algo tibio
El título debería enfocarse no solo en “77% son solicitudes a terceros”, sino en la naturaleza y gravedad de esas solicitudes
Por cierto, atomic.computer también usa Google Fonts y Analytics. Antes de presentar toda solicitud a terceros como algo malo, también habría que revisar su propio sitio
Al final, pueden decidir por sí mismos qué datos rastrear por medio de la app, y hasta podrían recolectarlos como si los “lavaran” a través de proveedores de tracking comunes
Las solicitudes relacionadas con Google parecen haberse incluido por transparencia, no como un intento de atacar la app de la White House
atomic.computer no dijo que las solicitudes a terceros sean inherentemente malas; solo las analizó como un mecanismo de recolección y rastreo de datos
Los usuarios no pueden controlar cómo se usan sus datos una vez recolectados, y al final el problema central es la falta de control
Dicen que instalaron mitmproxy en una Mac y enrutaron hacia ahí el tráfico del iPhone para descifrar HTTPS
Me dio curiosidad si realmente es tan fácil hacer que el iPhone confíe en un certificado de usuario
En Android, inspeccionar el tráfico de red es bastante engorroso
Experimentos como este muestran bien por qué deberíamos tener control sobre nuestros dispositivos. Tenemos derecho a saber a dónde van nuestros datos y qué contenido se está enviando
También me hizo recordar el caso de Zoom enviando tráfico a China, o cuando Facebook rastreaba la navegación dentro de la app
Eso sí, hay excepciones si la app usa su propio OpenSSL o aplica certificate pinning
Las apps grandes como Facebook o Twitter casi siempre usan pinning, pero una app simple como esta no
Aun así, es difícil saltarse el pinning, y las plataformas que permiten instalar tus propias apps llevan ventaja
En casos con pinning fuerte, como las apps bancarias, hace falta un dispositivo rooteado
Incluso da para imaginar que eso se usara como datos de entrenamiento para deepfakes
Hay hilos de discusión anteriores relacionados
Discusión previa 1, Discusión previa 2
Yo bloqueo la mayoría de los dominios publicitarios (por ejemplo, doubleclick.net) a nivel DNS
Sorprende que la mayoría de los sitios web, incluidos los de noticias, abran tantas conexiones a terceros
atomic.computer también intenta cargar Cloudflareinsights y Google Fonts, pero en mi red quedan bloqueados
Estas solicitudes son una de las razones principales por las que Google puede rastrear a los usuarios en todo Internet
A las apps gubernamentales se les debería exigir un estándar muchísimo más alto que a una app B2C común
Cargar Google Fonts está bien, pero enviar telemetría a OneSignal o Facebook es otra cosa
En Australia, por las normas PSPF e ISM, los datos gubernamentales no deberían transmitirse a externos no confiables
Una app así reprobaría de inmediato una evaluación IRAP
La solución es simple: alojar las fuentes por cuenta propia, usar analítica de 1st-party y tratar toda solicitud externa como un vector de fuga de datos
La mayoría de las apps B2C también tienen más de 50% de solicitudes a terceros
El 77% de la app de la White House no sorprende tanto, pero el problema era que en la App Store declararon mal los apartados de recolección de datos
Después lo corrigieron y ahora aparece correctamente
Las apps gubernamentales sí deberían someterse a estándares altos, pero puede que la cifra de 77% no sea tan distinta del promedio de la industria
Como muchísimas apps incluyen código publicitario y trackers, es posible que esto esté dentro de lo normal
Se puede revisar la lista de SDK que usa la app en AppGoblin
El Privacy manifest dice “no data collected”, pero en realidad envía a OneSignal el modelo del dispositivo, la IP, el número de sesiones y un ID de rastreo
Eso es claramente un caso de certificación falsa (false attestation)
El siguiente paso probablemente sea agregar anuncios