取证时间线只回答一个问题:这台机器上发生了什么,顺序如何?在 NTFS 上,回答这个问题最密集的单一来源就是 $MFT。卷上每一个文件与目录都会产生四到八个带时间戳的事件 —— 而它们全都在一份文件里。
每条记录给你什么
每条 MFT 记录都有两个携带时间戳的属性:
$STANDARD_INFORMATION(SI)—— 创建、修改、访问、MFT 修改$FILE_NAME(FN)—— 创建、修改、访问、MFT 修改
每个时间戳都可以单独成为一条时间线事件。单个文件最多产生八行:「SI 创建」「FN 创建」「SI 修改」等等。遍历整个 MFT,每个时间戳输出一行,就能在一次扫描里得到一份覆盖该卷所记得的所有文件事件的「超级时间线」。
输出该长什么样
经典格式是 mactime —— 一行一条事件,按时间戳排序:
2026-05-15T10:23:01Z|FILE|allocated|/Users/alice/notes.txt|SI created
2026-05-15T10:23:01Z|FILE|allocated|/Users/alice/notes.txt|FN created
2026-05-15T10:24:18Z|FILE|allocated|/Users/alice/notes.txt|SI modified
六列 —— 时间戳、类型、状态、路径、属性、事件 —— 就这样,时间线已经可以拿去 grep 或可视化了。
交叉印证以获得上下文
$MFT 本身只告诉你文件何时发生过改变,不告诉你为什么。把它跟下面的一起看:
$UsnJrnl—— 文件系统操作的顺序$LogFile—— 崩溃前几秒钟内事务级别的细节- Prefetch(
.pf)文件 —— 程序执行的证据 - 注册表事务日志 —— 配置变更
把这些来源合并后的时间线,即使个别日志被清空,也常常能逐分钟重建攻击者的会话。
快速发现异常
时间线一旦排序好,异常就显眼起来:
- 凌晨 3 点出现一阵文件修改紧接着删除 —— 经典的勒索软件准备阶段;
- 一个久未触碰的系统文件突然带上新的修改时间 —— 可能是注入持久化;
- 数百个文件落在同一秒被创建 —— 安装器足迹或批量铺设。
MFT 本身并不解释这些信号,它只是把它们摆出来。解释,是分析师的工作。