Explotar esta vulnerabilidad podría permitir a un atacante dentro del rango de la WiFi, insertar un virus a la red o incluso interceptar cierto tipo de comunicaciones y por lo tanto, tener acceso a información sensible que hasta ahora considerábamos segura. Además, afecta a todas y cada una de las redes WiFi actuales protegidas y a todos los dispositivos que utilicen dicho protocolo, y esto significa un gran agujero de seguridad para los entornos domésticos y empresariales, lo que harán tensar a los equipos de seguridad de las compañías con planes específicos.
Esta vulnerabilidad ha sido encontrada recientemente por el investigador Mathy Vanhoef, de la universidad belga KU Leuven, que ha bautizado como KRACK, Key Reinstallation Attacks. Afecta en una u otra manera a cualquier plataforma como Android, Linux, Windows, OpenBSD, MediaTek, Linksys, etc.... El paper será presentado formalmente en la conferencia CCS, Computer and Communication Security el día 1 de Noviembre.
Figura 2: Paper de KRACK ATTACK |
La única prueba que tenemos hasta ahora donde se pueda confirmar que esta vulnerabilidad puede ser explotada, es la demostración PoC que ha realizado y que ha publicado en su blog a modo de vídeo. Dicha PoC se basa en un ataque KRACK contra un dispositivo Android, donde el atacante es capaz de descifrar la información que están transmitiendo la víctima (al parecer KRACK es especialmente efectivo contra Linux y Android 6.0 o superior). De hecho, cuando se utilizan otras plataformas, es más complicado de descifrar todos los paquetes e incluso algunos no se pueden descifrar. Éste es el vídeo donde se puede observar el ataque en funcionamiento:
Figura 3: PoC de KRACK ATTACK
El eje principal vector del ataque se centra en four-way handshake del protocolo WPA2. Resumiendo, este procedimiento (handshake) se utiliza para comprobar las credenciales cuando un usuario está intentando unirse a una red WiFi. Durante este proceso se generan claves nuevas de cifrado, las cuales se instalan después de recibir el Mensaje 3 de los 4 y que sirven para proteger la sesión del usuario que está intentando conectarse a la WiFi. Los Mensajes se definen mediante tramas tipo EAPOL (EAP over LAN) las cuales tienen la siguiente estructura:
Figura 4: Formato simplificado de una tram EAPOL mostrado en el paper de KRACK ATTACK |
La vulnerabilidad que explota KRACK permite al atacante manipular o repetir de nuevo este tercer Mensaje, permitiendo reinstalar la clave criptográfica que ya se ha utilizado. Y esto es importante para poder salvaguardar la seguridad del protocolo WPA2 ya que una clave criptográfica sólo puede ser utilizada una vez durante este proceso. El paper publicado explica en detalle todo el procedimiento KRACK. Éste sería un resumen simplificado del ataque:
1. El atacante intenta unirse a una red WiFi.
2. Comienza el proceso four-way handshake.
3. Se negocia una nueva clave de cifrado en el Mensaje 3 del proceso.
4. No se envía la señal de acknowledgment (reconocimiento) que verifica que se ha recibido el Mensaje 3 correctamente.
5. Esto fuerza que el punto de acceso (AP) retrasmita de nuevo el Mensaje 3 varias veces.
6. Este proceso repetido varias veces, siempre instalará la misma clave de cifrado y por lo tanto reseteará a cero nonce (número aleatorio el cual precisamente se encarga de evitar que se pueda repetir ataques y que actúa como contador de los paquetes transmitidos, ver figura 4).
7. El atacante puede en este punto forzar estos reseteos nonce recolectándolos y repitiendo retrasmisiones del Mensaje 3.
8. Reutilizando estos nonce es posible repetir los paquetes y descifrarlos ya que la misma clave de descifrado se utiliza con valores nonce que ya se han utilizado en el pasado (reutilizando los llamados “keystream” cuando se cifran paquetes).
9. En función del análisis de los paquetes descifrados, sería posible insertar un programa malicioso en la red o simplemente analizar el tráfico generado por los usuarios de la red.Ahora mismo no existe ningún parche de seguridad que pueda solucionar este problema (así que atentos para cuando salgan). De momento, el CERT ha enviado un comunicado advirtiendo del problema, así como un listado del hardware y el software afectado (ojo a los fabricantes afectados, CISCO, Google o Apple son sólo algunos de ellos). Prácticamente cualquier dispositivo que tenga WiFi tendrá que ser parcheado, desde dispositivos móviles pasando por routers.
Figura 5: Flujo del proceso "4-way handshake" y en rojo Mensaje 3, donde KRACK efectúa su ataque |
¿Y qué podemos hacer para protegernos? De momento esperar a que aparezca algún parche para cada uno de los dispositivos. Cambiar de router o de contraseña de la WiFi no ayudará. La única protección fiable que tenemos es utilizar VPNs dentro de nuestra red o utilizar siempre cifrado SSL/TLS (páginas web HTTPS por ejemplo). Por otro lado, Microsoft se ha dado prisa y ya tiene un parche para solucionar este problema para Windows.
Figura 6: Parche para KRACK Attack de Microsoft |
Para terminar, no podemos olvidar que los dispositivos afectados no se limitan a portátiles y ordenadores de empresas o de usuarios particulares. También tenemos que tener en cuenta que otros dispositivos más cotidianos como televisiones, relojes o incluso coches también están afectados por esta vulnerabilidad. Y mucho más preocupante podría ser pensar en ¿cuántos dispositivos IoT utilizan WPA2 dentro de redes WiFi pertenecientes a procesos industriales? Esperemos que todos los fabricantes se den prisa en aplicar los parches correspondientes lo antes posible, porque de momento, el poder parece que lo tienen sólo los chicos buenos …