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 e IDS
- Entender las TTPs (Tácticas, Técnicas y Procedimientos) del atacante
- Atribuir ataques a grupos conocidos
- Crear reglas de detección personalizadas (YARA, Snort, Sigma)
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 con análisis visual
- VirusTotal — análisis multi-AV (70+ motores)
- Hybrid Analysis — análisis comportamental profundo
- Joe Sandbox — análisis profundo con clasificación de amenazas
FlareVM y REMnux: Distribuciones Especializadas
- FlareVM: Una distribución de Windows creada por FireEye Mandiant en 2017 que incluye todas las herramientas de análisis estático y dinámico preinstaladas (Ghidra, x64dbg, PEStudio, YARA, etc.). Se instala sobre una máquina virtual de Windows 10 limpia.
- REMnux: Una distribución Linux diseñada específicamente para ingeniería inversa y análisis de malware. Incluye herramientas para analizar documentos maliciosos, scripts ofuscados y tráfico de red.
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. Análisis de PE Headers (Portable Executable)
Los ejecutables de Windows tienen una estructura de encabezados PE que revelan información valiosa:
Herramientas para análisis de PE:
- PEStudio → Análisis rápido de secciones, imports, strings
- PE-bear → Visor de PE headers interactivo
- Detect It Easy → Identifica packers, compilers y protecciones
Indicadores sospechosos en PE headers:
- Secciones con nombres inusuales (.UPX, .aspack, .nsp0)
- Entropía alta en secciones (> 7.0 indica empaquetado/cifrado)
- Fecha de compilación en el futuro o muy antigua (timestomping)
- Pocos imports declarados (el malware los resuelve dinámicamente)
3. 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
# FLOSS: extrae strings ofuscadas y desempaquetadas
floss 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
- Nombres de funciones de API de Windows (CreateRemoteThread, VirtualAllocEx)
4. 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 |
NtUnmapViewOfSection |
Process hollowing |
SetWindowsHookEx |
Keylogger / hooking |
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)
Reglas YARA: Detección Personalizada
YARA es el estándar de la industria para crear reglas de detección de malware basadas en patrones de texto, bytes o condiciones lógicas. Los analistas de malware escriben reglas YARA para identificar familias de malware de forma automatizada.
rule Ransomware_Generic {
meta:
author = "CyberFlows Team"
description = "Detecta indicadores genéricos de ransomware"
severity = "critical"
strings:
$ransom_note1 = "Your files have been encrypted" nocase
$ransom_note2 = "README_TO_DECRYPT" nocase
$bitcoin = /[13][a-km-zA-HJ-NP-Z1-9]{25,34}/ // Dirección Bitcoin
$crypto_api1 = "CryptEncrypt"
$crypto_api2 = "CryptGenKey"
$shadow_delete = "vssadmin delete shadows" nocase
condition:
uint16(0) == 0x5A4D and // Es un ejecutable PE (MZ header)
(any of ($ransom_note*)) and
(any of ($crypto_api*) or $shadow_delete)
}
# Escanear un archivo con reglas YARA
yara reglas.yar malware.exe
# Escanear un directorio completo
yara -r reglas.yar /carpeta_sospechosa/
# Escanear un proceso en ejecución (por PID)
yara reglas.yar 1234
Análisis de Memoria con Volatility
Cuando se captura la memoria RAM de un sistema comprometido (ej. durante la respuesta a un incidente de ransomware), Volatility permite extraer información forense crítica:
# Identificar el perfil del sistema operativo
vol.py -f memory.dump imageinfo
# Listar todos los procesos (incluyendo ocultos)
vol.py -f memory.dump --profile=Win10x64 pslist
vol.py -f memory.dump --profile=Win10x64 psscan # Detecta procesos ocultos
# Extraer conexiones de red activas
vol.py -f memory.dump --profile=Win10x64 netscan
# Buscar inyección de código en procesos
vol.py -f memory.dump --profile=Win10x64 malfind
# Extraer DLLs cargadas por un proceso sospechoso
vol.py -f memory.dump --profile=Win10x64 dlllist -p 1234
# Extraer el ejecutable de un proceso de la memoria
vol.py -f memory.dump --profile=Win10x64 procdump -p 1234 -D output/
Técnicas Anti-Análisis del Malware
El malware moderno implementa técnicas sofisticadas para dificultar su análisis:
1. Detección de Sandboxes y Máquinas Virtuales
- Verifica si existen procesos de herramientas de análisis (procmon.exe, wireshark.exe, x64dbg.exe).
- Busca claves de registro específicas de VMware, VirtualBox o Hyper-V.
- Comprueba la resolución de pantalla, el número de CPUs y la cantidad de RAM (los entornos de análisis suelen tener recursos mínimos).
2. Empaquetado y Ofuscación (Packers)
- UPX, Themida, VMProtect: comprimen y cifran el ejecutable para ocultar el código real.
- El código se desempaqueta en memoria solo en tiempo de ejecución.
- Herramientas para detectar packers: Detect It Easy (DIE) y PEiD.
3. Técnicas de Evasión Temporal
- Sleep calls: El malware duerme durante horas antes de activarse, esperando que el análisis en sandbox termine (la mayoría de los sandboxes ejecutan muestras por solo 2-5 minutos).
- Verificación de fecha: Se activa solo después de una fecha específica.
- Verificación de interacción: Espera a que el usuario mueva el ratón o escriba en el teclado antes de ejecutar el payload malicioso.
Indicadores de Compromiso (IOCs)
Al finalizar el análisis, documenta los IOCs en un formato estructurado:
# 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"
mitre_attack:
- T1059.001 # PowerShell
- T1547.001 # Registry Run Keys
- T1071.001 # Web Protocols (C2)
Frameworks de Referencia
- MITRE ATT&CK: mapea TTPs de atacantes reales en una matriz estandarizada
- VirusTotal Graph: visualiza relaciones entre IOCs (dominios, IPs, hashes)
- MalwareBazaar: repositorio de muestras de malware para análisis
- Malpedia: enciclopedia de familias de malware con reglas YARA
- YARA Rules Repository: colección comunitaria de reglas YARA
Conclusión
El análisis de malware requiere práctica constante y un enfoque metódico. 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. A medida que avances, aprende a escribir reglas YARA para automatizar la detección y domina Volatility para análisis forense de memoria.
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. Nunca ejecutes muestras de malware fuera de un entorno controlado.
Artículos Relacionados
- Incident Response y DFIR: Metodología NIST para Responder a Ciberataques — Aprende el marco NIST para detectar, contener y recuperar incidentes de seguridad de forma estructurada.
- Forense en la Nube: Guía de Análisis en AWS, Azure y GCP — Domina las técnicas forenses específicas para entornos de nube pública y evidencia digital en la nube.
- Threat Hunting y Blue Team: La Pirámide del Dolor — Descubre cómo los equipos defensivos cazan amenazas avanzadas usando análisis de comportamiento y caza proactiva.
- Tipos de Malware: Guía Completa con Ejemplos Reales — Ransomware, troyanos, gusanos, spyware, rootkits, fileless y wipers
- Forense Digital: Guía Completa de Análisis de Incidentes — Disk, memory, network y cloud forensics con Volatility, Autopsy, Plaso y más.
🔧 Herramienta relacionada: Aprende a usar [Wireshark] paso a paso en nuestra guía completa de herramientas.