PaRaDoX322/dfir-forensics-tools
GitHub: PaRaDoX322/dfir-forensics-tools
面向数字取证与事件响应领域的开源工具包,解决 NAND 闪存物理恢复、勒索软件加密评估及结构化应急分类等实战问题。
Stars: 1 | Forks: 0
# DFIR 取证工具
**数字取证与事件响应 — 开源方法工具包**
[](LICENSE)
[](https://www.python.org/)
[]()
## 概述
本代码库包含经过实战验证的工具,专为在硬件存储取证与企业事件响应交叉领域工作的数字取证从业者设计。这些工具旨在解决传统取证获取工具无法应对的场景——例如控制器锁定的 NAND 设备、部分加密的勒索软件卷,以及在进行逻辑恢复前需要进行物理层分析的劣化存储介质。
所有工具均源自实际案例工作,并在随附的白皮书中记录了相关研究。
## 工具
### [`nand_oob_analyzer.py`](nand_oob_analyzer.py)
**NAND Flash 带外元数据分析器**
分析原始 NAND flash 转储,无需访问原始存储控制器即可提取并解码带外 (OOB) 备用区元数据。根据 OOB 字节模式重建逻辑到物理的页映射 (FTL),支持多种常见的 OOB 布局。
**使用场景:** 针对控制器锁定的 NAND 设备(SSD、手机、SD 卡、嵌入式存储)进行芯片拆焊恢复,适用于控制器固件发生故障或进入锁定状态的情况。
```
python nand_oob_analyzer.py --dump device.bin --page-size 2048 --oob-size 64 --output mapping.json
```
### [`disk_entropy_scanner.py`](disk_entropy_scanner.py)
**基于 Shannon 熵的加密覆盖率扫描器**
对磁盘镜像执行逐块的 Shannon 熵分析,以映射加密覆盖范围。区分加密区域(熵值约 8.0 bits/byte)、明文区域(可变,<7.5)以及零填充块(熵值为 0)。生成熵图和覆盖率报告。
**使用场景:** 用于勒索软件爆发后第一小时的应急分类,以确定卷的实际加密百分比——这对于在确定响应策略之前评估取证恢复是否可行至关重要。
```
python disk_entropy_scanner.py --image volume.dd --block-size 512 --output entropy_report.json
```
### [`recovery_viability_scorer.py`](recovery_viability_scorer.py)
**勒索软件恢复可行性评分器 (RVS)**
实现了一个 9 因子定量评分模型,用于评估勒索软件恢复的可行性。评估因子包括:VSS 完整性、备份架构、加密覆盖率、已知解密器的可用性、内存获取状态、勒索软件家族识别、文件扩展名 targeted 范围、部分加密检测以及事件影响的网络范围。
**使用场景:** 为 IR 从业者提供的结构化初步评估框架,用于在做出不可逆决定之前,建议组织是进行取证恢复、支付赎金,还是从备份中恢复。
```
python recovery_viability_scorer.py --interactive
# 或
python recovery_viability_scorer.py --config case_params.json
```
### [`ransomware_triage.py`](ransomware_triage.py)
**勒索软件事件分类工作流**
用于 Windows 和 Linux 勒索软件事件的自动化首小时分类脚本。执行以下操作:网络接口状态检查、VSS 快照枚举、运行进程与网络连接捕获、受影响卷的熵采样,以及通过勒索说明签名匹配进行已知勒索软件家族识别。
**使用场景:** 为 IR 团队提供标准化的分类自动化工具,用于在勒索软件响应的前 30 分钟内保全证据并收集初步评估数据。
```
python ransomware_triage.py --target \\AFFECTED-HOST --output triage_report/
```
## 研究
本工具集随附了三份技术白皮书,记录了其底层方法论:
| 白皮书 | 主题 | 状态 |
|-------------|-------|--------|
| [HDD 腐蚀环境恢复方法论](docs/WhitePaper_HDD_Seawater_Recovery.pdf) | 针对海水损坏 HDD 的 PCB 重建、ROM 提取、固件适配性迁移 | 已发布 |
| [NAND Flash 取证:控制器锁定设备恢复](docs/WhitePaper_NAND_Forensics.pdf) | 芯片拆焊获取、OOB 分析、FTL 重建方法论 | 已发布 |
| [企业级勒索软件恢复方法论](docs/WhitePaper_RansomwareRecovery.pdf) | RVS 框架、熵分类、VSS 恢复、结构化 IR 工作流 | 已发布 |
## 作者
**Dmitrii Kharkovets**
数字取证与事件响应专家
硬件取证 | 企业级数据恢复 | 网络弹性研究
- Email: dimas8598@gmail.com
- LinkedIn: [linkedin.com/in/dmitrii-k-h](https://linkedin.com/in/dmitrii-k-h)
- Research: [Forensic Focus](https://forensicfocus.com) | [ResearchGate](https://researchgate.net)
### 背景
拥有五年的独立 DFIR 实践经验,专注于存储层取证和企业级事件响应。专业领域包括:
- **NAND flash 取证:** 测试点绕过、芯片拆焊、OOB 元数据逆向工程、针对无公开文档的控制器锁定设备进行 FTL 重建
- **硬件级 HDD 恢复:** PCB 电子维修、ROM 提取、固件适配、腐蚀环境损坏处理协议
- **勒索软件恢复:** 基于熵的分类、VSS 完整性验证、内存取证、结构化恢复可行性评估
- **开源方法论:** 面向 DFIR 社区从业者提供易于使用的工具和已发布的框架
## 文档
```
dfir-forensics-tools/
├── nand_oob_analyzer.py # NAND OOB metadata analysis
├── disk_entropy_scanner.py # Entropy-based encryption coverage detection
├── recovery_viability_scorer.py # 9-factor ransomware recovery viability model
├── ransomware_triage.py # First-hour IR triage automation
├── docs/
│ ├── WhitePaper_HDD_Seawater_Recovery.pdf
│ ├── WhitePaper_NAND_Forensics.pdf
│ └── WhitePaper_RansomwareRecovery.pdf
├── LICENSE
└── README.md
```
## 使用说明
这些工具专为合格的取证从业者设计。它们作为方法论的实现提供——而非即插即用的解决方案。特别是硬件取证(芯片拆焊、测试点访问、PCB 返修)需要具备物理操作技能和相应的设备,这超出了软件工具的范围。
**在使用 `nand_oob_analyzer.py` 之前:** 请阅读随附的 NAND 取证白皮书以了解 OOB 布局背景。该工具需要使用者理解 NAND 架构才能正确解读其输出。
**在使用 `disk_entropy_scanner.py` 之前:** 在运行扫描之前,请先以取证方式(使用写保护设备或等效的 `dd` 命令)对受影响的卷进行镜像。切勿对仍在运行的、潜在的勒索软件活动进程进行扫描。
## 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
工具可自由使用、修改和分发,但需注明出处。
## 贡献
欢迎提交 Issue 和 pull request。如果您遇到了 `nand_oob_analyzer.py` 尚未支持的 NAND 控制器 OOB 布局,提交一个包含芯片标识和备用区十六进制样本的 Issue 将是最有价值的贡献。
标签:Python, 库, 应急响应, 数字取证, 数据恢复, 无后门, 熵分析, 硬件取证, 自动化脚本, 逆向工具