2012年,震网的出现,让钱哥对行业的前景深感不安。而4年前,震网的设计者们也有着类似的感受。让他们头疼的,是伊朗即将成功造出核武器的可怕现实。
2008年4月,出于宣传方面考虑,在铀浓缩工厂竣工投产两周年之际,内贾德总统安排了一场高调的参观之行。借此机会,武器控制专家们得以首次窥见这座神秘工厂的真面目。身着工厂技术人员的制服——白大褂、蓝皮靴的内贾德,让记者们为他拍下了参观控制室计算机的多张照片。照片上显示着“和平”的字样,背景是由表情严肃的科学家和官僚组成的随行团队,和如受阅士兵般盛装列队摆放的一人多高的离心机。
[![](https://box.kancloud.cn/2015-12-08_5666b1c5a4739.jpg)](http://www.aqniu.com/wp-content/uploads/2015/11/640.webp-99.jpg)[![](https://box.kancloud.cn/2015-12-08_5666b1c623840.jpg)](http://www.aqniu.com/wp-content/uploads/2015/11/640.webp-108.jpg)
内贾德总统办公室随后发布了近50张与此行有关的照片,其中首次公开的IR-2型高性能离心机,让核能分析师们兴奋不已。一位来自伦敦的分析师说,“这正是伊朗人梦寐以求的东西。”
[![](https://box.kancloud.cn/2015-12-08_5666b1c643629.jpg)](http://www.aqniu.com/wp-content/uploads/2015/11/640.webp-1115.jpg)
但是,与伊朗官方坚称的“铀浓缩项目用于和平目的”相悖的是,人们从照片上发现,国防部长居然也在随行人员之列。
伊朗专家用了2007年一整年的时间,完成了纳坦兹一个地下车间中3000台离心机的安装。内贾德参观时宣布,计划再增加6000台离心机。如果计划实现,伊朗将跨过“有能力生产工业级浓缩铀国家”的门槛。对于在过去数十年间屡遭磨难的伊朗人而言,这将是一个伟大的成功。因为,这个成功,是在面临无数技术难题、采购障碍、经济制裁、政治阴谋以及暗中破坏行动的情况下获得的,来之不易。而纳坦兹项目的顺利运转,意味着夺取胜利已是板上钉钉。
而实际上,纳坦兹尚未脱离险境。要生产工业级的浓缩铀,需要让数千台离心机连续运行几个月而不出任何故障。就在内贾德在纳坦兹志得意满之时,离心机控制系统中的[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")已是蓄势待发。
据报道,布什总统于2007年底向国会提交了一份预算案,并得到了国会的批准。此案金额高达4亿美元,主要用途是为打垮伊朗拥核抱负而发动的一系列行动。具体包括情报收集活动,动摇现政府统治甚至促动政变的颠覆活动,以及针对核设施的秘密破坏活动。操控纳坦兹控制系统计算机的网络攻击属于第三种。
虽然布什的幕僚献上计策的时间是2006年,但相关工作早已启动。根据某些文件的时间戳推算,准备工作可能始于数年前。震网注入315型和417型PLC的[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")段,其编译时间分别为2000年呢2001年,用于替换西门子Step 7系统中合法.DLL文件的假冒.DLL文件,其编译时间为2003年。
当然,很可能用于编译代码的计算机时间有误,也可能是代码开发人员为掩盖证据而刻意修改时间。但如果这些时间戳为真,这意味着在伊朗核问题的外交争端开始前,美国人已经提前3到6年做好了发动相关攻击的储备;只待一切外交斡旋和制裁失效之后,才于2006年把这些攻击代码从储备库里拿了出来。
其中一些代码是很多西门子系统通用的,并非专为纳坦兹的控制系统而设计。因此,建设储备库的目的可能不是专门针对纳坦兹PLC,而是面向普遍存在漏洞的所有西门子PLC。在伊朗,除了核工业之外,西门子控制系统还广泛用于石油天然气开采、石化和采矿等多个重要产业;此外,中东地区的其他国家也有使用。1990年代末,网络战刚刚崭露头角,美国和以色列认为,针对90年代中期面世的Step 7和相关西门子PLC进行漏洞挖掘方面的研究很有价值,早晚能用得上。
不过,并非所有攻击代码都是针对西门子控制系统的。比如,要编写针对纳坦兹专用变频器和阀门的攻击代码,必须提前知道伊朗安装使用的设备的具体型号,并掌握其详细配置信息。如果针对PLC的攻击代码段的确是2001前后制作的,那就是说,代码开发人员早在伊朗核设施开工建设之前,就已经知道其中部署什么设备了。
其实,这并不奇怪。伊朗于1999年中,就在卡拉扬电力的一个工厂里安装了小型离心机级联装置,并用它做过铀浓缩实验。之后,在2000年和2002年,CIA将卡迪尔装备朋友圈中的一个核心人物招至麾下,并通过他得到了关于“装备圈向伊朗和卡迪尔其他客户提供了哪些设备”的情报。因此,在2000年纳坦兹破土动工时,CIA可能已经知道了伊朗打算在工厂中安装什么设备,也知道了他们将使用西门子的控制系统。
ISIS的戴维·奥尔布赖特也认为,2001年时,外界已经通过某种途径,掌握了有关纳坦兹的很多情报。
[![](https://box.kancloud.cn/2015-12-08_5666b1c66ea40.jpg)](http://www.aqniu.com/wp-content/uploads/2015/11/640.webp-1212.jpg)
他说:“每个级联系统包括164台离心机,级联系统分为几个阶段,采用什么型号的阀门、压力传感器和管道系统,他们早都知道了。”但他们尚未获得关于伟肯公司和Fararo Paya公司变频器的信息。“变频器可能是另一码事,因为那是伊朗从通过其他一些渠道从国外拿到的。因此,要说震网攻击者2001年就知道伊朗人打算从芬兰公司购买变频器并进行本土化生产,几乎是不可能的。而且,即使是用于2007年在纳坦兹安装的首个级联系统,也同时采用了多款进口变频器。”
到了假冒Step 7系统.DLL文件首次出现的2003年,他们已经掌握了有关纳坦兹的更多消息。
当IAEA核查人员于2003年2月首次造访纳坦兹时,伊朗已经在试验工厂里建造了一个小型级联系统,并做好了在当年年底安装1000台离心机的准备。作为IAEA对伊朗核计划调查的一部分,伊朗必须提供纳坦兹和其他核设施的采购设备清单。这份清单包括机器工具、阀门和真空泵。同时,情报部门对伊朗的秘密采购活动进行了监控,发现一家德黑兰顶级工业自动化公司——尼达(Neda)工业集团,也是伊朗核计划的供应商。这家公司曾经与卡拉扬电力合作,帮助后者从一家手表厂转型为向纳坦兹提供离心机的工厂。尼达工业集团还是西门子在伊朗的本地合作伙伴,据公司网站记载,在2000年和2001年,公司为伊朗的其他设施安装了多批西门子S7系列PLC。这与纳坦兹遭攻击的PLC属于同一个系列。因此,很容易联想到,既然尼达工业集团曾为伊朗多家其他客户安装过西门子控制系统,那么纳坦兹的西门子控制系统很可能也是他们装的。
实际上,在除核工业之外的伊朗其他行业里,有很多西门子自动控制设备的大客户,这为西门子进入伊朗核工业铺平了道路。某西方情报部门在一封某伊朗公司于2003年发往另一家伊朗公司的信中发现,一家与伊朗核项目有关的公司Kimia Maadan,曾经向西门子公司采购过S7-300系列和S7-400系列可编程逻辑控制器,以及与之配套的SIMATIC软件。据信,这批控制器将用于为离心机提供铀原料的贾钦(Gachin)铀矿。也就是说,就在这封信被情报部门截获后,美国以色列就掌握了这个情报。
尽管最初的计策可能是美国战略司令部的詹姆斯卡特怀特将军提出的,但将其具体落到实处的,还是NSA和美国网络司令部(US Cyber Command)的网络战士,和以色列8200部队的精英程序员团队。
要达成攻击,不仅要知道纳坦兹用了什么设备,还要更多更有效的情报。比如,攻击者必须知道变频器的运行频率,和关键设备的配置参数。他们不能仅仅指望手上那些旧图纸和可能已经过期的作战计划来开展行动。他们还必须掌握有关Step 7系统运行,和纳坦兹内部计算机网络拓扑结构等大量信息,以说服白宫的法律顾问,攻击不会对其他系统造成连带影响。如果他们假定目标计算机没有与外界连接,但事实却与之相反,[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")就有可能失去控制,传播并破坏其他机器,从而暴露作战行动。就在此时,类似火焰和毒区的侦察工具开始上线,从“运行维护网络的系统管理员”和“为PLC编写代码的承包商”那里,广泛收集将来可能用得上的数据。如果他们用了毒区,很可能是通过钓鱼攻击的手段进行传播的,就像入侵匈牙利CA时那样。这些情报侦察活动的目标,都是接入互联网的计算机,比如某个程序员的笔记本。但是,现场总线卡编号、变频器的型号和数量等配置信息,却藏在与互联网物理隔离的PLC上。
为了接触到这些数据,如果没有其他途径(内奸)的话,攻击者就必须使用U盘来“穿越”物理隔离,并将他们的侦察工具置于连接PLC的计算机上。因为,如前所述,给PLC编程的程序员通常会先在某个不与控制系统内网相连的笔记本上进行编码,之后再把笔记本带进来,接到控制系统内网中,或者把程序文件拷贝到U盘上,再把U盘带到某台内网计算机上。这是一个穿越物理隔离的简单方法。借助“内网计算机——U盘——连接互联网的笔记本”这条通道,攻击者还可以利用恶意程序,取回PLC和控制系统内网的相关信息。据报道,情报部门还在伊朗部分非联网计算机中预埋了植入物,可以把计算机上的数据通过无线电波传输出来。(待续)
攻击者为了获取所需数据,可能要耗时数月。某些侦察行动可能始于2005年,就是攻击者为“震网0.5版指挥控制服务器”注册域名的那段时间。虽然当时震网还没上线,但那些域名已经开始充当先头侦察部队的指挥控制服务器了。还有一些侦察行动可能始于2006年5月,就是攻击者为“震网后期版本指挥控制服务器”注册域名的时间节点。
一旦情报收集完成,攻击代码最后阶段的制作任务随即展开。赛门铁克估计,针对315型PLC和417型PLC的攻击代码,是由两支团队各自独立编写而成的。但是,到底是两支团队均为美以混编,还是以色列人负责编写导弹而美国人负责编写载荷,谁也弄不清楚。此外,可能还存在负责制作假冒Step 7系统.DLL文件、向PLC注入[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")的第三支团队。赛门铁克估计,编写Step 7系统攻击代码需要6个月左右,编写PLC注入攻击代码则需要5个月左右。测试这些代码还需要更多时间。
不论是谁负责编写这些关键攻击代码,都得承认,这部分行动称得上天衣无缝。攻击中容易出错的地方很多,但要实现攻击目标则绝对不容有失;此外,一旦攻击启动,很难再做任何调整,也很难评估其影响。这意味着,攻击者必须在实施攻击之前进行广泛的测试,不仅要在西门子平台上进行测试,确保代码不会干扰Step 7系统或PLC的正常运行,而且,在2009年和2010年每个新版本上线之前,要在Windows各个版本上进行测试,确保恶意程序能够在绕开探测与防御机制的前提下顺利传播和运转。
最重要的一点是,攻击者必须清楚,代码层面上的每个细微变化,将对离心机产生怎样的影响。这是因为,这场攻击要想成功实现预期目标,不能靠蛮力,而要靠巧劲。一个微小的错误就可能导致离心机损毁速度过快或一次性损毁数量过多,从而暴露攻击行动,造成任务无法完成。
为确保万无一失,他们可能需要聘请一个由材料学家和离心机专家组成的顾问团。这些专家应熟知离心机外壳和铝制转子的密度和持久度,熟知每台离心机在处于幅度不断增加的震动时,其姿态能否仍能在高速旋转中保持平衡。他们还必须能够计算离心机内壁正常压力,并推算出“内壁压力随内部气压变化而变化的规律”。
要进行这些测试,没有离心机实物是不行的。不过,如前所述,位于田纳西州的美国能源部橡树岭国家实验室很幸运的得到了一大批P-1型离心机,而P-1正好是纳坦兹安装的IR-1型离心机的原型。
[![](https://box.kancloud.cn/2015-12-08_5666b1c67f056.png)](http://www.aqniu.com/wp-content/uploads/2015/12/80.png)
橡树岭国家实验室获得这批离心机的故事,始于2003年8月。那时,CIA打入卡迪尔核装备供应圈已有3年,IAEA首次赴纳坦兹进行核查也已过去6个月。CIA截获了一批由马来西亚运往利比亚秘密铀浓缩工厂的“黑货”,其中包括25000套离心机外壳、气泵、管道和其他组件。西方把这些赃物作为利比亚发展秘密核计划的证据,向利比亚独裁者卡扎菲(Muammar Gaddafi)施压。12月19日,利比亚外交部长在国家电视台宣布,利比亚将放弃所有的核武器和化学武器项目。而在此之前,他们从未承认过拥有这些项目。
IAEA得知,利比亚还有更多铀浓缩设备,美国当局正计划将其拆除并运回橡树岭国家实验室。因此,在圣诞假期中,海诺尼、他的老板巴拉迪还有其他几个同事一行急急忙忙来到的黎波里,赶在这些设备被运走之前,为它们编了一个清单。他们发现,这些设备重达百吨、价值8000万美元,包括一批来自土耳其的UPS调节阀(与之后于2006年被改装并破坏纳坦兹UPS的那批设备相似),1个由200台来自巴基斯坦P-1型离心机构成的小型级联机组,还有可以组装4000台离心机的设备部件。到了2004年3月,这些设备的转运工作全部完成了。它们的新家,是橡树岭国家实验室的Y-12国家安全综合大楼。每当有记者来访时,拿着来复枪的卫兵们都会跑出来耀武扬威一趟,以示这里有重兵把守。
“客观的说,”美国能源部长斯潘塞•亚伯拉罕(Spencer Abraham)接受多家媒体采访时表示,“废除利比亚核设施的行动,为美国和文明世界的所有国家提供了一个更安全的环境。”这话倒不是信口胡言,但是,美国缴获这批战利品的真正意义在于,可以用它们组建一个秘密工厂,用来对离心机开展研究,对攻击离心机的行动进行模拟和测试。
橡树岭国家实验室建于1943年,位于诺克斯维尔(Knoxville)城外,由田纳西大学和巴特尔研究院共同组建的非盈利组织UT-Battelle运营管理。实验室以先进材料研究、核科学、清洁能源和超级计算为主打项目。但是,实验室运营资金的最大来源,却是为国防部、能源部和情报部门做的秘密国安项目,其中主要包括核不扩散、情报数据挖掘、加密破解等内容。
[![](https://box.kancloud.cn/2015-12-08_5666b1c6c662e.jpg)](http://www.aqniu.com/wp-content/uploads/2015/12/640.webp_.jpg)
其中有一个机要项目,是专门研究如何破坏离心机的,至今已持续了10年。2005年后的某个时点,作为该项目的一部分,在橡树岭保护区一片35000英亩的边远林区上,一个秘密离心机工厂拔地而起。但持有安全通行证的大多数实验室员工,根本不知道它的存在。据知情人士透露,工厂的代号是“小山”或“养鸡场”,通往那里的,只有一条没有路标、蜿蜒十英里、被密林包围的道路,路上还有一个接一个的安检站。
实际上,“小山”是由两组设施构成的,一个在地上,一个在地下。地下大厅是很久以前为另一个项目建造的,正好用来作为离心机项目的实验场地。初期的中心工作是,掌握来自利比亚的离心机的工作原理。实验室拿到的离心机包括来自利比亚的P-1型和P-2型,但大部分都是未组装的部件,也没有说明书。面对堆积如山的一箱箱设备部件,毫无离心机设计安装经验的研究员只好一点一点的尝试,花了很长时间才搞明白如何把各种部件正确的组装在一起,并让它运转起来。
在摆弄这些性能不稳定又容易损坏的设备的过程中,橡树岭国家实验室的研究员遇到了与伊朗人相同的问题。尤其是铲斗和滚珠轴承特别容易出故障,因而拖慢了研究进程。
一开始,这个项目与利用病毒破坏离心机的网络攻击并无瓜葛,目标只是通过研究离心机和级联系统的工作机理,掌握其实施铀浓缩的能力,并据此估计伊朗在铀浓缩项目上的进展,推算他们需要多久可以生产出足以制造核弹的浓缩铀。橡树岭的科学家经过初步研究和测试,得出了一个结论:伊朗大概需要12至18个月,就能生产出足够制造一枚核弹的裂变性铀原料。
对橡树岭国家实验室而言,研究离心机算不上什么新鲜事。实验室在离心机研发方面具有悠久的历史,早在1960年代就制造出了首批转子离心机。但是到了1985年,激光铀浓缩技术取代离心机,成为美国实施铀浓缩的首选手段,实验室的离心机项目宣告终止。项目的终止,让数以千计的技术工人和研究人员的一身本领再无用武之地。
2002年,当关于伊朗在纳坦兹建造秘密铀浓缩设施的消息传出后,离心机相关研究起死回生了。橡树岭重操旧业,启动了一个为美国商用核电站浓缩铀供应商——美国铀浓缩公司设计新一代离心机的项目。为此,实验室专门招回了一批已至垂暮之年的退休离心机专家,让他们带领年轻的研究员共同工作。
谢天谢地,大批量利比亚离心机到厂后,总算是还有人能摆弄的起。据某个了解项目情况的内部人士表示,研究利比亚离心机的工作,得到了美国能源部旗下国家核安全管理委员会(NNSA)的大力支持。这个委员会管理着国家的核武器,同时还运营着一项名为NA-22的核不扩散研发项目。该项目的内容包括,收集有关非法核活动的人力情报(human intelligence),对流氓国家和恐怖组织进行的秘密铀浓缩与实验性核爆活动进行远程探测和环境监测,以收集相关证据。
NNSA意图染指伊朗离心机,不是一天两天了。所以2004年CIA从利比亚搞定大批与伊朗同型号的P-1和P-2型离心机,相当于给NNSA送上了一份大礼。
最终,他们又通过情报部门的力量,直接从伊朗核项目中得到了离心机部件。这些部件更有价值,据信朝鲜用的离心机就是用它们组装的。官员告诉工作人员,一定要非常小心、非常有效的用好这些部件,因为,为了得到它们,有些情报人员付出了生命的代价。也就是说,这批部件非常稀缺,一旦破坏无法替换,因此每次使用都要慎之又慎。
对这批设备的研究工作始于2006年,伊朗宣布将启动纳坦兹铀浓缩进程之时。但是,据一位了解该项目的人称,研究的进展非常缓慢。但2007年,伊朗真的开始在纳坦兹地下车间中安装离心机了,形势一下子变得紧张起来。(待续)
与此同时,用于对离心机进行攻击测试的“小山”地上部分设施也在建设当中。据信,初期的主要研究目标是,判断对纳坦兹实施动能攻击(kinetic attack)会对离心机造成何种程度的破坏。后来的研究中,“网络攻击对离心机的影响”才得到了与“空袭对地下核设施中离心机的影响”同样的关注。而人们一开始提出网络攻击的思路时,并没有想到使用病毒直接破坏纳坦兹的离心机,而只是考虑在铀浓缩工厂的设备中植入用于侦察的[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。"),帮助研究员判断伊朗铀浓缩的实施进度。但在某个时点,用于直接破坏离心机的网络攻击项目和之前的网络侦察项目合二为一,形成了一个完整的数字动能打击(digital kinetic attack)计划。当时的情况有可能是这样的:测试离心机的大多数科学家并不知道有这样一个破坏性攻击的计划,只管做好“评估不同条件会对离心机造成怎样影响”的本职工作即可。所以,他们只需要考虑“离心机的转速提高、转速降低或内壁压力增大时的状态”这些问题,而无须考虑这些条件的变化是由何种原因引起的。
在宽敞的测试厂房中,西门子和其他供应商高大的控制系统支架,像图书馆中的书架一样摆放在前排,十多台一人来高的离心机则遍布整个空旷的厂房。临时铺设的线缆从部分离心机上弯弯曲曲的延伸出来,一直连到各种传感器上,以记录诊断结果,测量“离心机外壳温度”“用于保持平衡的栓钉和球状轴承的晃动幅度”等数据。
部分离心机持续数月的高速旋转,期间所有数据均被记录下来。这些离心机只是研究样本,还有一些则扮演着更悲惨的角色。在厂房的入口里面,有一个散发着丙烯酸和金属气味的巨型加固笼子,这就是为离心机“执行死刑”的场所。如果让《流言终结者》(MythBusters,一档由2位前好莱坞特效专家和3位充满魅力、博学多才的联合主演明星主持的有线电视节目)节目组的人来设计一个医院婴儿探视室,估计就会是这么个样子。每当有离心机在笼中死于非命之时,都会发出可怕的爆炸声,附近的地板也会随之隆隆作响,让现场工作人员为之一怔。
到了2008年,整个项目已经比较成熟完善了,离心机猎杀实验更是家常便饭。“项目组可以说是花钱如流水。”这位熟悉项目的匿名人士说。或许,布什总统从国会拿到用于打击伊朗核计划秘密行动的4亿美金预算,恰恰就在这个时候。
据报道,与橡树岭实验项目同步进行的,还有以色列迪莫纳核设施中的离心机实验。但是,关于“这些实验持续了多久”“官员何时认为掌握了成功发动网络攻击的足够数据”等问题,并没有准确的消息。
2006年橡树岭进行实验的同时,另一个团队正在编写攻击代码。虽然不清楚研发的精确时间表,但赛门铁克的研究员发现,攻击代码中的一个关键函数似乎在2006年5月被改动过。这个函数是针对315型PLC攻击代码的一部分,其功能是,与变频器之间建立通信连接。如前所述,用于该版本震网的两个指挥控制服务器mypremierfutbol.com和todaysfutbol.com中的代码,编译时间也是2006年5月。攻击代码中的另一个关键函数在2007年9月被改动过,两个月后的2007年11月,震网0.5版被人发现并提交至VirusTotal网站。
在某一时刻,橡树岭或其他某个实验室中部分离心机的用途发生了改变,它们被直接用于测量网络攻击的功效。当概念验证实验完成后,官员们向布什总统进行了汇报,用离心机的残片为攻击计划的有效性做了完美的注脚。与橡树岭实验室的姊妹机构——爱达荷国家实验室于2007年初进行的极光发动机试验类似,离心机实验充分证明,在一段精心制作的代码面前,再庞大的机器也不堪一击。
那么,震网0.5版是何时进入纳坦兹内部计算机的?它又是怎么进去的?这仍然是个谜。因为,纳坦兹的工业控制系统与互联网之间没有直接连接,而震网0.5版的传播机制却非常弱,因此要想突破物理隔离,攻击者必须亲自进入设施内部,或向内网发送一封邮件。震网0.5版只有一种传播途径,就是感染Step 7系统的项目文件。这意味着,它必须要直接感染编程人员或操作人员的计算机。一种方式是使用U盘“摆渡”,要么通过不知情的承包商充当带毒者,要么花钱买通某个内奸。另一种方式是给纳坦兹中的某个人发送邮件,把病毒藏在Step 7项目文件中“夹带”进去。如果病毒从编程人员或操作人员的计算机起跳,只需一到两步就可以进入目标PLC。在震网后续版本中有一个日志文件,它会记录所有染毒计算机的基本信息和感染时间,但研究员发现,震网0.5版中根本没有这项功能。
震网0.5版的目标不是315型PLC和变频器,而是417型PLC和阀门。其功能是,通过频繁开关阀门,操纵含铀气体的流动。
纳坦兹的离心机级联系统共分为15层,每一层中的离心机数量都不一样。随着层次的提高(层号变小),需浓缩的气体量不断减少,因此所需的离心机数量也不断减少。
第10层是“气体注入层”,共有离心机24台。在这一层,新一批含铀气体被泵入。离心机中的转子高速旋转,将铀同位素分离开来,“富铀235浓缩气体”被提取并运送到第9层。第9层有20台离心机,气体经过再次浓缩后,“富铀235浓缩气体”进入第8层的16台离心机。同时,含铀238较多的废弃气体从第10层进入第11层,进行进一步分离。第11层提取的“富铀235浓缩气体”又会被送往第8层,与那里的气体相混合。这个过程不断循环,直到富铀235浓缩气体进入第1层,废弃气体被排出系统为止。而级联系统的最高层一般只有2台离心机,1台主用,1台作为备份。
每个级联系统都有多个用来控制气体出入系统、出入各个层次的辅助阀门。此外,每一台IR-1型离心机顶部都有3个狭窄的管道,每个管道上有一个控制气体出入离心机的阀门。进气管道用于向离心机注入气体,成品管道用于向更高层发送“富铀235浓缩气体”,废气管道用于向下层发送废弃的“富铀238浓缩气体”。
震网0.5版并未攻击纳坦兹的所有阀门,而是有所选择。安装离心机的地下车间被分成了多个单元,也就是级联系统机房。每个机房可容纳18个级联系统,每个级联系统又包括164台离心机,因此每个机房中的离心机数量约为3000台。震网0.5版上线时,纳坦兹的地下车间中,只有1个机房是满编的,有18个级联系统。但震网只会攻击其中的6个级联系统。同时,震网不会攻击级联系统中的所有离心机,而只会攻击其中110台离心机的阀门,放过另外54台。
震网0.5版进入纳坦兹的级联系统后,会首先潜伏30天左右。在此期间,它会对系统进行全面检查,以确定各种阀门、压力传感器和其他部件是否与预期一致,并监控其活动。
在全面监测系统的同时,它还会将级联系统运行的正常值记录下来。与针对315型PLC的攻击一样,当真正的破坏行动开始后,它会将监测的真实值替换为这些正常值,反馈给操作人员。比如,它在潜伏的过程中,会迅速开启级联系统第1层的某个阀门,并从压力传感器上读取正常的压力值,然后在攻击时把这个值发送给操作人员,以掩盖压力升高的事实。
当它完成数据收集工作后,仍会继续等待,等待级联系统中出现某个特定的时机。在攻击开始前,震网0.5版会在单个级联系统中潜伏超过35天;如果要攻击6个连在一起的级联系统,则需要潜伏至少298天。
一旦攻击启动,病毒会关闭除第10层(气体注入层)之外各层次上的部分阀门。比如,在第9层,它会关闭20台离心机中14台的“废气管道阀门”;在第8层,会关闭16台离心机中13台的“废气管道阀门”。具体关闭哪一台离心机上的阀门,则是通过一个复杂运算进程随机挑选的。
关闭阀门后,震网0.5版会停止动作,等待只进不出的气体,让离心机中的压力不断上升。等待期结束的条件是:时间满2小时,或离心机内部压力升高至初始值的5倍。条件满足后,震网0.5版将转入下一个阶段,打开除气体注入层附近3个阀门之外的所有辅助阀门。然后,它会转入3分钟的等待期,同时向操作人员发送更多伪造监控数据。之后,进行7分钟的静默观察。在攻击的最后一步中,它会再次打开一组约25个阀门。奥尔布赖特和他ISIS的同事推测,这组阀门位于“应急排放管”。级联系统中的每一层都有一个与“应急排放管”相连的通道,以防离心机或铀浓缩进程出现故障时,可以迅速将离心机中的气体排放到一个冷却容器中。那么,震网打开这组阀门后,离心机中的气体就会迅速进入冷却容器,并彻底变为废气。
整个过程结束后,攻击将跳转至启动部分,开始新一轮循环。
由于攻击仅仅持续两个小时,受影响的只是部分离心机的部分阀门,而且在这个过程中操作人员看到的数值都是“正常的”,这让纳坦兹的工作人员陷入了空前的困惑之中。长期以来,他们一直目睹着离心机出现这样那样的问题,面对浓缩铀产量不断下降的情况,却无法确定故障的模式,也找不出真正的原因。
研究人员至今仍不清楚,震网打开、关闭的具体是哪些阀门,因此也很难说清具体的影响有多大。但基于一般性的假设,奥尔布赖特和他的同事推演出两种可能版本。第一种,被关闭的是级联系统最高层的成品气体输出阀门和最低层的废气排放阀门,因此气体会持续泵入级联系统,却无法排出。这种情况下,内部压力会迅速升高,当气压上升到正常水平5倍时,离心机内的含铀气体会开始凝结、凝固。凝固的铀化物固体进入高速旋转中的离心机转子后,会立即破坏转子,或令其失去平衡、敲打离心机的外壳。强烈的晃动会使离心机底部的轴承变得不稳定,从而令整个离心机脱离平衡状态。而一个高速旋转的离心机从静止状态中脱离出来,其破坏力将会非常之大,必然会对临近的其他离心机造成严重影响,从而产生灾难性的连锁反应。
在这种情形下,处于较高层次离心机中的压力增速,比较低层次离心机中的压力增速更快,因此更先出故障。奥尔布赖特团队估计,一次攻击可以同时对每个级联系统中的30台离心机造成破坏。他们认为,把含“富铀235浓缩气体”较多的高层次离心机作为攻击的重点,具有更显著的破坏效果。接近“气体注入层”(第10层)的离心机中的“富铀235浓缩气体”最少,而接近最高层(第1层)的离心机中则汇集了几乎全部“富铀235浓缩气体”,因此,攻击后者造成的损失更大,对铀浓缩进度的延迟更显著。
不过,还存在另一种可能,震网0.5版并没有关闭级联系统两端的成品阀门和废气阀门。如果是这样,震网0.5版所能造成的影响会小得多——只是减少铀浓缩成品的生产量,而不会破坏设备。含铀气体原料泵入级联系统后,由于164台离心机中有110台遭到了震网的攻击,阀门被关闭,因此只有剩下的54台还可以正常运转。这样一来,参与浓缩进程的含铀气体大幅减少,最终得到的成品气体也会大幅减少。
此外,在震网0.5版一边实施攻击,一边向操作人员发送伪造的正常数据之前,它已经废掉了生产线中的安全系统。其功能是,当发现离心机出现运行故障时,及时使之脱离级联系统,以免造成破坏。安全系统的设计非常精密,主要包括两类装置:一类是安装在每台离心机上的加速度传感器,用于监控离心机的振幅;另一类是安装在每个级联系统上的数十个压力传感器,用于监控级联系统中各部分的压力。如果某台离心机出现故障,应急响应系统会做出毫秒级的反应——关闭该离心机与级联系统之间的阀门,使离心机及其中的气体与系统隔开。故障离心机中蕴含的能量,可能使其中的高温气体喷涌而出,在级联系统中发散开来,对其他离心机造成损害。而正常运行的应急响应系统可以快速采取相关措施,阻止高温高速气流从故障离心机中喷出。但是,震网对安全系统的攻击,让这些功能全都成了摆设。(待续)
在纳坦兹,级联系统的安装共分为3个阶段,IAEA核查人员则跟踪了每个阶段的实施过程。首先,要安装管道、气泵和阀门等级联系统的基础设施;然后安装离心机,转子开始旋转。这时,真空泵会将可能造成过大摩擦力和过多热量的空气排出腔外。当离心机转速达到额定值后,含铀气体被泵入,铀浓缩进程启动。
纳坦兹一共有两个巨型地下车间。在2007年初的时候,伊朗人就开始在其中一个车间(编号为车间A)安装离心机了。如前所述,这个车间分为8个机房,编号分别为A21至A28,每个机房可安装18个级联系统,每个级联系统可容纳164台离心机。因此,每个机房中都可以安装离心机2952台。
2007年2月,技术人员首先在A24机房安装离心机,并计划于5月之前完成18个级联系统的安装。但是,他们的计划没有实现。8月中旬,他们才安装、启动了12个级联系统;直到11月,所有级联系统终于安装完毕并投入运行。然而,新的麻烦又出现了。技术人员发现,级联系统中的气体总量少于设计容量,还发现,总有一部分气体滞留在注入点和级联系统之间的“进程缓冲区”中。2月至11月间,他们共向各级联系统中注入了1670公斤含铀气体原料,但其中400公斤气体滞留在缓冲区,只有1240千克气体真正进入了离心机。更奇怪的是,离心机中最终生成的浓缩铀成品大大少于预期。按10%的“成品-原料比”计算,应该生成124公斤低纯度浓缩铀,但实际上,他们只得到了75公斤。在2007年全年的大多数时间里,“产量不及预期、原料消耗过快”的问题始终存在,浓缩铀的纯度也偏低。纳坦兹的技术人员声称,他们得到了纯度为4.8%的浓缩铀,但IAEA的测试结果显示,成品浓缩铀气体的纯度仅为3.7-4.0%。
扰乱阀门开关、降低浓缩铀纯度的,到底是不是震网0.5版呢?事实有待查证,不过纳坦兹遇到麻烦的风声很快传了出去。2007年12月发布的美国国家情报年度评估报告中,提到了伊朗在铀浓缩离心机方面“遇到了明显的技术困境”,离心机的损坏率高达20%,远远高出设计水平。一位IAEA的高级官员告诉奥尔布赖特说,离心机损坏和产量偏低的部分原因,是大量浓缩铀气体被排放到了废弃物回收罐中。
当时,奥尔布赖特团队认为,离心机损坏率偏高的原因,一方面是离心机设计方面的瑕疵,另一方面与伊朗人正处于“如何将大量离心机安装为级联系统,并令其正常运行”的探索期有关。然而,纳坦兹出现的问题,与震网0.5版“操纵阀门”的特点非常吻合。
不论原因到底是什么,反正离心机故障让伊朗人损失了大量铀原料。本来从国外进口渠道获得的供应量就少,国内的贾钦铀矿更是不给力,难以产出维持核计划所需的足够原料。
在2007年11月至2008年2月之间,技术人员没有增加新的级联系统,而是集中精力排除故障。之后,情况似乎出现了转机。当内贾德于2008年春季展开“伟大胜利宣传之旅”的时候,级联系统进入了一个更加平稳的运行状态,离心机损坏事故大幅减少。浓缩铀成品的纯度稳定在4%的水平附近,产能利用率由之前的50%上升到85%,单台离心机的产量也增加了。
各界一致认为,伊朗似乎已经解决了级联系统中的问题。伊朗人不顾旁人的劝导,以丧心病狂的速度,开始了新一轮的离心机安装。级联系统刚一到位,立即开始注入气体、启动生产进程,然后再转入下一个级联系统的安装。从2008年5月到8月这3个月中,伊朗处于运行状态的离心机数量,由3280台增加了约500台,至3772台。
伊朗这样做,其实面临着巨大的政治压力。联合国的制裁,以及与西方毫无进展的谈判,让伊朗领导人非常恼火,也耗尽了他们的耐心。但对于这种无脑的大跃进,伊朗的科学家和工程师们是明确反对的。即便在正常条件下,安装离心机并启动生产进程,都是一件非常棘手的任务。更何况IR-1型离心机天生非常脆弱,快马加鞭的折腾,纯粹是没事找事。
“从工程师的观点来看,这太鲁莽了。居然一口气就把级联系统中的164台离心机运行起来了!干嘛不同时启动18个或30个级联系统呢?”奥尔布赖特说,“真正优秀的工程师一定会慢慢的安装,在确认每一个步骤、每一个单元都运转正常之后,才会把它们一层一层的连起来。”
但是,这段时期里,纳坦兹却运转的异常顺遂,到夏天过完的时候,纳坦兹的技术人员们重新找回了信心,把先前遇到的麻烦抛到了脑后。不过,他们还没高兴几天,形势再次急转直下。
IAEA的报告用一系列冷冰冰的数字,呈现出了当时的情景。
在2008年4月的参观中,内贾德乐观的宣布,纳坦兹将很快在现有3000台离心机的基础上,再增加6000台。但是,离心机数量在8月份达到3772台之后,技术人员突然停了下来,而且在接下来的3个月里1台都没装。同时,成品的生产量也是逐步下滑。从2007年初铀浓缩开始起算,纳坦兹的技术人员一共向级联系统中注入了7600公斤铀化物气体原料,但到2008年8月,所有离心机的总产量只有480公斤,而不是计划中的760公斤。产量偏低的情况一直持续到2008年底。在8月至11月间,技术人员共注入2150公斤铀原料,但只生产出150公斤浓缩铀成品。和2007年那次出故障时一样,大量含铀气体不翼而飞。
然而,对伊朗而言,虽然存在种种问题,2008年仍然比2007年强多了。纳坦兹2007年的浓缩铀产量仅为75公斤,2008年已经增至630公斤。奥尔布赖特团队估计,在理想条件下,伊朗人可以将700至800公斤低纯度浓缩铀转化为20至25公斤武器级浓缩铀,足以制造一枚初级核弹(crude nuclear weapon)。尽管产量不及预期,但当时并没有传出“伊朗核计划没有按时取得应有成效”的消息。
纳坦兹的这一波故障,出现于2008年下半年,而这似乎与震网0.5版实施攻击的时段正好吻合。震网感染417型PLC后,有一段时间的潜伏期。在为期至少一个月的侦察阶段中,震网会记录下用于欺骗操作人员的数据。如果目标是一个级联系统,侦察至少需耗时35天;如果目标是6个连在一起的级联系统,则至少需耗时297天。在这个过程中,级联系统的运行不会受到任何影响。一轮攻击结束后,震网又会转入新一轮为期35天的侦察期。看起来,2008年下半年的问题集中出现在春季开始安装的A26机房。如果震网0.5版感染与A26机房对应PLC的时间是2007年底到2008年初,那么从攻击引发离心机内部压力上升到造成可见的破坏性影响,刚好需要几个月的时间。
在此期间,发生了一件特别的事情。一位加拿大籍伊朗人想要从两家西方制造商手上采购一批压力传感器。这批设备的用途是,测量离心机内部气压。在2008年12月至2009年3月之间,Mahmoud Yadegari一共购买了价值11000美元的10台压力传感器,并将其中的两台通过迪拜转运到了伊朗。当他向第二家制造商提交采购20台机器的订单时,由于无法证明最终买家的身份而遭到了拒绝。4月,美国当局获悉此事后,立即把他抓了起来。那么,这件事会不会与“伊朗人发现纳坦兹的传感器可能有问题”存在关联呢?
进入2009年,纳坦兹的技术人员迅速在A26机房展开了离心机安装工作。到2月底的时候,已有9个级联系统安装完毕。但是,技术人员并没有将它们投入运行。要是放在过去,技术人员每次都是刚一装好就立即把它们启动,这次不知是什么原因,他们没有这样做。同时,A24和A26机房中离心机的“分离功单位”(separative work unit,用于测度单台离心机铀浓缩效率的值)由0.80骤降至0.55,浓缩铀成品的纯度也从2008年的4%左右下降至3.49%。如果这些影响都是震网造成的,那么可以说,攻击者通过震网达到了他们预期的目标。
就在此时,攻击者决定要换个玩法。(待续)
2009年初,总统候选人巴拉克·奥巴马应邀去往白宫与布什总统会面,商讨新老领导人权力交接有关事宜。在交谈中,布什谈到了在过去一年中,对纳坦兹离心机实施破坏性网络攻击的细节。这项行动确实起到了推迟伊朗核计划的作用,但效果不算特别明显,而且需要更多时间才能取得更大进展。如果行动继续,那么必须得到在任总统的授权,这意味着奥巴马必须签署一项新的总统调查令,以批准该行动。考虑到当时除了发动空袭之外,似乎没有什么其他选择,因此没费多少唇舌,奥巴马就对这事点了头。
2008年夏天,在总统选战当中,奥巴马曾亲赴以色列拉票,并告诉以色列人,他“可以感受到以色列的痛苦”。他说,一个拥核的伊朗,将成为中东地区乃至全世界和平的“重大威胁”。他承诺,在他的领导下,将采取一切可能的措施来阻止伊朗获得核武器。虽然这句话在本质上蕴含着使用武力的意思,但奥巴马和布什一样,也希望避免爆发无法控制的战争。因此,用比特武器实现物理破坏,越来越成为一个受欢迎的选择。
上任之后,来自多方面的压力让奥巴马应接不暇。通过外交渠道与伊朗沟通没有任何效果,制裁也打不垮伊朗政府的斗志。他还担心,如果美国再不快点动手的话,以色列很可能会采取单边军事行动。出于种种考虑,奥巴马决定,在执行原计划的同时,进一步提出“加快取得攻击成效”的要求。就是在这样一个决策背景之下,他批准了新的作战计划——上线以纳坦兹变频器为目标、更具侵略性的震网新版本。
那么,为什么美国人会在原计划顺利执行之时,转而推出新的攻击行动?根本原因在于,针对阀门的攻击行动虽然有效,但见效太慢。攻击者已经等不及了,他们需要一个能够更直接破坏离心机、因而从根本上拖慢伊朗核计划进程的作战行动。他们也希望换一套迷惑伊朗技术人员的新招式,免得原有招式被拆穿。
具有讽刺意味的是,就在奥巴马批准针对伊朗计算机系统发动新攻击的同时,他还宣布了一项新的联邦行动法案(federal initiatives),主题是保护网络空间和国内关键基础设施安全。而震网破坏的,正是这种所谓“关键基础设施安全”。他在就职演说数周之后的一次演讲中提到,国家的网络基础设施是国家战略资产,在国家安全领域具有基础性的地位。“我们将确保这些网络的安全性、可信性和适应性,”他说,“我们将通过威慑、拒止、探测和防御等行动,使其免遭攻击,并在受到干扰或破坏时快速将其恢复至正常状态。”
实际上,就在奥巴马批准新作战计划之时,还面临着内容被曝光的风险。美国及其盟友致力于破坏伊朗核计划,早已是人尽皆知。2009年2月,伦敦的《每日电讯》报道,以色列曾策动过一起针对伊朗核计划的大规模暗战,其中包括职业杀手、幌子公司、双面间谍和秘密破坏行动。文章中,一位前CIA官员透露,其中有一种破坏行动,可以“以伊朗人无法理解的手段减缓核活动进程”,这似乎是在提示震网的存在。他说,行动的目标是“将伊朗核进程推迟、推迟、再推迟,直到找到其他的解决方案……这真是个好办法,因为它避免了直接军事对抗带来的无法接受的巨大风险。”
几乎同时,《纽约时报》也披露,一项针对伊朗的新的秘密作战行动已经开始实施,但并未透露更多细节。
我们不知道伊朗人是不是看到了这些报道,也不知道他们是否将报道中的内容与纳坦兹的问题联系在一起。他们当然明白,自己正在面临着与2006年“土耳其UPS功率调节器事件”类似的风险。但是,除此之外更重要的是,他们只把注意力放在引起破坏的部件(而非程序)上。
当攻击者准备上线震网新版本时,奥巴马实现了另一项有关伊朗的竞选承诺。他曾在总统大选中对选民承诺,如果上台,将对伊朗采取更强硬的外交攻势。作为落实承诺的一部分,他在就职演说中做出了一个前所未有的突破,直接通过电视直播向穆斯林世界喊话。他说,“对于穆斯林世界,我们将以共同利益和相互尊重为基础,探寻新的相处之道。对于那些试图在世界各地散播冲突、并把本国社会问题归咎于西方的领导人们,我们希望你们能够明白,人民评判你的依据,不是你能摧毁什么,而是你能建设什么。”(2009年1月20日)
3月20日,奥巴马再次直接向伊朗喊话。这一天是伊朗传统新年“诺鲁孜节”,他通过《美国之音》广播电台,专门向伊朗国家元首和人民发表了演讲。
“在新的一年来临之际,我想跟伊朗的领袖说句真心话。”他说,美国希望和伊朗发展“真诚的、以相互尊重为基础的”建设性伙伴关系,并希望看到伊朗人民和邻国乃至全世界其他国家都能享有“更安全、更和平”的生活。他引用了波斯诗人萨迪(Saadi)的一句话作为演讲的结尾:“亚当子孙皆兄弟,兄弟犹如手足亲,造物之初本一体。”美国已经向伊朗伸出了友谊与和平之手,“你是否愿意松开你紧握的拳?”
然而,奥巴马可不是什么天真的中学生。他一面向伊朗人民表达和解的愿望,一面却在积极准备对纳坦兹发动新一轮的网络攻击。(待续)