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

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