
已更新Aug 2, 2026
mcp-attack-detection-sentinel — 已更新!
Sentinel 检测实验室,用于 MCP 攻击链:CVE-2026-26118 SSRF 令牌窃取、工具投毒、跨服务器数据外泄、身份后渗透利用。映射至 OWASP Agentic Top 10。包含 5 条分析规则、7 个狩猎查询及工作簿。配套资源来自 nineliveszerotrust.com。
MCP 攻击检测 — Sentinel 研究实验室
针对 MCP(模型上下文协议)攻击模式的 Sentinel 检测研究:MCP 相关事件后的异常身份访问、工具定义篡改、跨资源访问,以及可能的利用后行为。这些规则映射到 OWASP 2026 年智能体应用十大风险。
发布状态: 此仓库目前没有已发布的 Nine Lives 配套文章,并且有意未列入网站的 Labs 目录。它仍然是一个独立的研究项目。
CVE-2026-26118 规则是一种基于行为的启发式规则,参考了 Azure MCP Server SSRF 披露。它不证明该 CVE 已被利用或令牌已被窃取。微软将该问题描述为 SSRF,可让已授权的网络攻击者提升权限;受影响的软件包范围和厂商公告已由 NIST NVD 记录。
部署内容
| 资源 | 类型 | OWASP 智能体 |
|---|---|---|
| LAB - MCP SSRF 知情身份访问异常(CVE-2026-26118) | 行为分析规则(高) | ASI03 |
| LAB - MCP 工具定义篡改(拉地毯检测) | 分析规则(高) | ASI01, ASI04 |
| LAB - MCP 跨服务器数据外泄模式 | 分析规则(中) | ASI02, ASI03 |
| LAB - 异常 MCP 工具调用激增 | 分析规则(中) | ASI02 |
| LAB - MCP 身份利用后攻击链 | 分析规则(高) | ASI03 |
| MCP 攻击检测 — 安全态势 | 工作簿 | 全部 |
| 7 个狩猎查询 | KQL(手动) | ASI01–ASI07 |
MITRE ATT&CK 覆盖范围
| 技术 | ID | 规则 / 查询 |
|---|---|---|
| 有效账户:云 | T1078.004 | 身份访问异常、利用后攻击链 |
| 中间人攻击 | 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 连接器
- PowerShell 7.0+ 及 Azure CLI
- 具有足够权限管理目标资源组中的 Sentinel 分析规则、Log Analytics 已保存搜索和工作簿的角色。使用满足这些操作的最窄租户特定角色分配。
安全与所有权模型
- 所有规则和工作簿 ID 均为确定性生成,并限定在精确的工作区范围内。
- 部署在首次云变更之前写入仅所有者可读的
.mcp-attack-detection-state.json清单。 - 任何写入前都会对现有资源进行预检。脚本拒绝没有预期来源的同 ID 资源,并且绝不会在没有其清单的情况下采用这些资源。
- 分析规则默认以禁用状态部署,除非显式提供
-EnableRules。 -WhatIf执行相同的读取和冲突检查,但不进行任何写入。- 清理仅使用清单中的精确 ID,再次验证来源,并且绝不按显示名称前缀、类别或子字符串进行搜索。
- 使用此仓库旧版本进行的部署不会被自动采用或删除。在使用此版本之前,请手动盘点这些资源。
数据源
| 表 | 用途 |
|---|---|
AADManagedIdentitySignInLogs | 研究异常的 MCP 命名托管身份访问模式 |
AADServicePrincipalSignInLogs | 监控 MCP 服务主体身份验证模式 |
AzureActivity | 跟踪 MCP 资源操作、部署、配置更改 |
清理
./scripts/Deploy-Lab.ps1 `
-ResourceGroup "rg-sentinel-lab" `
-WorkspaceName "law-sentinel-lab" `
-Destroy
先使用 -WhatIf 运行相同命令以预览精确的删除操作。如果清单缺失、指向另一个订阅/工作区,或任何资源不再带有此实验室的来源标记,清理将安全失败。
证据边界
这些查询是研究起点。它们依赖于命名启发式规则以及租户特定的 Entra 和 Azure Activity 架构。在启用之前,请在非生产工作区中验证表可用性、字段名称、基线、允许列表、查询成本和误报行为。它们提供可疑行为证据,而非利用归因。
参考
许可证
MIT