技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > Stuxnet病毒是怎樣“入侵”PLC的?

Stuxnet病毒是怎樣“入侵”PLC的?

時間:2010-10-01 15:12:52來源:majuan

導語:?Stuxnet 是一個非常復雜的威脅,而其中的PLC 感染代碼令問題更加難以解決。Stuxnet會根據(jù)目標系統(tǒng)的特點,使用不同的代碼來感染PLC。

      1. 如何選擇需要感染的PLC。
      Stuxnet會根據(jù)目標系統(tǒng)的特點,使用不同的代碼來感染PLC。 一個感染的序列包括了許多PLC 模塊(代碼模塊和數(shù)據(jù)模塊),用以注入PLC來改變目標PLC 的行為。這個威脅包括了三個感染序列。其中兩個非常相似,功能也相同,我們將其命名為序列A和B。第三個序列我們命名為序列C。Stuxnet通過驗證“指紋”來判斷系統(tǒng)是否為計劃攻擊的目標。它會檢查: PLC種類/家族:只有CPU 6ES7-417 和6ES7-315-2 會被感染。系統(tǒng)數(shù)據(jù)模塊:SDB 會被解析;根據(jù)他們包含的數(shù)據(jù),感染進程會選擇A,B或其它感染方式開始行動。當解析SDB 時,代碼會搜索這兩個值是否存在-- 7050h and 9500h;然后根據(jù)這兩個數(shù)值的出現(xiàn)次數(shù),選擇序列A 或B 中的一種來感染PLC。 代碼還會在SDB 模塊的50h 子集中搜索字節(jié)序2C CB 00 01, 這個字節(jié)序反映了通信處理器CP 342-5 (用作Profibus-DP) 是否存在。 而選擇序列C進行感染的條件則由其他因素構(gòu)成。
      2. 感染方法。
      Stuxnet使用“代碼插入”的感染方式。當Stuxnet 感染OB1時,它會執(zhí)行以下行為: 增加原始模塊的大??; 在模塊開頭寫入惡意代碼; 在惡意代碼后插入原始的OB1 代碼。Stuxnet也會用類似于感染OB1的方式感染OB35。它會用自身來取代標準的協(xié)同處理器DP_RECV 代碼塊,然后在Profibus (一個標準的用作分布式I/O的工業(yè)網(wǎng)絡(luò)總線) 中掛鉤網(wǎng)絡(luò)通信。 利用A/B方法的感染步驟如下: 檢查PLC 類型; 該類型必須為S7/315-2; 檢查SDB 模塊,判斷應(yīng)該寫入序列A 或B 中的哪一個; 找到DP_RECV,將其復制到FC1869,并用Stuxnet嵌入的一個惡意拷貝將其取代; 在序列中寫入惡意模塊(總共20個),由Stuxnet 嵌入; 感染OB1,令惡意代碼可以在新的周期開始時執(zhí)行; 感染OB35, 它將扮演“看門狗”的角色。
      3. 感染代碼。
      被注入OB1 功能的代碼是用來感染序列A 和B的。這些序列包含了以下模塊: 代碼塊:FC1865 至FC1874, FC1876 至FC1880 (注意:FC1869并非Stuxnet的一部分,而是PLC的DP_RECV模塊的一個拷貝); 數(shù)據(jù)模塊:DB888 至DB891。 序列A 和B 用DP_RECV 掛鉤模塊來攔截Profibus 中的數(shù)據(jù)包,并根據(jù)在這些模塊中找到的數(shù)值,來構(gòu)造其他的數(shù)據(jù)包并發(fā)送出去。這由一個復雜的狀態(tài)機控制(狀態(tài)機被建立在上面提到的FC 模塊中)。這個狀態(tài)機可部分受控于數(shù)據(jù)塊DB890 中的DLL。 在某些條件下,序列C會被寫入一個PLC。這個序列比A和B包含更多的模塊: FC6055 至FC6084;DB8062, DB8063;DB8061, DB8064 至DB8070 (在運行中產(chǎn)生)。 序列C主要為了將I/O信息讀寫入PLC的內(nèi)存文件映射的I/O 區(qū)域,以及外圍設(shè)備的I/O。 程序A/B 的控制流如下圖所示,在之前的Step7 編輯器的截圖中也有部分顯示(數(shù)據(jù)模塊FC1873)
      4. Rootkit Stuxnet PLC rootkit代碼全部藏身于假冒的s7otbxdx.dll中。
      為了不被PLC所檢測到,它至少需要應(yīng)付以下情況: 對自己的惡意數(shù)據(jù)模塊的讀請求;對受感染模塊(OB1 , OB35, DP_RECV) 的讀請求;可能覆蓋Stuxnet自身代碼的寫請求。 Stuxnet包含了監(jiān)測和攔截這些請求的代碼,它會修改這些請求以保證Stuxnet 的PLC 代碼不會被發(fā)現(xiàn)或被破壞。下面列出了幾個Stuxnet用被掛鉤的導出命令來應(yīng)付這些情況的例子: s7blk_read: 監(jiān)測讀請求,而后Stuxnet 會返回:真實請求的DP_RECV (保存為FV1869);錯誤信息,如果讀請求會涉及到它的惡意模塊;OB1或OB35的干凈版本的拷貝s7blk_write: 監(jiān)測關(guān)于OB1/OB35的寫請求,以保證他們的新版本也會被感染。s7blk_findfirst / s7blk_findnext: 這些例程被用于枚舉PLC中的模塊。惡意模塊會被自動跳過。s7blk_delete: 監(jiān)測對模塊的“刪除”操作。 如上文所述,Stuxnet 是一個非常復雜的威脅,而其中的PLC 感染代碼令問題更加難以解決。

標簽:

點贊

分享到:

上一篇:PLC應(yīng)用中必須要注意的問題

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.surachana.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號