Azulmantener

BlueKeep  es una vulnerabilidad informática en la implementación del protocolo de escritorio remoto de Microsoft que permite la ejecución remota de código . BlueKeep afecta a todas las versiones no actualizadas de Windows en la línea de Windows NT , desde Windows 2000 hasta Windows Server 2008 R2 y Windows 7 . En septiembre de 2019, el exploit BlueKeep se puso a disposición del público como parte del proyecto Metasploit [1] .

Según la NSA y Microsoft , BlueKeep tiene el potencial de ser explotado por gusanos informáticos , y Microsoft afirma, según una estimación de 1 millón de dispositivos vulnerables, que dicho ataque podría ser de una escala comparable a los ataques de EternalBlue como NotPetya y WannaCry. [2] [3] [2] [3] [4] .

La vulnerabilidad fue destacada por CVE -ID CVE-2019-0708 [5] .

Breve descripción

La vulnerabilidad BlueKeep se descubrió en la implementación del protocolo RDP en algunas versiones del sistema operativo Windows en mayo de 2019. RDP es un protocolo propietario que proporciona acceso remoto a computadoras que ejecutan Windows. BlueKeep no tiene nada que ver con el mecanismo del protocolo en sí y solo afecta su implementación. En particular, la vulnerabilidad afecta a la parte del código encargada de gestionar los llamados canales virtuales . RDP utiliza diferentes circuitos virtuales para transportar diferentes tipos de datos. Por ejemplo, el canal "rdpsnd" transporta audio, mientras que el canal "cliprdr" se usa para transmitir el contenido del portapapeles . Se pueden usar circuitos virtuales adicionales para proporcionar extensiones al protocolo RDP en el nivel de aplicación del usuario. En Windows 2000 , solo estaban disponibles 32 canales virtuales estáticos, y por lo tanto, para sortear esta limitación, se propuso el mecanismo de canales virtuales dinámicos, que permite transmitir varios canales dinámicos en uno estático. Los canales estáticos se crean cuando se crea una sesión RDP y existen hasta que se cierra, mientras que los canales dinámicos se pueden crear y eliminar a petición del cliente. Además, a diferencia de los canales estáticos, que se numeran con un número entero del 0 al 31, los canales dinámicos se identifican por su nombre de cadena . Windows vincula nombres de canales dinámicos a números de canales estáticos en las funciones _IcaBindVirtualChannels y _IcaRebindVirtualChannels contenidas en el controlador termdd.sys [6] .

De forma predeterminada, RDP reserva el número 31 para un circuito virtual interno no dirigido por el usuario denominado "MS_T120". Sin embargo, el controlador no verifica la existencia de un canal virtual personalizado con el mismo nombre. Por lo tanto, un atacante puede crear otro canal dinámico llamado "MS_T120" y vincularlo a un canal estático con un número diferente. En este caso, se asociará al nuevo número un puntero a una instancia ya existente del canal dinámico "MS_T120". Cuando el canal creado por el atacante se cierra, la memoria se libera , después de lo cual el puntero colgante del canal “MS_T120” asociado con el número 31 permanece en el sistema, lo que puede generar errores de acceso a la memoria [6] . La situación se ve agravada por el hecho de que la creación de canales virtuales dinámicos puede ocurrir antes de la etapa de autenticación del usuario, lo que permite que los gusanos informáticos utilicen BlueKeep . Este problema se resuelve parcialmente mediante el uso de Network Level Authentication (NLA) , que apareció en Windows Vista  , una opción del protocolo RDP que requiere la autenticación del usuario antes de establecer una conexión [7] .

Microsoft lanzó una actualización de seguridad (incluso para varias versiones de Windows cuyo período de soporte ha llegado a su fin, en particular para Windows XP ) el 14 de mayo de 2019 [4] . La versión corregida del controlador termdd.sys no permite asignar números distintos de 31 a un canal denominado "MS_T120".

