萬盛學電腦網

 萬盛學電腦網 >> 病毒防治 >> 對Autorun類病毒的攻防經驗總結

對Autorun類病毒的攻防經驗總結

  “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的攻防戰還在繼續,只會變得越來越精彩,網民的安全意識會在攻與防的對立與統一中獲得突破性的進展。

copyright © 萬盛學電腦網 all rights reserved