内容
# 🔐 Wazuh SIEM × Claude Desktop — 对话式安全运营中心,借助 MCP 实现
完整的动手网络安全项目,将 SIEM 与 AI 助手集成,实现自然语言安全运营。
---
## 🎯 项目概述
该项目展示了 AI 如何通过将 **Wazuh SIEM** 连接到 **Claude Desktop** 来增强安全运营中心(SOC)操作,通过 **MCP(模型上下文协议)**,允许安全分析师用自然语言查询 SIEM 并立即获得结构化的分析结果,而无需手动导航仪表盘。
Slack 增强功能通过 **自动**(Wazuh 原生集成,7 级及以上警报)和 **按需**(通过 Claude Desktop 对话)两种方式处理。
**我实现的功能:**
- ✅ 在 Ubuntu Server 虚拟机上部署 Wazuh Manager + Indexer
- ✅ 将 Windows 和 Kali Linux 代理连接到 Wazuh Manager
- ✅ 使用 Python 构建 MCP 服务器,向 Claude Desktop 公开 5 种工具
- ✅ 实现对警报、代理和漏洞的自然语言查询
- ✅ 配置 7 级及以上关键警报的自动 Slack 通知
- ✅ 添加了从 Claude Desktop 按需发送 AI 增强的 Slack 报告
---
## 🏗️ 架构
```
[物理机器 — Windows 10 — Claude Desktop]
│
│ 标准输入输出(本地子进程)
▼
wazuh_mcp_server.py ←── Python MCP 服务器
│
├── HTTPS :55000 → Wazuh Manager API
├── HTTPS :9200 → Wazuh Indexer(OpenSearch)
└── HTTPS → Slack Webhook
│
▼
[虚拟机 Ubuntu Server — Wazuh Manager + Indexer]
▲
│ 日志 / 心跳(端口 1514)
├── [虚拟机 Windows — Wazuh 代理]
└── [虚拟机 Kali — Wazuh 代理]
```
---
## 🛠️ 技术实现
### 环境设置
```
主机操作系统 :Windows 10(Claude Desktop + Python MCP 服务器)
虚拟机 1 :Ubuntu Server — Wazuh Manager 4.11.2 + Wazuh Indexer
虚拟机 2 :Windows 10 — Wazuh 代理
虚拟机 3 :Kali Linux — Wazuh 代理 / 攻击模拟
虚拟机管理程序 :VMware
```
### MCP 服务器 — 构建了 5 种工具
| 工具 | 描述 |
|------|-------------|
| `get_critical_alerts` | 获取按严重性和时间范围过滤的警报 |
| `get_agents_status` | 列出所有代理的状态、IP、操作系统、版本 |
| `get_vulnerabilities` | 每个代理检测到的 CVE,按严重性过滤 |
| `generate_security_report` | 将警报 + 代理 + 漏洞聚合为完整报告 |
| `send_to_slack` | 将 AI 增强的分析发送到 SOC Slack 频道 |
### 自然语言查询(示例)
```
"显示我过去 24 小时的关键警报"
"哪些代理存在未修补的关键漏洞?"
"生成一份带有建议的安全报告"
"将关键警报发送到 Slack,并附上分析"
```
### Slack 集成
**自动** — 通过 `ossec.conf` 中的 Wazuh 原生集成:
```xml
<integration>
<name>custom-slack</name>
<hook_url>https://hooks.slack.com/services/XXX/YYY/ZZZ</hook_url>
<level>7</level>
<alert_format>json</alert_format>
</integration>
```
**按需** — 通过 Claude Desktop 调用的 `send_to_slack` MCP 工具,
发布 AI 生成的摘要,包括警报详细信息、严重性颜色编码和时间戳,直接发送到 SOC 频道。
### Claude Desktop 配置
```json
{
"mcpServers": {
"wazuh": {
"command": "python",
"args": ["C:\\wazuh-mcp\\wazuh_mcp_server.py"]
}
}
}
```
### 所需网络端口
```bash
sudo ufw allow 55000/tcp # Wazuh Manager API
sudo ufw allow 9200/tcp # Wazuh Indexer(OpenSearch)
sudo ufw allow 1514/tcp # 代理通信
```
---
## 📊 结果与发现
### 效果良好的部分
- ✅ 几秒钟内完成自然语言 SIEM 查询
- ✅ 实时警报检测(SSH sudo 使用、PAM 会话、暴力破解尝试)
- ✅ AI 生成的安全报告,附结构化建议
- ✅ 双重 Slack 增强 — 自动 + 从 Claude Desktop 按需
- ✅ 多代理可见性(Ubuntu Manager、Windows 代理、Kali 代理)
### 主要经验
- MCP 弥合了复杂安全工具与对话式 AI 之间的差距
- 分离身份验证系统(Wazuh API 与 Indexer)对于避免错误至关重要
- AI 增强功能减少了分析师在解释原始日志数据时所花费的时间
- 自然语言接口降低了 SOC 操作的准入门槛
---
## 🔒 安全说明
- 使用 **只读范围** 的 API 帐户(最小特权原则)
- 通过 `.env` 文件管理机密 — 绝不提交到版本控制
- 生产环境中建议使用有效的证书启用 `WAZUH_VERIFY_SSL=true`
- 索引器端口 9200 在生产环境中应仅限于受信任的 IP 地址
---
## 🛠️ 展示的技能
**技术技能**
- SIEM 部署和配置(Wazuh)
- Python 异步开发(httpx,MCP SDK)
- REST API 集成(JWT 身份验证,OpenSearch 查询)
- 多虚拟机网络配置(VMware,桥接网络)
- AI 工具集成(Claude Desktop,MCP 协议)
- Slack API(传入 Webhooks,Block Kit 格式化)
**安全技能**
- 警报分类和严重性分类
- 漏洞管理流程
- 安全运营中心操作和事件分析
- 安全报告生成
---
## ⚙️ 安装
### 先决条件
- Python 3.10+
- Wazuh Manager + Indexer(Ubuntu Server)
- Claude Desktop
- Slack 传入 Webhook URL
### 设置
```powershell
git clone https://github.com/cisse-lalya/wazuh-mcp-soc.git
cd wazuh-mcp-soc
pip install -r requirements.txt
copy .env.example .env
notepad .env # 填写您的 Wazuh + Slack 凭证
```
### `.env` 配置
```env
WAZUH_API_URL=https://<WAZUH_VM_IP>:55000
WAZUH_API_USER=wazuh
WAZUH_API_PASSWORD=your_password
WAZUH_INDEXER_URL=https://<WAZUH_VM_IP>:9200
WAZUH_INDEXER_USER=admin
WAZUH_INDEXER_PASSWORD=your_password
WAZUH_VERIFY_SSL=false
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/XXX/YYY/ZZZ
```
### 测试连接
```powershell
python -c "from dotenv import load_dotenv; load_dotenv(); import asyncio; from wazuh_client import WazuhClient; c=WazuhClient(); print(asyncio.run(c.get_agents_status()))"
```
---
## 🧰 技术栈
`Wazuh 4.11.2` · `OpenSearch` · `Claude Desktop` · `MCP Protocol` · `Python 3.13` · `httpx` · `Slack Webhooks` · `VMware` · `Ubuntu Server` · `Windows 10` · `Kali Linux`
---
## 👤 关于我
网络安全学生和初级安全运营中心分析师,热衷于通过自动化和 AI 驱动的工具将网络运营和安全结合起来。该项目反映了我对安全的态度:构建实用的、集成的解决方案,而不是孤立地研究工具。
**联系我:**
- GitHub:[@cisse-lalya](https://github.com/cisse-lalya)
- LinkedIn:[linkedin.com/in/ndeyelalyacisse](https://www.linkedin.com/in/ndeyelalyacisse)