Stuxnet蠕蟲病毒

Stuxnet蠕蟲病毒 ( 超級工廠病毒)是世界上首個專門針對工業控制系統編寫的破壞性病毒,能夠利用對windows系統和西門子SIMATIC WinCC系統的7個漏洞進行攻擊。特別是針對西門子公司的SIMATIC WinCC監控與數據採集 (SCADA) 系統進行攻擊,由於該系統在我國的多個重要行業套用廣泛,被用來進行鋼鐵、電力、能源、化工等重要行業的人機互動與監控。 傳播途徑:該病毒主要通過隨身碟和區域網路進行傳播。歷史“貢獻”:曾造成伊朗核電站推遲發電。 2010-09-25,進入中國。

病毒簡述

Stuxnet又名“震網”,是針對微軟體系統以及西門子工業系統的最新病毒,目前已感染多個國家及地區的工業系統和個人用戶,此病毒可通過網路傳播,與以往病毒不同,其代碼非常精密

曾造成伊朗核電站推遲發電的全球首個“超級工廠病毒”Stuxnet目前已經侵入我國。瑞星昨日發布的預警顯示,國內已有近500萬網民及多個行業的領軍企業遭Stuxnet蠕蟲病毒攻擊,而且由於安全制度上的缺失,該病毒還存在很高的大規模傳播風險。

據瑞星安全專家介紹,Stuxnet蠕蟲病毒是世界上首個專門針對工業控制系統編寫的破壞性病毒,能夠利用對windows系統和西門子SIMATIC WinCC系統的7個漏洞進行攻擊。特別是針對西門子公司的SIMATIC WinCC監控與數據採集 (SCADA) 系統進行攻擊,由於該系統在我國的多個重要行業套用廣泛,被用來進行鋼鐵、電力、能源、化工等重要行業的人機互動與監控。

Stuxnet及其變種是一種利用最新的Windows Shell漏洞傳播惡意檔案的蠕蟲。造成這個漏洞的原因是Windows 錯誤地分析捷徑,當用戶單擊特製捷徑的顯示圖示時可能執行惡意代碼(檔案帶有.LNK擴展名)。

特點

超級工廠病毒最大的特點為:打破惡意程式只攻擊用戶電腦的“慣例”,將攻擊目標偏向於用戶的生活與生存環境上來。一旦用戶的電腦不幸遭受“超級工廠病毒”-Stuxnet入侵,不但會使用戶電腦變成任由其擺布的“肉雞”,嚴重影響到用戶的日常生活,而且還會引發“多米諾骨牌效應”,導致與受害用戶聯網的人群遭受同樣攻擊。

感染原理

如何選擇

Stuxnet會根據目標系統的特點,使用不同的代碼來感染PLC(可程式邏輯控制器)。

一個感染的序列包括了許多PLC 模組(代碼模組和數據模組),用以注入PLC來改變目標PLC 的行為。這個威脅包括了三個感染序列。其中兩個非常相似,功能也相同,我們將其命名為序列A和B。第三個序列我們命名為序列C。Stuxnet通過驗證“指紋”來判斷系統是否為計畫攻擊的目標。它會檢查:

PLC種類/家族:只有CPU 6ES7-417 和6ES7-315-2 會被感染。系統數據模組:SDB 會被解析;根據他們包含的數據,感染進程會選擇A,B或其它感染方式開始行動。當解析SDB 時,代碼會搜尋這兩個值是否存在-- 7050h and 9500h;然後根據這兩個數值的出現次數,選擇序列A 或B 中的一種來感染PLC。 代碼還會在SDB 模組的50h 子集中搜尋位元組序2C CB 00 01, 這個位元組序反映了通信處理器CP 342-5 (用作Profibus-DP) 是否存在。

而選擇序列C進行感染的條件則由其他因素構成。

感染方法

Stuxnet使用“代碼插入”的感染方式。當Stuxnet 感染OB1時,它會執行以下行為:

增加原始模組的大小; 在模組開頭寫入惡意代碼;

在惡意代碼後插入原始的OB1 代碼。

Stuxnet也會用類似於感染OB1的方式感染OB35。它會用自身來取代標準的協同處理器DP_RECV 代碼塊,然後在Profibus (一個標準的用作分散式I/O的工業網路匯流排) 中掛鈎網路通信。

利用A/B方法的感染步驟如下:

檢查PLC 類型;

該類型必須為S7/315-2;

檢查SDB 模組,判斷應該寫入序列A 或B 中的哪一個;

找到DP_RECV,將其複製到FC1869,並用Stuxnet嵌入的一個惡意拷貝將其取代;

在序列中寫入惡意模組(總共20個),由Stuxnet 嵌入;

感染OB1,令惡意代碼可以在新的周期開始時執行;

感染OB35, 它將扮演“看門狗”的角色。

感染代碼

被注入OB1 功能的代碼是用來感染序列A 和B的。這些序列包含了以下模組:

