Guía Práctica de CAPE/Cuckoo: Sandbox Open-Source para Análisis de Malware
Guía completa de CAPE (Cuckoo Sandbox evolution) para análisis automatizado de malware. Arquitectura, instalación, tipos de análisis, reportes, módulos y buenas prácticas.
Qué es CAPE
CAPE (Config And Payload Extraction) es un fork activo y mejorado de Cuckoo Sandbox, el sandbox de análisis de malware open-source más conocido. Ejecuta muestras sospechosas en máquinas virtuales aisladas, monitoriza todo su comportamiento y genera reportes detallados.
La diferencia clave con Cuckoo: CAPE extrae automáticamente configuraciones de malware (C2 servers, claves de cifrado) y unpacks payloads ofuscados, proporcionando inteligencia accionable directamente.
Arquitectura
CAPE Sandbox Architecture:
Host (Ubuntu/Debian)
├── CAPE Core (Python)
│ ├── Scheduler (gestiona cola de analisis)
│ ├── Result Server (recibe datos de VMs)
│ └── Processing Pipeline (genera reportes)
├── Web UI (Django)
│ ├── Submit (subir muestras)
│ ├── Reports (visualizar resultados)
│ └── API REST (integracion externa)
├── MongoDB (almacena reportes)
├── PostgreSQL (metadata)
└── Elasticsearch (busqueda, opcional)
Guest VMs (KVM/QEMU)
├── Windows 10 x64 (principal)
├── Windows 7 x64 (legacy)
├── Ubuntu 22.04 (Linux)
└── [Snapshots limpios restaurados antes de cada analisis]
Cada VM tiene:
├── CAPE Agent (agent.py corriendo)
├── Software comun (Office, navegador, Java)
└── Red aislada (INetSim o internet controlado)
Flujo de análisis
1. Submit
Envía la muestra via web UI o API REST:
# Via API REST
curl -F [email protected] http://cape-host:8000/apiv2/tasks/create/file/
# Via web UI
# Accede a http://cape-host:8000 → "Submit a file"
# Opciones: timeout, paquete de analisis, VM, red
2. Ejecución en VM
CAPE restaura un snapshot limpio de la VM seleccionada, transfiere la muestra y la ejecuta. Durante la ejecución:
- El agente CAPE monitoriza API calls del proceso
- El traffic capturer registra todo el tráfico de red
- Regshot captura cambios en registro y sistema de ficheros
- Se toman screenshots periódicos del escritorio
3. Recolección
Al finalizar el timeout (por defecto 120-300 segundos), CAPE:
- Extrae logs de API calls
- Descarga ficheros dropped/descargados
- Captura volcado de memoria del proceso
- Recupera PCAP de red completo
- Extrae configuraciones de malware conocido (si aplica)
4. Procesamiento y reporte
Pipeline de procesamiento:
1. Analisis estatico del fichero original (hashes, strings, PE info)
2. Analisis de comportamiento (API calls → patrones)
3. Analisis de red (DNS, HTTP, C2 detection)
4. Firmas de comportamiento (200+ signatures built-in)
5. Extraccion de config (CAPE extractors para 100+ familias)
6. Clasificacion MITRE ATT&CK
7. Generacion de reporte (HTML, JSON, PDF)
Componentes principales
| Componente | Función |
|---|---|
| Scheduler | Motor principal: gestiona tareas, asigna VMs, coordina pipeline |
| Web UI | Interfaz web Django para submit, reportes y gestión |
| API REST | Integración con SIEM, SOAR, MISP, scripts externos |
| Result Server | Recibe datos del agente guest en tiempo real |
| Nest Monitor | Dashboard de estado de VMs y tareas activas |
| Processing modules | Análisis post-ejecución (behavioral, network, memory) |
| Signatures | Reglas de detección de comportamiento malicioso |
| CAPE Extractors | Extracción de configs de familias conocidas |
Sistemas operativos soportados
| SO | Versión | Uso |
|---|---|---|
| Windows 10 | x64, builds recientes | Principal para malware actual |
| Windows 11 | x64 | Malware que requiere Win11 |
| Windows 7 | x64 | Legacy malware, exploits SMB |
| Windows XP | x86 | Malware muy antiguo |
| Ubuntu | 20.04/22.04 | Malware Linux, scripts |
| Android | Emulador | APKs maliciosas |
Secciones del reporte
Summary
Veredicto general con score, fichero analizado (hashes, tipo, tamaño), duración, firmas que matchearon y clasificación.
Behavioral Analysis
Todas las API calls agrupadas por categoría:
Categorias de API calls monitorizadas:
File: CreateFile, WriteFile, DeleteFile, MoveFile
Registry: RegCreateKey, RegSetValue, RegDeleteKey
Process: CreateProcess, NtCreateThread, WriteProcessMemory
Network: connect, send, recv, getaddrinfo, DnsQuery
Crypto: CryptEncrypt, CryptDecrypt, CryptHashData
Service: CreateService, StartService
Network Analysis
- Resoluciones DNS con respuestas
- Conexiones TCP/UDP con destino y payload
- Peticiones HTTP/S completas
- Certificados TLS capturados
- PCAP descargable
Dropped Files
Todos los ficheros creados durante la ejecución, con hashes, tipo y análisis estático básico. Click para descargar o reanalizar.
Process Tree
Árbol jerárquico de procesos con PID, nombre, línea de comandos y relación padre-hijo. Esencial para detectar process injection y ejecución en cadena.
CAPE Extraction
Lo que hace único a CAPE: extracción automática de configuraciones de malware. Para familias soportadas, extrae:
Ejemplo de extraccion (Emotet):
C2 servers: 185.94.252.13:443, 91.121.87.90:8080
RSA public key: [base64]
Campaign ID: epoch5
Bot ID format: [computername]_[username]_[random]
Familias con extractors: Emotet, QBot, TrickBot, AgentTesla, Formbook, RedLine, Raccoon, AsyncRAT, Cobalt Strike, IcedID, y 100+ más.
Instalación básica
# Requisitos: Ubuntu 22.04, KVM habilitado
sudo apt update
sudo apt install -y git python3 python3-pip libvirt-daemon qemu-kvm
# Clonar CAPE
git clone https://github.com/kevoreilly/CAPEv2.git
cd CAPEv2
# Instalar dependencias
sudo pip3 install -r requirements.txt
# Configurar
cp conf/cuckoo.conf.default conf/cuckoo.conf
# Editar: machinery = kvm, IP, resultserver
# Preparar VM Windows 10
# 1. Crear VM en virt-manager
# 2. Instalar Windows + software comun
# 3. Ejecutar agent.py en la VM
# 4. Tomar snapshot "clean"
# Iniciar CAPE
python3 cuckoo.py
python3 manage.py runserver 0.0.0.0:8000
CAPE 2.0 vs Cuckoo legacy
| Aspecto | Cuckoo 2.x | CAPE v2 |
|---|---|---|
| Mantenimiento | Inactivo desde ~2019 | Activo (2026) |
| Config extraction | No | Sí (100+ familias) |
| Payload unpacking | Limitado | Automático |
| Windows 10/11 | Parcial | Completo |
| MITRE ATT&CK | No | Sí |
| API monitoring | Basado en hooks | Hooks + syscall tracing |
| Community | Fragmentada | Activa (GitHub, Discord) |
Alternativas y evolución
- CAPE 2.0: fork principal, el más activo
- OpenCTI: plataforma CTI que integra con CAPE para enriquecimiento
- Triage (Hatching): CAPE comercial en la nube, mantenido por desarrolladores de Cuckoo original
- Karton (CERT.pl): framework de orquestación que usa CAPE como backend
Buenas prácticas
- Usa VPN/INetSim para la red de análisis. No permitas tráfico directo a Internet desde las VMs sin control. INetSim simula servicios de red para que el malware crea que tiene conectividad.
- Mantén snapshots actualizados. El malware detecta VMs con Windows desactualizado o sin software común. Actualiza Office, navegadores y parches periódicamente.
- Configura múltiples VMs. Diferentes versiones de Windows capturan diferentes comportamientos. Un malware puede funcionar en Win7 pero no en Win10.
- Revisa los extractors regularmente. Las familias de malware cambian sus configs. Actualiza CAPE frecuentemente para tener los extractors más recientes.
- Guarda los reportes y PCAPs. Son evidencia forense. Configura retención y backup.
Fuentes y referencias
- CAPE Sandbox. "Documentation." https://capev2.readthedocs.io/
- kevoreilly. "CAPEv2 GitHub." https://github.com/kevoreilly/CAPEv2
- Cuckoo Foundation. "Cuckoo Sandbox Book." https://cuckoo.readthedocs.io/
- Sikorski, M. & Honig, A. "Practical Malware Analysis." No Starch Press, 2012.
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.