Rootless-Ghost/SIREN

GitHub: Rootless-Ghost/SIREN

一款遵循 NIST 800-61 框架的专业事件响应报告生成器,帮助 SOC 快速结构化记录与导出事件文档。

Stars: 0 | Forks: 0

# 🚨 SIREN ### 安全事件响应引擎与符号 [![Python](https://img.shields.io/badge/Python-3.8+-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org) [![Flask](https://img.shields.io/badge/Flask-3.x-000000?style=flat-square&logo=flask&logoColor=white)](https://flask.palletsprojects.com) [![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE) [![NIST](https://img.shields.io/badge/Framework-NIST%20800--61-0071C5?style=flat-square)](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 数量、受影响系统和基础严重程度的分数算法,以生成复合风险评分。 ## 截图
SIREN Form Interface

SIREN Report Output
## 功能 **事件文档记录** - 完整的元数据追踪,包含自动生成的事件 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界面, 严重性评估, 事件报告生成, 事件生命周期, 事件管理, 使用示例, 受影响系统, 复合风险, 安全事件响应, 安全运营中心, 开源, 快速启动, 恢复, 数据可视化, 无后门, 时间线记录, 暗色主题, 根除, 检测, 结构化数据, 网络映射, 逆向工具, 遏制, 项目结构, 风险评分