exploiter33/suricata-soc-platform
GitHub: exploiter33/suricata-soc-platform
基于 Suricata、ClickHouse、Grafana 和 n8n 构建的开源 SOC 分析平台,集成网络入侵检测、威胁可视化、自动化响应与威胁狩猎能力。
Stars: 0 | Forks: 0
# Suricata SOC 平台

## 架构
```
Suricata (host) ──→ eve.json
│
[Vector] ──→ [ClickHouse] ←── [Grafana]
│
[n8n SOAR]
(auto-block, Slack,
ticket creation)
```
| 组件 | 用途 | 部署方式 |
|---|---|---|
| **Suricata** | 网络 IDS/IPS — 生成 alert、HTTP、DNS 日志 | 运行在宿主机上 |
| **Vector** | 日志转发器 — 读取 `eve.json`,解析并发送到 ClickHouse | Docker |
| **ClickHouse** | 列式分析数据库 — 存储所有告警数据 | Docker |
| **Grafana** | 可视化 — 包含 3 个预置 SOC 仪表盘,使用 ClickHouse 查询 | Docker |
| **n8n** | SOAR 自动化 — 自动封禁 IP,Slack 告警,创建工单 | Docker |
## 功能
### SOC 仪表盘 (Grafana)
- **告警概览** — 严重程度分布、热门特征码、告警时间轴、热门源 IP、协议分布
- **威胁情报** — 可疑 DNS 查询、恶意软件下载、罕见出站连接
- **事件时间轴** — 7 天告警热力图、事件钻取、源 IP 聚类
### 检测规则 (Suricata)
- **`sid:1000001`** — SSH 暴力破解阈值(60 秒内失败 5 次)
- **`sid:1000002`** — 非标准端口上的出站信标
- **`sid:1000003`** — ICMP 泛洪 / 大包检测
- **`sid:1000004-6`** — 针对可疑 TLD 的 DNS 查询 (.xyz / .top / .tk)
- **`sid:1000007`** — HTTP 可执行文件下载检测
### SOAR 工作流 (n8n)
- **自动封禁 IP** — 接收 webhook,执行 iptables 封禁,通知 Slack
- **Slack 上报** — 格式化告警数据并发送至安全频道
- **工单创建** — 根据高危告警生成事件工单
### 自动化工具
- `tools/suricata-rule-manager.py` — 从 CLI 启用/禁用/测试规则
- `tools/ioc-extractor.py` — 根据时间窗口和严重程度从 eve.json 中提取 IOC
- `tools/report-generator.py` — 查询 ClickHouse 并生成执行摘要报告
### 事件响应 Playbook
- `playbooks/port-scan.md` — 扫描事件的分诊、遏制和升级 (T1046)
- `playbooks/ssh-brute-force.md` — 处理撞库和 SSH 暴力破解 (T1110)
- `playbooks/malware-c2-beacon.md` — 检测和遏制命令与控制流量 (T1071)
### 威胁狩猎查询
所有查询均映射到 MITRE ATT&CK 框架:
- `queries/port-scan-detection.sql` — T1046
- `queries/brute-force-spike.sql` — T1110
- `queries/suspicious-traffic.sql` — T1071, T1105, T1568
- `queries/MITRE-MAPPING.md` — 完整的技术到检测的映射表
### 攻击模拟
- `scripts/simulate-attacks.sh` — 轻量级 nmap、hydra、ping、curl 探测
- 在 Suricata 中生成真实告警,用于实时演示截图
## 前置条件
- **操作系统:** Linux (已在 Ubuntu / Kali 上测试)
- **Suricata** 已安装并运行: `sudo apt install suricata`
- **Docker + Docker Compose:** `sudo apt install docker.io docker-compose-v2`
- **Python 3.8+** 且安装了 `clickhouse-driver` (用于报告生成器)
## 快速开始
### 1. 克隆并配置
```
git clone https://github.com/exploiter33/suricata-soc-platform.git
cd suricata-soc-platform
cp .env.example .env
# 如果需要,使用您的密码编辑 .env
```
### 2. 部署 Docker Stack
```
docker compose up -d
```
这将启动:ClickHouse, Vector, Grafana (端口 3000), n8n (端口 5678)。
### 3. 加载自定义 Suricata 规则
如果正在运行实时 Suricata:
```
sudo cp suricata/custom.rules /etc/suricata/rules/
# 在 /etc/suricata/suricata.yaml 的 rule-files 下添加:
# - custom.rules
sudo systemctl restart suricata
```
### 4. 处理 PCAP (离线重放)
无需实时 Suricata 环境。使用以下命令处理包含的 pcap 文件:
```
# 一次性处理所有 pcap:
./scripts/replay-attacks.sh
# 或者处理单个 pcap:
./scripts/replay-attacks.sh pcaps/lokibot.pcap
```
这将对每个 pcap 离线运行 `suricata -r`,并通过 Vector → ClickHouse 发送结果。
### 5. 实时攻击模拟 (可选)
如果您在宿主机上运行了实时 Suricata:
```
chmod +x scripts/simulate-attacks.sh
sudo ./scripts/simulate-attacks.sh all
```
### 6. 打开 Grafana
导航至 [http://localhost:3000](http://localhost:3000)
- 登录信息:`admin` / `admin` (或您在 `.env` 中设置的密码)
- 转到 Dashboards → SOC — Alerts Overview
### 7. 生成报告
```
pip install clickhouse-driver
python tools/report-generator.py --hours 24
```
## 运行工具
```
# 列出所有自定义 Suricata 规则
sudo python tools/suricata-rule-manager.py list
# 禁用规则
sudo python tools/suricata-rule-manager.py disable 1000007
# 测试规则是否在近期触发
sudo python tools/suricata-rule-manager.py test 1000001
# 从过去 48 小时提取 IOC(severity 1-2)
python tools/ioc-extractor.py --last-h 48 --min-severity 2
# 生成执行报告
python tools/report-generator.py --hours 168 --output report.md
```
## 证据库
| 检测项 | 截图 |
|---|---|
| **告警概览** |  |
| **事件时间轴** |  |
| **威胁情报** |  |
| **检测逻辑** | [detection-logic.md](evidence/detection-logic.md) |
## MITRE ATT&CK 覆盖范围
| 战术 | 技术 |
|---|---|
| 侦察 | T1046, T1595 |
| 凭证访问 | T1110, T1110.001, T1110.002 |
| 命令与控制 | T1071.001, T1071.004, T1568 |
| 防御规避 | T1572 |
| 执行 | T1105 (通过工具下载监控) |
完整映射请见 [queries/MITRE-MAPPING.md](queries/MITRE-MAPPING.md)。
## 展示技能
| 技能 | 本项目中的证据 |
|---|---|
| **SIEM 运营** | ClickHouse + Grafana pipeline,日志摄取,仪表盘创建 |
| **检测工程** | 7 条自定义 Suricata 规则 + SQL 狩猎查询 |
| **事件响应** | 3 个结构化 IR playbook (NIST 800-61 风格) |
| **MITRE ATT&CK** | 每个检测都映射到具体技术 ID |
| **自动化 / SOAR** | 用于封禁/上报/工单的 n8n 工作流 |
| **取证 / IOC** | 从原始 eve.json 中提取 IOC |
| **报告** | 执行摘要生成器 |
| **日志分析** | Vector pipeline 将 JSON 日志解析为结构化表格 |
| **Linux / Docker** | 完全基于 compose 的部署 |
## 未来增强计划
- [ ] 集成 MISP 以实现威胁情报 feed 的自动摄取
- [ ] 添加 Velociraptor 用于端点工件收集
- [ ] 部署 Sigma 规则转换器以提供额外的检测逻辑
- [ ] 添加 TheHive 进行案件管理集成
- [ ] 通过 n8n 实现邮件告警
## 许可证
MIT
标签:Grafana仪表盘, Metaprompt, SIEM架构, SOAR, 多线程, 安全运营, 安全运营中心, 扫描框架, 版权保护, 网络映射, 请求拦截, 逆向工具