Sentinel Writer Model Context Protocol (SWMCP) 服务器使用说明
项目简介
PUBLIC-Sentinel-Attack-Simulator 仓库实现了一个 Sentinel Writer Model Context Protocol (SWMCP) 服务器。该服务器基于 Model Context Protocol (MCP) 构建,旨在与 Claude Desktop 和 Microsoft Sentinel 集成,用于 AI 驱动的安全事件模拟和测试。它允许用户通过 MCP 客户端调用工具,将各种类型的安全事件数据写入 Microsoft Sentinel 工作区,用于安全分析和训练。
主要功能点
- MCP 服务器实现: 基于 Model Context Protocol 协议,与 MCP 客户端进行通信。
- 安全事件写入: 提供 'write_security_event' 工具,允许 MCP 客户端向 Microsoft Sentinel 写入安全事件数据。
- 支持多种数据收集规则 (DCR) 类型: 支持 Anomalies, ASIM, AWS, GCP, Windows Event, Syslog, Common Security Log 等多种 Microsoft Sentinel 数据表 schema。
- 时间工具: 提供 'get_current_time' 工具,返回当前 UTC 时间,用于生成符合 Sentinel 时间格式要求的事件。
- 基于 Stdio 传输: 使用 Stdio (标准输入输出) 作为 MCP 服务器的传输协议。
安装步骤
- 安装 Node.js: 确保您的 Windows 机器上已安装 Node.js 环境。您可以从 Node.js 官网 下载并安装。
- 部署 Azure 资源: 使用仓库提供的 Bicep 模板在 Azure 中部署必要的资源,包括数据收集规则 (DCR) 和 Microsoft Sentinel 工作区。详细步骤请参考仓库中的 'docs/installation.md' 和 'infrastructure/README.md'。
- 配置 Claude Desktop 集成 (如果需要): 如果您计划与 Claude Desktop 集成,请按照 'docs/configuration.md' 中的指南进行配置。
- 设置环境变量: 配置以下必要的环境变量:
- 'TENANT_ID': 您的 Azure 租户 ID
- 'APP_ID': 您创建的 Azure 应用注册的客户端 ID
- 'APP_SECRET': 您创建的 Azure 应用注册的客户端密钥
- 'DCE_ENDPOINT': 您的 Azure 数据收集终结点 (Data Collection Endpoint)
- 'DCR_<DCR_TYPE>_ID': 为每个您需要写入的 DCR 类型配置对应的 DCR 不可变 ID,例如 'DCR_ASIMAUDITEVENTLOGS_ID','DCR_SECURITYEVENT_ID' 等。DCR 类型请参考 'src/server-sentinel-writer/dist/index.js' 中 'WRITE_SECURITY_EVENT_TOOL' 工具定义中 'dcrType' 的 'enum' 列表。
服务器配置
MCP 客户端需要配置以下 JSON 格式的服务器信息以连接到 Sentinel Writer MCP 服务器。
{ "serverName": "security-simulation/sentinel-writer", "command": "node", "args": [ "./src/server-sentinel-writer/dist/index.js" ], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,固定为 '"security-simulation/sentinel-writer"',与服务器代码中定义的服务名称一致。
- 'command': 启动服务器的命令,这里使用 'node' 命令来运行 JavaScript 代码。
- 'args': 传递给 'node' 命令的参数,指定服务器入口文件路径 '"./src/server-sentinel-writer/dist/index.js"'。 请确保此路径相对于 MCP 客户端的工作目录是正确的,或者使用绝对路径。
- 'transport': 传输协议,固定为 '"stdio"',表示使用标准输入输出进行通信。
注意:
- 确保 MCP 客户端能够找到并执行 'node' 命令。
- 请根据实际的文件路径调整 'args' 中的入口文件路径。
- 启动服务器前,请务必配置正确的环境变量。
基本使用方法
- 启动 MCP 服务器: 在配置好环境变量后,通过 MCP 客户端配置中设置的 'command' 和 'args' 启动 Sentinel Writer MCP 服务器。服务器将通过 Stdio 监听 MCP 客户端的请求。
- 使用 MCP 客户端调用工具: 使用 MCP 客户端向 Sentinel Writer MCP 服务器发送 JSON-RPC 请求,调用以下工具:
- 'write_security_event': 用于写入安全事件数据到 Microsoft Sentinel。调用此工具时,您需要提供 'dcrType' (数据收集规则类型) 和 'eventData' (符合 DCR Schema 的事件数据) 作为参数。
- 'get_current_time': 用于获取当前 UTC 时间。调用此工具无需参数。
- 查看 Microsoft Sentinel 日志: 成功调用 'write_security_event' 工具后,您可以在 Microsoft Sentinel 工作区中查看到新写入的安全事件数据。
示例 (使用 MCP 客户端调用 'write_security_event' 工具):
{ "jsonrpc": "2.0", "method": "callTool", "params": { "name": "write_security_event", "arguments": { "dcrType": "SecurityEvent", "eventData": { "TimeGenerated": "2024-01-01T12:00:00.000Z", "EventID": 4624, "Computer": "TestMachine" // ... 其他 SecurityEvent 表的字段 ... } } }, "id": 1 }
请参考仓库 'src/server-sentinel-writer/dist/schemas' 目录下各个 DCR 类型的 'schema.js'、'validation.js' 和 'examples.js' 文件,了解更详细的 Schema 定义、验证规则和示例数据。
信息
分类
开发者工具