早在先前KAVO系列病毒肆虐的時候,我就曾經貼過autorun.inf的內容(見快報「kavo變種」),不過當時我並沒有很認真的去研究它的行為。
之後,在我常去的資安網站上有人提起了對它的疑問,插入usb隨身碟後,就可啟動autorun.inf裡面的程式碼嗎?引起了一番討論,當然也有人去找到M$的說明來佐證,我也在好奇心的驅使之下,加入了測試的行列中。
參考文件:(MSDN)
http://msdn2.microsoft.com/en-us/library/bb776823.aspx
http://msdn.microsoft.com/msdnmag/issues/01/11/autoplay/
(相關應用均有風險,請勿用於危害他人電腦資料之途,刑責自負)
其實這一類的相關設定,早在很久以前,燒錄影音光碟時,就曾經被提出來討論過,只是沒想到就連惡意軟體也藉由它來大行其道。
在說相關設定測試之前,還是先說一下防範之道(僅用來判斷...)
關閉自動執行的功能:
早在《外接設備的存取》一文中,我就已經介紹透過登錄檔來停用所有磁碟的自動播放(只需要設定HKLM那一個即可),如果你是XP PRO版,也可以透過群組原則(執行-->GPEDIT.MSC)功能來設定,路徑如下:(其實跟改登錄檔的效果相同)
(直接點圖,可開新視窗,放大檢視)
電腦設定\系統管理範本\系統\關閉自動播放(項目)
為什麼我說它是僅用來判斷而已呢?因為它只能夠幫你判斷,你插入的隨身碟是否有被人加過料(autorun.inf竄改),沒辦法避免你不受裡面撰寫的設定而感染惡意程式或其它指令。(這部份跟你怎麼寫設定檔有關)
自動執行設定檔的竄改:
因為autorun.inf裡通常會以「自動播放」來偽裝,所以會加入一條Auto或自動播放的選單碼,但是背後卻導向它所希望你執行的指令,例:
shell\自動播放\command=ping.bat(自動播放會執行ping.bat)
所以,你只要把自動播放停用後,原則上在插入usb隨身碟或一般光碟片時,是不會跳出那個詢問你是否要以何種程式開啟的視窗。(如下圖)
再不然就是你在usb隨身碟的磁碟區按右鍵,是不會看見有自動播放或Auto的字眼存在 ,如果有的話...就是具有autorun.inf的相關設定檔(不能說是惡意程式,說不定有人喜歡自己寫來用)
為什麼這種停止自動執行的手法,只是用來做為判斷使用呢?
因為...它是可以偽裝成開啟、檔案總管這種預設的功能選單,來誘使你去點擊開啟它想要讓你啟動執行的指令或程式(這就是KAVO的手法),不過也證明了一件事,在不竄改登錄檔或相關設定的狀況下,autorun.inf是不會自動執行的(KAVO的手法還是需要透過登錄檔或使用者自己來協助它們啟動,而autorun.inf只是煙霧彈,或者是讓kavo能夠自動複製所買的保險)。
它是如何竄改開啟跟檔案總管的選單,如下所示:
shell\open=開啟(&O)說明:
shell\open\Command=ping.bat
shell\explore=檔案總管(&X)
shell\explore\Command=ping.bat
我所使用的指令,只是ping指令的批次檔(bat),點下開啟、檔案總管就會開啟命令提示字元(或稱文字介面)去ping hinet的dns而已,用來確定該批次檔裡的指令會被執行,這部份就是最危險的地方(kavo就是透過這方式去執行ntdel(I)ect.com或其它批次檔指令,造成重覆感染),而批次檔內容要寫什麼全憑作者高興...
其它細節我還是不要多說,其實在M$的MSDN裡都有,有興趣的人去翻一下就可以知道,除了更改選單,讓使用者執行特定指令之外,還有其它的用途,我僅做個簡單的介紹,如:
shellexecute:用來執行外部命令
shell\open\Default=1:將開啟定義為預設的第一順位
以上這兩行指令,也是autorun.inf設定檔的常見內容之一(kavo系列的也很愛用),其實真的要分析出kavo做了那些動作,竄改了那些資料(怎麼竄改的...),主要還是取決於那個*.com的內容寫了些什麼。
據說,那類程式可能透過單向的加密處理,所以我也無法看出它實際的感染方式及途徑(如果有人知道反解方式,歡迎指教),不然我們就能夠更瞭解該如何防範它的變種一再一再地衍生(在各大網站還是可以看見災情傳出...)
其實幫人解過電腦病毒的人都應該知道一件事,就是...解完毒後,沒人能夠保證一切都清除完畢,頂多只能說:「解決了目前已發作的狀況」。只要無法瞭解感染手法與途徑,充其量都只是治標不治本呀!(所以才有另外一種解決方式:「中毒!?賞你個重灌吧!」)
沒有留言:
張貼留言