rienman88/Blitz-DFIR

GitHub: rienman88/Blitz-DFIR

一个证据驱动的数字取证与应急响应分析流水线,编排多种确定性取证工具进行自动化证据提取、关联和报告生成。

Stars: 1 | Forks: 0

# 评委:提交合规性快速参考 | 要求 | 位置 | |---|---| | 公共仓库 | [`github.com/rienman88/Blitz-DFIR`](https://github.com/rienman88/Blitz-DFIR) | | 许可证 | [`LICENSE`](LICENSE) (Apache 2.0) | | 功能描述 | [概述](#overview) | | 演示视频 | [YouTube — Blitz DFIR Demo 2026](https://www.youtube.com/watch?v=KVRA7pNhdnU&t=93s) | | 架构图 | ![Blitz DFIR 架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f751bdc279132321.svg) | | 数据集 | [`Combined run of Rocba Memory and E01`] | | Blitz-DFIR-Results | [`findings, audit, reports`](https://github.com/rienman88/Blitz-DFIR-Results/tree/main) | | 调查结论 | [`INVESTIGATION_CONCLUSION.md`](submission/packet/01_INVESTIGATION_CONCLUSION.md) | | 运行摘要 | [`RUN_SUMMARY_COMPACT.json`](submission/packet/02_RUN_SUMMARY_COMPACT.json) | | Rocba LLM agent 日志 | [`submission/rocba_llm_agent_logs`](submission/rocba_llm_agent_logs/) | | Devpost Blitz DFIR | [`devpost post`](https://devpost.com/software/blitz-dfir?ref_content=user-portfolio&ref_feature=in_progress) | # Blitz DFIR Blitz DFIR 是一个证据驱动的调查分析 pipeline,它负责编排取证工具、关联发现结果、保留不确定性,并为数字取证和应急响应生成结构化报告。 简而言之: - SIFT 工具负责进行取证提取。 - Blitz 负责选择已批准的工具路由、验证证据哈希、记录运行过程、标准化事件、关联可疑活动、验证声明并撰写报告。 - LLM 推理是可选的。Blitz 完全可以在没有 LLM 的情况下运行。 - 原始证据会在原位置被引用。公共运行器(runner)不会将大型原始文件复制到 `/cases` 中。 - LLM 输出仅被视为解释。发现结果必须来自确定性的工具、解析器、标准化、关联和验证层。 | 指南 | 位置 | |---|---| | 可写 Volatility 符号缓存的安装与设置 | [`Blitz DFIR 安装`](https://github.com/rienman88/Blitz-DFIR/edit/main/README.md) | | 运行 Blitz DFIR 的方式 | [`如何运行 Blitz DFIR`](https://github.com/rienman88/Blitz-DFIR/blob/main/docs/Ways%20to%20run%20Blitz%20DFIR.md) | | 实用命令 | [`命令`](https://github.com/rienman88/Blitz-DFIR/blob/main/docs/Helpful%20commands.md) | | LLM 配置 | [LLM](https://github.com/rienman88/Blitz-DFIR/blob/main/docs/LLM%20Configurations.md) | | 关于 Blitz DFIR 结果的一切 | [`每次成功运行后预期生成的文件`](https://github.com/rienman88/Blitz-DFIR/blob/main/docs/Where%20%20to%20find%20Blitz%20DFIR%20generated%20results.md) | | 故障排除指南 | [常见问题](https://github.com/rienman88/Blitz-DFIR/blob/main/docs/Common%20Issues.md) | #工作原理 “证据 → 工具路由 → 解析 → 标准化 → 关联 → 验证 → 可选 AI 解释 → 报告” 1. 提供证据 – 提供内存镜像、磁盘镜像、时间线或受支持的取证工件(artifacts)。在整个工作流程中,证据始终是事实来源。 2. 执行已批准的分析路由 – Blitz 编排确定性的 DFIR 工具和解析器,验证证据完整性,并记录执行细节以供审计和复现。 3. 解析并标准化工件 – 将来自多个来源的输出转换为通用的表示形式,以实现跨工件分析和关联。 4. 关联并评分发现结果 – 跨工件关联相关事件,以识别可疑活动并生成有证据支撑的发现结果。 5. 保留不确定性并验证声明 – 保留解析器的限制、警告、矛盾和覆盖缺口,以防止过度自信并支持透明的分析。 6. 生成可选的 AI 解释 – 启用时,AI 会总结并解释有证据支撑的发现结果。AI 不会创造证据、决定结论或修改发现结果。 7. 生成结构化报告 – Blitz 生成报告和调查工件,帮助分析师继续进行更深度的取证分析和应急响应活动。 ## 最安全的测试顺序 在演示、评审和客户端测试时请使用此顺序: 1. 在不使用 LLM 的情况下运行一个小型或已知良好的证据项。 2. 检查状态并打开生成的报告。 3. 在启用 LLM 的情况下运行相同的证据。 4. 一起运行两个证据项(例如内存加 E01),不使用 LLM。 5. 在启用 LLM 的情况下运行相同的两个证据项。 6. 在得出任何结论之前,审查覆盖缺口、验证警告、未知项和 agent 日志。 每次全新的干净运行都会创建: ``` /cases//analysis/runs/_* /cases//output/sess-* ``` `scripts/blitz_status.sh` 仅读取最近一次的运行。它不会继续、重启或修改分析。 ## 环境要求 推荐环境: - SANS SIFT Workstation 或安装了所需 SIFT 工具的 Ubuntu。 - Python 3.11 或更高版本。 - `/cases` 下的一个可写 case 目录。 - 可选的 Ollama 或其他兼容 OpenAI 的聊天补全(chat-completions)服务,用于 LLM 推理。 核心 Python 软件包要求位于: ``` requirements.txt requirements-dev.txt pyproject.toml ``` 必需的 SIFT/工具检查: ``` which python3 which log2timeline.py which psort.py which pinfo.py which vol which mmls which fls which strings ``` 可选工具: ``` which chainsaw || true which tshark || true which yara || true ``` ## 下载并安装 在 SIFT 上: ``` cd /home/sansforensics/src git clone https://github.com/rienman88/Blitz-DFIR cd /home/sansforensics/src/Blitz-DFIR python3 -m venv .venv . .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.txt ``` 快速健康检查: ``` cd /home/sansforensics/src/Blitz-DFIR .venv/bin/python -m compileall -q app.py blitz_dfir tests .venv/bin/python -m pytest -q ``` 如果未安装测试依赖项: ``` .venv/bin/python -m pip install -r requirements-dev.txt .venv/bin/python -m pytest -q ``` ## Volatility 符号 Blitz 被配置为使用可写的 Volatility 符号缓存: ``` /cases/volatility_symbols ``` 创建一次: ``` sudo mkdir -p /cases/volatility_symbols sudo chown "$USER:$USER" /cases/volatility_symbols chmod 700 /cases/volatility_symbols ``` 当前生效的工具配置包含: ``` symbols_dir: "/cases/volatility_symbols" ``` 这可以防止 Volatility 3 尝试将下载的 Windows 符号保存到 root 用户拥有的 Python 软件包目录中。 ## 受支持的证据类型标签 在 `case.yaml` 或 `EVIDENCE*_TYPE` 中使用以下值: ``` E01 DD MEMORY EVTX PCAP REGISTRY_HIVE FILESYSTEM_ARTIFACT PLASO CSV_TIMELINE JSON_EXPORT VOLATILITY_JSON YARA_MATCHES STRINGS_OUTPUT PREPROCESSED_EVTX THIRD_PARTY_EXPORT ``` 常见测试路径: - `MEMORY`:用于由 Volatility 处理的原始内存镜像。 - `E01` 和 `DD`:用于由 Plaso/log2timeline 处理的磁盘镜像,并在完整时间线提取失败时回退至 Sleuth Kit 磁盘分诊(triage)。 - `EVTX` 或 `PREPROCESSED_EVTX`:用于 Windows 事件日志。 - `PLASO` 和 `CSV_TIMELINE`:用于已生成的时间线数据。 - `PCAP`:在 `tshark` 可用时用于数据包捕获分诊。 对于公共运行流程,目前测试过的同时使用的最大原始数据集数量为两个。清单模型可以容纳更多记录,但评委/客户运行手册应使用一到两个证据输入,以便于进行可预测的审查。 ## Windows 工件覆盖范围 默认的 Windows 配置文件是: ``` windows-light ``` 当 Plaso 提供支持时,它会针对以下工件系列: ``` winevtx prefetch lnk setupapi windows_timeline srum amcache bam usbstor usb devices ``` `mft` 和 `usnjrnl` 被刻意排除在轻量级默认设置之外,因为它们可能会产生海量数据。应将它们视为更深度的可选解析,而不是默认的演示路径。 ## 允许的工具和模块 当前生效的允许列表(allowlist)位于: ``` config/tools.yaml ``` 主要工具路由: ``` log2timeline -> E01/DD/Windows artifact timeline extraction psort -> PLASO export disk_triage -> Sleuth Kit fallback for E01/DD when full Plaso extraction fails volatility -> MEMORY analysis chainsaw -> EVTX triage when available tshark -> PCAP triage when available yara -> YARA matching when rules are configured strings -> string extraction route ``` 默认的 Volatility 插件: ``` windows.pslist windows.pstree windows.cmdline windows.psscan windows.netscan windows.malfind ``` Blitz 不会通过其类型化的工具层暴露通用的 shell。工具执行受到清单证据类型、配置的可执行文件路径、列入允许列表的插件、输出目录和审计日志的限制。 ## 清单基础 清单(manifest)用于告知 Blitz 正在分析哪个 case、结果应写入何处,以及哪些证据文件在范围内。 重要字段: ``` case_id Short case name. This becomes part of /cases/. evidence_root Use external when raw files live anywhere on disk and should not be copied. output_root Where Blitz writes reports, findings, audit files, and SQLite stores. evidence One or more evidence records with id, path, type, sha256, and description. ``` 对于从任意文件夹中选择的用户文件,请使用: ``` evidence_root: external ``` 这允许使用绝对证据路径,同时将输出保留在 `/cases//output` 下。
标签:AI风险缓解, LLM推理, SIFT工具, 后端开发, 库, 应急响应, 数字取证, 日志关联, 自动化分析流水线, 自动化脚本, 逆向工具