Detección de rootkits en Linux: Herramientas y técnicas
10 min de lectura - 16 de mayo de 2026

Cómo detectar y prevenir rootkits Linux usando chkrootkit, rkhunter, Auditd, AIDE, y monitorización del comportamiento en sus servidores.
Detección de rootkits en Linux: herramientas y técnicas para la seguridad de los servidores
Los rootkits proporcionan a los atacantes un acceso persistente y oculto a los sistemas Linux. Manipulan las operaciones del kernel, ocultan archivos y procesos, y eluden las herramientas de seguridad estándar. Algunos han pasado desapercibidos durante años. Detectarlos requiere un enfoque por capas, ya que ninguna herramienta por sí sola lo detecta todo.
Esta publicación aborda los principales tipos de rootkits de Linux, cómo buscarlos y las técnicas de monitorización avanzadas que detectan lo que los escáneres básicos pasan por alto.
Tipos de rootkits de Linux
Los rootkits operan en diferentes niveles de privilegios, y cuanto más profundos se encuentran, más difíciles son de detectar.
Los rootkits en modo usuario se ejecutan a nivel de aplicación (Ring 3). Secuestran los enlaces dinámicos utilizando LD_PRELOAD para inyectar bibliotecas maliciosas que interceptan funciones estándar de la biblioteca C como readdir o fopen, ocultando archivos y procesos a las herramientas del espacio de usuario.
Los rootkits en modo kernel se ejecutan en el Anillo 0 al cargarse como módulos de kernel cargables (LKM). Interceptan llamadas al sistema, manipulan la memoria del kernel y ocultan su propia presencia. Dado que están vinculados a versiones específicas del kernel, uno mal configurado puede provocar un pánico del kernel, lo que, irónicamente, lo expone.
Los rootkits basados en eBPF aprovechan el subsistema Extended Berkeley Packet Filter para ejecutarse en el espacio del kernel sin cargar un módulo tradicional. Se acoplan a ganchos de llamadas al sistema, puntos de rastreo o eventos LSM. Los escáneres LKM estándar no los detectan. Boopkit es una conocida prueba de concepto que crea un canal C2 encubierto utilizando este enfoque.
Los rootkits basados en io_uring son la variante más reciente. Utilizan la io_uring interfaz de E/S asíncrona para las operaciones por lotes, generando menos eventos de llamadas al sistema observables. RingReaper, un rootkit experimental, demostró cómo esto puede sustituir silenciosamente llamadas como read, write, y connect , al tiempo que elude las herramientas EDR.
| Tipo de rootkit | Nivel de privilegios | Método de enganche | Dificultad de detección |
|---|---|---|---|
| Modo de usuario | Anillo 3 (Usuario) | LD_PRELOAD, secuestro de bibliotecas | Moderada |
| Modo kernel | Anillo 0 (Kernel) | Tabla de llamadas al sistema, LKM, hooking en línea | Alto |
| Basado en eBPF | Anillo 0 (Kernel) | Incorporación de programas eBPF | Muy alto |
| Basado en io_uring | Usuario/Kernel | Agrupación asíncrona de E/S | Muy alto |
Análisis con chkrootkit y rkhunter
Dos herramientas constituyen la base para la detección de rootkits en servidores Linux: chkrootkit para análisis rápidos y rkhunter para comprobaciones más exhaustivas.
chkrootkit
chkrootkit es un script de shell que comprueba los binarios críticos del sistema (ls, ps, netstat, sshd, ifconfig) en busca de signos de manipulación. También detecta interfaces de red en modo promiscuo y registros eliminados. A partir de la versión 0.59 (enero de 2026), puede identificar más de 75 rootkits, gusanos y LKM, incluidas amenazas más recientes como Linux BPFDoor, Syslogk y XZ Backdoor.
Ejecútalo tras cualquier actividad sospechosa. Presta atención a las advertencias del ifpromisc componente y a las alertas sobre lastlog o wtmp .
rkhunter
rkhunter va más allá. Compara los hash SHA-1 de los binarios del sistema con valores válidos conocidos, supervisa los permisos de los archivos y los archivos ocultos, comprueba las configuraciones de inicio y realiza análisis del kernel y de la red.
Configúralo correctamente desde el principio:
# Establish a baseline after a clean install or update
rkhunter --propupd
# Update rootkit definitions
rkhunter --update
# Run a full scan (use --novl on production servers to reduce I/O)
rkhunter --check --enable all
Para escaneos diarios automatizados, configura CRON_DAILY_RUN="true" en /etc/rkhunter.conf y utiliza --skip-keypress y --report-warnings-only para obtener resultados limpios. Revisa los registros en /var/log/rkhunter.log y añada a la lista blanca los falsos positivos confirmados.
Detección de rootkits LKM
Los rootkits LKM son especialmente peligrosos porque funcionan como extensiones del kernel, interceptando llamadas al sistema y ocultando procesos a nivel del kernel. Las herramientas estándar como lsmod no los detectan, pero hay formas de identificarlos.
Compara lsmod la salida con /sys/module/ los listados. Revisa los registros del sistema en busca de mensajes sospechosos del núcleo:
# Look for out-of-tree module warnings
sudo dmesg | grep "loading out-of-tree module taints kernel"
# Check for module verification failures
grep "module verification failed" /var/log/syslog
# Run chkrootkit's LKM-specific check
sudo chkrootkit lkm
Incluso los rootkits que se ocultan de lsmod y /proc/modules (como Diamorphine) pueden detectarse revisando /sys/module/diamorphine/coresize o revisando las advertencias del syslog.
Detección avanzada: supervisión del comportamiento y comprobaciones de integridad
Los escáneres estáticos tienen una debilidad fundamental. En un experimento de 2026, añadir un solo byte nulo a un binario de rootkit, un cambio que no afecta a la funcionalidad, redujo drásticamente las tasas de detección. Las detecciones de Diamorphine cayeron de 33/66 a 8/64 simplemente eliminando sus tablas de símbolos. No basta con confiar únicamente en las firmas.
Análisis de comportamiento
En lugar de preguntarse «¿coincide este archivo con un rootkit conocido?», el análisis de comportamiento se pregunta «¿está este proceso haciendo algo inusual?». Supervise estas señales:
- Utilice Auditd para supervisar
init_module()yfinit_module()las llamadas al sistema, que cargan módulos del kernel independientemente del método. - Supervisa
kill()las llamadas con señales superiores a 31, lo que puede indicar una comunicación encubierta de un rootkit. - Comprueba
/proc/sys/kernel/taintedsi hay actividad no autorizada de módulos del núcleo. - Esté atento a
.soen/tmpo/dev/shm. - Realice un seguimiento de la actividad de eBPF, especialmente
bpf_probe_write_userllamadas. Herramientas como BCC pueden rastrear operaciones io_uring a través de puntos de rastreo comosys_enter_io_uring_enter.
En el caso concreto de los rootkits de eBPF e io_uring, herramientas de monitorización en tiempo de ejecución como Tetragon, Falco y Tracee pueden observar la actividad dentro del núcleo en tiempo real.
Supervisión de la integridad de los archivos
AIDE (Advanced Intrusion Detection Environment) crea una línea de base de archivos de sistema de confianza y comprueba si hay cambios. Inicialícelo con aide --init, y luego prográmalo aide --check a través de cron. Realiza un seguimiento de las sumas de comprobación, los permisos, la propiedad y las marcas de tiempo en binarios críticos como /bin/login y /usr/bin/sshd.
Para la verificación a nivel de paquete, debsums (Debian/Ubuntu) o rpm -Va (RHEL/CentOS) pueden confirmar la integridad de los archivos del sistema. Para obtener los resultados más fiables, arranca desde un medio de rescate de confianza e inspecciona el sistema de archivos sin conexión, ya que los rootkits pueden manipular los informes de un kernel en ejecución.
Supervise también los mecanismos de persistencia. Los rootkits suelen modificar /etc/ld.so.preload para inyectar objetos compartidos, o alteran .bashrc y .profile. Los cambios legítimos en estos archivos son poco frecuentes, por lo que las alertas en este caso tienen una alta relación señal-ruido.
Supervisión automatizada con Auditd
Añada estas reglas a /etc/audit/rules.d/rootkit.rules para la detección en tiempo real de actividad sospechosa del kernel:
# Detect unauthorized kernel module loading
-a always,exit -F arch=b64 -S finit_module -S init_module
# Catch unusual high-range kill signals
-a always,exit -F arch=b64 -S kill -F a1>=32
Combínalas con las actualizaciones automáticas de rkhunter. Configura UPDATE_MIRRORS=1 y MIRRORS_MODE=0 en la configuración, y ejecuta rkhunter --propupd después de las actualizaciones legítimas del sistema para actualizar la línea de base.
Cómo proteger su servidor contra los rootkits
La detección es importante, pero la prevención es mejor. La mayoría de los rootkits requieren privilegios elevados para instalarse, por lo que reducir la superficie de ataque marca una diferencia real.
Mantén el kernel y los paquetes actualizados. Los atacantes aprovechan las vulnerabilidades sin parchear para escalar privilegios e implementar rootkits basados en LKM o eBPF. Después de aplicar los parches, actualiza tus bases de detección con rkhunter --propupd.
Aplique el principio del privilegio mínimo. No conceda a los usuarios o procesos más acceso del que necesitan. Utilice SELinux o AppArmor para controles de acceso obligatorios que bloqueen acciones no autorizadas incluso si un proceso se ve comprometido.
Desactive la carga de módulos del kernel tras el arranque. En servidores dedicados, puede evitar por completo los rootkits LKM bloqueando la carga de módulos una vez que el sistema se ha iniciado. Esto no es posible en el alojamiento compartido, lo que constituye una de las razones por las que los entornos dedicados o VPS ofrecen una postura de seguridad más sólida.
Segmente su red. Aislar partes de su infraestructura limita el movimiento lateral si se ve comprometida una máquina.
Realice auditorías periódicas. Herramientas como Lynis pueden identificar errores de permisos y configuraciones incorrectas antes de que los atacantes los aprovechen.
Conclusión
Los rootkits están diseñados para ocultarse a plena vista. Para cuando aparecen los síntomas, es posible que el sistema ya esté comprometido hasta el punto de que no sea fácil recuperarlo. Ningún escáner detecta todo, y la detección básica basada en firmas es fácil de eludir.
Una defensa práctica combina varias capas:
- Escaneos periódicos con chkrootkit y rkhunter para detectar amenazas conocidas
- Reglas de Auditd y supervisión del comportamiento para detectar actividades sospechosas del kernel
- Supervisión de la integridad de los archivos con AIDE para detectar cambios no autorizados
- Herramientas de tiempo de ejecución como Tetragon o Falco para amenazas eBPF e io_uring
- Controles de acceso reforzados, aplicación de parches y segmentación de la red para reducir la superficie de ataque
Automatice lo que pueda, mantenga actualizadas las bases de referencia y comience con una instalación limpia del sistema operativo en la que confíe.
FDC Servers ofrece alojamiento dedicado y VPS con acceso root completo y configuraciones de kernel personalizables. Explora las opciones de servidores dedicados para crear un entorno Linux reforzado.

¿Cansado de despliegues lentos o límites de ancho de banda? FDC Servers ofrece potencia dedicada instantánea, alcance global y planes flexibles diseñados para cualquier escala.
Actualizar ahoraPor qué es importante tener un VPS potente y sin contador
Un VPS sin contador proporciona un ancho de banda fijo a una velocidad de puerto fija. En qué se diferencia de los planes con contador, cuándo compensa y qué hay que comprobar antes de comprarlo.
7 min de lectura - 9 de mayo de 2025
Gestión de memoria en Linux: Swap, OOM Killer y Cgroups
12 min de lectura - 31 de mayo de 2026