Ponemos a prueba la seguridad de las aplicaciones de citas en línea
Al parecer, los vericuetos de las citas en línea han sido analizados desde todos los aspectos por diferentes autores. El tema de los engaños y peligros que suponen los encuentros con desconocidos ha aparecido tanto en las revistas de sicología, como en las crónicas criminales. Pero también hay una amenaza menos obvia que no está relacionada con las citas en sí mismas, sino que afecta a las aplicaciones móviles diseñadas para simplificar el proceso. Se trata de la intercepción de información personal y de la pérdida del anonimato del usuario del servicio de citas, factores que pueden causar multiples problemas a la victima. Los inconvenientes van desde el envio de mensajes en su nombre desde su cuenta de red social, hasta el chantaje. En este estudio, hemos tomado las aplicaciones mas populares y analizado que tipo de datos esta dispuesto el usuario a entregar a un atacante y en que situaciones.
El analisis abarco las siguientes aplicaciones de busqueda de pareja:
- Tinder para Android y iOS
- Bumble para Android y iOS
- OK Cupid para Android y iOS
- Badoo para Android y iOS
- Mamba para Android y iOS
- Zoosk para Android y iOS
- Happn para Android y iOS
- WeChat para Android y iOS
- Paktor para Android y iOS
Por pérdida de anonimato y definición del nombre real del usuario entendemos la posibilidad de averiguar su nombre y apellido usando los datos del perfil de una de las redes sociales donde el uso de sobrenombres carece de significado práctico.
Posibilidad de rastrear a los usuarios
En primer lugar, hemos comprobado si es fácil rastrear a los usuarios usando los datos disponibles en sus aplicaciones. Y resulta que el verdadero nombre de usuario y su página en las redes sociales son fáciles de encontrar si en la aplicación se indicó el lugar de trabajo. Como resultado, los delincuentes pueden recolectar muchos más datos sobre la víctima, rastrear sus movimientos y establecer su círculo de amigos y conocidos. La información recolectada se puede usar para acosar, es decir, para perseguir a la víctima.
Además, averiguar el perfil de usuario en una red social permite eludir algunas restricciones de las aplicaciones para citas, por ejemplo, la que impide enviar mensajes directos a otros usuarios. Algunas aplicaciones de citas solo permiten el envío de mensajes los propietarios de cuentas de pago, y otras prohíben a las personas de sexo masculino iniciar la charla. Por lo general, las redes sociales no imponen tales restricciones y permiten el envío directo de mensajes a los usuarios.
Para ser más específicos, en Tinder, Happn y Bumle el usuario puede especificar información sobre su trabajo y estudios. Utilizando esta información, en el 60% de los casos logramos encontrar las páginas de los usuarios en otras redes sociales, como Facebook y LinkedIn, y establecer sus nombres y apellidos.
Además, la versión de Happn para Android tiene una función adicional de búsqueda: entre los datos de los usuarios que el servidor envía a la aplicación está el parámetro fb_id, un número de identificación de cuenta de Facebook especialmente formado. La aplicación lo utiliza para averiguar cuántos amigos comunes este usuario tiene en Facebook. Para hacerlo, usa el token de autenticación recibido por la aplicación desde Facebook. Modificando un poco esta consulta (quitando la parte de la consulta original y dejando eltoken) se puede averiguar el nombre y apellidos del usuario en la cuenta de Facebook para cualquiera de los usuarios de Happn.
En la versión iOS es aún más fácil encontrar las cuentas de usuario: el servidor devuelve a la aplicación el identificador de usuario real de Facebook.
En las demás aplicaciones hay poca información disponible sobre los usuarios, por lo general sólo fotos, edad, nombre o sobrenombre. Usando solamente estos datos, no pudimos encontrar las cuentas de los usuarios en otras redes sociales. Ni siquiera la búsqueda de fotos de Google fue de ayuda: en uno de los casos, el motor de búsqueda reconoció a la persona de la foto como Adam Sandler, aunque en realidad era la foto de una muchacha que no se parecía en nada al actor.
Otra aplicación, Paktor, permite averiguar las direcciones de correo electrónico, y no sólo de los usuarios visualizados. Basta con interceptar el propio tráfico y hacerlo es muy simple en el dispositivo propio. Como resultado, el atacante no solo consigue las direcciones de correo electrónico de aquellos usuarios cuyos cuestionarios ha visto, sino también la de otros, ya que la aplicación recibe de su servidor una lista de usuarios con sus respectivos datos, entre los que figuran las direcciones de correo electrónico. El problema es relevante para ambas versiones de la aplicación -tanto para Android como para iOS- y las hemos reportado a sus respectivos desarrolladores.
Algunas de las aplicaciones que analizamos permiten vincular el perfil de usuario a Instagram. La información extraída de éste también nos ayudó a establecer los nombres reales: en Instagram muchos usuarios indican sus nombres y apellidos reales, mientras que otros los ponen en el nombre de la cuenta. Estos datos pueden utilizarse para encontrar sus cuentas en Facebook o LinkedIn.
Ubicación
La mayoría de las aplicaciones analizadas son vulnerables a un ataque que pretenda identificar la ubicación de los usuarios, a pesar de que la amenaza ya se mencionó en varios estudios. En particular, encontramos que los usuarios de Tinder, Mamba, Zoosk, Happn, WeChat y Paktor son susceptibles a este ataque.
El ataque utiliza una función que muestra la distancia a otros usuarios, por lo general a aquellos cuyo perfil se está viendo en un momento dado. Aunque la aplicación no muestra la dirección, se puede establecer la ubicación desplazándose en los alrededores de la víctima y anotando los datos sobre la distancia. Este método es bastante laborioso, pero hay otros servicios que facilitan la tarea: un atacante puede, sin moverse de su lugar, “alimentarlos” con coordenadas falsas, y obtener cada vez datos sobre la distancia hasta el propietario del perfil.
Las diferentes aplicaciones muestran la distancia hasta los usuarios con diversos márgenes de error: desde decenas de metros hasta un kilómetro. Cuanto menor sea la precisión, más veces habrá que enviar las coordenadas.
Transmisión de tráfico sin cifrar
Como parte de nuestro estudio, también verificamos qué tipo de datos intercambian las aplicaciones con los servidores. Nos preguntábamos qué datos se podrían interceptar si un usuario, por ejemplo, se conecta a una red inalámbrica no segura, porque es suficiente estar en la misma red para que el delincuente pueda realizar el ataque. Incluso si la red Wi-Fi está cifrada, se puede interceptar el tráfico en el punto de acceso si éste es administrado por un atacante.
La mayoría de las aplicaciones utilizan el protocolo SSL cuando se comunican con el servidor, pero hay datos que se envían sin cifrado. Por ejemplo, Tinder, Paktor, Bumble para Android, y la versión para iOS de Badoo descargan las fotografías por HTTP, es decir, sin protección. Gracias a esto, un atacante podría, entre otras cosas, saber qué cuestionarios está viendo la víctima en determinado momento.
La versión para Android de Paktor utiliza el módulo de análisis quantumgraph, que transmite sin cifrado una gran cantidad de información, incluyendo el nombre del usuario, su fecha de nacimiento y coordenadas GPS. Además, el módulo envía al servidor información sobre las funciones de la aplicación que la víctima está utilizando en un momento dado. Vale la pena notar que en la versión iOS para Paktor todo el tráfico está encriptado.
Aunque la aplicación Badoo utiliza el cifrado, su versión para Android envía al servidor determinados datos sin cifrar (coordenadas GPS, información sobre el dispositivo y el operador móvil, etc.) si no puede conectarse al servidor a través de HTTPS.
Entre los servicios de citas, Mamba tiene características que lo diferencian. En primer lugar, la versión para Android de la aplicación incluye el módulo de análisis flurry, que envía los datos del dispositivo (fabricante, modelo, etc.) al servidor en forma no cifrada. En segundo lugar, la versión para iOS de la aplicación Mamba se conecta al servidor HTTP sin utilizar ningún cifrado.
De esta manera, un atacante puede ver e incluso modificar todos los datos que la aplicación intercambia con el servidor, incluidos los mensajes personales. Además, puede obtener acceso a la administración de la cuenta utilizando algunos de los datos interceptados.
Aunque en la versión para Android de Mamba el cifrado de datos está predeterminado, la aplicación a veces se conecta al servidor a través de HTTP sin cifrar. Al interceptar los datos utilizados en estas conexiones, también se puede obtener el control de cuentas ajenas. Reportamos nuestro descubrimiento a los desarrolladores, que prometieron solucionar los problemas encontrados.
En la aplicación Zoosk para ambas plataformas descubrimos también esta peculiaridad: una parte de la comunicación entre la aplicación y el servidor se realiza a través de HTTP, y los datos que se transmiten en las consultas permiten en ciertos momentos obtener la posibilidad de tomar el control de la cuenta. Hay que tener en cuenta que la intercepción de estos datos sólo es posible cuando el usuario descarga nuevas fotos o vídeos a la aplicación, es decir, no siempre. Les hicimos saber a los desarrolladores acerca de este problema, y ya lo resolvieron.
Además, la versión para Android de Zoosk utiliza el módulo de publicidad mobup. Si se interceptan las peticiones de este módulo, se pueden averiguar las coordenadas GPS del usuario, su edad, sexo y modelo de smartphone, porque todos estos datos se transmiten sin usar cifrado. Si el atacante tiene bajo su administración un punto de acceso Wi-Fi, puede cambiar los anuncios que la aplicación muestra por cualquier otros, incluidos anuncios maliciosos.
A su vez, la versión iOS de la aplicación WeChat se conecta al servidor a través del protocolo HTTP, pero todos los datos transmitidos de esta manera permanecen cifrados.
Datos en el tráfico SSL
En general, las aplicaciones objeto de nuestro análisis y sus módulos adicionales utilizan el protocolo HTTPS (HTTP Secure) para comunicarse con sus servidores. La seguridad de HTTPS se basa en que el servidor tiene un certificado cuya validez se puede verificar. En otras palabras, el protocolo tiene prevista la posibilidad de proteger contra ataques MITM (Man-in-the-middle): el certificado debe validarse para ver si realmente pertenece al servidor especificado.
Hemos verificado con cuánto éxito las aplicaciones de citas pueden hacer frente a este tipo de ataque. Con este objetivo, instalamos un certificado “hecho en casa” en el dispositivo de prueba para tener la posibilidad de “espiar” el tráfico cifrado entre el servidor y la aplicación si éste no verifica la validez del certificado.
Vale la pena señalar que la instalación de un certificado de terceros en un dispositivo Android es un proceso muy simple, y se puede engatusar al usuario para que lo haga. Sólo hace falta atraer a la víctima a un sitio web que contenga un certificado (si el atacante controla la red, puede ser cualquier sitio) y convencer al usuario de que presione el botón de descarga. El sistema comenzará a instalar el certificado, para lo que solicitará el PIN una vez (si está instalado) y sugerirá darle un nombre al certificado.
En iOS es mucho más complicado. El primer paso es instalar un perfil de configuración, y el usuario tiene que confirmar la acción varias veces e introducir la contraseña del dispositivo o PIN varias veces. A continuación, debe ir a la configuración y agregar el certificado del perfil instalado a los perfiles de confianza.
Resulta que la mayoría de las aplicaciones que estudiamos son, de una forma u otra, vulnerables al ataque MITM. Sólo Badoo y Bumble, así como la versión para Android de Zoosk, utilizan el enfoque adecuado y verifican el certificado del servidor.
Cabe señalar que la aplicación Wechat, a pesar de que continuó trabajando con un certificado falso, cifraba todos los datos que interceptamos, lo que puede considerarse un éxito: la información recolectada no se puede utilizar.
Recordamos que la mayoría de los programas estudiados utilizan la autorización mediante Facebook. Por lo tanto, la contraseña del usuario está protegida, pero se puede robar el token que permite autorizarse temporalmente en la aplicación.
Un token es una clave que un usuario solicita a un servicio de autenticación (en nuestro ejemplo de Facebook) para autorizarse en un servicio. Se emite por un tiempo limitado, usualmente de dos a tres semanas, pasados los cuales la solicitud debe solicitar el acceso de nuevo. Utilizando un token, el programa recibe todos los datos necesarios para la autenticación y tiene la capacidad de autenticar al usuario en sus servidores simplemente verificando la validez del token.
Es interesante que la aplicación Mamba, una vez concluido el registro mediante una cuenta de Facebook envíe la contraseña generada al buzón de correo electrónico. La misma contraseña se utiliza para la posterior autorización en el servidor. Así, en una aplicación se puede interceptar un token o hasta un login con contraseña, lo que permite que el atacante se autorice en la aplicación.
Archivos de la aplicación (Android)
Decidimos comprobar qué datos la aplicación almacena en el dispositivo. Vale decir que aunque los datos estén protegidos por el sistema y otras aplicaciones no tengan acceso a ella, se los puede obtener si se cuenta con derechos de superusuario (root). Debido a que para iOS no hay programas comunes de malware que sean capaces de obtener derechos de superusuario, creemos que esta amenaza no es relevante para los propietarios de dispositivos Apple. Así que en esta parte de la investigación consideraremos solamente las aplicaciones para Android.
Vale la pena notar que los derechos de superusuario no son tan raros en los dispositivos Android. Según KSN, en el segundo trimestre de 2017 estaban presentes en los smartphones de más del 5% de los usuarios. Además, algunos troyanos pueden obtener acceso root utilizando vulnerabilidades del sistema operativo. Hace un par de años llevamos a cabo investigaciones sobre la disponibilidad de información privada en las aplicaciones móviles y, como vemos, poco ha cambiado desde entonces.
El análisis mostró que la mayoría de las aplicaciones de citas no están preparadas para enfrentar tales ataques. Así, utilizando derechos de superusuario, pudimos obtener los tokens de autorización (principalmente de Facebook) de casi todas las aplicaciones. Hacemos notar que la autorización a través de Facebook, cuando un usuario no necesita inventar nuevos nombres de usuario y contraseña, es una buena iniciativa que mejora la seguridad de la cuenta, pero sólo si la cuenta de Facebook está protegida con una contraseña fuerte. Sin embargo, con frecuencia el token de la aplicación no se almacena con la suficiente seguridad.
Utilizando el token de Facebook generado se puede autorizar temporalmente la aplicación de citas, con acceso completo a la cuenta. Y en el caso de Mamba, pudimos hasta obtener la contraseña y el nombre de usuario: son fáciles de descifrar con la clave almacenada en la propia aplicación.
La mayoría de las aplicaciones que estudiamos (Tinder, Bumble, OK Cupid, Badoo, Happn y Paktor) guardan el historial de mensajes en la misma carpeta que el token. Como resultado, si el delincuente obtiene los derechos de superusuario, también obtiene acesso a la correspondencia.
Además, casi todas las aplicaciones almacenan fotos de otros usuarios en la memoria del smartphone. Esto se debe a que las aplicaciones utilizan métodos estándar para abrir páginas web: el sistema guarda en la memoria caché las fotos que se abren. Si se recibe acceso a la carpeta de la caché, podrá ver qué cuestionarios visualizó el usuario.
Conclusión
En esta tabla reunimos todas las vulnerabilidades encontradas en las aplicaciones de citas estudiadas:
App | Location | Stalking | HTTP (Android) | HTTP (iOS) | HTTPS | Messages | Token |
Tinder | + | 60% | Low | Low | + | + | + |
Bumble | – | 50% | Low | NO | – | + | + |
OK Cupid | – | 0% | NO | NO | + | + | + |
Badoo | – | 0% | Middle | NO | – | + | + |
Mamba | + | 0% | High | High | + | – | + |
Zoosk | + | 0% | High | High | – (+ iOS) |
– | + |
Happn | + | 100% | NO | NO | + | + | + |
+ | 0% | NO | NO | – | – | – | |
Paktor | + | 100% emails | Middle | NO | + | + | + |
Ubicación: determinación del paradero de los usuarios (“+”, posible; “-” no)
Stalking: posibilidad de encontrar el nombre y apellidos del usuario, así como sus cuentas en otras redes sociales, porcentaje de usuarios detectados (porcentaje de éxito)
HTTP: capacidad de interceptar datos de una aplicación que no está encriptada (“NO” no es posible detectar datos; “Bajo”, datos que no representan peligro; “Medio”, datos que pueden ser peligrosos y “Alto”, datos que permiten tomar el control de la cuenta).
HTTPS: posibilidad de interceptar los datos que se transmiten dentro de una conexión encriptada (“+”, posible; “-” no).
Messages: posibilidad de interceptar mensajes del usuario (“+”, posible, “-” no).
TOKEN: posibilidad de obtener un token para obtener acceso a la cuenta (“+”, posible, “-” no).
Como se puede ver en la tabla, algunas aplicaciones hacen poco para proteger la información personal de los usuarios, pero la situación general no es tan mala como podría ser. Incluso con la enmienda de que no estudiamos con profundidad en la práctica la posibilidad de localizar a uno u otro usuario del servicio. Por supuesto, no intentaremos disuadir a nadie del uso de las aplicaciones de citas, pero nos gustaría dar un poco de orientación sobre cómo utilizarlas de forma más segura. Primero, nuestros consejos universales: evitar usar puntos Wi-Fi de acceso público, sobre todo los que no estén protegido con contraseña, utilizar VPN e instalar en el smartphone una solución de protección que detecte malware. Son muy relevantes para la situación analizada y pueden ayudar a prevenir el robo de información personal. Segundo, es mejor no indicar el lugar de trabajo, ni otra información que permita identificarlo. Y por cierto, tenga precaución al hacer sus citas.
Relaciones peligrosas