代碼塊:FC1865 至FC1874, FC1876 至FC1880 (注意:FC1869並非Stuxnet的一部分,而是PLC的DP_RECV模組的一個拷貝);

數據模組:DB888 至DB891。 序列A 和B 用DP_RECV 掛鈎模組來攔截Profibus 中的數據包,並根據在這些模組中找到的數值,來構造其他的數據包並傳送出去。這由一個複雜的狀態機控制(狀態機被建立在上面提到的FC 模組中)。這個狀態機可部分受控於數據塊DB890 中的DLL。

在某些條件下,序列C會被寫入一個PLC。這個序列比A和B包含更多的模組:

FC6055 至FC6084;DB8062, DB8063;DB8061, DB8064 至DB8070 (在運行中產生)。 序列C主要為了將I/O信息讀寫入PLC的記憶體檔案映射的I/O 區域,以及外圍設備的I/O。

程式A/B 的控制流如下圖所示,在之前的Step7 編輯器的截圖中也有部分顯示(數據模組FC1873):

而序列C 的程式流則更加複雜,可以從下面的圖表中看到:

4. Rootkit

Stuxnet PLC rootkit代碼全部藏身於假冒的s7otbxdx.dll中。為了不被PLC所檢測到,它至少需要應付以下情況:

對自己的惡意數據模組的讀請求;對受感染模組(OB1 , OB35, DP_RECV) 的讀請求;可能覆蓋Stuxnet自身代碼的寫請求。 Stuxnet包含了監測和攔截這些請求的代碼,它會修改這些請求以保證Stuxnet 的PLC 代碼不會被發現或被破壞。下面列出了幾個Stuxnet用被掛鈎的導出命令來應付這些情況的例子:

s7blk_read: 監測讀請求,而後Stuxnet 會返回:真實請求的DP_RECV (保存為FV1869);錯誤信息,如果讀請求會涉及到它的惡意模組;OB1或OB35的乾淨版本的拷貝s7blk_write: 監測關於OB1/OB35的寫請求,以保證他們的新版本也會被感染。s7blk_findfirst / s7blk_findnext: 這些例程被用於枚舉PLC中的模組。惡意模組會被自動跳過。s7blk_delete: 監測對模組的“刪除”操作。 如上文所述,Stuxnet 是一個非常複雜的威脅,而其中的PLC 感染代碼令問題更加難以解決。僅僅關於注入的MC7代碼(我們於幾個月前通過逆向工程獲得)就可以討論很久。若想了解更多關於PLC 感染例程和Stuxnet的總體情況,請務必關注我們即將於Virus Bulletin會議中發布的白皮書。

傳播方式

據介紹,該病毒主要通過隨身碟和區域網路進行傳播。

《基督教科學箴言報》報導,這種新病毒採取了多種先進技術,因此具有極強的隱身和破壞力。只要電腦操作員將被病毒感染的隨身碟插入USB接口,這種病毒就會在神不知鬼不覺的情況下(不會有任何其他操作要求或者提示出現)取得一些工業用電腦系統的控制權。

與傳統的電腦病毒相比,“震網”病毒不會通過竊取個人隱私信息牟利。由於它的打擊對象是全球各地的重要目標,且無需藉助網路連線進行傳播,因此被一些專家定性為全球首個投入實戰舞台的“網路武器”。一旦這種軟體流入黑市出售,其後果將不堪構想。

計算機安全專家在對軟體進行反編譯後發現,“震網”病毒結構非常複雜,因此它應該是一個“受國家資助高級團隊研發的結晶”。據悉,這種病毒可以破壞世界各國的化工、發電和電力傳輸企業所使用的核心生產控制電腦軟體,並且代替其對工廠其他電腦“發號施令”。

人們確信,在去年開發成功的“震網”病毒可承擔“網路飛彈”的重任。它不再以刺探情報為己任,而是能根據指令,分辨和破壞某些“極具爭議”的要害目標。微軟公司的研究發現,“震網”感染的重災區集中在伊朗境內。美國和以色列因此被懷疑是“震網”的發明人。

安全建議

由於Stuxnet蠕蟲病毒是首個針對工業控制系統編寫的破壞性病毒,對大型工業、企業用戶存在一定的風險,所以,冠群金辰公司病毒防護專家給企業用戶提出如下安全防護建議,以提高企業抵禦未知安全風險的能力:

 在終端設備上開啟防火牆功能。

 為終端設備上所有的套用系統安裝最新的補丁程式。

 在終端上安裝防病毒系統,設定為實時更新病毒庫,並將病毒庫升級到最新版本。

 在終端上的用戶設定最小用戶許可權。

 在打開附屬檔案或通過網路接收檔案時,彈出安全警告或提示。

 在打開網路連結時,發出安全警告或提示。

 儘量避免下載未知的軟體或程式。

 使用強口令,以保護系統免受攻擊。

相關詞條

相關搜尋

熱門詞條

聯絡我們