在 USN 日志中检测勒索软件活动

即便二进制已消失,勒索软件依然会在 $UsnJrnl:$J 中留下非常独特的指纹。我们解读要查找的模式以及对应的 reason 代码组合。

作者: 阅读约 2 分钟

勒索软件是 USN 日志里你能读到的最清晰的信号之一。无论操作者在上游做了什么 — 凭据窃取、横向移动、持久化植入、卷影副本删除 — 加密阶段都以一种均匀、高量、单调递增的方式触及文件系统,即使数月之后仍能从周围噪声中突显出来。我应对过的每一个操作者都尝试过伪装杀伤链上的某一环。还没有人想出怎么伪装"五分钟内加密数万个文件"。

本文是查找该模式的实操手册。前提是你已经提取了 $J 并解析完成,且 reason 位掩码 不再陌生。

规范的加密阶段模式

大多数现代勒索软件(LockBit 3.0、BlackCat/ALPHV、Royal、Akira、各种 Conti 后裔、Play、Black Basta)对每个文件遵循相同的三步配方:

  1. 以读方式打开文件。
  2. 就地覆盖内容,或在旁边写一个新文件再删除原文件。
  3. 重命名加上一个标记扩展名(.locked.lockbit、8 至 16 字符随机串,或某些家族干脆无扩展名)。

这在日志中按文件呈现为:

DataOverwrite | Close
DataOverwrite | Close
...           ← 每个写入块一条
RenameOldName | Close   (旧:document.docx)
RenameNewName | Close   (新:document.docx.locked)

在几分钟内跨数千个文件发生。两个诊断信号是:

短窗口内的 DataOverwrite 爆发。 正常的 Windows 活动很少在非数据库文件上产生持续的 DataOverwrite。Office 保存、浏览器缓存压缩和 IDE 重建会产生瞬时尖峰;而勒索软件产生一个单调的底座,在主机上无文件可加密或操作者停止二进制之前都不下来。

带有紧密聚类新名称后缀的大量 RenameNewName 事件。 加密期间,RenameNewName 对总活动文件的比例会暴涨。聚类签名 — 同一固定字符串,或同一 .{8} 随机模式,出现在窗口内 80%+ 的重命名上 — 正是把勒索软件与任何合法工作负载区分开的依据。

这主要对应 MITRE ATT&CK 中的 T1486 Data Encrypted for Impact,相邻的日志证据覆盖 T1490(Inhibit System Recovery)与 T1485(Data Destruction)。

经得起法庭考验的检测配方

在解析过的日志中分步进行:

  1. 按分钟做 DataOverwrite 直方图。 按分钟分桶,寻找断崖。基线 Windows 主机的 DataOverwrite 每分钟为个位数。加密会拉到 50–500 倍并持续。绘图或在电子表格中透视 — 形状立刻能告诉你答案。
  2. 按新扩展名对 RenameNewName 聚类。 按新名称的扩展名分组,或者对新名称使用正则。如果一个窗口内 80% 以上的重命名共享相同后缀,或匹配同一长度的随机模式,这就是加密器。
  3. FileDelete | Close 与"同词干、扩展名不同"的 FileCreate 配对。 一些家族(包括 LockBit 较旧的变体)会把密文写到新文件并删除原文件。寻找一个其词干与最近删除的某个文件相匹配的 FileCreate,二者在同一墙钟秒内。在 create 上看到与某次最近重命名相同的 FileReferenceNumber 是决定性的。
  4. 通过 $MFT 回溯父目录。 对受影响文件解析其父引用。勒索软件会扫过用户配置文件、映射的网络驱动器和 Users\Public\。范围只限于单一子目录的,更可能是 Office 自动保存或备份工具出问题。

本页的解析器直接公开了按 reason 过滤。第 1 步设为 DataOverwrite,第 2 步设为 RenameNewName。第 3、4 步需要导出 CSV 并做透视表。

真实数据里的样子

我处理过的一个 LockBit 3.0 案件中经过脱敏的片段:

