近三年來,2016 年 12 月烏克蘭電網(wǎng)遭受的網(wǎng)絡(luò)攻擊一直迷霧重重。那年圣誕節(jié)前兩天,俄羅斯黑客在烏克蘭國家電網(wǎng)運營商 Ukrenergo 的網(wǎng)絡(luò)里植入了一款特別的惡意軟件。就在午夜時分,他們用這款惡意軟件打開了基輔北部一所變電站的全部斷路器。俄羅斯對其西方鄰居持續(xù)數(shù)年的網(wǎng)絡(luò)戰(zhàn)歷史上最戲劇化的攻擊之一就此誕生,烏克蘭首都大片地區(qū)爆發(fā)了前所未有的自動斷電。
但一個小時后,Ukrenergo 的操作人員簡單合上開關(guān)就把電力又恢復(fù)了。于是問題來了:為什么俄羅斯黑客會費心打造高端網(wǎng)絡(luò)武器并植入一國電網(wǎng)心臟,只為了觸發(fā)一場持續(xù)一小時的斷電?
一個新理論給出了潛在的答案。重新審查了該惡意軟件代碼及從 Ukrenergo 系統(tǒng)中拉取的網(wǎng)絡(luò)日志后,工業(yè)控制系統(tǒng) (ICS) 網(wǎng)絡(luò)安全公司 Dragos 的研究人員重建了 2016 大斷電的時間線。他們認(rèn)為,黑客不僅僅想造成烏克蘭電網(wǎng)短暫斷電,而是想造成可致斷電數(shù)周乃至數(shù)月的持續(xù)破壞。個中區(qū)別能讓該斷電惡意軟件躋身世界三大已知實體設(shè)備摧毀性惡意代碼之列,就像震網(wǎng)于 2009 和 2010 年在伊朗所為,以及 Triton 惡意軟件在 2017 年想對沙特?zé)捰蛷S所做的那樣。
Ukrenergo 案例中的一個陰險后招是,俄羅斯黑客似乎不想在斷電當(dāng)時觸發(fā)那種破壞,而是要在電網(wǎng)操作人員恢復(fù)供電的時候,以供電設(shè)施本身的恢復(fù)工作反制自身。
Dragos 分析師,曾任美國能源部洛斯阿拉莫斯國家實驗室計算機安全與事件響應(yīng)小組主管的 Joe Slowik 稱:雖然最終以直接斷電收場,但所部屬的工具,還有工具的使用順序,明顯透露出攻擊者想要的遠不止讓基輔熄燈幾小時那么簡單。他們試圖創(chuàng)造出能給目標(biāo)變電站造成實體破壞的條件。
設(shè)置陷阱
2017 年 6 月,斯洛伐克網(wǎng)絡(luò)安全公司 ESET 首度披露該烏克蘭斷電事件背后惡意軟件時,這款名為 Industroyer 或 Crash Override 的惡意軟件引起了網(wǎng)絡(luò)安全社區(qū)的廣泛關(guān)注。該惡意軟件具備與電力設(shè)施設(shè)備直接互動的能力,包括以各種電力設(shè)施所用四種不同協(xié)議快速自動發(fā)送指令的功能,能夠打開多種電力設(shè)施內(nèi)的斷路器,造成大規(guī)模斷電。
你的響應(yīng)才是最終的致命一擊。
但 Dragos 的新發(fā)現(xiàn)與該 2016 年惡意軟件一個常被人忽略的組件相關(guān),該組件在 ESET 的原始分析中有所描述,但當(dāng)時未能得到充分理解。ESET 指出,該惡意軟件中這塊被混淆的部分似乎是要利用西門子 Siprotec 保護繼電器的一個已知漏洞。作為電網(wǎng)故障自動防護裝置,保護繼電器監(jiān)視危險電源頻率或電氣設(shè)備的電流水平,將該信息傳遞給操作人員,或在檢測到可能損壞變壓器、熔斷輸電線,甚至電傷電亡工人的情況下,自動打開斷路器。西門子保護繼電器中的安全漏洞在 2015 年就有軟件修復(fù)可用,但很多電力設(shè)施依然沒為其打上補丁。只要能向該設(shè)備發(fā)送數(shù)據(jù)包,就能將其置于等待固件更新的睡眠狀態(tài),除非手動重啟,否則設(shè)備不可用。
2017 年 ESET 就注意到了該惡意軟件這種令人不安的可能影響,提示稱 Industroyer 的創(chuàng)建者可能旨在實體破壞。但攻擊 Siprotec 的功能到底如何引發(fā)更持久的破壞,沒人清楚。畢竟,黑客僅僅是切斷了 Ukrenergo 的電力供應(yīng),沒有造成禁用保護繼電器可能加劇的那種危險性電涌。
Dragos 的分析可能補上了 Ukrenergo 謎團缺失的部分。該公司稱,從某匿名政府實體處獲得了 Ukrenergo 網(wǎng)絡(luò)日志,首次得以重現(xiàn)黑客操作時序。首先,攻擊者打開了該變電站所有斷路器,觸發(fā)斷電。一個小時后,攻擊者啟動清除程序,禁用該變電站中的電腦,阻止員工監(jiān)視其中數(shù)字系統(tǒng)。直到那時,攻擊者才使用該惡意軟件的 Siprotec 入侵功能攻擊變電站的四個保護繼電器,意圖瞞過操作人員檢測,悄悄禁用這些故障自動防護裝置。
Dragos 分析師現(xiàn)在認(rèn)為,斷電的目的,是想讓 Ukrenergo 工程師匆忙恢復(fù)變電站設(shè)備電力供應(yīng)。在沒有保護繼電器防護的狀態(tài)下,手動恢復(fù)電力可能觸發(fā)危險的變壓器或輸電線電流過載。該潛在災(zāi)難性破壞可能導(dǎo)致的輸電中斷遠比數(shù)小時長得多。而還有可能傷及變電站員工生命安全。
不過,該計劃最終失敗了。出于 Dragos 無法解釋的原因,可能是黑客犯了網(wǎng)絡(luò)配置錯誤吧,他們本想發(fā)送至 Ukrenergo 保護繼電器的惡意數(shù)據(jù)包發(fā)向了錯誤的 IP 地址。Ukrenergo 操作人員可能比黑客預(yù)期的動作更快,在保護繼電器破壞尚未造成之前就恢復(fù)了電力。而且,即使 Siprotec 攻擊確實達成,變電站里的備用保護繼電器也可能阻止了一場災(zāi)難——盡管 Dragos 分析師表示在沒有 Ukrenergo 安全系統(tǒng)完整視圖的情況下,無法完全排除該潛在結(jié)果。
但 Dragos 威脅情報總監(jiān) Sergio Caltagirone 稱,無論如何,事件時序揭示了當(dāng)時無人發(fā)覺的危險戰(zhàn)術(shù)。黑客預(yù)計了變電站員工的反應(yīng),試圖利用該反應(yīng)擴大網(wǎng)絡(luò)攻擊的破壞效果。
攻擊者沒按按鈕。他們預(yù)先籌劃的攻擊,是在你響應(yīng)事件時,讓你去以一種可能威脅生命的破壞性方式,來毀壞變電站。真正造成致命一擊的,是你的響應(yīng)。
意在破壞
電力設(shè)施實體破壞攻擊的陰云已經(jīng)籠罩電網(wǎng)網(wǎng)絡(luò)安全工程師十幾年。早在 2007 年,愛達荷國家實驗室就已證明,通過向保護繼電器發(fā)送數(shù)字指令,可以破壞與之相連的27 噸重大型柴油發(fā)電機組。主導(dǎo)這些測試的工程師 Mike Assante 在 2017 年接受《連線》采訪時稱,Ukrenergo 惡意軟件中表現(xiàn)出來的保護繼電器攻擊雖然在當(dāng)時沒能完全理解,卻顯示出此類破壞性攻擊終將成為現(xiàn)實。今年早些時候 Assante 離世,他警告稱:這絕對會是大事件。只要你見過變壓器起火,你就明白有多恐怖。濃重的黑煙瞬間變成巨大火球。
如果 Dragos 關(guān)于 2016 烏克蘭大斷電的新理論無誤,那么該起事件可算作史上僅有的三次惡意軟件專用于觸發(fā)破壞性實體攻擊的事件之一。首開先河的是震網(wǎng),美國和以色列聯(lián)合開發(fā)的惡意軟件,在十年前摧毀了一千臺伊朗核濃縮離心機。烏克蘭大斷電后一年,2017 年底,沙特?zé)捰蛷S Petro Rabigh 網(wǎng)絡(luò)中發(fā)現(xiàn)名為 Triton 或 Trisis 的另一款惡意軟件,破壞了監(jiān)視工業(yè)設(shè)施中危險情況的安全儀表系統(tǒng)。這最后一起網(wǎng)絡(luò)攻擊可能與俄羅斯中央化學(xué)力學(xué)科學(xué)研究院有關(guān),幾乎整個關(guān)停了沙特的煉油廠。但其實該惡意軟件還有可能造成更嚴(yán)重的后果,比如爆炸或油氣泄漏等傷亡事故。
Caltagirone 最擔(dān)憂的是,這些事件已過去數(shù)年,幾年間世界工業(yè)控制系統(tǒng)黑客可能已經(jīng)又發(fā)展出了新的技術(shù)或戰(zhàn)術(shù)。
從烏克蘭斷電事件到 Trisis 事件,我們現(xiàn)在有兩個數(shù)據(jù)點反映出攻擊者對人命的漠視。但最危險的東西是我們還沒看到的那些。
Dragos 關(guān)于 2016 烏克蘭大斷電的白皮書:
https://dragos.com/wp-content/uploads/CRASHOVERRIDE.pdf
ESET 的原始分析報告:
https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf