30行代碼,讓27噸發電機原地爆炸

蕭簫 發自 凹非寺
量子位 報道 | 公眾號 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

— 完 —

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態



分享到:


相關文章: