2010年6月,白俄罗斯的一家安全公司VirusBlokAda受邀为一些伊朗客户检查系统,调查他们电脑的死机和重启问题。技术人员在客户电脑中发现了一种新的蠕虫病毒。根据病毒代码中出现的特征字“stux”,新病毒被命名为“震网病毒(stuxnet)”,并加入到公共病毒库,公布给业界人士研究。这是“震网病毒(stuxnet)”首次被发现。
起初,研究人员以为,这不过是千万种流行病毒中的一种。世界上每天都有新病毒产生,大部分都是青少年的恶作剧,少部分则是犯罪分子用来盗取个人信息的工具,震网病毒也许只是其中之一,但进一步的深入研究却让他们瞠口结舌:震网的复杂度远远出乎人们的意料,它是当时所发现的最精妙、最复杂的病毒,没有之一。
最奇怪的是,病毒中居然还含有两个针对西门子工控软件漏洞的攻击,这在当时的病毒中是绝无仅有的。从互联网的角度来看,工业控制是一种恐龙式的技术,古老的通信方式、隔绝的网络连接、庞大的系统规模、缓慢的技术变革,这些都让工控系统看上去跟互联网截然不同。此前从没人想过,在互联网上泛滥的病毒,也可以应用到工业系统中去。
后来,随着更多专家投入到对它的分析,它的面纱渐渐揭开——它跟以往流行的病毒完全不一样,这是世界上第一例针对工控系统的病毒!说得再精准一点,它是专门针对伊朗纳坦兹核工厂量身定做的病毒武器。
2006年,伊朗违背先前签订的协议,重启核计划,在纳坦兹核工厂安装大批离心机,进行浓缩铀的生产,为进一步制造核武器准备原料。不过,出乎伊朗意料的是,核工厂的运行极不稳定,离心机的故障率居高不下,核武器所急需的浓缩铀迟迟生产不出来。技术人员反复检查,却找不出任何故障原因。离心机出厂时明明是质量合格,一旦投入运行,却马上就会磨损破坏。伊朗的核技术是从巴基斯坦买来的,而巴基斯坦的核技术是从法国偷来的,但不管是法国还是巴基斯坦,都没发生过那么高的离心机故障率。伊朗人实在弄不清出了什么问题,直到“震网病毒”被发现,伊朗人这才知道原来这一切的背后都是“震网病毒”搞的鬼。
据后来研究发现,震网病毒早在2006年就已经潜入了纳坦兹核工厂,一直潜伏到2010年已经入侵伊朗核工厂长达五年之久。因为震网病毒,伊朗核计划至少推迟了两年多。
2008年4月8日,伊朗内贾德总统视察纳坦兹核工厂。这张图不经意地泄露了核工厂的问题,左下方的屏幕所显示的那群绿点,每一个点都代表一台离心机,绿色代表运行正常,绿色丛中的两个灰色小点,则说明有两台离心机出了故障。
研究人员在病毒代码中发现一个数组,用以描述离心机的级联方式,数组的最后几位是:20,24,20,16,12,8,4。如果把上面那张总统视察图的左下角放大,可以看到在图片最下方,红色箭头所指的位置有一排灰色小柱子。这些小柱子把上面的绿色小点分为若干块,从右往左数,每块含有的列数分别是1,2,3,4,5,6,5。每列包含有4个离心机,因此,从这张图可以看出,纳坦兹核工厂的离心机级联方式,从左往右正是20,24,20,16,12,8,4,与震网病毒的描述完全相同!
由此可见,震网是专门为伊朗纳坦兹核工厂量身打造的,其开发团队里不仅有软件和网络专家,还有工业控制和核武器的专家,并且通过某种秘密途径,他们还事先掌握了纳坦兹的设计图纸。
震网病毒的攻击方式也非常狡猾。当它渗透进入核工厂,它本可以制造一起轻易的工业灾难,一举摧毁整个工厂。但它却没有马上发作,而是悄悄地潜伏下来,每隔一个月才攻击一次。攻击期间,它会首先修改西门子工控系统的数据,让离心机看上去运转正常。但背地里,它却大幅提高离心机的转速,迫使其在临界速度以上运转,从而迅速毁坏一台离心机。
这时候,如果走到那台遭受攻击的离心机旁边,会听到机器转动声的明显异常,它的声音频率比正常状态要高得多。但工厂内有几百台离心机在同时运行,巨大的背景噪声往往会掩盖单台离心机的问题,不仔细听根本注意不到。更何况由于背景噪声太大,工程师都是带着耳罩进入车间,根本无法辨别那点细小的差别。他们一般还是从控制系统的屏幕上监控工厂状态,而震网病毒早已控制了监控系统,呈现给操作人员的,是一切正常的运行状态。
这是一种更加高明的战术,它使得伊朗人疲于奔命。崭新的离心机装进工厂,没用多久便告损坏,日常的生产工作变成了不停地更换离心机,纳坦兹核工厂始终无法形成稳定的浓缩铀生产能力。伊朗人更换了数批工程师,却一直找不到问题原因,震网病毒的隐蔽性太强(即使是今天,震网病毒已经暴露了数年之后,最新的Windows仍然会把它当作合法程序),他们从没发现工厂早已被病毒入侵,仍然一味地认定是离心机的质量问题,白白损失了几年时光。
即便如此,伊朗仍然矢口否认核工厂遭到了攻击。当然,伊朗到底是真的认为自己的工厂固若汤金,还是出于某种宣传策略而拒不承认,外界同样也不得而知了。