瑞星:Stuxnet病毒技術(shù)分析報(bào)告
2010-09-27 16:01:34目前的工控系統(tǒng)都包括一個(gè)可編程控制器,該控制器實(shí)際相當(dāng)于一個(gè)小型的計(jì)算機(jī)系統(tǒng),通過(guò)配置該系統(tǒng),可以向控制器中寫(xiě)入新的控制邏輯,從而完成不同的功能。該控制器可以通過(guò)專門(mén)的軟件連接到計(jì)算機(jī),從計(jì)算機(jī)中可以編寫(xiě)工控程序并下載到工控系統(tǒng)中運(yùn)行。
工控軟件要進(jìn)行控制和編程,需要通過(guò)西門(mén)子Step 7軟件來(lái)進(jìn)行控制,該軟件要通過(guò)使用內(nèi)部的s7otbxdx.dll同設(shè)備進(jìn)行通信,病毒通過(guò)替換此dll來(lái)截獲所有與設(shè)備間的訪問(wèn)。病毒自身導(dǎo)出了所有原始s7dotbxdx.dll的功能,然后病毒將原始的s7otbxdx.dll重命名為s7otbxsx.dll,然后將自身命名為s7otbxdx.dll,病毒內(nèi)部再加載s7otbxsx.dll,這樣,如果是病毒感興趣的訪問(wèn),則病毒可以替換設(shè)備傳入或者傳出的結(jié)果,對(duì)于其他訪問(wèn),病毒直接重定向到原始的s7otbxdx.dll。
當(dāng)向工控系統(tǒng)中寫(xiě)入控制代碼時(shí),病毒會(huì)修改寫(xiě)入的控制代碼,從而感染工控系統(tǒng)。
實(shí)際上,在內(nèi)部,病毒一共hook了16個(gè)函數(shù),分別是:
s7_event
s7ag_bub_cycl_read_create
s7ag_bub_read_var
s7ag_bub_write_var
s7ag_link_in
s7ag_read_szl
s7ag_test
s7blk_delete
s7blk_findfirst
s7blk_findnext
s7blk_read
s7blk_write
s7db_close
s7db_open
s7ag_bub_read_var_seg
s7ag_bub_write_var_seg
通過(guò)對(duì)這些函數(shù)的掛鉤從而可以任意修改從計(jì)算機(jī)中寫(xiě)入到工控軟件中的代碼。當(dāng)向工控軟件正常寫(xiě)入程序時(shí),病毒會(huì)感染寫(xiě)入的代碼,將自身寫(xiě)入工控軟件代碼塊的頭部并修改工控軟件的控制結(jié)構(gòu),使其入口點(diǎn)指向病毒代碼。
另外病毒會(huì)監(jiān)控所有與工控軟件之間的讀寫(xiě)通信,如果發(fā)現(xiàn)訪問(wèn)到被感染的塊,則會(huì)修改返回結(jié)果隱藏塊中的病毒代碼,從而使用戶不會(huì)發(fā)現(xiàn)。
防范建議:
1.?禁用U盤(pán)的自動(dòng)播放功能,防止插入U(xiǎn)盤(pán)后就自動(dòng)瀏覽文件夾導(dǎo)致中毒。另外U盤(pán)插入以后一定要使用殺毒軟件右鍵掃描該U盤(pán)。最好禁止U盤(pán)的寫(xiě)入功能。
2.?及時(shí)更新微軟操作系統(tǒng)的補(bǔ)丁,針對(duì)該病毒的防范要更新以下漏洞的補(bǔ)?。篗S08-067,MS10-046,MS10-061
3.?給本機(jī)設(shè)置一個(gè)足夠復(fù)雜的密碼,并盡量避免設(shè)置共享。如果一定要設(shè)置共享文件夾,盡量給該文件夾以只讀權(quán)限。
4.?及時(shí)更新殺毒軟件到最新,并保持監(jiān)控各項(xiàng)開(kāi)啟。使用瑞星殺毒軟件的用戶無(wú)需升級(jí),其木馬行為防御功能即可防范此類病毒的未知變種。



