Tracee - Sécurité Runtime et Forensique eBPF
Tracee est un outil open-source de sécurité runtime et de forensique basé sur eBPF d”Aqua Security. Il utilise eBPF pour tracer les événements du système d”exploitation — les appels système, l”activité des processus et du réseau, les opérations sur les fichiers — au niveau du noyau avec un faible surcoût, puis applique une bibliothèque de signatures comportementales pour détecter les activités suspectes ou malveillantes au moment de l”exécution. Il est conçu pour les hôtes Linux, les conteneurs et Kubernetes, et complète efficacement Falco et Tetragon dans l”espace de la sécurité runtime eBPF.
Conditions requises
- Noyau Linux ≥ 5.4 (support BTF / CO-RE recommandé; la plupart des distributions modernes)
- Root / conteneur privilégié (eBPF nécessite des capacités élevées)
Installation
| Méthode | Commande |
|---|
| Docker (le plus rapide) | 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 |
| Binaire | télécharger depuis GitHub Releases, exécuter sudo ./tracee |
| Vérifier | tracee version |
Utilisation de base
| Commande | Description |
|---|
sudo tracee | Commencer le traçage avec les signatures de détection par défaut |
sudo tracee --output json | Émettre les événements en JSON |
sudo tracee --scope comm=nginx | Tracer uniquement un processus spécifique |
sudo tracee --events execve,open | Tracer des événements spécifiques |
tracee --help | Liste complète des options |
Sélection d”événements (--events)
| Sélecteur | Correspond à |
|---|
--events execve | Exécutions de processus |
--events open,openat | Ouvertures de fichiers |
--events net_packet_dns | Trafic DNS |
--events security_file_open | Hook LSM file-open |
--events 'fs' | Un ensemble complet d”événements (système de fichiers) |
--events 'signatures' | Uniquement les détections de signature |
--events execve.args.pathname=/usr/bin/* | Filtrer par valeur d”argument |
Filtrage de portée (--scope)
| Sélecteur | Correspond à |
|---|
--scope comm=bash | Par nom de commande |
--scope pid=1234 | Par PID |
--scope container | Uniquement les événements de conteneur |
--scope container=new | Uniquement les conteneurs nouvellement démarrés |
--scope uid=0 | Activité root |
--scope pid=new | Processus nouvellement créés |
--scope not-container | Événements hôte uniquement |
Signatures de détection
Tracee est livré avec des signatures comportementales (Go et Rego) qui signalent les techniques d”attaque connues.
| Détection d”exemple | Technique |
|---|
| Anti-débogage | Évasion via ptrace |
| Chargement de code dynamique | Charges utiles résidentes en mémoire |
| LD_PRELOAD | Injection de bibliothèque |
| Escalade de privilège | Abus de setuid/capacité |
| Fuite de conteneur | Accès à l”espace de noms/hôte |
| Chargement du module noyau | Installation de rootkit |
| Commande | Description |
|---|
sudo tracee --events signatures | Exécuter uniquement les signatures de détection |
--rego- flags | Charger des signatures Rego personnalisées |
--signatures-dir DIR | Charger les signatures à partir d”un répertoire |
Sortie et capture
| Option | Description |
|---|
--output json | Événements JSON (transférer vers un SIEM) |
--output table | Tableau lisible par l”homme |
--output gotemplate=FILE.tmpl | Sortie templée personnalisée |
--capture exec | Capturer les binaires exécutés sur disque |
--capture mem | Capturer les régions de mémoire (forensique) |
--capture net | Capturer le trafic réseau par événement |
--output forward:tcp://host:port | Transférer les événements vers un collecteur |
Flux de travail courants
# Regarder uniquement l'activité du conteneur, JSON pour un SIEM
sudo tracee --scope container --output json | tee tracee-events.json
# Détecter les menaces uniquement (signatures), sortie tableau
sudo tracee --events signatures --output table
# Enquêter sur un processus spécifique et capturer les binaires exécutés
sudo tracee --scope comm=suspicious --capture exec
# Découvrir le DNS effectué par les nouveaux conteneurs (chasse à l'exfiltration)
sudo tracee --scope container=new --events net_packet_dns
Tracee vs Falco vs Tetragon
| Aspect | Tracee | Falco | Tetragon |
|---|
| Moteur | eBPF (Aqua) | eBPF (CNCF) | eBPF (Cilium) |
| Focus | Forensique + détection + capture | Alertes/détection | Observabilité + application du noyau |
| Application des règles | Détection-orientée | Détection | Oui (kill/override) |
| Capture forensique | Forte (exec/mem/net) | Limitée | Orientée événement |
| Meilleur pour | Forensique des menaces et capture | Bibliothèque de règles mûre | Prévention + visibilité profonde |
Ressources