GuftarRaza/Project-bluePrint

GitHub: GuftarRaza/Project-bluePrint

将多源杂乱的安全日志自动标准化、去重并映射 MITRE ATT&CK,生成统一时间线以辅助安全事件调查与威胁狩猎。

Stars: 0 | Forks: 0

# project-blueprint **智能事件时间线与攻击路径重建器** 将杂乱、多源的安全日志转换为单一的 **UTC 标准化、按时间排序、映射至 MITRE ATT&CK** 的时间线 —— 适用于 SOC 分诊、DFIR、威胁狩猎和紫队工作。 无需再手动关联 Sysmon、Windows Event Logs、IIS 和 SIEM 导出文件中的电子表格,只需放入文件,即可获得带有技术标签、缺失分析和已保存调查会话的统一时间线。 ## 功能 - **模块化摄入** — 为通用 CSV(包括 Microsoft Defender / Sentinel 高级搜寻 schema)、Sysmon/Windows Event JSON、IIS/W3C 日志和原生 `.evtx` 提供可插拔的解析器。 - **标准化引擎** — 所有时间戳均被解析为带时区的 UTC;原始时间戳通过 `--assume-tz` 进行本地化。 - **MITRE ATT&CK 标记** — 基于规则的匹配器,支持 AND/OR 谓词组;具备 LogonType 感知的登录规则,以减少误报。 - **跨源去重** — 在多个数据源中看到的相同事件会折叠为一个。 - **缺失分析** — 标记时间顺序上的缺失,这可能表明日志已丢失或被篡改。 - **持久化** — 在 SQLite 中保存/加载调查会话。 - **三种接口** — CLI、FastAPI 后端和拖放式 Streamlit 仪表板。 ## 安装 ``` git clone https://github.com/GuftarRaza/project-blueprint.git cd project-blueprint pip install -e ".[all,dev]" # everything # 或选择 extras:".[api]", ".[ui]", ".[evtx]" ``` 核心安装 (`pip install -e .`) 仅需要 pandas。解析 EVTX 需要使用 `evtx` 扩展依赖。 ## 用法 ### CLI ``` project-blueprint csv:samples/defender.csv iis:samples/web.log \ --assume-tz UTC --gap-threshold 30 --save case-001 ``` 每个输入都是一个 `:` 对。运行 `project-blueprint -h` 查看可用选项。 ### Streamlit 仪表板 ``` streamlit run app/streamlit_app.py ``` 在侧边栏上传日志,选择一个解析器,并探索 **Timeline**、**MITRE ATT&CK** 和 **Gap analysis** 标签页。保存会话并稍后重新加载。 ### FastAPI 后端 ``` uvicorn project_blueprint.api:app --reload ``` | 方法 | Endpoint | 用途 | |--------|----------|---------| | GET | `/health` | 健康检查 | | GET | `/parsers` | 列出可用的解析器 | | POST | `/timeline` | 上传日志文件,获取时间线 + 缺失分析 + MITRE 摘要 | | GET | `/sessions` | 列出已保存的会话 | | GET | `/sessions/{id}` | 加载一个会话 | | DELETE | `/sessions/{id}` | 删除一个会话 | 交互式文档位于 `http://127.0.0.1:8000/docs`。 ## 扩展 ### 添加解析器 ``` # src/project_blueprint/parsers/myparser.py from ..schema import blank_row from . import register_parser @register_parser("myformat") def parse_myformat(path): rows = [] for record in ...: row = blank_row() row["timestamp_utc"] = ... row["source"] = "myformat" # ...populate canonical fields... rows.append(row) return rows ``` 在 `parsers/__init__.py` 中导入它,以便运行装饰器。就是这样 —— 它现在已可供 CLI、API 和 UI 使用。 ### 添加 MITRE 规则 将一个 `MitreRule` 追加到 `mitre.py` 的 `DEFAULT_RULES` 中。每条规则包含多个 AND 谓词组;如果任何一组完全匹配,则该规则触发。 ``` MitreRule("T1486", "Data Encrypted for Impact", "Impact", [ [field_contains("command_line", r"vssadmin delete|\.locked")], ]) ``` ## 标准化事件 schema 解析器将每条记录标准化为:`timestamp_utc, source, host, user, event_id, process, command_line, src_ip, dst_ip, logon_type, message, raw`。 ## 项目布局 ``` src/project_blueprint/ schema.py canonical fields normalize.py timestamp -> UTC mitre.py ATT&CK rule engine + default ruleset timeline.py parse -> tag -> sort -> dedup, gaps, summary storage.py SQLite sessions cli.py command line api.py FastAPI backend parsers/ csv, sysmon_json, iis, evtx (+ registry) app/streamlit_app.py tests/ samples/ ``` ## 测试 ``` pytest ``` ## 免责声明 内置的规则集是一个用于演示的**入门级集合**。在依赖输出结果进行调查之前,请根据您的环境调整检测、阈值和时区处理。 ## 许可证 MIT — 见 [许可证](LICENSE)。
标签:AV绕过, Cloudflare, FastAPI, Kubernetes, MITRE ATT&CK, Streamlit, 安全规则引擎, 安全运营, 库, 应急响应, 扫描框架, 访问控制, 逆向工具