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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sentinel-mcp — 自律型AI搭載のサイバー防御システム(MCP、Gemini 2.0 Flash、Dynatraceオブザーバビリティ、MongoDBを使用)。Google Cloud Hackathonへの提出作品。 | Kitploit
ツール/GitLabGitLab/reyjesusq/sentinel-mcp
防御ツールクラウドセキュリティ侵入検知インシデントレスポンスAIセキュリティ異常検知
GitLabreyjesusq/sentinel-mcp

sentinel-mcp

自律型AI搭載のサイバー防御システム(MCP、Gemini 2.0 Flash、Dynatraceオブザーバビリティ、MongoDBを使用)。Google Cloud Hackathonへの提出作品。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

SentinelMCP — AI 搭載サイバー防御システム

Google Cloud Hackathon 提出作品 — 自律的な脅威検出と対処を Google Cloud Agent Builder (Vertex AI Agent) が調整し、Gemini 2.0 Flash、Model Context Protocol (MCP)、Dynatrace 可観測性を活用。

Agent Builder Gemini 2.0 Flash Dynatrace MongoDB MCP Protocol


問題点

セキュリティチームは、一般的なインシデントに対して 30 分の MTTD と 4 時間の MTTR を経験しています。人間のアナリストが攻撃を検出し、ファイアウォールルールを作成してデプロイする頃には、被害は発生しています。

解決策

SentinelMCP は、Google Cloud Agent Builder エージェント を導入することで MTTD を 30 秒未満、MTTR を 30 秒未満 に短縮します。このエージェントは Dynatrace の異常検知 Webhook を受信し、Gemini 2.0 Flash で分析し、MCP を介して実際の防御ツールを呼び出します — アラートを出すだけでなく、実際のインフラストラクチャに作用します。

Dynatrace webhook  →  Agent Builder receives alert  →  Gemini reasons  →  MCP tools execute  →  Threat neutralized
       1 s                        2 s                      8 s                  15 s                  25 s total

その結果、以前は人間のアナリストと 4 時間を要していたインシデントライフサイクルが、30 秒未満で自律的に完了し、MongoDB に完全な監査証跡、Jaeger に分散トレースが記録されます。


アーキテクチャ

