Synth Daily

Fast16:比Stuxnet早五年的网络武器

一款名为 fast16 的高级网络武器在长达 21 年的时间里未被发现,其出现时间比著名的 Stuxnet 还要早五年。该恶意软件通过嵌入 Lua 脚本引擎,作为 Windows 服务进行传播,并利用内核驱动程序悄然篡改科学计算软件的浮点运算结果。这导致了核武器研发和工程模拟数据的损坏,而计算结果表面上看起来完全正常。其攻击目标包括伊朗的核武器模拟软件 LS-DYNA、中国的核反应堆结构分析软件 PKPM,以及水环境模拟软件 MOHID。该恶意软件与美国国家安全局(NSA)的方程式组织(Equation Group)有关联,其高度的隐蔽性使其长期未被发现,这警示我们需要使用独立的系统来验证关键计算结果。

早于 Stuxnet 的数学破坏者

在 Stuxnet 病毒被公认为首个旨在造成物理破坏的网络武器之前,fast16 已经存在了。它的编译时间戳为 2005 年 8 月 30 日,比 Stuxnet 的指挥控制服务器上线时间还早。与 Stuxnet 通过破坏物理设备(如离心机)不同,fast16 的目标是破坏计算本身。

科学家们运行核能与工程模拟,得到的输出看起来完全正常,每个数字都能对上,所有结果都合乎逻辑,但这一切都是蓄意制造的错误。

安全研究员基于一个线索发现了它:许多顶级的国家级恶意软件都内置了一个名为 Lua 的小型脚本引擎。研究员在旧的恶意软件样本库中寻找最早使用 Lua 的案例,最终找到了一个名为 svcmgmt.exe 的文件。该文件是已知最早嵌入 Lua 引擎的 Windows 恶意软件,它只能在单核处理器上运行,这进一步证实了其古老的起源。

精巧的三层攻击架构

Fast16 的运作框架分为三层,每一层都经过精心设计以实现其隐蔽和破坏的目的。

  • 第一层:载体 (svcmgmt.exe) 这是一个 Windows 服务包装程序,负责传播和部署。它可以通过网络共享进行自我复制,并根据接收到的指令执行不同操作,例如安装为服务或直接运行有效载荷。代码在运行前会检查机器上是否安装了卡巴斯基、赛门铁克等当时主流的安全软件,如果发现则会立即停止运行。

  • 第二层:蠕虫 该层负责在内网中横向移动。它利用了当时普遍存在的弱密码或默认管理员密码,通过标准的 Windows 服务控制和文件共享接口在不同机器间传播。

  • 第三层:内核驱动 (fast16.sys) 这是执行真正破坏的核心。该驱动程序在操作系统启动时加载,位置深于普通杀毒软件的监控范围。它会禁用 Windows 的预读缓存功能,迫使所有文件读取都必须经过它。

无声的计算篡改

fast16.sys 驱动程序是整个攻击中最关键的部分,它通过一种极其隐蔽的方式篡改计算结果。

  1. 识别目标: 它会监视所有被打开的可执行文件,专门寻找由特定 英特尔 C++ 编译器 生成的程序,因为这些程序中包含一个独特的识别字符串。

  2. 内存中修补: 当目标软件从磁盘读取时,驱动程序会拦截其 浮点运算 例程。浮点运算是所有高精度模拟计算(如爆炸模拟、结构强度分析)的数学基础。

  3. 注入错误逻辑: 驱动程序使用 101 条模式匹配规则,向这些计算例程中注入一小段 FPU 指令。这些指令会悄悄地改变内部计算数组中的值。

整个过程完成后,软件会像往常一样加载和运行,磁盘上的原始文件也未被触动。用户无法察觉任何异常,但他们得到的所有计算结果都是 错误的

明确的攻击目标

研究人员通过分析其篡改规则,确定了三个具体的软件目标:

  • LS-DYNA 970: 一款用于模拟爆炸、结构失效和高速撞击的软件。有证据表明,伊朗研究人员曾使用该软件进行与核武器引爆装置相关的研究。如果 fast16 感染了这些机器,科学家们所有的设计决策都将基于被污染的数据。

  • PKPM: 中国主要的建筑结构工程软件,由清华大学和中国建筑科学研究院开发。该软件也被用于核反应堆设施的抗震结构分析。这表明攻击目标可能不止一个国家。

  • MOHID: 一个开源的水文建模平台,用于模拟海岸水系统、大坝行为等。研究人员尚不清楚攻击者针对此软件的意图。

与 NSA 的关联

fast16 与美国国家安全局(NSA)的关联来自 2017 年 “影子经纪人”(ShadowBrokers) 泄露的一份文件。这份文件 drv_list.txt 是一个内部的“勿碰清单”,用于指导不同攻击小组避免干扰友方行动。

在这个清单中,fast16 旁边有一条特殊的注释: 1 "fast16","*** NOTHING TO SEE HERE - CARRY ON ***"

这条信息的意思是:如果你在目标系统上看到这个驱动,不要管它,继续你的任务,这是我们自己人的东西。

此外,代码中还发现了来自 70 和 80 年代 Unix 开发环境的旧式版本控制标记。这种古老的技术习惯表明,开发者拥有数十年在政府和军事计算环境中工作的深厚背景。

防护与启示

fast16 在公共数据库 VirusTotal 上存在了近十年,却几乎没有被任何杀毒引擎标记。这暴露了传统检测手段的局限性,也引发了更深层次的担忧:还有多少类似的未知武器正潜伏着?

对于关键领域的机构,安全建议是:

  • 独立验证: 在一个与潜在感染网络完全隔离的、干净的系统上重新运行关键计算,以验证结果的准确性。
  • 威胁狩猎: 主动在网络中寻找攻击指标,而不是被动等待警报。

fast16 的发现证明,最高级别的网络攻击不仅可以破坏物理世界,还可以通过无声地腐蚀数字世界的根基——数学——来达到其战略目的。