IntermediorootkitstaxonomíaclasificaciónkernelUEFIfirmware

Qué Es un Rootkit: Taxonomía Completa (User-Mode, Kernel, Firmware)

Taxonomía completa de rootkits: user-mode (LD_PRELOAD, IAT hooking), kernel-mode (LKM, sys_call_table), bootkits (MBR, VBR, UEFI), firmware implants, y hypervisor rootkits. Clasificación por nivel de privilegio, persistencia y dificultad de detección.

MalwareIntel Research··9 min lectura
Serie: Rootkits y Bootkits — Parte 1

El malware invisible

La mayoría del malware intenta pasar desapercibido, pero eventualmente es detectable: un proceso sospechoso, una conexión de red anómala, un archivo nuevo en el sistema. Los rootkits van un paso más allá: modifican el propio sistema operativo para que sus componentes sean literalmente invisibles para las herramientas de detección.

Un proceso oculto por un rootkit no aparece en Task Manager ni en ps. Un archivo oculto no se ve con dir ni con ls. Una conexión de red oculta no aparece en netstat. El rootkit filtra la realidad que el sistema operativo presenta al usuario y a las herramientas de seguridad.

Clasificación por nivel de privilegio

Nivel 3: User-Mode Rootkits (Ring 3)

Operan en el mismo nivel de privilegio que las aplicaciones normales. Son los más simples pero también los más fáciles de detectar.

TécnicaOSDescripciónDetección
LD_PRELOAD (Linux)LinuxCargar librería que intercepta funciones de libcVerificar /etc/ld.so.preload, ldd
IAT hooking (Windows)WindowsModificar Import Address Table de procesos para redirigir funcionesVerificar integridad de IAT
Inline hookingAmbosParchear los primeros bytes de funciones en librerias del sistemaComparar código en memoria vs disco
Binary replacementAmbosReemplazar binarios del sistema (ps, ls, netstat) con versiones modificadasVerificar hashes de binarios con paquete original
Function pointer hookingAmbosModificar punteros a funciones en estructuras de datosVerificar punteros contra valores esperados

Limitaciones: cualquier herramienta que opere a nivel de kernel (o que lea directamente del disco sin pasar por las APIs hookeadas) puede detectarlos.

Nivel 0: Kernel-Mode Rootkits (Ring 0)

Operan en el kernel del sistema operativo con máximos privilegios. Pueden modificar cualquier estructura del kernel.

TécnicaOSDescripciónDetección
sys_call_table hookingLinuxReemplazar punteros en la tabla de syscallsVerificar tabla contra valores esperados
SSDT hookingWindowsHooking de System Service Descriptor TableVerificar SSDT contra ntoskrnl.exe en disco
DKOM (Direct Kernel Object Manipulation)Windows/LinuxModificar listas de procesos/módulos del kernel directamenteMemory forensics (Volatility)
VFS hookingLinuxHookear operaciones del Virtual File SystemVerificar file_operations structs
IRP hookingWindowsHookear I/O Request Packets de driversVerificar IRP handlers
Callback manipulationWindowsDesregistrar callbacks de EDR en el kernelVerificar lista de callbacks
LKM (Loadable Kernel Module)LinuxCargar módulo del kernel maliciosolsmod, /proc/modules, Volatility
eBPF abuseLinuxUsar eBPF para interceptar syscallsbpftool prog list

Carga: en Windows requiere firma digital del driver (o BYOVD). En Linux requiere root (o exploit de escalada).

Nivel -1: Hypervisor Rootkits (Ring -1)

Operan por debajo del sistema operativo, en el nivel del hypervisor.

TécnicaDescripciónEjemplo
Blue PillRootkit que virtualiza el OS en ejecución, insertándose como hypervisorJoanna Rutkowska, 2006 (PoC)
SubVirtRootkit que mueve el OS a una VM sin que lo noteMicrosoft/Michigan, 2006 (PoC)
Hardware VM rootkitExplotar features de virtualización (VT-x) para control totalInvestigación académica

Estado actual: los hypervisor rootkits puros son mayormente teóricos/PoC. En la práctica, los APTs prefieren bootkits UEFI que son más simples y igualmente persistentes.

Nivel -2/-3: Firmware/Hardware Rootkits

Operan en el firmware del sistema (BIOS/UEFI, SPI flash, BMC).

TipoUbicaciónPersistenciaEjemplo
UEFI bootkitUEFI firmware, ESP partitionSobrevive reinstalación de OSBlackLotus, LoJax
SPI flash implantChip SPI flash (firmware BIOS/UEFI)Sobrevive cambio de discoMoonBounce, CosmicStrand
BMC/IPMI rootkitBaseboard Management ControllerSobrevive todo excepto reemplazo de placaInvestigación/PoC
NIC firmwareFirmware de la tarjeta de redSobrevive reinstalaciónInvestigación
GPU firmwareFirmware de GPUInvestigaciónJellyFish (PoC)
HDD/SSD firmwareFirmware del discoSobrevive formateoEquation Group (NSA)

Detección: requiere herramientas que lean directamente el firmware (CHIPSEC, UEFI scanning tools). Las herramientas del OS no pueden detectar rootkits que operan por debajo del OS.

Clasificación por técnica de ocultación

Qué puede ocultar un rootkit

ElementoCómo se ocultaNivel necesario
ProcesosFiltrar resultados de getdents/NtQuerySystemInformation, DKOM en listas de procesosKernel
ArchivosFiltrar resultados de readdir/NtQueryDirectoryFileKernel o User (LD_PRELOAD)
Conexiones de redFiltrar /proc/net/tcp o NtDeviceIoControlFileKernel
Módulos del kernelEliminar de la lista de módulos (list_del en Linux, unlinking en Windows)Kernel
Claves de registroFiltrar resultados de NtEnumerateKey/NtQueryValueKeyKernel
ThreadsOcultar threads de la lista de threads del procesoKernel
DriversOcultar driver de la lista de driversKernel
Tráfico de redFiltrar paquetes antes de que lleguen al stack TCP/IPKernel (BPF/NDIS)
MemoriaOcultar regiones de memoria de herramientas de dumpKernel

