Xenonas/Raven

GitHub: Xenonas/Raven

Raven 是一个用于监控 ICS 蜜罐、解析 Conpot 日志和 Suricata 警报并通过浏览器界面进行告警分类研判的全栈安全实验室仪表板。

Stars: 1 | Forks: 0

# ICS 蜜罐监控仪表板 这是一个用于监控 ICS 蜜罐、解析 Conpot 活动、导入 Suricata EVE 警报、管理本地 IDS 规则以及通过浏览器 UI 对警报进行分类研判的全栈实验仪表板。 本项目特意设计为操作员风格的工具,而非静态报告:它可以轮询 Docker 日志、生成受控的实验室流量、重载 Suricata 传感器、添加/删除本地规则,并利用原始 EVE 上下文调查警报。 ## 演示 ![ICS 蜜罐仪表板演示](https://raw.githubusercontent.com/Xenonas/Raven/main/docs/screenshots/appvideo.gif) ## 功能介绍 - 将 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, 告警分诊, 工控安全, 插件系统, 蜜罐监控, 请求拦截, 逆向工具