Blog de Cisco España
Compartir

Aplicaciones de mensajería (in)seguras


5 February 2019


Cómo los ataques de canal lateral pueden comprometer la privacidad de WhatsApp, Telegram y Signal

Las aplicaciones de mensajería nos acompañan desde el nacimiento de internet. Pero recientemente, debido al aumento de la concienciación sobre la vigilancia masiva en algunos países, cada vez más usuarios instalan aplicaciones con cifrado completo denominadas «aplicaciones de mensajería instantánea seguras». Estas aplicaciones aseguran cifrar los mensajes de los usuarios y mantener el contenido a salvo de terceros.

No obstante, tras un detallado examen de tres aplicaciones de mensajería seguras (Telegram, WhatsApp y Signal), hemos descubierto que estos servicios no cumplen las promesas realizadas y podrían poner en peligro la información confidencial de sus usuarios.

Se trata de un problema grave, pues los usuarios descargan estas aplicaciones esperando que sus mensajes y fotos estén totalmente protegidos frente a terceros. Estas aplicaciones, que tienen innumerables usuarios, no pueden dar por sentado que sus usuarios tienen conocimientos de seguridad y entienden los riesgos que implica activar determinados ajustes en sus dispositivos. Por este motivo, tienen la obligación de explicar los riesgos a sus usuarios y, cuando sea posible, adoptar una configuración predeterminada más segura en sus ajustes.

En esta entrada mostraremos cómo un atacante puede comprometer la seguridad de estas aplicaciones mediante un ataque de canal lateral dirigido al sistema operativo en el que estas aplicaciones delegan su seguridad. Este artículo examinará cómo estas aplicaciones manejan los datos de sus usuarios. No incluirá un análisis técnico en profundidad de la seguridad de estas compañías.

Aplicaciones de mensajería seguras

El concepto en el que se basan las aplicaciones de mensajería seguras es que el contenido de todas las comunicaciones entre los usuarios se cifra para mantenerlo a salvo de terceros. Esto significa que el proveedor del servicio no debería poder leer el contenido en ningún momento.

Para obtener un cifrado completo, estas aplicaciones han desarrollado su propio protocolo de cifrado o bien adoptado uno existente.

Existen dos protocolos principales que suelen utilizar estas aplicaciones: El protocolo MT, desarrollado por la aplicación de mensajería segura Telegram, y el protocolo Signal, desarrollado por la empresa de software Open Whisper Systems.

Como la implementación del protocolo MT no es de código abierto, la mayoría de las demás aplicaciones utilizan el protocolo Signal o implementan una variación de este. Otras aplicaciones, que no se abordan en esta entrada, utilizan este protocolo si el usuario decide hacerlo, pero no de manera predeterminada. Así sucede con Facebook Messenger, que utiliza una función llamada «Conversaciones secretas», y con Google Allo, que tiene una opción llamada charlas «Incognito». En ambos protocolos, la comunidad de seguridad ha sometido la implementación de cifrado a un riguroso escrutinio. Los investigadores analizaron el código fuente de libre acceso y realizaron pruebas de caja negra sobre los datos de comunicaciones en tiempo real.

No obstante, una aplicación de mensajería segura va más allá del protocolo de cifrado. Existen otros componentes, como el marco de la interfaz de usuario, el modelo de almacenamiento de archivos, la inscripción de grupos y otros mecanismos que pueden utilizarse como base para un ataque.

La vulnerabilidad CVE 2018-1000136 encontrada en el marco Electron, que tanto WhatsApp como Signal utilizan para desarrollar su interfaz de usuario, es un buen ejemplo de esto. Esta vulnerabilidad, en el peor de los casos, podría permitir a un atacante ejecutar código a distancia o usarse para copiar mensajes.

Estos protocolos se centran en proteger la privacidad de las comunicaciones durante la transmisión. Sin embargo, habitualmente no ofrecen garantías sobre la seguridad durante el procesamiento de los datos o cuando el mensaje llega al dispositivo del usuario.

Estos protocolos tampoco gestionan la inscripción en grupos de estas aplicaciones, como demuestra la vulnerabilidad reciente encontrada en WhatsApp. Si un atacante compromete la seguridad de un servidor de WhatsApp, podría añadir nuevos miembros a un grupo sin la aprobación de su administrador, lo que les permitiría leer los mensajes nuevos. Esto significa que existe la posibilidad de que un agente con la motivación necesaria seleccione grupos de WhatsApp específicos para leer los mensajes de forma encubierta, lo que no se ajusta a la extendida idea de que esta aplicación ofrece cifrado completo e inquebrantable en todas las comunicaciones.

Una presentación de Signal afirma mantener la seguridad de los mensajes de los usuarios.

Source: signal.org

Detrás de los aspectos técnicos de estas aplicaciones existe también un componente humano esencial.

Todas estas aplicaciones anuncian que son seguras y protegen la privacidad. Algunas de ellas incluso llegan a afirmar que son «seguras ante los ataques de hackers». Todas estas afirmaciones van dirigidas a generar confianza entre los usuarios y la aplicación. Los usuarios confían en que las aplicaciones protegerán sus datos privados.

Dado que todas estas aplicaciones afirman tener millones de usuarios activos, está claro que no todos ellos tendrán conocimientos sobre seguridad informática. Así, la mayoría no entenderán bien los riesgos y las limitaciones que entrañan determinadas configuraciones en estas aplicaciones. Proteger la privacidad de una persona va más allá de la tecnología y también implica proporcionar a los usuarios la información correcta para que conozcan los riesgos de sus decisiones, sin necesidad de ser expertos en seguridad.

Un anuncio publicitario de Telegram afirma que mantiene los mensajes de los usuarios «seguros ante los ataques de hackers».

Fuente:  telegram.com

Otra característica importante que anuncian estas aplicaciones es su capacidad multiplataforma. Todas las aplicaciones son compatibles con las principales plataformas de dispositivos móviles y con una versión para ordenadores. Un usuario típico pensará que el nivel de seguridad es el mismo en todas las plataformas. Los sitios web de todas las aplicaciones presentan la idea de que todas las plataformas mantienen el mismo nivel de seguridad y privacidad.

Este anuncio publicitario de Signal muestra a los usuarios que pueden usar la aplicación en distintas plataformas

Fuente signal.org

La implementación de medidas de seguridad tiende a variar entre unas plataformas y otras. Algunas plataformas presentan más riesgos que otras y estos riesgos deben comunicarse a los usuarios, pues normalmente asumirán que todas las plataformas ofrecen el mismo nivel de protección.

El problema

La mayoría de los usuarios de estas aplicaciones no tienen conocimientos sobre seguridad informática, lo que significa que confían ciegamente en que estas aplicaciones mantendrán su información protegida. Está claro que dicha confianza procede de cómo estas aplicaciones promocionan sus servicios.

El 16 de mayo de 2018, Talos publicó un artículo sobre Telegrab, un malware capaz de secuestrar sesiones de Telegram. El concepto es muy sencillo: Si un atacante puede copiar los registros de sesión de un usuario de la aplicación para ordenadores, podrá secuestrar la sesión. El atacante no necesitará nada más aparte de la información almacenada en local. No importa si la información está cifrada o no: al copiar esta información, el atacante podrá usarla para crear una sesión encubierta.

Basándonos en esta investigación, decidimos comprobar si la misma técnica se aplicaba también a otras aplicaciones de mensajería, lo que resultó ser el caso en todas las aplicaciones analizadas (Telegram, Signal y WhatsApp). No todas estas aplicaciones manejan las sesiones del mismo modo, lo que produce distintas consecuencias con este ataque.

En la próxima sección, describiremos algunos de estos ataques donde es posible replicar o interceptar las sesiones de estas aplicaciones.

Aplicaciones

Telegram — Secuestro de sesiones en la versión para ordenadores

Telegram parece ser la aplicación donde es más fácil que se produzca el secuestro de una sesión sin que los usuarios tengan ningún indicio de que se ha producido un ataque. Los mensajes y las imágenes que envíe o reciba la víctima se replican en la sesión del atacante.

Sesiones dobles en los entornos para ordenador de Telegram.

Cuando el atacante abre la aplicación para ordenador de Telegram usando la información de sesión robada, se establece una nueva sesión sin advertir al usuario en modo alguno. El usuario debe comprobar si existe alguna sesión adicional en uso. Para ello, es necesario navegar por los ajustes, lo que no resulta evidente para el usuario medio. Cuando el mensaje se muestra en Telegram, tampoco es evidente para el usuario medio.

Signal — Secuestro de sesiones en la versión para ordenadores

Signal maneja el secuestro de la sesión como una situación de competición. Cuando el atacante abre la aplicación usando la información de sesión robada, ambos compiten por la sesión. Como resultado, el usuario recibirá mensajes de error en la aplicación para ordenador, pero no en el dispositivo móvil.

Las sesiones creadas en Mac funcionarán en Windows y viceversa.

Sin embargo, cuando la víctima recibe estos mensajes, el atacante ya ha tenido acceso a todos los contactos y conversaciones anteriores que no hayan sido borradas.

Para evitar que se produzca esta situación, el atacante solo tiene que borrar la información de la sesión. Cuando el usuario abra la aplicación, recibirá una solicitud para volver a enlazar la aplicación.

Para un experto en seguridad, esto sería una señal de alarma. Pero el usuario medio piensa simplemente que se trata de un error en la aplicación.

Dos sesiones para el mismo dispositivo.

Cuando el usuario cree la segunda sesión, solo será visible desde el dispositivo móvil y, por defecto, las dos sesiones tendrán el mismo nombre.

Por lo tanto, el atacante tendrá la posibilidad de ver todos los mensajes e incluso de hacerse pasar por las víctimas. Los mensajes enviados por el atacante llegarán a los dispositivos legítimos de las víctimas, pero el atacante puede borrarlos mientras los envía para evitar que sean detectados. Si la suplantación se realiza usando la función de «mensajes que desaparecen», será todavía más difícil que la víctima detecte la imitación.