2024-04-12T03:14:08Z  DataOverwrite Close   C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z  DataOverwrite Close   C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z  DataOverwrite Close   C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z  RenameOldName Close   C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z  RenameNewName Close   C:\Users\ana\Desktop\notes.docx.HLJkNskOq
2024-04-12T03:14:08Z  DataOverwrite Close   C:\Users\ana\Desktop\quarterly.xlsx
...

目录中每个文件都在同一墙钟秒内被加密。新扩展名是一个均匀的九字符随机字符串 — 第 2 步强烈的聚类信号,也是 LockBit 3.0 用来把密文绑定到操作者特定密钥流的标记。

加密阶段之外

日志也会捕捉到爆发前后的准备与清理行为。

卷影副本删除$J 中不可直接见 — VSS 状态位于由 $WSC 管理的命名空间 — 但操作者启动的 vssadmin.exewmic.exe shadowcopy deletewbadmin.exe delete catalogbcdedit.exe /set 调用都会触碰 \Windows\Temp\\Users\<u>\AppData\Local\Temp\ 中的临时文件。这些 FileCreate 记录在加密爆发的前一刻出现。配合 Sysmon 事件 1 取得真正的进程树。

发现性扫描对日志大多不可见 — 只读的目录枚举不产生任何东西。但工具落地是可见的。adfind.exePsExec.exeBloodHound 的 SharpHound 输出以及类似工具,会在其工作目录中产生 FileCreate 事件,通常是 \ProgramData\\Users\Public\\Users\<u>\AppData\Local\Temp\

赎金信投递。 每个现代家族都会在每个被加密目录里放置一份说明文件。README.txtHOW_TO_DECRYPT.htmlrestore-my-files.txt,或家族特有的名字。在同一分钟内、跨许多父目录出现同名文件的 FileCreate,是能捕获其中绝大多数的偷懒正则。

加密前的暂存。 一些操作者会在加密前进行外泄暂存 — 见外泄检测一文。在加密爆发前一小时内查找带 .zip.7z.rar 扩展名的归档 FileCreate 事件。

日志不会告诉你的事

日志记录变化,不记录行为主体。要把用户或进程挂到加密爆发上:

  • Security.evtx 事件 4663(对象访问) — 需要提前配置 SACL,而绝大多数环境并未配置。
  • Microsoft-Windows-Sysmon%4Operational.evtx 事件 11(文件创建)和事件 1(进程创建) — 如果部署了 Sysmon,这就是黄金标准。
  • PrefetchAmCache,用于即便操作者已经删除勒索软件二进制后,仍能识别该二进制本身。

更广泛的响应实操,CISA 的 #StopRansomware 指南 是权威参考。

把勒索软件与合法爆发区分开

少数真实工作负载在错误的过滤下会表面上像勒索软件:

BitLocker 首次转换产生持续的 DataOverwrite 但没有 RenameNewName。勒索软件总是重命名。如果你的 RenameNewName 计数是平的,那不是勒索软件。

备份软件(Veeam、Macrium、Acronis)在目标卷上产生 DataOverwrite,而不是用户的 DocumentsDesktop。交叉核对用户和路径。

Office 自动保存与 Visual Studio 重建会尖峰几秒钟然后停止。勒索软件是单调的。按分钟的直方图会把这一点显示得很清楚。

磁盘镜像还原写入大量数据,但目的路径是 \\?\Volume{...} 形式的设备路径,不是用户配置目录。父目录解析会捕获到这一点。

如果你的检测逻辑在健康基线下产生零告警,那它的规格不足。你想要的信号是 DataOverwrite 速率、RenameNewName 速率与相同扩展名聚类的组合 — 而不是其中任何单一项。

延伸阅读

  • CISA,#StopRansomware 指南 — 端到端响应实操的权威参考。
  • The DFIR Report 的 LockBit 3.0 走查 以及类似的长篇入侵分析 — 关于一次真实勒索软件案件墙钟节奏的最佳公开来源。
  • Microsoft Defender Research, Ransomware-as-a-service — 作为操作者视角的上下文,有助于理解你的日志证据到底代表了什么。