Skip to content

Tracee - eBPF Runtime Security & Forensics Cheatsheet

Tracee - eBPF Runtime Security & Forensics Cheatsheet

Tracee is an open-source eBPF-based runtime security and forensics tool from Aqua Security. It uses eBPF to trace operating-system events — syscalls, process and network activity, file operations — at the kernel level with low overhead, then applies a library of behavioral signatures to detect suspicious or malicious activity at runtime. It is built for Linux hosts, containers, and Kubernetes, and is a strong complement to Falco and Tetragon in the eBPF runtime-security space.

Requirements

  • Linux kernel ≥ 5.4 (BTF / CO-RE support recommended; most modern distros)
  • Root / privileged container (eBPF needs elevated capabilities)

Installation

MethodCommand
Docker (quickest)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
Binarydownload from GitHub Releases, run sudo ./tracee
Verifytracee version

Basic Usage

CommandDescription
sudo traceeStart tracing with default detection signatures
sudo tracee --output jsonEmit events as JSON
sudo tracee --scope comm=nginxTrace only a specific process
sudo tracee --events execve,openTrace specific events
tracee --helpFull option list

Event Selection (--events)

SelectorMatches
--events execveProcess executions
--events open,openatFile opens
--events net_packet_dnsDNS traffic
--events security_file_openLSM file-open hook
--events 'fs'A whole event set (filesystem)
--events 'signatures'Only signature detections
--events execve.args.pathname=/usr/bin/*Filter by argument value

Scope Filtering (--scope)

SelectorMatches
--scope comm=bashBy command name
--scope pid=1234By PID
--scope containerOnly container events
--scope container=newOnly newly started containers
--scope uid=0Root activity
--scope pid=newNewly created processes
--scope not-containerHost-only events

Detection Signatures

Tracee ships behavioral signatures (Go and Rego) that flag known attack techniques.

Example detectionTechnique
Anti-debuggingEvasion via ptrace
Dynamic code loadingMemory-resident payloads
LD_PRELOADLibrary injection
Privilege escalationsetuid/capability abuse
Container escapeNamespace/host access
Kernel module loadingRootkit installation
CommandDescription
sudo tracee --events signaturesRun only detection signatures
--rego- flagsLoad custom Rego signatures
--signatures-dir DIRLoad signatures from a directory

Output & Capture

OptionDescription
--output jsonJSON events (pipe to a SIEM)
--output tableHuman-readable table
--output gotemplate=FILE.tmplCustom templated output
--capture execCapture executed binaries to disk
--capture memCapture memory regions (forensics)
--capture netCapture network traffic per event
--output forward:tcp://host:portForward events to a collector

Common Workflows

# Watch only container activity, JSON for a SIEM
sudo tracee --scope container --output json | tee tracee-events.json

# Detect threats only (signatures), table output
sudo tracee --events signatures --output table

# Investigate a specific process and capture executed binaries
sudo tracee --scope comm=suspicious --capture exec

# Surface DNS made by new containers (exfiltration hunting)
sudo tracee --scope container=new --events net_packet_dns

Tracee vs Falco vs Tetragon

AspectTraceeFalcoTetragon
EngineeBPF (Aqua)eBPF (CNCF)eBPF (Cilium)
FocusForensics + detection + captureAlerting/detectionObservability + in-kernel enforcement
EnforcementDetection-focusedDetectionYes (kill/override)
Forensic captureStrong (exec/mem/net)LimitedEvent-focused
Best forThreat forensics & captureMature rule libraryPrevention + deep visibility

Resources