Introducción al Análisis de Malware
El análisis de malware es el proceso de estudiar software malicioso para entender su funcionamiento, propósito, capacidades e indicadores de compromiso (IOCs). Es una habilidad crítica para los equipos de respuesta a incidentes (IR) y los analistas de threat intelligence.
¿Por qué es importante?
- Identificar el alcance de una infección
- Desarrollar firmas de detección para antivirus
- Entender las TTPs (Tácticas, Técnicas y Procedimientos) del atacante
- Atribuir ataques a grupos conocidos
Entorno Seguro de Análisis
NUNCA analices malware en tu máquina principal. Configura un entorno aislado:
Opción 1: Máquina Virtual aislada
Configuración recomendada:
- VMware Workstation Pro o VirtualBox
- Windows 10 (la mayoría del malware es para Windows)
- Snapshot limpia antes de cada análisis
- Red en modo "Host-Only" o completamente desconectada
- Herramientas de análisis preinstaladas (REMnux, FlareVM)
Opción 2: Sandbox en línea (más seguro para principiantes)
- Any.run — sandbox interactivo
- VirusTotal — análisis multi-AV
- Hybrid Analysis — análisis comportamental
- Joe Sandbox — análisis profundo
Análisis Estático
El análisis estático estudia el malware sin ejecutarlo, examinando su código y estructura.
1. Identificación básica del archivo
# Tipo de archivo
file malware.exe
# Hash (para buscar en bases de datos)
md5sum malware.exe
sha256sum malware.exe
# Buscar en VirusTotal por hash
curl "https://www.virustotal.com/api/v3/files/{SHA256}" \
-H "x-apikey: TU_API_KEY"
2. Extracción de strings
# Extraer cadenas de texto visibles
strings malware.exe
# Strings con mayor longitud mínima (reduce ruido)
strings -n 8 malware.exe
# En Linux/Mac, strings Unicode también
strings -el malware.exe
Buscar indicadores como:
- URLs y dominios (C2 servers)
- Rutas de registro de Windows
- Nombres de archivos y procesos
- Mensajes de error o ransom notes
- Claves de API o credenciales hardcoded
3. Análisis con Ghidra (desensamblado)
Ghidra es el framework de ingeniería inversa de la NSA, ahora open source:
Pasos básicos:
1. Importar el binario en Ghidra
2. Analizar (Auto Analysis)
3. Buscar función "main" o puntos de entrada
4. Identificar llamadas a APIs del sistema (CreateProcess, RegSetValue, etc.)
5. Renombrar funciones conforme se entiende su propósito
APIs sospechosas comunes en malware:
| API | Indicador de |
|---|---|
CreateRemoteThread |
Inyección de procesos |
VirtualAllocEx |
Inyección de código |
RegSetValue |
Persistencia en registro |
CryptEncrypt |
Ransomware / cifrado |
InternetOpenUrl |
Comunicación C2 |
WNetAddConnection |
Movimiento lateral |
Análisis Dinámico
El análisis dinámico ejecuta el malware en un entorno controlado y observa su comportamiento.
Herramientas esenciales
Monitorización de procesos:
- Process Monitor (ProcMon) — Sysinternals
- Process Hacker
- API Monitor
Red:
- Wireshark — captura de tráfico
- FakeNet-NG — simula servicios de red para engañar al malware
Registro:
- Regshot — comparar estado del registro antes/después
Análisis con Process Monitor
Filtros útiles en ProcMon:
Process Name → contiene → malware.exe
Qué observar:
- Archivos creados/modificados (drop de payloads)
- Claves de registro modificadas (persistencia)
- Conexiones de red (C2 communication)
- Procesos hijo creados (spawning)
Indicadores de Compromiso (IOCs)
Al finalizar el análisis, documenta los IOCs:
# Ejemplo de reporte de IOCs
iocs:
hashes:
md5: "d41d8cd98f00b204e9800998ecf8427e"
sha256: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
network:
domains:
- "malicious-c2.example.com"
ips:
- "192.168.1.100"
urls:
- "http://malicious-c2.example.com/beacon"
files:
- path: "C:\\Windows\\Temp\\payload.exe"
- path: "C:\\Users\\%USERNAME%\\AppData\\Roaming\\malware.dll"
registry:
- key: "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"
value: "Updater"
data: "C:\\Windows\\Temp\\malware.exe"
Frameworks de Referencia
- MITRE ATT&CK: mapea TTPs de atacantes reales
- VirusTotal Graph: relaciones entre IOCs
- MalwareBazaar: repositorio de muestras de malware
Conclusión
El análisis de malware requiere práctica constante. Empieza con muestras simples de plataformas como MalwareBazaar, usa sandboxes online para el análisis dinámico y practica ingeniería inversa con Ghidra sobre binarios simples antes de abordar malware real.
Advertencia: Analizar malware real conlleva riesgos. Si no tienes experiencia, usa exclusivamente sandboxes online o máquinas virtuales completamente aisladas de tu red doméstica.