Rootless-Ghost/SIREN
GitHub: Rootless-Ghost/SIREN
一款遵循 NIST 800-61 框架的专业事件响应报告生成器,帮助 SOC 快速结构化记录与导出事件文档。
Stars: 0 | Forks: 0
# 🚨 SIREN
### 安全事件响应引擎与符号
[](https://python.org)
[](https://flask.palletsprojects.com)
[](LICENSE)
[](https://csrc.nist.gov/publications/detail/sp/800-61/rev-2/final)
一款为 SOC 分析员和事件响应者构建的专业事件响应文档工具。遵循 **NIST 800-61** 计算机安全事件处理指南框架,生成结构化、可导出的事件报告。
[功能](#features) · [快速开始](#quick-start) · [用法](#usage) · [项目结构](#project-structure) · [示例报告](#example-report)
## 概述
SIREN 通过提供干净、暗色主题的网络界面,简化了事件文档处理流程,专为安全运营中心环境设计。无需在实时事件中费力处理 Word 模板或零散笔记,分析师可以快速捕获时间线事件、IOC(入侵指标)、受影响系统及建议,并一键导出为 Markdown 或 JSON 格式。
该工具遵循 NIST 800-61 事件处理生命周期(检测 → 遏制 → 根除 → 恢复),并包含一个综合考虑 IOC 数量、受影响系统和基础严重程度的分数算法,以生成复合风险评分。
## 截图
## 功能
**事件文档记录**
- 完整的元数据追踪,包含自动生成的事件 ID(`IR-YYYYMMDD-XXXX`)
- 严重性等级:低、中、高、危急 —— 带有复合严重性评分(0–10 分)
- 九种事件类别,与常见 SOC 分类法对齐
- NIST 800-61 生命周期日期追踪(检测、遏制、根除、恢复)
**动态数据收集**
- 按时间排序的时间线事件,包含来源归属
- 支持 IP 地址、域名、URL、文件哈希、电子邮件和用户名的 IOC 管理
- 包含主机名、IP 和影响详细信息的受影响系统文档
- 用于修复操作和后续任务的建议部分
- 实时条目预览
- 键盘快捷键(`Ctrl/Cmd + Enter`)用于快速数据输入
**导出与输出**
- 专业的 Markdown 报告,包含表格、严重性徽章和结构化章节
- JSON 导出用于自动化、SIEM 集成或 API 调用
- 复制到剪贴板功能
- 直接下载文件(.md 和 .json)
**面向 SOC 的设计**
- 优化用于 24/7 操作的暗色主题
- 适用于各种屏幕尺寸的响应式设计
- 干净、专业的界面,适合分析师工作站
- 示例事件报告(Qakbot 恶意软件)用于测试和演示
## 快速开始
### 先决条件
- Python 3.8 或更高版本
- pip(Python 包管理器)
### 安装
```
# 克隆仓库
git clone https://github.com/Rootless-Ghost/SIREN.git
cd SIREN
# 创建虚拟环境(推荐)
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 运行应用程序
python app.py
```
打开浏览器并导航至 **http://127.0.0.1:5004**
## 用法
### 1. 填写事件元数据
输入事件标题,选择严重性和类别,提供分析师姓名,并为事件生命周期的每个阶段设置相关日期。
### 2. 构建时间线
在事件发展过程中添加按时间排序的事件。每个事件捕获时间戳、描述和来源(例如 SIEM、EDR、防火墙)。事件会自动按时间排序。
### 3. 记录 IOC
记录其类型、值和上下文的入侵指标(IoC)。支持的类型包括 IP 地址、域名、URL、文件哈希(MD5/SHA256)、电子邮件地址和用户名。
### 4. 记录受影响系统
记录每个受影响系统的主机名、IP 地址和影响描述。
### 5. 添加建议
捕获修复操作、后续任务和预防措施。
### 6. 生成与导出
点击 **生成事件报告** 以生成最终输出。在 Markdown 和 JSON 视图之间切换,然后复制到剪贴板或下载文件。
### 加载示例报告
点击头部中的 **加载示例** 按钮,用完整的 Qakbot 恶意软件事件填充表单。这对于测试或作为如何填写完整报告的参考非常有用。
## 项目结构
```
SIREN/
├── app.py # Flask application entry point
├── requirements.txt # Python dependencies
├── README.md # This file
├── SECURITY.md # Security considerations
├── QUICKSTART.md # GitHub Desktop setup guide
├── LICENSE # MIT License
├── .gitignore # Git ignore rules
├── src/
│ ├── __init__.py # Package init
│ ├── report_engine.py # Core data models & severity scoring
│ └── report_exporter.py # Markdown & JSON export logic
├── templates/
│ └── index.html # Main web interface
├── static/
│ ├── css/
│ │ └── style.css # Dark SOC theme
│ └── js/
│ └── app.js # Frontend logic & dynamic forms
└── samples/
└── sample_qakbot_incident.json # Complete sample incident report
```
## 示例报告
以下是包含的 Qakbot 示例的 Markdown 输出的截断版本:
```
# 🚨 Incident Report: Qakbot Malware Infection via Phishing Email
**Incident ID:** `IR-20250210-A3F7`
**Generated:** 2025-02-10 17:00:00 UTC
---
## 📋 事件元数据
| Field | Value |
|-------|-------|
| **Severity** | 🟠 High |
| **Category** | Malware Incident |
| **Analyst** | J. Ramirez |
| **Severity Score** | 7.5/10 (HIGH) |
## 🕐 事件时间线
| # | Timestamp | Event | Source |
|---|-----------|-------|--------|
| 1 | `2025-02-10 08:32:00 UTC` | Phishing email received... | Email Gateway |
| 2 | `2025-02-10 08:47:00 UTC` | User opened malicious attachment... | EDR |
...
## 🔍 妥协指标(IOCs)
| # | Type | Value | Context |
|---|------|-------|---------|
| 1 | IP Address | `185.234.72.19` | Qakbot C2 server |
| 2 | Domain | `update-service.xyz` | Payload delivery domain |
...
```
在 [`samples/sample_qakbot_incident.json`](samples/sample_qakbot_incident.json) 中查看完整示例。
## API 端点
SIREN 暴露了一个简单的 REST API 用于程序化访问:
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| `GET` | `/` | 提供 Web 界面 |
| `POST` | `/api/generate` | 从 JSON 有效负载生成报告 |
| `GET` | `/api/sample` | 检索示例 Qakbot 事件 |
### 示例 API 用法
```
curl -X POST http://127.0.0.1:5004/api/generate \
-H "Content-Type: application/json" \
-d '{
"title": "Suspicious Login Activity",
"severity": "Medium",
"category": "Unauthorized Access",
"analyst": "Your Name",
"iocs": [{"type": "IP Address", "value": "203.0.113.50", "context": "Brute force source"}],
"recommendations": ["Block source IP at firewall", "Enforce MFA on affected accounts"]
}'
```
## 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 后端 | Python 3, Flask |
| 前端 | HTML5, CSS3, Vanilla JavaScript |
| 样式 | 自定义暗色主题(CSS 变量) |
| 字体 | JetBrains Mono, IBM Plex Sans |
| 框架 | NIST SP 800-61 Rev. 2 |
## 安全
请参阅 [SECURITY.md](SECURITY.md) 了解处理事件数据时的重要安全注意事项。
**关键点:**
- 仅在本地主机上运行 SIREN,不要暴露到公共互联网
- 不要将生成的事件报告提交到公共仓库
- 在任何生产部署前审查安全加固建议
## 与 Nebula Forge 的集成
SIREN 占据 Nebula Forge 管道中的 **报告** 阶段。它有两个集成点。
### ir-chain → SIREN(自动事件创建)
ir-chain 是连接 EndpointTriage、日志分析器和 SIREN 的自动化 IR 管道。在处理完 EndpointTriage 案件文件夹后,ir-chain 从端点取证数据和日志分析器安全警报构建结构化事件有效负载,然后调用 `POST /api/generate` 自动创建 SIREN 报告 —— 无需分析师输入即可生成初稿。
ir-chain 将 SIREN 指向其 `config.yaml` 中配置的 URL:
```
siren_url: "http://127.0.0.1:5004"
```
### nebula-dashboard → SIREN 报告(报告查看器)
nebula-dashboard 读取由 ir-chain 写入磁盘的 JSON 报告(在配置的 `siren_reports/` 目录中),并在专用的报告查看器标签页中显示它们。每个事件的标题、严重性、类别、时间线、IOC、影响系统和建议都会显示出来,无需直接调用 SIREN API —— 即使 SIREN 未运行,报告也可浏览。
## 相关工具
| 工具 | 用途 | 链接 |
|------|---------|------|
| **YaraForge** | 恶意软件/文件检测的 YARA 规则生成 | [GitHub](https://github.com/Rootless-Ghost/YaraForge) |
| **SnortForge** | 网络检测的 Snort IDS/IPS 规则生成 | [GitHub](https://github.com/Rootless-Ghost/SnortForge) |
| **SigmaForge** | SIEM 检测的 Sigma 规则生成 | [GitHub](https://github.com/Rootless-Ghost/SigmaForge) |
| **SIREN** | NIST 800-61 事件响应报告生成器 | 本仓库 |
## 路线图
**计划中**
- PDF 导出 —— 生成可下载的 PDF 格式事件报告
- 多事件仪表板 —— 从单个界面查看和管理多个事件
- 证据附件支持 —— 上传并链接截图、日志和 PCAP 到事件
- 事件模板 —— 针对常见事件类型(钓鱼、勒索软件、内部威胁、BEC)的预构建报告模板
- 协作功能 —— 分析员笔记和交接跟踪,适用于基于轮班的 SOC 环境
**未来考虑**
- MITRE ATT&CK 映射 —— 为时间线事件和 IOC 标记技术 ID
- IOC 丰富 —— 集成 VirusTotal、AbuseIPDB 或 Shodan 查询以获取 IOC 上下文
- Wazuh/SIEM警报导入 —— 直接将警报数据拉取到事件时间线
- 报告版本控制 —— 在活动事件期间跟踪报告修订版本的变化
## 许可证
本项目根据 MIT 许可证授权 —— 详细信息请参阅 [LICENSE](LICENSE)。
由 [Rootless-Ghost](https://github.com/Rootless-Ghost) 构建 · NIST 800-61 框架
标签:Flask, IOC, JSON导出, Markdown导出, NIST 800-61, Python, SIREN, Web界面, 严重性评估, 事件报告生成, 事件生命周期, 事件管理, 使用示例, 受影响系统, 复合风险, 安全事件响应, 安全运营中心, 开源, 快速启动, 恢复, 数据可视化, 无后门, 时间线记录, 暗色主题, 根除, 检测, 结构化数据, 网络映射, 逆向工具, 遏制, 项目结构, 风险评分