聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

上周早些时候,美国司法部公开了一份针对黑客组织 Sandworm 的起诉书。为俄罗斯军事情报机构格鲁乌 (GRU) 效劳的六名黑客被控五年来在全球从事计算机犯罪活动,如在韩国蓄意破坏2018年冬奥会、在乌克兰发动有史以来最具破坏性的恶意软件。在这些网络战争中,引人注意的是在2016年对乌克兰电力网发动的前所未有的攻击活动,它的目的似乎不仅是引发电力中断,而且是对电力设备造成物理破坏。而当一名网络安全研究员 Mike Assante(迈克·阿桑特)深挖这次攻击活动的细节时,他意识到电网hacking 的理念并非源自俄罗斯黑客,而是出自美国政府,并且,早在10年前就已测试过这一理论。

如下内容节选自上周发布的书籍《SANDWORM:网络战争新时代以及捉拿克里姆林宫最危险的黑客 (SANDWORM: A New Era of Cyberwar and the Hunt for the Kremlin’s Most Dangerous Hackers)》。它讲述的就是关于这段尘封的具有开创性且影响深远的电网 hacking 实验往事。这次演示由颇具传奇色彩的已故工控系统安全先驱阿桑特牵头,名称叫 “极光发电机测试(Aurora Generator Test)”。直到今天,它仍然不失为关于网络攻击对物理世界造成潜在影响的有力警示,并且,它也是对今天阴森恐怖的 Sandworm 攻击活动的不祥预感。

01

2007年3月,在一个寒风刺骨、凌冽阴冷的早晨,阿桑特到达爱荷华福尔斯市以西32英里处的爱荷华州国家实验室。实验室周围环绕着一望无际的沙漠,上面覆盖着雪和鼠尾草。他走进游客中心内的一处礼堂,那里已聚集了一小群人。这些人来自美国各地,有来自国土安全部、能源部和北美电力可靠性公司 (NERC) 的多名官员,有来自美国各地电力公司的一小群高管,还有其他像阿桑特那样的研究员和工程师们——他们接到国家实验室的指令,用几天的时间想象对美国关键基础设施造成的灾难性威胁。

房间前面放着一排排视频监视器和数据源,面向房间里的座位摆放,就像火箭发射的任务控制那样。屏幕里显示的是从多个角度对一台大型柴油发电机的实时录像。这台发电机和一辆校车差不多大,外表是由薄荷绿色的巨大钢材组成的,重达27吨,约相当于一辆M3布莱德利 (M3 Bradley) 履带式装甲战车。这台发电机与听众距离一英里(大概是1.61公里),产生的电能足以为一家医院或一艘海军舰船供电,并且发出持续不断的轰鸣声。从发电机表面散发出的热浪在视频图像中的水平线上涌动。

这台发电机是阿桑特和爱荷华州国家实验室的研究人员以30万美元的价格从位于阿拉斯加的一处油田购得。他们将它运送到数千英里外的爱荷华州测试站。测试站占地890平方英里,国家实验室维护用于测试的规模庞大的电网,并配有61英里长的传输线和7个变电站。

现在,如果阿桑特正确地完成自己的工作,那么他们将毁掉这台发电机。聚集在一起的研究人员计划毁掉这台非常昂贵、具有回弹力的机器,不用任何物理工具或者武器,而仅凭约40KB 大小的数据,甚至要小于如今一张常见的猫咪 GIF 图片。

02

三年前,阿桑特就已经是美国电网的首席安全官。美国电网的客户达数百万,遍布从德克萨斯州到肯塔基州的11个州。他曾是一名海军军官,之后转型网络安全工程师。阿桑特早已清楚地意识到黑客可能会攻击电网。但令他沮丧的是,他的电网同行对于这个仍仅存在理论中且遥远的威胁的认识相对简单。如果黑客设法深入某设施的网络,打开断路器,那么当时的电网行业认为员工可以将入侵者踢出网络并重新打开电源。“我们可以像管理风暴一样管理它,”阿桑特记得同事曾这样对自己说,“想象一下,它就像一次断电而我们能从中恢复,这就是围绕风险模型进行思考的局限性。”

而阿桑特在电网架构和计算机安全方面同时具有的跨界专业性非常罕见,他被一个更加复杂的问题所困扰。如果攻击者不仅劫持了电网运营商的控制系统,切换开关并造成短时间的停电事故,而是重新编写了电网的自动化元素,这些组件自行决定电网操作而无需人类检查的情况又该如何处理呢?

尤其,阿桑特一直在思考继电器设备。继电器是一种安全机制,用于防护电力系统中的危险的物理条件。如果输电线过热或发电机不同步,那么继电器就可以检测到异常并打开断路器,切断故障点,保护昂贵的硬件,甚至防止火灾。继电器就像是电网的救生员。

但如果继电器可能瘫痪,甚至被损坏,最终成为攻击者 payload 的工具,那应该怎么办?

03

这个让人烦恼的问题就是阿桑特在电力公司任职时向爱荷华州国家实验室上报的。如今,在实验室测试范围的游客中心,他和工程师们正要把他的恶意想法付诸于实践。这个秘密实验的代号是 Aurora(“极光”),它将与数字化攻击造成物理后果的可能性同义。

