lunes, marzo 21, 2022

WhatsApp: Usa Code Verify para evitar ataques a tu WhatsApp Web #WhatsApp

Hace unos diez días Meta y CloudFlare publicaron una extensión para Google Chrome llamada Code Verify, con la idea de que poder incrementar la seguridad de WhatsApp Web y evitar que, un ataque de hombre en medio, llevara a un cliente una versión de las librerías de JavaScript o alguno de los componentes manipulado utilizando la misma idea que usamos en SRI.

Figura 1: Usa Code Verify para evitar ataques a tu WhatsApp Web

Para que sea fácil de entender lo que hace esta extensión, hay que tener presente que WhatsApp Web es, en esencia, una Web App, y como toda aplicación web utiliza tecnologías Web que pueden ser atacadas, por lo tanto, hay que entender cómo puede ser atacada, y cómo puede ser protegida, utilizando las herramientas que tenemos a nuestra disposición.
En el caso del cliente web de WhatsApp, si alguien fuera capaz de ponerse en medio haciendo un cambio de los ficheros que están ejecutando, podría meter un JavaScript malicioso que robar los mensajes, que escribiera nuevos mensajes, o que directamente manipulara lo que está viendo un determinado usuario. Esto, es algo que hicimos nosotros en el experimento de Owning Bad Guys {and mafia} with JavaScript Botnets, donde inyectábamos, directamente, nuevos ficheros JavaScript.


Pero también lo hicimos, para ejemplarizar cómo se pueden robar cuentas de WhatsApp con un gusano JavaScript creado como extensión de un navegador que atacaban al cliente WhatsApp Web y manipulaban el contenido. Ese experimento se llamó WannaSapp en su versión de WhatsApp Web y WannaGram en su versión de Telegram Web, y lo explicamos por primera vez en la charla de Social Worns & Frauds que puedes verte aquí.


Para evitar la manipulación y carga de ficheros JavaScripts maliciosos, lo que se utiliza es una tecnología conocida que tiene ya un tiempo en el mundo de los navegadores, llamada SRI o SubResource Integrity, que viene a garantizar que el recurso que se carga en una WebApp no ha sido manipulado. Esto está disponible en aplicaciones web desde hace tiempo para garantizar que el JavaScript remoto que cargas de un sitio no ha cambiado y se ha convertido en un "Gremlin" JavaScript que va a atacar a los usuarios de tu web.

Figura 5: Ejemplo de uso de SRI con etiquetas integrity y crossorigin en SCRIPT

Pues bien, lo que hace Code Verify es básicamente eso. Le pasa a Cloud Flare una lista con los hashes de todos los recursos que utiliza WhatsApp Web. Cloud Flare comprueba su seguridad, y los carga en el navegador del cliente vía la extensión a Code Integrity

Figura 6: Arquitectura de Code Verify con SRI de WhatsApp Web

Cuando en ese navegador, el usuario se descarga los ficheros de WhatsApp Web desde Meta, para que el usuario tenga un canal paralelo que le permita comprobar la integridad de los ficheros ya que el canal entre el cliente y Meta podría estar interceptado por un hombre en medio, cuando los ficheros son descargados, Code Verify comprueba que los hashes de ese fichero están intactos.

Figura 7: Resultados de Code Verify

Si esto es así, la extensión, te dará un bonito tic de color verde que garantiza que, Code Verify ha validado los hashes con la información que ha recibido vía canal paralelo desde Cloud Flare, y tendrás una capa más de seguridad para proteger tu WhatsApp Web.
Por supuesto que, siempre existe la posibilidad de hackear todo. Es decir, manipular los datos que recibe Code Verify (que usan canales cifrados de con sus servidores) para cambiar esa información, pero estaríamos hablando de un ataque muchísimo más complejo de ejecutar, lo que hace que reduzca mucho la exposición de seguridad del cliente WhatsApp Web a ataques de Man in the Middle, que es de lo que se trata.
Así que, si usas WhatsApp Web y utilizas Google Chrome, no te va a hacer nada de daño tener instalado Code Verify y proteger con una capa de seguridad adicional tu cliente de mensajería de WhatsApp

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Publicar un comentario