近三年来,2016 年 12 月乌克兰电网遭受的网络攻击一直迷雾重重。那年圣诞节前两天,俄罗斯黑客在乌克兰国家电网运营商 Ukrenergo 的网络里植入了一款特别的恶意软件。就在午夜时分,他们用这款恶意软件打开了基辅北部一所变电站的全部断路器。俄罗斯对其西方邻居持续数年的网络战历史上最戏剧化的攻击之一就此诞生,乌克兰首都大片地区爆发了前所未有的自动断电。
但一个小时后,Ukrenergo 的操作人员简单合上开关就把电力又恢复了。于是问题来了:为什么俄罗斯黑客会费心打造高端网络武器并植入一国电网心脏,只为了触发一场持续一小时的断电?
一个新理论给出了潜在的答案。重新审查了该恶意软件代码及从 Ukrenergo 系统中拉取的网络日志后,工业控制系统 (ICS) 网络安全公司 Dragos 的研究人员重建了 2016 大断电的时间线。他们认为,黑客不仅仅想造成乌克兰电网短暂断电,而是想造成可致断电数周乃至数月的持续破坏。个中区别能让该断电恶意软件跻身世界三大已知实体设备摧毁性恶意代码之列,就像震网于 2009 和 2010 年在伊朗所为,以及 Triton 恶意软件在 2017 年想对沙特炼油厂所做的那样。
Ukrenergo 案例中的一个阴险后招是,俄罗斯黑客似乎不想在断电当时触发那种破坏,而是要在电网操作人员恢复供电的时候,以供电设施本身的恢复工作反制自身。
Dragos 分析师,曾任美国能源部洛斯阿拉莫斯国家实验室计算机安全与事件响应小组主管的 Joe Slowik 称:虽然最终以直接断电收场,但所部属的工具,还有工具的使用顺序,明显透露出攻击者想要的远不止让基辅熄灯几小时那么简单。他们试图创造出能给目标变电站造成实体破坏的条件。
设置陷阱
2017 年 6 月,斯洛伐克网络安全公司 ESET 首度披露该乌克兰断电事件背后恶意软件时,这款名为 Industroyer 或 Crash Override 的恶意软件引起了网络安全社区的广泛关注。该恶意软件具备与电力设施设备直接互动的能力,包括以各种电力设施所用四种不同协议快速自动发送指令的功能,能够打开多种电力设施内的断路器,造成大规模断电。
你的响应才是最终的致命一击。
但 Dragos 的新发现与该 2016 年恶意软件一个常被人忽略的组件相关,该组件在 ESET 的原始分析中有所描述,但当时未能得到充分理解。ESET 指出,该恶意软件中这块被混淆的部分似乎是要利用西门子 Siprotec 保护继电器的一个已知漏洞。作为电网故障自动防护装置,保护继电器监视危险电源频率或电气设备的电流水平,将该信息传递给操作人员,或在检测到可能损坏变压器、熔断输电线,甚至电伤电亡工人的情况下,自动打开断路器。西门子保护继电器中的安全漏洞在 2015 年就有软件修复可用,但很多电力设施依然没为其打上补丁。只要能向该设备发送数据包,就能将其置于等待固件更新的睡眠状态,除非手动重启,否则设备不可用。
2017 年 ESET 就注意到了该恶意软件这种令人不安的可能影响,提示称 Industroyer 的创建者可能旨在实体破坏。但攻击 Siprotec 的功能到底如何引发更持久的破坏,没人清楚。毕竟,黑客仅仅是切断了 Ukrenergo 的电力供应,没有造成禁用保护继电器可能加剧的那种危险性电涌。
Dragos 的分析可能补上了 Ukrenergo 谜团缺失的部分。该公司称,从某匿名政府实体处获得了 Ukrenergo 网络日志,首次得以重现黑客操作时序。首先,攻击者打开了该变电站所有断路器,触发断电。一个小时后,攻击者启动清除程序,禁用该变电站中的电脑,阻止员工监视其中数字系统。直到那时,攻击者才使用该恶意软件的 Siprotec 入侵功能攻击变电站的四个保护继电器,意图瞒过操作人员检测,悄悄禁用这些故障自动防护装置。
Dragos 分析师现在认为,断电的目的,是想让 Ukrenergo 工程师匆忙恢复变电站设备电力供应。在没有保护继电器防护的状态下,手动恢复电力可能触发危险的变压器或输电线电流过载。该潜在灾难性破坏可能导致的输电中断远比数小时长得多。而还有可能伤及变电站员工生命安全。
不过,该计划最终失败了。出于 Dragos 无法解释的原因,可能是黑客犯了网络配置错误吧,他们本想发送至 Ukrenergo 保护继电器的恶意数据包发向了错误的 IP 地址。Ukrenergo 操作人员可能比黑客预期的动作更快,在保护继电器破坏尚未造成之前就恢复了电力。而且,即使 Siprotec 攻击确实达成,变电站里的备用保护继电器也可能阻止了一场灾难——尽管 Dragos 分析师表示在没有 Ukrenergo 安全系统完整视图的情况下,无法完全排除该潜在结果。
但 Dragos 威胁情报总监 Sergio Caltagirone 称,无论如何,事件时序揭示了当时无人发觉的危险战术。黑客预计了变电站员工的反应,试图利用该反应扩大网络攻击的破坏效果。
攻击者没按按钮。他们预先筹划的攻击,是在你响应事件时,让你去以一种可能威胁生命的破坏性方式,来毁坏变电站。真正造成致命一击的,是你的响应。
意在破坏
电力设施实体破坏攻击的阴云已经笼罩电网网络安全工程师十几年。早在 2007 年,爱达荷国家实验室就已证明,通过向保护继电器发送数字指令,可以破坏与之相连的27 吨重大型柴油发电机组。主导这些测试的工程师 Mike Assante 在 2017 年接受《连线》采访时称,Ukrenergo 恶意软件中表现出来的保护继电器攻击虽然在当时没能完全理解,却显示出此类破坏性攻击终将成为现实。今年早些时候 Assante 离世,他警告称:这绝对会是大事件。只要你见过变压器起火,你就明白有多恐怖。浓重的黑烟瞬间变成巨大火球。
如果 Dragos 关于 2016 乌克兰大断电的新理论无误,那么该起事件可算作史上仅有的三次恶意软件专用于触发破坏性实体攻击的事件之一。首开先河的是震网,美国和以色列联合开发的恶意软件,在十年前摧毁了一千台伊朗核浓缩离心机。乌克兰大断电后一年,2017 年底,沙特炼油厂 Petro Rabigh 网络中发现名为 Triton 或 Trisis 的另一款恶意软件,破坏了监视工业设施中危险情况的安全仪表系统。这最后一起网络攻击可能与俄罗斯中央化学力学科学研究院有关,几乎整个关停了沙特的炼油厂。但其实该恶意软件还有可能造成更严重的后果,比如爆炸或油气泄漏等伤亡事故。
Caltagirone 最担忧的是,这些事件已过去数年,几年间世界工业控制系统黑客可能已经又发展出了新的技术或战术。
从乌克兰断电事件到 Trisis 事件,我们现在有两个数据点反映出攻击者对人命的漠视。但最危险的东西是我们还没看到的那些。
Dragos 关于 2016 乌克兰大断电的白皮书:
https://dragos.com/wp-content/uploads/CRASHOVERRIDE.pdf
ESET 的原始分析报告:
https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf