第76篇:美國(guó)震網(wǎng)病毒隱蔽破壞伊朗核設(shè)施離心機(jī)的多種方法揭秘(第...

大家好,我是ABC_123 。上一篇文章《第75篇:美國(guó)APT供應(yīng)鏈打穿伊朗物理隔離的核工廠案例分析(第2篇)》講述了美國(guó)APT如何用供應(yīng)鏈方法實(shí)現(xiàn)自動(dòng)化入侵伊朗物理隔離核工廠內(nèi)網(wǎng)的,本期分享一下震網(wǎng)病毒究竟是以何種方式攻擊離心機(jī)設(shè)備的。網(wǎng)上有大量關(guān)于震網(wǎng)病毒破壞離心機(jī)設(shè)備的報(bào)道,說法不一,有的說是震網(wǎng)病毒關(guān)閉了離心機(jī)的泄壓閥門,導(dǎo)致超壓爆炸;有的說是震網(wǎng)病毒使離心機(jī)急速旋轉(zhuǎn),一直轉(zhuǎn)到離心機(jī)損毀; 其實(shí)這些說法都不準(zhǔn)確,真實(shí)過程遠(yuǎn)比這些說法復(fù)雜得多 。ABC_123參考大量資料,在接下來的文章中,給大家一個(gè)相對(duì)準(zhǔn)確的答案,相信會(huì)讓大家感到震驚,要不然震網(wǎng)病毒怎么會(huì)被稱為有史以來最復(fù)雜的病毒呢。
Part2 技術(shù)研究過程
這里ABC_123首先說明一下,震網(wǎng)0.500版本攻擊離心機(jī)的過程要比震網(wǎng)病毒1.x版本復(fù)雜太多太多,目前各家出的官方報(bào)告說法都不統(tǒng)一,但是大體上還是一致的,所以我也是綜合各家報(bào)告得出的一個(gè)結(jié)論;對(duì)于震網(wǎng)1.x版本的攻擊過程,較為官方的英文報(bào)告給出的分析都差不多,所以相對(duì)比較準(zhǔn)確一些 。
-
核設(shè)施離心機(jī)架構(gòu)與工作原理
為了使大家能看懂后面的文章,首先給大家描述一下離心機(jī)的原理,不用深究,看懂大概意思即可 。高濃度的U-235可以用于制造核武器,伊朗科學(xué)家通過離心機(jī)高速旋轉(zhuǎn)將U-235與U-238進(jìn)行分離,大致原理如下:鈾礦石首先經(jīng)過一系列加工及化學(xué)反應(yīng),變成六氟化鈾氣體,在六氟化鈾氣體中含有U-235及U-238,U-235比U-238輕0.852%。為了提純U-235,需要利用高速旋轉(zhuǎn)的離心機(jī)產(chǎn)生慣性力,也稱之為離心力,速度越快,慣性力越大,更重一點(diǎn)的U-238的六氟化鈾氣體會(huì)被甩到靠近外壁的地方, 而較輕的U-235六氟化鈾氣體會(huì)更多聚集在靠近轉(zhuǎn)軸的位置 ,將中心的鈾氣體抽出來,輸入到下一臺(tái)離心機(jī),再次進(jìn)行高速分離,可以得到更高純度的U-235氣體,剩余的貧化U-235分餾物,仍然含有部分U-235,為了充分利用原材料,會(huì)將其送回到上一層離心機(jī)重新分離,如此往復(fù)。
因此離心機(jī)都不是單獨(dú)運(yùn)行的,它往往是幾百臺(tái)串聯(lián)在一起,形成離心機(jī)級(jí)聯(lián)系統(tǒng)協(xié)同工作。 每個(gè)離心機(jī)級(jí)聯(lián)系統(tǒng)164臺(tái)離心機(jī),總共分為15層,每層放置的離心機(jī)數(shù)量各不相同。 例如,第10層有24臺(tái)離心機(jī),第9層有20臺(tái)離心機(jī),第1層有2臺(tái)離心機(jī),其中1臺(tái)是主用離心機(jī),另外1臺(tái)是備用離心機(jī)。 每個(gè)級(jí)聯(lián)系統(tǒng)都有多個(gè)輔助閥門,用于控制氣體的進(jìn)出和各層之間的流動(dòng)。
每臺(tái)離心機(jī)的頂部都有3個(gè)狹窄的管道,進(jìn)氣管道用于向離心機(jī)注入氣體,成品管道用于將濃縮鈾-235氣體發(fā)送到更高層,而廢氣管道則用于向下層排放廢棄的鈾-238濃縮氣體。每一臺(tái)離心機(jī)有一個(gè)輸入口和兩個(gè)輸出口,含有較多23?UF?較輕的氣體進(jìn)入下一臺(tái)離心機(jī),而較重的氣體回到上一臺(tái)機(jī)器繼續(xù)分離, 最后一臺(tái)機(jī)器輸出的就是23?UF?含量最高的氣體 。由此我們可以知道,離心機(jī)的轉(zhuǎn)速越快,投入的離心機(jī)數(shù)量越多,就可以提取更高濃度的23?UF?。離心機(jī)通過高速旋轉(zhuǎn)將六氟化鈾氣體分離成鈾-235和鈾-238,這個(gè)過程在一層又一層的離心機(jī)中進(jìn)行,逐步提取高純度的鈾-235,并通過帶有閥門的管道流出。
Part3 震網(wǎng)病毒0.500關(guān)閉離心機(jī)閥門過程
關(guān)于震網(wǎng)病毒0.500版本是如何關(guān)閉各種閥門的,ABC_123閱讀了很多材料,目前說法不一,大致過程如下描述。
橡樹嶺實(shí)驗(yàn)室曾參與過曼哈頓計(jì)劃,他們把那些退休的老員工重新招募過來,帶領(lǐng)年輕人搭建與組裝從利比亞繳獲的離心機(jī)部件,然后在仿真的伊朗核設(shè)施工廠環(huán)境中, 反復(fù)實(shí)驗(yàn)尋找微妙但具有災(zāi)難性影響的方法來損壞這些離心機(jī) 。他們最終找到了關(guān)閉閥門的方法破壞離心機(jī),按照這個(gè)方案,美國(guó)NSA研發(fā)了早期版本的"震網(wǎng)"病毒0.500,它的自動(dòng)傳播功能非常有限,只能通過替換西門子工控編程軟件Step7的dll文件來傳播,因此需要人工將病毒通過U盤插入目標(biāo)工控系統(tǒng)主機(jī)中。
-
震網(wǎng)病毒0.5的潛伏與攻擊初始階段
當(dāng)震網(wǎng)病毒0.5版本進(jìn)入納坦茲的離心機(jī)級(jí)聯(lián)系統(tǒng)后,它將潛伏30天左右,在這段時(shí)間里,病毒會(huì)進(jìn)行全面檢查,以確定離心機(jī)級(jí)聯(lián)系統(tǒng)各種閥門、壓力傳感器和其它部件是否與符合預(yù)期,并監(jiān)視其運(yùn)行狀態(tài)。 震網(wǎng)病毒0.5版本會(huì)以21秒為周期,記錄級(jí)聯(lián)保護(hù)系統(tǒng)的傳感器記錄的壓力參數(shù)值數(shù)據(jù) 。等到攻擊開始時(shí),震網(wǎng)病毒會(huì)按照21秒的循環(huán)將之前記錄的正常運(yùn)行狀態(tài)數(shù)據(jù)回傳給監(jiān)控室的SCADA系統(tǒng),使得主控室的屏幕一直顯示一切正常的信息,誤導(dǎo)操作人員以為一切正常。
同時(shí),震網(wǎng)病毒0.5會(huì)破壞納坦茲核設(shè)施工廠的安全告警系統(tǒng),導(dǎo)致告警關(guān)閉。安全告警系統(tǒng)有兩類裝置,一是安裝在每臺(tái)離心機(jī)上的加速度傳感器,用于監(jiān)測(cè)離心機(jī)的振幅。另一類是安裝在每個(gè)級(jí)聯(lián)系統(tǒng)上的數(shù)十個(gè)壓力傳感器,用于監(jiān)測(cè)級(jí)聯(lián)系統(tǒng)各部分的壓力。如果某臺(tái)離心機(jī)出現(xiàn)故障,該系統(tǒng)會(huì)在毫秒級(jí)別做出反應(yīng),通過關(guān)閉泄壓閥門來解決故障。
-
震網(wǎng)病毒持久隱蔽攻擊離心機(jī)的方法
在整個(gè)攻擊過程中,"震網(wǎng)"病毒通過關(guān)閉泄壓閥門可以迅速損壞上百臺(tái)離心機(jī)。然而,美國(guó)國(guó)家安全局(NSA)的病毒設(shè)計(jì)者為了實(shí)現(xiàn)持久的隱蔽攻擊和破壞,并沒有簡(jiǎn)單粗暴地關(guān)閉所有閥門以直接導(dǎo)致離心機(jī)超壓損壞。相反,他們有選擇地控制特定閥門的開關(guān)。"震網(wǎng)"病毒通過讀取離心機(jī)的震動(dòng)傳感器參數(shù)來確定離心機(jī)的受損程度,并根據(jù)這些參數(shù)調(diào)整對(duì)離心機(jī)的攻擊力度。 這樣做的目的是避免離心機(jī)出現(xiàn)瞬時(shí)的破壞性故障 ,以達(dá)到將其失效原因偽裝成質(zhì)量問題,實(shí)現(xiàn)較為隱蔽的長(zhǎng)期損壞離心機(jī)設(shè)備的效果。這種精確控制的方法可以使攻擊更加隱蔽,使操作人員難以察覺到惡意活動(dòng)的存在,并延長(zhǎng)攻擊的持續(xù)時(shí)間。
-
震網(wǎng)病毒0.5對(duì)離心機(jī)的精確攻擊流程
首先,病毒會(huì)進(jìn)行復(fù)雜的隨機(jī)運(yùn)算,在每一層上選擇需要關(guān)閉的閥門。例如,它可能會(huì)選擇關(guān)閉第9層的20臺(tái)離心機(jī)中的14臺(tái)廢棄管道閥門,關(guān)閉第8層的16臺(tái)離心機(jī)中的13臺(tái)廢棄管道閥門,但不關(guān)閉第10層的氣體注入閥門,這樣六氟化鈾氣體會(huì)繼續(xù)注入,但是氣體卻無法排出,這會(huì)導(dǎo)致離心機(jī)的壓力不斷上升。當(dāng)時(shí)間滿2小時(shí)或離心機(jī)壓力達(dá)到初始值的5倍時(shí),使離心機(jī)內(nèi)部的壓力增加到平常水平的5倍。這種增加的壓力將導(dǎo)致更多的六氟化鈾進(jìn)入離心機(jī),六氟化鈾氣體變得稠密,給轉(zhuǎn)子帶來更大的機(jī)械應(yīng)力,增加對(duì)離心機(jī)管壁的應(yīng)力,導(dǎo)致高速旋轉(zhuǎn)的離心機(jī)失去穩(wěn)定性,敲擊離心機(jī)外殼,加速離心機(jī)的疲勞損壞,最終導(dǎo)致爆炸和損毀。

病毒進(jìn)入下一階段,病毒會(huì)打開除氣體注入層附近的3個(gè)閥門(1個(gè)進(jìn)氣口,2個(gè)出氣口)之外的一部分輔助閥門,這些閥門的選擇是由內(nèi)置的算法隨機(jī)選擇的。然后病毒進(jìn)入3分鐘的等待期,同時(shí)向操作人員發(fā)送之前記錄的正常狀態(tài)數(shù)據(jù),隨后進(jìn)入7分鐘的靜默觀察。
在攻擊的最后階段,病毒再次打開一組約25個(gè)閥門,使離心機(jī)的氣體迅速進(jìn)入冷卻容器,完全變?yōu)閺U氣。 整個(gè)攻擊過程持續(xù)2個(gè)小時(shí)結(jié)束后,震網(wǎng)病毒將跳轉(zhuǎn)至啟動(dòng)部分,開始新一輪的循環(huán) 。
整個(gè)攻擊流程可以簡(jiǎn)單解釋為: 病毒選擇關(guān)閉特定閥門,讓氣體進(jìn)入但無法排出,導(dǎo)致離心機(jī)壓力上升。 然后,它打開其它閥門,使氣體迅速排出,最終使離心機(jī)失效。 這個(gè)過程會(huì)循環(huán)進(jìn)行,持續(xù)對(duì)離心機(jī)進(jìn)行隱蔽破壞。
Part4 震網(wǎng)病毒1.x改變離心機(jī)轉(zhuǎn)速
由于特工并不能每次都能成功把帶有震網(wǎng)病毒的U盤帶入核設(shè)施工廠以內(nèi),美國(guó)政府要求修改震網(wǎng)病毒代碼,以編程方式使其能夠自動(dòng)化傳播到物理隔離的伊朗核設(shè)施的內(nèi)部網(wǎng)絡(luò)。為了避免伊朗方面懷疑, 美國(guó)橡樹嶺實(shí)驗(yàn)室發(fā)明了一種新方法替代原有的關(guān)閉泄壓閥門的方式 。這種方法是通過改變離心機(jī)轉(zhuǎn)速的方式破壞離心機(jī),并改變了傳播機(jī)制。傳播機(jī)制的控制是非常微妙的,入侵性過強(qiáng),會(huì)被伊朗方面發(fā)現(xiàn),而入侵性不足則又無法進(jìn)入被物理隔離的核設(shè)施工廠。
一旦“震網(wǎng)”病毒在內(nèi)網(wǎng)中獲取到工控系統(tǒng)的工作站主機(jī)權(quán)限,它不會(huì)立即發(fā)起攻擊。相反,它會(huì)進(jìn)行為期13天的偵查,每分鐘記錄一次PLC的正常運(yùn)行狀態(tài)信息,大約會(huì)記錄110萬次左右。當(dāng)離心機(jī)工作了13天或核材料注滿后,震網(wǎng)病毒將正式發(fā)起攻擊。
以伊朗的IR-1型離心機(jī)為例,他的安全轉(zhuǎn)速是1050轉(zhuǎn)/秒,相當(dāng)于音速300米/秒。首先,震網(wǎng)病毒會(huì)下發(fā)指令給PLC, 將離心機(jī)轉(zhuǎn)速提升3分之1,達(dá)到1410轉(zhuǎn)/秒,這個(gè)轉(zhuǎn)速恰好會(huì)導(dǎo)致離心機(jī)產(chǎn)生共振并導(dǎo)致以部分離心機(jī)損壞 ,震網(wǎng)病毒會(huì)控制離心機(jī)以這個(gè)轉(zhuǎn)速持續(xù)運(yùn)行15分鐘。然后,轉(zhuǎn)速恢復(fù)到1050轉(zhuǎn)/秒的安全速度,繼續(xù)運(yùn)行26天左右。之后,震網(wǎng)病毒會(huì)下發(fā)指令給PLC, 控制離心機(jī)轉(zhuǎn)速降低至2轉(zhuǎn)/秒,類似于陀螺效應(yīng),轉(zhuǎn)速慢的時(shí)候會(huì)搖擺不定 ,這種狀態(tài)會(huì)持續(xù)50分鐘。在離心機(jī)轉(zhuǎn)速逐步降低的過程中,會(huì)顯著降低濃縮鈾成品的純度。然后再恢復(fù)到1050轉(zhuǎn)/秒的正常轉(zhuǎn)速。再過26天又重復(fù)一遍,這種攻擊行為周期性循環(huán)多次,逐步對(duì)離心機(jī)造成破壞。
就好像我們的私家車開在高速公路上,從120公里/時(shí)的速度,突然降到1公里/時(shí),反反復(fù)復(fù)地重復(fù)這個(gè)操作50分鐘,每個(gè)月來這么一次,最終汽車的發(fā)動(dòng)機(jī)肯定會(huì)壽命大大縮減。
在此期間,震網(wǎng)病毒會(huì)向控制系統(tǒng)發(fā)布之前記錄的正常運(yùn)轉(zhuǎn)的信息,以迷惑監(jiān)控人員,讓他們認(rèn)為離心機(jī)正常運(yùn)轉(zhuǎn) 。此外,震網(wǎng)病毒會(huì)下發(fā)給PLC指令,控制離心機(jī)的旋轉(zhuǎn)速度突然升高或突然降低,導(dǎo)致高速旋轉(zhuǎn)的離心機(jī)發(fā)生異常震動(dòng)和應(yīng)力畸變,最終導(dǎo)致離心機(jī)爆炸損毀,并造成放射性鈾元素的擴(kuò)散和污染,嚴(yán)重阻礙伊朗的核武器研發(fā)計(jì)劃。
當(dāng)離心機(jī)受到攻擊時(shí),伊朗技術(shù)人員經(jīng)過旁邊可能會(huì)聽到異常噪音,高速旋轉(zhuǎn)會(huì)產(chǎn)生巨大的聲響,類似噴氣式引擎。然而,由于核設(shè)施工廠中數(shù)千臺(tái)離心機(jī)同時(shí)運(yùn)轉(zhuǎn),一般工程師都戴著保護(hù)性耳罩,無法辨別出故障的離心機(jī)。他們通常依靠查看工控系統(tǒng)的監(jiān)視屏幕來判斷離心機(jī)的運(yùn)行狀態(tài),這也是為什么伊朗一直沒有發(fā)現(xiàn)"震網(wǎng)"病毒的原因。
在后期,伊朗的技術(shù)人員發(fā)現(xiàn)越來越多的離心機(jī)轉(zhuǎn)速異常和損壞,他們?cè)噲D按下緊急停止按鈕,但是震網(wǎng)病毒攔截了這些停止命令,使離心機(jī)沒辦法立即停止,繼續(xù)運(yùn)轉(zhuǎn)直至爆炸損毀。
當(dāng)震網(wǎng)病毒進(jìn)入PLC的時(shí)候,它會(huì)使PLC的自動(dòng)數(shù)字警報(bào)系統(tǒng)失效。如果程序員發(fā)現(xiàn)離心機(jī)設(shè)備有問題并想查看PLC指令是否有錯(cuò)誤,震網(wǎng)病毒就會(huì)干預(yù),阻止他們看到惡意代碼,并攔截所有讀取PLC代碼段的請(qǐng)求,并向其提供減去惡意代碼的正常代碼。就算伊朗技術(shù)人員將PLC程序用新代碼覆蓋更新100次,震網(wǎng)病毒也會(huì)介入,把惡意指令代碼反復(fù)感染100次。
Part5 未完待續(xù)
由于此APT事件過于復(fù)雜,篇幅有限,只能分章節(jié)給大家分享。后續(xù)ABC_123會(huì)繼續(xù)介紹震網(wǎng)病毒本體的設(shè)計(jì)思路,以及一大批安全公司的技術(shù)人員如何花費(fèi)數(shù)月 時(shí)間,將整個(gè)事件抽絲剝繭,完整溯源出來的。

