30 ene. 2013

Whatsappvoyeur: cualquiera puede ver tu perfil en Whatsapp

Whatsappvoyeur es un servicio web creado por berni69 (creador del famoso airwin) y Alejandro Amo que permite a cualquier persona, incluso sin el uso de teléfono móvil, obtener todos los datos de perfil de un determinado usuario de Whatsapp. En el momento de escribir estas líneas somos capaces de proporcionar los siguientes:
  • Foto de perfil a tamaño real y fácil de descargar a disco como cualquier imagen de una web
  • Frase de estado o "status quote"
  • Último momento en que el usuario cambió la "status quote"
  • Último momento en que el usuario apareció conectado en la red
Con ello pretendemos realizar la prueba de los siguientes conceptos y aplicaciones prácticas:
  • Determinar si un usuario te ha bloqueado en Whatsapp (cotejando datos con tu movil)
  • Capturar la foto de perfil a tamaño real (con mas detalle de lo que la gente cree cuando las elige)
  • Controlar la actividad de un determinado usuario (controlar si está o no conectado)
  • Demostrar que los datos de todos son quasi-públicamente accesibles debido a las políticas de Whatsapp (solo hace falta estar autenticado dentro de Whatsapp - la web conecta a Whatsapp usando conjuntos de credenciales válidas que hemos creado para la ocasión)
¿Cómo y por qué funciona WhatsappVoyeur?

Antes de nada debo rememorar uno de los problemas de Whatsapp que ya fué comentado aquí: los datos del perfil de los usuarios de Whatsapp eran completamente accesibles al público, mediante una simple consulta a una url. Ni siquiera era necesario entrar en la red interna de Whatsapp propiamente dicha.

Gracias al script de Alejandro Ramos pudimos practicar el harvesting de todas las cuentas de Whatsapp de España, saber que por aquel entonces sumábamos casi 10 millones de usuarios, y tener sus "status quotes" en una base de datos. Todo ello, sin esfuerzo, sin más límite que el de nuestra paciencia, sin siquiera necesitar credenciales válidas de Whatsapp.

Desde el punto de vista de arquitectura, modelo de datos y privacidad, es de lo mas "braindead" que se puede perpetrar.

Pues bien, el 9 de enero, Whatsapp realizó un nuevo cambio en el protocolo de comunicaciones, con la intención de resolver este asunto: han desaparecido de sus servidores los archivos PHP contra los que podíamos hacer un query usando simplemente wget, curl o un navegador regular. Adiós a "https://sro.whatsapp.net/client/iphone/iq.php"

En su lugar, implementaron un protocolo de intercambio de datos de los contactos. A este protocolo le llamaremos "Contact Sync V2", tal como ha dado en llamarle el egipcio Tarek Galal, creador de la API yowsup. Dicho protocolo está colocado donde siempre debió estar: debajo de la capa de sesión. Los datos devueltos por este nuevo conjunto de comandos son muy parecidos a los que devolvía el famoso archivo iq.php, con la salvedad de que ahora es necesario estar autenticado contra el servidor de Whatsapp para poder enviar esos comandos.

Pensemos por un momento en el modelo de datos de Whatsapp, en las reglas bajo las que han definido dicho modelo: una de las características más inseguras del protocolo Whatsapp y de las relaciones entre sus usuarios es que "quien no está explícitamente bloqueado está implícitamente permitido". Cualquier persona que añada nuestro número de teléfono a su agenda puede ver nuestra foto de perfil, nuestra "frase de estado" y controlar en todo momento si estamos conectados, o cuánto tiempo hace que lo estuvimos por última vez. Y todo esto nos está sucediendo sin que nosotros podamos hacer absolutamente nada por evitarlo, en tanto en cuanto el individuo que nos "controla" no nos envíe un mensaje que delate su presencia (ese es otro tema: esta política permite que un usuario nos envíe un mensaje sin que lo "aceptemos" previamente como contacto. Podremos bloquearlo, pero ya nos ha molestado.

El protocolo "Contact Sync V2" apenas implica una mejora real en la protección de nuestros datos de perfil en Whatsapp. Solo coloca una barrera de autenticación frente al exterior, pero no nos protege de otros usuarios autenticados en el interior; no nos protege como individuos porque las políticas en sí mismas no lo hacen (deficiencia de diseño), y tampoco nos protegen del "harvesting" masivo porque, si bien el protocolo "Contact Sync V2" proporciona una base técnica para impedirlo, no se le ha sacado partido aún.

Las políticas del tipo "lo que no está explícitamente prohibido, está implícitamente permitido" siempre deben ser implementadas con mucho cuidado, pero cuando los nombres de usuario son números de teléfono móvil que cualquiera puede obtener y sondear, y cuando están en juego nuestras fotos y otros datos que pueden ser bastante sensibles... es una muy mala idea de base.

Y digo "de base" porque es un error de diseño en sí mismo. No es una deficiencia del protocolo de comunicaciones sino una deficiencia del modelo de datos y de su lógica inherente. Whatsapp debería cambiar muy profundamente la definición del modelo de datos y los procesos de integración con nuestra agenda en el teléfono, cosa que dudo mucho que tenga en mente hacer. Ante todo soy consultor tecnológico empresarial y sé que, lamentablemente, hay cosas que no son rentables en un contexto de negocio; sé lo duro e incontrolable que es tirar adelante una startup mientras luchas con el capital riesgo. Probablemente Whatsapp seguirá invirtiendo lo mínimo indispensable en materia de seguridad, y el 99% de su esfuerzo seguirá siendo el crecimiento de la base de usuarios y la búsqueda de monetización de los mismos. Pero desde el punto de vista del usuario, de su seguridad y su privacidad, opino que Whatsapp ha cometido un error desde el principio y ha excedido los límites razonables de controversia e inseguridad, cosa por la cual (entre otras como peor diseño y peor campaña de comunicación) caerá derrotado por alternativas como Spotbros o Line.

Fuente: Security by Default

1 comentario:

  1. Seguro que hace tiempo que ya hay gente que introduce un número aleatorio en búsqueda de celebrities o algo así. Gente con mucho tiempo libre y poco afecto por su vida, está claro.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!