去年,有消息称一种计算机病毒已经设法潜入伊朗高度安全的核浓缩设施。大多数病毒会毫无偏见地繁殖,但“震网”病毒的目标非常明确——一个未连接到互联网的目标。“震网”病毒被植入一个USB闪存盘中,该闪存盘被交给一位毫无戒心的技术人员,后者将其插入安全设施中的一台计算机。一旦进入,病毒就会悄无声息地传播数月,寻找一台连接到普通机械设备的计算机:可编程逻辑控制器,这是一种特殊的微电子设备集合,通常控制工业的齿轮——阀门、齿轮、马达和开关。当“震网”病毒识别出它的猎物时,它悄无声息地潜入并夺取了控制权。
被攻击的目标控制器连接到伊朗核野心核心的离心机。需要数千台这样的离心机将铀矿加工成制造核武器所需的高度浓缩铀。在正常运行条件下,离心机的转速非常快,以至于其外边缘的运行速度略低于音速。科学与国际安全研究所 12 月份的一份报告称,“震网”病毒将这一速度提高到接近每小时 1000 英里,超过了转子可能解体的速度。与此同时,“震网”病毒向控制系统发送虚假信号,表明一切正常。尽管伊朗核计划遭受的损害程度仍然不明朗,但该报告指出,伊朗不得不在 2009 年末或 2010 年初更换了纳坦兹浓缩设施的约 1000 台离心机。
“震网”病毒表明,常见的工业机器在多大程度上容易受到电子攻击的威胁。该病毒攻击并摧毁了本应安全的设备,同时躲避检测长达数月之久。它为流氓国家或恐怖组织可能如何在世界任何地方使用类似技术攻击关键民用基础设施提供了一个令人沮丧的蓝图。
支持科学新闻事业
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻事业 订阅。通过购买订阅,您正在帮助确保有关塑造我们当今世界的发现和想法的具有影响力的故事的未来。
不幸的是,电网比任何核浓缩设施都更容易入侵。我们可能认为电网是一个巨大的电路,但实际上,电网是由数千个相隔数百英里的组件以精确的协调方式组成的。流入电网的电力供应必须与需求同步升降。发电机必须以精确的协调方式分配能量,与电网其余部分所遵循的每秒 60 周期节拍保持一致。虽然任何单个组件的故障对这个庞大的电路的影响有限,但对电网多个点进行协调的网络攻击可能会严重损坏设备,以至于我们国家发电和输电的能力将在数周甚至数月内受到严重损害。
考虑到电网的规模和复杂性,协调攻击可能需要大量的时间和精力才能发起。“震网”病毒可能是迄今为止见过的最先进的计算机病毒,这导致人们猜测它是以色列或美国情报机构——或两者兼而有之——的杰作。但是,“震网”病毒的代码现在可以在互联网上获得,这增加了流氓组织可能对其进行定制以攻击新目标的可能性。像基地组织这样技术不太精湛的组织目前可能没有能力对电网造成重大损害,但在中国或前苏联雇佣的黑客可能有能力。我们早就应该确保国家的电力供应安全了。
入侵
一年前,我参加了一次测试演习,该演习的中心是一个虚构的针对电网的网络攻击。参与者包括来自公用事业公司、美国政府机构和军方的代表。(军事基地依赖商业电网供电,五角大楼并没有忽视这一事实。)在测试场景中,恶意代理人入侵了多个输电变电站,破坏了专门且昂贵的设备,这些设备确保电压在电力流经长距离高压输电线路时保持恒定。到演习结束时,已有六个设备被摧毁,导致美国西部的一个州停电数周。
计算机控制着电网各个层级的机械设备,从化石燃料或铀驱动的大型发电机,一直到您街道上的输电线路。这些计算机中的大多数使用常见的操作系统,如 Windows 和 Linux,这使得它们与您的台式 PC 一样容易受到恶意软件的攻击。“震网”等攻击代码之所以成功,主要有三个原因:这些操作系统默认信任正在运行的软件是合法的;它们通常存在漏洞,允许恶意程序渗透;工业环境通常不允许使用现成的防御措施。
即使知道所有这些,普通的控制系统工程师也曾经断然否定远程启动的恶意软件接近关键控制器的可能性,认为该系统未直接连接到互联网。然后,“震网”病毒表明,与任何其他事物没有永久连接的控制网络仍然容易受到攻击。例如,恶意软件可以搭乘技术人员插入控制系统的 USB 闪存盘的便车。当涉及到关键电子电路时,即使是最小的后门也可能让有进取心的窃贼进入。
以输电变电站为例,它是电力从发电厂到您家中的途中的一个中转站。变电站接收来自一个或多个发电厂的高压电,降低电压,并将电力分成多条输出线路以进行本地分配。断路器保护着这些线路中的每一条,随时准备在发生故障时切断电源。当一条输出线路的断路器跳闸时,它本应承载的所有电力都会流向其余线路。不难看出,如果所有线路都以接近其容量的功率运行,那么一次网络攻击导致一半输出线路跳闸并保持其余线路在电路中,可能会使它们过载。
这些断路器历来由连接到电话调制解调器的设备控制,以便技术人员可以拨入。找到这些号码并不困难;黑客在 30 年前就发明了程序,可以拨打交换机内的所有电话号码,并记下调制解调器响应的号码。变电站中的调制解调器通常在其拨号响应中包含一条独特的消息,揭示其功能。再加上薄弱的身份验证手段(例如众所周知的密码或根本没有密码),攻击者可以使用这些调制解调器来入侵变电站的网络。从那里,可以更改设备配置,以便忽略原本会打开断路器以保护设备的危险状况。
新系统不一定比调制解调器更安全。越来越多的部署在变电站中的新设备可能会通过低功率无线电相互通信,而无线电不会止步于变电站的边界。攻击者只需躲在附近的灌木丛中,用他的计算机就可以访问网络。加密的 Wi-Fi 网络更安全,但经验丰富的攻击者仍然可以使用现成的软件工具破解其加密。从这里,他可以执行中间人攻击,使两个合法设备之间的所有通信都通过他的计算机,或者欺骗其他设备接受他的计算机为合法设备。他可以精心制作恶意控制消息,劫持断路器——可能跳闸精心挑选的几个以使其他线路过载,或者确保它们在紧急情况下不会跳闸。
一旦入侵者或恶意软件通过后门潜入,它的第一步通常是尽可能广泛地传播。“震网”病毒再次说明了一些众所周知的策略。它通过使用一种名为 autoexec 的操作系统机制来扩散。Windows 计算机每次有新用户登录时都会读取并执行名为 AUTOEXEC.BAT 的文件。通常,该程序会查找打印机驱动程序、运行病毒扫描或执行其他基本功能。然而,Windows 假定任何具有正确名称的程序都是受信任的代码。因此,黑客会找到更改 AUTOEXEC.BAT 文件的方法,以便它运行攻击者的代码。
攻击者还可以使用巧妙的方法来利用电力行业的经济性。由于放松管制,竞争的公用事业公司共同承担电网运营的责任。电力的产生、传输和分配都根据在线拍卖获得的合同进行。这些市场在多个时间尺度上运作——一个市场可能交易即时交付的能源,另一个市场可能交易明日需求的能源。公用事业公司的业务部门必须从其运营部门获得持续的实时信息流,才能进行明智的交易。(反之亦然:运营部门需要知道他们需要生产多少电力才能满足业务部门的订单。)这里的漏洞就在于此。有进取心的黑客可能会入侵业务网络,找出用户名和密码,并使用这些被盗的身份来访问运营网络。
其他攻击可能会通过利用嵌入在文件中的称为脚本的小程序来传播。这些脚本无处不在——例如,PDF 文件通常包含有助于文件显示的脚本——但它们也存在潜在危险。一家计算机安全公司最近估计,超过 60% 的定向攻击都使用了隐藏在 PDF 文件中的脚本。仅仅阅读一个损坏的文件就可能让攻击者进入您的计算机。
考虑这样一种假设情况:一个潜在的电网攻击者首先渗透到软件供应商的网站,并将在线手册替换为恶意手册,该手册看起来与第一个手册完全相同。然后,网络攻击者向发电厂的工程师发送一封伪造的电子邮件,诱骗工程师获取并打开带有陷阱的手册。仅仅通过在线下载更新的软件手册,这位不知情的工程师就向特洛伊木马打开了发电厂的大门。一旦进入,攻击就开始了。
搜索与摧毁
控制网络上的入侵者可以发出可能造成灾难性后果的命令。2007 年,美国国土安全部在爱达荷国家实验室上演了一场代号为“极光”的网络攻击演习。在演习期间,一名冒充恶意黑客的研究人员设法进入了一个连接到中型发电机的网络。像所有发电机一样,它产生几乎正好以每秒 60 周期运行的交流电。在每个周期中,电子流的流动方向首先朝一个方向移动,然后反转方向,然后返回到其原始状态。发电机必须在与电网其余部分完全相同的时间以完全相同的方向移动电子。
在“极光”攻击期间,我们的黑客向实验室测试发电机的断路器发出了一连串快速的开/关命令。这使其与电网自身的振荡失去同步。电网朝一个方向拉,发电机朝另一个方向拉。实际上,发电机的机械惯性与电网的电气惯性作斗争。发电机输了。解密视频显示,这个庞大的钢铁机器颤抖着,仿佛一列火车撞上了建筑物。几秒钟后,蒸汽和烟雾充满了房间。
当工业系统超出其极限时,也可能发生故障——当离心机转速过快时,它们会解体。同样,攻击者可能会使发电机产生超过输电线路承载极限的电涌。过多的电力将不得不以热量的形式逸出。足够多的过量电力持续足够长的时间会导致线路下垂并最终熔化。如果下垂的线路与任何东西(树木、广告牌、房屋)接触,都可能造成大规模短路。
保护继电器通常可以防止这些短路,但网络攻击可能会干扰继电器的正常工作,这意味着会造成损坏。此外,网络攻击还可能更改发送到控制站的信息,使操作员不知道发生了任何异常情况。我们都看过电影,其中骗子向警卫发送虚假的视频信息。
控制站也容易受到攻击。这些是带有巨型显示屏的指挥和控制室,就像《奇爱博士》中的作战室一样。控制站操作员使用显示屏来监控从变电站收集的数据,然后发出命令来更改变电站控制设置。这些站点通常负责监控分布在一个州大部分地区的数百个变电站。
控制站和变电站之间的数据通信使用专门的协议,这些协议本身可能存在漏洞。如果入侵者成功发起中间人攻击,则该个人可以将消息插入到交换中(或破坏现有消息),从而导致两端计算机中的一台或两台发生故障。攻击者也可以尝试仅注入格式正确但与上下文无关的消息——一种数字上的不合逻辑,导致机器崩溃。
攻击者也可能只是试图延迟控制站和变电站之间传输的消息。通常,变电站对电力流量的测量与控制站使用该数据来调整流量之间的时间延迟很小——否则,就像开车时只能看到 10 秒钟前的位置一样。(这种缺乏态势感知是 2003 年东北部大停电的原因之一。)
许多此类攻击不需要“震网”等花哨的软件,而仅仅是标准的黑客工具包。例如,黑客经常控制数千甚至数百万台普通 PC 的网络(僵尸网络),然后指示它们执行他们的命令。最简单的僵尸网络攻击类型是用虚假消息淹没普通网站,阻止或减慢普通信息流。这些“拒绝服务”攻击也可用于减慢控制站和变电站之间移动的流量。
僵尸网络也可能在变电站计算机本身中扎根。2009 年的某个时候,“Conficker”僵尸网络已渗透到 1000 万台计算机中;控制它的个人(尚未知)可以命令它擦除网络中每台计算机的硬盘,并听从命令。像“Conficker”这样的僵尸网络可以在变电站内建立自身,然后让其控制器指示它们在任何时间同时执行任何操作。根据宾夕法尼亚州立大学和科罗拉多州戈尔登市国家可再生能源实验室的研究人员在 2004 年进行的一项研究,攻击导致精心挑选的少数输电变电站(约占总数的 2%,即总共 200 个)瘫痪,将导致 60% 的电网瘫痪。损失 8% 将引发全国范围的停电。
应该怎么做
当微软了解到其 Windows 软件中存在潜在的安全漏洞时,通常会发布软件补丁。世界各地的个人用户和 IT 部门下载补丁,更新其软件并保护自己免受威胁。不幸的是,在电网上,事情并非如此简单。
虽然电网使用与世界其他地方相同类型的现成硬件和软件,但发电站的 IT 管理员不能简单地在出现漏洞时修补有缺陷的软件。电网控制系统不能每周停机三小时进行维护;它们必须持续运行。电网运营商也具有根深蒂固的制度保守主义。控制网络已经存在很长时间了,运营商对其工作方式既熟悉又舒适。他们倾向于避免任何威胁可用性或可能干扰正常运行的事情。
面对明确而迫在眉睫的危险,北美电力可靠性公司 (NERC)(电网运营商的伞式机构)制定了一套旨在保护关键基础设施的标准。现在要求公用事业公司识别其关键资产,并向 NERC 指定的审计员证明他们可以保护这些资产免受未经授权的访问。
然而,安全审计就像财务审计一样,不可能做到详尽无遗。当审计深入技术细节时,也只是有选择性地进行。合规性取决于审计员的看法。
最常见的保护策略是采用电子安全边界,这是一种网络安全马奇诺防线。第一道防线是防火墙,这是一种所有电子消息都必须通过的设备。每条消息都有一个标头,指示消息的来源、去向以及用于解释消息的协议。根据这些信息,防火墙允许某些消息通过,而阻止其他消息。审计员的工作部分是确保公用事业公司中的防火墙配置正确,以便它们不会让任何不需要的流量进入或流出。通常,审计员会识别出一些关键资产,获取防火墙配置文件,并尝试手动梳理黑客可能突破防火墙的方式。
然而,防火墙非常复杂,审计员很难解析所有无数的可能性。自动化软件工具可能会有所帮助。我们在伊利诺伊大学厄巴纳-香槟分校的团队开发了网络访问策略工具,该工具目前正被公用事业公司和评估团队使用。该软件只需要公用事业公司的防火墙配置文件——甚至不需要连接到网络。它已经发现了一些未知的或长期被遗忘的路径,攻击者可能已经利用了这些路径。
美国能源部已经发布了一个路线图,其中列出了到 2015 年加强电网安全的战略。(今年到期的修订版将此截止日期延长至 2020 年。)一个重点是:创建一个能够识别入侵企图并自动做出反应的系统。这将阻止类似“震网”病毒从 USB 闪存盘跳转。但是,操作系统如何知道哪些程序是值得信任的?
一种解决方案是使用单向哈希函数,这是一种密码学技术。哈希函数采用一个非常大的数字——例如,计算机程序的所有数百万个 1 和 0,表示为一个数字——并将其转换为一个较小的数字,该数字充当签名。由于程序非常大,因此两个不同的程序不太可能产生相同的签名值。假设每个想要在系统上运行的程序都必须首先通过哈希函数。然后,将其签名与主列表进行检查;如果检查不通过,攻击就会在那里停止。
美国能源部还建议其他安全措施,例如在操作员工作站进行物理安全检查(想想身份证中的无线电芯片)。它还强调需要加强对网络内部设备之间通信的控制。2007 年的“极光”演示涉及一个恶意设备欺骗发电机的网络,使其相信它正在发送权威命令。这些命令最终导致了发电机的损坏。
这些有价值的步骤将需要时间和金钱和精力。如果我们要在未来十年内实现美国能源部关于更安全电网的路线图,我们就必须加快步伐。让我们希望我们还有那么多时间。