独家连载 | 零日漏洞:震网病毒全揭秘(34)
作者:星期四, 十月 29, 20150

640.webp

经过几周艰苦的分析,朗纳断定,震网的攻击目标并非西门子的PLC,而是受PLC控制的某种设备!那么,震网历尽千难万险,不远万里找到西门子PLC,到底为谁钟情?朗纳提出了一个大胆的猜想……

第十章 精确制导武器(接上)

朗纳进入工业控制系统安全行业之路,可谓曲折离奇。他最早是一名经过严格训练的心理学家,跟工业控制系统完全不沾边。但有趣的是,正是他深厚的心理学背景,将他引向了现在的职业。他早在柏林自由大学学习心理学和人工智能时,就已经开始编写用来统计和分析实验数据的软件了。为了进行心理学诊断,他还编过模仿人类决策模式的程序。

有一次,为了将自己的家用计算机接入大学的主机,他编了一个驱动程序。正是这件事,让他最终走进工控系统安全领域。那时,朗纳有一台老旧的计算机,完成不了数据分析等需要较高运算能力的任务。每次他想要对实验数据进行分析,都得来到校园、把计算机接到大学的主机上。朗纳懒得跑来跑去,于是,他研究了服务器的远程通信协议,并成功编写了一个通过在家拨号即可接入主机的驱动程序。

大学毕业后,机智的朗纳以这个驱动程序为业务基础,成立了一个软件咨询公司。当时,这可算得上是一款突破性的产品。不久之后,工业控制系统的工程师们开始找上门来,让他做控制系统与传感器之间现场通信方面的业务。客户们当时采用的通信方式,经常导致丢包,而朗纳做的驱动程序却能很好解决这一问题。

1997年,罗森加入了朗纳的公司,并设计了一款可以将西门子公司PLC与桌面PC相连接的定制通信系统。在朗纳他俩对西门子公司的PLC和通信协议进行研究的过程中,他们非常吃惊的发现了系统中存在大量安全漏洞。10多年后,当其他人来研究时,仍能看到这些漏洞。更让他们不可理解的是,不管是工业控制系统的所有者还是运营者,对这些安全隐患漠不关心,因而没有实施任何系统防护行为。运营者并未对关键系统和日常业务系统采取层次化或分段式的隔离措施,而是将所有计算机和PLC放在一个对等网络之中,任何一台计算机都可以访问PLC。更有甚者,把控制系统直接接上因特网,却没有设置防火墙和密码,或者使用那些不会更改的默认密码和硬编码密码。

为此,朗纳团队推出了一项帮助客户增强系统安全性的咨询业务。但是,市场并不认可工业控制系统安全这个概念。这是因为,多年来,工控业界并没有像通用IT行业那样频频遭受病毒泛滥和黑客攻击,所以工控业界中的大多数人都没它当成什么大不了的风险。而朗纳就像个怨妇一样,不停的警告他们“你们总有一天会为自己的不在乎买单”,并且经常向他们进行“一个没什么技术的攻击者如何攻击控制系统、并破坏受其控制的业务流程”的演示。然而,这并没有什么卵用。“根本没人听,”朗纳说,“只有极少数公司在工控安全方面投资。”

如今,10多年过去了,震网的出现最终验证了朗纳的忧虑。不过,震网所蕴含的力量和破坏力之大,还是超出了朗纳的预期。这些年,他曾经设想过许多灾难场景。比如,他曾设想,当某些PLC安全漏洞的公开会引来黑客攻击,但完全没想到黑客还能把恶意的“阶梯逻辑”代码注入其中,操控受其控制的进程。

在通用计算机领域,黑客攻击的难度和级别往往随时间而逐渐演化。先出现需要较少努力和技术的简单攻击,然后安全公司和软件供应商做出响应、打上补丁。然后,攻击者再寻找其他漏洞和攻击路径,然后防御者再次将漏洞堵上。每一轮攻击都比上一轮更复杂,防御策略的难度也随之水涨船高。类似地,朗纳认为,在工业控制系统领域,攻击行为的演进也会遵循这个规律。在他的设想中,最初出现的应该是简单的拒绝服务攻击——即向PLC发出“停止”指令,中断受其控制的进程,之后再升级为逻辑炸弹或其他可以更改PLC设置数据的简单技术。但震网越过了这些“初级阶段”,其攻击复杂性直达人力所能及的巅峰。

在震网的代码中,让朗纳印象最深的是,针对安全系统和监控台的“中间人攻击”。震网先潜伏其中并记录下正常运行时PLC接受到的状态值,然后在病毒发起攻击后屏蔽“故障值”,而将“正常值”发给PLC。这个操作的难度,可以与“6吨重的马戏团大象表演单腿倒立”相媲美。其策略之巧妙、设计之严密,超出了朗纳的见识和设想。

