计算机安全专家经常会对主流媒体的报道感到惊讶。有时这毫无意义。为什么这种特定的数据泄露、漏洞或蠕虫而不是其他数据泄露、漏洞或蠕虫?有时这是显而易见的。就Stuxnet而言,有一个很棒的故事。
作为故事据说,Stuxnet蠕虫是由一个政府设计和发布的,美国和以色列是最常见的嫌疑人,专门攻击伊朗的布什尔核电站。怎么会有人不报告呢?它结合了计算机攻击、核能、间谍机构和一个被世界大多数国家鄙视的国家。这个故事唯一的问题是,它几乎完全是猜测。
下面是我们要做的知道:Stuxnet是一种感染Windows计算机的Internet蠕虫。它主要通过USB记忆棒传播,使其能够进入通常不连接到互联网的计算机和网络。一旦进入网络,它就会使用各种机制传播到网络中的其他机器,并在感染这些机器后获得特权。这些机制包括已知和修补的漏洞,以及四个“零日漏洞”:蠕虫发布时未知和未修补的漏洞。(所有感染漏洞都已修补。)
Stuxnet实际上并没有在那些被感染的Windows计算机上做任何事情,因为它们不是真正的目标。Stuxnet寻找的是西门子制造的一种特殊型号的可编程逻辑控制器(PLC)(新闻界通常将其称为SCADA系统,这在技术上是不正确的)。这些是小型嵌入式工业控制系统,运行各种自动化过程:在工厂车间、化工厂、炼油厂、管道,当然还有核电厂。这些PLC通常由计算机控制,Stuxnet寻找西门子SIMATIC WinCC/Step 7控制器软件。
如果找不到,它什么也不做。如果是这样,它会使用另一个未知且未修补的漏洞感染它,这是控制器软件中的漏洞。然后,它读取并更改受控PLC中的特定数据位。如果不知道PLC正在做什么以及它是如何编程的,就不可能预测这种情况的影响,而且编程可以根据应用程序的不同而不同。但是这些变化是非常具体的,导致许多人认为Stuxnet是针对一个特定的PLC或一组特定的PLC,在特定的位置执行特定的功能,Stuxnet的作者确切知道他们的目标是什么。
它已经感染了50000多台Windows电脑,西门子已经已报告14个感染控制系统,其中许多在德国。(这些数字一输入就已经过时了。)我们不知道Stuxnet造成了什么物理损坏,尽管有传言说是这样的负责的印度INSAT-4B卫星7月故障。我们相信它确实感染了布什尔植物。
所有反病毒程序都会检测并删除Windows系统中的Stuxnet。
Stuxnet于6月底首次被发现,尽管有猜测称它是在一年前发布的。随着蠕虫的发展,它变得非常复杂,并且随着时间的推移变得更加复杂。除了利用多个漏洞外,它还将自己的驱动程序安装到Windows中。当然,这些都需要签名,但Stuxnet使用的是被盗的合法证书。有趣的是,被盗证书于7月16日被吊销,7月17日发现了一个带有不同被盗证书的Stuxnet变体。
随着时间的推移,攻击者替换掉了不起作用的模块,并用新模块替换它们——也许是在Stuxnet到达预定目标时。这些证书首次出现在1月份。USB传播,三月。
Stuxnet有两种自我更新的方法。它会检查两个控制服务器,一个在马来西亚,另一个在丹麦,但也使用对等更新系统:当两个Stuxnet感染病例相遇时,它们会比较版本,并确保它们都有最新的版本。它的终止日期也是2012年6月24日。在那一天,蠕虫将停止传播并删除自身。
我们不知道谁写了Stuxnet。我们不知道为什么。我们不知道目标是什么,也不知道Stuxnet是否达到了目标。但你可以看到为什么有这么多猜测,以至于它是由政府创建的。
Stuxnet并不像一个犯罪蠕虫。它不会随意传播。它不会窃取信用卡信息或帐户登录凭据。它不会将受感染的计算机聚集到僵尸网络中。它使用了多个零日漏洞。犯罪集团会更聪明地创建不同的蠕虫变体,并在每个变体中使用一个。Stuxnet进行破坏。它不会像意图敲诈勒索的犯罪组织那样威胁破坏活动。
Stuxnet的创建成本很高。据估计,八到十个人花了六个月的时间来写作。还有实验室设置——任何遇到这些麻烦的组织都会在发布之前对其进行测试,并进行情报收集,以准确了解如何瞄准它。此外,零日利用也很有价值。它们很难找到,而且只能使用一次。无论是谁写的Stuxnet都愿意花很多钱来确保它打算做的任何工作都能完成。
然而,这些都没有指向伊朗的布什尔核电站。据我所知,这个谣言是由拉尔夫·兰纳,来自德国的安全研究员。他将他的理论称为“高度推测性”,并主要基于以下事实:伊朗感染人数异常高(有传言称伊朗感染人数在任何国家中都最多,这似乎不是真的),布什尔核电站是一个多利的目标,以及感染率高的其他一些国家——印度、印度尼西亚、,巴基斯坦和布什尔的同一个俄罗斯承包商也参与其中。这一传言传到了电脑媒体,然后又传到了主流媒体,在那里它成为了公认的故事,没有任何最初的警告。
一次理论不过,它很容易找到更多证据。单词“myrtus”出现在蠕虫中:编译器可能是偶然留下的工件。那是桃金娘。当然,这并不意味着德鲁伊写了Stuxnet。根据这个故事,它指的是王后以斯帖,也被称为哈达萨;她在公元前4世纪将波斯犹太人从种族灭绝中拯救出来。“Hadassah”在希伯来语中的意思是“桃金娘”。
Stuxnet还将注册表值设置为“19790509”,以提醒Stuxnet的新副本计算机已被感染。很明显,这是一个日期,但故事并没有关注当天发生的无数大小事情,而是强调这是指波斯犹太人哈比卜·埃尔加纳因为以色列从事间谍活动而在德黑兰被处决的日期。
当然,这些标记可以指向以色列作为作者。另一方面,Stuxnet的作者非常彻底,没有在代码中留下线索;这些标记可能是有意陷害以色列的人故意植入的。或者他们可能是以色列故意种植的,他们想让我们认为他们是被想陷害以色列的人种植的。一旦你开始沿着这条路走,就不可能知道什么时候该停下来。
在Stuxnet中找到的另一个数字是0xDEADF007。也许这意味着“死傻瓜”或“死脚”,这是指飞机引擎故障。也许这意味着Stuxnet正在试图导致目标系统失败。也许不是。尽管如此,一个旨在造成特定破坏的目标蠕虫似乎是最有可能解释。
如果是这样的话,为什么Stuxnet的目标如此草率?为什么Stuxnet意识到自己不在目标网络中时不擦除自己?当它通过U盘感染网络时,它应该只传播到另外三台计算机,并在21天后自我擦除,但它没有做到这一点。编程错误或代码中的功能未启用?也许我们不应该对目标进行逆向工程。通过允许Stuxnet在全球传播,其作者在全球范围内造成了间接损害。从外交政策的角度来看,这似乎很愚蠢。但也许Stuxnet的作者并不在意。
我的猜测是,Stuxnet的作者及其目标将永远是一个谜。
这篇文章最初出现的在Forbes.com上。
我对Stuxnet的另一种解释从文章中删掉了。它们在这里:
- 一个失控的研究项目。研究人员以前曾意外释放过蠕虫。但考虑到媒体,以及任何从事此类工作的研究人员都会与朋友、同事和他的顾问交谈,我希望现在有人已经揭穿了他的身份,尤其是如果这是由团队完成的。
- 一种犯罪蠕虫,旨在展示一种能力。当然,这是可能的。Stuxnet可能是敲诈勒索的前奏。但我认为更便宜的演示也同样有效。再说一次,也许不是。
- 一条消息。很难进一步推测,因为我们不知道这条消息是给谁的,也不知道它的上下文。预计收件人会知道。也许这是一条“看看我们能做什么”的信息。或者“如果你不听我们的话,下次我们会做得更糟”。再次强调,这是一条非常昂贵的消息,但可能其中一条消息是“我们有如此多的资源,为了好玩,我们可以花费四五年的努力和四个零日漏洞。”如果这条消息是给我的,我会印象深刻。
- 美国军方发布的蠕虫病毒,旨在吓唬政府,使其在网络安全方面获得更多预算和权力。不,这种阴谋在小说中比在现实生活中更常见。
请注意,这些替代解释中有一些是重叠的。
编辑添加(10/7):Symantec发布了非常详细的分析。这似乎是零日漏洞之一不是零日毕竟。很好CNet文章.更多猜测,没有任何证据。体面揭穿.备用理论目标是伊朗纳坦兹的铀离心机。
发布于2010年10月7日上午9:56•查看评论