Análisis de Malware
¿Qué es el Análisis de Malware?
El análisis de malware es el proceso de examinar código malicioso para comprender su comportamiento, capacidades, origen y objetivos. Es esencial para la respuesta a incidentes, la threat intelligence y el desarrollo de contramedidas eficaces.
Tipos de Análisis
1. Análisis Estático
Examen del malware sin ejecutarlo:
- Análisis de cadenas (strings) y metadatos
- Identificación de packers y ofuscación
- Análisis de cabeceras PE/ELF
- Firmas y hashes (MD5, SHA-256, SSDEEP)
- YARA rules matching
2. Análisis Dinámico
Ejecución controlada en un entorno aislado:
- Sandbox analysis (Cuckoo, Any.Run, Joe Sandbox)
- Monitoreo de llamadas al sistema
- Análisis de tráfico de red
- Modificaciones en el filesystem y el registro
- Procesos creados e inyecciones de código
3. Ingeniería Inversa
Análisis profundo del código:
- Disassembly y decompilación
- Debugging y análisis de flujo
- Identificación de algoritmos de cifrado
- Extracción de configuraciones e IOCs
Herramientas Esenciales
Análisis Estático
- • PEiD / Detect It Easy
- • PEStudio / CFF Explorer
- • Strings / FLOSS
- • VirusTotal / Hybrid Analysis
- • YARA / Capa
Análisis Dinámico
- • Cuckoo Sandbox
- • Any.Run
- • Process Monitor (Sysinternals)
- • Wireshark / tcpdump
- • Regshot
Reverse Engineering
- • IDA Pro / Ghidra
- • x64dbg / WinDbg
- • dnSpy (para .NET)
- • JD-GUI (para Java)
- • Radare2
Memoria y Forense
- • Volatility Framework
- • Rekall
- • SANS SIFT Workstation
- • REMnux Distribution
Metodología de Análisis
Fase 1: Triaje Inicial
- Calcular hashes y verificarlos en bases de threat intelligence
- Enviar a sandboxes públicos (VirusTotal, Hybrid Analysis)
- Análisis rápido de strings e imports
- Determinar el tipo de archivo y el posible packer
Fase 2: Análisis Comportamental
- Ejecutar en un sandbox controlado
- Monitorear la creación de archivos y procesos
- Capturar el tráfico de red y las conexiones C2
- Identificar técnicas de persistencia
Fase 3: Análisis Profundo
- Desempaquetado y desofuscación
- Reverse engineering de funciones críticas
- Extracción de configuraciones e IOCs
- Identificación de familias y variantes
Indicadores de Compromiso (IOCs)
IOCs esenciales a extraer:
- File-based: Hashes, nombres de archivos, rutas
- Network: IPs, dominios, URLs, User-Agents
- Registry: Claves creadas/modificadas
- Behavior: Mutexes, named pipes, servicios
- YARA rules: Patrones de detección reutilizables
Técnicas Comunes de Evasión
- Anti-VM/Sandbox: Detección de entornos virtualizados
- Anti-Debugging: Técnicas para evitar el análisis
- Packing/Obfuscation: Ofuscación de código
- Process Injection: DLL injection, process hollowing
- Rootkit Capabilities: Ocultación de procesos y archivos
- Fileless Malware: Ejecución únicamente en memoria
MITRE ATT&CK Framework
Mapear el comportamiento del malware a las técnicas de MITRE ATT&CK:
- Initial Access (phishing, exploit public-facing app)
- Execution (command and scripting, user execution)
- Persistence (registry run keys, scheduled tasks)
- Defense Evasion (obfuscation, process injection)
- Command and Control (web protocols, DNS)
- Exfiltration (exfiltration over C2, automated exfiltration)
Recomendaciones de Seguridad
- [OK] Analizar siempre en un entorno aislado (air-gapped)
- [OK] Usar snapshots de VMs para una restauración rápida
- [OK] Documentar todo el análisis de forma detallada
- [OK] Compartir IOCs con la comunidad (MISP, OTX)
- [OK] Mantener las herramientas de análisis siempre actualizadas
- [OK] Crear YARA rules para detección futura
- [OK] Integrar los hallazgos con plataformas de threat intelligence
