第九章 工控系统失控
最后更新于:2022-04-01 21:17:08
爱达荷州爱达荷瀑布50英里之外,有一片广阔的大草原。这里是美国能源部爱达荷国家实验室。厚厚的水泥板上,放着一个巴士大小的巨型发电机。一群工程人员一边绕着它走,一边冻得瑟瑟发抖。这是2007年3月4日,这些人正在为即将进行的地面爆炸实验做最后的安检。
1英里之外是实验室的展厅,来自华盛顿特区的官员、发电行业和北美电力安全委员会的高管们齐聚一堂,一边用盛满热咖啡的杯子暖手,一边等着观看爆炸试验的“现场直播”。
2010年,当赛门铁克的研究员发现震网是用来破坏西门子公司PLC的时候,他们认为这是第一个有证可循的数字代码对设备造成物理破坏的实例。但事实上,早在3年前,在爱达荷平原上演的“极光发电机实验”(Aurora Generator Test)已经展示出这类攻击的可行性。
上午11:30,位于爱达荷瀑布的工人收到“向目标注入[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")”的信号。展厅扬声器中传出了这台5000马力柴油发电机的轰鸣声,参观者们紧张的注视着屏幕,试图看到[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")引起的反应。一开始,什么事都没有发生。之后,他们听到了一声脆响,像是用一条沉重的铁链敲击金属制成的大鼓。随后,这只钢铁巨兽不断发出咯吱咯吱的声音,似乎被惊醒了。几秒钟后,又是一声脆响,这一次它倾斜、颤动得更加厉害,仿佛它的心脏遭到了除颤器的电击。橡胶制成的垫圈一块接一块的从发电机里面弹出来,飞向摄像头,让参观者无不胆颤心惊。15秒后,响声第三次出现,发电机愈加倾斜。震动平息之后,发电机冒出了一缕白烟。突然间,咚!发电机再次受到冲击。接下来是漫长的等待。正当人们以为这只巨兽得到了喘息、攻击即将收场之时,发电机的内膛中燃气了浓烈的黑烟。
[![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-08_5666b18bc6f2b.jpg)](http://www.aqniu.com/wp-content/uploads/2015/10/640.webp_40.jpg)
这时候离实验开始只有3分钟。对于恶意代码来说,3分钟已经足够让这个巨型发电机燃起黑烟,并冒出刺鼻的金属气味。实验结束后,展厅内无人鼓掌,只有沉默。要撼动这样一个像坦克一样大的东西,得需要多大的外力啊。但在这个实验中,完成任务的居然是区区21行代码。
这次实验经过了为期数周的精密计划和科学建模,在实施前就达到了确保万无一失的水准。即便如此,对于亲身参与实验准备的工人而言,攻击所具备的威力和破坏力依然令人震撼。“难以置信的亮瞎时刻”,实验设计者之一迈克尔•阿桑特(Michael Assante)兴奋的说。之前,他们曾做过一次模拟实验,模拟的攻击目标是放在桌上的一个小型马达。当他们看到一个27吨重的机器像个玩具一样被摇来晃去、碎片四处飞散时,那感觉就像是亲历侏罗纪公园般刺激。
这个实验用铁一般的事实证明,要摧毁发电厂中的关键设备,并不需要和它发生物理接触,远程注入一段精心设计的恶意代码即可。因此,3年后,当震网在伊朗被发现时,这些曾在极光项目中工作的人们一点都不觉得惊讶。唯一让他们觉得惊讶的是,这场“针对工业控制系统的史上首次攻击”让他们等了这么久。
当赛门铁克公司的研究员在2010年8月发现,震网的真实意图是对西门子PLC进行物理破坏之后,还是有许多人搞不清楚PLC到底是什么东西。尽管PLC作为控制组件,控制着世界上很多最重要的关键基础设施和业务流程,却只有极少数人听说过这种设备。
PLC被用于各种各样的自动控制系统,包括知名度略高的“工业控制系统”(SCADA,Supervisory Control and Data Acquisition,监视控制与数据获取系统)、分布式控制系统以及那些能够让发电厂的发电机、涡轮机、锅炉等大型设备正常运转的控制系统。使用PLC的系统,还控制着把未经处理的污水送往水净化厂、防止水库溢出的大型水泵,控制着防止天然气管道生成导致致命破裂或爆炸高压的阀门开关。一旦这类系统出现问题,后果就是致命的。比如,2010年加利福尼亚州圣布鲁诺市的一场天然气管道爆炸,造成了8人死亡、38间房屋被毁。
除此之外,自动控制系统还有一些不那么显眼、但同样关键的用途。它们控制着汽车生产流水线上的工业机器人,在化工厂、制药厂中担负着“按恰当比例分配并混合各种配料”的任务。食品饮料厂商用它们设置并监控温度,确保加工和消毒过程的安全,杀灭有害细菌。它们还可以用于保持熔炉或窑炉中温度的稳定,确保炼出来的玻璃、玻璃纤维和钢铁质量优良,可以建造摩天大楼、汽车和飞机。它们控制着每一盏交通信号灯的亮和灭,控制着联邦监狱中每一间牢房门的开与关,控制着高速公路和江河水道上每一座桥的升与降。它们帮助客运列车和货运列车保持正确的行驶方向而不脱轨。在较小的尺度上,自动控制系统控制着高层建筑的电梯、控制着医院、学校和办公楼的供暖设备和中央空调。简言之,自动控制系统是确保全世界所有工业活动正常开展、基础设施正常运作的关键组件。它们应具备很高的可靠性和安全性。但震网的出现,让人们的希望化为泡影。
如今,每个人都可以拿到震网的代码,并对它展开研究甚至进行复制。潜在攻击者可以以震网为模板,制作其他恶意代码,再用这些恶意代码去攻击美国及其他国家脆弱的控制系统。比如,去操纵天然气管道的阀门、将污水排进自来水管道、乃至破坏核电站的发电机组。有了震网这个完美的模板,要发动类似攻击,已经无须一个富裕的国库作后盾了。震网制作者已经完成了与“如何利用自动控制系统漏洞”的关键研发工作,这些工作的成果客观上降低了其他攻击者发动类似行动的门槛,越来越多的国家行为体和非国家行为体成为这场游戏的新晋玩家。不论是像“匿名者”或LulzSec这样的无政府主义黑客团体,还是为恐怖组织服务、以控制某个发电厂为要挟的勒索者,震网的出现,让这些之前根本不敢想象去攻击自动控制系统的各种攻击者们,一下子摸到了成为“高大上”黑客的门道。当然,虽然震网是一种通过非接触途径就能对目标造成外科手术式打击的病毒,这并不代表其他所有以自动控制系统为目标的黑客攻击都是这样目标明确、技艺精湛,而且会造成大范围的破坏和次生影响。
此外,攻击者要发动攻击,不一定非得编写震网那么复杂的代码。一个普通病毒或蠕虫就可以达到目的。以下试举两例。佛罗里达州的CSX公司是一家为23个州提供客货运列车铁路服务的公司。2003年,由于CSX的计算机遭到Sobig病毒感染,美国东海岸的列车信号灯系统瞬间宕机,导致宾夕法尼亚州和南加州之间的铁路、哥伦比亚特区的高速环线停运。同年,Slammer蠕虫的感染,造成俄亥俄州Davis-Besse核电站的安全监视系统和流程控制网络暂停运转5小时。
2013年,NSA(美国国家安全局)对美国关键基础设施抵抗大规模破坏性网络攻击的能力进行了一次检测。局长基思•亚历山大对参议院某委员会提交的结果是:3分(1分最低,10分最高),部分原因是自动控制系统安全性不足。
“国防部发展进攻性网络能力已经超过10年了,”战略与国际研究中心的吉姆•刘易斯说,“不过,我觉得…人们并没有充分意识到其中的问题所在。正是这些新的脆弱性,将我们生活中的各方各面都暴露在风险之中。”
事实上,关于自动控制系统的问题早已存在,相关领域专家多年前就已经对此了如指掌。但正是震网的出现,才第一次把这些问题摆在了公众的面前。(待续)
可编程逻辑控制器(PLC)出现于20世纪60年代,当时计算机黑客和病毒还只是科幻小说中的想象。它们的功能,是替换工厂中那些由继电器等硬件电路构成的“流水线控制系统”。对于这些硬件控制系统,调整控制逻辑的唯一途径,就是找个电工去重新布线。PLC出现后,要更新控制系统,只需让操作人员进入流水线,找到PLC控制台,用装有新代码的磁带盒换掉旧磁带盒即可。虽然更新过程仍须手工干预,但毕竟实现了编码与操作的分离。PLC技术人员的工作大大简化,只是编写、调试几百行代码。
90年代,数字控制系统得到广泛应用,工厂运营者要求PLC供应商向其提供“通过调制解调器拨号,远程登录控制系统”的功能。从那时起,各种黑客陆续出现。但由于控制系统所在网络与外界物理隔离、使用特定通信协议、专用软件无法与其他程序和系统兼容,多数运营者对系统的安全性毫不在意。他们认为:黑客根本无法接入系统中的任何一台计算机并与与之通信。就算找到一台能够与控制系统通信的计算机,也没几个人能搞清楚控制系统的工作原理,更别说实施操纵和破坏了。
然而,到了90年代末,形势开始生变。美国国会通过了环境法案,要求工厂对排放物进行监视和控制,联邦能源管理委员会也开始使用数字传输系统来监控电力的输出与分配。突然之间,公司的合规事务主管和高层们产生了“访问控制系统、获取其中数据”的强烈需求,而一直以来,这些系统只有工厂一线的运营者才能访问。就这样,那些少人用、少人懂的控制系统专用软件逐渐被淘汰,取而代之的是运行在Windows、Linux商用操作系统上的新一代控制系统软件。这一改变,让公司内网中其他计算机可以更加便捷的连接控制系统、并与其通信。然而,切换到Windows平台意味着,控制系统引入了与PC相同的脆弱性,即将面对与PC相同的病毒和蠕虫。同时,由于系统与因特网的连接更加紧密,运营者通过拨号实现远程控制的行为更加频繁,被黑客发起远程攻击的风险也大大增加。
1997年3月,一位名叫Jester的少年黑客上演了一出好戏,可借此窥斑见豹。他用普通的猫拨号进入了贝尔大西洋公司的计算机内网,攻击了用于向伍斯特机场航运控制塔和附近某镇600余户居民提供电话和无线通信业务的系统。机场安全部门和消防部门的电话因此中断了6个小时,同时中断的还有飞行员用来激活机场跑道指示灯的某个控制系统。在这6个小时中,航管人员只好用手机和装有干电池的无线电台指挥飞机起降。谢天谢地,没有出事。航管经理事后对CNN说:“那天我们是死里逃生。”
同年,马什委员会发布了一个报告,对关键基础设施面对物理攻击和数字攻击时的脆弱性进行了深入分析。1995年,提摩太·麦克维(Timothy McVeigh)在俄克拉荷马城政府大楼制造了一起大爆炸,马什委员会负责了此次事故的调查,并获得了过程中大量关键数据和通信活动资料。调查结束后,他们对将石油、天然气和电力等关键系统接入因特网,而造成的不断增加的风险提出了警告。“造成重大危害的能力…正在以惊人的速度增长,而我们却没有任何防范。”他们在报告中写道,通过网络向发电厂控制系统计算机发送命令的方式“所蕴含的风险就像是背着一个装满炸弹的双肩包……我们应该在灾难发生前,就把这些关键基础设施安顿好,而不是等到灾难发生之后。消极等待是不负责任的行为。”
同年的第二份报告,来自白宫国家安全电信咨询委员会。这份报告警告说,国家电网及其输送设施“漏洞百出”,十分脆弱。“电网入侵者……可以通过拨号方式接入未受任何防护的端口,并对断路器进行重置,使通过断路器的电流强度超过其可承受的范围。”一位在10年后参加“极光发电机实验”的调查者如是写道,“通过这种攻击方式,可能对变电站的部分设备造成物理损毁。”
虽然出现了这些警告,但没有迹象表明会有人真的想要发动类似攻击。直到2000年,第一起公开报道的、针对自动控制系统的黑客攻击事例终于出现:一位澳大利亚水处理厂的前员工用黑客手段破坏了水泵。
马卢奇郡位于澳大利亚昆士兰州的阳光海岸,那里有繁茂葱郁的雨林、崎岖陡峭的火山峰、碧蓝洁净的海水和雪白松软的沙滩,风景美到能印上明信片。但在2000年初,美丽的马卢奇郡惨遭毁容,在长达4个月的时间中,一场黑客攻击造成超过75万加仑未经处理的脏水从无数井口中溢出,公共水道中污水横流。
一开始,有人发现凯悦丽晶酒店PGA(北美职业高球协会)高尔夫球场的一个澙湖中,有污水从井口向外涌出。但每次工人刚一把它清理干净,又会有污水涌出来。最严重的情形出现在马卢奇河沿岸的太平洋天堂(Pacific Paradise,阳光海岸城郊地名)。数万加仑的污水流进了潮汐运河,对住在运河附近孩子的健康造成了巨大的威胁。污水还流进了马卢奇河,造成了大量鱼类和海洋生物的死亡。
问题始于1999年底,当时马卢奇河的水净化厂中刚刚安装了一个新的数字化管理系统。水净化厂与猎手水利科技(Hunter WaterTech)公司签了合同,由后者负责系统的安装。向水净化厂引流污水的泵站是其中的一个关键环节,当完成对泵站的配置后,整个系统的部署就算到位了。但就在此时,事情出现了令人难以理解的变化。水泵完全不按操作指令工作,该停的时候转,该转的时候停。用于向各个泵站发送指令的双工无线电通信网络遭遇流量阻塞,操作人员无法与泵站通信。事已至此,理应向公众发出警报,但相关人员却置若罔顾。
水泵由两台中心计算机控制,使用的是猎手水利科技公司的专用软件,通过双工无线电信号与装在每个泵站上的远程终端模块进行通信。信号可以从计算机传输至RTU(类似PLC的控制单元),并利用工作在非公开频段上的无线中继站,在RTU之间传输。只有能接触到这两台计算机或中继站、会使用猎手公司专用软件及理解通信协议的人,才能向泵站发送命令。猎手公司起初怀疑,攻击可能是有人从外部发起的,但是,厂里根本没有用于侦测非法操作行为的入侵检测系统或日志系统。而且,就算装了入侵检测系统,也没办法侦测到对RTU的攻击。
攻击断断续续的持续了几周,在3月的一个夜晚达到了顶峰,当天就酿成了几十起事故。调查人员最终断定,这一定是某个内鬼干的,因为只有在操作区内向泵站发送无线信号才会产生这样的效果。他们锁定了一个名叫维泰克•博登(Vitek Boden)的前水利工程师。他时年49,一直在猎手公司工作,直到去年12月合同到期。(据信,他因未能续约对公司耿耿于怀。)而不正常的状况正是从这个时点开始出现的。之后,博登想在这个供水管理区再找一份全职工作,但又遭到了拒绝。这个时候是2000年1月,正好也是事故集中爆发的时点。(待续)
在4个泵站的报警系统失效后,警方终于发现了蛛丝马迹。警察在博登的汽车里找到一台装有猎手公司专用软件的笔记本电脑,还有一台使用特定非公开频段的无线电台。而这个频段,正是本供水管理区用于向泵站发送指令所用的。同时发现的,还有一个用于发送攻击指令的RTU。证据确凿,4月的一个晚上,警方逮捕了博登。
博登事件,是有史以来第一起对外公开报道的“关键基础设施网络攻击”。可以想见,类似事情之前肯定有过,只是公众没发现或不知情罢了。作为马卢奇事件的结果,在其他公共事业单位上班的工人们纷纷表态,他们绝不会做出像博登在马卢奇所做的事情来。至此尘埃落定。
这个事件本应向全球工业控制系统运营者敲响警钟,但是,由于考虑到攻击者是一个对马卢奇郡供水控制系统了如指掌、又能亲自接触相关设备的内部人,很多人都觉得,这件事对自己没什么借鉴价值。他们声称,外部人员根本不可能干得了博登这种勾当。而实际上,马卢奇郡供水控制系统已经暴露出一系列安全问题,外部人员也有机会利用这些漏洞发起类似攻击。一位名叫彼得•金斯利(Peter Kingsley)的事故调查员后来在一场控制系统研讨会上,向与会者明确表示,虽然马卢奇郡事件中,攻击发自内部,但并不能因此判断外部攻击不可行。“有些运营者觉得他们的系统是安全的,只是因为他们自己不具备非授权进入控制系统的能力,”他说,“但是黑客可不会拘泥于一般的技术手段。”
金斯利的这番话在2002年听起来有点搞笑,因为那时候没有什么迹象表明外部人员会对攻击关键基础设施的控制系统感兴趣。在令人印象深刻的大型灾难发生之前,单靠呼吁,恐怕难以唤起大多数人对控制系统安全问题的关注。
就在此时,乔•韦斯(Joe Weiss)挺身而出,开始扮演控制系统安全“传教士”的角色。
[![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-08_5666b18be4e60.jpg)](http://www.aqniu.com/wp-content/uploads/2015/10/640.webp-127.jpg)
乔•韦斯
韦斯是一个64岁的精干长着,在位于硅谷中心的加州库比蒂诺居住和工作,经常对灾难性的场景进行思考、研究。他家离著名的圣安德烈亚斯断层和建造于70年前的史蒂文斯溪大坝只有5英里远。1989年,这里发生了里氏7.0级的洛马普列塔大地震,彼时,烟囱倒塌,街灯和电话系统被破坏,震波还把附近迪安萨学院游泳池中的水球队员弹了出去。落在人行道路上的水球队员们莫名惊诧,就像一只只搁浅的海豹。
韦斯早在1999年就开始意识到控制系统安全的问题。当“千年虫”爆发的时候,他作为一名专业核能工程师,正在电力研究院工作。坊间流行着这样的“末日预言”:因为大多数程序中的“年”字段或变量只有2位,在2000年来临时没办法显示出3个0,所以,当除夕夜的新年钟声敲响的那一刻,所有程序都将崩溃,灾难随之降临。韦斯开始思考,如果像日期变更这样普通的事情都能造成控制系统瘫痪,那么出现更严重的问题会怎么样?更重要的是,如果千年虫都会造成巨大的影响,那么来自黑客的恶意攻击会造成什么呢?
在那个年代,世界各地有很多以通用计算机安全为主题的研讨会,却几乎无人关注控制系统安全。于是,韦斯开始四处参会,看控制系统业界到底该采用怎样的安全准则。但参会越多,担忧越重。网管们全都在谈论,如何用加密技术和身份验证来防止非授权用户登录通用计算机系统,而韦斯却意识到,控制系统在网络安全方面完全是不设防的。当计算机安全业者问他“电厂的控制系统装了什么品牌的防火墙,多长时间会检查一下系统日志、以查看入侵痕迹”时,他只能不好意思的说,“没装防火墙,也没有系统日志。”而他转过头来,询问控制系统生产商关于产品安全的问题时,得到的却只有茫然困惑的眼神。他们说,从来没人问过他们这个问题。
2001年9月,两架飞机撞击了纽约的双子塔。没过多久,官方发现了一种针对加州政府网站的可疑搜索行为模式。搜索者的目标是旧金山地区内、用于管理基础设施或政府办公室的数字系统。这些疑似源于沙特阿拉伯、印度尼西亚和巴基斯坦等国IP的搜索行为,对应急电话系统、发电厂、供水厂和天然气设施具有特殊的兴趣。另一些搜索行为则聚焦于用于控制消防调度系统和管道的计算机程序。
2002年,美军在喀布尔的一间基地组织办公室中查获了一台计算机,并在上面发现了一个工程软件,其中有对水坝的建模,还有令其停止运转的模拟程序。同年,中情局发布的《情报备忘录》中指出,基地组织对发动网络攻击“非常感兴趣”,并已开始认真考虑雇佣黑客。
多种迹象表明,还有其他人也对美国的关键基础设施很感兴趣。加州电力调度中心(Cal-ISO)是一家负责管控加州大部分电力传输的非营利性公司。2001年,黑客闯入了这家公司两台无任何防护措施的服务器,直到两周后有工人报告机器故障时才被发现。公司官员坚称,攻击并未对电网造成实质影响,但有未具名人士向《旧金山时报》透露,在黑客想要深入能引起严重电力供应问题的“核心部分”时,公司才发现他的踪迹。有人称,这次攻击近乎“灾难性事故”。
随着时间的推移,各界对关键基础设施安全状况、特别是对国家电网安全状况的担忧与日俱增。作为回应,能源部于2003年在爱达荷国家实验室(INL)推出了“国家SCADA测试平台”项目。该项目的目标是与控制系统生产商合作,评估其产品中的安全漏洞。正是由于这个项目的出现,才有了后来的“极光发电机实验”。
美国共有2800个发电厂和30万处石油、天然气生产基地。此外还有超过包括水库、水坝、水井、水净化厂、泵站和管道在内的17万处公共水利设施。但是,全国关键基础设施的85%都由私营机构所有,这意味着,除了核电站等少数国营企业之外,政府没有办法强制其他公司为其辖内控制系统增加安防措施。不过,政府至少可以劝导控制系统的生产商改善控制系统的安全性能。在“测试台”项目中,只要供应商同意修复实验室发现的漏洞,政府就会为供应商实施免费测试。
几乎同时,国土安全部推出了一个“场站评估”项目,指派旗下的“工业控制系统网络应急响应团队”(ICS-CERT)对关键基础设施的安全配置和设备内网进行评估。在2002至2009年间,这个团队对石油天然气、化工、水利等多个行业的100多个场站进行了评估,发现了超过38000个漏洞。这些漏洞包括:与互联网之间有直接连接,用户无法修改的默认出厂密码及硬编码密码(如西门子公司PLC),过期的软件补丁,缺少防火墙和入侵检测系统之类的标准防护措施等。
然而,尽管上述两个项目的研究人员工作非常勤奋,他们还是不得不跟工业界沿袭了数十年的积习和惰性做斗争。比如,政府可以很快发现漏洞,有些供应商却需要花几个月甚至几年时间才打上补丁。再如,关键基础设施的业主们只愿意在控制系统和网络的安全防护上花点小钱、做做样子,而不愿意大动干戈。
在INL做“测试台”项目联络官的韦斯,实在是受够了他们这种拖沓的调调,亲自发起并召开了一场旨在提高关键基础设施运营者“控制系统安全风险意识”的研讨会。2004年,他采用的是“恐吓战术”——通过展示远程攻击,告诉他们攻击者可以干什么。黑客的角色由INL的研究员杰森•劳尔森(Jason Larsen)扮演。他演示的内容是,从新墨西哥州的桑迪亚国家实验室,对爱达荷州瀑布市的一个变电站发起攻击。利用服务器软件中的一个最近发现的漏洞(目标显然没打补丁),劳尔森穿越了多层防火墙,对控制变电站的PLC实施了攻击,并释出载荷。演示中的攻击场景共分三幕。攻击的第一幕是对断路器进行开、关操作,第二幕是在瞬间同时打开所有断路器,第三幕是同时打开所有断路器、并操控代码,使操作人员的屏幕上显示“所有断路器处于闭合状态”。
“我把它称为‘吓尿’演示,”韦斯得意的说,“这场演示之成功,可以说是现象级的。”
之后的几年中,韦斯就这样一次又一次的重复着他的“吓尿”演示,每一次都会邀请不同的安全专家演示不同类型的攻击。这些演示唯一的问题在于,他们太超前了。每次研讨会结束后,都会有一些工程师冒出一些改进控制系统网络安全性的好点子,但当他们向管理层汇报时,却往往会遭遇挫折。因为,重新构造系统或提升系统安全性的花费实在太高了。管理层的想法是,既然竞争对手都没做这件事,也没人真的发动攻击,那我干嘛花钱吃这个螃蟹呢?
令人无语的是,韦斯和测试实验室未能毕其功于10年的事业,震网几个月就搞定了。这个数字武器长久的吸引着公众的眼球,让人们第一次充分意识到,工业控制系统中存在的漏洞是致命的!同时,PLC、RTU等长久以来不为人所知的关键控制设备突然间跃上舞台中央,吸引了大量研究人员和黑客的注意,也让控制系统供应商和作为用户的关键基础设施业主们不得不挥鞭跟上。(待续)
2010年8月关于震网病毒破坏西门子公司PLC的新闻,引起了德克萨斯州奥斯汀市一位25岁计算机安全研究员的兴趣。这位研究员名叫迪龙•贝雷斯福德(Dillon Beresford),他和其他大多数人一样,从来没听说过PLC,特别想看看PLC到底能有多脆弱。因此,他从网上买了几个西门子公司的PLC。接下来的两个月,他就躲在鸽子笼公寓的卧室里研究、测试。幸运的是,他只用了几个星期就发现了几个可以用来攻击的漏洞。
比如,他发现程序员计算机和PLC之间的所有通信都是非加密的,所以任何攻入网络的黑客都可以在代码由计算机向PLC传输时,看到代码并把它复制下来,之后再根据自己的意图将修改后的代码发往PLC,实现操纵等目的。如果PLC拒绝非授权计算机向其发送命令的话,这种情况将不会发生。但是,贝雷斯福德发现,PLC会无原则的接受任何用特定协议“说话”的计算机发来的命令。PLC甚至不要求命令发送方“加盖”用来证明其来源可信的数字签名戳。
虽然在安装Step 7的计算机和PLC之间会有一个身份验证包和某种密码,但贝雷斯福德可以在3小时以内就把这个密码破掉。他还发现,居然可以通过在通信过程中简单抓取身份验证包,并在自己发送(伪造)命令时重放验证包的手段,轻松绕过这个安全机制而免去破解密码的麻烦。此外,一旦控制了某个PLC,就可以发布修改密码的指令,从而把合法用户拒之门外。
贝雷斯福德还发现了其他的漏洞,包括西门子公司的程序员在PLC固件中有意留下的后门。比如,供应商经常会在产品中留下一个硬编码的密码,以便于在用户出现麻烦时,自己可以远程登录并提供帮助,就像是给控制系统产品加装了“安吉星”(OnStar,通用公司为汽车提供远程协助和远程控制的一种服务系统)。但既然供应商可以利用后门,攻击者又何尝不可?进入西门子所有系统的预留后门,用的都是同样的用户名和密码:basisk。这个数据硬编码在固件上,任何一个有些手段的人都可以设法看到。利用这个高权限后门,攻击者可以删除、修改PLC上的数据,甚至向PLC发出指令,破坏任何受其控制的设备或进程。
贝雷斯福德把他的发现报给了正与西门子公司合作修复系统漏洞的ICS-CERT。但是,并非每个漏洞都有办法修复。有些问题,比如命令非[加密传输](http://www.aqniu.com/infosec-wiki/2457.html "加密传输")、缺乏强有力的安全认证机制等,属于系统底层构架的问题,而非程序代码中的错误(bug)。要解决这些问题,西门子公司必须更新系统固件,对于某些系统而言甚至必须重新设计。而且,这些问题并非仅仅存在于西门子公司的产品中,而是普遍存在于市面上大多数控制系统产品中。这些问题可以成为“前互联网时代的遗产”——那时候设备所处的网络环境是孤立的,因而不需要考虑外部攻击的问题。
一直以来,控制系统供应商和关键基础设施业主认为,要对控制系统发起攻击,必须掌握与PLC相关的大量知识和丰富经验,因此,系统是相对安全的。但是,贝雷斯福德的发现,颠覆了他们的认识。他只花了2万美元在网上买了一些二手设备,然后花了2个月的业余时间来研究,就在PLC里面找到了这么多漏洞,并掌握了利用漏洞进行攻击所需的全部技能。
在贝雷斯福德之后,又有众多研究者发现了西门子和其他公司多型产品的更多漏洞。关键基础设施安防系统制造商伍泰安全(Wurldtech Security)创建的控制系统漏洞数据库显示,2008年以来,共有超过1000种控制系统漏洞和控制系统协议漏洞被发现。其中,大多数漏洞仅能让攻击者造成“操作人员无法正常监视”的效果,也有一些漏洞一旦被利用,将产生更严重的后果。
2011年,南加州某公共事业公司专门聘请了Mocana安全公司,对其变电站控制系统的安全性进行评估。结果发现,系统存在多个漏洞,攻击者可以借此控制变电站的设备。“我们之前从来没接触过这种设备,但是在一天之内就发现了这么多漏洞,”公司副总裁库尔特•斯坦姆伯格(Kurt Stammberger)说,“这是非常严重的问题,坦白的说,至少一年半之前这些问题就已经出现了,可是却没人注意。”
由于控制系统的寿命长达数年、又缺乏像通用计算机那样定期打补丁的安全机制,控制系统的安全问题越来越突出。一台普通台式计算机的生命周期约为3-5年,到时间就会换新的。但控制系统的寿命可以长达20年。即使旧系统被换掉,新系统仍然要具备跟其他设备通信的能力,这样一来,旧系统中固有的安全漏洞也被继承下来。
再来看打补丁。有些控制系统运行在已无法从微软得到技术支持的老旧Windows版本上,这意味着,如果发现新的漏洞,根本没有补丁可打。退一步来说,就算有补丁可用,也往往会被搁置一旁。因为,一方面,操作人员害怕打了补丁之后,系统会运行不稳定;另一方面,打补丁或者进行其他安全配置需要花上几个小时,而控制系统及受其控制的进程(往往是公共事业服务)却不能轻易暂停。
此外,随着越来越多的供应商将安全系统和控制系统打包在一起,新的问题又出现了。过去,安全系统是与控制系统分别配置的硬件模拟系统,这样,即使控制系统出现问题,也不会影响到安全系统紧急关闭设备和进程的能力。但是,现在供应商们把安全系统和控制系统集成到一起,使得一次攻击同时瘫痪两个系统成为可能。
其实,控制系统中的很多漏洞都可以通过“物理隔离”的方法解决。也就是说,让内网无法与因特网连接、也无法与可能连接因特网的其他系统连接。但实际中,这一点往往很难实现。
2012年,一名英国的研究者就曾经用一种专门定位网络电话、智能电视和控制系统等设备位置的特殊搜索引擎“撒旦”(Shodan),发现至少有1万个控制系统存在与因特网的连接。这些控制系统分别来自水净化厂、大坝、桥梁和火车站。
2011年,一位名叫pr0f的黑客在网上搜到南休斯顿地区的某个西门子控制系统之后,成功侵入某水厂的控制系统。虽然系统有密码保护,但密码只有3位,一下就被他猜中了。“很遗憾,这根本不是什么高级持续性威胁之类的高大上攻击,”他对记者说,“坦白的讲,我所看到的多数情况都是由于(遭入侵方的)无知和愚蠢、而非攻击者有多大本事造成的。”进入工业控制系统之后,pr0f对水槽布局图和数字控制系统界面进行了截图,并没有实施破坏行为。“我不是没头脑的汪达尔主义者(故意破坏他人财产的人)。那样做很愚蠢。”他在一封网上发布的信中写道,“把安装着工业控制系统的计算机接入因特网的人,是不是更愚蠢呢。”
更可怕的是,工业控制系统中的很多现场设备,要么直接接入因特网,要么与因特网之间只隔着一个调制解调器或一道默认口令。比如,用来控制电网开关和断路器的口令就是默认的,这样一旦出现紧急情况,工人就能马上想起来、不至于忘记。出于同样理由,控制系统不会像标准IT系统那样,为防止有人暴力破解密码,而设置“连续输错密码N次自动锁定”的功能。因为,没有人希望看到,在某种紧急状况下,操作员却由于输错几次密码而被彻底挡在系统之外。2011年,马克•梅弗雷特(Marc Maiffret)带领一个测试团队渗入了南加州某水处理厂的远程控制系统,并获得了用于向饮用水中添加化学物质的设备的控制权。整个过程用时不到一天。梅弗雷特说,只须再向前几步,就可以把大量化学物质倒入水中,让水变得无法饮用。
事实证明,将关键系统远程接入因特网,会带来显而易见的安全隐患。但是震网却揭示了更为可怕的场景。攻击者无须远程接入目标,只须让精心设计的蠕虫利用U盘在不同计算机间插拔就能实现传播,通过将[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")嵌入工程师用来对PLC编程的项目文件即可实现感染。2012年,智能电网控制系统制造商加拿大特尔文特公司(Telvent Canada)就曾遭到黑客入侵。入侵者盗取了该公司生产的工业控制系统的项目文件。美国很多石油、天然气和水利系统中所使用的,正是这些系统。特尔文特公司对用户系统进行管理的,也正是这些项目文件。虽然公司没有声明攻击者是否对这些项目文件进行了修改,但这次事故充分表明,攻击者可以通过渗透类似特尔文特这样的公司、并感染其产品项目文件的途径,对石油、天然气管道发起攻击。
对于关键基础设施而言,直接入侵计算机网络并非唯一风险源。有证据表明,曾有利用电磁脉冲手段干扰工业控制系统和现场设备的事故发生。1999年11月,一艘正在距圣迭戈海岸25英里处进行训练的美国海军舰船上的雷达系统,对附近沿海某地区的水利和电力基础设施的控制系统无线通信网造成了干扰。这让工人们无法对水管中的阀门进行开启和闭合操作,只好派技术人员到偏僻的现场去进行手动操作,以避免水库溢出事故。电磁脉冲干扰还曾经在20世纪80年代引发一起天然气爆炸。当时,荷兰登海尔德军港附近的某个海军雷达系统,干扰了用于控制天然气管道开关阀门的控制系统无线通信网,造成管道爆炸。(待续)
多年来,人们想象出了由大规模网络攻击引发的、各种各样的末日灾难场景。但时至今日,这样的攻击并未发生,而且,绝大多数与控制系统有关的事故,都是意外而非人为。
不过,人们可以从意外发生的工业事故中,窥见网络攻击可以造成怎样的后果。因为,一般而言,网络攻击可以让每一个意外事故“昨日重现”。聪明的黑客可以利用新闻报道的细节,对意外灾难发生的原因和效果进行研究,并据此设计能造成类似破坏性后果的网络攻击。
南西伯利亚地区的萨扬舒申斯克水电站,是世界第6大水坝。水坝位于叶尼塞河上一个风景如画的峡谷,始建于30年前,高800英尺,跨度约半英里。2009年,水坝发生爆炸,造成75人死亡。美国国家安全局局长基思•亚历山大曾援引此例,以讨论网络攻击所能造成的后果。
那是8月17日午夜刚过,大坝发电装置中一台重大940吨的涡轮机被突然喷涌而来的高压水流击中。它的螺栓被敲掉,旋即发生爆炸。之后,巨浪从已爆炸涡轮机形成的空隙中冲入了发动机房,破坏了另外6台涡轮机,触发了连环爆炸,最终炸塌了房顶。
这场灾难,应部分归咎于大约500英里外布拉茨克电站的一起火灾。这场火灾导致布拉茨克的电力输入中断,进而迫使萨扬舒申斯克水电站的涡轮机满负荷运转。不幸的是,其中一台已接近使用寿命的涡轮机开始间歇性的摇晃,进入了“带病工作”的危险状态。为确保安全,水电站在已几个月前安装了新的控制系统,但突然增加的负荷,让涡轮机无法承受。用于固定涡轮机的螺栓开始松动、掉落,涡轮机一步步被“拔锚”。监控图像显示,故障发生的那一刻,工人们拼命向上爬,想逃离现场。事故除了造成75人死亡、将附近地区变为汪洋之外,还泄漏了100吨汽油。这些汽油流入了叶尼塞河,使当地渔业减产鳟鱼4000吨。专家估计,要将水电站复原,至少需要4年时间和13亿美元。
1999年6月发生在华盛顿州的管道爆炸事故,也是黑客可以仿效的样板。在这起事故中,贝灵翰姆奥林匹克管道公司直径16英寸的管道破裂,喷出的237000加仑汽油流入了沃特科姆瀑布公园的一条小溪中。同时喷出的还有瓦斯。90分钟后,爆炸发生了。巨大的火球一直延伸到小溪下游1.5英里处、造成3名儿童死亡、8人受伤。这次灾难的原因,包括阀门配置不当、铲车挖到管道让管道变脆弱等,但万万不可忽略,反应迟钝的控制系统也是罪魁祸首之一。“如果工业控制系统的计算机,始终能对奥林匹克公司管理人员的指令做出及时反应,”调查者说,“负责维护事故管道的管理人员很可能(看到压力增大)会采取行动,防止管道内的压力增大到使管道破裂的程度。”
而实际中,管理人员在1小时后才确定泄露发生,而此时附近的居民们已经报了警。居民在电话里告诉警察,他们在小溪的水流中闻到了一股浓烈的石油味道。虽然这起油气泄露事件不是黑客攻击造成的,但调查者的确在奥林匹克公司的控制系统中发现了一些可供利用的安全漏洞。比如,可以从公司通过拨号,远程接入工业控制系统,安全措施只有一道用户名/密码,而且,公司的业务网络与工业控制网络之间并未隔离。虽然桥接策略提供了一定程度的安全防护,但是,由于既没有鲁棒的防火墙,也没有反病毒和接入控制系统,根本无法阻止一个有想法的黑客先从因特网攻入公司业务网络,再从业务网络攻入核心的工业控制网络。
2000年发生在加州圣布鲁诺的天然气管道爆炸事故,其情节之狗血、后果之严重,堪称工控系统安全的警示教科书。出事那天,操作人员在对不间断电源(UPS)进行维护时,不小心引起了工业控制系统供电中断。根据事先编好的程序,管道的某个控制阀会在工业控制系统断电时自动开启;而实际的结果是,缺少了压力监测和反馈的机制,天然气不断进入管道,管道中个别老化部位的压力持续增加,直到引发爆炸。由于控制系统断电,操作人员对这一切浑然不觉。
2005年12月,密苏里州还发生了一起堤坝倾覆事故。事故的起因是堤壁上的传感器和浮在水面上的水位测量装置之间的通信中断,当水库容量超过15亿加仑(约5.7万立方米)的极限时未能及时报警。就在水位持续上升的过程中,“自动应急保险系统”也失效了。一天早晨的5:10,大水开始漫过堤顶,向外溢出。短短6分钟之后,堤坝就被冲开了一个60英尺(18米)宽的大口子。之后,超过10亿加仑的水从普罗菲特山(Proffit Mountain)上倾泻而下,一路上席卷着无数的石块和树木,冲进了约翰逊溪瀑州立公园(Johnson’s Shut-Ins State Park),把公园管理员一家连人带屋一起冲出了四分之一英里远。洪流还冲向了附近高速公路上的汽车,淹没了公园中的露营地,所幸时值冬季、户外无人,没有造成人员伤亡。
可以作为黑客攻击素材的,还有一些列车事故。客运列车的运行是由多个系统共同控制的:负责查验车票的检票系统、信用卡交易处理系统、电子广告系统、灯光管理系统、闭路电视系统,还有最重要的消防应急系统、交通信号系统和列车运行控制系统。它们之间的相互连接,为攻击提供了可能的途径。过去,除非刻意连接,这些系统彼此之间并没有通信。但如今,这些系统的数字化程度越来越高、连接也越来越多,很多系统之间通过无线信号进行通信,非加密控制指令在其中随意传输。虽然铁路系统设立了冗余备份和故障应急响应等安全机制,但多个互联系统的存在,增加了配置错误的可能性,从而给有心人入侵安全系统并实施破坏留下了可乘之机。
2009年6月22日下午的晚高峰时段,华盛顿特区地铁中,一列运行中的列车与另一列停靠在轨道上的列车发生了碰撞,造成8死80伤的惨剧。轨道上的传感器,本应探测到那列静止列车,并将这个消息发送给运行中的列车,但是,这个传感器恰巧坏了。后面那列列车上安装的防碰撞传感器,本应在距离前面列车1200英尺时自动触发刹车,但是,这个传感器也坏了。更要命的是,列车驾驶员连手动刹车都没有拉。真是各种无语。更奇葩的是,10年前,这套地铁系统,就曾多次发出错误信号——其中一次,是指示列车在一个限速15码的路段上以45码的速度行驶。
以上事故都是偶发的,但也有人为的。2008年,波兰罗兹一个14岁的男孩,通过网络攻击引发了数起列车脱线事故。当时,他用一个经过改装的电视遥控器的红外信号,成功侵入了铁路信号系统并扳动了道岔。这起事故造成4列列车脱轨,12人死亡。
攻击关键基础设施的方法有无数种,其中最有效的,当属攻击所有关键基础设施的共同要害——电网。如果断电相当长一段时间,那么将会有N多种基础设施受到影响——通勤车辆和交通信号灯,银行和证券交易,学校和军事设施,食品和血液供应站的温控空调,医院里的呼吸机、心脏监护器和其他重要设备,机场的跑道灯和航管控制系统,诸如此类。有些场所可能配有应急发电机,但应急发电机也只能撑上一会,遇上长时间停电就会应付不来。如果核电站出现掉闸事故,就会让核裂变反应堆出现不可挽回的停机。
要想攻击电网,有一个办法,就是入侵装在一众家庭和商户住所内的智能电表。至今,美国政府已在智能电表项目上投资30亿美金,完成了数千只智能电表的安装。然而,这个项目在大力推进新技术应用的同时,却没有充分考虑到它所带来的安全问题。
安全研究人员在智能电表系统中发现的最大问题,就是它的远程控制功能。这项功能,让电力公司可以在不派遣工程人员上门的情况下,对一幢建筑的电闸执行闭合和切断操作。既然如此,黑客同样可以利用这个功能,设法切断千家万户的电力供应,并令其难以迅速复原。2009年,一位名叫迈克•戴维斯(Mike Davis)的研究员真的制作出来一种“断电蠕虫”。(待续)
戴维斯在西南太平洋地区的一家电力公司上班,具体负责检测公司将要向客户大力推广的智能电表。就像贝雷斯福德检测西门子公司PLC时一般,戴维斯发现,智能电表的通信模式存在缺陷。只要使用相同的通信协议,相邻的智能电表之间就可以任意通信。甚至,可以通过通信实现固件更新。这意味着,攻击者只要拿到网络密钥,就能刷新电表的固件!而且,公司还把这个密钥写到了每一块电表的固件中!这些电表一旦安装,攻击者只需破解任意一块的密钥,就可以把自己的代码刷到所有电表的固件中!!“只要手上有一块电表,我就能对所有电表想干嘛就干嘛,”戴维斯说,“各家供应商生产的智能电表也都是一个货色。”
这些电表彼此之间通过无线电进行通信,且始终保持在监听模式,随时准备接受附近电表的信号。有些型号的电表,有效通信距离甚至可达几公里。戴维斯测试的那一款,有效通信距离是400英尺,比足球场两个球门之间的距离还要大。这个距离,让攻击者可以轻松跨越智能电表的部署间距,毫不费力的传播“拉闸病毒”。戴维斯甚至不需要潜入某家宅院,只须从市场上买一块使用相同通信协议的同品牌电表,注入[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")和必要密钥,然后在其他智能电表附近开工即可。戴维斯说:“因为,无线信号会自动被附近的智能电表侦测并‘查收’。”当固件更新完毕,遭攻击的智能电表会使用感染后的固件程序重启,并自动将更新信息发送给有效通信范围内的其他电表,从而形成一个传播链。电厂的运营人员就算看到自己地盘上发生了停电事故,也根本没办法弄清原委。
通常情况下,智能电表供应商会通过电厂的中心网络,对电表固件进行统一的远程更新,或者让技术人员在用户所在地附近,用一台插着加密狗的笔记本,通过无线信号进行点对点更新。所以,当戴维斯和他的团队告诉这位供应商“我们可以不通过电厂中心网络、也不通过加密狗就能让[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")自动在电表间传播”时,供应商哈哈大笑,回应说“大哥,我们的电表根本就没有让其他电表更新固件的功能好吧。”戴维斯只好告诉他,“我们知道,但我们可以在[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。")中加入这项功能。”供应商还是不信。戴维斯只好写了一个程序,对感染过程进行模拟。在模拟场景中,恶意代码通过固件更新的方式,在一天之内就感染了2万个电表。“我们已经很给面子了,”他说,“我们只找了一个电表发起攻击,而真正的攻击者肯定会从城市中的多个位置同时发动攻击,并造成洪泛式的感染。”
这位供应商对此仍然不屑一顾。他说,蠕虫病毒更新一台智能电表的固件需要2-4分钟,在此期间,电厂的技术人员将及时发现电力中断的情况,并通过远程发送正确的固件更新包,阻止其他电表受到攻击。
戴维斯也是醉了。他告诉供应商,恶意代码不仅可以造成断电,它还可以在感染之后、将电表固件自动更新的功能阉割掉。这样一来,电厂根本没办法搞什么远程更新,而只能让技术人员挨家挨户的把电表换掉,拿回实验室、接到机器上重新注入固件代码。“他们似乎总算听明白了,”他说,“我们已经反复验证了一点,就是在他们能够发现问题的时候,事情已经无可挽回了。”
戴维斯欣慰的看到,由于他的努力,供应商们终于改进了电表的设计。有些供应商改为使用多个网络密钥,再把这些密钥分配至不同的社区,以减小黑客破解单个密钥后的攻击范围。但是,远程控制仍然是大部分智能电表共同面临的问题。如果黑客攻入电厂的中心网络,就可以用更简单的方式发动任意攻击。“如果没有远程控制的功能,就不会有这么多烦人的问题,”戴维斯说,“我认为,不管有没有权限限制,只要‘远程拉闸’的功能不取消,电表就始终存在重大安全隐患。”
要想造成断电,攻击智能电表是个好办法。但更有效的办法是,直接攻击给电网供电的发电机,或者向客户传送电力的输配电系统。莱昂•帕内塔(Leon Panetta)在2011年6月被提名为国防部长的审议听证会上指出,美国即将经历的下一场“珍珠港事件”很有可能是针对电网的网络攻击。
北美电网既庞大又复杂,主要由3个大型区域电网组成,即东部电网、西部电网和德州电网。电网共有45000英里的高压传输线,由约3000家电力公司分别运营。由于电力可以在能源共同市场上进行交易,因此供给端和用户端之间常常跨越州际。那么,就出现了专门负责电力调度工作的运营商,如之前提到的、在2001年遭受网络攻击的加州电力调度中心(Cal-ISO)。虽然多数系统各自独立,攻击一家电厂或变电站不会造成多大影响,但是它们彼此之间的连通性,还是为黑客同时对多个系统发动全面协同攻击提供了便利条件。一旦这类攻击发生,将造成难以修复的灾难性断电,从而让用户陷入长达数周的黑暗之中。
比如,当掌管配电线路通断的断路器感知到危险的电涌时,会立即打开闸门,断开与电网之间的连接。那么,有一条线路断网后,原本流向这条线路的电流就会被重定向至其他线路。如果其他线路达到了饱和容量,上面的断路器也会跳闸,从而造成大规模断电。一个精心设计的攻击会在造成某些线路跳闸的同时,操纵另外一些线路的断路器,使其在容量过饱和时不会自动跳闸、进而让整条线路处于过热状态。
当配电线路过热后,就会发生电线垂落或熔毁等事故。由于电线垂落,2003年的东南大停电造成了8个州和加拿大部分地区共5000万人无电可用。虽说事故并非由网络攻击引起,但未能对事故进行早期预警和预防响应的软件缺陷(bug)难辞其咎。
事故始于俄亥俄州,当时垂落的电线卷到了树枝上,但亚克朗市第一能源公司控制中心的应急警报系统却没有任何反应。这使得运营管理人员对不断恶化的情况一无所知。在大停电两个半小时之前,不断有工业用电户和其他电厂给第一能源公司打电话,投诉电压下降和电路跳闸。这些都是电网出问题的明显标志。但是,由于第一能源公司的运营管理人员没有在控制系统中收到任何故障信号,根本就没那这些投诉当回事。一位员工甚至跟打电话过来的用户说:“别人家(美利坚电力)的电网还不是一样会跳闸嘛。”直到第一能源公司控制室的灯都灭了,他们才意识到是自家的系统出了故障。最终,他们发现,造成警报系统失灵的是一个软件缺陷。“这个bug之前从来没有出过状况,”第一能源的发言人事后说,“错误藏得很深,他们花了几个星期、翻遍了几百万行代码和数据才找到。”
比攻击配电线路更具破坏性的,是攻击向配电线路供电的变电站设备。电网共有15000个变电站节点,可分为3类:一类是发电厂向外送电的变电站,一类是在不同配电线路间转接的变电站,一类是向用户端分发电力的变电站。其中最重要的是第二类,它们在需要远距离输电之前进行梯级升压,在电力抵达目的地后、需要向不同用户分发电力之前进行梯级降压。联邦能源管理委员会近期的一份研究发现,只须攻击9个关键的变电站(东部电网4个、西部电网3个、德州电网2个),就可以引起持续数周甚至数月的全国性大停电,并造成恐慌和人员伤亡。
好消息是,由于电网系统的所有者和运营商为数众多,所以使用的应急设备及软件配置也是千差万别。这让攻击者不可能用一种攻击手段和传播方式对整个电网实施破坏。但是,对于一般黑客来说,发动区域性的攻击、造成小范围的断电绝非难事。而且,如果攻击真的像“极光发电机实验”那样,破坏了发电厂中的工业级发电机,那么修复起来将更加困难。(待续)
极光发电机实验(Aurora Generator Test)名称取自罗马神话中的“风之母”奥罗拉女神,其根源是2003年的美国东南大停电事故。停电只持续了2天,却足够令人们痛定思痛,考虑远程攻击发电机造成不可收拾局面的可能性。迈克•阿桑特(Mike Assante)受命组建实验团队。
[![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-08_5666b18c3ca45.jpg)](http://www.aqniu.com/wp-content/uploads/2015/10/640.webp_51.jpg)
“风之母”奥罗拉
2001年时,阿桑特是一名在华盛顿工作的海军情报军官,工作单位是联邦调查局(FBI)新成立的国家基础设施防护中心,主要任务是对能源基础设施的网络攻击及其潜在风险进行研究。一年后,他退出现役,来到了美国最大的电力公司之一——俄亥俄州的美利坚电力公司。美利坚电力让他负责一个基础设施防护项目。从那时起,阿桑特就开始思考这样一个问题:会不会出现某种能对电网造成物理破坏的网络攻击呢?
在俄亥俄,阿桑特偶然读到了《华盛顿邮报》上一篇关于爱达荷国家实验室(INL)“国家SCADA测试平台”项目的报道。报道中,联邦能源管理委员会主席在看过研究人员一次模拟演示之后,惊得瞠目结舌。这次模拟演示的内容是,黑客轻而易举的通过关闭发电机润滑装置,成功破坏了它的涡轮机。活动中的金属结构失去了润滑油的润滑,涡轮机骤然停转,巨大的力量将它压成碎块。这位主席事后接受华盛顿邮报采访时说:“我当时要是穿着纸尿裤就好了。”演示对他触动之大,可见一斑。而看过这篇报道的阿桑特,其内心活动自不待言。
于是,阿桑特只身一人来到INL“朝圣”,对“国家SCADA测试平台”项目的专家团队钦羡不已。除了控制系统工程师,实验室还聘请了一支由刚从大学乃至高中毕业的年轻人组成的黑客攻击团队。他们的工作富有激情、成果丰硕,总是能够在已经运行多年、受到充分信赖的系统中发现新的脆弱点。实验室甚至建造了自己的变电站,和一个半径7英里的小型独立电网,以便让研究者对电网实施自由测试,而不会对公共电网造成影响。阿桑特一想到在真实电网、而非模拟环境中进行安全测试和研究,就心旌摇荡、不可自持。2005年,他辞掉了美利坚电力公司的工作,来到了INL。
来了之后,他带着几名同事,开始研究如何构设出一个“网络攻击造成物理破坏”的真实情境。彼时,在电网网络安全领域,绝大多数人的注意力都在入侵通信网络、并通过控制断路器造成断电的问题上。然而,这种断电事故,可以通过重置断路器的方式很快得到妥善处置。那么,如果攻击攻破或绕过安全防护系统、对发电机实施物理破坏怎么办?处理这种情况,可没那么容易。
他们决定,通过攻击保护继电器来侵入发电机。保护继电器是一种监控电网内部变化、在电网遇到可能危害配电线路的危险情况时,触发断路器“跳闸”的安全设备。在2008年2月的大断电事故中,这种设备起到了非常重要的作用。当时,佛罗里达电力照明公司的一名现场工程师,在调查某个变电站中出故障的开关时关掉了保护继电器,瞬间引发了佛州近60万用户断电。这位工程师没想到,他这一条线出问题不要紧,紧接着38个变电站都受到了波及。其中一个变电站是为核电厂供电的,它的停电造成了核电厂自动停机事故。
保护继电器不仅可以触发断路器跳闸,还能在感知到电网处于危险境地时,切断发电机和其他重要设备与电网的连接。我们知道,(美国)电网运行频率为60赫兹,那么与之连接的设备必须与之同步运行,否则就会出问题。如果将一个运行在其他频率上的设备插入电网,不同频造间的“扭矩”就会对设备造成破坏。当一台发电机接入电网时,电网的负载会对发电机产生一个“阻滞”的力,就像地球重力让上坡的汽车受到“阻滞”一样。那么,当发电机和电网之间的断路器开闸、使发电机脱离电网时,发电机就会因失去电网负载的“阻滞”而加速。仅10毫秒,发电机就会加速到无法与电网同步的频率上。如果此时断路器合闸,让已经不再彼此同步的发电机和电网重新连接,就会出现类似汽车撞墙的效果。接入以较低频率运行的电网时,正以较高频率运行的发电机输出的多余电力无处可去,只能形成一个对自身的反作用力,从而对发电机造成损害。在过去的事故中,这种现象曾作为事故原因反复出现。
既然如此,阿桑特团队在实验中面对的问题就很简单了——如果保护继电器可以用于保护设备不受破坏,那么为何不反其道而行之,专门用它来对设备实施破坏呢?解决问题往往比提出问题更容易,攻击方案很快成型。其内容包括:编写可以更改(数字型)保护继电器设置的[恶意代码](http://www.aqniu.com/infosec-wiki/827.html "恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。"),让断路器时通时断且不断重复这一操作,使发电机造成“断开电网——频率异步——接入电网——造成破坏”的恶性循环。此时,保护继电器将无法提供任何保护,发电机则完全处于裸奔状态。“这简直就是恶魔的诅咒,”乔•韦斯说,“用户阻止类似攻击发生的设备和机制,却被攻击者用来实施攻击。”国土安全部也在关于此次实验的一份报告中写道,通过对保护电路进行突然、反复的“打开——闭合”操作,继电器的功能“从提供保护,变成了引起破坏。”
他们用全新价(100万美元)的1/3,买下了一台从阿拉斯加油田淘汰下来的瓦锡兰发电机,作为进行“现场直播”的道具。
人们在实验现场看到,攻击总共持续了3分钟,但实际上攻击可以在15秒内完成。攻击者在代码中加入了一些停顿,以便让工程人员在攻击起效的每个阶段评估破坏程度、测试安全系统的状态。每当断路器闭合、让以较高频率运转的发电机接入电网时,发电机都会因过剩能量带来反作用力而震荡、并发出巨大的声响,直到最后,本应耦合在一起的柴油引擎和发电机转子相互脱离、发电机彻底损毁。
在运营中心负责监控电网异常行为的工人们,事先未被告知即将进行这次实验。在实验开始前,他们也没有在监控台发现任何不对劲的地方。安全系统可以熨平电网中经常出现的轻微波动,但对于破坏性攻击却没法做出任何反应。国土安全部控制系统安全项目负责人、极光发电机实验监管组长佩里•彼得森(Perry Pederson)说,“我们发动攻击时,打开、闭合断路器的速度太快,安全系统根本反应不过来。”
自从2007年极光发电机实验之后,类似的破坏性网络攻击曾再次出现。2009年,《60分钟》栏目报道了桑迪亚国家实验室研究员的一个演示。演示中,研究人员通过简单更改发热元件配置和禁用用于辅助温控的循环泵,造成炼油厂关键设备过热。
但是,直到目前,除了震网病毒和马卢奇郡事件,现实世界中还没有其他的破坏性工控系统网络攻击发生。专家们对此给出了一系列可能的理由——要实现类似攻击比我们想象的要难,掌握攻击所需技能和资源的人往往缺乏发动攻击的动机,想发动类似攻击的人却往往没有这些技能和手段。
只有一件事确定无疑。考虑到发动类似攻击的途径之多元、手段之丰富,加之震网树立了极为成功的样板,必然会有人循着这条路不断前进,并在未来的某天跨越能力或动机的门槛,给世人带来新的惊奇。(待续)
';