2 puntos por GN⁺ 27 일 전 | 1 comentarios | Compartir por WhatsApp
  • 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_active no 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 (arreglo assets)
    • Ejemplo: TikTok → tiktokFeed.js, Instagram → instashow.js, Facebook → facebookFeed.js, YouTube → yottie.js
  • La función loadAssets de 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

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.net y static.doubleclick.net
  • 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

 
GN⁺ 27 일 전
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

    • No está prohibido que ICE o Palantir compren datos a Google o Facebook
      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
    • El artículo en realidad se enfocaba más en las solicitudes a OneSignal y Elfsight que en Google o YouTube
      Las solicitudes relacionadas con Google parecen haberse incluido por transparencia, no como un intento de atacar la app de la White House
    • Ahora mismo se ven intentos del gobierno de empujar a EE. UU. hacia una dirección autoritaria, pero creo que es un sistema tan grande que no cambia fácilmente
    • La respuesta de “atomic.computer también usa solicitudes a terceros” es débil porque ataca al mensajero
      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

    • iOS todavía confía por defecto en los certificados instalados por el usuario
      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
    • Configurar mitmproxy en iOS es mucho más fácil que en Android
      Aun así, es difícil saltarse el pinning, y las plataformas que permiten instalar tus propias apps llevan ventaja
    • El proceso de instalar la CA sí es algo molesto, pero si la app no usa pinning no es difícil interceptar el tráfico
      En casos con pinning fuerte, como las apps bancarias, hace falta un dispositivo rooteado
    • Lo interesante es que algunas comunidades de seguridad critican los proxies MITM, pero al mismo tiempo están impregnadas de una visión centrada en las empresas
    • Cuando Zoom enviaba tráfico a China, hasta pudo haber terminado allá video de reuniones del gobierno
      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

    • En realidad sí existen estándares altos, pero la administración actual no los cumple
    • También hubo quien dijo no entender por qué una app gubernamental debería tener estándares más altos. Al final lo ven solo como un tema de marca
  • 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

    • Yo me opongo tanto a la telemetría de terceros de la app de la White House como a la de las demás apps. Se puede hacer multitarea
    • Justamente el problema central es que la app gubernamental fue hecha como si fuera una B2C
    • También hubo afirmaciones exageradas como que la app de la White House enviaba datos a Huawei, pero lo que sí sorprende es que tuviera 20% más que otras apps
  • 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