Actualización 3/09/2018: Hasta que aparezca el correspondiente boletín de seguridad, ya empiezan a aparecer algunas contramedidas que pueden aplicarse para evitar la explotación de esta vulnerabilidad. Los compañeros del blog de ZeroLynx han publicado un par de posts explicando con detalle el funcionamiento del exploit y como mitigarlo, posts que recomendamos revisar para comprender mejor el alcance de esta vulnerabilidad.
En una época en la que es raro no encontrarnos con vulnerabilidades anunciadas a bombo y platillo incluso con web propia y hasta logo personalizado, la publicación el pasado 27 de agosto de una vulnerabilidad grave en Windows ha causado revuelo entre la comunidad de investigadores y la propia Microsoft.
Full disclosure vía Twitter
La forma por la que supimos de la existencia de esta vulnerabilidad fue a través de un tweet publicado por la investigadora SandboxEscaper en su Twitter (al cual ya no se puede acceder). De repente, se hacía pública una vulnerabilidad 0-day bastante grave que afectaba a un buen número de sistemas Windows, y además se acompañaba de una prueba de concepto que permitía demostrar su funcionamiento.
Esta vulnerabilidad permitiría a un usuario local sin permisos suficientes en un sistema vulnerable realizar una escalada de privilegios mediante un fallo en el planificador de tareas de Windows hasta obtener permisos de SYSTEM. Concretamente, el problema se encuentra en la interfaz del sistema ALPC (Advanced Local Procedure Call).
La prueba de concepto mostrada tan solo funciona en sistemas operativos Windows de 64 bits como Windows 10 o Windows server 2016, aunque en teoría también se podría hacer funcionar en sistemas de 32 bits modificando el exploit. Esta vulnerabilidad consigue tener éxito por un fallo en la manera en la la función API del planificador de tareas SchRpcSetSecurity revisa los permisos.
Este exploit utiliza de forma maliciosa esta función SchRpcSetSecurity para modificar los permisos de forma local por cualquier otro usuario sin privilegios, incluyendo las cuentas de invitados, abriendo así muchas posibilidades para un atacante.
Ejemplo de inyección de procesos con elevación de privilegios aprovechando esta vulnerabilidad – Fuente: Will Dormann
Formas de mitigar el alcance de esta vulnerabilidad
Debido a que la vulnerabilidad y la prueba de concepto se publicaron sin haber avisado previamente a Microsoft, no existe aún un parche de seguridad que la solucione. Se espera que esta vulnerabilidad sea debidamente solucionada en el próximo boletín de actualizaciones de seguridad, previsto para el martes 11 de septiembre. Hasta entonces, aquellos usuarios y empresas preocupados por posibles ataques que se aprovechen de este agujero de seguridad deberán aplicar medidas preventivas.
Los puntos clave y básicos que cualquier organización debería tener en cuenta para minimizar el impacto de este tipo de vulnerabilidades pasan por contar con una solución de seguridad que sea capaz de detectar cuándo se está intentando ejecutar un exploit en un sistema vulnerable, segmentar las redes para limitar el alcance de una infección o intrusión en la red corporativa y, obviamente, no permitir que aquellos usuarios que no sean de confianza ejecuten código en el sistema, aunque utilicen cuentas con permisos limitados.
Por otro lado, desde la publicación de la vulnerabilidad y de la prueba de concepto, varios investigadores han estado trabajando en posibles soluciones temporales. Por ejemplo, debido a que en la prueba de concepto se utilizaba el servicio spoolsv.exe como ejemplo para colgar de él otros procesos, es muy probable que algunos atacantes con pocas ganas de modificar el código lo utilicen también. Sabiendo esto, si monitorizamos el servicio spoolsv.exe con herramientas como Sysmon, podremos buscar procesos extraños que aparezcan colgando de él.
Otras formas más avanzadas requieren del análisis de registros y correlación de eventos para detectar cuándo se está abusando de esta vulnerabilidad. En el post de Kevin Beaumont donde se habla de este tema se proporciona un script en PowerShell para distribuir a través de las políticas de grupo y así poder detectar cualquier suceso que afecte a la carpeta Tasks, desde la cual se puede realizar la escalada de privilegios.
Aplicación de medidas de mitigación para registrar eventos sospechosos que se aprovechen de esta vulnerabilidad – Fuente: Kevin Beaumont
Conclusión
Esta vulnerabilidad ha sido una de las más importantes descubiertas recientemente, no solo por su posible impacto en sistemas Windows, sino también por cómo se ha hecho pública de forma directa y sin informar previamente a Microsoft. Lo ideal hubiera sido que se hubiese informado previamente al fabricante para que le diese tiempo a desarrollar un parche de seguridad, pero, tal y como están las cosas, deberemos esperar hasta el próximo 11 de septiembre para poder aplicar los boletines de seguridad correspondientes.
Hasta entonces, podemos aplicar las medidas de mitigación comentadas, teniendo en cuenta que, con la prueba de concepto ya publicada, es relativamente fácil para un atacante aprovechar esta vulnerabilidad, en principio solo de forma local, aunque no se descarta que se utilicen otros exploits para conseguir ataques remotos.