🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
德国汉堡。工业控制系统安全专家拉尔夫•朗纳(Ralph Langner)正坐在办公室里,看着他的两个同事在测试机上运行震网代码,演示出一系列巧妙的欺骗动作。为了验证并再现震网向PLC释放载荷的特定条件,朗纳和他的团队已经工作了好几天,却发现这件事远非他们想象的那么容易。 [![](https://box.kancloud.cn/2015-12-08_5666b197163d3.jpg)](http://www.aqniu.com/wp-content/uploads/2015/10/640.webp_55.jpg) 拉尔夫•朗纳 几天前,朗纳团队找了一台计算机,在上面安装了西门子Step 7软件,碰巧手头还有一台西门子的PLC,就把计算机和PLC连上了。为了监视两者之间的通信,还装了一台网络分析器。与赛门铁克的研究员不同,朗纳团队一直以研究PLC为主业,他们非常清楚装有Step 7软件的计算机和PLC之间的通信方式。因此,他们觉得在其中发现异常现象并不困难。但是,当他们把震网病毒导入计算机后,却没发现任何动静。这太奇怪了。经过反复试验,他们发现震网只对两种特定型号的西门子PLC感兴趣:S7-315和S7-417,但他们手上没有这两种型号的PLC。 他们只好在测试计算机的Windows系统上装了一个调试工具,一来观察震网在释放载荷之前的行为,二来设计出一种方法、让震网误以为找到了目标PLC。原来,震网拉了一个很长、很详细的配置清单,条分缕析的跟“目标PLC”进行比对。朗纳和他的同事搞不懂它在做什么,还好他们也不需要搞清楚。每当震网“质疑”目标“哪一条不对”时,他们就连猜带蒙的编造出一些响应值,直到震网“认为”可以通过比对为止。这实在是一种简单粗暴的破解方法,因此效率不高,花了他们好几天的时间。当他们好不容易凑齐了正确答案,并让震网顺利结束清单比对工作时,终于看到了赛门铁克公司研究员在研究报告中所描述的情景——震网将一系列[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")段注入了PLC。朗纳当时兴奋的说,“这鬼东西,总算被我们逮到了。” 在将震网病毒导入测试计算机之前,他们通过分析测试机和PLC间的正常通信,已经掌握了Step 7发往PLC代码段的正常大小和基本特征。因此,当看到感染震网之后的测试机发过去的代码段所占空间略微大于正常值时,他们判断其中必定有鬼。 那时,他们还不知道震网的[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")能对PLC做什么,但发现PLC被[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")感染本身,就是一件重大新闻。作为工控系统安全专家,他们从未向客户警示过这种形式的风险,也从未想象过会有这种攻击手段。 在赛门铁克的钱哥和法里尔看来,当他们于2010年8月17日发布消息,称震网的目的是破坏PLC时,似乎根本无人关注此事。但实际上,在德国某地郊外的一间办公室,有一个人对这条消息非常感兴趣。他就是朗纳。多年来,他一直警告工业界的客户们说,可能有一天、有人会对控制系统发动网络攻击,并对系统造成严重破坏。那么,这条消息的出现,意味着这一天真的来了。 朗纳是一家由3人小公司的老板。他的公司只做一项业务,就是工业控制系统安全。他对通用计算机安全毫无兴趣,对那些以PC为目标的病毒发布公告漠不关心。即使是通用操作系统或软件的零日漏洞,也吸引不了他的注意。因此,当震网首次登上科技新闻排行榜、并引发安全论坛上的广泛讨论时,他完全不知道有这回事。但当听到赛门铁克说,震网破坏了PLC时,朗纳立刻来了精神。 赛门铁克在公告中并没有明确震网到底对PLC做了什么,只是很隐晦的说震网将恶意代码注入了PLC所谓的“阶梯逻辑”(即PLC控制离心机的核心代码段)——这或许意味着将使PLC失效,又或许意味着将造成不愿言明的更严重后果。朗纳意识到,包括他们公司客户在内的数千家西门子PLC用户正在面临着一个“杀手级病毒”的潜在攻击,并焦急的等待着西门子公司或赛门铁克公司告诉他们,震网到底能对PLC实施怎样的破坏。但奇怪的是,赛门铁克在发出这条令人震惊的公告后,再也没了下文。 朗纳怀疑,赛门铁克的研究员怕是遇上了难题,因为他们一天到晚跟PC打交道,缺乏PLC和工业控制系统方面的知识和经验。可有意思的是,西门子也是一言不发。朗纳想,哎,这就怪了。不管怎么说,被攻击的是西门子家的产品,西门子有义务对恶意代码进行分析,并告诉用户应该怎么办。但这家德国著名公司在7月份发布了几条简短的声明之后,就陷入了沉默。 朗纳怒了。虽然震网的目标只是安装Step 7软件的计算机,但谁知道它到底要干什么?谁又敢说它不会利用相关漏洞对其他系列和型号的PLC造成破坏?最重要的是,震网用于将恶意代码注入西门子PLC的漏洞,可能同时存在于其他工业控制系统中。而彼时,因特网上已经可以自由下载震网的样本,任何黑客、犯罪分子、恐怖组织可以研究这些代码,并以其为模板设计出针对其他类型PLC、可大规模传播、更具攻击性的病毒来。 这让另外两个当事人——德国国家计算机应急响应团队和美国国土安全部的工业控制系统网络应急响应团队(ICS-CERT)——的沉默更加令人费解。他们都是专门负责维护本国关键基础设施控制系统安全的政府机构,但却不约而同的,对震网的曝光及相关事态不置一词。根本没人听说ICS-CERT发出了“有病毒注入西门子PLC”的警报,一句话也没有。德国官方的沉默就更没天理了。要知道,大多数叫得出名字的德国发电厂和大型工厂,用的都是西门子公司的工业控制系统。 于是,朗纳把问题抛给了他的两位同事:拉尔夫•罗森(Ralf Rosen)和安德烈亚斯•蒂姆(Andreas Timm)。经过讨论,他们决定,要亲自啃下这块硬骨头。虽然这两位工程师之前从未做过病毒的逆向工程,但是,既然没有其他人告诉他们震网病毒到底对PLC做了什么,他们只好自己动手了。这意味着,他们要在完成正常的、有钱赚的工作的同时,挤出时间来“做公益”。不过,他们确信,这正是他们的使命所系。 朗纳他们3个人建立的这个团队有点奇特,但非常高效。在工控系统安全这样一个行业里,人们对工程师的印象往往是衣着邋遢、脸色苍白、头发乱糟糟的,而42岁的朗纳恰恰有着令人眼前一亮的外型。他梳一头利索的黑色短发、间或夹杂着几缕灰色,穿一身时尚贴身的商务套装,脚蹬一双精心保养的皮鞋。他有一双狡黠的蓝眼睛,皮肤是健康的小麦色,还有着如登山客般匀称、健美的身材。而这些,都是他常年在阿尔卑斯山中滑雪旅行和徒步攀越的副产品。而且,朗纳的行事风格直率、大胆。可以这样说,他既是个颜值爆表的男神,又是个特立独行的怪咖。在业界,他以直言不讳、持论偏激而著称,经常发表一些让业内同行怒不可遏的刺激性言论。多年来,他一直喋喋不休的抱怨控制系统的安全问题。他这种又臭又硬的倔脾气,经常让最需要听取他意见的人敬而远之。与他相反,罗森和蒂姆这两个40多岁的自身工程师,穿着随意、谈吐温和,在团队中扮演着朗纳背后的辅佐角色。 虽然这3个人怎么看都不搭,但对于分析震网病毒而言,可能再也没有比他们更适合的组合了。蒂姆已经为朗纳工作了10年,罗森来的比蒂姆还要早3年。在长久的时间内,他们积累了关于工业控制系统的广泛知识,特别是与西门子公司产品有关的知识。因为,西门子作为他们最大的长期客户,经常买他们公司的软件产品,并且有时会让他们对员工进行培训。可以说,翻遍整个西门子公司,恐怕也找不出几个比他们仨更了解西门子工业控制系统的员工来。(待续) 朗纳进入工业控制系统安全行业之路,可谓曲折离奇。他最早是一名经过严格训练的心理学家,跟工业控制系统完全不沾边。但有趣的是,正是他深厚的心理学背景,将他引向了现在的职业。他早在柏林自由大学学习心理学和人工智能时,就已经开始编写用来统计和分析实验数据的软件了。为了进行心理学诊断,他还编过模仿人类决策模式的程序。 有一次,为了将自己的家用计算机接入大学的主机,他编了一个驱动程序。正是这件事,让他最终走进工控系统安全领域。那时,朗纳有一台老旧的计算机,完成不了数据分析等需要较高运算能力的任务。每次他想要对实验数据进行分析,都得来到校园、把计算机接到大学的主机上。朗纳懒得跑来跑去,于是,他研究了服务器的远程通信协议,并成功编写了一个通过在家拨号即可接入主机的驱动程序。 大学毕业后,机智的朗纳以这个驱动程序为业务基础,成立了一个软件咨询公司。当时,这可算得上是一款突破性的产品。不久之后,工业控制系统的工程师们开始找上门来,让他做控制系统与传感器之间现场通信方面的业务。客户们当时采用的通信方式,经常导致丢包,而朗纳做的驱动程序却能很好解决这一问题。 1997年,罗森加入了朗纳的公司,并设计了一款可以将西门子公司PLC与桌面PC相连接的定制通信系统。在朗纳他俩对西门子公司的PLC和通信协议进行研究的过程中,他们非常吃惊的发现了系统中存在大量安全漏洞。10多年后,当其他人来研究时,仍能看到这些漏洞。更让他们不可理解的是,不管是工业控制系统的所有者还是运营者,对这些安全隐患漠不关心,因而没有实施任何系统防护行为。运营者并未对关键系统和日常业务系统采取层次化或分段式的隔离措施,而是将所有计算机和PLC放在一个对等网络之中,任何一台计算机都可以访问PLC。更有甚者,把控制系统直接接上因特网,却没有设置防火墙和密码,或者使用那些不会更改的默认密码和硬编码密码。 为此,朗纳团队推出了一项帮助客户增强系统安全性的咨询业务。但是,市场并不认可工业控制系统安全这个概念。这是因为,多年来,工控业界并没有像通用IT行业那样频频遭受病毒泛滥和黑客攻击,所以工控业界中的大多数人都没它当成什么大不了的风险。而朗纳就像个怨妇一样,不停的警告他们“你们总有一天会为自己的不在乎买单”,并且经常向他们进行“一个没什么技术的攻击者如何攻击控制系统、并破坏受其控制的业务流程”的演示。然而,这并没有什么卵用。“根本没人听,”朗纳说,“只有极少数公司在工控安全方面投资。” 如今,10多年过去了,震网的出现最终验证了朗纳的忧虑。不过,震网所蕴含的力量和破坏力之大,还是超出了朗纳的预期。这些年,他曾经设想过许多灾难场景。比如,他曾设想,当某些PLC安全漏洞的公开会引来黑客攻击,但完全没想到黑客还能把恶意的“阶梯逻辑”代码注入其中,操控受其控制的进程。 在通用计算机领域,黑客攻击的难度和级别往往随时间而逐渐演化。先出现需要较少努力和技术的简单攻击,然后安全公司和软件供应商做出响应、打上补丁。然后,攻击者再寻找其他漏洞和攻击路径,然后防御者再次将漏洞堵上。每一轮攻击都比上一轮更复杂,防御策略的难度也随之水涨船高。类似地,朗纳认为,在工业控制系统领域,攻击行为的演进也会遵循这个规律。在他的设想中,最初出现的应该是简单的拒绝服务攻击——即向PLC发出“停止”指令,中断受其控制的进程,之后再升级为逻辑炸弹或其他可以更改PLC设置数据的简单技术。但震网越过了这些“初级阶段”,其攻击复杂性直达人力所能及的巅峰。 在震网的代码中,让朗纳印象最深的是,针对安全系统和监控台的“中间人攻击”。震网先潜伏其中并记录下正常运行时PLC接受到的状态值,然后在病毒发起攻击后屏蔽“故障值”,而将“正常值”发给PLC。这个操作的难度,可以与“6吨重的马戏团大象表演单腿倒立”相媲美。其策略之巧妙、设计之严密,超出了朗纳的见识和设想。 同时,这也是朗纳设想的诸多场景中最具攻击性的一种。因为一旦攻击者破坏了向安全系统生成关键数据的逻辑,那么安全系统将无法做出预警,因而迟早会造成人员伤亡。如果某家化工厂或气体精炼厂的安全系统和传感器遭到破坏,攻击者就能在不引起任何注意的前提下,释放毒气或可燃液体,直到引发灾难。虽然震网的设计者并没有杀人的意图,但谁能确保那些不靠谱的跟风模仿者也会如此谨慎呢? 朗纳估计,掌握设计震网所需的西门子控制系统核心知识的人,全世界不超过几十个,自家公司就占了3个。不过,他们仨可没有震网攻击者那么大的本事。 对震网的分析已经持续了3个星期。这一天,朗纳来到会议室,参加关于震网进展的例行晨会。罗森和蒂姆正开心的等着他。一般情况下,朗纳总是衣着有致,精神抖擞。但这天,他刚刚加班整个通宵,看起来十分憔悴。夜里,他一条线索一条线索的追踪,努力找出震网的攻击目标,终于看到了一丝曙光。当他停下来思考时,突然灵光一闪,似乎悟出了什么。 “我知道震网要找的是什么了,”朗纳胸有成竹的说,“它的目标是伊朗核计划。具体目标就是布什尔核电站。” 如前所述,布什尔是伊朗西南部的一个核电厂,在数十年间停停建建、历经浮沉。在遭遇多次推迟和取消后,最终计划于这个月(2010年8月)开始投入运行。但就在此时,官员再次宣布推迟。由于这次推迟与震网病毒的发现在时间上重合,朗纳认为,这足以证明两者之间存在逻辑联系。 罗森和蒂姆用不信任的目光看着朗纳。罗森心想,谁会蠢到去攻击核电站呢?难道他们不怕释放出辐射性的核燃料吗?如果真的要破坏核电站,为什么不直接上炸弹,而用相对不那么可靠的蠕虫作武器呢?为了说服他们,朗纳只好和盘托出,把散落的线索连成一串完整的逻辑脉络,形成了一个疯狂的推测。 近一个月前,当他们第一次得知震网病毒对PLC发起攻击时,就开始从代码中搜寻线索,看它到底想要攻击哪些具体设备。他们认为,要想判断震网的意图,光研究代码是不够的,更重要的是搞清楚震网目标系统的配置情况。如果知道目标PLC到底控制着怎样的设备,以及PLC用于某种设备时是否需进行特别的配置,就能大大缩小目标的可能范围。 为了破解震网,他们在这座二层小楼楼上的一间小办公室里,持续攻关了几个星期。与赛门铁克公司现代化的玻璃外墙办公楼相比,他们公司位于一个安静的居民区,四周到处是树林。他们公司也没有什么隔间,只有一间罗森和蒂姆用的开放式办公室、一间会议室和一间朗纳和他助手用的办公室。 攻关期间,每天早上,他们都会开个碰头会,评估一下取得的进展,然后各自开工。午餐和晚餐时分,他们又会在会议室或附近的小饭馆再次碰面,聊聊各自的想法。工作时段,他们还要接听客户支持热线。如果有客户向公司下订单,朗纳就果断回绝。要知道,他们的公司和赛门铁克简直毫无可比性,更没有外部客户会为他们的研究买单。相反,朗纳必须从公司的利润中拿钱出来,给员工发工资。所以看起来,他们根本没资格把赚钱的正常业务拒之门外。但是,他们并没有抱怨。他们都清楚,破解震网将是他们一生之中非常重要的一项工作。“我们知道,这是[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")界有史以来的天字第一号大事,”朗纳回忆道,“破解震网是一项了不起的工作,也是我曾经做过的最棒的一项工作。而且我相信,我已经把它做到了极致。” 几周艰苦分析后,他们得出了一个骇人的结论。震网的攻击目标,并非西门子两款特定型号的PLC,而是使用PLC的特定设备。震网可谓“军用级精确制导武器“,它的攻击目标是唯一的。它并不只是简单的搜索S7-315和S7-417型号的PLC,它还要求,PLC的配置必须与某个清单精确对应。这个关于目标PLC技术配置的详细清单,就保存在载荷部分的代码中。我们知道,每一种使用工业控制系统的设备,都会或多或少的使用默认配置;但即使是同一个工厂的不同车间,也会根据各自需求对默认配置进行调整。但是,震网要找的目标,居然会有如此详尽的PLC配置信息。这只能说明一个问题,就是它的目标,就是伊朗境内的某一个特定设施,或是使用完全相同配置、控制完全一致工业进程的多个设施。震网不会感染任何一个配置稍有偏差的工业控制系统,只会把它们作为传播的载体和攻击的跳板。 花这么多钱、费这么大劲,就为了区区一个目标?!这让朗纳百思不得其解。最后,他还是想通了:只有一种可能,就是目标非常非常之重要。现在他要做的,就是找到这个目标。(待续) 代码分析部分的工作,大部分都是技术性、程序化的,包括分隔组件、解释代码、逆向工程等。但是,要找到数字代码和现实世界中的某个特定目标之间的联系,可不是什么技术活。对于目标,他们3个人提出了很多种假设,每提出一种,就回到代码中搜寻证据。同时,朗纳积极与业界的同行联络,让他们看看,能否根据这些PLC特定配置信息找到对应的设备。但是几天过去,毫无进展。最后,朗纳决定,放弃通过技术细节寻找目标的路线,换个视角,从新闻标题和其他信息源中寻找线索。经过几个通宵的上网搜索,他终于得出了“目标是布什尔核电站”的大胆结论。 朗纳对布什尔核电站的怀疑,始于他回想起去年曾在网上看到的一张照片。据称,照片来自一名记者对布什尔核电站的现场采访。照片上有个监视器,上面弹出一条消息,显示计算机上安装的西门子WinCC软件的许可证已经过期。这似乎可以证明,这家核电厂使用了西门子公司的软件。来自工业控制系统业内同行的消息证实,布什尔核电站用的是西门子S7-417型号的PLC。进一步研究表明,为布什尔核电站安装控制设备的这家俄国公司,在其他客户工厂中使用的PLC也是西门子这个牌子。其中有一家客户是保加利亚的核电站,这家核电站的控制系统很可能是以布什尔核电站为模板设计的。当朗纳得知,这家保加利亚核电站有一个受西门子PLC控制的蒸汽涡轮发动机时,头脑中立刻闪过3年前美国爱达荷国家实验室做过的极光发电机实验。那个实验的结论恰恰是:[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")可以摧毁涡轮发动机。 公司的会议室里坐着3个人。朗纳慷慨陈词,罗森和蒂姆则为他逻辑清晰的推理频频点头。他们很清楚,震网背后的工作量之巨超乎想象,世界上没有多少目标值得如此大动干戈。如果如朗纳所推测,震网意在破坏布什尔核电站,那这次攻击实质上就是一种战争行为。 那么,如果这是战争行为,那么如果一旦将其公诸于众,伊朗方面会做出何种反应呢?攻击方设计震网的目的,本是避免与伊朗之间爆发全面战争,但如果现在放出这条消息,将很可能引爆热战! 经过与罗森和蒂姆的讨论,朗纳发现他走对了路子。为了进一步确认伊朗核计划就是震网的目标,他给一位拥有丰富核电站方面知识的客户打了一个电话。这位客户在欧洲顶级铀浓缩设备制造商——浓缩技术公司工作。巴基斯坦的卡迪尔正是从这家公司的前身——尤兰科公司——偷走了一个早期离心机设计方案并卖给伊朗。朗纳心想,如果震网的目标不是涡轮机,也许会是布什尔核电站用来浓缩铀的离心机吧。(朗纳错误的认为,铀浓缩离心机应该在布什尔核电站。) “我有个问题想请教你,”朗纳在电话中说,“有没有可能通过操纵控制代码破坏一台离心机呢?” 短暂的沉默过后,电话另一头传来了应答。“我不能告诉你,朗纳。这是机密。”他说,“你知道,铀浓缩离心机可不只有我们德国和荷兰在用。其他很多国家也在用。” “我懂的,”朗纳说,“比如伊朗也在用。这正是我给你打电话的原因。因为我们正在分析震网。” “对不起,”这位客户严肃的说,“我只能说这么多了。关于离心机的信息都是机密。” 对于朗纳而言,这样的答复已经足够。他告诉罗森和蒂姆,必须立即公布这条消息。如果布什尔真是震网的目标,自然会有人出来确认。震网和它的目标的关系就像钥匙和锁。一把钥匙只能打开一把锁。那么,如果他们公布了钥匙的设计细节(针对铀浓缩离心机),扮演锁角色的工厂一定会看看,这把钥匙是不是冲着自己来的。 2010年9月13日,在赛门铁克发布“震网意图是攻击PLC而非窃密”的公告之后不到1个月,朗纳在博客上以“本世纪最大的黑客攻击”为题目,发布了一条简短的内容。其中,他断言震网的目的是“直接攻击安装某一特定工业控制系统的设施”,但没有进一步言明。3天后,他在跟帖中进一步指出,“根据我们目前掌握的证据,震网利用机密级的内幕知识,发动了一次意在直接破坏设备的攻击。我认为,有必要让大家知道这个事实。” 紧跟着,是一张震网攻击PLC的技术路线图,详细描述了震网拦截西门子PLC命令并注入[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")的每个步骤。“这可不是哪个少年黑客呆在家里就能做出来的,”朗纳写道。攻击者一定是那些具有国家背景、经验老道、且掌握了目标系统特定知识的人。他大致描述了恶意代码通过注入PLC对某些未知关键进程进行操控的过程,之后非常谨慎的抛出了他的“假说”——震网的攻击目标是:布什尔核电站。他宣称,虽然还有一些事情没弄清楚,但代码中的有效证据将足以指证震网攻击的目标,并可能最终指证出攻击者的身份。 短短几句话,揭开了蒙在震网攻击方脸上的面纱。至此,凭借一家白俄罗斯小公司,几名完全搞不懂PLC是什么的加州研究员,和一个大言不惭的德国佬及其团队的努力,仅仅几个月时间,这个耗时数年、可能耗资数百万美元、顶尖专家规划并设计的网络武器,就被彻底曝光并破解了。 这时,朗纳开始考虑钱哥在发布公告后面临的那个问题——攻击方会作何反应?真正目标一旦曝光,震网就会立刻变成废物。想必攻击方肯定会考虑到这一点,并能清醒的认识到,要完成任务,必须利用好“从被发现到被彻底破解”的这一段机会窗口。那么,事到如今,攻击者是否已经完成了最后一步的工作、实现了对目标的“致命一击”呢?朗纳认为,答案是肯定的。“我们将看到,马上会有大事发生。”他在博客中写道,“爆炸性的大事。”最后,他单独发了这样一条跟帖:“欢迎来到网络战时代。” 同时贴在网上的,还有一张名为“震网克星”的照片。照片以办公室白板为背景,朗纳身穿一件笔挺的白衬衣和没扣纽扣的西装背心,罗森和蒂姆在他身后。蒂姆戴着一副黑色墨镜、微微颔首,3个人那是相当的得(装)意(逼)。 [![](https://box.kancloud.cn/2015-12-08_5666b1979d992.jpg)](http://www.aqniu.com/wp-content/uploads/2015/10/640.webp-238.jpg) 朗纳团队 发博后,朗纳同时向多家顶级媒体提交了新闻稿,期待着爆炸性的头条新闻。结果让他十分沮丧——根本没人理他。赛门铁克先前发公告后“鸦雀无声”的情景,再次出现。朗纳那时想,“看来,所有人都认为我疯了。” 不过,至少有一个明白人,这个人就是德国安全公司GSMK首席技术官弗兰克•里格尔(Frank Rieger)。他看过朗纳关于“震网目标可能是伊朗核计划”的推测后,深有同感。但是,他怀疑,目标不是布什尔核电站,而是几百英里以北的纳坦兹。因为布什尔核电站至今尚未开始运行,而纳坦兹铀浓缩厂2007年就开工了。而且,纳坦兹有数千台高速旋转的离心机,对那些希望通过网络攻击来破坏伊朗核计划的人来说,这才是最棒的目标。里格尔把他的想法通过博客发布出来,并在一家德国报纸上发表了一篇文章。在这两条信息中,他都援引了路透社在2009年震网首次上线前后发布的一则报道。这则报道称“以色列推出了一个针对伊朗核计划的十年期网络战项目”,报道中还提到,来自美国的一个匿名人士推测,(以色列)可能使用“恶意软件”来破坏或接管铀浓缩工厂的控制系统。 [![](https://box.kancloud.cn/2015-12-08_5666b197be918.jpg)](http://www.aqniu.com/wp-content/uploads/2015/10/640.webp-324.jpg) 德国安全公司GSMK首席技术官弗兰克•里格尔 此外,之所以怀疑纳坦兹,还有另外一个原因。震网首个版本上线3周后的2009年7月16日,维基解密创始人朱利安•阿桑奇(Julian Assange)在网站上发布了一条神秘的消息,称纳坦兹可能有事发生。与伊朗核计划有关的一位匿名人士告诉阿桑奇,纳坦兹近期发生了“危重”的涉核事故。一般来说,维基解密只在网站上发布正式文件,不会随便发布来自匿名信息源的消息,但这一次阿桑奇亲手打破了这个规则。他说,他有理由相信那个人说的是真话。并且,他在消息中还附上了一条当天发布的BBC新闻,称伊朗原子能机构负责人阿扎加德,已于20天之前由于不明原因离职。从时间节点上看,这几件事与2009年震网首个版本上线之间似乎存在着某种联系。 [![](https://box.kancloud.cn/2015-12-08_5666b198162f8.jpg)](http://www.aqniu.com/wp-content/uploads/2015/10/640.webp-426.jpg) 维基解密创始人朱利安•阿桑奇 不论阿扎加德的离职是否与纳坦兹事故有关,里格尔的“纳坦兹假说”切切实实地引起了公众对震网事件的注意。此前一直对震网持忽略态度的美国主流媒体,采信了里格尔的推测,开始对相关事态进行报道。十多年来,各方对于延缓纳坦兹铀浓缩进程的持续角力,使纳坦兹始终处于地缘政治紧张局势的焦点。现在,舞台上又出现了一个前所未有的数字武器。突然之间,之前那个仅知名度仅限于科技界之内、干巴巴的技术神话,摇身一变成了一个有着神秘光环的地下间谍游戏。杂糅着政治、核设施、阴谋、高风险等元素的震网,成为公众津津乐道、并愿意口口相传的流行话题。(待续) 朗纳首次发博之后,立即跟美国的乔•韦斯取得了联系,就朗纳团队的发现进行讨论。在工业控制系统安全业内,朗纳和韦斯都属于那种不太受人待见的“炮筒子”,彼此间却惺惺相惜。他们在“劝说工业控制系统业主必须重视安全漏洞”的阵线上已经并肩战斗了多年。业内人士一提到这俩人的名字就摇头,同时却对他们锲而不舍的劲头暗自钦佩。彼时,韦斯即将在马里兰州召开一场研讨会,并安排朗纳就另一个主题发言。朗纳问韦斯,是否可以把主题换成震网。韦斯幽默的答道:“我是说可以还是说可以呢。” 朗纳将于下周飞往美国参加这个研讨会。他美滋滋的想,自己发表演讲时,会场内一定会哗然一片。就在此时,西门子公司和美国国土安全部分别就震网发表了一份声明,但没有任何实质性内容。看到这里,朗纳立即在博客上宣布,将在研讨会上公布团队研究成果的全部细节。如此一来,与会听众们的胃口都被吊了起来。 韦斯给朗纳安排的演讲时间是45分钟,但实际上朗纳讲了一个半小时。不过,没有任何人觉得枯燥。来自水利、化工、电力行业的100多名与会者一字不漏的听着朗纳的发言。韦斯回忆起当时的场景说:“他演讲时,在座的每个人一边凝神静听,一边张大嘴巴。”朗纳真是科技界的奇才,他就像个经验丰富而魅力四射的演说家一样,能把干巴巴的技术细节讲出花儿来。当然,他可不是来开嘉年华的,他是来震慑人心的。渐渐的,这些工业控制系统的业主们终于明白,如果明天有人发起一场针对PLC的大范围攻击,他们所有人只能坐以待毙,连探测都探测不到,更别提做出反应了。如果说一台装Windows系统的台式机或笔记本遭到攻击,还有办法发现,然而,当有人用类似震网这种“黑科技”感染PLC时,任何人都无计可施。根本没有针对PLC的反病毒软件,也没有任何方法可以在PLC受到类似震网的感染时发出警报。探测攻击的唯一途径,就是在病毒利用Windows系统作跳板、抵达PLC时将其发现。可是,震网让Windows上的防护措施成了一个笑话,传统的反病毒软件全成了摆设。现场操作人员更是无能为力。 朗纳预计,第一个跟风模仿攻击将会在6个月之后出现。他警告听众说,这些攻击可能会改头换面,不像震网那么复杂,因为根本没必要。只有像纳坦兹那样的高价值目标才需要攻击者冒这么大风险,震网的攻击者如果愿意,可以干掉任何有漏洞的关键基础设施。只有震网的攻击者才会小心翼翼,避免非目标计算机不会受到影响,而其他攻击者恐怕不会费劲去走这个钢丝。下决心通过攻击工业控制系统来干掉某个发电厂的犯罪分子,根本不会在乎,病毒是否对发电厂的其他设备造成破坏,也不会在乎,病毒是否会感染其他控制系统。 研讨会结束后的这个周末,朗纳来到了华盛顿特区,向前任美国国家网络安全协调官梅丽莎•哈撒韦(Melissa Hathaway)通报了他的研究成果。哈撒韦立即意识到:美国乃至全球范围内所有关键基础设施正面临潜在的网络攻击威胁。她在事后接受纽约时报采访时说,全世界没有任何一个国家做好了迎接这种威胁的准备。“(跟风模仿者发起的)下一场攻击到来之前,我们只有90天时间。” 就在这个周末,伊朗官员首次透露,布什尔核电站的计算机确实遭到了震网的攻击。奇怪的是,他们并没有提到纳坦兹。而且,对布什尔核电站攻击的细节,让人开始怀疑:震网的载荷到底有没有成功侵入呢?布什尔核电站的项目经理马哈茂德·贾法里(Mahmoud Jafari)告诉记者,只有部分员工的办公计算机遭到了攻击,生产网络安然无恙。“核电站中的所有计算机程序运行正常,并未受到震网的破坏。”伊朗电信部长雷萨•塔吉普(Reza Taghipour)也称蠕虫“可能包含”[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。"),但其感染并未造成显著影响。因为震网只有在条件完全吻合时才会释放载荷,所以报道中出现破坏有限的内容并不奇怪。但是,单从报道来看,震网似乎只是感染了布什尔核电站的PC,而没有实现将其载荷注入PLC的目标。 然而,在伊朗发布的报道中,有一个引人注目的细节。贾法里在接受采访时说,伊朗共发现了震网的5个不同版本。而赛门铁克和其他安全公司却只发现了3个。 是贾法里搞错了吗?不管怎么说,听到震网可能还有两个未知版本的消息,各方都很兴奋。如果这两个版本确实存在,那么其中很可能会有关于震网及攻击者的更多线索。不幸的是,由于伊朗官员不愿将震网代码拷贝给外国人,西方各国的研究员无法一睹其真容。 朗纳这边,在参加韦斯的研讨会、会见哈撒韦之后,他需要冷静一下,对过去几周中所发生的这一切进行反思。于是,他步踱到美国国家广场,在林肯纪念碑的台阶上,盯着来来往往观光拍照的游客,一坐就是几个钟头。他回想起美国国土安全部ICS-CERT和西门子公司发布的报告。难道他们不知道震网对PLC“阶梯逻辑”的攻击有多可怕吗?难道他们不知道跟风模仿者的攻击将给关键基础设施带来巨大风险吗?为什么他们对此只字未提?为什么公众和美国国会对震网的出现表现出匪夷所思的沉默?难道他们不在乎,震网打开了“合法使用网络武器解决国际政治争端”的潘多拉魔盒吗?难道他们不忧虑,震网即将带来一场不可遏制的军备竞赛吗?朗纳想,看来,大家都不愿意公开讨论这些问题,因为公开讨论会引发公众对幕后真凶的无尽好奇与探寻。 朗纳决定,就算全世界都不吭声,他也要做那个“吃螃蟹的”。所以,他一回到德国,就把在韦斯研讨会公开演讲上“留了一手”的技术细节发上了博客。博文上线后,立即引来了包括美国政府和军方在内的众多访问者。这正是朗纳希望看到的。震网的重要意义已取得广泛共识,因此其他安全公司会在朗纳团队研究成果的基础上,继续前行。虽然他们已经掌握了关于震网的很多信息,但仍然有诸多未知数,故而仍然有诸多工作要做。比如说,他们只是发现震网的目标是破坏某一处像纳坦兹那样的核设施,但究竟怎么破坏、破坏的效果是什么?要回答这些问题,还得回到分析代码的路子上。 接下来的3周,为弥补研究震网期间的收入,朗纳他们回到了做单赚钱的正常轨道上。但是,看到赛门铁克和其他安全公司没有一点动静,朗纳决定,再次停下公司的业务,重新捡起震网的活计。 “兄弟们,”他对罗森和蒂姆说,“震网的事,我们得亲手干到底。”(待续) 朗纳以为,美国政府并未在意震网,而且也不知晓它的技术细节。但实际上,美国政府中有人一直在关注此事,只是没有公开而已。7月,白俄罗斯公司关于震网的第一份公告发出后,国土安全部的研究员们就已经在几天之内,完成了对震网的大部分分析和破解工作,并先于赛门铁克和朗纳得出了震网意在破坏PLC的结论。 2010年7月15日早上,就在全球安全业界首次看到震网横空出世的同时,美国国土安全部位于弗吉尼亚州阿灵顿的国家网络安全与通信集成中心(NCCIC)也注意到了这个代码规模庞大的蠕虫。之后,西门子公司向德国国家计算机应急响应团队报告,震网中的[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")意在攻击西门子PLC。这份报告又辗转来到了美国。 NCCIC,一般被念作N-Kick,是一家以监视、控制、协调响应面向关键基础设施和国内政府设施的攻击为使命,而刚刚成立9个月的新机构。具有讽刺意味的是,收到来自德国的报告时,中心主任肖恩•麦格克(Sean McGurk)正在为即将举办的“网络风暴III”演习做准备。这个系列的演习每2年举办一次,核心内容是模拟对美国关键基础设施发动网络攻击。今年的演习,将是对全天候监控中心应急协同能力的首次真正检验。但是,与震网带来的真实威胁相比,筹备演习的工作顿时变得不那么重要了。 [![](https://box.kancloud.cn/2015-12-08_5666b19883c22.jpg)](http://www.aqniu.com/wp-content/uploads/2015/11/640.webp-341.jpg) NCCIC中心主任肖恩•麦格克 没装窗户的监控厅,是个“绝密特务机构”(three-letter agencies)。坐在里面的,有中情局和国安局的情报分析员,有联邦调查局和其他秘密机构的执法人员,还有来自国家互联网应急响应团队和关键基础设施应急响应团队的计算机安全专家。当然,也少不了来自几家最大电信公司和关键基础设施运营商的联络员。 麦格克把震网的副本交给了爱达荷州的ICS-CERT实验室,在那里,研究人员得出了“震网[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")只会感染特定型号PLC”的结论。两年前,实验室在“国家SCADA测试平台”项目中,就曾评估过震网攻击的Step 7软件的脆弱性,不过当时用来做实验的PLC已经还给西门子了。现在,他们得重新找西门子要一个PLC,才能对震网做进一步的分析。足足3周后,PLC终于在西门子工程师组团押运之下,来到了爱达荷。 与此同时,爱达荷实验室的研究员也没闲着。他们一边对载荷部分代码进行逆向工程,一边让弗吉尼亚州监控厅的同事们破解导弹部分,通力制作用于标示震网各函数关系的流程图。麦格克说,仅两天时间,他们就区分出其中的4000多个函数(函数数量远超大多数商用软件),还发现了赛门铁克和卡巴斯基后来挖到的全部4个零日漏洞。 7月20日,ICS-CERT对工业控制系统业主发出通知,称发现以西门子Step 7软件为攻击目标的恶意代码。但公告中并未提及运作细节,只是说“尚未掌握恶意代码的全部功能和真实意图。”稍后发布的公告中,提到了震网使用的零日漏洞的相关信息,以及如何检测并杀灭恶意代码的方法,但并没有言明攻击的目的,更没有提到它所具有的破坏性。麦格克说,政府部门的职责是帮助关键基础设施业主发现并去除震网病毒,而非告知恶意代码的分析结论。 代码分析任务完成几天后,麦格克召开了一场由几家政府机构和私营业主代表参加的电话会议,通报了中心的发现。在他们以往的讨论中,偶尔会出现贬低漏洞重要性、及声称恶意代码“没什么大不了”之类的言论。有时候,持此论调的是政府官员,有时候则是关键基础设施业主和运营商,还有时候是控制系统供应商。但是,当麦格克抛出震网这枚炸弹的技术细节时,电话中鸦雀无声。“情况超出了所有人的预想。”他回忆道。 奇怪的是,自此之后,不论是电话会议还是监控厅,再也没听到任何关于震网的消息。麦格克说,震网刚出现时,监控厅中各家情报机构的分析员们,纷纷跑到本单位机密数据库中搜索与之相关的线索,却一无所获。而且,监控厅中的人们都在暗忖:“这事是美国干的吗?”但没有一个人敢把它说出来。外人可能会想,为什么没人去私下问问同处一室(监控厅)的中情局或国安局情报分析员,“哎,是不是你们搞的?”麦格克的答复是,中心的职责,是评估恶意代码的功能特点,并告诉国人如何加以防范应对,而不是对攻击进行归因。因此,在监控厅这么严肃的工作氛围中,就算有人想八卦,也不会真的问出来。 “谁也不会一看到恶意代码,就觉得它是自己人干的。谁也不会认为躲在病毒之后的那个狙击手就是自家兄弟。”他说,“当然,也许会有这种可能性……但是,在病毒刚出现那个阶段的紧张氛围中,谁也不会想太多,谁也不会把它(攻击来自美国)当成默认判断。” 很快,华盛顿方面对震网兴趣大增。接下来的几个月,麦格克不停的忙于向各部门的大佬们汇报情况。听他汇报的领导有:国土安全部部长珍妮特·纳波利塔诺(Janet Napolitano)、约翰·布伦南(John Brennan)及其他白宫国家安全事务团队成员、参议院和白宫情报委员会、国防部以及国防部情报局的官员。他甚至亲赴米德堡,向国家安全局局长、网络战司令部司令基思•亚历山大进行了汇报。而业界普遍怀疑,亚历山大,正是震网的幕后操盘者。 在米德堡,来自军方、政府和情报界的一众高官,认真听取了麦格克关于团队研究成果的汇报,但仍然没有人就“美国在其中扮演何种角色”发问。他们问麦格克,震网会不会对美国的工业控制系统进行攻击,暴露于震网攻击之下的美国工业控制系统有多大规模。他们还好奇的问麦格克,能否判断出震网的真正目标是哪里。最后的问题是,病毒代码中有没有跟攻击者是谁有关的信息。对于这个问题,麦格克回答说,与知名黑客团队或国家背景间谍的通常做法不同,震网并没有在代码中留下与攻击者身份有关的线索。 麦格克认为,不论是在秘密汇报中,还是国会作证时,没有一个人问过他“你认为是美国干的吗?”这个问题。“我觉得,就算是开玩笑,也不会有人在正式汇报场合说出‘你认为是美国干的吗’这样的话。因为,这不符合汇报和作证词的程序和风格。我知道,怀疑和推测四处流传,但在我所接触的这个层面,流言没有市场。” 此外,也没有任何人暗示麦格克,让他下令他的团队远离震网。“没人告诉我,嘿,停下来,不要分析震网的代码了。”他说,“相反,在破解震网的工作中,我们得到了各个部门的通力合作……这些协作,既帮我们提高了代码分析的效率,又帮各方加深了对震网会造成何种威胁的理解。” 然而,纵然华盛顿的官员们始终没有公开讨论这个显而易见的问题,业界专家和观察人士还是笃定的认为,要么美国,要么再加上以色列,就是震网攻击的发起方。在他们看来,攻击背后的真相浮出水面,只是时间问题。 如此,朗纳对于“震网是针对伊朗核计划的精确制导武器”的论断,必将令白宫和五角大楼方面惊慌失措、痛心不已。因为,一个精心策划并尽在掌控的惊天大密划,在顺利实施多年之后,正被人一步一步的抽丝剥茧,暴露在世人面前。(待续)