Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
zero-touch-containment — Antigena (Darktrace) → Aruba ClearPass CoA bridge — モデル駆動型、リアルタイムのユーザー/デバイス隔離。SOC操作不要。ヘキサゴナルアーキテクチャ、テストカバレッジ82%。 | Kitploit
ツール/GitLabGitLab/lama-labs/zero-touch-containment
防御ツールネットワークセキュリティインシデントレスポンス
GitLablama-labs/zero-touch-containment

zero-touch-containment

Antigena (Darktrace) → Aruba ClearPass CoA bridge — モデル駆動型、リアルタイムのユーザー/デバイス隔離。SOC操作不要。ヘキサゴナルアーキテクチャ、テストカバレッジ82%。

リポジトリを見る
2ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

zero-touch-containment

pipeline status coverage report License: MIT Python 3.11+ Code style: ruff FastAPI

Antigena (Darktrace) → Aruba ClearPass CoA ブリッジ — モデル駆動型、リアルタイムのユーザー/デバイス隔離。検出から封じ込めまで、SOCのクリックは不要。

実運用のNDR↔NAC統合パターンを参考にした、サニタイズされたリファレンス実装。金融機関規模(数千エンドポイント、24時間365日稼働のSOC)で運用されました。顧客固有の部分は合成フィクスチャに置き換えられていますが、アーキテクチャ、意思決定フロー、運用パターンは本物です。


これが存在する理由

NDR(Darktrace、ExtraHop、Vectra)の約束は「秒単位の検出」です。しかし、ほとんどの銀行における現実は「秒単位の検出、時間単位の封じ込め」です。なぜなら、SOCからNAC/ファイアウォールチームへの引き継ぎが手動だからです。

このツールキットは、Antigena(Darktraceの自律応答モジュール) と Aruba ClearPass(ClearPass REST API経由) の間を橋渡しすることで、そのギャップを埋めます。Darktraceのモデルが設定可能な重要度しきい値を超えて発動した場合、ツールキットは以下を実行します。

  1. AntigenaのWebhookを受信(HMAC検証済み)。
  2. YAML設定を介して、モデルと重要度を封じ込めアクションにマッピング。
  3. ClearPass REST APIを呼び出し、新しいエンドポイントロール(隔離VLAN)をプッシュするか、セッションを切断するか、またはその両方を実行。
  4. すべての判断をSQLite台帳に記録し、監査と自動解放に対応。
  5. Slack/Teamsを介してSOCに通知。
  6. SIEM(LogRhythm、Elastic)に構造化された監査イベントを転送。

モデル発動から隔離VLAN有効化までのエンドツーエンドの中央値レイテンシ:5秒未満。


内部構成

root@kitploit:~
zero-touch-containment/
├── README.md                       ← 現在位置
├── LICENSE
├── .gitignore
├── docs/
│   ├── architecture.md             ← アーキテクチャの詳細解説 + SOLIDトレース
│   └── lessons-learned.md          ← 本番環境で得た10の教訓
│
├── webhook/                        ← 受信HTTP層(SRPで分割)
│   ├── app.py                      ← FastAPIルート + ライフスパンのみ
│   ├── auth.py                     ← verify_hmac() — HMAC-SHA1検証
│   ├── replay.py                   ← ReplayCache — LRUリプレイ保護
│   └── models.py                   ← AntigenaEvent Pydanticスキーマ
│
├── engine/                         ← YAML駆動の判断エンジン
│   ├── decision.py                 ← DecisionEngine(QuarantineReaderプロトコルに依存)
│   ├── rules.py                    ← マッピング + 許可リスト用YAMLローダー
│   └── models.py                   ← Action + MappingRule + ActionKind
│
├── clearpass/                      ← NACアダプター(CoAClientプロトコルを実装)
│   ├── client.py                   ← ClearPassClient — REST CoA形式の操作
│   ├── ports.py                    ← CoAClientプロトコル — 任意のNACバックエンドに対応
│   └── auth.py                     ← OAuth2 TokenCache
│
├── ledger/                         ← SQLite台帳(5つのポートを実装 — ISP適用済み)
│   ├── store.py                    ← SqliteLedger — オールインワン実装
│   ├── ports.py                    ← EventStore + QuarantineWriter + QuarantineReader
│   │                                 + ReleaseManager + HealthChecker(分離済み)
│   └── schema.py                   ← SQL DDL定数
│
├── cli/                            ← SOC運用CLI
│   └── soc.py                      ← `ztc release-expired` + 計画中のコマンド
│
├── config/
│   ├── mapping.example.yaml        ← 重要度 → アクションのマッピング
│   └── allowlist.example.yaml      ← VIP / 隔離禁止リスト
│
├── deploy/
│   ├── docker-compose.yml
│   ├── Dockerfile
│   └── .env.example
│
├── tests/                          ← 全層をカバーする60のテスト
│   ├── test_decision.py
│   ├── test_ledger.py
│   ├── test_webhook_helpers.py
│   ├── test_clearpass_client.py
│   ├── test_protocols.py           ← 構造的ISP/DIP準拠テスト
│   └── fixtures/sample_event.json
│
├── requirements.txt
└── pyproject.toml

