La razón principal para instalar los parches de Microsoft de octubre de 2020: Ping de la muerte Redux

ActualidadCorporateActualizacionMicrosoftWindows

Microsoft ha lanzado una cantidad sustancial de correcciones de seguridad en el martes de parches de octubre, con 11 calificadas como “críticas” (incluida la última actualización de seguridad de Adobe Flash). Pero dos vulnerabilidades de las que se están parcheando destacan por encima de las otras: CVE-2020-16898 y CVE-2020-16899. Estas vulnerabilidades, causadas por un error en el controlador TCP/IP de Windows, se remontan a la vulnerabilidad “Ping de la muerte” corregida en 2013. Hacen posible la denegación de servicio y la posible ejecución remota de código.

La vulnerabilidad en tcpip.sys, un error lógico en la forma en que el controlador analiza los mensajes ICMP, se puede activar de forma remota con un mensaje router advertisement IPv6 especialmente diseñado que contenga una opción de servidor DNS recursivo (RDNSS). La opción RDNSS normalmente contiene una lista de las direcciones IPv6 de uno o más servidores DNS recursivos.

El formato de la opción RDNSS para paquetes ICMP IPv6.

Hay una falla lógica en tcpip.sys que puede explotarse creando un paquete de router advertisement que contenga más datos de los esperados, lo que da como resultado que el controlador coloque más bytes de datos en su pila de memoria de los previstos en el código del controlador, por lo que se produce un desbordamiento de búfer. En teoría, esto podría usarse tanto para denegación de servicio como para ataques de ejecución remota de código. Pero en la práctica, lograr la ejecución remota de código sería extremadamente difícil.

SophosLabs desarrolló su propia prueba de concepto para un ataque, basada en la información proporcionada por Microsoft. Aprovechando la vulnerabilidad para causar una “pantalla azul de la muerte” en el ordenador de la víctima. Los detalles de la POC no los publicamos por ahora para evitar la explotación por parte de ciberdelincuentes.

Una vez que entendimos el error, desarrollar una prueba de concepto de “Pantalla azul de la muerte” fue bastante sencillo. Pero llevarlo al nivel que Microsoft advirtió es posible (la ejecución remota de código) no es tan sencillo. Los estándares y prácticas de codificación modernas ralentizarían el esfuerzo por construir un exploit RCE genérico confiable, por dos razones.

Primero, TcpIp.sys se compila con bandera GS, que evita que un desbordamiento de pila típico controle directamente la dirección de retorno.

La cookie de pila, también conocida como canario de pila, es un valor aleatorio generado en el momento de la carga. Su valor es XOR con el puntero de pila, lo que hace que sea extremadamente difícil predecir de manera confiable, especialmente en una explotación remota completa.

Hay dos técnicas típicas que se utilizan para omitir los canarios de pila, ninguna de las cuales se aplica realmente en este caso:

  • Usar otra vulnerabilidad de fuga de información (lectura arbitraria), que no ayudará mucho a explotar tcpdrv.sys, porque el valor canario es XOR con el puntero de pila.
  • Sobrescritura de un controlador de manejo de excepciones estructurado (SEH), que sería útil solo si se ha establecido un registro de excepción estructurado, que no es el caso.

El segundo obstáculo para una explotación eficaz de la RCE es la aleatorización del diseño del espacio de direcciones del kernel (kASLR). Incluso si fuera posible, puede predecir de manera confiable el canario de la pila (bastante improbable) para regresar a un shell del sistema en modo de usuario que requeriría determinar correctamente (y nuevamente de forma remota) la dirección base del kernel de Windows.

Eso significa que incluso cuando la naturaleza exacta del error en tcpdrv.sys se haga más conocida, puede pasar algún tiempo antes de que alguien pueda explotarlo de una manera que inyecte código de manera confiable en el espacio del kernel de Windows. Aun así, la amenaza de denegación de servicio a voluntad con un paquete de fácil elaboración debería ser suficiente por sí sola para provocar un parcheo rápido, que es la única solución real para esta vulnerabilidad.

