WiFi bajo ataque (II): Kr00k, un vector de ataque que se aprovecha de “bugs” en tarjetas de red
En el año 2019, la empresa de seguridad informática ESET descubrió una vulnerabilidad de Capa 2 (Layer 2), que afectaba a más de 1.000 millones de dispositivos inalámbricos (WiFis) en todo el mundo, y que permitía el desciframiento de parte de las tramas de una conexión inalámbrica por terceras personas. Dicha vulnerabilidad recibió el nombre de Kr00k.
Al igual que sucedía con el ataque KRACK, que ya analizamos en un artículo anterior, en Kr00k la vulnerabilidad aparece cuando una tercera persona se interpone en la conexión entre el punto de acceso del Wifi y el cliente, y fuerza a ambos a desconectar y reconectar de nuevo:
Antes de iniciar una conexión cifrada, el punto de acceso y el cliente deben autenticarse. La autenticación de una conexión WPA2 se realiza en dos fases sucesivas: La primera de ellas es la fase de asociación (association stage), y la segunda fase es el cuádruple apretón de manos (4-way handshake). Kr00k afecta a la primera de ellas, mientras que KRACK es un ataque de repetición contra la segunda.
En la fase de asociación, el cliente solicita al punto de acceso (“el router”) crear una conexión entre ambos y con ello acceder a la red de área local gestionada por el mismo (en la mayoría de los casos, los puntos de acceso funcionan también como servidores DHCP y realizan tareas de asignación de direcciones IP privadas). El cliente envía para ello una solicitud de asociación en la que especifica el tipo de cifrado que quiere utilizar. El punto de acceso responde con otro mensaje en el que comunica al cliente si la asociación ha sido exitosa o no. En caso afirmativo, se procede seguidamente al cuádruple apretón de manos, durante el cual tendrá lugar la autenticación propiamente dicha y la fijación de la clave de cifrado a emplear en las comunicaciones bilaterales entre ambos dispositivos.
Cuando ambos dispositivos se desconectan se dice que se ha producido una disociación entre ambos. Si se vuelven a conectar de nuevo, se habla de una reasociación. En ambos casos, la tarjeta de red inalámbrica (WNIC, Wireless Network Internet Controller) borra la clave de sesión (Temporal Key, una cadena de 128 bits) de su memoria, dado que ya no va a ser utilizada, fijando a cero todos los bits de la misma. Sin embargo, cuando el cliente utiliza determinadas tarjetas de red la tarjeta sigue encriptando (y enviando hacia el punto de acceso a través de la conexión inalámbrica) los datos todavía existentes en el búfer, incluso después de haber fijado a cero todos los bits de la clave. Con ello, cualquier atacante puede descifrar trivialmente las tramas encriptadas (dado que la clave consiste en una cadena de 128 ceros). Con suerte, el atacante podría interceptar y descifrar los datos del handshake, y hacerse con ello la clave de grupo (GTK, Group Transient Key), lo que le permitiría difundir (broadcast) mensajes a todos los clientes de la red de área local.
Los investigadores de ESET encontraron que la vulnerabilidad descrita afectaba a los chips FullMAC WLAN, fabricados por la compañía Broadcom and Cypress, y que se utilizan en más de mil millones de dispositivos en todo el mundo. Entre los dispositivos afectados podemos señalar los siguientes:
• Amazon Echo 2nd gen
• Amazon Kindle 8th gen
• Apple iPad mini 2
• Apple iPhone 6, 6S, 8, XR
• Apple MacBook Air Retina 13-inch 2018
• Google Nexus 5
• Google Nexus 6
• Google Nexus 6P
• Raspberry Pi 3
• Samsung Galaxy S4 GT-I9505
• Samsung Galaxy S8
• Xiaomi Redmi 3S
La vulnerabilidad no sólo afecta a los clientes, sino que en algunos casos afecta también a los routers que gestionan el punto de acceso. Los investigadores encontraron que ése era el caso de algunos modelos de las compañías ASUS y Huawei, entre ellos:
• Asus RT-N12
• Huawei B612S-25d
• Huawei EchoLife HG8245H
• Huawei E5577Cs-321
En los últimos meses, han sido diseñados scripts en Python para implementar este ataque: Por lo general, en ellos el atacante comienza clonando la conexión del punto de acceso y asumiendo la posición de un hombre en el medio (“man in the middle”). Tras ello envía una trama de gestión (“management frame”) que interrumpe la conexión entre la estación y el cliente. Es entonces cuando la tarjeta de red de este último descarga todo su contenido y lo encripta utilizando una clave consistente en una cadena de 128 cero. El contenido es trivialmente descifrado por el script.