Los investigadores siguen las migas de pan: las últimas vulnerabilidades en la pila de redes de Windows


El concepto de un rastro de migas de pan en la comunidad de seguridad ofensiva no es nada nuevo Durante muchos años, los investigadores de ambos lados del espectro ético han seguido la brújula basándose en los hallazgos de seguridad de toda la industria, lo que a menudo conduce a descubrimientos innovadores tanto en bases de código heredadas como modernas. Esto sucedió en innumerables casos, desde Java hasta Flash, Online Explorer y muchos más, lo que a menudo dio como resultado hallazgos generalizados y la posterior eliminación o modificación de grandes cantidades de código. Durante los últimos 12 meses, hemos notado una tendencia identical en el análisis, descubrimiento y divulgación de vulnerabilidades en pilas de redes. Comenzando con Ripple20 de JSOF, para el que analizamos y publicamos firmas, surgió un patrón claro a medida que los investigadores investigaban de nuevo las superficies de amenazas en las pilas tcp / ip implementadas en todo el mundo. Microsoft no fue una excepción, por supuesto que ejecuta la pila de redes de Windows que se remonta a las primeras iteraciones de Home windows y se actualiza con frecuencia con nuevas características y correcciones.

De hecho, mirando hacia atrás en los últimos 8 meses de parches de Microsoft, hemos rastreado al menos 25 vulnerabilidades significativas directamente relacionadas con la pila de red de Windows. Estos han variado desde DNS hasta NTFS, SMB hasta NFS y, recientemente, varios errores de tcp / ip en la fragmentación y reensamblaje de paquetes para IPv4 e IPv6.

Eso nos lleva al parche de este mes el martes, que contiene varias vulnerabilidades críticas de alto perfil en tcpip.sys. Nos centraremos en tres de estos, incluidos 2 marcados como errores de «ejecución remota de código», que podrían provocar problemas de gusano si la ejecución del código es realmente posible, y una vulnerabilidad persistente de denegación de servicio que podría provocar una pantalla azul permanente de la muerte. en las últimas versiones de Windows.

Hay claras similitudes entre los 3, lo que indica que tanto Microsoft como los investigadores externos a Microsoft están muy interesados ​​en auditar esta biblioteca y están teniendo éxito en eliminar una serie de errores interesantes. El siguiente es un breve resumen de cada error y el progreso que hemos logrado hasta la fecha en su análisis.

¿Qué es CVE-2021-24086?
La primera vulnerabilidad analizada en este conjunto es un ataque de denegación de servicio (DOS). Generalmente, estos tipos de errores son bastante poco interesantes sin embargo, algunos pueden tener un impacto suficiente que, aunque un atacante no puede ejecutar el código, vale la pena discutirlos. Este es uno de esos pocos. Una de las cosas que aumentan el impacto de esta vulnerabilidad es el hecho de que se puede enrutar por World-wide-web y se puede acceder directamente a muchos dispositivos que utilizan IPv6 a través de Internet, incluso cuando están detrás de un enrutador. También vale la pena señalar que la configuración predeterminada del Firewall de Home windows Defender no mitiga este ataque. En el peor de los casos, un atacante podría rociar este ataque y ponerlo en un bucle continuo para causar potencialmente un DOS «permanente» o persistente en una amplia gama de sistemas.

Esta vulnerabilidad existe cuando el controlador tcpip.sys de Home windows intenta reensamblar paquetes IPv6 fragmentados. Como resultado, este ataque requiere muchos paquetes para tener éxito. La causa principal de esta vulnerabilidad es una desreferencia del puntero NULL que ocurre en Ipv6pReassembleDatagram. El bloqueo ocurre cuando se vuelve a ensamblar un paquete con alrededor de 0xffff bytes de encabezados de extensión. Debería ser imposible enviar un paquete con tantos bytes en los encabezados de extensión de acuerdo con el RFC, sin embargo, esto no se considera en el Ipv6pReceiveFragments función al calcular la longitud no fragmentada. Aprovechando una prueba de concepto a través del programa Microsoft MAPP, McAfee pudo reproducir fácilmente este error, demostrando que tiene el potencial de ser visto en la naturaleza.

¿Qué es CVE-2021-24094?
Esta vulnerabilidad está clasificada por la ejecución remota de código (RCE), aunque nuestro análisis hasta ahora, la ejecución de código viene con desafíos únicos. Related a CVE-2021-24086, este problema involucra el reensamblaje de paquetes IPv6 por parte del controlador tcpip.sys de Home windows. Es diferente de 24086 en que no requiere un paquete grande con encabezados de extensión y no es una desreferencia de puntero NULL. En cambio, es un puntero colgante que, si los datos del paquete correcto se rocían desde un atacante a través de IPv6, hará que el puntero se sobrescriba y haga referencia a una ubicación de memoria arbitraria. Cuando se accede a los datos en el objetivo del puntero, se generate un mistake de página y, por lo tanto, una pantalla azul de la muerte (BSOD). Además, un atacante puede crear persistencia del DoS apuntando continuamente el ataque a una máquina víctima.

