DKOM: manipulación directa de objetos del kernel
Análisis de la técnica DKOM (Direct Kernel Object Manipulation): cómo funciona a nivel de estructuras del kernel Windows, qué puede ocultar y cómo se detecta con Volatility.
Contexto
DKOM (Direct Kernel Object Manipulation) es la familia de técnicas que manipulan estructuras internas del kernel de Windows para ocultar actividad maliciosa. Iniciada por FU Rootkit (2003) y documentada formalmente en papers posteriores, DKOM se convirtió en la técnica de ocultación más elegante y difícil de detectar en rootkits de kernel.
Estructuras manipulables
EPROCESS (procesos)
Windows mantiene una lista doblemente enlazada de estructuras EPROCESS. Cada proceso tiene un campo ActiveProcessLinks que lo conecta con el siguiente y el anterior. DKOM desenlaza el proceso objetivo:
Antes: ProcessA ←→ ProcessB ←→ ProcessC
Después: ProcessA ←→ ProcessC (ProcessB desenlazado pero vivo)
ProcessB sigue ejecutándose (el scheduler usa otra lista interna), pero no aparece en TaskManager, Process Explorer ni cualquier herramienta que recorra ActiveProcessLinks.
Drivers y módulos
Similar a procesos, los drivers cargados están en una lista enlazada (PsLoadedModuleList). DKOM puede ocultar un driver malicioso desenlazándolo de esta lista. El driver sigue ejecutándose pero no aparece en lm de WinDbg ni en herramientas de listado de drivers.
Tokens de seguridad
DKOM puede modificar el token de seguridad de un proceso para escalar privilegios. Copiar el token de SYSTEM y asignarlo a un proceso de usuario da privilegios de SYSTEM sin necesitar un exploit de escalamiento.
Handles y puertos
Manipular la tabla de handles de un proceso para ocultar conexiones de red, archivos abiertos y objetos de sincronización. Más sutil que ocultar el proceso completo: el proceso es visible pero sus actividades no.
Detección con Volatility
Cross-view analysis
La detección clásica de DKOM compara múltiples fuentes de información sobre el mismo dato:
| Método | Qué encuentra | Detecta DKOM |
|---|---|---|
pslist | Recorre ActiveProcessLinks | No (DKOM desenlaza de esta lista) |
psscan | Escanea memoria buscando firmas EPROCESS | Sí (estructura sigue en memoria) |
pstree | Reconstruye árbol padre-hijo | Parcial |
psxview | Combina múltiples métodos | Sí (cross-view comparison) |
Verificación de integridad
Comparar valores esperados de estructuras del kernel con valores actuales:
- Offsets de EPROCESS deben coincidir entre versiones de Windows
- Pool tags de objetos del kernel deben ser consistentes
- Contadores de referencia deben ser coherentes
Thread enumeration
Aunque un proceso está oculto por DKOM, sus threads siguen referenciados en la lista de threads del scheduler. Volatility threads puede encontrar threads huérfanos que pertenecen a procesos no listados.
Evolución y contramedidas
PatchGuard (KPP)
Microsoft introdujo PatchGuard en Windows Vista x64 para prevenir modificaciones no autorizadas de estructuras críticas del kernel. PatchGuard verifica periódicamente la integridad de SSDT, IDT, GDT, MSRs y otras estructuras. Detectar DKOM en estas estructuras causa un BSOD.
Sin embargo, PatchGuard no protege la lista de procesos EPROCESS directamente. DKOM sobre procesos sigue siendo posible en Windows 10/11 x64, aunque es más arriesgado porque PatchGuard puede detectar los efectos secundarios.
Kernel Callback Objects
Las APIs modernas de callback (PsSetCreateProcessNotifyRoutine, etc.) reportan la creación de procesos independientemente de la lista EPROCESS. Un proceso ocultado por DKOM habría sido reportado por el callback en su creación. Los EDR que registran estas callbacks tienen un registro independiente de la lista manipulable.
Estado en 2026
DKOM es menos prevalente que en 2005-2010 gracias a PatchGuard y callbacks. Pero el concepto sigue vivo:
- Rootkits que modifican estructuras no protegidas por PatchGuard
- Manipulación de handle tables para ocultar actividad sin ocultar el proceso
- Técnicas de DKOM en kernel mode combinadas con BYOVD para evadir PatchGuard
Veredicto
DKOM es la técnica que define la disciplina de rootkits de kernel. Entenderla es requisito para análisis de memoria forense (por eso pslist vs psscan es la primera comparación que enseñan en cursos de Volatility). Los papers sobre DKOM son la base teórica que justifica toda la metodología de detección de rootkits en memoria.
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.