测试总监读出了时间:上午11:33。他向一名安全工程师确认,实验室柴油发电机周边的区域没有任何旁观者。之后,他向位于爱荷华福尔斯国家实验室办事处的其中一名网络安全研究员发出前进的指令。就像任何真实的数字化破坏一样,这一动作将从数英里外的地方通过网络执行。该测试的模拟黑客的回应是:将大约30行代码从自己的机器推向和公交车大小的柴油发电机相连的继电器中。

在发电机的内部,直到它被破坏的那一刻,一直都在和所连接的电网跳着一种看不见但完美协调的舞蹈。机舱内的柴油被雾化并被引爆:在发电机引擎内旋转钢棒的活塞(整个组件被称为“原动机“)每分钟大约运动600次。这种旋转通过橡胶垫圈进行,这样做是为了减少任何震动,之后旋转进用于发电的组件:一根被包裹在铜线中的杆位于两个大块磁铁之间,这样每次旋转都会在电线中感应出电流。足够快速地旋转那团缠绕的铜会产生60赫兹的交流电,将其功率输送到与其相连的更大的电网中。

和发电机相连的继电器旨在防止发电机在未首先同步至精确节奏(60赫兹)的情况下连接至电力系统的其余部分。但是,位于爱荷华福尔斯的黑客刚刚重新编程了这一安全装置,改变了它的逻辑。

上午11时33分23秒,继电器观察到发电机已完全同步。但当它被损坏的大脑做出了与预期相反的动作:它打开了一个断路器,断开了与机器的连接。

当发电机与更大的爱荷华州国家实验室的电网断开,开并释放了与这个庞大系统共享能量的负担时,它立即开始加速,更快地旋转,就像一群脱缰的马匹。一旦继电器发现发电机的旋转加速到完全和余下电网不同步时,它被蓄意修改的逻辑立即将其和电网机器重新连接。

就在这台柴油发电机再次和更大的系统连接时,立即受到电网上其它部分旋转时发出的扭力冲击。所有这些设备将相对较小的柴油发电机自身在旋转的组件拉回到原来的较慢的速度,以匹配相邻部分的频率。

04

在游客中心的屏幕上,聚集在一起的观众看着这台巨型机器突然以可怕的力量在震动,发出的声音就像狠狠的鞭子抽打。而从触发恶意代码到发出的第一个颤抖,整个过程仅持续不到1秒钟。

发电机的检修面板不断飞出黑色块状物,这是研究人员为了观察其内部而打开的地方。在内部,连接发电机轴两半的黑色橡胶垫圈将自身撕裂。

几秒钟后,随着继电器代码重复了破坏周期,断开机器再发电机重新同步重新连接,机器再次震动。这一次,从发电机中溢出了一团灰色的烟云,这可能是因橡胶碎片燃烧造成的。

尽管数月以来,阿桑特投入了大量精力,耗费了从联邦政府获得的数百万美元资金,研发眼前正在发生的攻击,但面对机器自内而外撕裂的机器时,他感到了某种同情。“你发现自己就像无数小引擎那样扎根于它。“阿桑特回忆称,”我当时想的是,‘你能挺过去!’“。

但,这台机器没有挺过去。遭遇第三次冲击后,它发出了更大的灰色烟云。“这台原动机完蛋了。“站在阿桑特身边的一名工程师说道。遭遇第四次冲击后,机器冒出一股黑烟,冲向离它30英尺的高处,这是机器发出的死亡之声。

05

测试总监宣告了实验的结束,并将被毁的发电机最后一次从电网断开,死寂一片。在随后的取证分析中,国家实验室的研究员会发现发动机轴和发电机内壁相撞,二者都留下深切痕迹,金属屑填充在机器内部。在发电机的另一侧,其接线和绝缘层已融化并燃烧。机器被彻底摧毁了。

演示过后,游客中心一片寂静。阿桑特回忆道,“这是清醒时刻。“毫无疑问,工程师们刚刚证实,攻击电力设施的黑客不仅能暂时破坏受害者的操作:他们能破坏最关键的设备且无法修复。“这一幕如此生动。你可以想象,在真实工厂中某台机器发生这种情况的情形,后果太可怕了。”阿桑特表示,“这意味着只需几行代码,你就可以创造出实际上会严重损害我们所依赖的机器。”

06

阿桑特还记得“极光”实验后更加沉重的感受。这种感受和六十年前罗伯特·奥本海默在另外一个美国国家实验室观看到第一次原子弹测试时一样。奥本海特在那里目睹了历史性的、非常强大的事物的诞生。

“我有种怪怪的感觉。”阿桑特说,“就像窥见了未来。”

推荐阅读

黑客利用 VPN 漏洞远程入侵工控系统

我从1组工控系统蜜罐中捞了4个 0day exploits

俄罗斯黑客被指攻击本国的工业组织机构

刚刚,乌克兰基础设施遭 VPNFilter 恶意软件攻击

由35国42家电力输送系统运营商组成的欧洲电力协会网络遭攻击

