30行代碼如何摧毀一臺27噸的發電機

2020-12-02 InfoQ技術實驗室

摘要

本文內容摘錄自《沙蟲:網絡戰的新時代,追剿克裡姆林宮最危險的黑客》一書,介紹了 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

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

關注我並轉發此篇文章,私信我「領取資料」,即可免費獲得InfoQ價值4999元迷你書,點擊文末「了解更多」,即可移步InfoQ官網,獲取最新資訊~

相關焦點

  • 只要30行代碼,讓27噸發電機原地爆炸?
    只需要30行代碼 (約140KB的文件),就能讓20噸的發電機原地爆炸?這一幕確實發生在了美國愛達荷州的測試場地上。 黑客模擬者將大約30行代碼推進保護繼電器中,不到23秒,機器就已經開始搖晃。
  • 30行代碼:讓27噸發電機原地爆炸
    只需要30行代碼 (約140KB的文件),就能讓20噸的發電機原地爆炸?這一幕確實發生在了美國愛達荷州的測試場地上。
  • 30行代碼,就能讓20噸的發電機原地爆炸?
    30行代碼,就能讓20噸的發電機原地爆炸? AI新媒體量子位 發表於 2020-11-23 11:22:16 只需要30行代碼(約140KB的文件),就能讓20噸的發電機原地爆炸? 這一幕確實發生在了美國愛達荷州的測試場地上。
  • 電動汽車買上一臺柴油發電機,是不是就可以跑長途了?
    理論上是可以實現的,因為發電機工作時可以視為市電,只要功率足夠大是可以為電動汽車充電的。帶著發電機前行的例子也是存在的,但是這種辦法為什麼大面積採用呢?其實這種辦法局限性很大。尤其像問題中說的半小時到一小時充滿電是很難實現的。我們先看一下柴油發電機的功率與體積吧!
  • 《終結者6》:在現實中如何殺死一臺REV9?
    但是另一方面,也凸顯出REV9的硬度到底有多大,它硬是把水輪發電機轉子硌壞了,也沒有被徹底摧毀,要知道在那種情況下就算扔一塊實心的精鋼進去,在巨大的壓力與質量差下都會像捏麵團一樣被擠成鐵片。所以,對付REV9要麼需要非常強力的,可以產生高溫高壓的武器,要麼就是動能極強的武器。
  • 代碼跑得慢甩鍋Python?手把手教你如何給代碼提速30%
    其實某個特定程序(無論使用何種程式語言)的運行速度是快還是慢,在很大程度上取決於編寫該程序的開發人員自身素質,以及他們編寫優化而高效代碼的能力。Medium上一位小哥就詳細講了講如何讓python提速30%,以此證明代碼跑得慢不是python的問題,而是代碼本身的問題。
  • 條件有限,大山深處就一戶人家自製發電機,已運轉30多年
    答案是有的,在一個大山深處就發現一戶人家自製發電,這臺發電機已經運轉了30多年。我們都知道,目前我國基本上所有的地區都是可以用電的,然而對於部分地區來說,用電仍然是一件難事。由於地理位置和環境條件有限,所以有這麼一處深山當中仍然是沒有電。雖然當地政府也是想了很多辦法,但是都以失敗而告終。既然條件這麼艱苦,政府也沒有辦法,那就只好自己動手了,不是有一句話叫做「自己動手豐衣足食」嗎。
  • 走,帶你去看82噸重風力發電機怎麼裝
    走,帶你去看82噸重風力發電機怎麼裝 2017
  • 東方電氣承制的首臺國產化核能發電機啟運
    2008年10月13日上午,在中國東方電氣集團公司所屬企業東方電機創立50周年的喜慶日子裡,由東方電機生產製造的廣東嶺澳三號1150兆瓦核能發電機,在完成型式試驗後從四川德陽啟運。這是東方電氣以主承包商的方式承制的首臺國產化核能發電機。
  • 製作一個手搖發電機
    打開APP 製作一個手搖發電機 姚遠香 發表於 2019-03-26 15:30:51   由於很多年前製作的,所以被丟進地下室雜物一起有很多灰塵,發現君被嗆得直咳嗽,所以灰塵並沒有完全清理乾淨就直接拍照了,大家包涵不要嫌棄圖片髒亂就行了,當初製作是為了給補習班的
  • 【問答知識】江西三相發電機規格型號
    江西三相發電機規格型號首先我們把兩臺電機分配個名字,A和B,A電機主要用來啟動汽油發動機和動能回收,兼做驅動電機,大功率63千瓦,峰值扭矩125牛米;B電機大功率85千瓦,峰值扭矩313牛米,主要用來直接通過輸出軸驅動前。
  • 建一颱風力發電機,一年就能回本,是真的嗎?算算就知道了
    各個國家對風力發電機的投入也越來越大。根據一項統計,全球風力發電機設備已經超過了60000部以上。我們平常看到這些風力發電機轉動的速度並不快,所以大家會認為它轉一圈產生的能量是非常少的。也有人說,投資這樣的一座風力發電機,一年就能回本,剩下的時間就是往褲兜裡裝錢的日子了,那到底是怎樣的呢?
  • 遷西租柴油發電機1200kw價格
    遷西租柴油發電機1200kw價格發電機一般常見的故障有軸承異響、碳刷脫落、調節器易燒毀等。咱們國內卡車司機的養車理念還是有些落後,幾乎沒有貨車司機在車上備用一臺馬達和發電機。
  • 淺談諾克2KW靜音發電機NK-1800i那些實用功能
    無論是開車到郊外遠足還是海邊野營,諾克變頻發電機提供的清潔和安靜的可攜式電源,將完美匹配在娛樂或露營之地,讓您享受美妙的戶外生活。當您想為家帶來方便或想在工作之地擁有一臺變頻發電機,此變頻發電機組可以安全運行對電源質量(超越電網市電質量的電源品質)非常敏感的電氣設備,伴你一起體驗豐富多彩的生活。
  • 房車發電機不會選?泓盛達車載超靜音發電機約您國慶崑山現場品鑑
    房車就像是一個移動的家,車內電器完善,但在沒有外接市電的情況下,如何才能在炎炎夏日長時間滿足空調的使用?如何才能隨時保障大功率電器的使用?為此,大家議論紛紛,眾說紛紜。也有人認為買一臺可攜式的發電機最好,幾千元可以搞定,經濟實惠。
  • 海浪蘊藏著巨大的能量,衝擊力每平方米達20-30噸,最大可達60噸
    如果說潮汐象徵著海洋在不停地進就行呼吸,那麼海浪就是海洋不斷跳動著的脈搏。大海從來是不平靜的,無風時它微波蕩漾,有風時則巨浪翻滾,那奔騰咆呼的海液猛烈地拍擊著海邊的巖石,發出雷鳴般的發響聲,激殘起高高的浪花。這是海浪在顯示它那無窮的力量。
  • 大學生喜「宅」上網 自製太陽能發電機供電
    別的宿舍熄燈後用電筒照明,西南大學桃園六舍的7名大一新生用的卻是自製的太陽能發電機。這些技術宅男利用課本上的知識,自己手工打造了一臺太陽能發電機。  昨日,記者在該校物理學院看到,這臺發電機已初具雛形,可以為三個寢室提供照明電量。
  • 馬自達官方終於發話要復活轉子發動機 但它的功能卻是一臺發電機
    近日,馬自達官方表示,將會在2020年推出一款純電動車以及一款搭載了轉子發動機的增程式電動車,也就是說,轉子發動機將作為一臺發電機,來保證電動車的續航。馬自達作為最了解轉子發動機的汽車廠商之一,選它作為發電機也不是沒有原因。結構精簡,體積小、重量輕轉子發動機的結構相比於傳統的四衝程往復式發動機更精簡,大大降低了發動機的故障率。
  • 大牛200行Python代碼手把手教你如何做一個換臉小程序,附源碼
    今天在這篇文章中我將介紹如何寫一個簡短(200行)的 Python 腳本,來自動地將一幅圖片的臉替換為另一幅圖片的臉。這個過程分四步:檢測臉部標記。旋轉、縮放、平移和第二張圖片,以配合第一步。調整第二張圖片的色彩平衡,以適配第一張圖片。把第二張圖像的特性混合在第一張圖像中。
  • 漵浦縣租賃發電機品牌哪個好
    漵浦縣租賃發電機品牌哪個好發電機一般常見的故障有軸承異響、碳刷脫落、調節器易燒毀等。咱們國內卡車司機的養車理念還是有些落後,幾乎沒有貨車司機在車上備用一臺馬達和發電機。