时间戳篡改的交叉验证
单个时间戳异常不足以证明篡改,可靠做法是交叉验证:看两组文件时间是否一致、创建时间是否晚于修改时间、以及文件时间与日志记录是否冲突。多条独立线索指向同一结论时,篡改的表述才站得住脚;只有一处异常时,先为它找别的解释更稳妥。
基本信息
| 信号一 | $SI 与 $FN 两组时间的差异方向与幅度异常 |
|---|---|
| 信号二 | 创建时间晚于修改时间等反常规的时间组合 |
| 信号三 | 文件时间与日志、内存痕迹或备份中的记录冲突 |
| 常用工具 | MFTECmd 导出 $MFT 后按列比对 |
| 表述要求 | 区分“存在异常”与“已证实篡改”,并写明置信度 |
典型使用场景
- 判断样本文件是否被改动过时间以躲避排序
- 核对可执行文件的落地时间与执行痕迹是否吻合
- 排查时间精度异常,例如大批文件的时间整齐到分钟
- 结合备份或卷影副本中的历史版本做验证
- 在报告中说明判定依据与仍存的其它解释
导出并对比
导出并对比
MFTECmd.exe -f 'C:\case\$MFT' --csv C:\out\mft
Import-Csv C:\out\mft\'$MFT.csv' | Where-Object { $_.'SI Created' -ne $_.'FN Created' } | Select-Object -First 10 FullPath, 'SI Created', 'FN Created'
Import-Csv C:\out\mft\'$MFT.csv' | Where-Object { [datetime]$_.'SI Created' -gt [datetime]$_.'SI Modified' } | Select-Object -First 10 FullPath, 'SI Created', 'SI Modified'
# 结果再与日志、备份或卷影副本中的时间做交叉核对信号与判定
| 信号 | 含义 | 是否足以定性 |
|---|---|---|
| 两组时间不一致 | 存在两个时间来源的差异 | 需结合操作场景,单条不足以定性 |
| 创建晚于修改 | 时间顺序不符合常规 | 较强信号,仍需排除解析错误 |
| 精度异常 | 时间整齐到秒或分钟 | 可辅助判断,单独出现的说服力弱 |
| 与日志冲突 | 文件时间与事件记录矛盾 | 先复核时区与时钟偏移再定性 |
交叉验证的关键是找独立来源:文件系统时间、日志时间、内存痕迹、备份与卷影副本分属不同机制,两条独立来源一致时结论才稳;同一工具的两次输出并不算两份证据。
不要在报告中直接写“时间被篡改”而不给依据。写成“存在时间异常,依据为 A、B 两点,另有 C 这一解释尚未排除”既保留了判断,也避免结论超出证据能支撑的范围。