工具版本登记
时间线与取证分析的可复现性依赖工具版本:同一命令在新旧版本里可能输出不同列、不同时间格式,甚至给出不同结论。版本登记就是把「谁在什么时间、用什么版本、处理了哪份数据」写进方法章节与附录,让复核者能按清单重放。
基本信息
| 记录内容 | 工具名、版本号、完整命令行、执行时间、输入文件哈希 |
|---|---|
| 记录位置 | 报告的方法与工具章节,以及附录的命令清单 |
| 典型工具 | plaso 的采集与排序脚本、Sleuth Kit 的 fls 与 mactime、Volatility、ExifTool |
| 呈现形态 | 文本清单,或随证据包附带的日志文件 |
| 维护时机 | 分析过程中每次升级工具或调整参数都要追加记录 |
| 归档要求 | 清单文件本身也计算哈希并随报告保存 |
典型使用场景
- 让复核者按清单重放同一分析流程
- 判断不同分析员的结论差异是否来自工具版本
- 交付时证明处理链条完整可追溯
- 团队协作中统一工具版本基线
- 环境重建时快速复现原始工具集
最小示例
最小示例
log2timeline.py --version > tools.txt # plaso 采集器版本
psort.py --version >> tools.txt # plaso 排序器版本
fls -V >> tools.txt # Sleuth Kit 版本
mactime -V >> tools.txt # mactime 版本
exiftool -ver >> tools.txt # ExifTool 版本
sha256sum tools.txt # 版本清单本身也固化哈希记录项与要求
| 记录项 | 说明 | 要求 |
|---|---|---|
| 工具名与版本 | 含主版本与次版本号 | 不能只写工具名 |
| 完整命令行 | 含全部参数原文 | 不能用概述代替 |
| 执行时间 | 带时区的时刻 | 用于串起处理链条 |
| 输入哈希 | 处理对象的 sha256 | 证明处理的是同一份数据 |
| 输出文件 | 结果路径与哈希 | 便于二次核对与复算 |
版本清单本身也要计算哈希并随报告归档,否则无法证明清单在交付后没有被改动。
团队环境下建议把工具版本与依赖环境固化成统一基线,升级只在登记后统一执行,避免分析员之间结果不可比。
缺少版本与命令记录时,结论一旦被质疑就无法重建,只能重做分析;补记录的代价远高于分析时顺手登记。