震網(wǎng)的秘密兄弟
震網(wǎng)病毒破壞伊朗核設(shè)施過程的復(fù)雜程度遠遠超乎所有人的預(yù)料。
從震網(wǎng)病毒發(fā)現(xiàn)到現(xiàn)在已經(jīng)3年多了,作為第一個被曝光的網(wǎng)絡(luò)武器,時至今日依然讓軍事戰(zhàn)略家,信息安全專家,政治決策者和廣大的公眾對它感到迷惑不解。我們已經(jīng)聽過它的故事了:它是怎樣攻擊納坦茲的伊朗核設(shè)施的,它是怎么隱藏的,它是如何違背了制造者的期望從納坦茲逃離的。但是這個故事的大部分都是不正確或者說是不完整的。
這是因為震網(wǎng)病毒其實不是一個,而是有兩個。大部分的注意力都被那個較簡單的攻擊程序吸引了,就是改變鈾濃縮離心機轉(zhuǎn)子速率的那個。另外一個被“遺忘”的程序復(fù)雜度和隱蔽性都高了一個量級。對那些懂得工業(yè)工業(yè)控制系統(tǒng)安全的人來說可以稱得上是一個夢魘。奇怪的是這個更復(fù)雜的攻擊程序是先出現(xiàn)的,較簡單的,被熟知的攻擊程序出現(xiàn)在一年以后,他們被發(fā)現(xiàn)的時間間隔很短。
伊朗的核計劃成為世界輿論的中心有助于我們理解利用程序破壞這個計劃的企圖。震網(wǎng)對伊朗核計劃的影響尚不清楚,因為沒有關(guān)于多少控制器被感染的消息傳出來。不過,經(jīng)過深度的分析發(fā)現(xiàn)這次攻擊的目的在于實現(xiàn)攻擊,以及實現(xiàn)攻擊的過程。我花了3年時間來做分析,不僅僅是計算機代碼,包括被攻擊的核工廠環(huán)境的物理特點以及這個核工廠運作的流程。我發(fā)現(xiàn)的整個全貌,包括震網(wǎng)的第一個和不為人知的變種,會對這次攻擊帶來一次全新的認識。事實證明震網(wǎng)遠比公眾認知的網(wǎng)絡(luò)武器危險的多。
2007年,有人在VirusTotal上提交了一個程序,后來證明這是第一個震網(wǎng)病毒變種,至少是我們目前已知的第一個。當(dāng)然,這是在5年之后,掌握了震網(wǎng)的第二個變種的相關(guān)知識才意識到的。要是沒有后來較簡單的版本,可能這個最初的震網(wǎng)到今天還躺在反病毒專家的檔案庫里。今天,我們已經(jīng)知道這個程序包含的載體可以嚴重干擾納坦茲的鈾濃縮工廠里離心機的保護系統(tǒng)。
后來的震網(wǎng),被人們熟知的那個,試圖讓離心機轉(zhuǎn)子轉(zhuǎn)速過快從而讓轉(zhuǎn)子破碎。這個最初的震網(wǎng)卻使用了不同的策略。它通過破壞級聯(lián)離心機的保護系統(tǒng)讓納坦茲的離心機在壓力過大的環(huán)境下運行。保護系統(tǒng)無處不在,因為任何反常的運行都可能導(dǎo)致設(shè)備損壞,危害操作員的健康和周圍的環(huán)境。在納坦茲我們看到了一個獨一無二的保護系統(tǒng),它維持著那些老式的不可靠的IR-1型的鈾濃縮離心機運行。這個保護系統(tǒng)是伊朗核計劃的重要組成部分,沒有這個系統(tǒng),那些古老的IR-1就沒什么用了。
IR-1離心機是伊朗鈾濃縮工作的支柱。它是上個世紀60年代末70年代初歐洲設(shè)計的,后來設(shè)計被巴基斯坦的核販子A.Q.Khan偷走。IR-1是全金屬的設(shè)計,這樣才能運行可靠。當(dāng)然前提是零件的制造精密度高,重要的配件像頻率轉(zhuǎn)換器和恒轉(zhuǎn)矩驅(qū)動器質(zhì)量也高。但是伊朗從來沒想過高標準的實現(xiàn)這個設(shè)計。所以在納坦茲不得不降低離心機的運行壓力。較低的運行壓力意味著對轉(zhuǎn)子受到的機械壓力也小,這樣損壞就會降低。同樣產(chǎn)出和效率也會降低。最好的情況下,這些IR-1也就只有設(shè)計的一半產(chǎn)能。
這些低效不穩(wěn)定的IR-1也存在優(yōu)勢,那就是伊朗可以大規(guī)模制造。伊朗通過數(shù)量來提高產(chǎn)量,接受在生產(chǎn)過程中存在一定的離心機損壞。因為制造的離心機比損壞的多多了。不過要讓這么多離心機工作,伊朗也下了一番功夫。最初,這些離心機是非常敏感的工業(yè)流程,不允許任何的微小故障。伊朗構(gòu)建了一個級聯(lián)的保護系統(tǒng),使得即使一個離心機破碎了,整個濃縮過程依然可以繼續(xù)。
從離心機的層面上來說,這個保護系統(tǒng)使用了3個關(guān)閉閥,每個離心機上都有安裝。關(guān)閉這些閥門,出問題的離心機就從整個系統(tǒng)上分離出來。維護工程師就可以在整個流程依然繼續(xù)的情況下替換這些有問題的離心機。
上圖是在2008年,當(dāng)時的總統(tǒng)馬哈茂德·艾哈邁迪-內(nèi)賈德在納坦茲控制室觀看SCADA的場景。面對攝影師的屏幕顯示,兩個離心機是孤立的,提示存在問題,但這并不影響整個流程繼續(xù)。(紅色高亮顯示有問題的離心機)。
但是這個隔離閥的解決方式也帶了很多問題。因為離心機非常不可靠,經(jīng)常會被關(guān)掉。處于同一梯隊的離心機可能同時損壞,維護工程師來不及在第一時間替換。一旦這種情況發(fā)生,鈾濃縮過程中非常敏感的運行壓力就會升高。壓力一升高就會導(dǎo)致各種各樣的問題。
伊朗人民非常有創(chuàng)造力的解決了這個問題。每一個濃縮階段,都安裝了一個排氣閥門。有一個傳感器檢測壓力,一旦超過閾值,閥門自動打開,降低壓力。
這個系統(tǒng)可以保證納坦茲的離心機運轉(zhuǎn)。但是這也讓它陷入了可能被遠程網(wǎng)絡(luò)攻擊的泥潭。有時候會讓人懷疑設(shè)計這個系統(tǒng)的人是不是頭腦混亂。
納坦茲的級聯(lián)保護系統(tǒng)是基于西門子S7-417的工業(yè)控制器的。它控制閥門操作,六個層級的壓力傳感器和6個164臺離心機的機組??刂破骺梢岳斫獬芍苯舆B接到設(shè)備的嵌入式電腦系統(tǒng)。震網(wǎng)設(shè)計成可以感染這些控制器,通過某種方式獲取控制權(quán)。這個場景用戶幾乎無法想象,也沒有在任何工控系統(tǒng)的會議上討論過。
感染了震網(wǎng)的控制器就變成了一個傀儡。正常的控制邏輯看到的都是震網(wǎng)像讓他看到的。在攻擊序列執(zhí)行之前(大約每個月一次攻擊),震網(wǎng)會讓控制室的工程師看到真實的數(shù)據(jù),但是一旦攻擊開始就不一樣了。
這個震網(wǎng)變種做的第一步是隱藏它的活動。震網(wǎng)記錄了21秒級聯(lián)保護系統(tǒng)的傳感器正常情況下的數(shù)據(jù)。然后在攻擊過程中不斷循環(huán)重放這21秒的數(shù)據(jù)。控制室里的監(jiān)控端看上去一切都很正常。
然后震網(wǎng)就開始了它的活動。它關(guān)閉了前兩級和最后兩級濃縮步驟的閥門。阻止了受影響的離心機內(nèi)的氣體流出,反過來導(dǎo)致其余離心機的壓力升高。壓力的增加將導(dǎo)致更多的六氟化鈾進入離心機,給轉(zhuǎn)子更高的機械應(yīng)力。最終,壓力可能會導(dǎo)致氣體六氟化鈾固化,從而嚴重損害離心機。
攻擊者一直在監(jiān)控離心機真正的工作狀態(tài),這種攻擊一直持續(xù)到攻擊者覺得足夠了。如果他們是為了毀滅性的破壞,那么很簡單。在納坦茲的案例中,一個控制器控制的氣體固化可以輕易損壞上百臺離心機。聽起來這個目標非常有價值,但它也會暴露攻擊者。伊朗的工程師在后期的分析中可以輕易的找到事故發(fā)生的原因。這次攻擊的實現(xiàn)過程中,攻擊者密切監(jiān)視運行的壓力和離心機的狀態(tài)表明,他們小心翼翼的避免毀滅性的損壞。增大運行壓力的方式看起來更像是為了讓轉(zhuǎn)子壽命更短一些。
不管怎樣,攻擊者非常謹慎的實施了這次攻擊。攻擊的代碼設(shè)計如此精細,因為細小的改變或者配置錯誤都可能帶來很大的影響,甚至導(dǎo)致程序崩潰,一旦崩潰,就會被伊朗的工程師發(fā)現(xiàn)從而暴露行蹤。
這次過壓的攻擊結(jié)果也是未知的。不管是什么,在2009年的時候,攻擊者決定嘗試一些新的東西。
[譯自foreignpolicy]