木馬除了偽裝成服務啟動之外,將自身隱藏于注冊表中眾多的啟動項目中,跟隨系統(tǒng)自動運行,也是木馬最常用的招數(shù)。由于注冊表中和啟動項相關的實在太多,這里不可能逐一介紹。手工在注冊表中逐一查詢畢竟過于繁瑣,其實,使用AutoRuns這款強悍的安全軟件,就可以將幾乎所有的啟動項一網(wǎng)打盡,包括系統(tǒng)登錄,網(wǎng)絡服務,打印監(jiān)控,安全認證,網(wǎng)絡連接,系統(tǒng)服務,驅(qū)動程序,解碼組件,引導執(zhí)行,映像劫持,初始程序,計劃任務,動態(tài)鏈接,IE瀏覽器,資源管理器,登錄等十多個和啟動項緊密相關的類型(如圖1)。在每個類型中包含了相應的啟動項目。如果打開“所有項目”面板,可以瀏覽所有的啟動項目。不管木馬在注冊表啟動項中隱藏的有多深,都會在Autoruns面前徹底暴露,選擇和木馬相關的啟動項,在其右鍵菜單中可以執(zhí)行刪除,定位注冊表具體路徑,打開目標文件夾,在線查詢,管理目標進程(必須安裝有Process Explorer這款強悍的進程管理軟件)等操作。
圖1 使用AutoRuns分析啟動項
當然,對于狡猾的木馬來說,絕不會采用在諸如“HKEY_LOCAL _MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun”等“顯眼”的位置藏身,畢竟這樣做太容易暴露。例如對于采用進程插入技術的DLL木馬來說,注冊表中“HKEY_LOCAL _MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindows”下 的“ AppInit_DLLs”鍵值是其很好的藏身地,該位置是很容易被大家忽視的可以用來啟動木馬的位置。如果DLL木馬將對其進行了修改,將自身添加進來,那么不管任何進程,只要其使用到了“User32.dll”動態(tài)庫,都會被上述鍵值指向的DLL木馬所注入。、因為“User32.dll”是系統(tǒng)自帶的很常用的動態(tài)庫,主要用來提供和程序使用界面,消息控制等相關的功能,幾乎被大多數(shù)程序使用。當然,只有極少數(shù)程序(諸如CMD控制臺)是不會使用該動態(tài)庫的。此外,注冊表中的“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun”分支也應引起我們的關注,這個組策略中的啟動項目緊密相關的。為了避人耳目順利啟動,木馬還常會在注冊表中的“HKEY_LOCAL _MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon”分支下的“userinit” 和“shell”鍵值中添加惡意程序,悄無聲息的跟隨系統(tǒng)啟動自動激活。
對于國外的木馬來說,通常會利用ActivcX技術來自啟動。例如比較有名的Beast木馬,會在注冊表中的“HKEY_LOCAL_MACHINESOFTWAREMicrosoftActive SetupInstalled Compo nents{4A202188F04D-11CF-64CD-31FFAFEECF20}”分支下的“StubPath”鍵值中設置木馬程序路徑,進而實現(xiàn)自啟動操作。有些狡猾的木馬會采用映像劫持技術綁架特定程序,當用戶執(zhí)行該程序時,運行的卻是木馬程序。如果采取將注冊表中的“HKEY_LOCAL _MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options”分支徹底刪除的方法,來防御映像劫持的話,就顯得過于簡單了,因為從編程角度看,木馬程序通常會使用RegCreateKeyEx()和RegSetValueEx()等函數(shù),來動態(tài)的創(chuàng)建或者修改注冊表鍵值數(shù)據(jù)。
因此,為了有效防御映像劫持,可以采取控制上述注冊表路徑權限的方法,取消“Administrators”組和“SYSTEM”賬戶對該分支的寫權限,具體的方法比較簡單,這里就不贅述了,這樣木馬就無法憑借映像劫持來啟動了。
實際上,現(xiàn)在的安全軟件(例如金山衛(wèi)士,360安全衛(wèi)士等)都可以對啟動項和系統(tǒng)服務進行監(jiān)控,當發(fā)現(xiàn)這些位置有風吹草動的話,就會彈出提示框,讓用戶決定是否運行相關的操作。如果您想更加徹底的保護啟動項和服務,還可以使用Ghost Security Suite這款軟件,來執(zhí)行更加嚴格的監(jiān)控操作。
Ghost Security Suite內(nèi)置的大量安全規(guī)則,已經(jīng)涵蓋了所有的啟動項和系統(tǒng)服務列入監(jiān)控范圍,無需您的任何干預。當可疑程序試圖修改或者創(chuàng)建啟動項或者系統(tǒng)服務時,必然涉及對相關注冊表項的改動,Ghost Security Suite可以立即對其攔截,在彈出的警告窗口中 的“1.This Application”面板中顯示程序名稱,在“Whats to perform this action”面板中顯示修改動作,在“Key”欄中顯示該程序要修改的注冊表主鍵名,在“Value”欄中顯示建立的鍵值名稱,在“Value Data”欄中顯示該程序所在的路徑信息。
根據(jù)其提供的詳細的信息,您很容易判斷其目標程序的真實身份。對于正常的程序,點擊“Allow”按鈕放行即可。對于非法的程序,最好點擊“Block”按鈕,攔截其對注冊表中服務配置項目的修改。如果在詢問窗體左上角的模式列表中選擇“Advance Alert”項,在高級詢問窗體中可以顯示更加細致的內(nèi)容,除了上述描述信息外,還包括可疑程序程序的原始運行路徑、觸發(fā)規(guī)則所監(jiān)控的注冊表路徑、規(guī)則所屬組名等內(nèi)容。
如果確認是可疑程序,還可以直接點擊“Kill Process”或者“Kill Thread”按鈕殺死對應進程或線程。這樣木馬還沒有來及對啟動項或者服務下手,就會被Ghost Security Suite徹底清除。