30行代码如何摧毁一台27吨的发电机

2020 年 11 月 13 日

30行代码如何摧毁一台27吨的发电机

摘要:本文内容摘录自《沙虫:网络战的新时代,追剿克里姆林宫最危险的黑客》一书,介绍了 2007 年在爱达荷国家实验室开展的一次黑客攻击发电机的实验。此次实验表明了网络攻击物理世界的潜在可能性,不仅可以对受害者的工作造成暂时性破坏,还可以损毁一些最关键的设备以至于无法修复。


正文:


爱达荷州国家实验室设施的控制室。照片来源:《纽约时报》Jim McAauley


早些时候,美国司法部宣布了对“沙虫”(Sandworm)黑客团伙的起诉。起诉文件指控六名为俄罗斯GRU军事情报局工作的黑客,涉及过去五年内全球多宗网络计算机犯罪,从破坏2018年韩国冬季奥运会,到释放乌克兰历史上最具破坏性的恶意软件。在被起诉的网络攻击罪行中,包括2016年对乌克兰的电网进行了前所未有的攻击,此次攻击不仅想要造成大面积停电,而且还意图对电气设备造成物理损坏。网络安全研究人员Mike Assante深入研究了此类攻击的细节,他意识到电网攻击手段并非由俄罗斯黑客发明的,而是由美国政府提出并在十年前就进行了测试。


上述内容摘录自本周出版的平装书《沙虫:网络战的新时代,追剿克里姆林宫最危险的黑客》,其中提及的试验称为“极光发电机测试”(Aurora Generator Test),是由工业控制系统安全领域的先驱和传奇人士Mike Assante领导的。时至今日,该试验依然是对通过网络攻击物理世界的潜在可能性的严重警示,很好地预测了随后出现的“沙虫”攻击。


2007 年 3 月的一个寒风凛冽的早晨,Mike Assante 进入了位于爱达荷瀑布(Idaho Falls)以西 32 英里处的爱达荷国家实验室(Idaho National Laboratory)设施。该设施坐落在一片高大的沙漠景观中间,被积雪和鼠尾草所覆盖。Assante 步入访客中心的大厅时,那里已经聚集了一小群人,其中包括来自美国国土安全部、能源部、北美电力可靠性公司(NERC)的官员、全美各地部分电力公司的高管,以及像 Assante 这样的研究人员和工程师。此项工作由国家实验室牵头开展,为期一天时间,探索可能针对美国关键基础设施的灾难性威胁。


房间看上去像是火箭发射的任务控制大厅,一组视频监视器和数据源面对着体育场般布置的座位。屏幕上显示着对一台大型柴油发电机的多角度实时监控视频。这台发电机的大小近似于一辆校车,是呈薄荷绿色的巨大钢铁物体,重达 27 吨,约为一辆 M3 布莱德利装甲车的重量。发电机持续轰鸣着,部署在距离大家所在房间有一英里的变电站,其所产生的电能足以为一所医院或是一艘海军舰船供电。发电机表面散发出的热浪,在视频监控图像中形成了波动线。


这台发电机是 Assante 和他在 INL 的研究同事以 30 万美元从阿拉斯加的一处油田购买的,并运送到数千英里之外的爱达荷州测试地点,一块面积 890 平方英里的土地。国家实验室为此次测试准备了一个规模相当大的电网,配有长度达 61 英里的电力传输线和 7 个变电站。


现在,如果 Assante 他们成功地实施了攻击,那么将会摧毁这台发电机。蓄势待发的研究人员计划不使用任何物理工具或武器,只通过网络就彻底破坏这台非常昂贵且不易损坏的机械设备。他们使用的只是大小约 140 KB 的数据,文件规模甚至小于 Twitter 上分享的 GIF 格式的猫咪照片的平均大小。


三年前,Assante 曾担任美国电力公司(American Electric Power)的首席安全官,该公司在德克萨斯州至肯塔基州的 11 个州拥有数百万客户。Assante 是一名前海军军官,后来成为网络安全工程师,长期以来一直对黑客攻击电网的潜在能力保持敏锐的意识。但是他很沮丧地看到,对这一仍然是理论上和遥远的威胁,其电力行业中的大多数同行都持相对简单的看法。行业中的普遍看法是,如果黑客确实以某种方式深入到公用事业网络中,并控制断路器的开合,那么员工可以轻易地将入侵者踢出电网,并重新合上电源。Assante 记得一些同事曾说,“我们可像风暴一样迅速掌控攻击。设想方式是和断电一样,恢复供电就行了。对风险模型的最大考量不过如此。”


