sayysen/N8n-wazuh
GitHub: sayysen/N8n-wazuh
基于 n8n 和 GPT-4o-mini 的自动化工作流,将 Wazuh 告警邮件转化为知识库驱动的事件分析与处置通知。
Stars: 1 | Forks: 1
# Wazuh SOC 事件分析工作流
一个智能的 n8n 工作流,使用 AI 代理自动化 Wazuh 安全告警处理。该工作流会分析安全事件,在知识库中搜索响应程序,在需要时进行网络搜索,并生成可操作的事件报告。
## 🎯 功能
- **自动化告警处理**:监控 Outlook 收件箱以获取 Wazuh 告警
- **AI 驱动的分析**:使用 GPT-4o-mini 分析安全事件
- **知识库集成**:搜索并更新网络安全手册数据库
- **智能网络搜索**:当缺少知识库条目时,自动搜索 Microsoft 和安全文档
- **动态创建知识库**:根据网络搜索生成新的知识库条目
- **邮件通知**:发送包含可操作建议的格式化事件报告
## 📋 前置条件
- n8n 实例(自托管或云端)
- Microsoft Outlook 账户
- OpenAI API 账户
- Brave Search API 账户
- 用于知识库存储的 n8n 数据表
## 🔧 配置步骤
### 1. 凭证设置
您需要在 n8n 中配置以下凭证:
#### Microsoft Outlook OAuth2
- **使用此项的节点**:`Microsoft Outlook Trigger`、`Send a message`
- **设置**:在 n8n 中为 Microsoft Outlook 创建 OAuth2 凭证
- **在工作流中替换**:`YOUR_OUTLOOK_CREDENTIAL_ID`
#### OpenAI API
- **使用此项的节点**:`LLM – GPT-4o-mini`、`OpenAI Chat Model1`
- **设置**:在 n8n 凭证中添加您的 OpenAI API key
- **在工作流中替换**:`YOUR_OPENAI_API_CREDENTIAL_ID`
#### Brave Search API
- **使用此项的节点**:`Brave Search`
- **设置**:从 [Brave Search API](https://brave.com/search/api/) 获取 API key
- **在工作流中替换**:`YOUR_BRAVE_SEARCH_API_CREDENTIAL_ID`
### 2. Microsoft Outlook 配置
#### 获取您的文件夹 ID
1. 在 n8n 中,创建一个带有 Microsoft Outlook Trigger 的测试工作流
2. 运行一次以查看可用的文件夹
3. 复制您想要监控的文件夹 ID
4. 在工作流中替换 `YOUR_OUTLOOK_FOLDER_ID_HERE`
#### 设置您的电子邮件地址
在以下位置将 `YOUR_EMAIL@example.com` 替换为您的实际电子邮件地址:
- **Microsoft Outlook Trigger**(发件人过滤)
- **Send a message**(收件人)
### 3. 数据表设置
创建一个包含以下列的 n8n 数据表:
| 列名 | 类型 | 描述 |
|------------|------|-------------|
| kb_id | String | 唯一标识符 |
| title | String | 手册标题 |
| category | String | 事件类别 |
| platform | String | 平台(例如 Windows、Linux) |
| attack_type | String | 攻击类型 |
| tags | String | 搜索关键字 |
| severity_min | String | 最低严重级别 |
| triggers | String | 触发此手册的条件 |
| summary | String | 简要摘要 |
| steps | String | 响应步骤 |
| what_to_check | String | 调查清单 |
| escalate_if | String | 升级标准 |
| references | String | 参考 URL |
| event_id | String | 相关事件 ID |
| rule_id | String | 相关规则 ID |
| severity | String | 严重级别 |
| confidence | String | 置信度水平 |
| response_actions | String | 立即行动 |
| source | String | 条目来源 |
| created_at | String | 时间戳 |
**在工作流中替换**:
- `YOUR_DATATABLE_ID_HERE`(出现两次 - 在 KB_Search_Cybersecurity 和 Update KB 节点中)
- `YOUR_PROJECT_ID`(在 cachedResultUrl 字段中)
## 🔄 工作流概述

### 流程描述
```
1. Microsoft Outlook Trigger
↓
2. Edit Fields (Extract email body)
↓
3. Normalize Wazuh Alert (Parse alert data)
↓
4. SOC AI Agent (Analyze with KB search)
↓
5. Code in JavaScript2 (Parse agent output)
↓
6. If (Check if KB match found)
├─ Match Found → Email Writer AI Agent
└─ No Match:
↓
Code in JavaScript1 (Prepare search query)
↓
Brave Search (Research online)
↓
AI Agent ("KB Writer") (Create KB entry)
↓
Code in JavaScript3 (Format KB entry)
↓
Update KB (Save to database)
↓
Email Writer AI Agent
↓
7. Send a message (Email notification)
```
## 🚀 使用方法
### 初始设置
1. 将工作流 JSON 导入 n8n
2. 配置所有凭证
3. 更新电子邮件地址和文件夹 ID
4. 创建并链接您的数据表
5. 激活工作流
### 运行工作流
工作流在以下情况自动触发:
- 监控的 Outlook 文件夹中收到 Wazuh 告警邮件
- 邮件来自指定的发件人
### 执行流程
#### 场景 1:找到匹配的知识库
1. 告警被规范化和分析
2. AI 搜索知识库
3. 找到匹配的手册
4. 发送包含基于知识库响应的邮件通知
#### 场景 2:未找到匹配的知识库
1. 告警被规范化和分析
2. AI 搜索知识库(未匹配)
3. Brave Search 执行网络搜索
4. AI 根据搜索结果创建新的知识库条目
5. 将知识库条目保存到数据库
6. 发送包含新指南的邮件通知
## 📧 邮件通知格式
工作流发送结构化的邮件,包含:
- **事件摘要**:2-3 行概述
- **建议的立即行动**:以项目符号列出的响应步骤
- **下一步检查内容**:调查清单
- **升级标准**:何时需要升级
- **参考资料**:相关文档 URL
## 🛠️ 自定义
### 调整搜索范围
在节点参数中修改 Brave Search 查询,以搜索不同的文档来源:
```
"(site:learn.microsoft.com OR site:ultimatewindowssecurity.com) " + $json.brave_query
```
### 修改 AI 提示词
每个 AI Agent 节点都有可自定义的提示词。需要调整的关键节点:
- **SOC AI Agent**:主要事件分析逻辑
- **AI Agent ("KB Writer")**:知识库条目生成
- **Email Writer AI Agent**:邮件格式化
### 更改轮询频率
在 `Microsoft Outlook Trigger` 中,将 `pollTimes` 从 `everyMinute` 调整为您喜欢的间隔。
## 🔐 安全注意事项
- 将所有 API key 安全地存储在 n8n 凭证中
- 将 Outlook 文件夹访问权限仅限制为 Wazuh 告警
- 在部署到生产环境之前,审查生成的知识库条目
- 考虑对敏感事件数据进行电子邮件加密
- 在您的 n8n 实例上实施适当的访问控制
## 📊 监控
通过以下方式监控工作流执行情况:
- n8n 执行日志
- 电子邮件送达确认
- 数据表条目计数
- OpenAI API 使用仪表板
## 🐛 故障排除
### 工作流未触发
- 验证 Outlook 凭证是否有效
- 检查文件夹 ID 是否正确
- 确认发件人电子邮件与过滤器匹配
### AI Agent 错误
- 检查 OpenAI API key 和配额
- 验证 agent 节点中的提示词语法
- 查看执行日志以排查 JSON 解析错误
### 知识库搜索无法正常工作
- 确认数据表存在且可访问
- 验证列名是否与 schema 匹配
- 检查数据表权限
### 邮件未发送
- 验证 Outlook 发送凭证
- 检查收件人电子邮件地址
- 检查电子邮件内容是否存在格式问题
## 📝 许可证
本工作流按“原样”提供,用于教育和操作目的。
## 📞 支持
如有问题或疑问:
1. 检查 n8n 执行日志
2. 查看节点配置
3. 验证所有凭证是否已正确设置
4. 单独测试各个节点
## 🔄 版本历史
- **v1.0**:初始版本,包含 Wazuh 告警处理、知识库管理和自动化搜索功能
标签:DLL 劫持, n8n, Wazuh, 大语言模型, 安全告警分析, 安全运营中心, 数据可视化, 网络映射, 自动化响应