Siete maravillas de Windows: vulnerabilidades críticas en las actualizaciones dinámicas de DNS


Visión general

Para el martes de parches de marzo de 2021, Microsoft lanzó un conjunto de siete vulnerabilidades de DNS. Cinco de las vulnerabilidades son ejecución remota de código (RCE) con puntuaciones críticas CVSS (Common Vulnerability Scoring Standard) de 9,8, mientras que las dos restantes son denegación de servicio (DoS). Microsoft compartió la guía de detección y las pruebas de concepto con los miembros de MAPP para dos de las vulnerabilidades de RCE, CVE-2021-26877 y CVE-2021-26897, que hemos confirmado que están dentro de la actividad de Actualización de la Zona Dinámica de DNS. Microsoft confirmó posteriormente que las siete vulnerabilidades de DNS se encuentran dentro de la actividad de Actualización de Zona Dinámica.

Confirmamos a partir de nuestro análisis de CVE-2021-26877 y CVE-2021-26897, además de una aclaración adicional de Microsoft, que ninguna de las cinco vulnerabilidades de DNS RCE son susceptibles de gusano.

Vulnerabilidades de RCE
CVE-2021-26877, CVE-2021-26897 (es más probable que se explote)
CVE-2021-26893, CVE-2021-26894, CVE-2021-26895 (explotación menos probable)

Vulnerabilidades DoS
CVE-2021-26896, CVE-2021-27063 (es menos probable que se explote)

Una puntuación CVSS crítica de 9,8 significa que un atacante puede comprometer de forma remota un servidor DNS sin necesidad de autenticación o interacción del usuario. La explotación exitosa de estas vulnerabilidades conduciría a RCE en un servidor DNS principal autorizado. Si bien CVSS es una gran herramienta para la calificación técnica, debe tomarse en contexto con su entorno de implementación de DNS para comprender su riesgo, que discutimos a continuación.

Le recomendamos encarecidamente que parchee urgentemente sus servidores DNS de Windows si está utilizando Actualizaciones dinámicas. Si no puede parchear, le recomendamos que priorice la evaluación de su exposición. Además, hemos desarrollado firmas para CVE-2021-26877 y CVE-2021-26897, las cuales están clasificadas como “más probables de explotación” por Microsoft.

Implementación, amenazas y actualizaciones dinámicas de DNS

Según el NIST "Guía de implementación del sistema de nombres de dominio seguro (DNS)”, Las amenazas de DNS se pueden dividir en amenazas de plataforma y de transacción. Las amenazas de la plataforma pueden clasificarse como plataformas de host DNS o amenazas de software DNS. Según la Tabla 1 a continuación, la Actualización dinámica es uno de los cuatro tipos de transacciones de DNS. Las siete vulnerabilidades de DNS se encuentran dentro de la función de transacción de DNS de actualización dinámica del software DNS de Windows.

Tabla 1: Amenazas de transacciones de DNS y objetivos de seguridad

La función de Actualización de Zona Dinámica de DNS permite a un cliente actualizar sus Registros de Recursos (RR) en un Servidor Autoritativo de DNS Primario, como cuando cambia su dirección IP; estos clientes suelen ser servidores de autoridad certificadora (CA) y DHCP. La función Dynamic Zone Update se puede implementar en un servidor DNS independiente o en un servidor DNS integrado de Active Directory (AD). La mejor práctica es implementar DNS integrado con (AD) para que pueda aprovechar la seguridad de Microsoft, como Kerberos y GSS-TSIG.

Al crear una zona en un servidor DNS, existe una opción para habilitar o deshabilitar las actualizaciones de la zona dinámica de DNS. Cuando DNS se implementa como un servidor independiente, la función de Actualización de Zona Dinámica está deshabilitada de forma predeterminada, pero se puede habilitar en modo seguro / no seguro. Cuando DNS se implementa como AD integrado, la función Dynamic Zone Update está habilitada en modo seguro de forma predeterminada.

Actualización de Secure Dynamic Zone verifica que todas las actualizaciones de RR estén firmadas digitalmente usando GSS-TSIG desde una máquina unida a un dominio. Además, se pueden aplicar controles más granulares sobre qué principal puede realizar actualizaciones de zona dinámica.

Actualización de zona dinámica insegura permite que cualquier máquina actualice RR sin autenticación (no recomendado).

Prerrequisitos de ataque

  • Actualizaciones dinámicas de DNS integrado de AD (configuración predeterminada de actualizaciones seguras)
    • Un servidor DNS debe aceptar solicitudes de escritura en al menos una Zona (normalmente, un servidor DNS primario solo permite escrituras de Zona RR, pero existen configuraciones erróneas y servidores secundarios que pueden negar esto)
    • Máquina unida a un dominio
    • El atacante debe crear una solicitud al servidor DNS y proporcionar una Zona objetivo en la solicitud
  • Servidor DNS independiente (configuración segura / no segura)
    • Un servidor DNS debe aceptar solicitudes de escritura en al menos una Zona (normalmente, un servidor DNS primario solo permite escrituras de Zona RR, pero existen configuraciones erróneas y servidores secundarios que pueden negar esto)
    • Ataqueer debe crear una solicitud al servidor DNS y suministro una zona objetivo en petición

