首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >震网的秘密兄弟(一)

震网的秘密兄弟(一)

作者头像
FB客服
发布2018-02-01 18:26:08
7250
发布2018-02-01 18:26:08
举报
文章被收录于专栏:FreeBufFreeBuf

从震网病毒发现到现在已经3年多了,作为第一个被曝光的网络武器,时至今日依然让军事战略家,信息安全专家,政治决策者和广大的公众对它感到迷惑不解。我们已经听过它的故事了:它是怎样攻击纳坦兹的伊朗核设施的,它是怎么隐藏的,它是如何违背了制造者的期望从纳坦兹逃离的。但是这个故事的大部分都是不正确或者说是不完整的。

这是因为震网病毒其实不是一个,而是有两个。大部分的注意力都被那个较简单的攻击程序吸引了,就是改变铀浓缩离心机转子速率的那个。另外一个被“遗忘”的程序复杂度和隐蔽性都高了一个量级。对那些懂得工业工业控制系统安全的人来说可以称得上是一个梦魇。奇怪的是这个更复杂的攻击程序是先出现的,较简单的,被熟知的攻击程序出现在一年以后,他们被发现的时间间隔很短。

伊朗的核计划成为世界舆论的中心有助于我们理解利用程序破坏这个计划的企图。震网对伊朗核计划的影响尚不清楚,因为没有关于多少控制器被感染的消息传出来。不过,经过深度的分析发现这次攻击的目的在于实现攻击,以及实现攻击的过程。我花了3年时间来做分析,不仅仅是计算机代码,包括被攻击的核工厂环境的物理特点以及这个核工厂运作的流程。我发现的整个全貌,包括震网的第一个和不为人知的变种,会对这次攻击带来一次全新的认识。事实证明震网远比公众认知的网络武器危险的多。

2007年,有人在VirusTotal上提交了一个程序,后来证明这是第一个震网病毒变种,至少是我们目前已知的第一个。当然,这是在5年之后,掌握了震网的第二个变种的相关知识才意识到的。要是没有后来较简单的版本,可能这个最初的震网到今天还躺在反病毒专家的档案库里。今天,我们已经知道这个程序包含的载体可以严重干扰纳坦兹的铀浓缩工厂里离心机的保护系统。

后来的震网,被人们熟知的那个,试图让离心机转子转速过快从而让转子破碎。这个最初的震网却使用了不同的策略。它通过破坏级联离心机的保护系统让纳坦兹的离心机在压力过大的环境下运行。保护系统无处不在,因为任何反常的运行都可能导致设备损坏,危害操作员的健康和周围的环境。在纳坦兹我们看到了一个独一无二的保护系统,它维持着那些老式的不可靠的IR-1型的铀浓缩离心机运行。这个保护系统是伊朗核计划的重要组成部分,没有这个系统,那些古老的IR-1就没什么用了。

IR-1离心机是伊朗铀浓缩工作的支柱。它是上个世纪60年代末70年代初欧洲设计的,后来设计被巴基斯坦的核贩子A.Q.Khan偷走。IR-1是全金属的设计,这样才能运行可靠。当然前提是零件的制造精密度高,重要的配件像频率转换器和恒转矩驱动器质量也高。但是伊朗从来没想过高标准的实现这个设计。所以在纳坦兹不得不降低离心机的运行压力。较低的运行压力意味着对转子受到的机械压力也小,这样损坏就会降低。同样产出和效率也会降低。最好的情况下,这些IR-1也就只有设计的一半产能。

这些低效不稳定的IR-1也存在优势,那就是伊朗可以大规模制造。伊朗通过数量来提高产量,接受在生产过程中存在一定的离心机损坏。因为制造的离心机比损坏的多多了。不过要让这么多离心机工作,伊朗也下了一番功夫。最初,这些离心机是非常敏感的工业流程,不允许任何的微小故障。伊朗构建了一个级联的保护系统,使得即使一个离心机破碎了,整个浓缩过程依然可以继续。

从离心机的层面上来说,这个保护系统使用了3个关闭阀,每个离心机上都有安装。关闭这些阀门,出问题的离心机就从整个系统上分离出来。维护工程师就可以在整个流程依然继续的情况下替换这些有问题的离心机。

上图是在2008年,当时的总统马哈茂德·艾哈迈迪-内贾德在纳坦兹控制室观看SCADA的场景。面对摄影师的屏幕显示,两个离心机是孤立的,提示存在问题,但这并不影响整个流程继续。(红色高亮显示有问题的离心机)。

但是这个隔离阀的解决方式也带了很多问题。因为离心机非常不可靠,经常会被关掉。处于同一梯队的离心机可能同时损坏,维护工程师来不及在第一时间替换。一旦这种情况发生,铀浓缩过程中非常敏感的运行压力就会升高。压力一升高就会导致各种各样的问题。

伊朗人民非常有创造力的解决了这个问题。每一个浓缩阶段,都安装了一个排气阀门。有一个传感器检测压力,一旦超过阈值,阀门自动打开,降低压力。

这个系统可以保证纳坦兹的离心机运转。但是这也让它陷入了可能被远程网络攻击的泥潭。有时候会让人怀疑设计这个系统的人是不是头脑混乱。

纳坦兹的级联保护系统是基于西门子S7-417的工业控制器的。它控制阀门操作,六个层级的压力传感器和6个164台离心机的机组。控制器可以理解成直接连接到设备的嵌入式电脑系统。震网设计成可以感染这些控制器,通过某种方式获取控制权。这个场景用户几乎无法想象,也没有在任何工控系统的会议上讨论过。

感染了震网的控制器就变成了一个傀儡。正常的控制逻辑看到的都是震网像让他看到的。在攻击序列执行之前(大约每个月一次攻击),震网会让控制室的工程师看到真实的数据,但是一旦攻击开始就不一样了。

这个震网变种做的第一步是隐藏它的活动。震网记录了21秒级联保护系统的传感器正常情况下的数据。然后在攻击过程中不断循环重放这21秒的数据。控制室里的监控端看上去一切都很正常。

然后震网就开始了它的活动。它关闭了前两级和最后两级浓缩步骤的阀门。阻止了受影响的离心机内的气体流出,反过来导致其余离心机的压力升高。压力的增加将导致更多的六氟化铀进入离心机,给转子更高的机械应力。最终,压力可能会导致气体六氟化铀固化,从而严重损害离心机。

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

不管怎样,攻击者非常谨慎的实施了这次攻击。攻击的代码设计如此精细,因为细小的改变或者配置错误都可能带来很大的影响,甚至导致程序崩溃,一旦崩溃,就会被伊朗的工程师发现从而暴露行踪。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2013-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档