🔥Adquiere tu membresía:  acceso a todos los cursos, videos eliminados, contenidos protegidos, manuales y más. >> Ver Más

Vulnerabilidad de DNS sin parches afecta a millones de enrutadores y dispositivos IoT

Un error del Sistema de Nombres de Dominio (DNS) sin parches en una biblioteca C estándar popular puede permitir a los atacantes realizar ataques de envenenamiento de DNS contra millones de dispositivos y enrutadores de IoT. Según investigadores de seguridad, el ataque permitiría tomar el control de estos dispositivos. 

Los investigadores de Nozomi Networks Labs descubrieron la vulnerabilidad que afecta la implementación de DNS en todas las versiones de uClibc y uClibc-ng. Estas son bibliotecas estándar C populares que se encuentran en numerosos productos de Internet de las Cosas (IoT).

“La vulnerabilidad es causada por la previsibilidad de los IDs de transacción incluidos en las solicitudes de DNS generadas por la biblioteca. Esto puede permitir a los atacantes realizar ataques de envenenamiento de DNS contra el dispositivo de destino”.

Giannis Tsaraias y Andrea Palanca de Nozomi.

En un ataque de envenenamiento de DNS, también conocido como suplantación de identidad de DNS y envenenamiento de caché de DNS, un atacante engaña a un cliente de DNS para que acepte una respuesta falsificada. Esto obliga a un programa a realizar comunicaciones de red con un punto final definido arbitrariamente en lugar del legítimo.

Numerosos dispositivos afectados

El alcance de la vulnerabilidad es enorme. Esto  porque los principales proveedores como Linksys, Netgear y Axis, así como las distribuciones de Linux como Embedded Gentoo, utilizan uClibe en sus dispositivos. Mientras tanto, uClibc-ng es una bifurcación diseñada específicamente para OpenWRT. OpenWRT es un sistema operativo común para enrutadores implementados en varios sectores de infraestructura crítica. Los dispositivos específicos afectados por la vulnerabilidad no fueron revelados como parte de esta investigación.

Además, si un atacante realiza un ataque de envenenamiento de DNS exitoso en un dispositivo afectado, también puede realizar un ataque de intermediario posterior. Esto se debe a que, al envenenar los registros DNS, pueden redirigir las comunicaciones de la red a un servidor bajo su control.

“El atacante podría entonces robar y/o manipular la información transmitida por los usuarios y realizar otros ataques contra esos dispositivos para comprometerlos por completo. El problema principal aquí es cómo los ataques de envenenamiento de DNS pueden forzar una respuesta autenticada”.

Los investigadores están trabajando actualmente con el mantenedor de la biblioteca uClibe para desarrollar una solución para la vulnerabilidad, que deja a los dispositivos vulnerables. Debido a esto, los investigadores de Nozomi se negaron a revelar detalles específicos del dispositivo en el que pudieron reproducir la vulnerabilidad para mantener a raya a los atacantes. 

DNS como objetivo

La noticia de la vulnerabilidad de DNS trae recordatorios de la vulnerabilidad Log4Shell del año pasado. Log4Shell provocó una gran preocupación dentro de la comunidad de seguridad cibernética cuando se descubrió en diciembre debido a su alcance. La vulnerabilidad afecta el omnipresente framework de código abierto Apache Log4j, que se encuentra en innumerables aplicaciones Java utilizadas en Internet. De hecho, un informe reciente encontró que la vulnerabilidad continúa poniendo en riesgo a millones de aplicaciones de Java, aunque existe un parche para la falla.

Aunque afecta a un conjunto diferente de objetivos, la vulnerabilidad de DNS también tiene un amplio alcance no solo por los dispositivos a los que potencialmente afecta, sino también por la importancia inherente del DNS para cualquier dispositivo que se conecte a través de IP

El DNS es una base de datos jerárquica que cumple el propósito integral de traducir un nombre de dominio a su dirección IP relacionada. Para distinguir las respuestas de diferentes solicitudes de DNS además de las 5 tuplas habituales (IP de origen, puerto de origen, IP de destino, puerto de destino, protocolo) y la consulta, cada solicitud de DNS incluye un parámetro denominado “ID de transacción”.

El ID de transacción es un número único por solicitud que genera el cliente y se agrega en cada solicitud enviada. Debe incluirse en una respuesta de DNS para que el cliente la acepte como válida para la solicitud.

“Debido a su relevancia, el DNS puede ser un objetivo valioso para los atacantes”

La vulnerabilidad y la explotación

Los investigadores descubrieron la vulnerabilidad mientras revisaban el rastro de las solicitudes de DNS realizadas por un dispositivo IoT. Ellos notaron algo anormal en el patrón de solicitudes de DNS de la salida de Wireshark. El ID de transacción de la solicitud fue al principio incremental, luego se restableció al valor 0x2 y luego fue incremental nuevamente.

“Mientras depurábamos el ejecutable relacionado, tratando de comprender la causa raíz, finalmente notamos que el código responsable de realizar las solicitudes de DNS no formaba parte de las instrucciones del ejecutable en sí, sino que formaba parte de la biblioteca estándar C en uso, es decir, uClibc 0.9.33.2”. 

Los investigadores realizaron una revisión del código fuente. Y, descubrieron que la biblioteca uClibc implementa las solicitudes de DNS llamando a la función interna “__dns_lookup“, que se encuentra en el archivo fuente “/libc/inet/resolv.c“.

Finalmente, encontraron vulnerabilidades en algunas de las líneas de código de la biblioteca, específicamente en las líneas #1240, #1260, #1309, #1321 y #1335. A estas líneas se le podría atribuir la anomalía en el patrón de solicitud de DNS, lo que hace que el ID de la transacción sea predecible. 

Esta previsibilidad crea un escenario en el que un atacante necesitaría crear una respuesta de DNS que contenga el puerto de origen correcto. Además, debería ganar la carrera contra la respuesta de DNS legítima proveniente del servidor de DNS para explotar la vulnerabilidad.

Es probable que el problema se pueda explotar fácilmente de manera confiable si el sistema operativo está configurado para usar un puerto de origen fijo o predecible. 

Explotar la vulnerabilidad también depende de cómo un sistema operativo aplica la aleatorización del puerto de origen. Es decir, un atacante tendría que aplicar fuerza bruta al valor del puerto de origen de 16 bits mediante el envío de múltiples respuestas de DNS, al mismo tiempo que supera la respuesta de DNS legítima.

Mitigación

Los investigadores explicaron que, debido a que la vulnerabilidad permanece sin parches en millones de dispositivos IoT, no revelaron los dispositivos específicos vulnerables al ataque. Mientras tanto, recomendamos que los administradores de red aumenten la visibilidad y la seguridad de su red tanto en entornos informáticos como de tecnología operativa.

“Esta vulnerabilidad permanece sin parchear, sin embargo, estamos trabajando con el mantenedor de la biblioteca y la comunidad en general para ayudar a encontrar una solución”.

Deja un comentario

Adquiere tu Membresía Anual Wiser

Adquiere tu Membresía Anual Wiser y adquiere grandes beneficios

Más información