但对于 Assante 这样为数不多的具有电网架构和计算机安全两者间交叉领域知识的人来说,他们担忧的是另一个更大的风险。如果攻击者不仅仅劫持了电网运营商的控制系统,通过闭合开关并造成短期停电,而是重新编程了电网的自动化组件,使得这些组件脱离检查人员的控制,自行决定电网运行状态,那会是怎样的后果?



爱达荷州国家实验室 890 平方英里庞大测试场中的一个变电站。图片由爱达荷州国家实验室提供


值得一提的是,Assante 一直关注的是称为“保护继电器”的设备。保护继电器设计上是一种为防止电气系统中发生危险物理条件的安全机制。一旦线路过热或发电机不受控,保护继电器会检测到异常,并打开断路器,断开故障点,进而保护昂贵的硬件设备,甚至预防发生火灾。保护继电器可视为电网中的救生员。


但如果保护继电器发生瘫痪,或者更糟的是发生损坏,反而会成为承载攻击者有效载荷的工具,那该怎么办?


这个自在电力公司任职以来就萦绕 Assante 心中的问题,正是他此次带到爱达荷州国家实验室的问题之一。现在在实验室测试场的访客中心,Assante 和他的工程师们正在将他的这个最恶意的想法付诸实践。秘密实验的代号是“极光”,指代数字攻击可能会造成的物理后果。


作为测试负责人,Assante 读出了时间,那是上午的 11 时 33 分。他与一名安全工程师一起检查了柴油发电机周围的实验区域,以免有旁观者逗留。之后,他向位于爱达荷瀑布国家实验室办公室中的一位网络安全研究人员发出了警告信息,攻击就开始了。与任何现实的数字破坏活动一样,这项测试是通过互联网在数英里之外开展的。测试中,模拟黑客将大约 30 行代码从本地计算机中推送到保护继电器,继电器连接着校车般大小的柴油发电机。


在攻击破坏开始之前,发电机的内部以不可见的方式,与所连接的电网维持着某种完美协调的舞步。机厢内的柴油被雾化后,以非人工控制的定时方式燃爆,推动发电机内的钢棒旋转带动活塞以每分钟 600 次的频率运动(整个组件被称为“原动力”)。旋转通过减少振动的橡胶垫圈,传递到发电部件。这是一根包裹铜线并置于两块大磁铁之间的臂杆,每轮旋转都会在线圈中感应出电流。旋转足够快的缠绕铜线圈将产生 60 赫兹的交流电,功率馈入与其连接的大规模电网中。


保护继电器连接到发电机,防止继电器在尚未率先准确同步至 60 赫兹的情况下,就与电力系统的其余部分建立连接。但在爱达荷瀑布,Assante 的 Assante 的黑客已经重新编程了这个安全装置,更改了它的逻辑。


时间到了上午 11 时 33 分 23 秒,保护继电器观察到发电机已完全同步。但是随后它被攻击破坏的大脑却做出了与原先意图相反的决定,它打开了一个断路器,断开与发电机的连接。


发电机一旦脱离了爱达荷国家实验室的大规模电网,无法将能量负载分配给庞大的系统,发电机就立即加速,产生更快的旋转速度,就像一群从马车上解套的马。保护继电器观测到发电机的旋转加速与电网其他部分已经完全不同步,这时被恶意篡改翻转的逻辑立即将发电机重新连接到电网操作中。


一旦柴油发电机再次连接到较大系统,就承受了电网上所有其他旋转发电机扭力的冲击。所有这些设备将柴油发电机重量相对不大的旋转部件拉回原来较慢的速度,以匹配周边设备的频率。


聚集的观众们通过游客中心的屏幕观看到巨大机器震动着,发出巨大的噪音,像是鞭子的爆裂声。从触发恶意代码到发电机发出颤动,整个过程仅耗时不到一秒钟。


一些黑块开始从发电机的检修面板蹦出。研究人员持续观察着发电机内部,连接发电机轴两半的黑色橡胶垫圈自身发生了撕裂。


