30行代码,让27吨发电机原地爆炸

  • A+
所属分类:安全新闻
本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处
萧箫 发自 凹非寺

只需要30行代码 (约140KB的文件),就能让20吨的发电机原地爆炸?

这一幕确实发生在了美国爱达荷州的测试场地上。

黑客模拟者将大约30行代码推进保护继电器中,不到23秒,机器就已经开始摇晃。

30行代码,让27吨发电机原地爆炸

又过了几秒钟,发电机开始冒黑烟,最后直接爆炸。

30行代码,让27吨发电机原地爆炸

从黑客攻击手段,回溯一项实验

事情得从美国司法局这周起诉的6名黑客说起。

这6名黑客的组织名为Sandworm,被认为不仅在2016年对乌克兰的电网进行了攻击,造成停电和物理设备损害;还恶意破坏了2018年的韩国冬奥会。

30行代码,让27吨发电机原地爆炸

然而在调查他们的攻击手段时,人们发现,早在十年前,就已经有一位网络安全研究者进行过了类似的测试方法。

这是美国国安部进行的一项秘密实验,当时的一位员工迈克·阿桑特(Mike Assante)仅用30行代码,对重达27吨的发电机进行了代码攻击,就成功让后者发生了爆炸。

30行代码,大约是140KB的文件大小(比一个常见表情包还小)

30行代码,让27吨发电机原地爆炸

这个gif大小约为75KB,文件不超过它的两倍

这项实验被称为Aurora发电机测试,目前,它再一次引起了人们对大型设备可能遭受网络攻击的重视。

至于爆炸的原理,还得从发电机构造谈起。

发电机的“保护壳”,变成了攻击利器

传统柴油发电机包含一个名为保护继电器的设备,相当于电路中的一个应急闸门。

一旦保护继电器检测到线路过热、或者发电不同步,那么它就会认为电路异常,从而立刻断开电路连接。

同步发电机,利用旋转的转子磁场在定子中感应发电。其中,转子用于旋转磁场,定子用于切割磁场,所以频率与转子一致,被称为同步发电。

30行代码,让27吨发电机原地爆炸

而一旦发电同步,那么它又会将电路再接通回来。

但也正因为它起着保护电路的作用,使得电路异常的检查任务全部压在了保护继电器上,一旦它出现问题,就可能成为攻击者的利器。

攻击者的基本思路是,想办法将同步器和同步检查继电器的工作“打乱”,使得发电机变速过快,最后“引火自焚”。

而这30行代码的逻辑,就是反向利用它的工作原理,在电路不同步时保持通电,电路同步时立刻断电。

为了验证这一想法的可实施性,研究人员阿桑特,在美国爱达荷州的测试场地上,将模拟黑客攻击的30行代码输入到保护继电器中,对这一安全装置进行了重新编码。

30行代码,让27吨发电机原地爆炸

在发电机运转时,保护继电器虽然观察到发电机已经完全同步,但仍然选择了立刻断开连接,使得发电机与系统其它电机断开,“卸下一身负担”,转速被提升到一个前所未有的值。

而当电路不同步时,保护继电器又将电路合上,这时候,其它旋转发电机将给它一个巨大的冲击。

几乎不到几十秒的时间,电路就遭到了破坏,如燎原之势一般席卷了整个发电机,造成了最终的破坏。

当然,这30行代码之所以能成功,离不开这种发电机的特殊构造。

30行代码,让27吨发电机原地爆炸

网友认为,如果当时发电机电网系统加上了反向功率,以及磁极滑动保护、瞬时过流保护、AVR励磁限制以及超速控制等装置,这样的危险就能够避免。

但,换作其他发电机,就完全能避免受到攻击了吗?

电机种类有限,攻击方法却有千百种。

有网友认为,代码的行数、文件大小不重要,只要发电机存在漏洞,就无法避免会遭受这样的黑客攻击。

所以,对于任何系统来说,安防都是至关重要的。

网友:又一场没有硝烟的战争

有网友看后感叹,科技升级了战场,哪怕没有枪,靠键盘就能将对手麻痹。(嗯…你指哪方面?)

30行代码,让27吨发电机原地爆炸

此外,也有网友调侃,YAML不能被用于配置27吨发电机的原因找到了。

30行代码,让27吨发电机原地爆炸

但也有网友表示,电网崩溃所带来的恐怖影响,甚至令人难以想象。

30行代码,让27吨发电机原地爆炸

你认为呢?

参考链接:
https://www.wired.com/story/how-30-lines-of-code-blew-up-27-ton-generator/
https://en.wikipedia.org/wiki/Aurora_Generator_Test
https://news.ycombinator.com/item?id=2486955


●输入m获取文章目录

推荐↓↓↓

30行代码,让27吨发电机原地爆炸

Linux学习

本文始发于微信公众号(黑客技术与网络安全):30行代码,让27吨发电机原地爆炸

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: