SentinelOne 研究人员 Vitaly Kamluk 和 Juan Andrés Guerrero-Saade 在 Black Hat Asia 披露了一个老样本:fast16。它的核心二进制时间戳是 2005 年 8 月 30 日,比后来被大众记住的 Stuxnet 破坏行动更早。

反常点不在“又发现一个古董恶意软件”。fast16 最麻烦的地方,是它不急着让设备停摆,也不制造爆炸现场。它盯住的是工程仿真软件,把浮点计算相关结果悄悄改掉。

如果 Stuxnet 让人看见网络武器可以打坏机器,fast16 提醒的是另一件事:网络武器也可以让机器正常运行,让专家相信错误结果。

fast16 披露了什么

关键信息可以压到一张表里:

问题已披露信息直接影响
时间线核心二进制时间戳为 2005 年 8 月 30 日工业网络战的成熟时间可能比公众认知更早
载体svcmgmt.exe,可安装服务、直接运行、通过网络共享传播适合当年内网环境里的低噪声横向移动
技术结构内嵌 Lua 5.0 虚拟机、加密字节码、fast16.sys 内核驱动更像可编排行动框架,不像普通蠕虫
核心动作拦截磁盘读取,篡改浮点计算例程原程序不变,运行正常,输出被污染
疑似目标LS-DYNA 970、PKPM、MOHID指向工程、结构、水文和环境建模场景
归属线索ShadowBrokers 泄露的 Equation Group/NSA 相关 drv_list.txt 出现 fast16,并标注 “NOTHING TO SEE HERE - CARRY ON”有关联线索,但不能直接钉死归属
检测结果样本 2016 年已上传 VirusTotal,近十年几乎未被杀软识别传统检测对老式高端定制武器存在盲区

技术链路并不花哨,但很阴。

外层 svcmgmt.exe 像服务管理工具。参数不同,行为不同:传播、安装、运行。里面藏着 Lua 字节码、一个记录拨号/VPN 连接信息的 DLL,以及真正动手的 fast16.sys

fast16.sys 是内核驱动。它加载后卡在存储层上方,拦截文件读取。研究人员称,它会寻找由 Intel C++ compiler 编译的软件特征,再用 101 条模式匹配规则改写浮点计算相关例程。

要害在这里:磁盘上的原文件没变。软件能打开,流程能跑,界面也正常。

只是结果可能错了。

它伤的是工程软件的信任链

SentinelOne 根据规则匹配指出,疑似目标包括 LS-DYNA 970、PKPM、MOHID。

LS-DYNA 常用于爆炸、结构失效、高速冲击等建模。公开资料显示,它与核武器相关爆炸建模研究存在交集。

PKPM 是中国长期使用的结构工程软件,也出现在核设施抗震结构分析的公开论文中。

MOHID 则用于海岸、水体、沉积物、坝体等水文和环境模拟。

这里必须收住。现有材料不能证明 fast16 已确认攻击伊朗或中国,也不能证明它造成过物理事故。能说的是:这些目标软件和核、工程、基础设施相关研究存在公开交集,实际部署对象还没有完全确认。

但这已经足够麻烦。

工程仿真的权威,不来自界面,也不来自某一次输出。它来自一条信任链:模型可信、软件可信、计算环境可信、专家复核可信。

fast16 攻击的正是这条链里最难被肉眼发现的一环。

《左传》里那句“皮之不存,毛将焉附”放到这里很贴切。皮就是计算可信度。皮没了,后面的工程判断、设计迭代、审查结论都会悬空。

对网络安全和工控安全团队,这事不能只当样本分析看。更现实的动作是三件:

  • 盘点仿真工作站、工程软件服务器和旧版 Windows 环境,尤其是长期离线、很少重装、没人敢动的机器。
  • 检查内核驱动、服务项、网络共享传播痕迹,而不是只盯办公终端和边界设备。
  • 对关键仿真结果做独立复算.换干净环境,换工具链,必要时换不同实现路径。

这类校验听起来笨,也费钱。可关键基础设施里,笨办法常常是最后一道门闩。

对关注科技地缘政治的人,fast16 的意义也不是“谁又黑了谁”这么简单。它说明高端网络行动的目标可以不是摧毁资产,而是改写对方的工程认知。

这比短期破坏更难归因,也更难结算后果。

真正该观察的是检测体系怎么补课

我不太买账把讨论全部压到归属上。

ShadowBrokers 泄露材料与 Equation Group 存在线索关联,drv_list.txt 里那句 “NOTHING TO SEE HERE - CARRY ON” 也很扎眼。但情报归属从来不是外部研究能轻易钉死的事。证据够到哪里,判断就停在哪里。

更值得追的是检测失灵。

样本 2016 年已经上传 VirusTotal,却近十年几乎没被杀软识别。这不是某一家厂商丢脸。它暴露的是一类老问题:安全产品擅长发现已知恶意文件、异常行为和高噪声攻击,却不擅长处理低频、定制、只在特定工程软件上触发的武器。

fast16 的设计很克制。老式服务、网络共享、内核驱动、软件指纹、特定计算例程。它不追求到处开花,只求在对的机器上动一下刀。

问题也在这里。一个设施里的工作站如果都被同一类驱动污染,内部复算只会得到同样错误的答案。审查流程看似完整,实际只是把错误多盖了几个章。

接下来要看四个变量:

变量该看什么为什么重要
安全厂商响应是否补签名、补 YARA/行为规则、补旧样本回溯能看出检测体系是否真能吸收这类教训
工控团队排查是否把仿真环境纳入威胁狩猎范围很多工程工作站长期不在常规 EDR 视野里
工程验证流程是否建立独立环境复算和工具链交叉验证这是对抗“结果污染”的核心手段
归属证据是否有更多样本、日志或泄露材料互相印证没有新增证据,就不该把线索写成定案

历史上,铁路、电力、报业、电视、互联网平台,每一种基础设施成熟后,都会出现一件类似的事:控制权从看得见的设备,转向看不见的规则和接口。

工业软件也是这样。早期大家怕机器被打坏。现在更该怕的是,机器没坏,规则被改了,数字还很像真的。

fast16 的价值不在年代感。它把一个不舒服的问题摆回桌面:关键系统的安全,不能只问“有没有宕机”,还要问“我们凭什么相信这个结果”。