几秒钟后,机器再次发生震颤。这是保护继电器的代码重做了一轮破坏,断开发电机然后再次重新同步。这次一团灰色的烟雾从发电机冒出,可能是其中的橡胶碎片燃烧所造成的。


为亲眼目睹这样的攻击场面,Assante 的团队花费了数月的努力,耗费了数百万美元的联邦资金。但看到机器内部发生破坏时,同情心还是在某种程度上油然而生。“你会发现自己和这台小机器一样,并不想变成这样。” Assante 回忆道,“我当时在想,'一定要坚持下去!'”


在遭受第三轮打击后,机器终于挺不住了,它释放出一团更大的灰色烟雾云。一位站在 Assante 旁边的工程师说:“这台原动力成了烤面包了。” 经过第四轮打击后,机器向空中喷出一团高达 30 英尺的黑烟,在嘎嘎声中宣告报废。


最终,测试负责人结束了实验,将已损毁的发电机从电网上断开,留下所有残迹。在随后的取证分析中,实验室的研究人员发现发动机轴与发动机内壁相撞,两者均产生了深深的切痕,金属屑填满了机器的内部。在发电机的外侧,接线和绝缘层融化,并发生燃烧。机器完全报废了。


现场展示结束后,游客中心一片寂静。Assante 说,“那时气氛严肃”。工程师们已确定无疑地证明,攻击电力公司的黑客不仅可以对受害者的工作造成暂时性破坏,还可以损毁一些最关键的设备以至于无法修复。“现实历历在目。想象一下如果发生在现实工厂的某台机器上,后果十分可怕。”Assante 说。“这意味着只需几行代码,攻击者就能创造出条件,对我们所依赖机器造成物理上严重损害。”


但 Assante 还记得,自己在“极光”实验之后的那一刻心情略感沉重。就像六十年前罗伯特·奥本海默在另一个美国国家实验室观看第一次原子弹试验那样,感觉到一种历史性巨大力量的诞生。


“我内心产生了一种奇怪的感觉,仿佛未来的惊鸿一瞥”,Assante 说。


摘自《Sandworm: A New Era of Cyberwar and the Hunt for the Kremlin's Most Dangerous Hackers》一书。版权所有©2019 Andy Greenberg,经企鹅兰登书屋有限责任公司的子公司 Anchor Books 许可转载。


原文链接:


How 30 Lines of Code Blew Up a 27-Ton Generator


2020 年 11 月 13 日 08:461203

评论

发布
暂无评论
发现更多内容

致那些高考结束的同学们

小天同学

读书 读书感悟 高考

第5周作业

andy

架构师训练营 Week5作业

平淡人生

第5周总结

远方

一致性哈希算法简单实现

Jerry Tse

源码 极客大学架构师训练营 作业 一致性哈希

第五周学习总结

李白

架构师训练营第五周作业

fenix

架构师第五周作业

suke

极客大学架构师训练营

架构师训练营Week5总结

平淡人生

架构师训练营第五周总结

James-Pang

极客大学架构师训练营

架构师训练营 第五周 个人感想

且听且吟

架构师训练营第五周学习总结

fenix

免费的GPU,还有全系列的OpenJDK

孙苏勇

Java 学习 gpu Openjdk Colab

架构师第五周总结

suke

极客大学架构师训练营

再谈大型网站技术应用——上篇

Jerry Tse

网站架构 分布式系统 极客大学架构师训练营 作业

第五周学习总结

CP

架构师训练营第五周作业

James-Pang

极客大学架构师训练营

架构师训练营第 05周—— 练习

李伟

一致性哈希算法分析与go语言实现

superman

golang 极客大学架构师训练营 一致性Hash算法

第5周-总结

Dawn

LeetCode 3. Longest Substring Without Repeating Characters

liu_liu

算法 Leetc

第5周:作业一

远方

架构师训练营-第五章-一致性hash算法

而立

极客大学架构师训练营

第5周总结

andy

week5. 课后作业

dj_cd

架构师培训 -05 缓存、消息和负载均衡

刘敏

区块链大规模应用“补位”开始了

CECBC区块链专委会

Week05 学习心得 - 技术选型

极客大学架构师训练营

week5 学习总结

任小龙

LeetCode 12. Integer to Roman

liu_liu

算法 LeetCode

一致性哈希算法&Java实现

Lane

极客大学架构师训练营

30行代码如何摧毁一台27吨的发电机-InfoQ