Debo reconocer que soy una de las víctimas de la aplicación de citas por excelencia, Tinder. Gracias a este servicio pensé que encontraría a mi pareja ideal, pero lo que no imaginé nunca es que la podría encontrar hasta con la ubicación precisa del GPS una vez que hubiéramos hecho Match. Y sí, ésta es la historia que os voy a contar hoy sobre Tinder y el peligro de toparse con un acosador/a.
Hace más de 6 años que me dedico a la seguridad de la información y ayudando a un amigo a fortificar la API de su aplicación hablamos de la posibilidad de auditar cómo lo hacían otras aplicaciones más famosas. Así surgió la idea de crear una versión web de Tinder usando su propia API (que no es pública) escuchando las llamadas mediante el Proxy Charles.
La fecha de nacimiento "ofuscada" de tus Match
Marc se tomo su proyecto en serio, trasteando las entrañas de la API y de la aplicación hasta que tuvo una versión web bastante funcional pero que revelaba varias cosas interesantes. La primera es que la API de Tinder no te dice la edad de los pretendientes y tus match. La API te muestra una fecha de nacimiento de las personas con la que has hecho Match. La fecha variaba casi a cada petición, pero variaba dentro de un rango de unos 7-10 días. Sacar la fecha de verdad es un ejercicio de buscar el día medio del conjunto de resultados obtenidos. No parece rocket science.
Esto no nos pareció muy bueno a nivel de privacidad, pero al menos se introducía un error para los fisgones como nosotros y evitaba que alguien pudiera responder a alguna de las "preguntas de seguridad" de sitios online que piden tu fecha de nacimiento exacta con solo una petición.
La ubicación GPS de tus Match exacta. La PoC.
La segunda cosa nos sorprendió aún más y es algo más creepy. La aplicación móvil muestra la distancia hasta tus Match, pero la API muestra unas coordenadas GPS. ¿Cómo? Sí, la API de Tinder muestra las coordenadas de tus Match. Importante decir que esto no sucede con los candidatos, pero sí con las personas que has hecho Match.
Como buenos investigadores, nos armamos de valor y decidimos cambiar nuestra sexualidad (virtual) por la ciencia, para hacer una prueba empírica. Forzamos que la API nos encontrara, hicimos Match et voilà. Aquí no había margen de error como en la fecha de nacimiento. En este vídeo tienes la PoC que hemos hecho en el que se ve cómo se obtiene la ubicación exacta GPS de los Match.
La API cuando me buscaba a mí como Match no le dijo a Marc que estaba a escasos metros de él. La API le mostraba las coordenadas GPS del salón de mi casa donde nos encontrábamos. Seguimos investigando y descubrimos que la API de Tinder devuelve las coordenadas de la última conexión de tus Match (o de la más reciente en la que Tinder tomó la ubicación).
¿Cómo se puede permitir semejante agujero de privacidad?
A uno se le pasa lo peor por la cabeza pensando en ¿cuánta gente ha encontrado esto antes que nosotros y lo ha utilizado con algún otro fin? Si se va realizando en distintas días, horas y momentos podría indicarte donde vive alguien, donde trabaja, donde está de vacaciones o si duerme en casa de otro Match. Esto es lo que explicaba Chema Alonso con su "Tinder Bot de espionaje" pero sin necesidad de triangular, ya que se conoce exactamente la posición GPS.
Esto no se trata de un acceso ilegítimo a los servidores de Tinder, sino sencillamente de interceptar los mensajes que se intercambia tu aplicación con los servidores, un error de diseño muy grave. Lo primero que hicimos fue informar a Tinder de nuestro descubrimiento. Si el sistema de cálculo de pretendientes ya está bien implementado (al menos algo mejor), ¿por qué el sistema de Match no? Tendría que ser fácil de implementar. El e-mail que mandamos el 29 de Mayo de 2016 a Tinder fue el siguiente:
Nuestra intención es concienciar de la falta de privacidad de la aplicación y el peligro que puede comportar su uso. Si alguien quiere usar la PoC debe ser consciente que no se ha creado una aplicación "siguiente, siguiente, siguiente" para script kiddies sino que se requieren conocimientos algo avanzados para instalarla y hacerla funcionar correctamente. Tienes toda la información en su GitHub.
Conclusiones Final
Creo que muchos nos odiarán si baja el número de usuari@s, pero espero que alguien también agradezca ver lo que pasa entre unos y ceros. Nos gustaría que Tinder nos siga ayudando a encontrar pareja, aunque preferimos que sólo nos diga la distancia y no que le de la ubicación GPS a todo el mundo al que hemos hecho Match alguna vez.
Figura 7: Automatic Tinder Match regala tu ubicación GPS a tod@s
Eso sí, mientras tanto, ten cuidado de ser de esos que van dando Match de forma automatizada a todo el mundo, ya que cada vez que haces eso le estás compartiendo a esa persona la posibilidad de seguir tu ubicación GPS exacta en todo momento, lo cual no es lo mejor si das con un/a acosador/a.
Autores: Marc & Oriol Martínez (@brutnatural)
Figura 1: Ojo con los acosadores en Tinder |
Hace más de 6 años que me dedico a la seguridad de la información y ayudando a un amigo a fortificar la API de su aplicación hablamos de la posibilidad de auditar cómo lo hacían otras aplicaciones más famosas. Así surgió la idea de crear una versión web de Tinder usando su propia API (que no es pública) escuchando las llamadas mediante el Proxy Charles.
La fecha de nacimiento "ofuscada" de tus Match
Marc se tomo su proyecto en serio, trasteando las entrañas de la API y de la aplicación hasta que tuvo una versión web bastante funcional pero que revelaba varias cosas interesantes. La primera es que la API de Tinder no te dice la edad de los pretendientes y tus match. La API te muestra una fecha de nacimiento de las personas con la que has hecho Match. La fecha variaba casi a cada petición, pero variaba dentro de un rango de unos 7-10 días. Sacar la fecha de verdad es un ejercicio de buscar el día medio del conjunto de resultados obtenidos. No parece rocket science.
Figura 2: La fecha de nacimiento varía. No es la exacta |
Esto no nos pareció muy bueno a nivel de privacidad, pero al menos se introducía un error para los fisgones como nosotros y evitaba que alguien pudiera responder a alguna de las "preguntas de seguridad" de sitios online que piden tu fecha de nacimiento exacta con solo una petición.
La ubicación GPS de tus Match exacta. La PoC.
La segunda cosa nos sorprendió aún más y es algo más creepy. La aplicación móvil muestra la distancia hasta tus Match, pero la API muestra unas coordenadas GPS. ¿Cómo? Sí, la API de Tinder muestra las coordenadas de tus Match. Importante decir que esto no sucede con los candidatos, pero sí con las personas que has hecho Match.
Figura 3: Tinder devolvía la ubicación exacta en la que estaba el perfil de "nuestra" María |
Figura 4: Vídeo del PoC accediendo a la localización GPS exacta de los Match en Tinder
La API cuando me buscaba a mí como Match no le dijo a Marc que estaba a escasos metros de él. La API le mostraba las coordenadas GPS del salón de mi casa donde nos encontrábamos. Seguimos investigando y descubrimos que la API de Tinder devuelve las coordenadas de la última conexión de tus Match (o de la más reciente en la que Tinder tomó la ubicación).
¿Cómo se puede permitir semejante agujero de privacidad?
A uno se le pasa lo peor por la cabeza pensando en ¿cuánta gente ha encontrado esto antes que nosotros y lo ha utilizado con algún otro fin? Si se va realizando en distintas días, horas y momentos podría indicarte donde vive alguien, donde trabaja, donde está de vacaciones o si duerme en casa de otro Match. Esto es lo que explicaba Chema Alonso con su "Tinder Bot de espionaje" pero sin necesidad de triangular, ya que se conoce exactamente la posición GPS.
Figura 5: Tinder recoge la ubicación GPS de tu terminal y la entrega exacta a tus Match |
Esto no se trata de un acceso ilegítimo a los servidores de Tinder, sino sencillamente de interceptar los mensajes que se intercambia tu aplicación con los servidores, un error de diseño muy grave. Lo primero que hicimos fue informar a Tinder de nuestro descubrimiento. Si el sistema de cálculo de pretendientes ya está bien implementado (al menos algo mejor), ¿por qué el sistema de Match no? Tendría que ser fácil de implementar. El e-mail que mandamos el 29 de Mayo de 2016 a Tinder fue el siguiente:
Hopefully you already know about this, but I've been using Charles proxy to inspect the traffic coming in and out of Tinder and I've found a way to get the physical position of all the matches. When the profile of a match is accessed, this request is fired: https://api.gotinder.com/user/matches/whatever_match_id, and inside the response there are the following parameters ->
"pos": { "lon": longitude_value,
"lat": latitude_value,
"at": time}
I tested this with a friend of mine and the position was very precise. I find this information very dangerous depending on who uses it and I also don't see the need of sending it back to the user, there is no need to know the exact position of your match. My suggestion would be to do as you already do in the recommendations and send distance in miles instead.Su respuesta fue casi inmediata y seguramente automatizada, Thanks for your feedback!. Casi 3 meses después no han realizado ningún cambio y la aplicación web de Marc sigue funcionando y sigue ayudando a encontrar a tu pareja ideal hasta por GPS. Es por eso que hemos decidido contar nuestro descubrimiento y liberar el código de la PoC, que situaría a tus Match en un mapa.
I hope you'll take this into consideration.
Cheers,
Marc
Figura 6: PoC de Tinder Web |
Nuestra intención es concienciar de la falta de privacidad de la aplicación y el peligro que puede comportar su uso. Si alguien quiere usar la PoC debe ser consciente que no se ha creado una aplicación "siguiente, siguiente, siguiente" para script kiddies sino que se requieren conocimientos algo avanzados para instalarla y hacerla funcionar correctamente. Tienes toda la información en su GitHub.
Conclusiones Final
Creo que muchos nos odiarán si baja el número de usuari@s, pero espero que alguien también agradezca ver lo que pasa entre unos y ceros. Nos gustaría que Tinder nos siga ayudando a encontrar pareja, aunque preferimos que sólo nos diga la distancia y no que le de la ubicación GPS a todo el mundo al que hemos hecho Match alguna vez.
Figura 7: Automatic Tinder Match regala tu ubicación GPS a tod@s
Eso sí, mientras tanto, ten cuidado de ser de esos que van dando Match de forma automatizada a todo el mundo, ya que cada vez que haces eso le estás compartiendo a esa persona la posibilidad de seguir tu ubicación GPS exacta en todo momento, lo cual no es lo mejor si das con un/a acosador/a.
Autores: Marc & Oriol Martínez (@brutnatural)
Congrats Uri/Marc. Muy bien visto!
ResponderEliminarSaludos
Buenas, parece que hay una cosa que no se entiende del todo y el titular quizá induce a ello. Cuando se hace match, no es que se guarde la ubicación de ese momento y esta sea consultable. Sino que siempre que se quiera se puede consultar la ubicación de la persona con la que se tiene match es decir, la ubicación va cambiando a cada momento que la persona abre la aplicación.
ResponderEliminarNo se si queda claro.
Hola,
ResponderEliminarCuando intenta hacer login me da un 403. El facebook token lo he modificado por el obtenido con el Charles. Alguna pista? :P
Saludos
PD En un momento dado pensaba que la constante TINDER_TOKEN también debía modificarse para darle cierto valor (a modo de trampa para gente del next, next, next). Luego he visto que solo se usa para darle nombre a la variable que se guarda en el contexto de la aplicación, así que lo he vuelto a dejar como estaba xD
Este comentario ha sido eliminado por el autor.
ResponderEliminarAhora lo arreglaron creo... No estoy seguro pero en la app de Tinder, cuando entras al perfil de un Match lo único que podés ver es el nombre y sus fotos. Nada más. Supongo que eso está hecho server-side en base a este bug, me parece una solución horrible para la app. Lo único que tenían que hacer era replicar el código que usan en la selección de personas. Luego me fijo si con la API plse sigue pidiendo ver la información.
ResponderEliminarDefinitivamente siempre que hay una app así, con chat gratis y con la posibilidad de conocer personas, habrá acosadores, ya depende de la inteligencia de cada quien
ResponderEliminar