Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ebpf-container-escape-framework — Linux 5.15+ LTS向けのeBPF EDR専用監査ツール:14個のカーネルフック、15個のアクション(13個のMITREテクニック)、プロセス系譜、SIEMエクスポート、K8s/Docker対応。 | Kitploit
ツール/GitHubGitHub/0xmfbk/ebpf-container-escape-framework
防御ツールコンテナセキュリティ侵入検知インシデントレスポンスログ分析
GitHub0xmfbk/ebpf-container-escape-framework

ebpf-container-escape-framework

Linux 5.15+ LTS向けのeBPF EDR専用監査ツール:14個のカーネルフック、15個のアクション(13個のMITREテクニック)、プロセス系譜、SIEMエクスポート、K8s/Docker対応。

リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト
61252日前未レビュー

eBPF コンテナエスケープ検出 & ランタイム監査 EDR

CI Go Version Kernel Support Memory Footprint License

検出と監査のみ。非強制型センサー。 BPF プログラムが -EPERM を返すことはなく、システムコールをブロックすることもありません。このエージェントは ランタイム観測プレーンであり、防御プレーンではありません。詳細は docs/SECURITY.md および THREAT_MODEL.md を参照してください。

eBPF EDR Demo

eBPF (C) と高効率な Go デーモンで構築された、超軽量・監査専用の Linux EDR エージェントです。Linux カーネル 5.15 LTS 以上を対象とし、ゼロアロケーションのホットパス、30MB 未満のメモリフットプリント、そしてコンテナ/K8s コンテキストの高度なエンリッチメントを特徴とします。

✨ このフレームワークを選ぶ理由

  • 🎯 カナリアファイル (誤検知ゼロ): カーネル内に不可視のパスを仕込みます。攻撃者がそれらに触れた場合 (例: K8s サービスアカウントトークン)、即座に CRITICAL アラートが発報されます。
  • ☁️ K8s コンテキストエンリッチメント: Kubelet API を非同期にポーリングし、cgroup_id を Pod 名、Namespace、ServiceAccount にマッピングします。208 バイトのカーネル側ワイヤフォーマットを肥大化させることはありません。
  • 🐧 5.15 LTS 互換: Ubuntu 22.04 および Debian 12 を構造的にサポートし、カーネル 6.12 でテスト・検証済みです。
  • ⚡ 高性能: 25,000 フォークのストレステスト下で、アイドル時 CPU 0.40%、ringbuf ドロップ 0 を実現します。

ステータス: フェーズ 2.7 完了。16 のアクションにわたる 13 の MITRE ATT&CK テクニック。 カーネル 6.12.111 でエンドツーエンド検証済み (82 PASS / 0 FAIL)。

カバレッジ

#アクション重大度MITREフック
1Container_Namespace_UnshareHIGHT1611kprobe/__x64_sys_unshare
2Container_Pivot_Root_EscapeCRITICALT1611kprobe/__x64_sys_pivot_root
3Sensitive_File_AccessHIGHT1003.008tracepoint/sys_enter_openat + open
4Process_ExecutionINFO/MEDIUMT1059.004tracepoint/sys_enter_execve
5Network_ConnectionINFO/HIGHT1071tracepoint/sys_enter_connect
6Process_InjectionHIGHT1055.008tracepoint/sys_enter_ptrace
7Log_TamperingHIGHT1562.001tracepoint/sys_enter_unlinkat
8Ebpf_TamperingHIGHT1562.001tracepoint/sys_enter_bpf
9Perf_Event_OpenMEDIUMT1562.001tracepoint/sys_enter_perf_event_open
10Suspicious_MountHIGHT1611tracepoint/sys_enter_mount
11Namespace_SwitchHIGHT1611tracepoint/sys_enter_setns
12Chroot_EscapeHIGHT1611tracepoint/sys_enter_chroot
13Executable_MemoryMEDIUMT1620tracepoint/sys_enter_mprotect
14Core_Pattern_ModificationCRITICALT1611tracepoint/sys_enter_openat + open
15Cgroup_Release_AgentCRITICALT1611tracepoint/sys_enter_openat + open
16Canary_TriggeredCRITICALT1552.001tracepoint/sys_enter_openat + open

アクション 9 と 13 はアタッチされていますが、config.toml の disabled_actions によりカーネル側でデフォルト無効化されています。

アーキテクチャ

カーネルフック (14 個) は comm/cgroup フィルタ、canary_paths の O(1) ハッシュルックアップ、 続いて action_enabled ルックアップへと処理を渡します。イベントは 208 バイトのレコードを運ぶ 1 MiB の ringbuf にプッシュされます。 ユーザー空間は固定のプール済みバッファへ読み込み、アクションごとのトークンバケットを適用し、 プロセス系譜と cgroup パス、および境界付き LRU キャッシュからの K8s Pod メタデータでエンリッチし、 Encoder + Sink を経由して任意の宛先へルーティングします。

詳細: docs/ARCHITECTURE.md。

SIEM 統合

ebpf edr は、フォーマット + トランスポート層を介してアラートを任意の SIEM へエクスポートします。

[output]
format = "ecs"        # json | ecs | ocsf | cef | leef
target = "webhook"    # file | stdout | syslog | webhook

[output.webhook]
url         = "https://splunk.internal:8088/services/collector/event"
auth_header = "Splunk ${SPLUNK_HEC_TOKEN}"
splunk_hec  = true

