一个匿名GitHub账号,发布了一份号称是震网(Stuxnet)恶意软件的"忠实重建版"。这款蠕虫当年据称瘫痪了伊朗近五分之一的离心机,直到被发现才停下。

原始源码从未公开过。而"Stuxnet"这个名字,本身也不是开发者起的——是赛门铁克在病毒被发现数周后给它安上的。

打开网易新闻 查看精彩图片

这份代码目前未经证实、未经测试。有用户指出,它很可能是用AI生成的、对原始二进制文件行为的模仿,而这些行为早已被大量文档记录在案。

它从哪冒出来的

这个仓库是通过一条 Show HN 帖子浮出水面的,随后被主流媒体跟进报道,焦点都落在那个至今身份不明的研究者反向工程出来的代码上。

但要说清楚一点:震网的原始源码,无论是谁写的,从来没有泄露过,上周也没有泄露。

仓库的 README 里写得很直白——它是从反编译的二进制文件里拼装出来的重建版。而那些二进制样本,自2010年6月起就在公开渠道流通了。当时白俄罗斯安全公司 VirusBlokAda 从一位伊朗客户的机器上提取了样本。

此后的一切,包括赛门铁克的 W32.Stuxnet Dossier 和 Ralph Langner 的《To Kill a Centrifuge》,都是建立在这些样本以及它们在测试环境中的反应之上的。

这不是第一次,也不会是最后一次

用可读的C语言代码去复刻震网,此前就有人干过:

  • 恶意软件研究员 Amr Thabet 发布过 MRxNet 后门的反编译版本,版权标注为2010至2011年
  • Christian Roggia 随后发布了名为 open-myrtus 的投放器反编译版,版权标注为2012至2014年,之后被不断 fork,衍生出一长串仓库

这里有个讽刺的地方:如果这份代码真是那款著名恶意软件的忠实复刻,它就不会在多个位置——包括注册表键——提到"Stuxnet"这个词。

因为这个代号很可能根本不是开发者用的。赛门铁克最初给它的标识是 W32.Temphid,后来才改成了 Stuxnet。

开发者们并不买账

最早把这个仓库带到公众视野的,是一个叫 Sadpainy 的用户发的帖子。帖子下面开发者的看法相当分裂,不少人直接给它贴上"AI垃圾"或"假货"的标签,认为它只是把已有的几个仓库拼凑在一起。

不过仓库的 about 页面声称,这是研究者出于教育目的复现的,并且只设计为在 Windows XP 和 Windows 7 上运行。

想测试它的人,虚拟机可能是最稳妥的选择——尤其是考虑到震网具备物理损坏硬件的能力。

这件事也顺带提醒了一件事:一个失控的AI代理如果没人管,能做出什么。