14 feb. 2017

Apuntes sobre la seguridad de la verificación en 2 pasos de WhatsApp

Hace apenas un par de semanas hubo mucho revuelo con el artículo de The Guardian (EN) en el que se aseguraba que el cifrado de WhatsApp tenía una vulnerabilidad que podría permitir a los ciberatacantes bypasearlo, leyendo nuestras conversaciones y, si me apura, casi hasta robándonos el alma.

Como expliqué por aquel entonces a los miembros de la Comunidad, y profundizamos en el grupo privado de Telegram de los mecenas, más que vulnerabilidad estábamos ante una medida que anteponía la usabilidad del servicio a la seguridad de esta feature. Y aunque en efecto esto conllevaba un riesgo, el ámbito de actuación del ataque (era necesario que el cibercriminal engañase a nuestro operador de telefonía haciéndose pasar por nosotros para activar nuestra cuenta en un dispositivo externo), y sobre todo, lo que se obtenía (únicamente podría leer aquellos mensajes que todavía no hubieran sido leídos en el dispositivo original) no era suficiente como para considerarlo vulnerabilidad crítica, ni mucho menos para considerar el cifrado de WhatsApp inseguro.

A fin de cuentas, no era algo automatizable (los ataques debían ser dirigidos a personas específicas) y difícilmente sería reproducible en un entorno real (quiero pensar que las preguntas de seguridad que hacen las operadoras dificultan hasta el extremo el éxito de un escenario semejante).
Sin embargo parece que WhatsApp ha movido ficha, y a finales de esta semana implementaba la verificación en dos pasos (EN/WhatsApp > menú > Cuenta > Verificación en dos pasos). Y digo a finales porque aunque el anuncio se hacía a mediados, al menos a un servidor le llegó este sábado. Algo que es de agradecer, pero que de nuevo, antepone la comodidad del usuario a la seguridad propia de esta característica.

1.- El sistema elegido es el peor de todas las opciones disponibles

La idea de implementar un segundo factor de autenticación está en que, llegado el caso en el que a priori no podamos asegurar que estamos ante el usuario lícito (cosa que podría ocurrir cuando alguien intentase entrar en la cuenta desde un dispositivo distinto), éste tenga que implementar un control extra que así lo certifique.

WhatsApp no utiliza per sé contraseñas, y su método principal de identificación es la posesión (yo soy yo porque tengo este número de teléfono al que la herramienta puede enviar un SMS y validarlo gracias a que le hemos concedido permisos de lectura de SMS). Con la verificación en dos pasos que han implementado, añaden una capa más basada en el conocimiento (yo soy yo porque además de tener este número de teléfono, me sé una contraseña que solo yo debería saber), que entrará en juego de vez en cuando (más que nada para recordarnos que existe y que no la olvidemos) y siempre que intentemos sincronizar nuestra cuenta en un dispositivo nuevo.

Precisamente esa "debilidad" de la cual hablábamos al principio del artículo.

Ahora bien, podrían haber utilizado OAuth (EN), como de hecho utilizan ya muchas herramientas de segundo factor (véase Google, Microsoft, la mayoría de carteras BitCoin…), y no un simple PIN de 6 números sujeto, como bien sabe, a posibles ataques por fuerza bruta.

Un PIN que por cierto temo que acabe en la mayoría de los casos siendo del tipo “111111” o "123456", o como mucho una fecha importante para el usuario (dos dígitos para el día, dos para el mes, dos para el año), mandando al cuerno todavía más la seguridad del sistema (es lo primero que probará un atacante).

Como ya he explicado en su momento a colación del ranking de sistemas de seguridad que un servidor recomendaba utilizar en nuestros dispositivos, un PIN numérico es de los peores sistemas que hay en la actualidad, sencilla y llanamente porque a día de hoy resulta relativamente sencillo para un ciberatacante automatizar su descubrimiento. Está además sujeto a posibles ataques de shoulder surfing (alguien cerca de nosotros puede observarnos mientras lo metemos y aprenderlo fácilmente) e incluso, si me apura, ante ataques de grasa en los dedos (observar la grasa que dejan nuestras huellas en la pantalla para sacar las posibles combinaciones).

