Tracee - Hoja de Referencia de Seguridad en Tiempo de Ejecución con eBPF
Tracee es una herramienta de código abierto de seguridad y análisis forense en tiempo de ejecución basada en eBPF de Aqua Security. Usa eBPF para rastrear eventos del sistema operativo — syscalls, actividad de procesos y red, operaciones de archivos — a nivel del kernel con baja sobrecarga, y luego aplica una biblioteca de firmas de comportamiento para detectar actividad sospechosa o maliciosa en tiempo de ejecución. Está diseñada para hosts Linux, contenedores y Kubernetes, y es un complemento sólido de Falco y Tetragon en el espacio de seguridad en tiempo de ejecución con eBPF.
Requisitos
- Kernel de Linux ≥ 5.4 (se recomienda soporte BTF / CO-RE; la mayoría de las distros modernas)
- Root / contenedor privilegiado (eBPF necesita capacidades elevadas)
Instalación
| Método | Comando |
|---|
| Docker (lo más rápido) | docker run --name tracee -it --rm --pid=host --cgroupns=host --privileged -v /etc/os-release:/etc/os-release-host:ro aquasec/tracee:latest |
| Kubernetes (Helm) | helm repo add aqua https://aquasecurity.github.io/helm-charts/ && helm install tracee aqua/tracee -n tracee --create-namespace |
| Binario | descarga desde GitHub Releases, ejecuta sudo ./tracee |
| Verificar | tracee version |
Uso Básico
| Comando | Descripción |
|---|
sudo tracee | Iniciar el rastreo con las firmas de detección predeterminadas |
sudo tracee --output json | Emitir eventos como JSON |
sudo tracee --scope comm=nginx | Rastrear solo un proceso específico |
sudo tracee --events execve,open | Rastrear eventos específicos |
tracee --help | Lista completa de opciones |
Selección de Eventos (--events)
| Selector | Coincide con |
|---|
--events execve | Ejecuciones de procesos |
--events open,openat | Aperturas de archivos |
--events net_packet_dns | Tráfico DNS |
--events security_file_open | Hook LSM de apertura de archivos |
--events 'fs' | Un conjunto completo de eventos (sistema de archivos) |
--events 'signatures' | Solo detecciones por firma |
--events execve.args.pathname=/usr/bin/* | Filtrar por valor de argumento |
Filtrado de Alcance (--scope)
| Selector | Coincide con |
|---|
--scope comm=bash | Por nombre de comando |
--scope pid=1234 | Por PID |
--scope container | Solo eventos de contenedores |
--scope container=new | Solo contenedores recién iniciados |
--scope uid=0 | Actividad de root |
--scope pid=new | Procesos recién creados |
--scope not-container | Eventos solo del host |
Firmas de Detección
Tracee incluye firmas de comportamiento (Go y Rego) que señalan técnicas de ataque conocidas.
| Ejemplo de detección | Técnica |
|---|
| Anti-depuración | Evasión mediante ptrace |
| Carga de código dinámico | Cargas residentes en memoria |
| LD_PRELOAD | Inyección de bibliotecas |
| Escalada de privilegios | Abuso de setuid/capabilities |
| Escape de contenedor | Acceso a namespaces/host |
| Carga de módulos del kernel | Instalación de rootkit |
| Comando | Descripción |
|---|
sudo tracee --events signatures | Ejecutar solo las firmas de detección |
Flags --rego- | Cargar firmas Rego personalizadas |
--signatures-dir DIR | Cargar firmas desde un directorio |
Salida y Captura
| Opción | Descripción |
|---|
--output json | Eventos JSON (canalizar a un SIEM) |
--output table | Salida legible en tabla |
--output gotemplate=FILE.tmpl | Salida con plantilla personalizada |
--capture exec | Capturar binarios ejecutados a disco |
--capture mem | Capturar regiones de memoria (análisis forense) |
--capture net | Capturar tráfico de red por evento |
--output forward:tcp://host:port | Reenviar eventos a un colector |
Flujos de Trabajo Comunes
# Vigilar solo la actividad de contenedores, JSON para un SIEM
sudo tracee --scope container --output json | tee tracee-events.json
# Detectar solo amenazas (firmas), salida en tabla
sudo tracee --events signatures --output table
# Investigar un proceso específico y capturar los binarios ejecutados
sudo tracee --scope comm=suspicious --capture exec
# Mostrar el DNS realizado por contenedores nuevos (búsqueda de exfiltración)
sudo tracee --scope container=new --events net_packet_dns
Tracee frente a Falco frente a Tetragon
| Aspecto | Tracee | Falco | Tetragon |
|---|
| Motor | eBPF (Aqua) | eBPF (CNCF) | eBPF (Cilium) |
| Enfoque | Forense + detección + captura | Alertas/detección | Observabilidad + aplicación en kernel |
| Aplicación | Centrado en detección | Detección | Sí (kill/override) |
| Captura forense | Fuerte (exec/mem/net) | Limitada | Centrada en eventos |
| Mejor para | Análisis forense y captura de amenazas | Biblioteca de reglas madura | Prevención + visibilidad profunda |
Recursos