Tracee - eBPF ランタイムセキュリティ & フォレンジクス チートシート
Tracee は Aqua Security による eBPF ベースのランタイムセキュリティおよびフォレンジクスツール です。eBPF を使用して OS イベント(syscalls、プロセスおよびネットワークアクティビティ、ファイル操作)をカーネルレベルで低オーバーヘッドでトレースし、ライブラリ内の署名を適用してランタイムで疑わしいまたは悪意のあるアクティビティを検出します。Linux ホスト、コンテナ、および Kubernetes 向けに構築されており、eBPF ランタイムセキュリティ分野で Falco と Tetragon の強力な補完です。
要件
- Linux kernel ≥ 5.4(BTF / CO-RE サポート推奨;ほとんどの最新ディストロ)
- Root / 特権コンテナ(eBPF は昇格された機能が必要)
インストール
| 方法 | コマンド |
|---|
| Docker(最速) | 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 |
| バイナリ | GitHub Releases からダウンロードして sudo ./tracee を実行 |
| 確認 | tracee version |
基本的な使用方法
| コマンド | 説明 |
|---|
sudo tracee | デフォルト検出署名でトレースを開始 |
sudo tracee --output json | JSON としてイベントを出力 |
sudo tracee --scope comm=nginx | 特定のプロセスのみをトレース |
sudo tracee --events execve,open | 特定のイベントをトレース |
tracee --help | 完全なオプションリスト |
イベント選択(--events)
| セレクタ | マッチ対象 |
|---|
--events execve | プロセス実行 |
--events open,openat | ファイルオープン |
--events net_packet_dns | DNS トラフィック |
--events security_file_open | LSM ファイルオープンフック |
--events 'fs' | イベントセット全体(ファイルシステム) |
--events 'signatures' | 署名検出のみ |
--events execve.args.pathname=/usr/bin/* | 引数値でフィルタ |
スコープフィルタリング(--scope)
| セレクタ | マッチ対象 |
|---|
--scope comm=bash | コマンド名で |
--scope pid=1234 | PID で |
--scope container | コンテナイベントのみ |
--scope container=new | 新しく開始されたコンテナのみ |
--scope uid=0 | ルートアクティビティ |
--scope pid=new | 新しく作成されたプロセス |
--scope not-container | ホストのみのイベント |
検出署名
Tracee は既知の攻撃技術にフラグを付ける動作署名(Go と Rego)を搭載しています。
| 例の検出 | 技術 |
|---|
| 反デバッグ | ptrace による回避 |
| 動的コード読み込み | メモリ常駐ペイロード |
| LD_PRELOAD | ライブラリインジェクション |
| 権限昇格 | setuid/機能悪用 |
| コンテナエスケープ | 名前空間/ホストアクセス |
| カーネルモジュール読み込み | ルートキット インストール |
| コマンド | 説明 |
|---|
sudo tracee --events signatures | 検出署名のみを実行 |
--rego- フラグ | カスタム Rego 署名を読み込み |
--signatures-dir DIR | ディレクトリから署名を読み込み |
出力 & キャプチャ
| オプション | 説明 |
|---|
--output json | JSON イベント(SIEM にパイプ) |
--output table | 人間が読める形式のテーブル |
--output gotemplate=FILE.tmpl | カスタムテンプレート出力 |
--capture exec | 実行されたバイナリをディスクにキャプチャ |
--capture mem | メモリ領域をキャプチャ(フォレンジクス) |
--capture net | イベントごとにネットワークトラフィックをキャプチャ |
--output forward:tcp://host:port | イベントをコレクタに転送 |
一般的なワークフロー
# コンテナアクティビティのみ監視、SIEM 用 JSON
sudo tracee --scope container --output json | tee tracee-events.json
# 脅威のみ検出(署名)、テーブル出力
sudo tracee --events signatures --output table
# 特定のプロセスを調査して実行されたバイナリをキャプチャ
sudo tracee --scope comm=suspicious --capture exec
# 新しいコンテナによる DNS を表示(流出ハンティング)
sudo tracee --scope container=new --events net_packet_dns
Tracee vs Falco vs Tetragon
| 側面 | Tracee | Falco | Tetragon |
|---|
| エンジン | eBPF(Aqua) | eBPF(CNCF) | eBPF(Cilium) |
| フォーカス | フォレンジクス + 検出 + キャプチャ | アラート/検出 | 可観測性 + カーネル内強制 |
| 強制 | 検出重点 | 検出 | はい(kill/override) |
| フォレンジクスキャプチャ | 強力(exec/mem/net) | 限定的 | イベント中心 |
| 最適用途 | 脅威フォレンジクス & キャプチャ | 成熟したルールライブラリ | 防止 + 深い可視性 |
リソース