NAME:WRECK, múltiples vulnerabilidades en DNS

Fecha de publicación 14/04/2021
Importancia
5 - Crítica
Recursos Afectados

Implementaciones DNS en las pilas TCP/IP: FreeBSD, Nucleus NET, IPnet y NetX.

Descripción

Forescout Research Labs, en colaboración con JSOF Research, ha  revelado NAME:WRECK, un conjunto de nueve vulnerabilidades que afectan a cuatro populares pilas TCP/IP (FreeBSD, Nucleus NET, IPnet y NetX). Estas vulnerabilidades están relacionadas con las implementaciones del Sistema de Nombres de Dominio (DNS), pudiendo provocar una denegación de servicio (DoS) o una ejecución remota de código (RCE), lo que permitiría a los atacantes desconectar los dispositivos objetivo o tomar el control de los mismos.

Solución
  • La protección completa contra NAME:WRECK requiere parchear los dispositivos que ejecutan las versiones vulnerables de las pilas IP. FreeBSD, Nucleus NET y NetX han sido parcheados recientemente, y los proveedores de dispositivos que utilizan este software deberían proporcionar sus propias actualizaciones a los clientes. Es posible que estas actualizaciones en los diferentes clientes se alarguen en el tiempo y no se publiquen de manera inmediata, debido a la complejidad de las mismas y a las diferentes casuísticas. Se recomienda a cualquiera que utilice un producto que incorpore servicios para la resolución de DNS o DHCP revise las actualizaciones de su fabricante que se puedan producir a lo largo del tiempo y que permitirían corregir estas vulnerabilidades.

Sin embargo, no siempre es posible parchear los dispositivos, y el esfuerzo requerido cambia drásticamente dependiendo de si el dispositivo es un servidor de TI estándar o un dispositivo IoT. Teniendo en cuenta estos desafíos, se recomienda la siguiente estrategia de mitigación:

  • Realizar un inventario de los dispositivos que ejecutan las pilas vulnerables. Forescout Research Labs ha publicado un script de código abierto que utiliza la huella digital activa para detectar los dispositivos que ejecutan las pilas afectadas. El script se actualiza constantemente con nuevas firmas para seguir el último desarrollo de su investigación. Los clientes de Forescout que utilizan eyeSight también pueden identificar automáticamente los dispositivos que utilizan FreeBSD, Nucleus RTOS, ThreadX o VxWorks.
  • Aplicar controles de segmentación y un bastionado de red adecuado para mitigar el riesgo de los dispositivos vulnerables. Restrinja las vías de comunicación externas y aísle o contenga los dispositivos vulnerables en zonas como control de mitigación si no pueden ser parcheados o hasta que puedan serlo.
  • Supervisar los parches progresivos publicados por los proveedores de dispositivos afectados y diseñar un plan de recuperación para su inventario de activos vulnerables, equilibrando el riesgo empresarial y los requisitos de continuidad del negocio.
  • Configurar los dispositivos para que dependan de los servidores DNS internos en la medida de lo posible y supervisar detalladamente el tráfico DNS externo, ya que la explotación requiere que un servidor DNS malicioso responda con paquetes maliciosos.
  • Supervisar todo el tráfico de red en busca de paquetes maliciosos que intenten explotar vulnerabilidades conocidas o posibles 0-days que afecten a los clientes DNS, mDNS y DHCP. El tráfico anómalo y malformado debería bloquearse, o al menos debería alertarse de su presencia a los operadores de la red. Para explotar las vulnerabilidades de NAME:WRECK, un atacante debería adoptar un procedimiento similar para cualquier pila TCP/IP. Esto significa que la misma técnica de detección utilizada para identificar la explotación de NAME:WRECK también funcionará para detectar la explotación en otras pilas TCP/IP y productos que aún no han sido analizadas. Además, los clientes de Forescout eyeInspect que activaron el script SD de detección de amenazas entregado como parte de AMNESIA:33 pueden detectar la explotación de NAME:WRECK.
