只要在 Windows 取证上花过一点时间,USN 的 reason 位掩码 就会变成肌肉记忆。它是 NTFS 在每条日志记录上设置的 32 位字段,用来总结一个文件刚刚发生了什么变化。这些位不会告诉你 全部 — 它们是叠加的,而非互斥的 — 但合在一起就能给出一幅相当精确的生命周期图像。
各个位
| 标志 | 十六进制 | 实际含义 |
|---|---|---|
DataOverwrite | 0x00000001 | 主数据流的某个区域被覆写 |
DataExtend | 0x00000002 | 主数据流变长 |
DataTruncation | 0x00000004 | 主数据流变短 |
NamedDataOverwrite / Extend / Truncation | 0x10 / 0x20 / 0x40 | 同上,但作用于替代数据流 |
FileCreate | 0x00000100 | 创建了新文件或目录 |
FileDelete | 0x00000200 | 文件被移出命名空间 |
EaChange | 0x00000400 | 扩展属性变更 |
SecurityChange | 0x00000800 | ACL/所有者变更 |
RenameOldName | 0x00001000 | 重命名的「变更前」一半 |
RenameNewName | 0x00002000 | 重命名的「变更后」一半 |
IndexableChange | 0x00004000 | 可索引标志翻转 |
BasicInfoChange | 0x00008000 | 时间戳、属性或压缩状态变更 |
HardLinkChange | 0x00010000 | 添加或移除了硬链接 |
CompressionChange | 0x00020000 | NTFS 压缩状态翻转 |
EncryptionChange | 0x00040000 | EFS 状态变更 |
ObjectIdChange | 0x00080000 | 设置或清除了 Object ID |
ReparsePointChange | 0x00100000 | 重解析点变更 |
StreamChange | 0x00200000 | 替代数据流被添加/重命名/删除 |
Close | 0x80000000 | 产生此变更的句柄已被关闭 |
Close 比较特殊:NTFS 会把同一句柄下的连续操作合并起来,只在句柄消失后才发出一条带 Close 的最终记录。如果你看到一条 没有 Close 的记录,那是系统在冲刷中间状态 — 有用,但带 Close 的那条才是权威总结。
现实中常见的模式
有几种模式频繁到你应该一眼就能认出:
- 应用程序写出的新文件。
FileCreate | DataExtend→DataExtend | Close→BasicInfoChange | Close。最后一条是文件在关闭时被盖上 mtime。 - 跨目录重命名。 同一
FileReferenceNumber上有两条记录:RenameOldName | Close,然后RenameNewName | Close。两条之间的父引用不同 — 这就是你重建移动路径的方法。 - 原子的「写临时文件再改名」保存。 许多编辑器把内容写到临时文件,再将其重命名覆盖到目标。你会看到临时文件上的
FileCreate、原文件上的FileDelete | Close、临时文件上的RenameNewName | Close。 - 勒索软件「先加密后改名」。 覆盖数 MB 的
DataOverwrite记录,紧随其后的是带新扩展名的RenameNewName | Close。DataOverwrite的数量和节奏,往往是你最先在磁盘上察觉到样本的地方。 - 杀毒软件隔离。 紧邻一条最近的
FileCreate之后出现FileDelete | Close,都挂在同一个 MFT 表项下。即便文件本身已消失,日志依然能提供 AV 触碰过该文件的铁证。
这些位不会告诉你的
reason 位掩码讲的是 文件本身,而非行为主体。不包含用户、进程 ID、命令行。要把行为主体与每次操作关联起来,把日志与 Security.evtx (4663 对象访问) 或 Microsoft-Windows-Sysmon/Operational 结合。USN 提供 何时 与 何事;其他日志提供 何人。
实用的阅读流程
打开一份已解析的日志后:
- 过滤
FileCreate,看看在时间窗口中真正新增了什么。 - 查找
RenameNewName,捕捉移动和「另存为」式的模式。 - 把
DataExtend的数量按时间作图 — 大批量写入 (备份、加密、外泄前的暂存) 会一眼显现出来。 - 优先阅读带有
Close的记录;把中间记录当作辅助证据。
本站的 Web 应用支持按任意 reason 组合过滤,因此步骤 1-3 都只是一次点击的事。