"RavMonE.exe"、"rose.exe"、"sxs.exe"、"copy.exe"、"setup.exe"...根目錄下的神秘幽靈,系統(tǒng)安全的殺手,它們被稱作"u盤病毒"。無數(shù)Windows用戶,都在為它們而焦頭爛額。這一篇文章是一篇對自己對U盤病毒的研究和與U盤病毒斗爭的經(jīng)驗教訓的總結(jié)。
Windows 95以后的系統(tǒng)都有一個"自動運行"的功能。通過在卷插入時讀取磁盤卷上的Autorun.inf文件來獲得Explorer中卷的自定義圖標和對卷圖標的上下文菜單進行修改,并對某些媒體自動運行Autorun.inf中定義的可執(zhí)行文件。05年以后,隨著各種可移動存儲設(shè)備的普及,國內(nèi)有些黑客制作了盜取U盤內(nèi)容并將自身復制到U盤利用Autorun.inf傳播的病毒。著名的偽ravmon、copy+host、sxs、Viking、熊貓燒香等著名病毒都有這種傳播方式。它們有時是根目錄下的神秘幽靈,有時是出現(xiàn)在不應該出現(xiàn)的地方的回收站,總之,它們是系統(tǒng)安全的嚴重威脅。
Autorun.inf被病毒利用一般有4種方式
1. OPEN=filename.exe
自動運行。但是對于很多XPSP2用戶和Vista用戶,Autorun已經(jīng)變成了AutoPlay,不會自動運行它,會彈出窗口說要你干什么!
2. shellAutocommand=filename.exe
shell=Auto
修改上下文菜單。把默認項改為病毒的啟動項。但此時只要用戶在圖標上點擊右鍵,馬上發(fā)現(xiàn)破綻。精明點的病毒會改默認項的名字,但如果你在非中文的系統(tǒng)下發(fā)現(xiàn)右鍵菜單里多出了亂碼或者中文,你會認為是什么呢?
3. shellexecute=filename.exe
ShellExecute=....只要調(diào)用ShellExecuteA/W函數(shù)試圖打開U盤根目錄,病毒就會自動運行。這種是對付那些用Win+R輸盤符開盤的人!
4. shellopen=打開(&O)
shellopenCommand=filename.EXE
shellopenDefault=1
shellexplore=資源管理器(&X)
這種迷惑性較大,是新出現(xiàn)的一種形式。右鍵菜單一眼也看不出問題,但是在非中文的系統(tǒng)下,原形畢露。突然出現(xiàn)的亂碼、中文當然難逃法眼。
面對這種危險,尤其是第四種,僅僅依靠Explorer本身,已經(jīng)很難判斷可移動磁盤是否已經(jīng)中毒。而在這種情況下,一部分人也根據(jù)自己的經(jīng)驗,做出了"免疫"工具。
免疫的辦法(對可移動磁盤和硬盤)
1、同名目錄
目錄在Windows下是一種特殊的文件,而兩個同一目錄下的文件不能同名。于是,新建一個目錄"autorun.inf"在可移動磁盤的根目錄,可以防止早期未考慮這種情況存在的病毒創(chuàng)建autorun.inf,減少傳播成功的概率!
2、autorun.inf下的非法文件名目錄
有些病毒加入了容錯處理代碼,在生成autorun.inf之前先試圖刪除autorun.inf目錄。
在Windows NT Win32子系統(tǒng)下,諸如"filename."這樣的目錄名是允許存在的,但是為了保持和DOS/Win9x的8.3文件系統(tǒng)的兼容性(.后為空非法),直接調(diào)用標準Win32 API中的目錄查詢函數(shù)是無法查詢這類目錄中的內(nèi)容的,會返回錯誤。但是,刪除目錄必須要逐級刪除其下的整個樹形結(jié)構(gòu),因此必須查詢其下每個子目錄的內(nèi)容。因此,在"autorun.inf"目錄建一個此類特殊目錄,方法如"MD x:autorun.infyksoft..",可以防止autorun.inf目錄輕易被刪除。類似的還有利用Native API創(chuàng)建使用DOS保留名的目錄(如con、lpt1、prn等)也能達到相似的目的!
3、NTFS權(quán)限控制
病毒制造者也是黑客,知道Windows的這幾個可算是Bug的功能。他們可以做一個程序,掃描目錄時發(fā)現(xiàn)某目錄名最后一個字節(jié)為'.'則通過訪問"dirfullname.."、或者通過利用Windows NT的Native API中的文件系統(tǒng)函數(shù)直接插手,刪除該特殊目錄!
因此,基于更低層的文件系統(tǒng)權(quán)限控制的辦法出現(xiàn)了。將U盤、移動硬盤格式化為NTFS文件系統(tǒng),創(chuàng)建Autorun.inf目錄,設(shè)置該目錄對任何用戶都沒有任何權(quán)限,病毒不僅無法刪除,甚至無法列出該目錄內(nèi)容!
但是,該辦法不適合于音樂播放器之類通常不支持NTFS的設(shè)備。
這三步可謂是一步比一步精彩。但是,最大的問題不在怎么防止生成這個autorun.inf上,而是系統(tǒng)本身、Explorer的脆弱性。病毒作者很快就會做出更強大的方案。這是我的預想!
1、結(jié)合ANI漏洞,在autorun.inf里將icon設(shè)成一個ANI漏洞的Exploit文件(經(jīng)過我的實驗,發(fā)現(xiàn)Windows有一種特性,就算把ani擴展名改為ico,還是可以解析出圖標),這樣只要一打開"我的電腦",未打補丁、無殺軟的系統(tǒng)就會直接遭殃。這樣的東西還可以放到網(wǎng)上的各種資源ISO中!
2、提高病毒的整體編程水平,綜合以上各種反免疫方式,另外利用多數(shù)國內(nèi)windows用戶常以高權(quán)限登錄系統(tǒng)的特點,自動將沒有權(quán)限的Autorun.inf目錄獲得所有權(quán)、加讀寫刪除權(quán)限,擊破這最堅固的堡壘。
面對如此恐怖的東西,對付的辦法已經(jīng)不多了。但是它們其實是一切windows安全問題的基本解決方案,
1、一定要將系統(tǒng)和安全軟件保持在最新狀態(tài)。即使是盜版用戶,微軟也不會不給重要級別的安全更新,也從來沒有過在重要級別安全更新中加入反盜版程序的記錄!
2、盡量以受限制的帳戶使用系統(tǒng)和上網(wǎng),這樣可以減少病毒進入系統(tǒng)的概率。Vista之所以加入UAC功能,正是因為它能夠使用戶在盡量方便的同時,享受到受限用戶的安全!
3、某種程度上,可以說QQ、IE和某些裝備能換真錢、什么都要真錢的網(wǎng)游是導致大量病毒木馬編寫者出現(xiàn)的"萬惡之源"。通過IE漏洞,制作網(wǎng)頁木馬,安裝盜號程序,盜取賬號,獲得人民幣。這條黑色產(chǎn)業(yè)鏈中,IE其實是最容易剪斷的一環(huán)。珍愛系統(tǒng),系統(tǒng)一定要更新,要有能防止網(wǎng)頁木馬的殺毒軟件,用IE不要亂上各種小型下載站、色情網(wǎng)站等高危站點,如果有可能,使用非IE引擎的瀏覽器。
4、惡意捆綁軟件,現(xiàn)在越來越和病毒木馬接近。部分惡意軟件的FSD HOOK自我防御程序可能被病毒利用來保護自己(如SONY XCP事件),而一些惡意軟件本身就是一個病毒木馬的下載器。因此,不要讓流氓接近你的機器!
Autorun.inf的攻防戰(zhàn)還在繼續(xù),只會變得越來越精彩,網(wǎng)民的安全意識會在攻與防的對立與統(tǒng)一中獲得突破性的進展。