クイックスタート

root@kitploit:~
git clone https://gitlab.com/zimlama/zero-touch-containment.git
cd zero-touch-containment

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

cp config/mapping.example.yaml config/mapping.yaml
cp config/allowlist.example.yaml config/allowlist.yaml
cp deploy/.env.example .env  # CLEARPASS_HOST、OAUTH認証情報、HMACシークレットを入力

# Webhook受信サーバーを起動
uvicorn webhook.app:app --host 0.0.0.0 --port 8080

# 別のシェルでサンプルイベントを再生
curl -X POST http://localhost:8080/antigena \
  -H "Content-Type: application/json" \
  -H "X-Darktrace-Signature: sha1=$(echo -n @tests/fixtures/sample_event.json | openssl dgst -sha1 -hmac "$HMAC_SECRET" | awk '{print $2}')" \
  --data @tests/fixtures/sample_event.json

WebhookはHMAC-SHA1を検証し、mapping.yamlに対して判断エンジンを実行し、次のいずれかを出力します。

  • ドライランモード(開発時はデフォルト)→ 実行 されるはずだった アクションをログに記録
  • ライブモード → ClearPass REST APIを呼び出して強制実行

アーキテクチャ(1画面ビュー)

root@kitploit:~
┌──────────────┐   1. webhook    ┌──────────────────┐   2. validate    ┌──────────────────┐
│  Darktrace   │ ──────────────▶ │  Webhook         │ ───────────────▶ │  Decision        │
│  Antigena    │  HMAC-SHA1      │  receiver        │  parse + auth    │  engine          │
│  fires model │                 │  (FastAPI)       │                  │  (YAML-driven)   │
└──────────────┘                 └──────────────────┘                  └─────────┬────────┘
                                                                                  │
                                                                                  ▼
                                                                       3. resolve action
                                                                       (allowlist + rate limit)
                                                                                  │
                                  ┌───────────────────────┬───────────────────────┼────────────────────────┐
                                  ▼                       ▼                       ▼                        ▼
                          ┌──────────────┐       ┌────────────────┐      ┌──────────────┐         ┌─────────────┐
                          │ ClearPass    │       │ SQLite         │      │ Slack/Teams  │         │ SIEM        │
                          │ REST API     │       │ ledger         │      │ notification │         │ (structured │
                          │ - role swap  │       │ - state        │      │              │         │  logs)      │
                          │ - disconnect │       │ - auto-release │      │              │         │             │
                          └──────────────┘       └────────────────┘      └──────────────┘         └─────────────┘

完全な内訳は docs/architecture.md を参照してください。


技術スタック


これは次のものではありません

  • ❌ Darktraceの代替ではありません — Antigenaの出力を消費するものであり、生成するものではありません。
  • ❌ ClearPassの代替ではありません — ClearPassのREST API上に構築された薄いオーケストレーション層です。
  • ❌ SIEMではありません — 構造化イベントをSIEMに送信するものであり、クエリや相関分析を行うものではありません。
  • ❌ 誰にでも適しているわけではありません — Darktrace NDRとAruba ClearPass NACの両方を運用している場合にのみ有用です。ベンダー固有の設計です。

実運用のコンテキスト

