Hypervisor: Malware y Rootkits
Author: Oscar Gallego Sendin
Hipervisores, virtualización y seguridad: control total sobre el sistema operativo
Sin fecha concreta en la transcripción — charla técnica, posiblemente en un contexto de ciberseguridad (se menciona CINAP)
Idea principal
La charla explica cómo funciona la virtualización a nivel de hardware (Intel VT-x) y cómo se puede aprovechar para construir hipervisores propios que den un control casi total sobre un sistema operativo invitado. El ponente va desde los fundamentos técnicos hasta aplicaciones reales en seguridad ofensiva y defensiva, pasando por cómo montarte un entorno de desarrollo para no destrozarte el sistema en el proceso.
Conceptos clave
- Las instrucciones del guest se ejecutan directamente en la CPU, sin emulación, rendimiento casi nativo
- Ciertos eventos fuerzan una salida al hipervisor (VM exit): acceso a registros especiales (CR0, CR3, MSRs), excepciones, instrucciones como CPUID, violaciones de la Extended Page Table...
- La VMCS (Virtual Machine Control Structure) es la estructura central: guarda el estado del guest y el host, qué eventos interceptar, cómo entrar/salir de la VM. Básicamente el "context switch" pero a nivel de hipervisor
- Intel divide la VMCS en seis categorías: estado guest, estado host, campos de control y campos de información
- La Extended Page Table (EPT) añade una capa extra de traducción de direcciones y permite poner permisos de lectura/escritura/ejecución por página, sin hooks
- Virtualización anidada: si quieres probar tu hipervisor dentro de una VM (recomendable para no cargarte el sistema real), el hipervisor padre tiene que soportarlo

Desarrollo/contexto
Lo más interesante de la charla es la parte de aplicaciones prácticas. Con la EPT puedes marcar cualquier página de memoria del sistema invitado y recibir un VM exit en cuanto se lea, escriba o ejecute algo en ella. Sin hooks, sin parches en el kernel. Eso significa que puedes monitorizar estructuras internas de Windows (EPROCESS, SSDT, IDT, GDT) de forma totalmente transparente y resistente a técnicas de evasión. El ponente menciona también el truco de interceptar escrituras en CR3 para enumerar todos los procesos e hilos que entran en ejecución, algo que no se puede evadir desde el sistema operativo.
En el lado ofensivo, la charla toca cómo se puede usar esto para rootkits de nivel hipervisor: acceso total tanto en kernel como en user mode, capacidad de mostrar contenido de memoria diferente según se lea o se ejecute (antiforense bastante bestia), o directamente desactivar PatchGuard interceptando la excepción divide error donde Microsoft esconde su inicialización. También se menciona el escenario de cadena de suministro comprometida, metiendo el hipervisor en el firmware para que sobreviva reinstalaciones del sistema.
Para el entorno de desarrollo, el ponente recomienda empezar con minivisor, un proyecto minimalista en C plano, sin abstracciones raras que te oculten lo que está pasando. Se puede compilar como driver de Windows o como driver UEFI para cargarse antes del sistema operativo.
Términos técnicos
- VM exit: salida forzada de la VM al hipervisor ante ciertos eventos
- VMCS: estructura que gestiona el estado y la configuración de una máquina virtual
- EPT (Extended Page Table): tabla de traducción adicional con permisos por página
- MSR (Model Specific Register): registros especiales de la CPU (RDMSR/WRMSR)
- VMX: extensiones de virtualización de Intel
- Monitor mode / single-step: ejecución instrucción a instrucción dentro del guest
- PatchGuard: mecanismo de protección del kernel de Windows
- Virtualización anidada: correr un hipervisor dentro de otro
Conclusiones
La virtualización no es solo para correr máquinas virtuales al uso: es una capa de control muy potente sobre cualquier sistema operativo. El nivel de visibilidad e interceptación que da, sin necesidad de tocar el kernel desde dentro, lo convierte en una tecnología clave tanto para seguridad defensiva (detección de rootkits, integridad de memoria) como ofensiva (evasión total, espionaje avanzado). Lo que me llevo es que esto es una rabbit hole enorme pero con proyectos como minivisor hay un punto de entrada razonablemente accesible para empezar a experimentar.
Para investigar más
- minivisor (GitHub) — punto de partida que recomienda el ponente
- Intel SDM Vol. 3C — capítulos sobre VMX y VMCS
- EPT y su relación con técnicas de shadow paging
- System Management Mode (SMM) y su relación con el mundo hipervisor (pregunta que quedó sin responder en la charla)
- Cómo funciona PatchGuard por dentro y técnicas para desactivarlo desde hipervisor