一个U盘传播的震网病毒,破坏了伊朗的核计划

编者按:纳坦兹核工厂的离心机级联方式,从左往右正是20,24,20,16,12,8,4,与震网病毒的描述完全相同!

内贾德视察伊朗浓缩铀工厂


原题 | 只靠U盘传播的震网病毒 破坏了伊朗的核计划
来源 | 百家号“史海挖掘者”
作者 | 史海挖掘者


震网病毒是一种首次发现于2010年的恶性蠕虫电脑病毒,攻击的目标是工业上使用的可编程逻辑控制器(PLC)。震网病毒感染了全球超过20万台电脑,摧毁了伊朗浓缩铀工厂五分之一的离心机。震网病毒的感染途经是通过U盘传播,然后修改PLC控制软件代码,使PLC向用于分离浓缩铀的离心机发出错误的命令。

伊朗纳坦兹的核工厂

与其他的恶性病毒不同,震网病毒看起来对普通的电脑和网络似乎没有什么危害。震网病毒只会感染Windows操作系统,然后在电脑上搜索一种西门子公司的PLC控制软件。如果没有找到这种PLC控制软件,震网病毒就会潜伏下来。如果震网病毒在电脑上发现了PLC控制软件,就会进一步感染PLC软件。随后,震网病毒会周期性的修改PLC工作频率,造成PLC控制的离心机的旋转速度突然升高和降低,导致高速旋转的离心机发生异常震动和应力畸变,最终破坏离心机。

西门子公司的PLC

震网病毒的目标是伊朗的核工厂,位于纳坦兹的浓缩铀工厂需要大量的离心机来分离铀235和铀238,因此也广泛使用了西门子公司的PLC及控制软件。2009年上半年,由于该工厂部分离心机的异常停机造成严重的生产事故,导致伊朗原子能机构的负责人迫于压力辞职。在2009年11月到2010年1月之间,震网病毒就摧毁了伊朗1000多台离心机。

伊朗浓缩铀工厂的离心机

在震网病毒的肆虐下,伊朗纳坦兹的核工厂里可用的离心机数量从4700台降低到3000多台。到2010年,核工厂仍然因为技术问题多次停工,工厂的浓缩铀分离能力比去年下降了30%。对于频繁出现在纳坦兹核工厂的生产事故,唯一合理的解释就是震网病毒。

伊朗核工厂附近部署的高射炮

震网病毒代码的复杂性,以及对工业设备的精确攻击,表明这绝不是某个黑客的小打小闹,而是来自于某个西方大国的网络情报机构。根据各国反病毒专家对震网病毒的研究,其幕后黑手指向美国和以色列。早在2005年,美国就开始寻找一种可以破坏伊朗核计划的隐蔽性很强的非军事手段。经过小布什和奥巴马两届政府的努力,终于研发出了攻击伊朗核工厂的计算机系统并瘫痪离心机的震网病毒。

由于伊朗、美国、以色列都对震网病毒的相关细节守口如瓶,因此对于震网病毒的破坏性规模还存在争议。一方面伊朗可以迅速补充报废的离心机,另一方面,伊朗也组织了反病毒专家清除工业控制系统中的震网病毒。尽管震网病毒确实对伊朗的核计划造成了一定的影响,但有数据表明伊朗分离浓缩铀的能力在2010年还获得了增长,看来震网病毒的效果可能并没有美国和以色列估计的那么乐观。

然而,新一代震网病毒也许正在研发之中,谁也不知道下一个破坏性更强的“震网病毒”什么时候出现。

细节 | 震网病毒是如何攻击伊朗核工厂离心机的?

“震网病毒进入核工厂后,每隔一个月才攻击一次,攻击时会先修改西门子工控系统的数据,让离心机看上去运转正常,实际上却大幅提高离心机的转速,迫使其在临界速度以上运转,从而迅速毁坏离心机。”

2010年6月,白俄罗斯的一家安全公司VirusBlokAda受邀为一些伊朗客户检查系统,调查他们电脑的死机和重启问题。技术人员在客户电脑中发现了一种新的蠕虫病毒。根据病毒代码中出现的特征字“stux”,新病毒被命名为“震网病毒(stuxnet)”,并加入到公共病毒库,公布给业界人士研究。这是“震网病毒(stuxnet)”首次被发现。

起初,研究人员以为,这不过是千万种流行病毒中的一种。世界上每天都有新病毒产生,大部分都是青少年的恶作剧,少部分则是犯罪分子用来盗取个人信息的工具,震网病毒也许只是其中之一,但进一步的深入研究却让他们瞠口结舌:震网的复杂度远远出乎人们的意料,它是当时所发现的最精妙、最复杂的病毒,没有之一。

震网病毒利用了微软操作系统中至少5个漏洞:

RPC远程执行漏洞(MS08—067);

快捷方式文件解析漏洞(MSIO一046);

打印机后台程序服务漏洞(MSl0—061);

内核模式驱动程序权限提升漏洞(MSl0—073);

任务计划程序权限提升漏洞(MSIO一092);

在这几个漏洞中,除了第1个是早已被发现的漏洞外,后4个漏洞都是在震网病毒中首次被使用,是真正的零日漏洞。

所谓“零日漏洞”,指的是软件开发者(比如:微软)和反病毒公司尚未发现的漏洞。也就是说,这种漏洞只有病毒开发者一人知道。没人知道它的存在,意味着没人会去防备它,所以是黑客世界中最牛的东西,也是一个稀罕玩意。每年有超过1200万种恶意代码出现,但“零日漏洞”大概只有10来个。震网病毒一次性利用了4个漏洞,不可谓不强大,所以背景也绝对不简单。

最奇怪的是,病毒中居然还含有两个针对西门子工控软件WinCC漏洞的攻击,这在当时的病毒中是绝无仅有的。

所利用的2个西门子公司的WinCC漏洞包括:

1)系统保存了访问数据库的默认账户名和密码,“震网”病毒利用这一漏洞尝试访问系统的SQL数据库。

2)在打开Step7工程文件时,存在DLL加载策略上的缺陷,从而导致一种类似于DLL预加载攻击的漏洞利用方式。

从互联网的角度来看,工业控制是一种恐龙式的技术,古老的通信方式、隔绝的网络连接、庞大的系统规模、缓慢的技术变革,这些都让工控系统看上去跟互联网截然不同。此前从没人想过,在互联网上泛滥的病毒,也可以应用到工业系统中去。

后来,随着更多专家投入到对它的分析,它的面纱渐渐揭开——它跟以往流行的病毒完全不一样,这是世界上第一例针对工控系统的病毒!说得再精准一点,它是专门针对伊朗纳坦兹核工厂量身定做的病毒武器。

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仍然会把它当作合法程序),他们从没发现工厂早已被病毒入侵,仍然一味地认定是离心机的质量问题,白白损失了几年时光。

即便如此,伊朗仍然矢口否认核工厂遭到了攻击。当然,伊朗到底是真的认为自己的工厂固若汤金,还是出于某种宣传策略而拒不承认,外界同样也不得而知了。

(0)

相关推荐