El nombre "BlueKeep" para esta vulnerabilidad fue dado por el experto en seguridad informática Kevin Beaumont en su publicación de Twitter .

Historia

BlueKeep fue mencionado por primera vez por el Centro Nacional de Ciberseguridad del Reino Unido [8] , el informe de Microsoft se publicó el 14 de mayo de 2019 junto con una actualización de seguridad que corrige esta vulnerabilidad. Posteriormente, el 4 de junio de 2019, la NSA emitió su aviso de seguridad [3] .

El mismo día que se publicó el aviso de la NSA, un equipo de investigadores de la cámara de compensación CERT informó otra vulnerabilidad relacionada con el protocolo RDP en Windows 10 May 2019 Update y Windows Server 2019 . En particular, los investigadores notaron el hecho de que las credenciales de autenticación de nivel de red se almacenan en caché en el sistema del cliente, y el usuario puede volver a acceder a su conexión RDP automáticamente si se interrumpe. Microsoft ha descartado esta vulnerabilidad como un comportamiento intencional, argumentando que se puede deshabilitar mediante el mecanismo de directiva de grupo [9] .

A partir de junio de 2019, se han enviado varios PoC en funcionamiento para aprovechar esta vulnerabilidad. En concreto, McAfee [6] y Sophos [10] [11] presentaron sus versiones . El 22 de julio de 2019, un orador de una empresa china de seguridad de la información presentó más información sobre BlueKeep en la conferencia [12] . El 25 de julio de 2019, los expertos afirmaron que una versión comercial del exploit podría haber estado disponible en ese momento [13] .

El 13 de agosto de 2019, se informó DejaBlue , un nuevo grupo de vulnerabilidades relacionadas con BlueKeep. Además de las versiones anteriores de Windows, DejaBlue también se ha visto afectado por versiones más nuevas del sistema operativo hasta Windows 10 [14] .

El 6 de septiembre de 2019, apareció en el dominio público un exploit para la vulnerabilidad BlueKeep como parte de Metasploit [1] . Sin embargo, la versión inicial del exploit resultó ser extremadamente poco confiable debido a la frecuente ocurrencia de un error BSoD . Una versión revisada estuvo disponible más tarde [15] .

El 2 de noviembre de 2019, se informó el primer ataque masivo de piratas informáticos BlueKeep relacionado con la criptomoneda Monero [ 16] [17] . El 8 de noviembre de 2019, Microsoft confirmó el ataque e instó a los usuarios a actualizar sus versiones de Windows lo antes posible [18] .

Mecanismo

Ataque DoS

La forma más sencilla de explotar la vulnerabilidad de BlueKeep es implementar un ataque DoS basado en ella. Cuando un cliente se conecta, se crea automáticamente en el servidor un canal "MS_T120" asociado con el número estático 31. Usando la PDU inicial de MCS Connect con la solicitud RDP de solicitud de creación de conferencia de GCC , el cliente puede crear canales dinámicos adicionales de su elección, mientras que el servidor devuelve los números de canales estáticos asociados en el mensaje de respuesta RDP. Dado que esta solicitud se produce antes del paso de autenticación del usuario , el atacante no necesita tener una cuenta en el sistema para llevar a cabo con éxito el ataque. Si el cliente especifica "MS_T120" en la lista de canales, el servidor, llamando de nuevo a la función _IcaBindVirtualChannels , vinculará una instancia existente de la estructura del canal a un número distinto de 31. Cuando finalice la sesión, el servidor primero liberará el memoria asignada al cerrar el canal creado por el atacante, después de lo cual intentará liberar la misma memoria cuando intente cerrar el canal número 31. Por lo tanto, hay una doble liberación de memoria dentro del controlador termdd.sys . Debido a que el error ocurre en el espacio del núcleo , bloquea el sistema operativo en un BSoD [19] [20] .

Ataque RCE

