jueves, abril 15, 2021

WhatsApp y la desactivación de cuentas con un mensaje de e-mail

Hace un par de días publiqué en el blog el artículo de "WhatsApp: Cómo un atacante puede bloquear tu cuenta sin que la puedas desbloquear" escrito por Luis Márquez Carpintero y Ernesto Canales Pereña en el que se "weaponizan" dos características de seguridad de WhatsApp, para convertirlo en un ataque para la personas.

Figura 1: WhatsApp y la desactivación de cuentas con un mensaje de e-mail

Esto no es la primera que sucede, y es algo bastante más habitual de lo que las personas se pueden imaginar. En este tipo de escenarios, una medida de seguridad mal diseñada acaba convirtiéndose en un problema - en este caso de disponibilidad del servicio - para un usuario. Si quieres ver muchos ejemplos de esto, di una conferencia el año pasado sobre justo este tema que se llamaba "Weaponizing Features", donde explicaba muchos ejemplos de estas mismas características.

Figura 2: Conferencia de Weaponizing Features

En el caso concreto del bloqueo de la cuenta de WhatsApp, lo que hacen los investigadores es explotar o "weaponizar" de dos medidas de seguridad. Por un lado la de medida de seguridad que evita los ataques de fuerza bruta o adivinación de los códigos de activación de enviados por SMS, con una protección temporal para hacer inviable prácticamente en tiempo útil un ataque de esas características, y una segunda medida de protección - y esta es la más curiosa - por la que un usuario (cualquier) puede desactivar cualquier cuenta de WhatsApp, sea la suya o no, con un simple mensaje de correo electrónico.

Figura 3: Luis Márquez Carpintero, uno de los investigadores de este bug.

La explicación de cómo funciona este correo electrónico para desactivar una cuenta está en la web de WhtasApp, y existe para proteger la privacidad de un terminal ante robos o pérdidas de dirección de e-mail. Basta con que se envíe un mensaje de e-mail al la dirección de WhatsApp, y listo, la cuenta se desactiva.

La explicación de esta medida es fácil. Un usuario sufre el robo de su teléfono desbloqueado, y lo que debe hacer automáticamente es llamar para bloquear la SIM, urgentemente, y evitar así que se reciban llamadas o códigos de verificación por SMS, y luego pedir un cierre de sesión siguiendo el mecanismo antes explicado.
Lo que hace endiabladamente sutil y peligroso es esa regla de "usabilidad", por la que desde cualquier dirección de e-mail se pueda bloquear cualquier sesión en cualquier número de teléfono registrado en WhatsApp. Es verdad que, una dirección de e-mail solo puede usare una vez y para un solo número de teléfono, lo cual es un acierto como forma de mitigar un poco el ataque descrito en el artículo de hace dos días, con lo que una persona que quiera estar cerrando sesiones de WhatsApp debe estar creando mensajes de correo electrónico nuevos cada vez.

Figura 5: Sesión de WhatsApp cerrada por un e-mail

Por supuesto, esta medida es también fácilmente saltable para un atacante con hacer un poco de spoofing de e-mail, suplantando en cada petición una dirección de correo diferente, lo que la hace un poco inútil. Y es algo curioso, pues de nuevo, el correo electrónico - ese caos maravilloso que digo yo - se ha convertido no en un sistema de comunicación sino en algo más, que como ya explicaba en el artículo de "El e-mail ha muerto. ¡Larga vida al e-mail!", le hemos ido dando atribuciones más allá de la de ser un buzón de comunicación.

Llegados a este punto, lo que pasaba por mi cabeza durante el día de ayer, era... ¿cómo puede WhatsApp mitigar este ataque de una manera más racional? Pues usando características extras de protección a la cuenta y mitigación de weaponización.

Por ejemplo, si el usuario tiene un 2FA de WhatsApp asociado a un e-mail, que solo pueda ser desactivada la cuenta de esa dirección de e-mail. Esto dificultaría al atacante la explotación porque tendría que conocer y adivinar cuál es la dirección de e-mail configurada como 2FA. Cuando se configura ese 2FA ya se asocia, implícitamente, la seguridad de la cuenta a la seguridad del e-mail, y además es una solución bastante curiosa, porque realmente no es demasiado práctica si el e-mail está protegido por un 2FA basado en SMS, como os expliqué en el artículo de "WhatsApp y la paradoja de la SIM como Verificación en 1 paso", pero al menos sirve para eso, para asociar un e-mail a un cuenta de WhatsApp, que en este caso puede tener mucho sentido.
Luego, se pueden buscar otras soluciones de mitigación, como por ejemplo hacer un desafío al e-mail para garantizar que no es un correo electrónico suplantado. Para ello, el proceso de desactivación debería ser en dos pasos. Paso uno, se pide la desactivación de la cuenta. WhatsApp genera un OTP y se lo devuelve por e-mail a la dirección de correo electrónico que pide la petición de desactivación. El solicitante de la desactivación envía la confirmación de la desativación con el OTP, para así garantizar que ese correo existe y no está suplantado. Esto reduciría la facilidad de "weaponización" de este ataque.

Y por supuesto, buscar otras soluciones por las que la re-activación no se pueda ver bloqueada por un esquema similar, dando al usuario alguna otra forma de reactivar la cuenta y evitar el bloqueo de los códigos de verificación de forma tan sencilla y automatizable. 

En cualquier caso, este es un ejemplo de una medida de seguridad que se convierte en un problema para la vida del usuario, no solo para su usabilidad, sino también para la disponibilidad, por lo que debe servirnos como ejemplo y muestra del cuidado que debemos tener en cada implementación de una nueva medida de seguridad, que nuestro objetivo es hacerle la vida más segura y fácil, y no nada de lo contrario.

1 comentario:

Madel dijo...

Grande chema, Saludos Perú.

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares