独家连载 | 零日漏洞:震网病毒全揭秘(31)
作者: 日期:2015年10月23日 阅:2,190

640.webp

北美电网既庞大又复杂,但是它们彼此之间的连通性,还是为黑客同时对多个系统发动全面协同攻击提供了便利条件……

第九章 工控系统失控(接上)

戴维斯在西南太平洋地区的一家电力公司上班,具体负责检测公司将要向客户大力推广的智能电表。就像贝雷斯福德检测西门子公司PLC时一般,戴维斯发现,智能电表的通信模式存在缺陷。只要使用相同的通信协议,相邻的智能电表之间就可以任意通信。甚至,可以通过通信实现固件更新。这意味着,攻击者只要拿到网络密钥,就能刷新电表的固件!而且,公司还把这个密钥写到了每一块电表的固件中!这些电表一旦安装,攻击者只需破解任意一块的密钥,就可以把自己的代码刷到所有电表的固件中!!“只要手上有一块电表,我就能对所有电表想干嘛就干嘛,”戴维斯说,“各家供应商生产的智能电表也都是一个货色。”

这些电表彼此之间通过无线电进行通信,且始终保持在监听模式,随时准备接受附近电表的信号。有些型号的电表,有效通信距离甚至可达几公里。戴维斯测试的那一款,有效通信距离是400英尺,比足球场两个球门之间的距离还要大。这个距离,让攻击者可以轻松跨越智能电表的部署间距,毫不费力的传播“拉闸病毒”。戴维斯甚至不需要潜入某家宅院,只须从市场上买一块使用相同通信协议的同品牌电表,注入恶意代码和必要密钥,然后在其他智能电表附近开工即可。戴维斯说:“因为,无线信号会自动被附近的智能电表侦测并‘查收’。”当固件更新完毕,遭攻击的智能电表会使用感染后的固件程序重启,并自动将更新信息发送给有效通信范围内的其他电表,从而形成一个传播链。电厂的运营人员就算看到自己地盘上发生了停电事故,也根本没办法弄清原委。

通常情况下,智能电表供应商会通过电厂的中心网络,对电表固件进行统一的远程更新,或者让技术人员在用户所在地附近,用一台插着加密狗的笔记本,通过无线信号进行点对点更新。所以,当戴维斯和他的团队告诉这位供应商“我们可以不通过电厂中心网络、也不通过加密狗就能让恶意代码自动在电表间传播”时,供应商哈哈大笑,回应说“大哥,我们的电表根本就没有让其他电表更新固件的功能好吧。”戴维斯只好告诉他,“我们知道,但我们可以在恶意代码中加入这项功能。”供应商还是不信。戴维斯只好写了一个程序,对感染过程进行模拟。在模拟场景中,恶意代码通过固件更新的方式,在一天之内就感染了2万个电表。“我们已经很给面子了,”他说,“我们只找了一个电表发起攻击,而真正的攻击者肯定会从城市中的多个位置同时发动攻击,并造成洪泛式的感染。”

这位供应商对此仍然不屑一顾。他说,蠕虫病毒更新一台智能电表的固件需要2-4分钟,在此期间,电厂的技术人员将及时发现电力中断的情况,并通过远程发送正确的固件更新包,阻止其他电表受到攻击。

戴维斯也是醉了。他告诉供应商,恶意代码不仅可以造成断电,它还可以在感染之后、将电表固件自动更新的功能阉割掉。这样一来,电厂根本没办法搞什么远程更新,而只能让技术人员挨家挨户的把电表换掉,拿回实验室、接到机器上重新注入固件代码。“他们似乎总算听明白了,”他说,“我们已经反复验证了一点,就是在他们能够发现问题的时候,事情已经无可挽回了。”

戴维斯欣慰的看到,由于他的努力,供应商们终于改进了电表的设计。有些供应商改为使用多个网络密钥,再把这些密钥分配至不同的社区,以减小黑客破解单个密钥后的攻击范围。但是,远程控制仍然是大部分智能电表共同面临的问题。如果黑客攻入电厂的中心网络,就可以用更简单的方式发动任意攻击。“如果没有远程控制的功能,就不会有这么多烦人的问题,”戴维斯说,“我认为,不管有没有权限限制,只要‘远程拉闸’的功能不取消,电表就始终存在重大安全隐患。”

