Nueva vulnerabilidad sin parchear relacionada con dispositivos IoT

Se ha descubierto una nueva vulnerabilidad sin parchear que puede suponer un grave riesgo para dispositivos IoT (CVE-2022-05-02).

Afecta a la implementación del sistema DNS, de dos librerías de lenguaje C bastante conocidas llamadas uClibc y uClibc-ng, las cuales se usan para el desarrollo de sistemas Linux integrados.

Se sabe que uClibc es usada por empresas como Linksys, Netgear y Axis, así como también por distribuciones de Linux como “Embedded Gentoo”, lo que podría exponer a millones de dispositivos IoT ante amenazas de seguridad.

DNS (Sistema de nombres de dominio)

En las redes informáticas, el DNS es una base de datos jerárquica que cumple el propósito de traducir un nombre de dominio a su dirección IP relacionada.

Bajo el capó, es un protocolo sin conexión. Por lo tanto para distinguir las diferentes peticiones de DNS, además de los campos ip origen, puerto origen, ip destino, puerto destino y protocolo, también hay un id de transacción. Este es un número único por petición que genera el cliente, se agrega en cada solicitud enviada y debe incluirse en una respuesta DNS para ser aceptada por el cliente como válido para la petición.

Envenenamiento al DNS

Debido a su importancia, el DNS puede ser un objetivo valioso para los atacantes.

“Este fallo se debe a la previsibilidad de los IDs de transacción incluídos en las solicitudes DNS generadas por la librería, lo que puede permitir a usuarios malintencionados realizar ataques de envenenamiento de DNS contra el dispositivo de destino”, dijeron Giannis Tsaraias y Andrea Palanca de “Nozomi Networks” en un escrito el pasado 2 de mayo.

El envenenamiento de DNS es la técnica de corromper la caché de resolución DNS con el objetivo de redirigir a los usuarios a sitios webs maliciosos.

Si alguien consigue explotar dicha vulnerabilidad, podría conseguir realizar un Man-in-the-middle y corromper la caché DNS, redirigiendo el tráfico de Internet por ejemplo a un servidor bajo su control.

“Nozomi Networks” advirtió que la vulnerabilidad podría explotarse de manera confiable si el sistema operativo se configura para usar un puerto de origen fijo o predecible, ya que junto con el id, son los dos únicos parámetros que deben ser impredecibles.

“El atacante podría robar y/o manipular la información transmitida por los usuarios y realizar otros ataques contra esos dispositivos para comprometerlos por completo”, advirtieron los investigadores.

Detalles de la vulnerabilidad

En la siguiente captura, en una revisión realizada a un dispositivo IoT se puede observar que la identificación de la transacción primero es incremental, luego se restablece el valor 0x2 y luego es incremental nuevamente:

En una revisión de código fuente se puede observar que la librería uClibc implementa las peticiones de DNS haciendo una llamada a la función interna “__dns_lookup:

En la línea 1240 se puede observar que la función declara una variable estática “last_id”, que contiene el valor del ID de transacción de la última petición realizada y se inicializa con el valor 1 en la primera invocación.

Además, en la línea 1260, la función declara una variable llamada “local_id”, que contiene el valor del ID de transacción que se usará para la próxima petición DNS y se deja sin inicializar.

Posteriormente se ejecutan las siguientes líneas:

En la línea 1309, en la primera petición de DNS, la variable “local_id” se inicializa con el valor del ID de la transacción de la última petición de DNS (“last_id”). La línea 1320 es el núcleo real de la vulnerabilidad, ya que “local_id” se actualiza incrementando su valor anterior en 1.

Explotando CVE-2022-05-02

Ahora que el ID de transacción es predecible, para explotar la vulnerabilidad un atacante solo necesita crear una respuesta DNS que contenga el puerto de origen correcto, así como también ganar la carrera contra la respuesta DNS legítima del servidor DNS.

MITIGACIONES

La vulnerabilidad de momento está sin parchear, aunque están trabajando con el mantenedor de la librería y la comunidad en general para encontrar una solución.

Debido a que esta vulnerabilidad permanece sin parches, por la seguridad de todos no pueden revelar los dispositivos específicos en los que se han probado, pero dicen que se tratan de una gama de dispositivos IoT conocidos que ejecutan las últimas versiones de firmware.

Se recomienda a todos que se aumente la visiblidad y la seguridad de la red tanto en entornos TI como de OT.

Compartir este artículo

¡Me gusta este artículo!

1

Artículos relacionados

    Deja un comentario

    ¡Gracias por dejar tu comentario!

    Entradas recientes