solomonneas/wazuh-mcp

GitHub: solomonneas/wazuh-mcp

为 Wazuh SIEM/XDR 平台提供 MCP 协议集成,让 AI 助手能够以自然语言方式查询和调查安全事件。

Stars: 0 | Forks: 0

# wazuh-mcp [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/) [![Node.js](https://img.shields.io/badge/Node.js-20%2B-green.svg)](https://nodejs.org/) [![MCP](https://img.shields.io/badge/MCP-1.12-purple.svg)](https://modelcontextprotocol.io/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 一个用于 [Wazuh](https://wazuh.com/) SIEM/XDR 平台的 [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) 服务器。可以直接从 Claude 或任何兼容 MCP 的客户端查询 Agent、安全警报、检测规则和解码器。 ## 功能特性 - **25 个 MCP 工具** - 涵盖 Agents、警报、规则、解码器、SCA、Syscollector、FIM、Rootcheck、Groups 和 Manager - **3 个 MCP 资源** - 预构建的 Agents、近期警报和规则摘要视图 - **3 个 MCP 提示词** - 警报调查、Agent 健康检查和安全概览 - **JWT 认证** - 自动 Token 管理,过期时自动刷新 - **完整合规映射** - PCI-DSS, GDPR, HIPAA, NIST 800-53, MITRE ATT&CK - **分页支持** - 所有列表端点支持 limit/offset 分页 - **类型安全** - 完整 TypeScript 严格模式及 Zod Schema 验证 ## 前置条件 - Node.js 20+ - 运行中且开启 API 访问的 Wazuh Manager (默认端口 55000) - Wazuh API 凭证 (用户名/密码) - (可选) Wazuh Indexer (OpenSearch) 访问权限,用于警报查询 ## 安装 ``` git clone https://github.com/solomonneas/wazuh-mcp.git cd wazuh-mcp npm install npm run build ``` ## 配置 设置以下环境变量: | 变量 | 必填 | 默认值 | 描述 | |----------|----------|---------|-------------| | `WAZUH_URL` | 是 | - | Wazuh API URL (例如, `https://10.0.0.2:55000`) | | `WAZUH_USERNAME` | 是 | - | API 用户名 | | `WAZUH_PASSWORD` | 是 | - | API 密码 | | `WAZUH_VERIFY_SSL` | 否 | `false` | 设置为 `true` 以验证 SSL 证书 | 也支持替代变量名 `WAZUH_BASE_URL` 和 `WAZUH_USER`。 ### Wazuh Indexer (OpenSearch) - 警报功能必需 Wazuh 4.x 将警报存储在 Wazuh Indexer (OpenSearch) 中,而非 REST API。要启用警报工具 (`get_alerts`, `get_alert`, `search_alerts`) 和 `wazuh://alerts/recent` 资源,请配置 Indexer 连接: | 变量 | 必填 | 默认值 | 描述 | |----------|----------|---------|-------------| | `WAZUH_INDEXER_URL` | 否 | - | Wazuh Indexer URL (例如, `https://10.0.0.2:9200`) | | `WAZUH_INDEXER_USERNAME` | 否 | `admin` | Indexer 用户名 | | `WAZUH_INDEXER_PASSWORD` | 否 | - | Indexer 密码 | | `WAZUH_INDEXER_VERIFY_SSL` | 否 | `false` | 设置为 `true` 以验证 SSL 证书 | 如果未设置 `WAZUH_INDEXER_URL`,警报工具将返回一条有用的配置提示信息。所有其他工具(Agents、规则、解码器、版本)无需 Indexer 即可正常工作。 ## 用法 ### Claude Desktop 添加到您的 Claude Desktop 配置 (`claude_desktop_config.json`) 中: ``` { "mcpServers": { "wazuh": { "command": "node", "args": ["/path/to/wazuh-mcp/dist/index.js"], "env": { "WAZUH_URL": "https://your-wazuh-manager:55000", "WAZUH_USERNAME": "wazuh-wui", "WAZUH_PASSWORD": "your-password", "WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200", "WAZUH_INDEXER_USERNAME": "admin", "WAZUH_INDEXER_PASSWORD": "your-indexer-password" } } } } ``` ### OpenClaw 添加到您的 `openclaw.json` 中: ``` { "mcp": { "servers": { "wazuh": { "type": "stdio", "command": "node", "args": ["/path/to/wazuh-mcp/dist/index.js"], "env": { "WAZUH_URL": "https://your-wazuh-manager:55000", "WAZUH_USERNAME": "wazuh-wui", "WAZUH_PASSWORD": "your-password", "WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200", "WAZUH_INDEXER_USERNAME": "admin", "WAZUH_INDEXER_PASSWORD": "your-indexer-password" } } } } } ``` ### 独立运行 ``` export WAZUH_URL=https://your-wazuh-manager:55000 export WAZUH_USERNAME=wazuh-wui export WAZUH_PASSWORD=your-password npm start ``` ### 开发 ``` npm run dev # Watch mode with tsx npm run lint # Type checking npm test # Run tests ``` ## MCP 工具 ### Agent 工具 | 工具 | 描述 | |------|-------------| | `list_agents` | 列出所有 Agents,支持可选的状态过滤 (active, disconnected, never_connected, pending) | | `get_agent` | 根据 ID 获取特定 Agent 的详细信息 | | `get_agent_stats` | 获取 Agent 的 CPU、内存和磁盘统计信息 | ### 警报工具 | 工具 | 描述 | |------|-------------| | `get_alerts` | 检索近期警报,支持按级别、Agent、规则和文本搜索进行过滤 | | `get_alert` | 根据 ID 检索单个警报 | | `search_alerts` | 对所有警报进行全文搜索 | ### 规则工具 | 工具 | 描述 | |------|-------------| | `list_rules` | 列出检测规则,支持级别和分组过滤 | | `get_rule` | 获取完整的规则详情,包含合规映射 | | `search_rules` | 根据描述文本搜索规则 | ### SCA 工具 (安全配置评估) | 工具 | 描述 | |------|-------------| | `get_sca_policies` | 列出 Agent 的 SCA 策略和分数(CIS 基准等) | | `get_sca_checks` | 获取各项检查结果,包含修复步骤和合规映射 | ### Syscollector 工具 (系统清单) | 工具 | 描述 | |------|-------------| | `get_agent_os` | 获取操作系统信息(名称、版本、架构、主机名) | | `get_agent_packages` | 列出已安装的软件包及版本 | | `get_agent_processes` | 列出正在运行的进程及其 PID 和命令行 | | `get_agent_ports` | 列出开放的网络端口及其关联进程 | | `get_agent_network` | 列出网络接口和 IP 地址 | | `get_agent_hotfixes` | 列出已安装的 Windows 补丁/修复程序 | ### FIM & Rootcheck 工具 | 工具 | 描述 | |------|-------------| | `get_fim_files` | 获取文件完整性监控结果(文件、注册表键、哈希值) | | `get_rootcheck` | 获取 Rootkit 检测扫描结果 | ### Manager 工具 | 工具 | 描述 | |------|-------------| | `get_manager_logs` | 获取按级别和模块过滤的 Wazuh Manager 日志 | | `get_manager_config` | 按部分获取生效的 Manager 配置 | ### Group 工具 | 工具 | 描述 | |------|-------------| | `list_groups` | 列出所有 Agent Groups | | `get_group_agents` | 列出特定 Group 中的 Agents | ### 其他工具 | 工具 | 描述 | |------|-------------| | `list_decoders` | 列出日志解码器,支持按名称过滤 | | `get_wazuh_version` | 获取 Wazuh Manager 版本和 API 信息 | ## MCP 资源 | 资源 URI | 描述 | |-------------|-------------| | `wazuh://agents` | 所有已注册的 Agents 及其状态 | | `wazuh://alerts/recent` | 最近 25 条安全警报 | | `wazuh://rules/summary` | 按严重程度排序的检测规则 | ## MCP 提示词 | 提示词 | 描述 | |--------|-------------| | `investigate-alert` | 逐步警报调查,包含 MITRE 映射和修复建议 | | `agent-health-check` | 全面的 Agent 健康评估(状态、资源、警报) | | `security-overview` | 完整的环境安全摘要及合规覆盖情况 | ## 示例 ### 列出活跃的 Agents ``` Use list_agents with status "active" to see all connected agents. ``` ### 调查暴力破解尝试 ``` Search alerts for "brute force" and investigate the top result, including the MITRE ATT&CK technique and remediation steps. ``` ### 检查 Agent 健康状况 ``` Run an agent health check on agent 001 - check its connection status, resource usage, and any recent critical alerts. ``` ### 查找高严重性规则 ``` List all rules with level 12 or higher to see critical detection rules and their compliance framework mappings. ``` ## 测试 ``` npm test # Run all tests npm run test:watch # Watch mode ``` 测试使用模拟的 Wazuh API 响应 - 无需运行中的 Wazuh 实例。 ## 项目结构 ``` wazuh-mcp/ ├── src/ │ ├── index.ts # MCP server entry point │ ├── config.ts # Environment configuration │ ├── client.ts # Wazuh REST API client (JWT auth) │ ├── indexer-client.ts # Wazuh Indexer (OpenSearch) client │ ├── types.ts # TypeScript type definitions │ ├── resources.ts # MCP resource handlers │ ├── prompts.ts # MCP prompt templates │ └── tools/ │ ├── agents.ts # Agent management tools │ ├── alerts.ts # Alert query tools │ ├── rules.ts # Rule query tools │ ├── decoders.ts # Decoder listing tool │ ├── version.ts # Version info tool │ ├── sca.ts # Security Configuration Assessment │ ├── syscollector.ts # System inventory (OS, packages, ports, etc.) │ ├── syscheck.ts # File Integrity Monitoring │ ├── rootcheck.ts # Rootkit detection │ ├── manager.ts # Manager logs and configuration │ └── groups.ts # Agent group management ├── tests/ │ ├── client.test.ts # API client unit tests │ └── tools.test.ts # Tool handler unit tests ├── package.json ├── tsconfig.json ├── tsup.config.ts └── vitest.config.ts ``` ## 许可证 MIT
标签:AI安全, AMSI绕过, API集成, Chat Copilot, Claude Desktop, GDPR, GNU通用公共许可证, HIPAA, JWT认证, LLM集成, MCP Server, MITM代理, Model Context Protocol, NIST, Node.js, PB级数据处理, PCI-DSS, TypeScript, Wazuh, Zod, 人工智能安全, 可观测性, 合规性, 威胁检测, 安全插件, 安全运维, 端点安全, 网络安全, 自动化攻击, 补丁管理, 隐私保护