狡猾無(wú)比的超級(jí)網(wǎng)絡(luò)間諜
1
有一個(gè)漂亮的U盤安靜地躺在地面上,也不知道是誰(shuí)把它遺忘在那里。
不知道過(guò)了多久,U盤被一個(gè)人撿了起來(lái),這個(gè)人想知道U盤中有什么內(nèi)容,于是好奇地把它插入了自己的Windows筆記本電腦。
U盤打開(kāi)了,里邊除了幾個(gè)風(fēng)景圖片之外,什么都沒(méi)有。這個(gè)人有點(diǎn)失望,把U盤拔了出來(lái),扔到了桌子上。
他并不知道的是,U盤中有一個(gè)蠕蟲(chóng)病毒,在U盤插入電腦的時(shí)候,蠕蟲(chóng)立刻運(yùn)行,把自己復(fù)制到了電腦上。
這個(gè)蠕蟲(chóng)是怎么做到的呢?它有三種辦法,一個(gè)不行就嘗試另外一個(gè), 其中有兩種方法都利用了 0day 漏洞 !
什么是0day漏洞?它是黑客世界非常少見(jiàn)、非常寶貴的東西,因?yàn)檫@種漏洞是軟件公司和殺毒公司都沒(méi)有發(fā)現(xiàn)的, 也就是說(shuō),根本沒(méi)有補(bǔ)丁, 這種漏洞通??梢赃h(yuǎn)程執(zhí)行代碼,或者提升到管理員權(quán)限。
筆記本電腦中安裝有殺毒軟件,可是這個(gè)蠕蟲(chóng)被設(shè)計(jì)得非常精妙,殺毒軟件根本發(fā)現(xiàn)不了它。
蠕蟲(chóng)進(jìn)入了電腦, 又利用了兩個(gè)0day漏洞!它獲取了管理員的權(quán)限。然后它把自己很好地隱藏起來(lái)了,沒(méi)有人、沒(méi)有殺毒軟件能查找到它。
順便提一下, 0day漏洞可以在黑市買賣,每個(gè)都價(jià)值幾十萬(wàn)美元,這個(gè)蠕蟲(chóng)居然利用了四個(gè),真是“土豪”啊。
這個(gè)蠕蟲(chóng)檢查了一下,筆記本電腦可以上網(wǎng),于是它悄悄地訪問(wèn)了兩個(gè)網(wǎng)站,告訴服務(wù)器自己已經(jīng)成功潛伏到了某個(gè)電腦中,與此同時(shí),它也下載了最新的版本,把自己給更新了。
但是,這蠕蟲(chóng)什么破壞都沒(méi)有做, 只是靜悄悄地潛伏在那里,等待著合適的機(jī)會(huì)再施展自己的能力。
2
又不知道過(guò)了多久,這個(gè)人帶著筆記本去了一個(gè)工廠,他是這個(gè)工廠的外包員工,下午的時(shí)候,工廠的甲方人員給了他U盤,要從他這里復(fù)制一個(gè)文件。
大錯(cuò)就此釀成!
這個(gè)蠕蟲(chóng)立刻感知到有U盤插入了電腦,它毫不遲疑,果斷地把自己復(fù)制到了新的U盤當(dāng)中。
為了能做到這一點(diǎn),它安裝了一個(gè)精巧設(shè)計(jì)的、假的設(shè)備驅(qū)動(dòng)。但是設(shè)備驅(qū)動(dòng)如果沒(méi)有合法的數(shù)字簽名,操作系統(tǒng)就不會(huì)認(rèn)可,會(huì)提示用戶“有詐”,這就暴露了。
這難不倒蠕蟲(chóng),因?yàn)樗闹圃煺咴谒鼏?wèn)世之前,送了它一個(gè)大禮包:Realtek公司和JMicron這兩家公司的密鑰!這樣就可以對(duì)驅(qū)動(dòng)進(jìn)行數(shù)字簽名了。
熟悉非對(duì)稱加密和RSA的同學(xué)都知道,RSA有兩個(gè)key ,一個(gè)是public key ,一個(gè)是private key 。public key 任何人都可以獲取,但是private key那可一定要保管好,一旦丟失,你的加密系統(tǒng)就完蛋了。
Private key可是Realtek和JMicron的核心資產(chǎn), 肯定被嚴(yán)加保護(hù), 這個(gè)蠕蟲(chóng)的制造者到底是怎么獲取的, 沒(méi)人知道。
U盤被工廠甲方的人帶走了,蠕蟲(chóng)將要開(kāi)始新的征程。
3
這個(gè)工廠生成的產(chǎn)品很重要,它的網(wǎng)絡(luò)是和外界物理隔離的,一般情況下無(wú)法通過(guò)網(wǎng)絡(luò)進(jìn)行黑客攻擊。
可是由于工作人員的疏忽, 現(xiàn)在攜帶資料的U盤被插到了內(nèi)網(wǎng)的Winows電腦上。
蠕蟲(chóng)沒(méi)有被突如其來(lái)的喜訊沖昏頭腦,它非常冷靜,立即按照第一幕的情景,入駐了這個(gè)內(nèi)網(wǎng)的電腦。
然后它沒(méi)有閑著,立刻向內(nèi)網(wǎng)的其他計(jì)算機(jī)進(jìn)行復(fù)制,這一次,它使用了兩個(gè)已知的漏洞 (哪兒有那么多的0day漏洞讓你使用呢?):一個(gè)和網(wǎng)絡(luò)打印機(jī)相關(guān),一個(gè)和網(wǎng)絡(luò)文件相關(guān)。
很快這個(gè)內(nèi)部局域網(wǎng)的所有電腦都被蠕蟲(chóng)感染了,這個(gè)蠕蟲(chóng)潛伏得如此之好,根本沒(méi)人發(fā)現(xiàn)它的存在。
蠕蟲(chóng)沒(méi)有做任何鎖定硬盤文件勒索錢財(cái)?shù)摹靶∑茐摹?,?duì)它來(lái)說(shuō),這太小兒科了,太沒(méi)技術(shù)含量。它根本不屑于去干。它牢記著自己的使命,在這個(gè)網(wǎng)絡(luò)的計(jì)算機(jī)中耐心尋找一個(gè)東西。
終于,它找到了:西門工控軟件Step 7