┌──────────────────────────────────────────────────────────────────────┐
│                         サンドボックス環境                              │
│                                                                      │
│   ┌─────────────┐   100–1000 req/s   ┌──────────────────────────┐   │
│   │  attacker   │ ──────────────────►│    victim-service        │   │
│   │ (DDoS/SQLi) │                    │    port 8080             │   │
│   └─────────────┘                    │    /admin/* control API  │   │
│                                      └────────────┬─────────────┘   │
└───────────────────────────────────────────────────│──────────────────┘
                                                    │ metrics + anomaly webhook
                   ┌────────────────────────────────▼─────────────────┐
                   │         Dynatrace Mock  (anomaly engine)          │
                   │  Threat Risk Score → fires POST /alerts/simulate  │
                   └────────────────────────┬─────────────────────────┘
                                            │ webhook
          ┌─────────────────────────────────▼──────────────────────────┐
          │          Google Cloud Agent Builder  (Vertex AI Agent)      │
          │  ┌──────────────────────────────────────────────────────┐  │
          │  │  Gemini 2.0 Flash  ──  reasons over threat context   │  │
          │  │  Tool manifest  ──  dynamically fetched from MCP     │  │
          │  │  HITL gate  ──  halts if confidence < threshold      │  │
          │  └──────────────────────────────────────────────────────┘  │
          └──────────────┬─────────────────────────┬───────────────────┘
                         │ REST calls                │ audit write
         ┌───────────────▼──────┐      ┌────────────▼──────────┐
         │  MCP Server  :8001   │      │  MongoDB 7.0  Atlas   │
         │  11 real tools       │      │  incidents + traces   │
         └───────────┬──────────┘      └───────────────────────┘
                     │ acts on live infra
         ┌───────────▼──────────┐
         │  FastAPI  :8000      │
         │  victim-service :8080│
         └──────────────────────┘

                   ┌──────────────────────────────────────────────────┐
                   │              可観測性スタック                       │
                   │  OTel Collector ──► Jaeger  (分散トレース)          │
                   │  Prometheus ──────────────► Grafana               │
                   └──────────────────────────────────────────────────┘

主要な設計原則: グレースフルデグラデーション + ヒューマンインザループ (HITL)。Agent Builder エージェントは、十分な信頼度で判断できない場合には安全に停止し、オペレーターに制御を戻します — 重要なインフラストラクチャに対して推測による判断は決して行いません。


ライブデモ — Google Cloud Run

3 つのサービスすべてが Google Cloud Run にデプロイされ、稼働中です:

ServiceURL
コマンドセンター (ダッシュボード)https://sentinel-api-62d3d66zda-uc.a.run.app/dashboard
Swagger API ドキュメントhttps://sentinel-api-62d3d66zda-uc.a.run.app/docs
ヘルスチェックhttps://sentinel-api-62d3d66zda-uc.a.run.app/health
MCP ツールカタログhttps://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/tools
被害者サービスhttps://victim-service-62d3d66zda-uc.a.run.app

本番環境に対してライブ攻撃を実行:

.\attack.production.ps1 status   # すべてのサービスが正常であることを確認
.\attack.production.ps1 ddos     # DDoS — Gemini が IP をブロック + レート制限
.\attack.production.ps1 sql      # SQL インジェクション — Gemini が WAF を有効化
.\attack.production.ps1 brute    # ブルートフォース — Gemini が送信元 IP をブロック
.\attack.production.ps1 stop     # 防御をリセット

攻撃コンテナはローカルで実行され、Cloud Run 上の victim-service を HTTPS 経由でターゲットにします。コマンドセンターのダッシュボードで、検出 → 分析 → 無力化の全サイクルをリアルタイムで確認できます。


Google Cloud Agent Builder の使用方法

Google Cloud Agent Builder (Vertex AI ReasoningEngine) は、SentinelMCP の中央オーケストレーターです。実装は sentinel_mcp/agent/agent_builder.py にあります。

SentinelAgent は vertexai.preview.reasoning_engines.Queryable を継承しています — これは公式の Agent Builder プログラムインターフェースであり、ローカルで実行することも、単一のコマンドで管理された Agent Builder サービスにデプロイすることもできます。

責務実装
Webhook 受付SentinelAgent.query(incident=...) — Agent Builder が Dynatrace アラートのたびに呼び出し
ツール宣言6 つの MCP ツールが set_up() 内で Vertex AI FunctionDeclaration オブジェクトとして登録
推論Gemini 2.0 Flash が脅威コンテキスト + ツールカタログを読み取り、最小限のツールを選択し、自動的に呼び出し
HITL ゲートGemini がツール呼び出しを返さない場合 (信頼度 < しきい値)、escalate_to_humans=True が出力される
監査すべてのツール呼び出しが MongoDB Atlas に記録され、OTel スパンとして Jaeger にエクスポート

主要コード — sentinel_mcp/agent/agent_builder.py:

class SentinelAgent(reasoning_engines.Queryable):

    def set_up(self):
        # MCP tools as Vertex AI FunctionDeclarations — Gemini selects at runtime
        mcp_tools = Tool(function_declarations=[
            FunctionDeclaration(name="block_ip_address", ...),
            FunctionDeclaration(name="activate_waf", ...),
            FunctionDeclaration(name="rate_limit_requests", ...),
            FunctionDeclaration(name="scale_service", ...),
            FunctionDeclaration(name="collect_forensic_logs", ...),
            FunctionDeclaration(name="analyze_attack_pattern", ...),
        ])
        self._model = GenerativeModel("gemini-2.0-flash-001", tools=[mcp_tools])
        self._chat = self._model.start_chat()

    def query(self, *, incident: dict) -> dict:
        # Entry point — Agent Builder calls this for every Dynatrace webhook
        response = self._chat.send_message(threat_prompt(incident))
        tool_calls = [{"name": p.function_call.name, "args": dict(p.function_call.args)}
                      for p in response.candidates[0].content.parts if p.function_call]
        return {"engine": "agent_builder", "tool_calls": tool_calls, ...}

Google Cloud Agent Builder にデプロイ:

# ローカルでテスト (google_ai_studio バックエンドを使用すれば GCP は不要)
python scripts/deploy_agent_builder.py --test-only

# 管理された Agent Builder エンドポイントにデプロイ
python scripts/deploy_agent_builder.py --project my-gcp-project

Agent Builder をアクティブバックエンドとして設定:

# .env
GEMINI_BACKEND=agent_builder
GOOGLE_CLOUD_PROJECT=my-gcp-project
VERTEX_LOCATION=us-central1

Dynatrace と MCP の使用方法

Dynatrace

SentinelMCP は、Dynatrace の可観測性を 3 つの層で統合しています:

  1. OpenTelemetry パイプライン — sentinel-otel-collector は FastAPI コアからのスパンとメトリクスを取り込み、Dynatrace Mock エンドポイント (OTLP/HTTP :14318) に転送します。すべてのインシデント、ツール実行、LLM 呼び出しは、完全な相関 ID でエンドツーエンドにトレースされます。
ツールをダウンロード