天天看點

對Autorun.inf類U盤病毒的攻防經驗總結

“RavMonE.exe"、"rose.exe"、"sxs.exe"、"copy.exe"、"setup.exe"...根目錄下的神秘幽靈,系統安全的殺手,它們被稱作“U盤病毒”。無數Windows使用者,都在為它們而焦頭爛額。這一篇文章是一篇對自己對U盤病毒的研究和與U盤病毒鬥争的經驗教訓的總結。

Windows 95以後的系統都有一個“自動運作”的功能。通過在卷插入時讀取磁盤卷上的Autorun.inf檔案來獲得Explorer中卷的自定義圖示和對卷圖示的上下文菜單進行修改,并對某些媒體自動運作Autorun.inf中定義的可執行檔案。05年以後,随着各種可移動儲存設備的普及,國内有些黑客制作了盜取U盤内容并将自身複制到U盤利用Autorun.inf傳播的病毒。著名的僞ravmon、copy+host、sxs、Viking、熊貓燒香等著名病毒都有這種傳播方式。它們有時是根目錄下的神秘幽靈,有時是出現在不應該出現的地方的資源回收筒,總之,它們是系統安全的嚴重威脅。

Autorun.inf被病毒利用一般有4種方式:

1.

OPEN=filename.exe 

自動運作。但是對于很多XPSP2使用者和Vista使用者,Autorun已經變成了AutoPlay,不會自動運作它,會彈出視窗說要你幹什麼。

2. 

shellAutocommand=filename.exe

shell=Auto

修改上下文菜單。把預設項改為病毒的啟動項。但此時隻要使用者在圖示上點選右鍵,馬上發現破綻。精明點的病毒會改預設項的名字,但如果你在非中文的系統下發現右鍵菜單裡多出了亂碼或者中文,你會認為是什麼呢?

3.

shellexecute=filename.exe 

ShellExecute=....隻要調用ShellExecuteA/W函數試圖打開U盤根目錄,病毒就會自動運作。這種是對付那些用Win+R輸盤符開盤的人。

4.

shellopen=打開(&O)

shellopenCommand=filename.EXE

shellopenDefault=1

shellexplore=資料總管(&X)

這種迷惑性較大,是新出現的一種形式。右鍵菜單一眼也看不出問題,但是在非中文的系統下,原形畢露。突然出現的亂碼、中文當然難逃法眼。

面對這種危險,尤其是第四種,僅僅依靠Explorer本身,已經很難判斷可移動磁盤是否已經中毒。而在這種情況下,一部分人也根據自己的經驗,做出了“免疫”工具。

免疫的辦法,對可移動磁盤和硬碟:

1、同名目錄

目錄在Windows下是一種特殊的檔案,而兩個同一目錄下的檔案不能同名。于是,建立一個目錄“autorun.inf"在可移動磁盤的根目錄,可以防止早期未考慮這種情況存在的病毒建立autorun.inf,減少傳播成功的機率。

2、autorun.inf下的非法檔案名目錄

有些病毒加入了容錯處理代碼,在生成autorun.inf之前先試圖删除autorun.inf目錄。

在Windows NT Win32子系統下,諸如"filename."這樣的目錄名是允許存在的,但是為了保持和DOS/Win9x的8.3檔案系統的相容性(.後為空非法),直接調用标準Win32 API中的目錄查詢函數是無法查詢這類目錄中的内容的,會傳回錯誤。但是,删除目錄必須要逐級删除其下的整個樹形結構,是以必須查詢其下每個子目錄的内容。是以,在“autorun.inf"目錄建一個此類特殊目錄,方法如"MD x:autorun.infyksoft..",可以防止autorun.inf目錄輕易被删除。類似的還有利用Native API建立使用DOS保留名的目錄(如con、lpt1、prn等)也能達到相似的目的。

3、NTFS權限控制

病毒制造者也是黑客,知道Windows的這幾個可算是Bug的功能。他們可以做一個程式,掃描目錄時發現某目錄名最後一個位元組為'.'則通過通路"dirfullname.."、或者通過利用Windows NT的Native API中的檔案系統函數直接插手,删除該特殊目錄。

是以,基于更低層的檔案系統權限控制的辦法出現了。将U盤、移動硬碟格式化為NTFS檔案系統,建立Autorun.inf目錄,設定該目錄對任何使用者都沒有任何權限,病毒不僅無法删除,甚至無法列出該目錄内容。

但是,該辦法不适合于音樂播放器之類通常不支援NTFS的裝置。

這三步可謂是一步比一步精彩。但是,最大的問題不在怎麼防止生成這個autorun.inf上,而是系統本身、Explorer的脆弱性。病毒作者很快就會做出更強大的方案。這是我的預想。

1、結合ANI漏洞,在autorun.inf裡将icon設成一個ANI漏洞的Exploit檔案(經過我的實驗,發現Windows有一種特性,就算把ani擴充名改為ico,還是可以解析出圖示),這樣隻要一打開“我的電腦”,未打更新檔、無殺軟的系統就會直接遭殃。這樣的東西還可以放到網上的各種資源ISO中。

2、提高病毒的整體程式設計水準,綜合以上各種反免疫方式,另外利用多數國内windows使用者常以高權限登入系統的特點,自動将沒有權限的Autorun.inf目錄獲得所有權、加讀寫删除權限,擊破這最堅固的堡壘。

面對如此恐怖的東西,對付的辦法已經不多了。但是它們其實是一切windows安全問題的基本解決方案,

1、一定要将系統和安全軟體保持在最新狀态。即使是盜版使用者,微軟也不會不給重要級别的安全更新,也從來沒有過在重要級别安全更新中加入反盜版程式的記錄。

2、盡量以受限制的帳戶使用系統和上網,這樣可以減少病毒進入系統的機率。Vista之是以加入UAC功能,正是因為它能夠使使用者在盡量友善的同時,享受到受限使用者的安全。

3、某種程度上,可以說QQ、IE和某些裝備能換真錢、什麼都要真錢的網遊是導緻大量病毒木馬編寫者出現的“萬惡之源”。通過IE漏洞,制作網頁木馬,安裝盜号程式,盜取賬号,獲得人民币。這條黑色産業鍊中,IE其實是最容易剪斷的一環。珍愛系統,系統一定要更新,要有能防止網頁木馬的防毒軟體,用IE不要亂上各種小型下載下傳站、色情網站等高危站點,如果有可能,使用非IE引擎的浏覽器。

4、惡意捆綁軟體,現在越來越和病毒木馬接近。部分惡意軟體的FSD HOOK自我防禦程式可能被病毒利用來保護自己(如SONY XCP事件),而一些惡意軟體本身就是一個病毒木馬的下載下傳器。是以,不要讓流氓接近你的機器。

Autorun.inf的攻防戰還在繼續,隻會變得越來越精彩,網民的安全意識會在攻與防的對立與統一中獲得突破性的進展

本文轉自 goldwinner 51CTO部落格,原文連結:http://blog.51cto.com/355665/83150,如需轉載請自行聯系原作者

繼續閱讀