Desde la perspectiva del modelo de amenazas, debemos considerar los motivos, las capacidades y el acceso / oportunidad del actor de amenazas, para que pueda comprender el riesgo relativo a su entorno. No tenemos conocimiento de ninguna explotación en la naturaleza de estas vulnerabilidades, por lo que debemos centrarnos en las capacidades de acceso, es decir, cerrar la puerta a la oportunidad del actor de amenazas. La Tabla 2 resume los modelos de implementación de actualizaciones dinámicas de DNS en relación con la oportunidad que presentan estas vulnerabilidades de RCE.

Tabla 2: Acceso del actor de amenazas en relación con los modelos de implementación y el impacto del sistema

La implementación de mayor riesgo sería un servidor DNS en modo inseguro de Actualización dinámica expuesto a Internet; esta no es la mejor práctica de seguridad y, según nuestra experiencia, no conocemos un caso de uso para dicha implementación.

La implementación de la Actualización dinámica de DNS integrada en AD en modo seguro (predeterminado) mitiga el riesgo de un atacante no autenticado, pero aún tiene un alto riesgo de que un equipo de dominio comprometido o un miembro de confianza pueda lograr RCE.

Análisis de vulnerabilidad

Todas las vulnerabilidades están relacionadas con el procesamiento de paquetes de actualización dinámica en dns.exe. El objetivo de nuestro análisis de vulnerabilidades, como siempre para las vulnerabilidades críticas de la industria, es garantizar que podamos generar firmas precisas para proteger a nuestros clientes.

Análisis de CVE-2021-26877

  • La vulnerabilidad se activa cuando una zona se actualiza con un TXT RR que tiene una "longitud TXT" mayor que la "longitud de datos" según Wireshark a continuación:

Figura 1: Vista de Wireshark del paquete de explotación que clasifica el paquete DNS como con formato incorrecto

  • La vulnerabilidad está en la función File_PlaceStringInFileBuffer () como puede ver en la salida de WinDbg a continuación:

Figura 2: Salida de WinDbg del bloqueo mientras se adjunta a dns.exe

  • La vulnerabilidad es una lectura fuera de límites (OOB) en el montón cuando el campo "Longitud TXT" de la Actualización de zona dinámica de DNS no está validado en relación con la "Longitud de datos". Esto podría permitir que un atacante lea hasta 255 bytes de memoria. Microsoft afirma que esta vulnerabilidad se puede utilizar para lograr RCE; esto requeriría una primitiva de escritura OOB adicional.
  • La asignación de memoria relacionada con la lectura OOB se crea dentro de la función CopyWireRead (). El pseudocódigo relevante para esta función se encuentra a continuación:

  • los File_PlaceStringInFileBuffer() función copia datos de TXT_data asignado de CopyWireRead() funcionar previamente. Sin embargo, el valor de longitud UpdateRR-> TXT de Wireshark no se valida y se usa para copiar desde * UpdateRR-> Data length. Debido a que UpdateRR-> TXT length no se valida en relación con UpdateRR-> Data length, da como resultado una lectura OOB de la memoria del montón.

Análisis de CVE-2021-26897

  • La vulnerabilidad se activa cuando se envían muchas Actualizaciones dinámicas de RR de firma consecutivas
  • La vulnerabilidad es una escritura OOB en el montón cuando se combinan las muchas actualizaciones dinámicas de Signature RR consecutivas en cadenas codificadas en base64 antes de escribir en el archivo Zone.
  • Microsoft afirma que esta vulnerabilidad se puede utilizar para lograr RCE

Figura 3: Paquete que contiene muchas actualizaciones dinámicas de Signature RR consecutivas. Preste especial atención al campo de longitud del flujo reensamblado.

Explotabilidad

La explotación de estas vulnerabilidades de forma remota requiere primitivas de lectura y escritura, además de omitir Control Flow Guard (CFG) para su ejecución. El protocolo DNS tiene una importante superficie de ataque remota no autenticada para facilitar la generación de tales primitivas que se han investigado como parte de CVE-2020-1350 (SigRed). Además, según el RR_DispatchFuncForType() función, hay funciones de lectura y escritura como parte de su tabla de despacho.

Figura 4: Ruta del paquete de actualización DNS RR

Figura 5: Funciones de envío para lectura y escritura

Mitigaciones

Parchear es siempre el primer curso de acción y el más eficaz. Si no es posible parchear, la mejor mitigación es auditar la configuración de implementación de DNS para limitar las actualizaciones de la zona dinámica a servidores de confianza solamente. Para aquellos clientes de McAfee que no pueden implementar el parche de Windows, lo siguiente Plataforma de seguridad de red (NSP) Las firmas proporcionarán un parche virtual contra el intento de explotación de ambos vulnerabilities, CVE-2021-26877 y CVE-2021-26897.

ID de ataque NSP: 0x4030e700 – DNS: vulnerabilidad de ejecución remota de código del servidor DNS de Windows (CVE-2021-26877)
ID de ataque NSP: 0x4030e800 – DNS: vulnerabilidad de ejecución remota de código del servidor DNS de Windows (CVE-2021-26897)

Además, NIST "Guía de implementación del sistema de nombres de dominio seguro (DNS)”Proporciona las mejores prácticas para asegurar la implementación de DNS, tales como:

  1. El servidor primario DNS debe restringir los clientes que pueden actualizar RR
  2. Actualización dinámica segura usando GSS-TSIG
  3. Restricciones de reenvío de actualizaciones dinámicas del servidor DNS secundario mediante GSS-TSIG
  4. Restricciones detalladas de actualización dinámica mediante GSS-TSIG





Enlace a la noticia original