基于MBR的BOOTKIT分析及安全防護措施
360反病毒工程師對BMW病毒技術分析如下:
BMW病毒主體分為BIOS、MBR和Windows三個部分,攻擊流程如下圖:
一、BMW病毒BIOS部分
增加了ISA模塊BIOS部分,名為HOOK.ROM,作用主要是通過檢測MBR部分是否被恢復。如果發現MBR部分已被修復,就將BIOS內的病毒代碼約 14個扇區寫入MBR中,導致用戶反復格式化、高格低格,或重新分區都無效。
Bios內的檢測代碼如下:
檢測MBR偏移0X92處4個字節是否為int1來判斷MBR是否被還原了,如果不是這個數值,則直接從BIOS里重寫MBR其他部分的病毒代碼到磁盤開始扇區。
二、BMW病毒MBR部分
MBR部分病毒代碼執行后,會從第2個扇區開始讀6個扇區的病毒代碼到0X7C00處,然后跳至該處執行,然后讀取第7個扇區中的備份 MBR到內存中,驗證扇區的有效性;
通過驗證后,讀取分區表中的引導扇區所在的扇區到 0X7C00處,驗證引導分區的有效性;
通過驗證后,判斷引導分區的類型,目前該病毒支持NTFS和 FAT32,根據不同的分區類型進行不同的處理,再經過解析文件系統找到文件所在扇區,找到相應的Windows系統文件讀取PE信息判斷其是否被感染過。(XP/2003系統為Winlogon.exe,Win7/Vista系統為Wininit.exe)
如果Windows系統文件已被感染,則在屏幕上顯示”Find it OK!”,然后調入原始MBR,跳到原始MBR處執行;如果Windows系統文件沒有被感染,則進行PE感染寫扇區,之后在屏幕上顯示”Find it OK!”,然后調入原始MBR,跳到原始MBR處執行。
三、BMW病毒Windows部分(Winlogon和Wininit文件執行感染)
以Winlogon.exe為例進行說明:
由于病毒修改了該文件入口點,當文件執行時首先執行加密過的病毒代碼,運行時動態解碼。
病毒代碼解密后加載指定文件,創建病毒調用CreateThread創建線程,同時跳回原始入口點執行。
在病毒線程里先Sleep10秒,然后調用URLDownloadToFileA從黑客服務器下載一個Downloader到本地,驗證文件下載成功后,調用WinExec執行,從而下載運行多種惡意程序;該病毒還會下載驅動,命名為c:my.sys,由之前的病毒代碼通過一系列服務函數來創建加載驅動,完成后該病毒線程進入無限Sleep狀態,my.sys為一個磁盤類驅動disk.sys的HOOK 驅動,通過HOOK了磁盤的讀寫操作等,讓所有對MBR的讀取和寫入都達不到真正的效果。
安全軟件針對基于MBR的BOOTKIT防御和查殺
一般而言,具備“主動防御”功能的安全軟件通過攔截RING3應用層對MBR區域的寫操作,并阻止惡意驅動的加載,均可防御MBR BOOTKIT。用戶在開啟安全軟件防御的前提下,基本不會感染BMW、鬼影等MBR BOOTKIT。
糟糕的是,MBR BOOTKIT總是和社會工程攻擊手段結伴出
現。比如你想用一個熱門游戲外掛獲得快速升級和精良裝備,又或者想弄一個收費軟件的“注冊機”,它們經常會提醒你先關閉安全軟件,MBR BOOTKIT就在此時趁虛而入,請神容易送神難。
最早期的鬼影系列,當時殺軟對這種基于MBR 的BOOTKIT缺乏針對性措施,從而在進行病毒掃描的時候,沒有去掃描MBR區域,所以病毒也沒有對該區域做任何保護,基本上直接讀取MBR,就可以獲得真實的數據,然后根據內部定義的特征碼,恢復成原始的MBR。
但從鬼影3以后,隨著各個殺軟增加對MBR區域的檢測,MBR木馬也進行了相應的保護,比如鬼影3的掛鉤磁盤端口驅動的startio地址來攔截所有對MBR的修復,導致所有修復操作,在中毒狀態下完全無效。又比如TDL4等,也進行了HOOK處理,讓殺軟讀不到真正的MBR。當任何程序對MBR區域讀取的時候,木馬會返回一個虛假的MBR給殺軟,欺騙其認為是正常的MBR。除此之外,該ROOTKIT還創建了監視線程,檢測其對象HOOK,及MBR是否被恢復,如果發現被恢復,則重新感染MBR.
BMW木馬則更進一步,加入了BIOS中的修復操作,即使在WINPE模式或DOS模式下恢復MBR,在系統重啟的時候還是被隱藏于BIOS 中的木馬代碼所恢復,修復難度相當高。
對于已經感染MBR BOOTKIT的電腦,360系統急救箱提供了MBR檢測修復工具(頑固引導木馬專殺),專門用來檢測和修復被感染的MBR。
這個修復操作相比清除普通頑固木馬更復雜些,需要配合360系統急救箱的強力模式使用,可以查殺BMW、TDL4、鬼影系列等目前已知的MBR BOOTKIT并修復系統。
360急救箱包括32位版和原生64位版本,全面支持WINXP,VISTA WIN7,WIN8,及WIN7 64位,WIN8 64位。還支持WINPE,可以到以下地址下載相應的版本。
http://www.360.cn/jijiuxiang/index.html
對于BMW的BIOS修復,可以使用專門的BMW BIOS修復工具,修復BIOS后,再用急救箱掃描修復MBR和WINDOWS系統文件即可。
可以在這里下載BMW BIOS 的修復工具。
http://bbs.360safe.com/thread-22137-1-1.html
360系統急救箱處理BMW病毒的操作截圖如下: