Seguridad

Pinpoint del status de mensajería puede determinar una ubicación

WhatsApp y otras aplicaciones de mensajería han sufrido multitud de filtraciones y fallos en la privacidad de sus usuarios. Vamos a detallar un nuevo ataque que nos permite conocer la ubicación del remitente con el que nos comunicamos.

La gran mayoría de aplicaciones de mensajería que existen usan notificaciones de estado de entrega del mensaje, para informar a los usuarios si un mensaje enviado ha llegado a su destino o no. Este tipo de información es útil e importante para el remitente debido al uso asincrónico del servicio de mensajería. Sin embargo, vamos a detallar como debido a esta característica se pueden producir consecuencias inesperadas para la privacidad de sus usuarios. Esta característica se encuentra también en aplicaciones pro-privacidad como Signal y Threema. Cabe destacar, que este tipo de vulnerabilidad es extrapolable a cualquier servicio que tenga un modelo de comunicaciones centralizado.

Todos los datos aquí mencionados han sido obtenidos de T.Schnitzler, K.Kohls, E. Bitsikas y C.Pöpper (2022-10-19) «Hope of Delivery: Extracting User Locations From Mobile Instant Messengers». En el que un equipo de investigadores detalla como es posible intervenir la ubicación del remitente de nuestros mensajes de WhatsApp y otras aplicaciones de mensajería con una precisión que puede llegar a superar el 70%. Todo se resume en medir tiempos de respuesta entre el emisor y el receptor del mensaje.

Análisis de la infraestructura de las aplicaciones de mensajería

Dado que la información de la infraestructura de estas aplicaciones no es pública, el grupo de investigadores que ha destapado este fallo de seguridad realizó varios análisis para extraer información sobre el número y la ubicación de los servidores de mensajería. Obtener esta información es trivial para poder realizar los análisis de tiempo de entrega.

Para el descubrimiento de los servidores, el equipo configuró varios dispositivos para que se conectasen a las diferentes aplicaciones de mensajería. De las capturas recopiladas de las conexiones de red de estos dispositivos se extrajo las diferentes direcciones IP de los servidores a los que se conecta la aplicación en cada teléfono. Para descubrir más servidores a parte de los cercanos a los de la propia ubicación del teléfono se realizaron diferentes análisis de DNS.

Después de un exhaustivo análisis, el grupo de expertos obtuvo el siguiente mapa con las diferentes ubicaciones de los servidores:

Análisis de tiempos

La idea principal del ataque que se presenta es el uso de un canal lateral de tiempo el cual proporciona información del estado del mensaje para extraer las características de conexión a internet del usuario objetivo. En la siguiente tabla se muestra el flujo de mensajes utilizado por las distintas aplicaciones de mensajería y que será de utilidad para el posterior análisis de tiempos.

Flujo de los mensajes

La entrega de un mensaje y la devolución de la confirmación requieren un tiempo determinado. Las transmisiones físicas en internet están influenciadas por la distancia recorrida, dependen de la topología de la red, es decir, el enrutamiento y los saltos intermedios, y el procesamiento por parte del servicio de mensajería.

En el siguiente esquema se resume el flujo de los mensajes entre emisor, servidor de mensajería y receptor.

Observando la diferencia de tiempo de envío entre los mensajes, el servidor y las confirmaciones de entrega que llegan al dispositivo del remitente permite razonar sobre las características del receptor, como su ubicación o su conexión a la red.

Descripción del ataque: modelo de amenaza

Se requiere, como es obvio, que el atacante opere desde un teléfono inteligente capaz de ejecutar una aplicación de mensajería. Además, el atacante necesita poder analizar su propio tráfico TCP para extraer la información de los paquetes. Este tráfico es posible capturarlo a través de un nodo en su propia red local o directamente desde el teléfono usando alguna aplicación de captura de paquetes.

Un requisito operativo del ataque es que tanto el atacante como la víctima han de estar en sus respectivas listas de contacto.

En una fase de entrenamiento inicial, el atacante envía mensajes a la víctima y aprende características de tiempo sabiendo su paradero. Posteriormente, el atacante puede enviar nuevos mensajes a la víctima y determinar su ubicación o conexión de red fuera del conjunto de los posible vistos anteriormente.

Descripción del ataque: configuración

Se realizaran mediciones durante el envío de mensajes entre varios dispositivos en diferentes ubicaciones geográficas. La configuración comprende dos tipos de dispositivos:

  • Los dispositivos activos: se utilizarán para enviar mensajes a otros dispositivos. Cada dispositivo activo está conectado por USB a un ordenador que programa el peritaje y controla el smartphone a través de Android Debug Bridge (ADB).
  • Los dispositivos pasivos: se utilizan para recibir mensajes de los dispositivos activos. El único requisito para un dispositivo pasivo es tener una conexión activa a internet.

Se llevará a cabo dos rondas de mediciones que servirán como conjunto de datos de entrenamiento para su posterior análisis.

Descripción del ataque: proceso de medición

Se mide el tiempo que tarda un mensaje de un dispositivo emisor en ser entregado al servidor de mensajería y al destinatario. Para ello, el equipo de investigadores ideó lo siguiente:

  • Se captura el tráfico de red de un dispositivo activo directamente en él utilizando la app tPacketCapture.
  • El teléfono se conecta a un ordenador por USB. Un script de Python que controla el teléfono a través de Android Debug Bridge (ADB) programa automáticamente los procesos de envío de mensajes y captura del tráfico de red.
  • El script utiliza comandos del sistema para abrir y cerrar las aplicaciones de captura de paquetes e interactúa con la interfaz de usuario para navegar dentro de las aplicaciones, es decir, simula la entrada táctil humana para seleccionar contactos o escribir mensajes.

Este procedimiento, según cuenta el equipo, se realizó a lo largo de varias semanas. En total, se enviaron más de 240.000 mensajes durante las dos rondas para la evaluación.

Análisis del conjunto de datos

Aunque las aplicaciones de mensajería utilicen cifrado de extremo a extremo en sus mensajes, se puede analizar sin problemas el flujo de comunicación e identificar los mensajes y confirmaciones, el tamaño de los paquetes, el orden de los mismos, su dirección y su flujo.

Una vez analizado el conjunto de datos se puede proceder a analizar los tiempos medidos en relación con la distancia recorrida, y luego continuar con las distribuciones de tiempos a diferentes receptores.

Todas estas mediciones y estimaciones sirven para construir una red neuronal que nos estime, dados los tiempos de envío y recepción, la ubicación del receptor de los mensajes.

Contramedidas: lado del cliente

Una posible y bastante eficaz contramedida del lado del cliente es enrutar el tráfico a través de la red TOR, ya que si enrutamos todo el tráfico vamos a aleatorizar bastante nuestro tiempo de respuesta.

Otra posible contramedida por parte del cliente es utilizar algún servicio de VPN fiable aumentando, de esta forma, los tiempos de respuesta.

Contramedidas: lado del servidor

Una contramedida que se puede usar por parte del servidor es randomizar todos los tiempos de respuesta, de modo que para el usuario sea imperceptible pero que para un análisis exhaustivo de los paquetes no se pueda obtener ningún resultado concluyente.

Conclusión

Se ha demostrado cómo la medición del tiempo entre el envío de un mensaje y la recepción de la notificación de que el mensaje ha sido entregado, permite a los clientes espiarse, por ejemplo, para determinar si se encuentran o no en su ubicación habitual.

Aunque el uso de este canal secundario se limita sobre todo a las personas que están en la lista de contactos de los demás y que ya han iniciado una conversación anteriormente, constituye un acto inesperado y que vulnera la privacidad con pocos requisitos técnicos que es igualmente difícil de detectar y de mitigar para una víctima potencial.

La entrada Pinpoint del status de mensajería puede determinar una ubicación se publicó primero en Una al Día.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.