Sophos está en proceso de implementar firmas para ataques basados ​​en esta vulnerabilidad a XG Firewall y Endpoint IPS (en EAP). Los ID de firma son sid: 2304055 y sid: 2304163, respectivamente. Otras mitigaciones a corto plazo para posibles ataques de denegación de servicio incluyen:

  • Desactivar IPv6 si no se utiliza, o
  • Obligar a Windows a descartar los paquetes de router advertisement usando el comando netsh (netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=disable).

El resto de las vulnerabilidades críticas parcheadas este mes también son posibles errores de ejecución remota de código:

  • CVE-2020-16891: vulnerabilidad de ejecución remota de código en Windows Hyper-V
  • CVE-2020-16911: vulnerabilidad de ejecución remota de código GDI +
  • CVE-2020-16915: vulnerabilidad de corrupción de memoria en Media Foundation
  • CVE-2020-16923: Vulnerabilidad de ejecución remota de código en los componentes gráficos de Microsoft
  • CVE-2020-16947: vulnerabilidad de ejecución remota de código en Microsoft Outlook
  • CVE-2020-16951 y CVE-2020-16952: dos vulnerabilidades de ejecución remota de código en Microsoft SharePoint
  • CVE-2020-16966: Vulnerabilidad de ejecución remota de código en el SDK de Open Enclave
  • CVE-2020-16967: vulnerabilidad de ejecución remota de código en el paquete de códec de cámara de Windows

Vulnerabilidad de suplantación de Windows

Otro error interesante solucionado en este martes de parches es CVE-2020-16922, un error en la verificación de Windows de las firmas digitales de los archivos del Catálogo de seguridad (.CAT) que podría usarse para falsificar la verificación de confianza de un archivo potencialmente malicioso.

Normalmente, cualquier modificación realizada a un archivo firmado digitalmente debería resultar en la invalidación de su firma. Sin embargo, se descubrió que agregar datos arbitrarios de cualquier tamaño al final de un archivo .CAT firmado no invalida su firma a los ojos de Windows, que no tiene en cuenta los datos extraños.

Este error se parece a la vulnerabilidad de Curveball de principios de este año, pero no es tan crítica y representa una amenaza menor para los usuarios, porque a diferencia de Curveball, los ataques “Man-in-the-Middle” no son motivo de preocupación. Sin embargo, el error podría aprovecharse en implementaciones de malware, por ejemplo, en la creación de un archivo Java Archive (.JAR) malicioso.

Al tomar un archivo .CAT firmado por Microsoft, agregarle el contenido de un archivo .JAR y cambiar la extensión del archivo a .JAR, se genera un archivo que se ve y se ejecuta como un archivo .JAR, pero tiene una firma digital válida “falsificada”. Esto funciona porque Java Runtime buscará un archivo .JAR determinado para que se ejecute contenido de Java, incluso si están presentes en el medio del archivo.

La mayoría de los otros tipos de archivos no funcionan de esta manera y no se pueden utilizar para este propósito. Los atacantes pueden usar este tipo de vulnerabilidad para eludir el software de seguridad en el manejo de malware: un archivo con una firma digital falsificada puede engañar al software de seguridad para que lo considere un archivo legítimo creado por Microsoft y, por lo tanto, aumentar su “reputación”, potencialmente hasta el punto de que se haría la vista gorda ante un archivo de malware real que de otro modo se habría detectado.

Protección de Sophos

A continuación, se incluye una lista de protección publicada por SophosLabs en respuesta a este aviso para complementar cualquier protección existente y capacidades genéricas de mitigación de exploits en nuestros productos.

CVE IPS
CVE-2020-16898 SID:2304055,2304163
CVE-2020-16899 SID:2304058
CVE-2020-16922 SID:2304140,2304142
CVE-2020-16915 SID:2304212

 

Esta y todas las otras vulnerabilidades reveladas en el lanzamiento del martes de parches de octubre, especialmente las críticas, ofrecen muchas razones para parchear lo más rápido posible.

Leave a Reply

Your email address will not be published.