于2010年被发现的电脑蠕虫Stuxnet,是全球第一个专门针对关键基础设施工业控制系统的恶意程序,当时用于攻击伊朗位于纳坦兹的核能设施,渗透厂内的西门子SCADA系统,导致大量离心机损坏,重挫伊朗相关计划。然而,近期有网络安全公司发现了比Stuxnet更早出现的工控恶意程序。
网络安全公司SentinelOne披露了网络攻击框架Fast16,并指出其核心组件最早在2005年就已出现。其中的fast16.sys会针对性地攻击高精度计算软件,在内存中篡改程序代码,从而影响计算结果。值得注意的是,Fast16同样具备蠕虫机制,可自我传播,攻击者的目的是让整个设施产生错误的计算结果,削弱科学研究与工程成果,进而影响工业控制系统运行。该公司强调,Fast16比Stuxnet早出现5年,该恶意程序嵌入了自制的Lua虚拟机,比另一个采用类似手法的恶意软件Flame早了3年。目前,VirusTotal的防病毒引擎中仅有1个将其识别为有害。
针对这项调查的动机,SentinelOne注意到某些黑客组织持续依赖嵌入式脚本引擎构建模块化工具,并采用嵌入式Lua虚拟机打造可扩展的模块化平台,其中包括Flame、Animal Farm’s Bunny、PlexingEagle、Flame 2.0以及Project Sauron。因此,该公司怀疑这些工具可能存在共同的源代码基础,遂展开深入调查,并最终找到了Fast16的组件svcmgmt.exe。
该可执行文件看似是Windows 2000与XP时期通用控制台服务的包装函数(Wrapper),并内嵌了Lua 5.0虚拟机,包含多个模块,可直接绑定Windows NTFS文件系统、注册表、服务控制及网络API。其主要用途是加载fast16.sys——一个核心级别的系统驱动程序。尽管该组件无法在Windows 7及以上版本操作系统中运行,但它具备可应用规则的代码补丁功能,以及超越文件系统I/O的控制能力。SentinelOne认为,Fast16已不仅仅是一个普通的Rootkit。
黑客锁定的目标是什么?该公司推测,很可能是2000年代中期的高精度工程仿真工具,包括LS-DYNA 970、PKPM和MOHID,这些软件广泛用于碰撞测试、结构分析和环境建模。
另一方面,SentinelOne在二进制文件内部发现了早期Unix系统开发文化的痕迹,其中包括1970至1980年代的Unix源代码控制系统(Source Code Control System,SCCS)与修订控制系统(Revision Control System,RCS)。由于这些技术在2000年代中期的Windows代码中极为罕见,表明相关工具的开发者并非典型的Windows程序员。由于这些做法源自当时安全性更高的Unix环境,该公司推测,Fast16可能与政府机构或军事单位的项目有关。