Los investigadores de la firma de seguridad informática CyberArk Labs han desarrollado una nueva técnica de ataque que podría permitir a los dilincuentes informáticos pasarse por alto el PatchGuard y modificar el kernel con código malicioso (rootkits) al nivel del kernel y con ello volverse invisible a anti-virus. La tecnologia PatchGuard es una característica de las ediciones de Windows de 64 bits que impide el parcheado del kernel. “Parchear el kernel” se refiere a una modificación no oficial del kernel o núcleo del sistema operativo Windows.
Esta es la descripción de cómo funciona la vulnerabilidad de acuerdo a CyberArk:
La técnica de hackeo GhostHook que descubrimos puede proporcionar a los actores maliciosos o productos de seguridad de la información con la capacidad de conectar con casi cualquier programa que se ejecuta en la máquina.
Comencemos explicando la tecnología primaria implicada en esta técnica, Intel® PT:
El Intel® Processor Trace (Intel PT) es una extensión de Intel® Architecture que captura información sobre la ejecución del software utilizando instalaciones de hardware dedicadas que causan sólo una perturbación de rendimiento mínima al software que se está reastreando.
Esta información se recoge en paquetes de datos. Las implementaciones iniciales de Intel PT ofrecen control de seguimiento de flujo, que genera una variedad de paquetes para ser procesados por un decodificador de software.
Los paquetes incluyen sincronización, información de flujo del programa (por ejemplo, destino de salto, indicaciones de saltos tomados/no-tomados) e información relacionada con el modo inducido por el programa (por ejemplo, transiciones de estado de Intel TSX, cambios de CR3). Estos paquetes pueden ser almacenados en búfer internamente antes de ser enviados al subsistema de memoria u otro mecanismo de salida que está disponible en la plataforma.
El software de depuración puede procesar los datos de rastreo y reconstruir el flujo del programa. He aquí una lista de las instrucciones de cambio de flujo que Intel PT rastrea:
Type Instructions Conditional Branch JA, JAE, JB, JBE, JC, JCXZ< JECXZ, JRCXZ, JE, JG, JGE, JL, JLE, JNA, JNAE, JNB, JNBE, JNC, JNE, JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JNZ, JO, JP, JPE, JPO, JS, JZ, LOOP, LOOPE, LOOPNE, LOOPNZ, LOOPZ Unconditional Direct Branch JMP (E9 xx, EB xx), CALL (E8 xx) Indirect Branch JMP (FF /4), CALL (FF /2) Near Ret RET (C3, C2 xx) Far Transfers INTn, INTO, IRET, IRETD, IRETQ, JMP (EA xx, FF /5), CALL (9A xx, FF /3), RET (CB, CA xx), SYSCALL, SYSRET, SYSENTER, SYSEXIT, VMLAUNCH, VMRESUME Intel PT fue lanzado inicialmente como parte de la CPU “Broadwell” (quinta generación) y fue ampliado en la CPU “Skylake” (sexta generación).
Así, básicamente, Intel PT proporciona un hardware de sobrecarga bajo el que ejecuta el rastreo en cada hilo de hardware utilizando hardware dedicado (implementado enteramente en hardware) en la Unidad de supervisión de rendimiento (PMU) de la CPU. Intel PT puede rastrear cualquier software que ejecute la CPU, incluidos los hipervisores (excepto los contenedores seguros SGX).
Esta tecnología se utiliza principalmente para el monitoreo de rendimiento, cobertura de código de diagnóstico, depuración, fuzzing, análisis de malware y detección de exploits.
Hay tres tipos de rastreo:
- Seguimiento de todo el modo de usuario/modo de kernel (nivel de privilegio actual).
- Seguimiento de un solo proceso (Nivel de mapa de página 4).
- Instrucción Puntero de seguimiento y esto es lo que vamos a aprovechar.
Para habilitar el seguimiento, todo lo que se tiene que hacer es establecer los valores adecuados dentro de los IA32_RTIT MSR de acuerdo con el tipo de seguimiento.
Aunque esta tecnología puede utilizarse con fines legítimos y valiosos, también puede ser aprovechada como el mecanismo de notificación de buffer-is-going-full para intentar tomar el control de un hilo de ejecución.
Lo malo es que Microsoft no considera que GhostHook es una seria amenaza y le ha dicho a CyberArk que ellos no cree que se necesite ningún parche de emergencia, pero que podrían parchar el problema en una futura versión de Windows:
El equipo de ingeniería ha terminado su análisis de este informe y determinó que requiere que el atacante ya esté ejecutando el código del kernel en el sistema “, dijo un portavoz de Microsoft.” Como tal, esto no cumple con la barra de servicio en una actualización de seguridad. Pueden ser tratado en una versión futura de Windows. Como tal he cerrado este caso.
En respuesta a lo dicho por CyberArk, Microsoft también publicó una declaración, que dice:
Esta técnica requiere que un atacante ya haya comprometido completamente el sistema de destino. Animamos a nuestros clientes a que practiquen buenos hábitos informáticos en línea, incluyendo precaución al hacer clic en enlaces a páginas web, abrir archivos desconocidos o aceptar transferencias de archivos.
Como es de esperar CyberArk está decepcionada con la respuesta de Microsoft, alegando que Microsoft debe darse cuenta de que PatchGuard es un componente del núcleo del sistema y como tal debe ser atendedido de manera prioritaria.
Espero que esta información les haya sido de utilidad.