震网_深度分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

震网病毒——设计思路的深度分析

震网病毒,英文名称是Stuxnet,第一个针对工业控制系统的蠕虫病毒,第一个被发现的网络攻击武器。

2010年6月首次被白俄罗斯安全公司VirusBlokAda发现,其名称是从代码中的关键字得来,这是第一次发现震网病毒,实际上这还是震网病毒的第二个版本。

2007年有人在计算机信息安全网站VirusTotal上提交了一段代码,后来被证实是震网病毒的第一个版本,至少是我们已知的第一个。对于第一个震网病毒变种,后来大家基于震网病毒的第二个版本的了解基础上,才意识到这是震网病毒。

震网病毒的攻击目标是伊朗核设施。

据全球最大网络安全公司赛门铁克(Symantec)和微软(Microsoft)公司的研究,近60%的感染发生在伊朗,其次为印尼(约20%)和印度(约10%),阿塞拜疆、美国与巴基斯坦等地亦有小量个案。

2011年1月,俄罗斯常驻北约代表罗戈津表示,这种病毒可能给伊朗布什尔核电站造成严重影响,导致有毒的放射性物质泄漏,其危害将不亚于1986年发生的切尔诺贝利核电站事故。

我们这次分析的案例是纳坦兹核设施。纳坦兹核基地对于伊朗的核计划非常重要,它是伊朗能否顺利完成利用核能发电的关键。纳坦兹铀浓缩工厂用浓缩铀的关键原料———六氟化铀(UF6),灌入安装在这里的离心机,提炼浓缩铀,为布什尔核电站发电提供核燃料。

进一步分析

它是如何攻击纳坦兹核设施并隐藏自己的?

它是如何渗透纳坦兹核设施内部网络的?

它是如何违背开发者的期望并扩散到纳坦兹之外的?

IR-1离心机是伊朗铀浓缩的根基。它可以追溯到从20世纪60年代末由欧洲设计,70年代初被窃取。全金属设计的IR-1是可以稳定的运行的,前提是其零件的制造具有一定精度,但是伊朗人其零件加工工艺不达标。因此他们不得不降级离心机的运行压力。但是较小的工作压力意味着较少的产出,因而效率较低。

虽然低效,但对于伊朗来说有一个显而易见的优点,伊朗可以大规模的制造生产。伊朗通过数量来弥补不稳定性和低效率,他们能够接受在运行过程中一定数量的离心机损坏,因为他们制造离心机的速度比离心机损坏的速度要快多了。

图为2008年至2010年Natanz工厂的离心机库存数据,伊朗始终保存着至少50%的备用离心机。

离心处理操作是一个严苛的工业流程,在流程运行过程中,它不可以存在任何的问题。伊朗建立了一套级联保护系统,它用来保证离心流程持续进行。在离心机层,级联保护系统的每个离心机在出故障时都可以被隔离出来。隔离后的离心机可以停机并被维护工程师替换,而工艺流程仍然正常运行。

可问题是他们的离心机太脆弱,会出现多个都坏了的情况。如果同一个组中的离心机

都停机了,运行压力将会升高,从而导致各种各样的问题。

伊朗人发现了一个很有创造力的解决方案来处理这一问题,在每一个铀浓缩组里,都安装了一个排气阀门,当同一组中的多个离心机停机被隔离时,随着压力的升高,该排气阀门可以排气并降低压力。

这种处理方案给了震网一个攻击机会。

震网病毒首先关闭位于前两组和最后两组离心处理的隔离阀。阻止了受影响的级联系统的气体流出,从而导致其他的离心机压力提升。压力的增加将导致更多的六氟化铀进入离心机,给转子更高的机械应力。最终,压力可能会导致气体六氟化铀固化,从而严重损害离心机。

为了防止被保护系统和操作员发现,第一步是隐藏其踪迹,采用了来自好莱坞的策略。震网病毒以21秒为周期,记录保护系统的传感器数据,然后在攻击执行时以固定的循环重复着21秒钟的传感器数据。在控制室,一切看起来都正常。这样就欺骗了保护系统和操作员。

这种攻击一直持续到攻击者认为达到目的为止,根据监控到的离心机的工作状态而定。如果他们是为了毁灭性的破坏,那么很简单。在Nataz的案例中,一个控制器控制的气体固化可以轻易损坏上百台离心机。听起来这个目标非常有价值,但它也会暴露攻击者。伊朗的工程师在后期的分析中可以轻易的找到事故发生的原因。这次攻击的实现过程中,攻击者密切监视运行的压力和离心机的状态表明,他们小心翼翼的避免毁灭性的损坏。增大运行压力的方式看起来更像是为了让转子寿命更短一些。

这次过压的攻击结果也是未知的。不管是什么,在2009年的时候,攻击者决定尝试一些新的东西。