Detalle
  • Un error de límite al analizar los datos de la opción 119 en los paquetes DHCP en dhclient(8), podría permitir a un atacante remoto, en la red local, enviar datos especialmente diseñados al cliente DHCP, desencadenar un desbordamiento de búfer basado en la pila y ejecutar código arbitrario en el sistema de destino. Se ha asignado el identificador CVE-2020-7461 para esta vulnerabilidad.
  • El desbordamiento basado en la pila en la función de descompresión de mensajes del cliente DNS, podría permitir a un atacante la ejecución remota de código (RCE). Se ha asignado el identificador CVE-2016-20009 para esta vulnerabilidad, que es la de mayor severidad con un CVSS de 9.8.
  • La funcionalidad de análisis de etiquetas de nombres de dominio DNS no valida correctamente los nombres en las respuestas DNS. El análisis sintáctico de respuestas malformadas podría dar lugar a una escritura más allá del final de una estructura asignada. Un atacante con una posición privilegiada en la red podría aprovechar esta vulnerabilidad para ejecutar código en el contexto del proceso actual o provocar una condición de denegación de servicio. Se ha asignado el identificador CVE-2020-15795 para esta vulnerabilidad.
  • La funcionalidad de descompresión de registros de nombres de dominio DNS no valida correctamente los valores de desplazamiento del puntero. Un atacante podría elaborar un paquete de respuesta DNS especialmente diseñado que permitiría escribir datos arbitrarios en partes sensibles de la memoria de un dispositivo, donde posteriormente inyectaría el código. Se ha asignado el identificador CVE-2020-27009 para esta vulnerabilidad.
  • La funcionalidad de análisis de etiquetas de nombres de dominio DNS no valida correctamente el nombre en las respuestas DNS. El análisis de respuestas malformadas podría dar lugar a una lectura más allá del final de una estructura asignada. Un atacante con una posición privilegiada en la red podría aprovechar esta vulnerabilidad para provocar una condición de denegación de servicio. Se ha asignado el identificador CVE-2020-27736 para esta vulnerabilidad.
  • La funcionalidad de análisis de la respuesta DNS no valida correctamente varias longitudes y recuentos de los registros. El análisis sintáctico de respuestas malformadas podría dar lugar a una lectura más allá del final de una estructura asignada. Un atacante con una posición privilegiada en la red podría aprovechar esta vulnerabilidad para provocar una condición de denegación de servicio. Se ha asignado el identificador CVE-2020-27737 para esta vulnerabilidad.
  • La funcionalidad de descompresión de registros de nombres de dominio DNS no valida correctamente los valores de desplazamiento del puntero. El análisis sintáctico de respuestas malformadas podría dar lugar a un acceso de lectura más allá del final de una estructura asignada. Un atacante con una posición privilegiada en la red podría aprovechar esta vulnerabilidad para causar una condición de denegación de servicio. Se ha asignado el identificador CVE-2020-27738 para esta vulnerabilidad.
  • El cliente DNS no aleatoriza correctamente el ID de transacción DNS (TXID) y los números de puerto UDP, lo que podría permitir a un atacante realizar ataques de envenenamiento de caché DNS/suplantación de identidad. Se ha asignado el identificador CVE-2021-25677 para esta vulnerabilidad.
  • En el componente DNS resolver, las funciones _nx_dns_name_string_unencode y _nx_dns_resource_name_real_size_calculated no comprueban que el puntero de compresión no sea igual al mismo desplazamiento que se está analizando actualmente, lo que podría llevar a un bucle infinito. En la función _nx_dns_resource_name_real_size_calculate el puntero también puede apuntar hacia adelante y no hay una comprobación de fuera de límites en el búfer del paquete. Aún no se ha asignado ningún identificador para esta vulnerabilidad.

Los detalles de estas vulnerabilidades se describen en el informe técnico y serán presentados en Black Hat Asia 2021.

Encuesta valoración