這個(gè)蠕蟲(chóng)二話不說(shuō),開(kāi)始利用第5個(gè)0day漏洞,這一次的漏洞不屬于微軟,而是由西門子的工控軟件背鍋。
西門子的Step7 在工控領(lǐng)域中使用得非常廣泛,如果失控,后果不堪設(shè)想。
但是這個(gè)蠕蟲(chóng)僅僅是把自己復(fù)制到了一個(gè)可編程的邏輯控制器(PLC)當(dāng)中,在這里安營(yíng)扎寨,并沒(méi)有大肆破壞。
在這里,它開(kāi)始搜尋兩家特定公司的電機(jī),即變頻驅(qū)動(dòng)機(jī),這種機(jī)器用于工業(yè)離心機(jī),通過(guò)離心機(jī)可以提純各種化學(xué)物質(zhì),比如:
鈾
蠕蟲(chóng)的正式任務(wù)即將拉開(kāi)帷幕!
4
現(xiàn)在蠕蟲(chóng)完全控制了離心機(jī),它可以為所欲為:把離心機(jī)關(guān)掉,或者干脆破壞掉---只要讓它超過(guò)最大速度旋轉(zhuǎn)即可。
但是這個(gè)蠕蟲(chóng)病毒可不會(huì)這么蠻干,它是最聰明的病毒,它有自己的計(jì)劃:做好清理,隱藏自己。(來(lái)自《三體》的歌者:別搶我的臺(tái)詞)
一旦它控制了工廠的所有離心機(jī), 這個(gè)病毒居然進(jìn)入了休眠!
到了某個(gè)時(shí)候,它會(huì)悄悄喚醒自己,隨機(jī)挑選一些離心機(jī),修改參數(shù),讓這個(gè)離心機(jī)旋轉(zhuǎn)得慢那么一點(diǎn)點(diǎn),或者快那么一點(diǎn)點(diǎn)。
于此同時(shí),它還增加離心機(jī)中的氣壓,離心機(jī)中的氣體是六氟化鈾, 壓力的增加使得六氟化鈾固化,離心機(jī)中居然出現(xiàn)了“小小的石頭” !很快就會(huì)被損壞。
但是,離心機(jī)的狀態(tài)有傳感器檢測(cè), 一旦有異常,就會(huì)觸發(fā)報(bào)警系統(tǒng)。
病毒放出了最后的大殺招,充分展示了自己的天才:它以21秒為周期,記錄離心機(jī)正常運(yùn)轉(zhuǎn)時(shí)傳感器的數(shù)據(jù),然后在攻擊執(zhí)行時(shí)以固定的循環(huán)重復(fù)著21秒鐘的數(shù)據(jù)。
它的創(chuàng)造者肯定看過(guò)美國(guó)大片《生死時(shí)速》 :
現(xiàn)在我們知道了,這是一個(gè)負(fù)責(zé)提純鈾的工廠,工廠運(yùn)轉(zhuǎn)得很好,只是有些電機(jī)的聲音聽(tīng)起來(lái)不太對(duì)頭, 但是監(jiān)控?cái)?shù)據(jù)顯示一切正常。
在工廠的控制室,操作人員開(kāi)始檢查系統(tǒng)的運(yùn)行數(shù)據(jù),一切都很正常,他放下心,向上司匯報(bào)以后,站起來(lái)去倒了一杯咖啡,然后繼續(xù)工作。
很快,悲催的事情發(fā)生了,離心機(jī)開(kāi)始?jí)牡袅?,沒(méi)有規(guī)律,非常隨機(jī),鈾的產(chǎn)量暴跌,工廠無(wú)法生產(chǎn)出足夠的濃縮鈾,接下來(lái)也就無(wú)法去生產(chǎn)那個(gè)威力巨大的武器了。
(圖中的紅圈即為壞掉的離心機(jī))
工程師們趕緊替換新的離心機(jī),可是嶄新的離心機(jī)在工廠中安裝好,投入使用,沒(méi)用多久便又壞掉了!
工程師們一遍一遍地檢查,就是發(fā)現(xiàn)不了問(wèn)題,他們抓狂了, 這TM到底是怎么回事?!
與此同時(shí),那一只,不,是一群潛伏在PLC中的蠕蟲(chóng)殺手們冷冷地看著這一切,它們走過(guò)了異常曲折的道路,用了U盤+多個(gè)0day漏洞+數(shù)字證書才來(lái)到高度設(shè)防的工廠,終于完成了創(chuàng)造者交代的的任務(wù)。
在不久的將來(lái),它們將擁有一個(gè)震驚世界的名字:Stuxnet (震網(wǎng)病毒)!
后記:本文的前兩節(jié)是我的杜撰,主要想說(shuō)明蠕蟲(chóng)如何進(jìn)入物理隔離的內(nèi)網(wǎng)。Stuxnet是世界上第一個(gè)網(wǎng)絡(luò)武器,也是世界上最復(fù)雜的蠕蟲(chóng)病毒,它要攻擊的是真正的工業(yè)設(shè)備:離心機(jī),而離心機(jī)被安裝在高度設(shè)防的工廠中,網(wǎng)絡(luò)和外界都是物理隔離的。這個(gè)病毒不僅利用了社會(huì)工程學(xué)的手段,還利用了多個(gè)0day漏洞,偽造了數(shù)字證書, 病毒的編寫者不但要精通計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò),還要精通工業(yè)控制設(shè)備和軟件,這樣的工作絕非單打獨(dú)斗的黑客可以完成。
我看到震網(wǎng)病毒之后,馬上想起了幾年前和360公司的某個(gè)大牛交流時(shí)他說(shuō)的話:黑客是躲不過(guò)的,之所以還沒(méi)盯上你,主要是你的價(jià)值太小了。
參考資料:
https://www.wired.com/images_blogs/threatlevel/2010/11/w32_stuxnet_dossier.pdf
https://www.langner.com/wp-content/uploads/2017/03/to-kill-a-centrifuge.pdf
如需轉(zhuǎn)載,請(qǐng)通過(guò)作者微信公眾號(hào)coderising獲取授權(quán)。