Xenonas/Raven
GitHub: Xenonas/Raven
Raven 是一个用于监控 ICS 蜜罐、解析 Conpot 日志和 Suricata 警报并通过浏览器界面进行告警分类研判的全栈安全实验室仪表板。
Stars: 1 | Forks: 0
# ICS 蜜罐监控仪表板
这是一个用于监控 ICS 蜜罐、解析 Conpot 活动、导入 Suricata EVE 警报、管理本地 IDS 规则以及通过浏览器 UI 对警报进行分类研判的全栈实验仪表板。
本项目特意设计为操作员风格的工具,而非静态报告:它可以轮询 Docker 日志、生成受控的实验室流量、重载 Suricata 传感器、添加/删除本地规则,并利用原始 EVE 上下文调查警报。
## 演示

## 功能介绍
- 将 Conpot 和合成蜜罐日志解析为结构化事件。
- 识别常见的 OT 协议,包括 HTTP、Modbus、S7comm、DNP3、ICCP/TASE.2 和 SNMP。
- 将事件映射到服务、严重性、风险评分和 MITRE ATT&CK for ICS 风格的类别。
- 将 Suricata `eve.json` 警报导入 Django 模型,并进行稳定的去重处理。
- 提供警报分类研判:状态、备注、相关警报、原始 EVE JSON 和 HTTP 流详细信息。
- 允许管理员从 UI 添加/删除本地 Suricata 规则。
- 控制 Suricata Docker 传感器:状态检查、重启、规则重载和测试警报生成。
- 包含一个用于 HTTP、Modbus、DNP3 和 ICCP 风格 localhost 探测的实验室安全攻击模拟器。
## 架构
```
React + Vite UI
|
v
Django API + SQLite
|
+--> OT protocol-aware log parser
+--> Suricata EVE parser
+--> Docker / sensor controls
|
v
Dockerized Conpot + Dockerized Suricata
```
后端采用 Django,因为本项目受益于真正的 ORM、对管理员友好的身份验证、数据库迁移以及明确的 API endpoint。前端使用 React/Vite,因为仪表板具有多种交互状态:过滤器、分页、可折叠面板、警报分类研判和侧边调查抽屉。
## 主要功能
- 监控仪表板,支持按服务、严重性、源 IP、MITRE 和时间窗口进行过滤。
- 兼容 Modbus、S7comm、DNP3、ICCP/TASE.2、SNMP 和 HTTP 证据的 OT 协议。
- 可折叠的仪表板部分,使操作界面更简洁。
- 带有分页和时间过滤器的 Suricata 警报表。
- 警报调查抽屉,包含分类研判备注、相关警报、HTTP 字段和原始 EVE。
- 本地 Suricata 规则构建器和移除器。
- 用于 Docker 化 Suricata 的传感器控制。
- 通过 VirusTotal 和 AbuseIPDB 客户端为公共源 IP 提供 CTI 丰富化钩子。
## 协议范围
Conpot 为实验室提供了实时的蜜罐接触面。该仪表板增加了协议感知解析、过滤、合成事件生成、模拟器探测以及针对 DNP3 和 ICCP/TASE.2 的 Suricata 目标标记。完整的 DNP3 或 ICCP 服务器模拟需要添加专用的蜜罐服务,但数据模型和 UI 已经准备好对这些协议进行分类和研判。
## 本地运行
安装 Python 和前端依赖:
```
python3 -m venv venv
venv/bin/pip install -r requirements.txt
cd frontend
npm install
```
创建一个本地 `.env` 文件。请勿提交真实的 API 密钥。
```
VITE_API_BASE_URL="http://127.0.0.1:8001"
SURICATA_EVE_PATH="/absolute/path/to/ICS Honeypot/suricata/logs/eve.json"
SURICATA_INTERFACE="docker0"
VT_API_KEY=""
ABUSE_API_KEY=""
```
启动后端:
```
cd backend
../venv/bin/python manage.py migrate
../venv/bin/python manage.py runserver 127.0.0.1:8001
```
启动前端:
```
cd frontend
npm run dev
```
启动 Suricata:
```
docker compose -f docker-compose.suricata.yml up --build -d suricata
```
可选:如果您还没有发布实验室端口的 Conpot 容器,请通过 compose profile 运行 Conpot。
```
docker compose --profile conpot -f docker-compose.suricata.yml up --build -d
```
## 注意事项
- 这是一个本地实验室工具。攻击模拟器有意将目标限制在 localhost/私人实验室范围内。
- 包含的 Suricata 规则使用本地 SID 范围以避免冲突。
- 为了简化开发,本项目使用 SQLite;如果需要,模型的边界足够明确,可以迁移到 PostgreSQL。
- 有关组件的具体细节,请参阅 `backend/README.md`、`frontend/README.md` 和 `suricata/README.md`。
标签:Django, Metaprompt, PE 加载器, PKINIT, React, Syscalls, 告警分诊, 工控安全, 插件系统, 蜜罐监控, 请求拦截, 逆向工具