El WiFi ha sufrido dos grandes vulnerables en los últimos años. En octubre de 2017 conocimos KRACK de la mano de Mathy Vanhoef, y en agosto de 2018 conocimos otro ataque que permitía hackear una red WPA-PSK. Ahora, el mismo investigador ha descubierto una decena de vulnerabilidades del WiFi, algunas de las cuales llevan disponibles 24 años.
En el día de ayer, Mathy Vanhoef publicó un estudio titulado «Fragment and Forge: Breaking Wi-Fi Through Frame Aggregation and Fragmentation«, en el cual describe una serie de vulnerabilidades en el WiFi, incluyendo tres fallos de diseño del estándar y nueve fallos relacionados con la implementación. Esta serie de nuevos ataques ha sido bautizada como FragAttacks, donde FRAG significa Fragmentation and Aggregation Attacks.
24 años llevan disponibles las vulnerabilidades
Las vulnerabilidades afectan a todos los protocolos de protección del WiFi desde su concepción en 1997, yendo desde WEP hasta incluso el WPA3 actual. Con ellas, un atacante puede falsificar frames de varias maneras, lo cual le permita extraer información sensible. También hay un fallo en la manera en la que se combinan varios frames de datos y en la forma en la que se fragmentan, donde se puede amplificar el impacto de los ataques potenciales.
De esta forma, es posible cambiar un flag sin autenticación en el encabezado de un frame para que los datos cifrados sean procesados como si fueran varios frames en lugar de un único paquete de red. Haciendo eso, consiguieron interceptar el tráfico de una víctima utilizando un servidor de DNS malicioso.
Lo grave del asunto es que todos los dispositivos que probaron son vulnerables a alguno de estos ataques. En sus pruebas utilizaron 75 dispositivos, incluyendo tarjetas de red y dispositivos con Windows, Linux, Android, iOS y macOS. Curiosamente, NetBSD y OpenBSD no son vulnerables a estos ataques.
Otras vulnerabilidades implican que, aunque todos los fragmentos de un frame estén cifrados con la misma clave, el receptor no tiene por qué verificarlo. Con ello, es posible cifrar paquetes con diferentes claves y robar datos WiFi de un dispositivo. Otra vía también implica inyectar paquetes de manera arbitraria.
Para llevar a cabo estos ataques es necesario que el atacante tenga cobertura de la red WiFi que se quiere hackear. Posteriormente, tiene que interactuar en red con el sujeto al que quiere hackear, como puede ser descargar una imagen de un servidor controlado por el atacante. A través de ello, es posible mandar un paquete malicioso por IPv4 con un encabezado modificado para que puedan inyectarse paquetes.
Listado de vulnerabilidades y quienes han parcheado
El listado completo de CVE de las vulnerabilidades es el siguiente:
- CVE-2020-24588: ataque de combinación (aceptar paquetes no SPP A-MSDU).
- CVE-2020-24587: ataque de clave combinada (reensamblar fragmentos cifrados usando claves diferentes)
- CVE-2020-24586: ataque de caché de fragmentos (no borrar fragmentos de la memoria cuando hay una conexión o reconexión a una red).
- CVE-2020-26145: aceptación de fragmentos de texto sin formato como frames completos en una red cifrada
- CVE-2020-26144: Aceptación de frames de texto A-MSDU sin formato con un encabezado RFC1042 con EtherType EAPOL en una red cifrada.
- CVE-2020-26140: Aceptación de frames de datos de texto sin formato en una red protegida.
- CVE-2020-26143: Aceptación de frames de datos de texto plano fragmentados en una red protegida.
- CVE-2020-26139: Reenvío de tramas EAPOL aunque el remitente no esté autenticado (solo debería afectar a los puntos de acceso).
- CVE-2020-26146: Reensamblaje de fragmentos cifrados con números de paquete no consecutivos.
- CVE-2020-26147: Reensamblaje de fragmentos mixtos cifrados o sin cifrar.
- CVE-2020-26142: Procesamiento de frames fragmentados como frames completos.
- CVE-2020-26141: No se verifica el TKIP MIC de frames fragmentados.
En el caso de querer comprobar si nuestro router es vulnerable a estos ataques, Mathy Vanhoef ha publicado una herramienta en su página de GitHub y una demostración en YouTube, donde queda claro que aprovecharse de estos fallos es bastante complicado, pero no imposible.
Ya hay parches disponibles para estas vulnerabilidades gracias a una coordinación de nueve meses entre la WiFi Alliance y la Industry Consortium for Advancement of Security on the Internet (ICASI). En Linux ya se han aplicado los parches, mientras que Intel también lo ha parcheado en sus chips WiFi. En el caso de Windows 10, el parche está disponible desde el 9 de marzo. Ya sólo queda que los fabricantes de routers lo implementen, lo cual puede llevar más tiempo, y por desgracia en muchos de ellos no llegará nunca.