mahimakulkarnii/deleted-data-recovery-dfir
GitHub: mahimakulkarnii/deleted-data-recovery-dfir
这是一个数字取证案例研究,演示了从证据获取、完整性验证到删除数据恢复和artifact分析的完整DFIR工作流程。
Stars: 0 | Forks: 0
# 删除数据恢复与取证镜像分析
这是一个数字取证的案例研究,展示了证据获取、完整性验证、删除数据检查、文件雕刻和时间线分析。

## 执行摘要
本学术团队项目研究了从数字存储介质中恢复和分析删除数据的方法。使用 FTK Imager 将一个物理存储设备获取为分段的 E01 证据,通过加密哈希进行验证,并使用 Autopsy 进行检查。
调查分析了已分配、未分配和 Slack Space 条目;对文件类型进行了分类;搜索了关键字;应用了雕刻和取证 ingest 模块;并生成了文件系统活动时间线。
## 项目目标
* 在保持证据完整性的前提下创建取证镜像。
* 验证获取的镜像与原始源相匹配。
* 检查已分配、未分配和 Slack Space。
* 识别可恢复的文档、图像、可执行文件和其他 artifact。
* 应用关键字搜索、文件雕刻、哈希查找和时间线分析。
* 以可重复的取证工作流记录调查结果。
## 调查工作流
```
flowchart TD
A["Identify source media"] --> B["Acquire forensic image"]
B --> C["Verify cryptographic hashes"]
C --> D["Ingest image into Autopsy"]
D --> E["Analyze files and artifacts"]
E --> F["Build activity timeline"]
F --> G["Document findings"]
```
## 工具与技术
| 工具或技术 | 应用场景 |
| ----------------- | ------------------------------------------------------------------------ |
| FTK Imager | 物理设备获取、E01 分段和镜像验证 |
| Autopsy | 文件系统检查、关键字搜索、雕刻和 artifact 报告 |
| PhotoRec Carver | 基于签名的文件雕刻 ingest 模块 |
| Plaso | 时间线处理 ingest 模块 |
| YARA Analyzer | 基于规则的文件检查 |
| Kali Linux | 受控存储介质和命令行镜像演练 |
| `dd` and `split` | 原始获取和分段镜像创建 |
| MD5 and SHA-1 | 证据完整性验证 |
## 证据获取
FTK Imager 获取了一个大约 256 GB 的物理存储设备作为分段的 E01 证据。此次获取产生了 76 个证据分段。



### 完整性验证
在获取之后,计算和存储的 MD5 和 SHA-1 值相匹配,证实了取证镜像的完整性。



一份经过脱敏处理的 FTK 获取日志可在 [`evidence/ftk-acquisition-log-redacted.txt`](evidence/ftk-acquisition-log-redacted.txt) 中查看。
## Autopsy 分析结果
| 分析指标 | 结果 |
| -------------------------- | ---------------------: |
| 证据镜像大小 | 256,060,514,304 字节 |
| E01 证据分段 | 76 |
| 已分配文件条目 | 665,477 |
| 未分配文件条目 | 20,323 |
| Slack 文件条目 | 549,340 |
| 目录 | 330,098 |
| 时间线文件事件 | 407,448 |
| 电子邮件地址关键字命中数 | 936 |
| 识别出的文档 | 5,044 |
| 识别出的可执行文件 | 2,051 |
| 识别出的图像 | 425 |
这些数字代表在取证检查期间被索引或分类的条目。不应将它们全部解释为已成功恢复的删除文件。

### 时间线重建
Autopsy 报告汇总了在显示的 2023 年 3 月 17 日至 4 月 15 日期间发生的 407,448 起文件事件,支持对文件系统活动进行按时间顺序的审查。

### Ingest 模块
此次检查包括了针对数据源完整性、文件类型识别、扩展名不匹配、哈希查找、关键字搜索、PhotoRec 雕刻、Plaso 处理、近期活动、加密检测和 YARA 分析的模块。

## Linux 镜像演练
一次受控的 Kali Linux 演练演示了 USB 识别、使用 `dd` 进行原始获取、使用 `split` 进行分段输出以及 MD5 比对。



### 发现的局限性
在学习演练期间,镜像分段被写入了正在进行获取的同一分区上的目录中。这种方法会修改数据源,在真实的取证调查中是不可接受的。
生产工作流应使用经过验证的写阻断器,并将镜像写入单独的证据驱动器。认识到这一局限性,加深了我们对保护数据源和具备防御性获取程序重要性的认识。
## 关键结论
* 哈希验证对于证明证据完整性至关重要。
* 分段证据格式使得大型获取物更容易存储和管理。
* 未分配和 Slack Space 可以保留通过活动文件系统不再可见的信息。
* 当文件系统元数据不可用时,文件雕刻可以重构文件。
* 时间线分析帮助调查人员按时间顺序重建系统活动。
* 取证结果必须区分已索引的条目、关键字命中和成功恢复的 artifact。
* 永远不应将证据存储在源设备上或写回源设备。
## 文档
* [项目提案](docs/reports/project-proposal.pdf)
* [项目进度报告](docs/reports/project-progress-report.pdf)
* [下载最终演示文稿 (MP4, 5.5 MB)](presentation/deleted-data-recovery-presentation.mp4)
## 我的贡献
我对该项目的个人贡献包括:
* 使用 FTK Imager 创建了分段的 E01 取证镜像
* 通过匹配 MD5 和 SHA-1 哈希验证了获取的完整性
* 在 Autopsy 中加载并检查了取证镜像
* 审查了已分配、未分配和 Slack Space 条目
* 生成并审查了 Autopsy 分析报告
* 完成了 Kali Linux `dd` 镜像和分段演练
* 为书面项目文档和最终演示文稿做出了贡献
## 团队归属
这是一个在科罗拉多大学博尔德分校 (University of Colorado Boulder) 为 CYBR 5330 课程完成的学术团队项目。
团队成员:
* Mahidhara Kankara
* Meghashyam Padhebettu
* Mahima Kulkarni
* Amey Gokhale
本代码库重点展示了 Mahima Kulkarni 的课程材料中记录的获取、完整性验证、Autopsy 报告和 Linux 镜像组件。
## 代码库安全性
本代码库特意排除了:
* 原始的 E01 证据分段
* 原始磁盘镜像和内存转储
* 恢复的个人文件
* Autopsy 案例数据库和索引
* 设备序列号和标识符
* 未经脱敏的本地文件系统路径
* 第三方图库图像和带有水印的图形
标签:Autopsy, FTK Imager, 域渗透, 数字取证, 数据恢复, 文件雕刻, 电子数据取证, 自动化脚本