
mcp-attack-detection-sentinel — Updated!
Sentinel検出ラボ:MCP攻撃チェーン(CVE-2026-26118 SSRFによるトークン窃取、ツールポイズニング、サーバー間データ外部漏えい、アイデンティティのポストエクスプロイテーション)を対象とし、OWASP Agentic Top 10 に対応。アナリティクスルール5件、ハンティングクエリ7件、ワークブックを収録。nineliveszerotrust.com のコンパニオンツール。
MCP攻撃検出 — Sentinel Research Lab
MCP(Model Context Protocol)攻撃パターンに関するSentinel検出リサーチ:MCP関連イベント後の異常なIDアクセス、ツール定義の改ざん、リソースをまたぐアクセス、および侵害後の可能性のある動作。ルールはエージェント型アプリケーション向けOWASP Top 10(2026年版)に対応付けられています。
公開ステータス: このリポジトリには現在、公開されたNine Livesの関連記事はなく、WebサイトのLabsカタログにも意図的に掲載されていません。独立したリサーチ用フィクスチャとして位置づけられています。
CVE-2026-26118ルールは、Azure MCP ServerのSSRF開示情報に基づく動作ベースのヒューリスティックです。このルールは、CVEが悪用されたことやトークンが窃取されたことを証明するものではありません。Microsoftはこの問題を、認証済みのネットワーク攻撃者が権限を昇格できる可能性があるSSRFと説明しており、影響を受けるパッケージ範囲とベンダー勧告はNIST NVDに記録されています。
デプロイされるもの
| リソース | タイプ | OWASP Agentic |
|---|---|---|
| LAB - MCP SSRF情報に基づくIDアクセス異常(CVE-2026-26118) | 行動分析ルール(高) | ASI03 |
| LAB - MCPツール定義改ざん(ラグプル検出) | 分析ルール(高) | ASI01、ASI04 |
| LAB - MCPサーバー間データ窃取パターン | 分析ルール(中) | ASI02、ASI03 |
| LAB - 異常なMCPツール呼び出しスパイク | 分析ルール(中) | ASI02 |
| LAB - MCP ID侵害後チェーン | 分析ルール(高) | ASI03 |
| MCP攻撃検出 — セキュリティ態勢 | ワークブック | すべて |
| ハンティングクエリ7件 | KQL(手動) | ASI01–ASI07 |
MITRE ATT&CKカバレッジ
| 手法 | ID | ルール / クエリ |
|---|---|---|
| 有効なアカウント:クラウド | T1078.004 | IDアクセス異常、侵害後チェーン |
| 中間者攻撃 | T1557 | エージェント間通信ハントのコンテキスト。クエリ自体は傍受ではなく、条件付きアクセスのギャップを検出します |
| サプライチェーン侵害 | T1195.002 | ツール定義改ざん、サプライチェーン |
| クラウドストレージからのデータ | T1530 | サーバー間窃取 |
| 保護されていない資格情報 | T1552 | サーバー間窃取、侵害後 |
| クラウドAPI | T1059.009 | 呼び出しスパイク、コード実行 |
| サーバーレス実行 | T1648 | コード実行 |
| 保存データの改ざん | T1565.001 | メモリ&コンテキストポイズニング |
クイックスタート
# 正確なプランを確認します。これは変更を実行しません。
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab" `
-WhatIf
# 分析ルール(無効状態)、ハンティングクエリ、ワークブックをデプロイします。
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab"
# クエリを確認した後、ルールを有効にすることを選択します。
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab" `
-EnableRules
# マニフェストが管理するデプロイを検証します。
./scripts/Test-MCPDetections.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab"
前提条件
- Microsoft Sentinelが有効なAzureサブスクリプション
- Entra ID診断設定:
AuditLogs、ServicePrincipalSignInLogs、ManagedIdentitySignInLogs - SentinelでAzure Activity Logコネクタが有効であること
- Azure CLIを備えたPowerShell 7.0以上
- ターゲットリソースグループ内のSentinel分析ルール、Log Analytics保存検索、ワークブックを管理するのに十分なロール。これらの操作を満たすテナント固有の最小限のロール割り当てを使用してください。
安全性と所有権モデル
- すべてのルールIDとワークブックIDは決定論的であり、正確なワークスペースにスコープされています。
- デプロイは、最初のクラウド変更の前に、所有者のみが読み取れる
.mcp-attack-detection-state.jsonマニフェストを書き込みます。 - 既存リソースは、書き込み前に事前チェックされます。スクリプトは、予期された出所のない同一IDのリソースを拒否し、マニフェストなしでは決して採用しません。
- 分析ルールは、
-EnableRulesが明示的に指定されない限り、無効状態でデプロイされます。 -WhatIfは、書き込みゼロで同じ読み取りと衝突チェックを実行します。- クリーンアップは、マニフェストの正確なIDのみを使用し、出所を再度検証し、表示名プレフィックス、カテゴリ、または部分文字列で検索することはありません。
- このリポジトリの古いバージョンで行われたデプロイは、自動的に採用または削除されません。このバージョンを使用する前に、これらのリソースを手動で棚卸ししてください。
データソース
| テーブル | 目的 |
|---|---|
AADManagedIdentitySignInLogs | MCPという名前のマネージドIDアクセスパターンの異常を調査します |
AADServicePrincipalSignInLogs | MCPサービスプリンシパルの認証パターンを監視します |
AzureActivity | MCPリソース操作、デプロイ、構成変更を追跡します |
クリーンアップ
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab" `
-Destroy
同じコマンドを-WhatIfと一緒に実行して、正確な削除内容を事前に確認してください。マニフェストがない場合、別のサブスクリプション/ワークスペースを指している場合、またはいずれかのリソースがこのラボの出所を保持していない場合、クリーンアップはフェイルクローズします。
エビデンスの境界
これらのクエリはリサーチの出発点です。名前ベースのヒューリスティックと、テナント固有のEntraおよびAzure Activityスキーマに依存しています。有効化する前に、非本番ワークスペースでテーブルの可用性、フィールド名、ベースライン、許可リスト、クエリコスト、および誤検知の動作を検証してください。これらは疑わしい挙動のエビデンスを提供するものであり、悪用の属性を証明するものではありません。
参考
- CVE-2026-26118 — Microsoftベンダー勧告
- CVE-2026-26118 — NIST NVDレコードと影響を受けるバージョン
- OWASP Top 10 for Agentic Applications 2026
ライセンス
MIT