Técnicas de persistencia

TécnicaNivelSobrevive a...
Registry Run keysUserReboot: Sí. Reinstalación: No
Scheduled tasksUserReboot: Sí. Reinstalación: No
Service/DriverKernelReboot: Sí. Reinstalación: No
LKM autoloadKernelReboot: Sí. Reinstalación: No
MBR/VBR infectionBootkitReboot: Sí. Reinstalación: Depende
UEFI bootkit (ESP)BootkitReboot: Sí. Reinstalación: Depende del tipo
SPI flash implantFirmwareReboot: Sí. Reinstalación: Sí. Cambio de disco: Sí
BMC rootkitFirmwareTodo excepto reemplazo de placa madre

Evolución histórica

Timeline de rootkits

AñoRootkitTipoInnovación
1999FU RootkitWindows kernel (DKOM)Primer rootkit DKOM documentado
2003Hacker DefenderWindows user-mode + kernelHooking avanzado, configurable
2005Sony BMG rootkitWindows kernelRootkit comercial en CDs de música
2006Blue Pill (PoC)HypervisorConcepto de virtualización ofensiva
2006RustockWindows kernelRootkit de botnet de spam
2008TDL4/AlureonMBR bootkitPrimer bootkit masivo
2010ZeroAccessWindows kernel + P2PRootkit con red P2P
2012NecursWindows kernelRootkit de botnet, millones de infecciones
2014Uroburos/TurlaWindows kernelAPT ruso, rootkit sofisticado
2018LoJaxUEFI bootkitPrimer UEFI rootkit in-the-wild (APT28)
2020MosaicRegressorUEFI firmwareImplant en firmware SPI
2022MoonBounceSPI flashImplant en SPI flash (Lazarus)
2022CosmicStrandUEFI firmwareRootkit UEFI persistente
2022BlackLotusUEFI bootkitBypass de Secure Boot
2022BPFDoorLinux BPFBackdoor basado en BPF (APT chino)
2022SymbioteLinux LD_PRELOAD + BPFRootkit que se inyecta en TODOS los procesos

Rootkits vs Bootkits vs Firmware Implants

AspectoRootkit (kernel)BootkitFirmware Implant
UbicaciónEn el kernel del OS en ejecuciónEn el proceso de arranque (MBR/UEFI)En el chip de firmware (SPI flash)
Momento de cargaDespués del bootDurante el boot (antes del OS)Antes del boot (firmware)
Sobrevive reinstalaciónNoParcialmente
Sobrevive cambio de discoNoNoSí (firmware en placa madre)
Complejidad de desarrolloMedia-AltaAltaMuy alta
Complejidad de detecciónMediaAltaMuy alta
Quién los desarrollaMalware commodity + APTsSolo APTsSolo APTs tier-1 (nation-state)
Herramientas de detecciónVolatility, rootkit scannersSecure Boot, UEFI scanningCHIPSEC, firmware verification

Detección: enfoque por capas

CapaHerramientaQué detecta
User-moderkhunter, chkrootkit, UnhideBinarios reemplazados, LD_PRELOAD, procesos ocultos (comparación)
KernelVolatility (memory forensics)Módulos ocultos, hooks en sys_call_table/SSDT, DKOM
BootSecure Boot verification, UEFI scannerBootkit en MBR/ESP/UEFI
FirmwareCHIPSEC, fwupd, Intel Boot GuardImplants en SPI flash, firmware modificado
BehavioralEDR con kernel callbacksActividad anómala incluso si el rootkit oculta artefactos
NetworkAnálisis de tráfico externoTráfico C2 que el rootkit no puede ocultar del exterior

El principio fundamental

Un rootkit puede ocultar artefactos del sistema que controla, pero no puede ocultar su tráfico de red de un sensor externo. Un IDS/NDR en la red captura el tráfico del rootkit independientemente de si el rootkit controla el kernel del host.

Esto es la base de la detección: combinar análisis del host (donde el rootkit puede mentir) con análisis externo (donde el rootkit no tiene control).

Mapeo MITRE ATT&CK

TécnicaIDTipo de rootkit
RootkitT1014Técnica general
Kernel Modules and ExtensionsT1547.006LKM rootkits
Hijack Execution Flow: LD_PRELOADT1574.006User-mode Linux
Pre-OS Boot: System FirmwareT1542.001Firmware implants
Pre-OS Boot: BootkitT1542.003Bootkits MBR/UEFI
Modify System ImageT1601Firmware modification
BYOVDT1068Obtener kernel access para rootkit

Fuentes y referencias

  • Matrosov, A. et al. "Rootkits and Bootkits: Reversing Modern Malware and Next Generation Threats." No Starch Press, 2019.
  • Russinovich, M. et al. "Windows Internals Part 1." Microsoft Press, 2017.
  • Love, R. "Linux Kernel Development." Addison-Wesley, 2010.
  • MITRE ATT&CK. "Rootkit (T1014)." https://attack.mitre.org/techniques/T1014/
  • MITRE ATT&CK. "Pre-OS Boot (T1542)." https://attack.mitre.org/techniques/T1542/
  • ESET. "UEFI Threats Research." ESET Research.
  • Kaspersky. "MoonBounce: Firmware Rootkit." GReAT, 2022.

Preguntas frecuentes

Artículos relacionados

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.