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

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