Mucho más peligroso es el uso de BlueKeep para la ejecución remota de código (RCE) . Las estructuras de datos con información sobre canales dinámicos se almacenan en el grupo no paginado . La memoria para los mensajes almacenados en la cola del canal también se asigna en el grupo no paginado. La memoria asignada para un mensaje específico se libera solo cuando se lee del canal, es decir, si el canal no se lee, entonces la memoria se liberará solo en el momento en que se cierra la conexión [21] .

Para realizar RCE, un atacante necesita reasignar y sobrescribir la memoria en la dirección donde se encontraba la estructura del canal "MS_T120" antes de que se liberara la memoria. Para llevar a cabo la ejecución del código malicioso basta con cambiar el valor del puntero a la tabla de métodos virtuales en esta estructura al valor deseado. Esta tarea se ve facilitada en gran medida por la ausencia de un mecanismo de prevención de ejecución de datos (DEP) en el grupo no paginado en las versiones de Windows anteriores a Windows 7 . Esto significa que el código malicioso se puede colocar en la misma dirección que la tabla de métodos virtuales falsos. Tanto el cambio de puntero como la colocación directa de código malicioso se pueden realizar mediante el mencionado mecanismo de envío de mensajes en un canal del que no se leerán [21] .

Métodos de defensa

Notas

  1. 12 Goodin , Dan . Exploit para el error BlueKeep de Windows que funciona como gusano liberado: el módulo Metasploit no está tan pulido como el exploit EternalBlue. Aún así, es poderoso. , Ars Technica  (6 de septiembre de 2019). Archivado desde el original el 27 de noviembre de 2019. Consultado el 28 de noviembre de 2019.
  2. Warren, Tom Microsoft advierte sobre un importante exploit de seguridad de Windows similar a WannaCry, lanza parches para XP . El borde (14 de mayo de 2014). Consultado el 28 de noviembre de 2019. Archivado desde el original el 2 de septiembre de 2019.
  3. 1 2 Cimpanu, Catalin Incluso la NSA insta a los usuarios de Windows a parchear BlueKeep (CVE-2019-0708) . ZDNet . Consultado el 28 de noviembre de 2019. Archivado desde el original el 6 de septiembre de 2019.
  4. 12 Goodin , Dan . Microsoft prácticamente ruega a los usuarios de Windows que arreglen la falla de BlueKeep , Ars Technica  (31 de mayo de 2019). Archivado desde el original el 22 de julio de 2019. Consultado el 28 de noviembre de 2019.
  5. Existe una vulnerabilidad de ejecución remota de código en los Servicios de Escritorio Remoto anteriormente conocidos como Servicios de Terminal Server cuando un atacante no autenticado se conecta al sistema de destino mediante RDP y envía solicitudes especialmente diseñadas, también conocida como 'Vulnerabilidad de Ejecución Remota de Código de Servicios de Escritorio Remoto'. . Consultado el 28 de noviembre de 2019. Archivado desde el original el 9 de noviembre de 2019.
  6. 1 2 3 4 5 6 RDP significa "Really DO Patch!" – Comprensión de la vulnerabilidad de Wormable RDP CVE-2019-0708 (enlace no disponible) . Blogs de McAfee (21 de mayo de 2019). Consultado el 18 de noviembre de 2019. Archivado desde el original el 21 de mayo de 2019. 
  7. 1 2 Evite un gusano actualizando Servicios de escritorio remoto (CVE-2019-0708)' . Consultado el 30 de noviembre de 2019. Archivado desde el original el 1 de diciembre de 2019.
  8. Microsoft . Guía de actualización de seguridad - Agradecimientos, mayo de 2019 . Microsoft (mayo de 2019). Consultado el 28 de noviembre de 2019. Archivado desde el original el 23 de noviembre de 2019.
  9. Microsoft descarta el nuevo 'error' de Windows RDP como una característica . Seguridad desnuda (6 de junio de 2019). Consultado el 28 de noviembre de 2019. Archivado desde el original el 17 de diciembre de 2019.
  10. Stockley, Marcos . El exploit RDP BlueKeep muestra por qué realmente necesita parchear , NakedSecurity.com  (1 de julio de 2019). Archivado desde el original el 7 de diciembre de 2019. Consultado el 28 de noviembre de 2019.
  11. Personal. CVE-2019-0708: vulnerabilidad de ejecución remota de código de servicios de escritorio remoto (conocida como BlueKeep): boletín de soporte técnico . Sophos (29 de mayo de 2019). Consultado el 28 de noviembre de 2019. Archivado desde el original el 3 de julio de 2019.
  12. Goodin, Dan . Las posibilidades de un exploit destructivo de BlueKeep aumentan con un nuevo explicador publicado en línea: las diapositivas brindan la documentación técnica disponible públicamente más detallada vista hasta ahora. , Ars Technica  (22 de julio de 2019). Archivado desde el original el 8 de noviembre de 2019. Consultado el 28 de noviembre de 2019.
  13. Cimpanu, Catalín . Empresa estadounidense que vende el exploit BlueKeep armado: un exploit para una vulnerabilidad que Microsoft temía que pudiera desencadenar el próximo WannaCry ahora se vende comercialmente. , ZDNet  (25 de julio de 2019). Archivado desde el original el 8 de noviembre de 2019. Consultado el 25 de noviembre de 2019.
  14. Greenberg, Andy . DejaBlue: nuevos errores de estilo BlueKeep renuevan el riesgo de un gusano de Windows , Wired  (13 de agosto de 2019). Archivado desde el original el 13 de abril de 2021. Consultado el 28 de noviembre de 2019.
  15. Cimpanu, Catalín . Explotación de BlueKeep para solucionar su problema BSOD , ZDNet  (11 de noviembre de 2019). Archivado desde el original el 18 de noviembre de 2019. Consultado el 28 de noviembre de 2019.
  16. Greenberg, Andy . El primer hackeo masivo de BlueKeep finalmente está aquí, pero no se asuste: después de meses de advertencias, llegó el primer ataque exitoso que utiliza la vulnerabilidad BlueKeep de Microsoft, pero no es tan malo como podría haber sido. , Con cable  (2 de noviembre de 2019). Archivado desde el original el 2 de diciembre de 2019. Consultado el 28 de noviembre de 2019.
  17. Immanni, Manikanta . El primer hackeo masivo de BlueKeep finalmente está aquí, pero no se asuste: después de meses de advertencias, llegó el primer ataque exitoso que utiliza la vulnerabilidad BlueKeep de Microsoft, pero no es tan malo como podría haber sido.  (2 de noviembre de 2019). Archivado desde el original el 3 de noviembre de 2019. Consultado el 28 de noviembre de 2019.
  18. Microsoft trabaja con investigadores para detectar y proteger contra nuevos exploits RDP , Microsoft  (7 de noviembre de 2019). Archivado desde el original el 23 de noviembre de 2019. Consultado el 28 de noviembre de 2019.
  19. 12 Análisis de CVE-2019-0708 (BlueKeep) . MalwareTech (31 de mayo de 2019). Consultado el 29 de noviembre de 2019. Archivado desde el original el 17 de septiembre de 2019.
  20. Análisis de explotación de BlueKeep . Medio (18 de septiembre de 2019). Consultado el 29 de noviembre de 2019. Archivado desde el original el 27 de noviembre de 2019.
  21. 12 BlueKeep : Un viaje de DoS a RCE (CVE-2019-0708) . MalwareTech (6 de septiembre de 2019). Consultado el 29 de noviembre de 2019. Archivado desde el original el 28 de noviembre de 2019.
  22. Stockley, Marcos . RDP al descubierto: los lobos ya a tu puerta , Sophos  (17 de julio de 2019). Archivado desde el original el 18 de octubre de 2019. Consultado el 28 de noviembre de 2019.

Enlaces