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 服务器的传输协议。

安装步骤

  1. 安装 Node.js: 确保您的 Windows 机器上已安装 Node.js 环境。您可以从 Node.js 官网 下载并安装。
  2. 部署 Azure 资源: 使用仓库提供的 Bicep 模板在 Azure 中部署必要的资源,包括数据收集规则 (DCR) 和 Microsoft Sentinel 工作区。详细步骤请参考仓库中的 'docs/installation.md' 和 'infrastructure/README.md'。
  3. 配置 Claude Desktop 集成 (如果需要): 如果您计划与 Claude Desktop 集成,请按照 'docs/configuration.md' 中的指南进行配置。
  4. 设置环境变量: 配置以下必要的环境变量:
    • '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' 中的入口文件路径。
  • 启动服务器前,请务必配置正确的环境变量。

基本使用方法

  1. 启动 MCP 服务器: 在配置好环境变量后,通过 MCP 客户端配置中设置的 'command' 和 'args' 启动 Sentinel Writer MCP 服务器。服务器将通过 Stdio 监听 MCP 客户端的请求。
  2. 使用 MCP 客户端调用工具: 使用 MCP 客户端向 Sentinel Writer MCP 服务器发送 JSON-RPC 请求,调用以下工具:
    • 'write_security_event': 用于写入安全事件数据到 Microsoft Sentinel。调用此工具时,您需要提供 'dcrType' (数据收集规则类型) 和 'eventData' (符合 DCR Schema 的事件数据) 作为参数。
    • 'get_current_time': 用于获取当前 UTC 时间。调用此工具无需参数。
  3. 查看 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 定义、验证规则和示例数据。

信息

分类

开发者工具