Había muchas otras alternativas (mismamente podían haber puesto una contraseña alfanumérica), y han elegido bajo mi humilde opinión una de las peores.

2.- La verificación en dos pasos se bypasea sola

El sistema está diseñado para que, en caso de que durante un mínimo de 7 días no haya respuesta por parte del dispositivo, el segundo factor desaparezca y el usuario pueda recuperar su cuenta.

Una medida que toman con la idea de que el sistema sea lo más cómodo de usar para el usuario (si te olvidas del PIN, al menos sabes que esperando una semana puedes recuperar la cuenta), pero que facilita también el trabajo de los criminales (podrían bloquearte mediante un DOS hasta que pasaran los días necesarios para bypasear automáticamente la verificación en dos pasos).

Afortunadamente, sí han hecho una cosa muy bien, y es que al menos en este caso, el usuario (o ciberatacante), podrá utilizar la cuenta pero borrarán todos los mensajes que hayas recibido durante ese periodo. Así que aunque esta vía abre la veda a robos de identidad, no vendrá asociada además a robo de información privada.

Si pasan más de 30 días, eso sí, la cuenta se borra y ya cualquiera puede volver a crearla con ese mismo número.

3.- El segundo factor de la verificación en dos pasos

Como guinda del pastel, WhatsApp te da la opción de que incluyas un email para que, si nos olvidamos del PIN o queremos cambiarlo, podamos demostrar que en efecto somos nosotros y realizar este trámite vía correo.

Es, de nuevo, algo que habitualmente se ofrece cuando el sistema de verificación está basado en el conocimiento, pero en WhatsApp entraña un riesgo extra al considerar que este servicio se utiliza exclusivamente en dispositivos móviles. Justo esos dispositivos en los que, salvando muy contados casos, tenemos agregadas por defecto las credenciales de usuario de todas las aplicaciones. Correo electrónico incluido.

Lo que quiere decir que en caso de robo, y presuponiendo que el ladrón pueda bypasear el bloqueo de pantalla (o que el usuario ni siquiera tenga uno…), podría resetear él mismo la verificación en dos pasos accediendo a la aplicación de correo.

Recalco que no es una vulnerabilidad per sé. Simplemente es un efecto colateral del ámbito de uso de la aplicación, que se agravaría en entornos donde el usuario ya de por sí no ha tomado las medidas de seguridad oportunas.

Y este sí tiene difícil solución sino es sacrificando usabilidad a un nivel que entiendo que no estén dispuestos a sacrificar (la idea es que este 2FA lo utilicen cuantos más usuarios mejor, no solo aquellos muy comprometidos con la seguridad).

Conclusiones

En resumidas cuentas, y pese al carácter un poco pesimista del artículo, quiero dejar claro que es una buena medida, y que por supuesto recomiendo utilizarla.

Hace tiempo que WhatsApp se ha puesto las pilas con la seguridad. Sigue pendiente la privacidad (los metadatos de comunicación (con quién hablas, cuándo te conectas, que tipo de archivos sueles enviar más…) son utilizados por la empresa padre para conocernos mejor), pero viendo en las manos en las que está, creo que eso nunca llegará a verse materializado como nos gustaría.

Aún así, y descontando esto último, WhatsApp es una gran herramienta de comunicación instantánea. Que las hay mejores (Telegram, por ejemplo), pero al menos esta es la principal y al menos esta está tomando medidas adecuadas para aumentar la confianza que depositan sus usuarios en el servicio.

Quizás no al nivel que nos gustaría a algunos, pero dentro de los límites que creo necesarios para un servicio de estas características.

Fuente: Pablo Yglesias

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!