サポートされるトランスポート: file、stdout、syslog (UDP/TCP/TLS)、HTTPS webhook。 サポートされるフォーマット: ネイティブ JSON、ECS 8.11、OCSF 1.3.0、CEF、LEEF 2.0。

Splunk、Elastic、Sentinel、QRadar、および汎用 syslog 向けのレシピ: docs/SIEM_INTEGRATION.md。

[output] が存在しない場合、動作は v1.x とバイト単位で同一です。

要件

  • Linux カーネル >= 5.15 LTS、CONFIG_DEBUG_INFO_BTF=y 付き (/sys/kernel/btf/vmlinux)
  • Debian 13 (カーネル 6.12) でテスト済み。完全なマトリクスは docs/KERNEL_COMPATIBILITY.md を参照。
  • clang、gcc、Go >= 1.21、bpftool、libbpf ヘッダー
  • CAP_BPF CAP_PERFMON CAP_SYS_ADMIN を持つ root

ビルド

make kernel        # kernel/bpf_program.o
make userspace     # userspace/ebpf_controller
make emulation     # emulation/adversary

検証 (15 のコアステージ + 2 の SIEM ステージ)

sudo -E make verify

環境プローブ、ビルド、C/Go 構造体レイアウトのアサーション、BPF ベリファイアの ドライラン、ランタイムスモーク、敵対者エミュレーション、パフォーマンス、設定マトリクス、 SIGHUP リロード、アイドル CPU、リネージエンリッチメント、キャッシュ境界、新規フック、 フォーマットマトリクス、および webhook 配信を実行します。

インストール (systemd)

sudo ./install.sh --dry-run
sudo ./install.sh
sudo ./install.sh --uninstall

以下をインストールします: /usr/local/sbin/ebpf-edr、 /usr/local/lib/ebpf-edr/bpf_program.o、 /etc/ebpf-edr/config.toml (既存のものは保持され、新しいデフォルトは .new に配置)、 /etc/systemd/system/ebpf-edr.service、 /etc/logrotate.d/ebpf-edr。

設定

/etc/ebpf-edr/config.toml の TOML。優先順位: CLI > 環境変数 (EDR_*) > ファイル > デフォルト。

mode = "audit"

disabled_actions = [
    "Perf_Event_Open",
    "Executable_Memory",
]

[log]
path        = "/var/log/ebpf_edr.json"
max_bytes   = 52428800
max_backups = 5
level       = "info"

[filter]
comm_allowlist   = []
cgroup_allowlist = []
canary_paths     = ["/var/run/secrets/kubernetes.io/serviceaccount/token"]

[k8s]
enrichment = true

[rates]
events_per_sec = 200
burst          = 400

[container]
cache_max_entries = 5000

[context]
lineage_max_depth  = 16
lineage_cache_size = 20000
cgroup_cache_size  = 5000

リロード: sudo systemctl reload ebpf-edr。mode = "enforce" は拒否されます。 このビルドは監査専用です。

イベントスキーマ (v3、ワイヤー上で 208 バイト)

{
  "timestamp": "2026-10-15T23:52:41Z",
  "pid": 1370, "ppid": 1369, "uid": 0,
  "start_time_ns": 180763002635,
  "command": "unix_chkpwd",
  "action": "Sensitive_File_Access",
  "target": "/etc/shadow",
  "severity": "HIGH",
  "mitre_id": "T1003.008",
  "mitre_technique": "OS Credential Dumping: /etc/shadow",
  "cgroup_id": 3874,
  "cgroup_path": "/user.slice/user-0.slice/session-3.scope",
  "runtime": "host",
  "lineage_summary": "systemd > sshd > bash > sudo > unix_chkpwd",
  "lineage": [
    {"pid": 1370, "ppid": 1369, "comm": "unix_chkpwd",
     "exe": "/usr/sbin/unix_chkpwd", "start_time_ns": 180763002635},
    {"pid": 1369, "ppid": 1368, "comm": "sudo",
     "exe": "/usr/bin/sudo", "start_time_ns": 180762998100}
  ]
}

フィールド aux_u16、aux_u32、aux_u64 はアクション固有のコンテキストを保持します。

運用

60秒ごとのヘルスライン:

[health] recv=N written=N dropped=N rate_limited=N parse_err=N
         ver_mismatch=N ringbuf_err=N reloads=N reload_fail=N
         chan=N/4096 lineage_cache=N/20000 lineage_hits=N
         lineage_misses=N cgroup_cache=N/5000
         sink_sent=N sink_failed=N sink_dropped=N sink_retries=N
         sink_queue=N sink_circuit=bool

目標値: dropped = 0、ver_mismatch = 0、lineage_cache は容量未満。

開発

ターゲット目的
make kernelBPF オブジェクトをビルド
make userspaceデーモンをビルド
make emulation敵対者ハーネスをビルド
make testGo ユニットテスト
make test-raceレース検出器付き Go テスト
make fuzzターゲットごとに 60 秒のファジング
make verify15 ステージのコア + 2 ステージの SIEM 検証
make verify-siem2 ステージの SIEM 検証のみ
make ciローカル CI: gofmt、vet、race、fuzz、verify
make install / uninstallシステムへのインストール / 削除
make test-attacksエミュレーションカバレッジのアサーション
make cleanビルド成果物を削除

ドキュメント

ツールをダウンロード