2008年1月28日 星期一

自動執行的測試(Testing Autorun)

關於自動執行(Autorun)的文章,我已經寫過不少,今天的文章主要是測試自動執行的設定檔(autorun.inf),對於電腦可以構成什麼樣的威脅。

早在先前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的內容寫了些什麼。

據說,那類程式可能透過單向的加密處理,所以我也無法看出它實際的感染方式途徑如果有人知道反解方式,歡迎指教),不然我們就能夠更瞭解該如何防範它的變種一再一再地衍生(在各大網站還是可以看見災情傳出...)

其實幫人解過電腦病毒的人都應該知道一件事,就是...解完毒後,沒人能夠保證一切都清除完畢,頂多只能說:「解決
目前已發作的狀況」。只要無法瞭解感染手法與途徑,充其量都只是治標不治本呀!(所以才有另外一種解決方式:「中毒!?賞你個重灌吧!」)