De un tiempo a esta parte están saliendo muchas noticias relacionadas con la seguridad de WhatsApp, quizás sea el precio a pagar por ser una de las aplicaciones de mensajería instantánea de referencia y una de las más utilizadas en el mundo. Tampoco su histórico en cuanto a fallos de seguridad es que ayude mucho. Lo que quizás no debería ser tan habitual es que de tarde en tarde se tome el funcionamiento habitual de la aplicación como un fallo de seguridad. Esto es lo que ha pasado estos días con la aparición de un comentario en Twitter de una empleada de Amazon, Abby Fuller, alertaba de un supuesto fallo de seguridad que permitiría leer los mensajes de otros usuarios.
Esta noticia me recuerda a otra de hace justamente dos años en la que se hablaba de otro “supuesto” fallo de seguridad de WhatsApp, la cual me motivó a hacer un estudio comparando el funcionamiento de las distintas aplicaciones de mensajería cuando se reinstalaban en otro dispositivo. El estudio tuvo bastante repercusión y hasta donde yo se, este era el artículo más leído de la historia del blog de ElevenPaths, donde lo publiqué.
En la imagen superior, resumen del estudio, se puede apreciar como sólo WhatsApp y Facebook Messenger reenvían los mensajes almacenados en el servidor si reinstalamos la aplicación en otro teléfono. En otras aplicaciones debemos introducir una contraseña o superar algún test que valide que somos los antiguos usuarios de la cuenta. Una vez validado que somos los anteriores usuarios se proceder a reenviar los mensajes almacenados en el servidor. Si no se supera el test, estos sistemas entienden que eres un nuevo usuario y eliminan esos mensajes no enviados. En algunas plataformas no existe esta opción y al reinstalar la App en otro dispositivo siempre borran los mensajes no entregados.
¿Que pasó hace dos años?
Hace dos años, se hablaba de una supuesta puerta trasera que se podría utilizar mediante el clonado de una SIM. Mediante este clonado, un atacante podría registrar nuestro número en WhatsApp y recibir nuestros mensajes. Aunque a día de hoy los controles para realizar un duplicado de SIM son bastante fuertes, si una persona consiguiera clonar nuestra SIM, que espíen nuestro WhatsApp podría ser el menor de nuestros problemas. En esa situación, el atacante puede recibir nuestras llamadas, realizar llamadas o mandar SMSs en nuestro nombre y el movil se suele utilizar como segundo factor de autenticación en casi todas las aplicaciones. Correo electrónico, Twitter, Facebook e incluso transferencias bancarias estarían en manos del atacante. El problema de este ataque, en el caso de WhatsApp, es que el atacado se daría cuenta pronto de que alguien esta suplantando su cuenta, ya que no podría enviar o recibir WhatsApp hasta que vuelva a registrar la cuenta como suya. Momento en el que el atacante dejaría de tener acceso a los mismos
¿Que puede haber pasado esta vez?
Debo recalcar que bajo mi punto de vista, lo ocurrido tiene más que ver con el comportamiento normal de WhatsApp que con un fallo de seguridad. Para analizar el comportamiento registrado en el telefono de la empleada de Amazon, el cual no pongo en duda, debemos repasar brevemente el funcionamiento de las aplicaciones de mensajería instantánea. En todas ellas, cuando mandamos un mensaje a otro usuario, el mensaje nunca es enviado directamente al destinatario, aunque pueda parecerlo. Los mensajes siempre son enviados a un servidor que es el encargado de enviárselo al destinatario. Esto se hace de esta forma para desacoplar el envío de mensajes de la recepción de los mismos y de esta forma no depender de que los dos usuarios estén conectados a la vez al sistema de mensajería. Si por el motivo que fuera (vuelo, viajes en los que no tienes datos móviles, etc) una persona no se conecta al servicio durante unos días, el servicio de WhatsApp almacena todos los mensajes que reciba hasta que se vuelva a conectar y por un periodo máximo de 45 días.
Por otra parte, conviene tener en cuenta que desde los inicios de la telefonía móvil, los operadores se enfrentan a un problema, y es que el número de teléfonos esta limitado. Si contamos que los móviles en España suelen empezar por 6 y tienen una longitud de 9 cifras, el número máximo de móviles que empiecen por 6 esta limitado a 100 millones. Puede parecer un numero alto, pero si pensamos que de media cada usuario suele disponer de dos números de teléfono móvil, en España estaríamos hablando de cerca de 90 millones de números en uso. Esto obliga a que los operadores “reciclen” los números que dejan de estar activos y los asignen a nuevos usuarios. Esto es lo mas probable que le haya ocurrido a Abby, la empleada de Amazon que alertó del “supuesto” problema. A Abby le han debido asignar un numero que previamente estuvo asignado a otra persona y al registrarlo en WhatsApp le empezaron a llegar los mensajes del anterior usuario.
Además si tenemos en cuenta que no hace falta ser un hacker de primer nivel para tener WhatsApp funcionando en un emulador de Android y mediante esto poder utilizar WhatsApp mas tiempo que la vida de nuestra SIM, puede haberse creado un escenario perfecto para la confusión creada. Como se puede ver en la imagen inferior sólo es necesario arrancar el emulador de Android, instalar WhatsApp en el mismo, introducir los datos del movil y el código que llega por SMS. Podría haberse dado el caso de que a Abby le hubieran reasignado un número con WhatsApp activo mediante esta técnica.
Histórico de fallos.
Es cierto también que la historia de fallos de seguridad de WhatsApp no ayuda a evitar que este tipo noticias se hagan virales y es que si hacemos un repaso rápido de algunos de los fallos descubiertos en su historia, podemos pensar que en sus inicio, la seguridad no debió ser una de sus prioridades. Entre estos fallos hay algunos en los que he participado, y podríamos destacar los siguientes:
Inicialmente WhatsApp no utilizaba cifrado y cualquier usuario que estuviera en la misma WiFi que nosotros era capaz de ver nuestras conversaciones.
Cuando cifró las comunicaciones, se olvidó de que utilizaban como contraseña elementos físicos del teléfono. La dirección MAC en el caso del iPhone, IMEI en el resto de plataformas. Esto permitía que alguien que conociera tu número y este dato pudiera leer tus mensajes o mandarlos en tu nombre. En el video siguiente podemos ver la prueba de concepto que presenté en la conferencia No cON Name de 2012, en la que se simula como manipular las comunicaciones para que dos enamorados rompiesen.
Cuando WhatsApp estableció una contraseña distinta para cada instalación, pudimos descubrir el valor de la misma gracias a Juan Garrido que lo contó en este artículo. Gracias a ello pudimos interceptar las comunicaciones, descifrarlas, modificarlas, volver a cifrarlas. De esta forma se podía proteger las comunicaciones frente al almacenamiento de mensajes en los servidores de WhatsApp o incluso modificar el emisor o el receptor de los mensajes. Así podíamos ser capaces de modificar los mensajes recibidos en nuestro dispositivo y simular que alguien nos acosa sin ser cierto. Pero con el agravante de que no se pudiera demostrar que hubiera habido una manipulación en las bases de datos de la aplicación, ya que las modificaciones se hacían “en el aire”. Todo ello lo contamos en varias conferencias entre las que destacaría la de RootedCON 2014
En cuanto al mecanismo de almacenamiento de archivos multimedia, Juan Garrido y yo presentamos en la Universidad de Alcalá cómo podíamos almacenar en los servidores de WhatsApp casi cualquier tipo de ficheros de forma anónima. Lo cual permitiría distribuir malware o crear paginas de phishing alojadas en la plataforma de WhatsApp.
Lo cierto es que tras estos y otros muchos más fallos, WhatsApp ha ido mejorando su seguridad hasta tener unas medidas bastante fuertes como podemos ver en la charla que dio Raúl Siles en la RootedCON de 2017.
Gracias por leer esta entrada y nos vemos en la red.