anfisher1967/Sentinel-Rule-Relevance-Auditor

GitHub: anfisher1967/Sentinel-Rule-Relevance-Auditor

一个基于 MCP 协议的检测工程审计代理,让 GitHub Copilot 能够直接读取并评估 Microsoft Sentinel 分析规则的质量与时效性。

Stars: 0 | Forks: 0

# Sentinel Rules MCP Server 一个模型上下文协议(MCP)服务器,通过 Azure REST API 让 GitHub Copilot 直接访问您的 Microsoft Sentinel 分析规则定义。 ## 功能介绍 - **列出所有分析规则**,包含元数据(严重程度、MITRE 映射、最后修改日期、启用状态) - **筛选过期规则** — 查找 N 天内未更新的规则 - **检索完整的 KQL 查询** — 支持按名称(支持部分匹配)获取任何规则 - **生成审计报告** — 将需要审查的规则格式化为 Markdown 表格 ## 前置条件 - **Python 3.10+** - **Azure CLI** (`az`) 已安装并在 PATH 中可用 - **VS Code** 及 GitHub Copilot Chat 扩展 - **Azure RBAC**:您的身份至少需要具备 Sentinel 工作区的 **Reader** 权限 ## 快速入门 ### 1. 安装依赖 ``` cd sentinel-rules-mcp pip install -r requirements.txt ``` ### 2. 向 Azure 进行身份验证 ``` az login --tenant az account set --subscription ``` ### 3. 在 VS Code 中打开工作区 首次使用 MCP 服务器时,VS Code 会提示您输入: - **Subscription ID** — 包含您的 Sentinel 工作区的 Azure 订阅 - **Resource Group** — 资源组名称 - **Workspace Name** — Log Analytics 工作区名称 这些信息将在会话期间被缓存。您也可以将它们设置为环境变量: ``` export SENTINEL_SUBSCRIPTION_ID="your-subscription-id" export SENTINEL_RESOURCE_GROUP="your-resource-group" export SENTINEL_WORKSPACE_NAME="your-workspace-name" ``` ### 4. 启动 MCP 服务器 当 VS Code 检测到 `.vscode/mcp.json` 配置时,服务器会自动启动。 验证其是否正在运行:**Ctrl+Shift+P** → **"MCP: List Servers"** → 查找 `sentinelrules`。 ### 5. 使用代理 在 Copilot Chat 中,输入: ``` @sentinel-rule-auditor list all stale rules ``` 或者直接提问: ``` @sentinel-rule-auditor check the KQL for "Brute force attack against Azure Portal" ``` ## 工具 | 工具 | 用途 | |------|---------| | `list_sentinel_rules` | 列出规则,支持可选的过期/严重程度筛选 | | `get_sentinel_rule` | 按名称获取特定规则的完整 KQL 查询 | | `list_stale_rules_summary` | 生成过期规则的 Markdown 审计表 | | `ping` | 健康检查 | ## 查找您的 Sentinel 工作区详细信息 ``` # 列出您有权限访问的所有 Sentinel workspaces: az resource list --resource-type "Microsoft.OperationalInsights/workspaces" -o table # 或者在 Azure Portal 中找到它: # Sentinel → Settings → Workspace Settings → Properties ``` ## 故障排除 | 问题 | 解决方法 | |---------|-----| | "Azure authentication failed" | 运行 `az login` 并确保您的账户有权访问该订阅 | | "API call failed (403)" | 您的身份需要具备 Sentinel 工作区的 Reader 角色 | | "API call failed (404)" | 检查 Subscription ID、Resource Group 和 Workspace Name | | 服务器未在 VS Code 中显示 | Ctrl+Shift+P → "MCP: Restart Server" → 选择 `sentinelrules` | | "model unexpectedly did not return a response" | MCP 服务器可能已崩溃 — 检查输出面板 → "MCP" | ## 架构 ``` VS Code Copilot Chat ↓ (MCP stdio) sentinel-rules-mcp/server.py ↓ (Azure REST API) Microsoft Sentinel (alertRules endpoint) ↓ (AzureCliCredential) az login session ``` ## 许可证 MIT
标签:Azure CLI, Azure RBAC, Azure REST API, Force Graph, GitHub Copilot, KQL, KQL查询审计, MCP Server, Microsoft Sentinel, Model Context Protocol, Python, SOC自动化, Subfinder, 分析规则, 合规性审计, 安全检测工程, 无后门, 规则质量评估, 逆向工具