只需要30行代码(约140KB的文件),就能让20吨的发电机原地爆炸?
这一幕确实发生在了美国爱达荷州的测试场地上。
黑客模拟者将大约30行代码推进保护继电器中,不到23秒,机器就已经开始摇晃。
又过了几秒钟,发电机开始冒黑烟,最后直接爆炸。
从黑客攻击手段,回溯一项实验
事情得从美国司法局这周起诉的6名黑客说起。
这6名黑客的组织名为Sandworm,被认为不仅在2016年对乌克兰的电网进行了攻击,造成停电和物理设备损害;还恶意破坏了2018年的韩国冬奥会。
然而在调查他们的攻击手段时,人们发现,早在十年前,就已经有一位网络安全研究者进行过了类似的测试方法。
这是美国国安部进行的一项秘密实验,当时的一位员工迈克·阿桑特(Mike Assante)仅用30行代码,对重达27吨的发电机进行了代码攻击,就成功让后者发生了爆炸。
30行代码,大约是140KB的文件大小(比一个常见表情包还小)。
△这个gif大小约为75KB,文件不超过它的两倍
这项实验被称为Aurora发电机测试,目前,它再一次引起了人们对大型设备可能遭受网络攻击的重视。
至于爆炸的原理,还得从发电机构造谈起。
发电机的“保护壳”,变成了攻击利器
传统柴油发电机包含一个名为保护继电器的设备,相当于电路中的一个应急闸门。
一旦保护继电器检测到线路过热、或者发电不同步,那么它就会认为电路异常,从而立刻断开电路连接。
同步发电机,利用旋转的转子磁场在定子中感应发电。其中,转子用于旋转磁场,定子用于切割磁场,所以频率与转子一致,被称为同步发电。
而一旦发电同步,那么它又会将电路再接通回来。
但也正因为它起着保护电路的作用,使得电路异常的检查任务全部压在了保护继电器上,一旦它出现问题,就可能成为攻击者的利器。
攻击者的基本思路是,想办法将同步器和同步检查继电器的工作“打乱”,使得发电机变速过快,最后“引火自焚”。
而这30行代码的逻辑,就是反向利用它的工作原理,在电路不同步时保持通电,电路同步时立刻断电。
为了验证这一想法的可实施性,研究人员阿桑特,在美国爱达荷州的测试场地上,将模拟黑客攻击的30行代码输入到保护继电器中,对这一安全装置进行了重新编码。
在发电机运转时,保护继电器虽然观察到发电机已经完全同步,但仍然选择了立刻断开连接,使得发电机与系统其它电机断开,“卸下一身负担”,转速被提升到一个前所未有的值。
而当电路不同步时,保护继电器又将电路合上,这时候,其它旋转发电机将给它一个巨大的冲击。
几乎不到几十秒的时间,电路就遭到了破坏,如燎原之势一般席卷了整个发电机,造成了最终的破坏。
当然,这30行代码之所以能成功,离不开这种发电机的特殊构造。
网友认为,如果当时发电机电网系统加上了反向功率,以及磁极滑动保护、瞬时过流保护、AVR励磁限制以及超速控制等装置,这样的危险就能够避免。
但,换作其他发电机,就完全能避免受到攻击了吗?
电机种类有限,攻击方法却有千百种。
有网友认为,代码的行数、文件大小不重要,只要发电机存在漏洞,就无法避免会遭受这样的黑客攻击。
所以,对于任何系统来说,安防都是至关重要的。
网友:又一场没有硝烟的战争
有网友看后感叹,科技升级了战场,哪怕没有枪,靠键盘就能将对手麻痹。(嗯…你指哪方面?)
此外,也有网友调侃,YAML不能被用于配置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(文章来源:Python那些事)