Autorun.inf 類病毒的攻防經(jīng)驗(yàn)以及免疫辦法
此文講述的是對(duì) Autorun.inf 類病毒的攻防經(jīng)驗(yàn)匯總,Autorun.inf被病毒利用一般用到的是4種方式,大家都知道“RavMonE.exe”、“rose.exe”、“sxs.exe”、“copy.exe”、“setup.exe”……根目錄下的神秘幽靈,系統(tǒng)安全的殺手,它們被稱作“U盤病毒”。
無(wú)數(shù)Windows用戶,都在為它們而焦頭爛額。這一篇文章是一篇對(duì)自己對(duì)U盤病毒的研究和與U盤病毒斗爭(zhēng)的經(jīng)驗(yàn)教訓(xùn)的總結(jié)。
“RavMonE.exe”、“rose.exe”、“sxs.exe”、“copy.exe”、“setup.exe”……根目錄下的神秘幽靈,系統(tǒng)安全的殺手,它們被稱作“U盤病毒”。無(wú)數(shù)Windows用戶,都在為它們而焦頭爛額。這一篇文章是一篇對(duì)自己對(duì)U盤病毒的研究和與U盤病毒斗爭(zhēng)的經(jīng)驗(yàn)教訓(xùn)的總結(jié)。
Windows95以后的系統(tǒng)都有一個(gè)“自動(dòng)運(yùn)行”的功能。通過(guò)在卷插入時(shí)讀取磁盤卷上的Autorun.inf文件來(lái)獲得Explorer中卷的自定義圖標(biāo)和對(duì)卷圖標(biāo)的上下文菜單進(jìn)行修改,并對(duì)某些媒體自動(dòng)運(yùn)行Autorun.inf中定義的可執(zhí)行文件。05年以后,隨著各種可移動(dòng)存儲(chǔ)設(shè)備的普及,國(guó)內(nèi)有些黑客制作了盜取U盤內(nèi)容并將自身復(fù)制到U盤利用Autorun.inf傳播的病毒。著名的偽ravmon、copy+host、sxs、Viking、熊貓燒香等著名病毒都有這種傳播方式。它們有時(shí)是根目錄下的神秘幽靈,有時(shí)是出現(xiàn)在不應(yīng)該出現(xiàn)的地方的回收站,總之,它們是系統(tǒng)安全的嚴(yán)重威脅。
Autorun.inf被病毒利用一般有4種方式
A.
OPEN=filename.exe
自動(dòng)運(yùn)行。但是對(duì)于很多XPSP2用戶和Vista用戶,Autorun已經(jīng)變成了AutoPlay,不會(huì)自動(dòng)運(yùn)行它,會(huì)彈出窗口說(shuō)要你干什么。
B.
shellAutocommand=filename.exe
shell=Auto
修改上下文菜單。把默認(rèn)項(xiàng)改為病毒的啟動(dòng)項(xiàng)。但此時(shí)只要用戶在圖標(biāo)上點(diǎn)擊右鍵,馬上發(fā)現(xiàn)破綻。精明點(diǎn)的病毒會(huì)改默認(rèn)項(xiàng)的名字,但如果你在非中文的系統(tǒng)下發(fā)現(xiàn)右鍵菜單里多出了亂碼或者中文,你會(huì)認(rèn)為是什么呢?
C.
shellexecute=filename.exe
ShellExecute=....只要調(diào)用ShellExecuteA/W函數(shù)試圖打開(kāi)U盤根目錄,病毒就會(huì)自動(dòng)運(yùn)行。這種是對(duì)付那些用Win+R輸盤符開(kāi)盤的人。
D.
shellopen=打開(kāi)(&O)
shellopenCommand=filename.EXE
shellopenDefault=1
shellexplore=資源管理器(&X)
這種迷惑性較大,是新出現(xiàn)的一種形式。右鍵菜單一眼也看不出問(wèn)題,但是在非中文的系統(tǒng)下,原形畢露。突然出現(xiàn)的亂碼、中文當(dāng)然難逃法眼。
面對(duì)這種危險(xiǎn),尤其是第四種,僅僅依靠Explorer本身,已經(jīng)很難判斷可移動(dòng)磁盤是否已經(jīng)中毒。而在這種情況下,一部分人也根據(jù)自己的經(jīng)驗(yàn),做出了“免疫”工具。
免疫的辦法(對(duì)可移動(dòng)磁盤和硬盤)
一、同名目錄
目錄在Windows下是一種特殊的文件,而兩個(gè)同一目錄下的文件不能同名。于是,新建一個(gè)目錄“autorun.inf"在可移動(dòng)磁盤的根目錄,可以防止早期未考慮這種情況存在的病毒創(chuàng)建autorun.inf,減少傳播成功的概率。
二、Autorun.inf下的非法文件名目錄
有些病毒加入了容錯(cuò)處理代碼,在生成autorun.inf之前先試圖刪除autorun.inf目錄。
在Windows NT Win32子系統(tǒng)下,諸如"filename."這樣的目錄名是允許存在的,但是為了保持和DOS/Win9x的8.3文件系統(tǒng)的兼容性(.后為空非 法),直接調(diào)用標(biāo)準(zhǔn)Win32 API中的目錄查詢函數(shù)是無(wú)法查詢這類目錄中的內(nèi)容的,會(huì)返回錯(cuò)誤。但是,刪除目錄必須要逐級(jí)刪除其下的整個(gè)樹(shù)形結(jié)構(gòu),因此必須查詢其下每個(gè)子目錄的內(nèi) 容。因此,在“autorun.inf"目錄建一個(gè)此類特殊目錄,方法如"MD x:autorun.infyksoft..",可以防止autorun.inf目錄輕易被刪除。類似的還有利用Native API創(chuàng)建使用DOS保留名的目錄(如con、lpt1、prn等)也能達(dá)到相似的目的。
三、NTFS權(quán)限控制
病毒制造 者也是黑客,知道Windows的這幾個(gè)可算是Bug的功能。他們可以做一個(gè)程序,掃描目錄時(shí)發(fā)現(xiàn)某目錄名最后一個(gè)字節(jié)為'.'則通過(guò)訪問(wèn) "dirfullname.."、或者通過(guò)利用Windows NT的Native API中的文件系統(tǒng)函數(shù)直接插手,刪除該特殊目錄。
因此,基于更低層的文件系統(tǒng)權(quán)限控制的辦法出現(xiàn)了。將U盤、移動(dòng)硬盤格式化為NTFS文件系統(tǒng),創(chuàng)建Autorun.inf目錄,設(shè)置該目錄對(duì)任何用戶都沒(méi)有任何權(quán)限,病毒不僅無(wú)法刪除,甚至無(wú)法列出該目錄內(nèi)容。
【編輯推薦】