要想造成断电,攻击智能电表是个好办法。但更有效的办法是,直接攻击给电网供电的发电机,或者向客户传送电力的输配电系统。莱昂•帕内塔(Leon Panetta)在2011年6月被提名为国防部长的审议听证会上指出,美国即将经历的下一场“珍珠港事件”很有可能是针对电网的网络攻击。

北美电网既庞大又复杂,主要由3个大型区域电网组成,即东部电网、西部电网和德州电网。电网共有45000英里的高压传输线,由约3000家电力公司分别运营。由于电力可以在能源共同市场上进行交易,因此供给端和用户端之间常常跨越州际。那么,就出现了专门负责电力调度工作的运营商,如之前提到的、在2001年遭受网络攻击的加州电力调度中心(Cal-ISO)。虽然多数系统各自独立,攻击一家电厂或变电站不会造成多大影响,但是它们彼此之间的连通性,还是为黑客同时对多个系统发动全面协同攻击提供了便利条件。一旦这类攻击发生,将造成难以修复的灾难性断电,从而让用户陷入长达数周的黑暗之中。

比如,当掌管配电线路通断的断路器感知到危险的电涌时,会立即打开闸门,断开与电网之间的连接。那么,有一条线路断网后,原本流向这条线路的电流就会被重定向至其他线路。如果其他线路达到了饱和容量,上面的断路器也会跳闸,从而造成大规模断电。一个精心设计的攻击会在造成某些线路跳闸的同时,操纵另外一些线路的断路器,使其在容量过饱和时不会自动跳闸、进而让整条线路处于过热状态。

当配电线路过热后,就会发生电线垂落或熔毁等事故。由于电线垂落,2003年的东南大停电造成了8个州和加拿大部分地区共5000万人无电可用。虽说事故并非由网络攻击引起,但未能对事故进行早期预警和预防响应的软件缺陷(bug)难辞其咎。

事故始于俄亥俄州,当时垂落的电线卷到了树枝上,但亚克朗市第一能源公司控制中心的应急警报系统却没有任何反应。这使得运营管理人员对不断恶化的情况一无所知。在大停电两个半小时之前,不断有工业用电户和其他电厂给第一能源公司打电话,投诉电压下降和电路跳闸。这些都是电网出问题的明显标志。但是,由于第一能源公司的运营管理人员没有在控制系统中收到任何故障信号,根本就没那这些投诉当回事。一位员工甚至跟打电话过来的用户说:“别人家(美利坚电力)的电网还不是一样会跳闸嘛。”直到第一能源公司控制室的灯都灭了,他们才意识到是自家的系统出了故障。最终,他们发现,造成警报系统失灵的是一个软件缺陷。“这个bug之前从来没有出过状况,”第一能源的发言人事后说,“错误藏得很深,他们花了几个星期、翻遍了几百万行代码和数据才找到。”

比攻击配电线路更具破坏性的,是攻击向配电线路供电的变电站设备。电网共有15000个变电站节点,可分为3类:一类是发电厂向外送电的变电站,一类是在不同配电线路间转接的变电站,一类是向用户端分发电力的变电站。其中最重要的是第二类,它们在需要远距离输电之前进行梯级升压,在电力抵达目的地后、需要向不同用户分发电力之前进行梯级降压。联邦能源管理委员会近期的一份研究发现,只须攻击9个关键的变电站(东部电网4个、西部电网3个、德州电网2个),就可以引起持续数周甚至数月的全国性大停电,并造成恐慌和人员伤亡。

好消息是,由于电网系统的所有者和运营商为数众多,所以使用的应急设备及软件配置也是千差万别。这让攻击者不可能用一种攻击手段和传播方式对整个电网实施破坏。但是,对于一般黑客来说,发动区域性的攻击、造成小范围的断电绝非难事。而且,如果攻击真的像“极光发电机实验”那样,破坏了发电厂中的工业级发电机,那么修复起来将更加困难。(待续)

译者:李云凡

 

关键词:

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


相关文章