新的攻击主要是改变转子的转速。利用过程压力和转子的转速两种方法能够实现增加转子的内壁压力。通常IR-1型离心机的工作转速为63000转/分钟,震网病毒对其提速了三分之一达到了84600转/分钟并运行了15分钟,接下来让离心机停下来达到120转/分钟,然后再让他们全速运转,整个过程持续50分钟。大家可以想象我们自己开的车,把油门踩到底,然后急刹车,然后再把油门踩到底…每个月这么折腾一次,每次50分钟的后果。IR-1型离心机采用了超临界设计,意味着转子转速到达工作速度前已经超过了所谓的临界速度,每当转子速度超过这些临界速度时,会产生谐波,可能毁坏转子。葛优说过,步子大了容易扯着淡。

一个坏了很正常,保护系统隔离开更换就好。但是多个转子同时被毁坏,伊朗的操作员就悲剧了,他们很诧异,为何如此多的离心机同时坏掉。库房里虽然有足够的离心机来更换,但是这让控制系统工程师无法解释这一问题而非常令人沮丧,可以把这些离心机看成幽灵机器。

电机速度剧烈变化的时候,能够通过电机发出的声音判断出来,所以攻击可能被工业现场的员工发觉。如果富有经验的员工在现场拿掉他们的保护耳机的话,是能够注意这一问题的。这从另一个侧面说明,震网病毒的开发者已经接受被现场操作员发现的风险。

故事讲到这里。下面看一下震网是如何渗透核设施的内部网络的。

重点设施的网络大多与外界断开,并配有高度保护的防火墙,数据单项保护设备和入侵检测系统

但是,设备供应商提供维护服务,有权限访问内部网络

震网病毒(V1.0)定向感染纳坦兹工厂的设备供应商

当供应商用移动设备访问工厂内部网络时,感染底层设备

震网病毒(v2.0)采用类似的思路来突破物理隔离,从而攻击内部网络。除此之外,它可以自我复制,通过网络和USB来扩散到所有的计算机中,这些计算机不仅包含安装了西门子组态软件的PC,只要是Windows系统就感染。

更重要的是,震网病毒使用了之前并未被发现的微软Windows软件漏洞即“0day”漏洞,这些“0 day”漏洞在市场上价值数十万美元。新版本的震网病毒(“简单功能”版)盗用了数字签名,从而使得它看上去是一个合法的驱动程序,事实上最新版的Windows操作系统仍然会认为它合法。

限于时间、篇幅和主题,这几个漏洞便不再详述了,利用漏洞的思路很巧妙,利用代码构造也十分精致,有兴趣了解的话可以找度娘。

震网病毒将被感染系统的网络协议地址和主机名发送给了它的CC服务器(Command and Control Server),可以看出攻击者很显然希望将病毒扩散到民用系统,并很渴望精准的控制其传播。通过精准的控制,最终实现将病毒扩散到为Natanz工作的设备供应商,以及这些供应商的客户,甚至伊朗的秘密核工厂。是这个原因,震网病毒就传播到纳坦兹之外了,虽然没有造成什么实质性破坏,毕竟它的目标只是核设施。

因此震网被攻击者散布出去,受感染的机器就不止核工厂的计算机了,在其他的很多非核领域的工厂中,只要是采用西门子WINCC系统的工厂,震网病毒本可以发动攻击。只不过震网是被编写成只攻击离心机,对其他领域不感兴趣罢了,要想搞你,很简单。

震网病毒的“成就”

震网病毒为未来的攻击者提供了一个有用的蓝本,给出了一条入侵坚固系统的康庄大道。攻击者并没有尝试渗透15层防火墙、3个数据单向保护设备和入侵检测系统;而是直接通过感染了具备访问现场权限的软目标即设备供应商。虽然设备供应商也很重视他们的网络安全,但是他们必然无法与Natanz工厂的保护措施相比。他们早晚会带着这些设备进入工业现场,并接入到Natanz工厂的核心系统中,很轻松的通过安全检查。在全球范围内清醒的现实是,几乎每一个工业或者军事设施所使用的工业控制系统在一定程度上依赖其供应商网络,而这些供应商,精于其业务,而疏于网络安全。

成本分析

超过50%的工作是用来开发震网病毒的隐藏攻击行为上,投入了大量的资金在“复杂功能”上,使得“复杂功能”一方面在进行增加压力攻击的同时还要伪装成一切工作正常的样子。这一投入还包括建立IR-1型离心机样机的全功能级联保护系统,该系统使用了真正的六氟化铀。

但是未来面向工业控制系统或者“信息物理系统”(Cyber-physical System)的攻击可能不再是国家工程。攻击者完全可以不用自我强加约束条件,不需要破坏设备的同时还要让对方认为这仅仅是设备可靠性问题,开发的代价将会大大降低。

可能将目标定位到民用关键基础设施上。这些系统不但更容易被访问,而且还是标准化的。运行在发电厂或者化工厂的某个系统,可能与下一家工厂的系统配置的十分的相似。事实上,所有新式的工厂,都采用了标准工业控制系统架构,采用的设备都是来自这

相关文档
最新文档