同时,这也是朗纳设想的诸多场景中最具攻击性的一种。因为一旦攻击者破坏了向安全系统生成关键数据的逻辑,那么安全系统将无法做出预警,因而迟早会造成人员伤亡。如果某家化工厂或气体精炼厂的安全系统和传感器遭到破坏,攻击者就能在不引起任何注意的前提下,释放毒气或可燃液体,直到引发灾难。虽然震网的设计者并没有杀人的意图,但谁能确保那些不靠谱的跟风模仿者也会如此谨慎呢?

朗纳估计,掌握设计震网所需的西门子控制系统核心知识的人,全世界不超过几十个,自家公司就占了3个。不过,他们仨可没有震网攻击者那么大的本事。

对震网的分析已经持续了3个星期。这一天,朗纳来到会议室,参加关于震网进展的例行晨会。罗森和蒂姆正开心的等着他。一般情况下,朗纳总是衣着有致,精神抖擞。但这天,他刚刚加班整个通宵,看起来十分憔悴。夜里,他一条线索一条线索的追踪,努力找出震网的攻击目标,终于看到了一丝曙光。当他停下来思考时,突然灵光一闪,似乎悟出了什么。

“我知道震网要找的是什么了,”朗纳胸有成竹的说,“它的目标是伊朗核计划。具体目标就是布什尔核电站。”

如前所述,布什尔是伊朗西南部的一个核电厂,在数十年间停停建建、历经浮沉。在遭遇多次推迟和取消后,最终计划于这个月(2010年8月)开始投入运行。但就在此时,官员再次宣布推迟。由于这次推迟与震网病毒的发现在时间上重合,朗纳认为,这足以证明两者之间存在逻辑联系。

罗森和蒂姆用不信任的目光看着朗纳。罗森心想,谁会蠢到去攻击核电站呢?难道他们不怕释放出辐射性的核燃料吗?如果真的要破坏核电站,为什么不直接上炸弹,而用相对不那么可靠的蠕虫作武器呢?为了说服他们,朗纳只好和盘托出,把散落的线索连成一串完整的逻辑脉络,形成了一个疯狂的推测。

近一个月前,当他们第一次得知震网病毒对PLC发起攻击时,就开始从代码中搜寻线索,看它到底想要攻击哪些具体设备。他们认为,要想判断震网的意图,光研究代码是不够的,更重要的是搞清楚震网目标系统的配置情况。如果知道目标PLC到底控制着怎样的设备,以及PLC用于某种设备时是否需进行特别的配置,就能大大缩小目标的可能范围。

为了破解震网,他们在这座二层小楼楼上的一间小办公室里,持续攻关了几个星期。与赛门铁克公司现代化的玻璃外墙办公楼相比,他们公司位于一个安静的居民区,四周到处是树林。他们公司也没有什么隔间,只有一间罗森和蒂姆用的开放式办公室、一间会议室和一间朗纳和他助手用的办公室。

攻关期间,每天早上,他们都会开个碰头会,评估一下取得的进展,然后各自开工。午餐和晚餐时分,他们又会在会议室或附近的小饭馆再次碰面,聊聊各自的想法。工作时段,他们还要接听客户支持热线。如果有客户向公司下订单,朗纳就果断回绝。要知道,他们的公司和赛门铁克简直毫无可比性,更没有外部客户会为他们的研究买单。相反,朗纳必须从公司的利润中拿钱出来,给员工发工资。所以看起来,他们根本没资格把赚钱的正常业务拒之门外。但是,他们并没有抱怨。他们都清楚,破解震网将是他们一生之中非常重要的一项工作。“我们知道,这是恶意代码界有史以来的天字第一号大事,”朗纳回忆道,“破解震网是一项了不起的工作,也是我曾经做过的最棒的一项工作。而且我相信,我已经把它做到了极致。”

几周艰苦分析后,他们得出了一个骇人的结论。震网的攻击目标,并非西门子两款特定型号的PLC,而是使用PLC的特定设备。震网可谓“军用级精确制导武器“,它的攻击目标是唯一的。它并不只是简单的搜索S7-315和S7-417型号的PLC,它还要求,PLC的配置必须与某个清单精确对应。这个关于目标PLC技术配置的详细清单,就保存在载荷部分的代码中。我们知道,每一种使用工业控制系统的设备,都会或多或少的使用默认配置;但即使是同一个工厂的不同车间,也会根据各自需求对默认配置进行调整。但是,震网要找的目标,居然会有如此详尽的PLC配置信息。这只能说明一个问题,就是它的目标,就是伊朗境内的某一个特定设施,或是使用完全相同配置、控制完全一致工业进程的多个设施。震网不会感染任何一个配置稍有偏差的工业控制系统,只会把它们作为传播的载体和攻击的跳板。

花这么多钱、费这么大劲,就为了区区一个目标?!这让朗纳百思不得其解。最后,他还是想通了:只有一种可能,就是目标非常非常之重要。现在他要做的,就是找到这个目标。(待续)

译者:李云凡

 

关键词:

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章