ここに示したパターンは、南米のTier1金融機関における複数年にわたるNDR + NACプロジェクトから生まれました。

  • NAC + NDRの統合カバレッジ下にある数千のエンドポイント
  • ブランチ、コアデータセンター、企業エンドポイント環境全体に500以上のvSensor
  • 自律応答下の6つのMITRE ATT&CK脅威カテゴリ:C2ビーコン、横移動、データ流出、UEBA異常、不正デバイス、プロトコル攻撃
  • この双方向ブリッジによりMTTRを60%削減(手動SOC引き継ぎと比較)
  • 自律応答カバレッジによりセキュリティインシデントを40%削減

このツールキットは、その統合から抽出・サニタイズされたバージョンです。モデル名、テナントID、ClearPassエンドポイント、IP計画はすべて合成の同等物に置き換えられています。


docs/lessons-learned.md から学べること

Antigena↔ClearPassの本番デプロイにおける初日から知っておきたかった10のこと — Webhookの信頼性、ClearPass REST APIの癖、ロールスワップと切断の違い、誤検知による封じ込めストーム、オペレーター引き継ぎ設計について。


アーキテクチャ(SOLID準拠)

具体的なアダプターとオーケストレーションコードの間に明示的なプロトコルポートを配置したヘキサゴナルレイヤリング。

完全な内訳は docs/architecture.md を参照してください。

テストスイートの実行

root@kitploit:~
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[test]"
HMAC_SECRET=test-secret python -m pytest tests/ -v

判断エンジン、SQLite台帳、HMAC検証、リプレイキャッシュ、ClearPassクライアント(非同期、respxモック)、構造的プロトコル準拠をカバーする60のテスト。

ロードマップ

  • Webhook受信機 + HMAC検証
  • YAML駆動の判断エンジン
  • ClearPass RESTクライアント(ロールスワップ + 切断)
  • SQLite台帳 + 自動解放
  • プロトコルポート + SOLID準拠のリファクタリング
  • 全層をカバーする60のテストスイート
  • SOCオーバーライドCLI — list、release、quarantine、audit(Tier-2)
  • Slack/Teams通知層(Tier-2)
  • SIEM構造化転送機能(Tier-2)

著者について

Leonardo Mejía — シニアサイバーセキュリティ&SD-WANアーキテクト · 15年以上 Zero Trust · ハイブリッドクラウド · NDR · エンタープライズSD-WAN

  • LinkedIn: linkedin.com/in/leonardomejia
  • GitHub: github.com/zimlama
  • 姉妹ポートフォリオリポジトリ: sdwan-automation-toolkit

ライセンス

MIT — LICENSE を参照。

このリポジトリのパターンはサニタイズされた抽象化であり、プロプライエタリなクライアントコードではありません。自由に使用してください。帰属表示は任意ですが、歓迎します。

ツールをダウンロード
層ツール
言語Python 3.11+
WebFastAPI + Uvicorn(Webhook受信部)
HTTPクライアントhttpx(非同期) + tenacity(指数バックオフ付きリトライ)
認証HMAC-SHA1(受信:Darktrace) · OAuth2 client_credentials(送信:ClearPass)
設定YAML — 重要度 → アクションマッピング + 許可リスト
状態管理SQLite + WAL — 隔離台帳 + 自動解放
ロギングstructlog — SIEM取り込み用JSON出力
テストpytest + respx(httpxモック) + 記録済みフィクスチャ
デプロイDocker Compose、単一VM対応
原則実装
SRPwebhook/ を auth、replay、models、ルーティングに分割。clearpass/ を client、auth、ports に分割。ledger/ を store、ports、schema に分割。
OCP新しいNACバックエンドは CoAClient プロトコルを実装 — Webhookやエンジンに変更不要。
LSPテストでは同じプロトコルを満たすインメモリーフェイクを使用。パイプラインの動作は変わらない。
ISP台帳を5つの分離されたポート(EventStore、QuarantineWriter、QuarantineReader、ReleaseManager、HealthChecker)に分割。Webhookは最初の2つにのみ依存し、エンジンは QuarantineReader のみに依存。
DIPwebhook/app.py と engine/decision.py はプロトコルに依存し、具象クラスには依存しない。