Si bien la reproducción de este problema provoca bloqueos en el objetivo en todas las reproducciones hasta ahora, no está claro qué tan fácil sería forzar el puntero a una ubicación que causaría una ejecución válida sin bloquearse. El puntero debería apuntar a una ubicación de memoria paginada que ya se había escrito con datos adicionales que podrían manipular el código de reensamblaje de IPv6, que probablemente no provenga de este ataque solo, pero puede requerir un ataque por separado para hacerlo.

¿Qué es CVE-2021-24074?
CVE-2021-24074 es un RCE potencial en tcpip.sys que se activa durante el reensamblaje de paquetes IPv4 fragmentados junto con una confusión de opciones IP de IPv4. Durante el reensamblaje, es posible tener dos fragmentos con diferentes opciones de IP esto va en contra del estándar IPv4, pero Windows seguirá adelante, aunque no realice las comprobaciones de estado adecuadas para las opciones respectivas. Este tipo de confusión se puede aprovechar para activar una lectura y escritura fuera de límites (OOB) mediante el «contrabando» de una opción de IP Fuente suelta y ruta de grabación (LSRR) con parámetros no válidos. Esta opción normalmente está destinada a especificar la ruta que debe tomar un paquete. Tiene una longitud variable, comienza con un campo de puntero y va seguido de una lista de direcciones IP para enrutar el paquete.

Al aprovechar la confusión de tipos, tenemos un campo de puntero no válido que apuntará más allá del final de la lista de enrutamiento proporcionada en el paquete. Cuando la función de enrutamiento Ipv4pReceiveRoutingHeader busca el siguiente salto para el paquete, OOB leerá esta dirección (como un DWORD) y realizará algunas comprobaciones en él. Si estas comprobaciones tienen éxito, la pila de IP intentará enrutar el paquete a su siguiente salto copiando el paquete unique y luego escribiendo su propia dirección IP en la ruta de registro. Debido a que esta escritura se basa en el mismo valor de puntero no válido que antes, resulta ser una escritura OOB (más allá del closing del paquete recién asignado). El contenido de esta escritura OOB es la dirección IP de la máquina de destino representada como DWORD (por lo tanto, no controlada por el atacante).

Microsoft califica este error como “Es más probable que se explote”, sin embargo, es posible que la explotación no sea tan sencilla como parece. Para que un ataque tenga éxito, uno tendría que preparar el montón del kernel para colocar un cierto valor para ser leído durante la lectura OOB, y luego hacer que la escritura OOB corrompa algo de interés. Probablemente, primero debería establecerse una mejor primitiva de explotación para explotar con éxito el error. Por ejemplo, aprovechar la escritura OOB para corromper otra estructura de datos que podría conducir a la divulgación de información y / o un escenario de escritura-qué-dónde.

Desde el punto de vista de la detección, los signos reveladores de una explotación activa serían los paquetes fragmentados cuyas opciones de IP varían entre los fragmentos. Por ejemplo, el primer fragmento no contendría una opción LSRR, mientras que el segundo fragmento sí. Esto probablemente iría acompañado de un tráfico denso destinado a dar forma al montón del kernel.

Similitudes y evaluación de impacto
Existen similitudes obvias entre estas tres vulnerabilidades. Cada uno está presente en la biblioteca tcpip.sys, responsable de analizar el tráfico IPv4 e IPv6. Además, todos los errores tratan con el reensamblaje de paquetes y las vulnerabilidades de RCE aprovechan funciones similares para IPv4 e IPv6 respectivamente. Dada una combinación de atribución pública e interna de Microsoft, está claro que tanto los investigadores como los proveedores están persiguiendo los mismos tipos de errores. Siempre que vemos vulnerabilidades en pilas de crimson o protocolos enrutados por Net, estamos especialmente interesados ​​en determinar la dificultad de explotación, la capacidad de gusano y el impacto. Para vulnerabilidades como las RCE mencionadas anteriormente, es esencial profundizar en comprender la probabilidad de que estos tipos de fallas se incorporen a los kits de explotación o se utilicen en ataques dirigidos y son los principales candidatos para que los actores de amenazas los utilicen como armas. A pesar del potencial actual de daño, la importancia de estos errores se reduce un poco por una barrera más alta para la explotación y los próximos parches de Microsoft. Esperamos ver vulnerabilidades adicionales en la pila de TCP / IP y continuaremos brindando análisis y orientación similares. Dado que es possible que los actores de amenazas tarden algún tiempo en integrar estas vulnerabilidades de manera significativa, el mejor curso de acción, como siempre, es la mitigación generalizada mediante parches.





Enlace a la noticia initial