Parte: 6 — Análisis de malware · Fuente: Learning Malware Analysis (Monnappa) y Practical Binary Analysis ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Adaptar el análisis al ecosistema Linux, cada vez más atacado por su presencia en servidores, IoT y contenedores. El alumno estudiará el formato ELF, las técnicas de persistencia y ocultación en Linux (cron, systemd, LD_PRELOAD, rootkits LKM), las familias típicas (botnets IoT, mineros, backdoors) y las herramientas de análisis estático y dinámico en este entorno.
Al finalizar, el alumno podrá:
LD_PRELOAD y rootkits de módulo del kernel (LKM).strace, ltrace y análisis de red.| # | Tema | Por qué importa |
|---|---|---|
| 1 | Formato ELF | Equivalente Linux del PE |
| 2 | Enlazado dinámico y LD_PRELOAD |
Vector de hooking en user-land |
| 3 | Persistencia en Linux | cron, systemd, rc.local, bashrc |
| 4 | Rootkits LKM | Ocultación en kernel |
| 5 | Familias IoT (Mirai y derivados) | Amenaza dominante en Linux |
| 6 | Cryptominers y backdoors | Objetivos frecuentes en servidores |
| 7 | Herramientas: strace/ltrace/Ghidra | Triaje dinámico y estático |
⚠️ Nota ética y de seguridad: ejecuta ELF maliciosos solo en la VM Linux aislada, sin red hacia Internet y con snapshot. Los rootkits LKM pueden inutilizar el kernel invitado; asume que la VM será desechada. Nunca analices en un servidor de producción.
file muestra, readelf -h muestra (arquitectura, tipo), readelf -d (dependencias dinámicas) y nm -D (símbolos). ¿Está stripped?, ¿estático o dinámico?/etc/cron.*, /etc/systemd/system, ~/.bashrc), IPs y comandos.strace -f -e trace=network,process ./muestra para ver conexiones y procesos hijos; ltrace para llamadas libc.LD_PRELOAD, revisa /etc/ld.so.preload y librerías inyectadas; para LKM, revisa lsmod y módulos ocultos.tcpdump y extrae IOCs de red; mapea a ATT&CK. Restaura snapshot.LD_PRELOAD permite ocultar procesos a ps.strace y describe el comportamiento.Analiza una muestra ELF y entrega un informe con: arquitectura y tipo de binario, persistencia establecida, comportamiento de red (IOCs) y clasificación de familia, respaldado por salidas de readelf, strace y tcpdump.
Criterio de aceptación: identificas correctamente el mecanismo de persistencia con evidencia de strace/sistema de archivos y al menos un IOC de red, y clasificas la muestra (botnet/miner/backdoor) con justificación.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Binario stripped sin símbolos | Normal en malware; trabaja por strings y xrefs en Ghidra |
strace no muestra red |
Filtra por trace=network; puede usar syscalls directas |
| Arquitectura no coincide | ELF de MIPS/ARM (IoT); usa qemu-user para emular |
| Persistencia no encontrada | Revisa systemd, cron, rc.local y perfiles, no solo uno |
| Módulo kernel oculto | LKM rootkit; compara lsmod con /proc/modules |
❓ ¿El malware Linux es menos peligroso? No. Domina en servidores, IoT y cloud; botnets, ransomware Linux y mineros son muy activos.
❓ ¿Cómo analizo binarios ARM/MIPS de IoT? Con qemu-user para ejecutarlos en tu host x86 dentro del lab, y Ghidra que soporta esas arquitecturas.
❓ ¿strace es suficiente? Es un gran triaje dinámico, pero combínalo con análisis estático; el malware puede detectar el tracing o usar syscalls poco comunes.
Clase 153 — Análisis de malware en scripts: PowerShell y JavaScript