GreyEnergy:瞄准乌克兰电力网的新组织

原文链接

https://www.wired.com/story/how-30-lines-of-code-blew-up-27-ton-generator/

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 吧~

实时观看:如何用30行代码炸毁27吨重的发电机相关推荐

  1. thymealf如何实现传单个变量给html_梦回2013,看尤大vue的第一行代码,如何用30行代码实现vue(超简洁,适合初学者)...

    非非非标题党,干货预警!!! 介绍 大家好,我是清池交友 app 开发日记,记录清池交友 app 开发中学习过程和踩坑日记,伪全栈[1] 技术栈:前端 js,vue,uniapp,后端 java 尤大 ...

  2. 如何用 30 行代码实现微信自动回复机器人?

    作者 | Ahab 责编 | 胡巍巍 写在前面 很多朋友对itchat非常感兴趣,近日又学到了itchat另一种有趣的玩法--微信自动回复机器人. 程序很简单仅仅三十行代码左右,实现了机器人自动与你的 ...

  3. 30行代码,带你分分钟创建神经网络!(附工具教程)

    来源:大数据文摘 作者:Per Haiald Borgen 本文长度为1612字,建议阅读3分钟 本文为你介绍如何使用Synaptic.js创建和训练神经网络. 本文含大量代码,如需原文请从文末来源链 ...

  4. 代码攻击破坏设备,炸毁 27 吨发电机的背后

    作者 | 八宝粥 出品 | CSDN(ID:CSDNnews) 题图来源 | 东方IC 日前,美国司法部曝光了针对俄罗斯黑客组织 Sandworm的指控,6名黑客人员对平昌冬奥会.2017年法国大选进 ...

  5. ds--8600使用手册_我如何用57行代码复制一个价值8600万美元的项目

    ds--8600使用手册 by Tait Brown 泰特·布朗(Tait Brown) 我如何用57行代码复制一个价值8600万美元的项目 (How I replicated an $86 mill ...

  6. 一个包含30行代码的Python项目:如何在您最喜欢的Twitcher流式传输时设置SMS通知...

    Hi everyone :) Today I am beginning a new series of posts specifically aimed at Python beginners. Th ...

  7. 想了解直播系统开发美颜的原理,先来学习如何用1行代码实现人脸识别

    想了解直播系统开发美颜的原理,先来学习如何用1行代码实现人脸识别 环境搭建: 1. 安装 Ubuntu17.10 > 安装步骤在这里 2. 安装 Python2.7.14 (Ubuntu17.1 ...

  8. 铅笔素描算法_如何用10行代码将任何图像变成铅笔素描

    铅笔素描算法 by Rishav Agarwal 通过里沙夫·阿加瓦尔 如何用10行代码将任何图像变成铅笔素描 (How to turn any image into a pencil sketch ...

  9. vb.net读取excel并写入dgv_读取PDF中的表格写入EXCEL?30行代码搞定

    办公自动化系列+1 现在,各类数据分析的书籍,都可以在网上找到PDF版本: 同时,百度文库.各类数据统计文库.行业研究等众多论文报告,是通过PDF的形式去展示输出的: 但是,令人都头疼的是,各类数据分 ...

最新文章

  1. mysql的调用有哪三种方式_MySQL数据库之mysql命令行中执行sql的几种方式总结
  2. Vue Router路由嵌套
  3. golang 实现 while 和 do……while 循环
  4. 移远NB-IOT模块的BC28与M26与BC26对比
  5. Android应用安全之Content Provider安全
  6. Linux rsync远程文件同步工具:只对差异文件进行更新
  7. Mysql使用存储过程与函数进行批量插入数据
  8. h5专题应该兼容那些浏览器?
  9. 使用phyton脚本产生新的mac地址
  10. MATLAB中disp的用法
  11. 用java画爱心图_C++和Java命令行绘制心形图案
  12. led数字字体_技术丨体育场馆LED显示屏设计与安装要求
  13. sublime及插件 使用
  14. linux之tcpdump抓包工具
  15. 无线增益多路负反馈带通滤波器的研究
  16. Pyecharts直角坐标系图:象形柱状图 PictorialBar
  17. android nexus 10 刷机,谷歌Nexus 10 recovery卡刷rom 刷机教程
  18. 浅谈大数据的过去、现在和未来
  19. 数字化模型是工业PaaS平台的核心
  20. 听说CDN高防和高防IP是服务器安全的“翘楚”,那么你知道这二者的区别吗?

热门文章

  1. Hadoop生态系统(简述)
  2. 计算机课程教研教改课题,(学校教研教改课题一览表.doc
  3. FFmpeg入门详解之14:FFmpeg简介
  4. 【ParaView教程】1.2 可视化基础
  5. denny的学习专栏——徐其华——tensorflow
  6. Mysql使用 show processlist 排查问题
  7. 大数据技术与实践学习笔记(1 of 3,from hitwh)
  8. Django入门-5:模型的基本使用2-字段
  9. 3D渲染的最佳CPU推荐, 目前流行的 3D 渲染 CPU
  10. Linux input子系统应用编程(9)event-codes编码表