WhatsApp — Secuestro de sesiones en la versión para ordenadores

WhatsApp es la única aplicación que ha implementado un mecanismo de aviso si se abre una segunda sesión desde un ordenador. En condiciones normales, si un atacante utiliza la información de sesión robada, la víctima debería recibir un mensaje de advertencia como en la imagen siguiente.

Aviso de inicios de sesión múltiples en WhatsApp.

Este aviso se muestra en la aplicación que está en línea cuando se crea la segunda sesión. La segunda sesión estará en línea y podrá usarse hasta que el usuario tome una decisión. Así, cuando aparezca este aviso, el atacante ya habrá podido acceder a todos los contactos y mensajes anteriores de la víctima. El atacante también podrá hacerse pasar por la víctima hasta que esta responda al mensaje de aviso. En caso de que la víctima no se encuentre ante su equipo, el atacante tendrá acceso hasta que la víctima compruebe el equipo. La víctima no recibirá ninguna alerta evidente en su dispositivo móvil para advertirle de lo sucedido. El aviso actual se muestra cada vez que la víctima utiliza el cliente para ordenadores. Una segunda sesión no cambiará el mensaje.

Este mecanismo de advertencia tiene un defecto, pues es posible que un atacante lo evite mediante el procedimiento siguiente.

El atacante puede simplificar el procedimiento omitiendo el paso 4 y esperando antes de realizar el paso 5. El resultado será el mismo, pues tendrá acceso a los mismos mensajes. El atacante solo perderá el acceso si la víctima finaliza manualmente la sesión en el dispositivo móvil.

Hemos informado a Facebook de esta vulnerabilidad de acuerdo con nuestra política de divulgación coordinada. Puede encontrar todos los detalles aquí.

Telegram — Sesiones móviles ocultas

El uso indebido de sesiones no solo es un problema en el entorno para ordenadores. Las aplicaciones móviles clonadas replican también estas sesiones.

Sesiones ocultas en un dispositivo móvil.

En el entorno móvil, a los usuarios no debería preocuparles tanto la seguridad de su sesión, puesto que, en circunstancias normales, es mucho más difícil obtener acceso a ella. El problema fundamental reside en el hecho de que Telegram permite la coexistencia de sesiones ocultas en el mismo dispositivo con el mismo número de teléfono manejado en distintas aplicaciones.

Esto permite un caso donde un atacante puede leer todos los mensajes y contactos de Telegram hasta que se finaliza la sesión. Con los dispositivos móviles, las sesiones no finalizan nunca hasta que el usuario decide finalizarlas manualmente mediante el menú de opciones.

Existe otro escenario en la plataforma Android donde una aplicación maliciosa puede crear una sesión oculta sin la intervención del usuario. La aplicación maliciosa solo necesita los permisos «leer SMS» y «detener procesos en segundo plano», que normalmente no se consideran peligrosos y superan fácilmente las verificaciones de la tienda Google Play.

El proceso de registro de Telegram comienza solicitando un número de teléfono, que se confirma mediante un SMS que contiene un código exclusivo. Si un usuario intenta volver a registrar el mismo número de teléfono, Telegram enviará un código a través del canal de Telegram en lugar de un SMS.

La modificación del canal de entrega, de un SMS a un mensaje de Telegram, debería evitar que aplicaciones maliciosas creen una sesión oculta sin la intervención del usuario, ya que no podrían leer el código. No obstante, si no se realiza el registro en un plazo de tiempo específico, Telegram asume que el usuario no tiene acceso a la aplicación Telegram y envía un código nuevo por SMS.

Este mecanismo de reserva produce una situación de competición que puede ser explotada por una aplicación maliciosa para crear una sesión oculta sin la interacción del usuario. A continuación se describe todo el proceso.

A partir de este momento, la aplicación maliciosa tendrá acceso a todos los contactos, mensajes anteriores y futuros que no estén en las «Conversaciones secretas».

Conclusión

Las aplicaciones de mensajería instantánea seguras tienen un amplio historial protegiendo la información durante su transmisión y llegando incluso a proteger dicha información desde sus propios servidores. Sin embargo, no cumplen las expectativas en términos de proteger el estado de la aplicación y la información del usuario, pues delegan esta protección en el sistema operativo.

Los desarrolladores del protocolo Signal predijeron este secuestro de sesiones. Las consideraciones de seguridad del protocolo de gestión de sesiones (protocolo Sesame) contienen una sección dedicada a la seguridad del dispositivo, que explica «la seguridad se ve comprometida de forma catastrófica si un atacante averigua los valores secretos de un dispositivo, como la clave privada de identidad y estado de sesión».

Este vector de ataque fue incluso predicho por los desarrolladores del protocolo, por lo que los usuarios y las empresas deben tener en cuenta que estas aplicaciones no están exentas de riesgos. Así, es más importante que las empresas que usan estas aplicaciones para transmitir información privada y confidencial utilicen tecnología en sus dispositivos para proteger mejor estos activos.

Deje un comentario