一个名为 fast16 的高级网络破坏框架在2005年就已存在,比著名的 Stuxnet 早五年。该框架通过在内存中修改高精度计算软件的代码,专门针对使用 Intel 编译器的工程软件,如 LS-DYNA 和 PKPM。它的核心目的是故意篡改计算结果,影响核研究、物理模拟等国家关键领域。fast16 利用嵌入式 Lua 虚拟机和内核驱动实现复杂的攻击,并具备自我传播能力,其高度的隐蔽性使其长期未被发现,这表明国家级的网络破坏技术早已成熟,并迫使我们重新评估高级网络攻击的演进历史。
一个更早的起源
调查始于一个架构上的猜想:许多顶级黑客组织都依赖嵌入式脚本引擎来实现模块化。为了追溯这种开发风格的源头,研究人员开始寻找在 Windows 恶意软件中最早使用嵌入式 Lua 引擎的复杂案例。
Lua 是一种轻量级脚本语言,其在 C/C++ 环境中的可扩展性使其成为构建高端恶意软件框架的理想选择。通过在2000年代中期的恶意软件样本库中寻找 Lua 的特征指纹(如 \x1bLua),一个看似普通的2005年文件 svcmgmt.exe 浮出水面。
- 表面普通的服务程序:
svcmgmt.exe看起来像一个 Windows XP 时代的通用控制台服务。 - 内置高级功能: 深入分析发现,它内置了一个 Lua 5.0 虚拟机和一个加密的字节码容器。
- 强大的扩展能力: 开发者扩展了 Lua 环境,使其能够直接调用 Windows 的文件系统、注册表、服务控制和网络 API。
这个名为
svcmgmt.exe的文件本身就是一个早期的高端植入体,一个将其大部分逻辑交由加密 Lua 字节码处理的模块化服务。
最关键的线索隐藏在二进制文件的字符串中:一个指向内核驱动 fast16.sys 的 PDB 路径 C:\buildy\driver\fd\i386\fast16.pdb。这个发现将一个用户态的程序与一个功能强大的内核组件联系了起来。
与“影子经纪人”的联系
2017年4月,在 fast16.sys 编译时间戳的近12年后,"fast16" 这个名字出现在了“影子经纪人”泄露的 NSA 文件中。在一个名为 drv_list.txt 的文件中,列出了一系列驱动程序名称,用于指示网络战操作员在目标系统上遇到这些“友军”或竞争对手的植入物时应当如何行动。
对于 fast16,给出的指示非常独特:
fast16 *** Nothing to see here – carry on ***(fast16 *** 这里没什么好看的——继续干活 ***)
这个法医证据将2005年的恶意软件、其隐蔽的内核驱动有效载荷与 NSA 操作员使用的冲突规避签名直接联系起来,证实了其国家级背景。
攻击框架的结构
svcmgmt.exe 是一个适应性极强的“载体”模块,根据不同的命令行参数执行不同的功能:
- 作为服务运行: 在没有参数的情况下,它作为一个标准的 Windows 服务运行。
- 传播与安装: 带有
-p参数时,它会进行自我传播和安装。 - 执行 Lua 代码: 使用
-i或-r参数时,它会执行内部的 Lua 代码。 - 代理模式: 当参数为文件名时,它会以代理模式运行。
这个载体内部存储了三个独立的有效载荷,包括处理配置、传播和协调逻辑的加密 Lua 字节码,以及核心破坏工具 fast16.sys 内核驱动。这种设计使得攻击者可以在不改变外部载体的情况下,灵活调整其攻击目标和操作。
该框架还包含被称为“wormlets”(蠕虫体)的自我传播模块。在特定配置下,它会:
- 准备配置,定义目标 IP 范围。
- 将自身安装为服务并启动。
- 根据配置部署
fast16.sys内核驱动。 - 释放“蠕虫体”,通过网络共享和默认或弱密码在局域网内寻找其他服务器进行传播。
隐蔽与规避技术
在2005年,fast16 就表现出了高度的环境感知能力。在安装前,它会检查一系列安全产品的注册表项是否存在,如果发现则中止安装,以避免在受监控的环境中暴露。它检查的产品列表包括:
- Symantec
- Sygate Personal Firewall
- TrendMicro
- Zone Labs
- F-Secure
- McAfee
- Kaspersky Anti-Hacker
- Panda Software
这表明其设计目标是长期的、隐蔽的潜伏,而不是大规模的快速传播。
核心破坏工具:fast16.sys
fast16.sys 是该框架中最强大的部分。它是一个在系统启动时加载的文件系统驱动程序,能够拦截和修改从磁盘读取的可执行代码。
- 早期加载: 它作为一个文件系统驱动程序,在系统启动的早期阶段加载,位于 NTFS、FAT 等文件系统之上。
- 延迟激活: 尽管启动时就已加载,但其核心的代码注入引擎只在
explorer.exe(桌面环境) 启动后才被激活,以避免影响系统启动性能。 - 精准目标识别: 它专门寻找满足以下两个条件的文件:
- 文件名以
.EXE结尾。 - 在最后一个 PE 节头之后,存在以
Intel开头的字符串。
- 文件名以
这一选择逻辑明确指向了使用 Intel C/C++ 编译器构建的可执行文件,表明攻击者对他们目标的开发工具链了如指掌。
破坏手段:篡改浮点运算
fast16.sys 的核心是一个基于规则的内存补丁引擎。它包含101条规则,用于匹配和替换代码。与普通恶意软件不同,其注入的一个代码块并非用于劫持执行流程,而是一段复杂的浮点运算单元 (FPU) 指令。
这段代码的唯一目的是篡改高精度的数学计算。通过对内部数组中的值进行缩放,它能以一种难以察觉的方式引入微小但系统性的错误。
这种破坏是战略性的。通过污染物理世界的计算结果,该框架可以:
- 破坏或延缓科学研究项目。
- 逐步降低工程系统的可靠性。
- 甚至导致灾难性损坏。
为了防止计算结果在另一台干净的系统上被验证,其蠕虫传播能力确保了整个设施内的多台计算机都会产生同样被篡改的错误结果。
分析表明,其潜在目标包括以下用于高精度模拟和工程分析的软件套件:
- LS-DYNA: 用于碰撞测试、爆炸模拟等,曾在与伊朗核武器开发相关的计算机建模研究报告中被提及。
- PKPM: 在中国广泛使用的建筑结构设计和分析软件。
- MOHID: 用于海洋和沿海水域建模的开源系统。
结论:改写历史的数字“化石”
fast16 的发现迫使我们重新评估网络战的历史。它证明了:
- 针对物理世界的国家级网络破坏行动在2000年代中期就已经完全成熟并投入实战。
- 嵌入式脚本引擎、基于编译器的精准目标定位和内核级补丁等先进架构,其出现时间远早于 Stuxnet 等后来广为人知的攻击家族。
- 至今,这个近20年前的恶意软件载体在 VirusTotal 上仍然几乎没有被任何杀毒引擎检测出来,凸显了其卓越的隐蔽性。
fast16 是一个沉默的预兆,它成功地在阴影中运作了数十年,直到今天才被揭示,它代表了一种通过软件重塑物理世界的新形式国家力量。