專利名稱:對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)安全技術(shù)領(lǐng)域,特別是涉及對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法及裝置。
背景技術(shù):
磁盤的主引導(dǎo)記錄(Master Boot Record,簡稱MBR)是位于磁盤的O磁頭O磁道I扇區(qū),有固定大小的一塊存儲區(qū)域,是計(jì)算機(jī)開機(jī)后訪問磁盤所讀取的首個(gè)區(qū)域。主引導(dǎo)記錄一般包含三個(gè)部分主引導(dǎo)程序、磁盤分區(qū)表、以及結(jié)束標(biāo)志字。其中,主引導(dǎo)程序用來在計(jì)算機(jī)啟動時(shí)檢查分區(qū)表是否正確,并且在系統(tǒng)硬件完成自檢后將控制權(quán)交給磁盤上的系統(tǒng)引導(dǎo)程序。MBR中的主引導(dǎo)程序具有相對于操作系統(tǒng)的獨(dú)立性,這種獨(dú)立性體現(xiàn)在計(jì) 算機(jī)的啟動過程中一般的計(jì)算啟動過程是計(jì)算機(jī)通電后執(zhí)行自檢,當(dāng)確定以磁盤作為啟動源后由基本輸入輸出系統(tǒng)將MBR讀入內(nèi)存,控制權(quán)交給其中的主引導(dǎo)程序,由主引導(dǎo)程序檢查分區(qū)表,找到活動的分區(qū),而后將控制權(quán)交給活動分區(qū)的系統(tǒng)引導(dǎo)程序,由系統(tǒng)引導(dǎo)程序加載操作系統(tǒng)。整個(gè)過程中主引導(dǎo)程序的加載和操作系統(tǒng)的加載是兩個(gè)相對獨(dú)立的過程,因此MBR中的主引導(dǎo)程序具有相對于操作系統(tǒng)的獨(dú)立性,即MBR中的主引導(dǎo)程序先于操作系統(tǒng)加載,并且不依賴、也不屬于操作系統(tǒng)。正是由于MBR中的主引導(dǎo)程序這種相對于操作系統(tǒng)的獨(dú)立性,MBR區(qū)域成為了一些惡意程序利用的對象,“鬼影”病毒便是其中的代表。該病毒寄存于磁盤的主引導(dǎo)記錄中,能夠在計(jì)算機(jī)開機(jī)后先于操作系統(tǒng)啟動,并且能夠使受感染的計(jì)算機(jī)在系統(tǒng)啟動時(shí)加載經(jīng)過精心隱藏的另一個(gè)惡意驅(qū)動程序B,惡意驅(qū)動程序B成功加載后,會實(shí)施關(guān)閉殺毒軟件、下載其他惡意程序等操作,以實(shí)現(xiàn)竊取用戶信息、破壞用戶計(jì)算機(jī)等不法行為。由于該病毒寄存于磁盤主引導(dǎo)記錄中,在其成功運(yùn)行后,在操作系統(tǒng)中通常找不到任何異常,同時(shí)由于磁盤的主引導(dǎo)記錄通常不會因重新安裝而重寫,導(dǎo)致該病毒甚至能夠在用戶重新安裝操作系統(tǒng)后依然存在,并且在計(jì)算機(jī)啟動后仍然能發(fā)揮作用,可見該病毒的頑固程度。因此,迫切需要本領(lǐng)域技術(shù)人員解決的技術(shù)問題就在于,如何有效的阻止此類惡意程序?qū)τ?jì)算機(jī)系統(tǒng)的破壞。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法和相應(yīng)的對主引導(dǎo)記錄惡意程序進(jìn)行處
理的裝置。依據(jù)本發(fā)明的一個(gè)方面,提供了一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法,包括在啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序;在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序;通過所述安全驅(qū)動程序?qū)Υ疟P的讀取操作進(jìn)行監(jiān)控;
當(dāng)監(jiān)控到磁盤的讀取/寫入操作發(fā)生時(shí),對讀取/寫入的數(shù)據(jù)進(jìn)行檢測,如果檢測出所述讀取/寫入的數(shù)據(jù)中包含惡意代碼,返回磁盤讀取失敗,以阻斷主引導(dǎo)記錄中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系??蛇x地,所述在啟動計(jì)算機(jī)的過程中,系統(tǒng)進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序包括在操作系統(tǒng)的注冊表中將安全驅(qū)動程序注冊為系統(tǒng)預(yù)留類型,以便操作系統(tǒng)在啟動過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序??蛇x地,所述在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序包括在所述安全驅(qū)動程序被加載時(shí),向系統(tǒng)注冊回調(diào)函數(shù),以便在硬盤初始化結(jié)束之后所述安全驅(qū)動程序被操作系統(tǒng)調(diào)用。 可選地,還包括對所述主引導(dǎo)記錄中的惡意程序進(jìn)行清除??蛇x地,,所述對所述主引導(dǎo)記錄中的惡意程序進(jìn)行清除包括重建主引導(dǎo)記錄??蛇x地,還包括對所述磁盤分區(qū)中的惡意驅(qū)動程序進(jìn)行刪除。根據(jù)本發(fā)明的另一方面,提供了一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的裝置,包括加載單元,用于在啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序;調(diào)用單元,用于在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序;監(jiān)控單元,用于通過所述安全驅(qū)動程序?qū)Υ疟P的讀取操作進(jìn)行監(jiān)控;檢測單元,用于當(dāng)監(jiān)控到磁盤的讀取/寫入操作發(fā)生時(shí),對讀取/寫入的數(shù)據(jù)進(jìn)行檢測,如果檢測出所述讀取/寫入的數(shù)據(jù)中包含惡意代碼,返回磁盤讀取失敗,以阻斷主引導(dǎo)記錄中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系??蛇x地,所述加載單元包括注冊表寫入單元,用于在操作系統(tǒng)的注冊表中將安全驅(qū)動程序注冊為系統(tǒng)預(yù)留類型,以便操作系統(tǒng)在啟動過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序??蛇x地,所述調(diào)用單元包括回調(diào)函數(shù)注冊單元,用于在所述安全驅(qū)動程序被加載時(shí),向系統(tǒng)注冊回調(diào)函數(shù),以便在硬盤初始化結(jié)束之后所述安全驅(qū)動程序被操作系統(tǒng)調(diào)用??蛇x地,還包括清除單元,用于對所述主引導(dǎo)記錄中的惡意程序進(jìn)行清除??蛇x地,所述清除單元包括重建子單元,用于重建主引導(dǎo)記錄??蛇x地,還包括刪除單元,用于對所述磁盤分區(qū)中的惡意驅(qū)動程序進(jìn)行刪除。根據(jù)本發(fā)明的另一方面,提供了一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的設(shè)備,包括前述任一項(xiàng)所述的對主引導(dǎo)記錄惡意程序進(jìn)行處理的裝置。
根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)效果根據(jù)本發(fā)明的對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法及裝置,可以能夠在系統(tǒng)啟動的早期階段,MBR、B00TL0ADER、B00TMGR等初始化好后,系統(tǒng)在初始化內(nèi)核的時(shí)候,加載安全驅(qū)動程序,然后HOOK系統(tǒng)讀寫磁盤的操作,當(dāng)讀取的扇區(qū)內(nèi)包含惡意代碼的時(shí)候,返回失敗,從而讓惡意驅(qū)動無法被加載,完全切斷了 MBR和與惡意驅(qū)動之間的聯(lián)系,使MBR惡意程序完全失效,進(jìn)而可以輕易的處理殘留的MBR病毒體,有效的阻止此類惡意程序?qū)τ?jì)算機(jī)系統(tǒng)的破壞。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的方法的流程圖;以及圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的裝置的示意圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。參見圖1,本發(fā)明實(shí)施例提供的對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法包括以下步驟SlOl :在啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序;在現(xiàn)代操作系統(tǒng)中,應(yīng)用程序不能直接訪問硬件,而是通過調(diào)用操作系統(tǒng)提供的接口來使用硬件,而操作系統(tǒng)依賴內(nèi)核空間來管理和調(diào)度這些應(yīng)用。內(nèi)核空間由四大部分組成,分別是進(jìn)程管理(負(fù)責(zé)分配CPU時(shí)間)、文件訪問(把設(shè)備調(diào)配成文件系統(tǒng),并提供一個(gè)一致的接口供上層程序調(diào)用)、安全控制(負(fù)責(zé)強(qiáng)制規(guī)定各個(gè)進(jìn)程的具體的權(quán)限和單獨(dú)的內(nèi)存范圍,避免各進(jìn)程之間發(fā)生沖突)和內(nèi)存管理(負(fù)責(zé)進(jìn)程運(yùn)行時(shí)對內(nèi)存資源的分配、使用、釋放和回收)。內(nèi)核是一種數(shù)據(jù)結(jié)構(gòu),Rootkit技術(shù)通過修改內(nèi)核的數(shù)據(jù)結(jié)構(gòu)來隱藏其他程序的進(jìn)程、文件、網(wǎng)絡(luò)通訊和其它相關(guān)信息(比如注冊表和可能因修改而產(chǎn)生的系統(tǒng)日志等)。Bootkit 是更高級的 Rootkit, Bootkit 通過感染 MBR(Master Boot Record,磁盤主引導(dǎo)記錄)的方式,實(shí)現(xiàn)繞過內(nèi)核檢查和啟動隱身,即Bootkit是一種基于MBR的Rootkit??梢哉J(rèn)為,所有在開機(jī)時(shí)比Windows內(nèi)核更早加載、實(shí)現(xiàn)內(nèi)核劫持的技術(shù),都可以稱之為 Bootkit,例如后來的 BIOS Rootkit、VBootkit、SMM Rootkit 等。由于 MBR 病毒(MBR BOOTKIT)寄生在MBR中,病毒釋放的驅(qū)動程序,能夠破壞大多數(shù)安全工具和系統(tǒng)輔助工具,當(dāng)系統(tǒng)再次重啟時(shí),該病毒程序會早于操作系統(tǒng)內(nèi)核先行加載。為了能夠?qū)惯@種MBR病毒,就需要在MBR病毒加載惡意驅(qū)動之前,加載安全驅(qū)動程序。為了達(dá)到該目的,在本發(fā)明實(shí)施例中,就可以在硬盤驅(qū)動初始化之前加載安全驅(qū)動程序,具體實(shí)現(xiàn)時(shí),可以在MBR、BOOTLOADER、B00TMGR等初始化好后,系統(tǒng)在初始化NT KERNEL的時(shí)候,就對安全驅(qū)動程序進(jìn)行加載,以期趕在MBR區(qū)的惡意驅(qū)動程序加載之前獲得執(zhí)行。其中,BOOTLOADER就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段系統(tǒng)引導(dǎo)程序。通過這段系統(tǒng)引導(dǎo)程序,可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。在嵌入式系統(tǒng)中,通常并沒有像BIOS (Basic Input OutputSystem,基本輸入輸出系統(tǒng))那樣的固件程序(有的嵌入式CPU也會內(nèi)嵌一段短小的啟動程序),因此整個(gè)系統(tǒng)的加載啟動任務(wù)就完全由BootLoader 來完成。B00TMGR是Boot Manager 的縮寫,是在 Windows Vista 和 Windows7 中使用的啟動管理器,類似功能的,還有Windows xp中的啟動管理器-NTLDR,等等。NT KERNEL是系統(tǒng)內(nèi)核。
以Wind0ws7系統(tǒng)為例,正常情況下,計(jì)算機(jī)系統(tǒng)的開機(jī)過程是開機(jī)通電自檢一 >主板BIOS根據(jù)用戶指定的啟動順序從軟盤、硬盤或光驅(qū)進(jìn)行啟動一 >系統(tǒng)BIOS將主引導(dǎo)記錄MBR讀入內(nèi)存一 >控制權(quán)交給主引導(dǎo)程序一 >主引導(dǎo)程序檢查分區(qū)表狀態(tài),尋找活動的分區(qū)一 >主引導(dǎo)程序?qū)⒖刂茩?quán)交給活動分區(qū)的引導(dǎo)記錄,由引導(dǎo)記錄加載操作系統(tǒng)啟動文件。 由上可知,MBR是電腦通電開機(jī),系統(tǒng)自檢完成后,被第一個(gè)讀取到的位置,位于硬盤的O磁頭O磁道I扇區(qū),它的大小是512字節(jié),不屬于任何一個(gè)操作系統(tǒng),也不能用操作系統(tǒng)提供的磁盤操作命令來讀取。當(dāng)電腦加電后,首先是啟動BIOS程序,BIOS自檢完畢后,找到硬盤上的主引導(dǎo)記錄MBR,通過MBR讀取DPT (Disk Partition Table,硬盤分區(qū)表),從中找出活動的主分區(qū),然后讀取活動主分區(qū)的PBR(Partition Boot Record,分區(qū)引導(dǎo)記錄),通過PBR再搜尋分區(qū)內(nèi)的啟動管理器文件B00TMGR,在B00TMGR被找到后,控制權(quán)就交給了 B00TMGR。通過B00TMGR 讀取 \B00T\BCD 文件(BCD = Boot Configuration Data,啟動配置數(shù)據(jù)),如果存在著多個(gè)操作系統(tǒng)并且選擇操作系統(tǒng)的等待時(shí)間不為0,這時(shí)就會在顯示器上顯示操作系統(tǒng)的選擇界面。如果選擇啟動Windows7后,B00TMGR就會去啟動盤尋找WIND0WS\system32\winload, exe,然后通過winload, exe加載Windows7內(nèi)核,從而啟動整個(gè)Windows7系統(tǒng)。總之,在Windows7操作系統(tǒng)中,可以把這個(gè)過程簡單地概括為BI0S— > MBR— > DPT— >PBR- > B00TMGR— > BCD— > Winload· exe— > 內(nèi)核加載一 >整個(gè) windows7 系統(tǒng)。在內(nèi)核加載之后,啟動整個(gè)windows7系統(tǒng)時(shí),需要先對內(nèi)核進(jìn)行初始化,然后對硬盤進(jìn)行初始化,而在本發(fā)明實(shí)施例中,就是在上述對內(nèi)核進(jìn)行初始化的環(huán)節(jié)中,加載安全驅(qū)動程序。具體實(shí)現(xiàn)時(shí),為了能夠保證啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序,可以在操作系統(tǒng)的注冊表中將安全驅(qū)動程序注冊為系統(tǒng)預(yù)留類型(也即注冊為system reserved),這樣可以使得系統(tǒng)能夠最早加載該安全驅(qū)動程序。另外,系統(tǒng)內(nèi)部自帶的簡單的文件讀寫的系統(tǒng),在實(shí)模式下就已經(jīng)通過INT13讀取文件到內(nèi)存中,然后在保護(hù)模式下訪問。所以系統(tǒng)會自動加載注冊表中BOOT TYPE為O的驅(qū)動到內(nèi)存中,而無需通過磁盤驅(qū)動和文件驅(qū)動。
S102 :在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序;安全驅(qū)動程序被加載之后,需要由操作程序來調(diào)用該安全驅(qū)動程序,才能執(zhí)行相關(guān)的操作,發(fā)揮出真正的作用。為此,具體實(shí)現(xiàn)時(shí),可以在安全驅(qū)動程序被加載時(shí),向系統(tǒng)注冊回調(diào)函數(shù),這樣就能夠在硬盤驅(qū)動初始化結(jié)束之后,操作系統(tǒng)馬上調(diào)用安全驅(qū)動程序,使得安全驅(qū)動程序立即得以運(yùn)行。之所以要向系統(tǒng)注冊回調(diào)函數(shù),是因?yàn)?,安全?qū)動程序需要掛鉤硬盤驅(qū)動的操作,但該操作也要等硬盤驅(qū)動初始化好以后才能執(zhí)行,所以需要向系統(tǒng)注冊一個(gè)回調(diào)函數(shù),以便硬盤驅(qū)動初始化后,安全驅(qū)動程序能及時(shí)獲得執(zhí)行操作。S103 :在所述安全驅(qū)動程序被調(diào)用后,通過所述安全驅(qū)動程序?qū)Υ疟P的讀取/寫入操作進(jìn)行監(jiān)控;
安全驅(qū)動程序在獲得執(zhí)行之后,就可以對磁盤的讀取操作進(jìn)行監(jiān)控。由于MBR區(qū)的惡意程序要想與磁盤分區(qū)中的惡意驅(qū)動程序取得聯(lián)系,就需要將磁盤分區(qū)中的惡意驅(qū)動代碼讀入內(nèi)存,從而加載運(yùn)行惡意驅(qū)動程序,而在將磁盤分區(qū)中的惡意驅(qū)動代碼讀入內(nèi)存的過程中,就需要對磁盤進(jìn)行讀??;另一方面,本發(fā)明實(shí)施例中的安全驅(qū)動程序又是早于惡意驅(qū)動程序加載的,因此,惡意程序讀取及寫入磁盤的操作就能被安全驅(qū)動程序監(jiān)控到。具體實(shí)現(xiàn)時(shí),可以通過HOOK磁盤驅(qū)動的讀取/寫入的相關(guān)操作,來實(shí)現(xiàn)對磁盤讀取/寫入操作的監(jiān)控。S104 :當(dāng)監(jiān)控到磁盤的讀取/寫入操作發(fā)生時(shí),對讀取/寫入的數(shù)據(jù)進(jìn)行檢測,如果檢測出所述讀取/寫入的數(shù)據(jù)中包含惡意代碼,返回磁盤讀取/寫入失敗,以阻斷主引導(dǎo)記錄中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系。安全驅(qū)動程序在監(jiān)控到磁盤讀取/寫入操作之后,就可以對讀取/寫入的數(shù)據(jù)進(jìn)行攔截,并進(jìn)行安全性檢測,如果發(fā)現(xiàn)讀取/寫入的數(shù)據(jù)中包含有惡意代碼,就證明可能是MBR區(qū)的惡意程序正在讀取/寫入磁盤中的惡意驅(qū)動代碼,因此,就可以直接返回磁盤讀取失敗,使得惡意驅(qū)動代碼無法被讀取/寫入到內(nèi)存中,也就無法運(yùn)行,進(jìn)而,就可以阻斷MBR中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系,這兩者之間的聯(lián)系被阻斷之后,MBR中的惡意程序與惡意驅(qū)動程序即使依然存在,也不會對用戶的計(jì)算機(jī)產(chǎn)生任何的危害。比如鬼影5,在讀取磁盤扇區(qū)時(shí)候,會驗(yàn)證某特征碼,如果符合,則認(rèn)為讀到惡意驅(qū)動的代碼,從而會執(zhí)行該代碼,通過修改這些,讓其認(rèn)為沒有讀到,即可跳過,避免運(yùn)行惡意代碼。其中,檢測被讀取的數(shù)據(jù)中是否存在惡意代碼的相關(guān)實(shí)現(xiàn)可以參見已有技術(shù)中的方法,這里不再贅述。當(dāng)然,為了進(jìn)一步保證用戶計(jì)算機(jī)的安全,在阻斷MBR中的惡意程序與磁盤中的惡意驅(qū)動程序之間的聯(lián)系之后,還可以將MBR中的惡意程序清除,此外,還可以將磁盤分區(qū)中的惡意驅(qū)動程序刪除。其中,惡意驅(qū)動程序就在保存在磁盤上,因此直接通過磁盤操作命令進(jìn)行刪除即可。但MBR中的惡意程序是位于MBR中,由于MBR位于硬盤的O磁頭O磁道I扇區(qū),它的大小是512字節(jié),不屬于任何一個(gè)操作系統(tǒng),也不能用操作系統(tǒng)提供的磁盤操作命令來讀取,因此,在對MBR中的惡意程序進(jìn)行清除時(shí),可以通過重建MBR等方式來實(shí)現(xiàn)。其中,關(guān)于如何進(jìn)行MBR的重建,可以調(diào)用已有的用于進(jìn)行MBR重建的應(yīng)用程序。具體實(shí)現(xiàn)時(shí),可以通過本發(fā)明實(shí)施例中的程序,將系統(tǒng)默認(rèn)的MBR寫入MBR區(qū),或系統(tǒng)的命令FDISK/MBR。來恢復(fù)MBR區(qū)域。
總之,由于MBR中的惡意程序在MBR獲得執(zhí)行后,會掛接INT13,在加載B00TMGR的時(shí)候,進(jìn)行Η00Κ,并在加載NT KERNEL的時(shí)候,進(jìn)行Η00Κ,然后加載自己的惡意驅(qū)動代碼,從而實(shí)現(xiàn)完整的自我保護(hù)。例如,MBR中的惡意程序會掛接系統(tǒng)底層驅(qū)動ATAPI. SYS和文件系統(tǒng)驅(qū)動NTFS. SYS,這導(dǎo)致安全程序根本無法獲得原始磁盤文件的信息,也無法獲得原始MBR的信息,獲得的都是被重定向的虛假信息,也就是說惡意驅(qū)動加載后,安全程序就很難再對其進(jìn)行檢測和清除。因此,本發(fā)明實(shí)施例所要做的就是在系統(tǒng)啟動的早期階段,MBR、BOOTLOADER、B00TMGR等初始化好后,系統(tǒng)在初始化NT KERNEL的時(shí)候,加載安全驅(qū)動程序,然后HOOK系統(tǒng)讀寫磁盤的操作,當(dāng)讀取的扇區(qū)內(nèi)包含惡意代碼的時(shí)候,返回失敗,從而讓惡意驅(qū)動無法被加載,完全切斷了 MBR和與惡意驅(qū)動之間的聯(lián)系,使MBR惡意程序完全失效,進(jìn)而可以輕易的處理殘留的MBR病毒體。與本發(fā)明實(shí)施例提供的對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法相對應(yīng),本發(fā)明實(shí) 施例還提供了一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的裝置,參見圖2,該裝置具體可以包括加載單元201,用于在啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序;調(diào)用單元202,用于在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序;監(jiān)控單元203,用于在所述安全驅(qū)動程序被調(diào)用后,通過所述安全驅(qū)動程序?qū)Υ疟P的讀取/寫入操作進(jìn)行監(jiān)控;檢測單元204,用于當(dāng)監(jiān)控到磁盤的讀取/寫入操作發(fā)生時(shí),對讀取/寫入的數(shù)據(jù)進(jìn)行檢測,如果檢測出所述讀取/寫入的數(shù)據(jù)中包含惡意代碼,返回磁盤讀取失敗,以阻斷主引導(dǎo)記錄中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系。具體實(shí)現(xiàn)時(shí),加載單元201可以包括注冊表寫入單元2011,用于在操作系統(tǒng)的注冊表中將安全驅(qū)動程序注冊為系統(tǒng)預(yù)留類型,以便操作系統(tǒng)在啟動過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序。調(diào)用單元202可以包括回調(diào)函數(shù)注冊單元,用于在所述安全驅(qū)動程序被加載時(shí),向系統(tǒng)注冊回調(diào)函數(shù),以便在硬盤初始化結(jié)束之后所述安全驅(qū)動程序被操作系統(tǒng)調(diào)用。為了進(jìn)一步保證用戶計(jì)算機(jī)的安全,在阻斷MBR中的惡意程序與磁盤中的惡意驅(qū)動程序之間的聯(lián)系之后,還可以將MBR中的惡意程序清除,此時(shí),該裝置還可以包括清除單元,用于對所述主引導(dǎo)記錄中的惡意程序進(jìn)行清除。由于MBR位于硬盤的O磁頭O磁道I扇區(qū),它的大小是512字節(jié),不屬于任何一個(gè)操作系統(tǒng),也不能用操作系統(tǒng)提供的磁盤操作命令來讀取,因此,在對MBR中的惡意程序進(jìn)行清除時(shí),可以通過重建MBR等方式來實(shí)現(xiàn),相應(yīng)的,所述清除單元包括重建子單元,用于重建主引導(dǎo)記錄。另外,為了進(jìn)一步保證用戶計(jì)算機(jī)的安全,該裝置還可以包括刪除單元,用于對所述磁盤分區(qū)中的惡意驅(qū)動程序進(jìn)行刪除。由于惡意驅(qū)動程序就保存在磁盤分區(qū)中,因此,可以使用磁盤操作命令對磁盤分區(qū)中的惡意驅(qū)動程序代碼刪除。
總之,在本發(fā)明實(shí)施例提供的上述裝置中,能夠在系統(tǒng)啟動的早期階段,MBR、BOOTLOADER、B00TMGR等初始化好后,系統(tǒng)在初始化內(nèi)核的時(shí)候,加載安全驅(qū)動程序,然后HOOK系統(tǒng)讀寫磁盤的操作,當(dāng)讀取的扇區(qū)內(nèi)包含惡意代碼的時(shí)候,返回失敗,從而讓惡意驅(qū)動無法被加載,完全切斷了 MBR和與惡意驅(qū)動之間的聯(lián)系,使MBR惡意程序完全失效,進(jìn)而可以輕易的處理殘留的MBR病毒體。此外,本發(fā)明實(shí)施例還提供了一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的設(shè)備,需要說明的是,在具體實(shí)現(xiàn)時(shí),針對上述對主引導(dǎo)記錄惡意程序進(jìn)行處理的設(shè)備,,所述設(shè)備通過CPU、內(nèi)存、硬盤以及其他相關(guān)部分,BIOS等,可以有效的阻止MBR區(qū)域中出現(xiàn)的惡意程序?qū)τ?jì)算機(jī)系統(tǒng)的破壞。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求 的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的對主引導(dǎo)記錄惡意程序進(jìn)行處理的設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為 名稱。
權(quán)利要求
1.一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法,包括 在啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序; 在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序; 通過所述安全驅(qū)動程序?qū)Υ疟P的讀取操作進(jìn)行監(jiān)控; 當(dāng)監(jiān)控到磁盤的讀取/寫入操作發(fā)生時(shí),對讀取/寫入的數(shù)據(jù)進(jìn)行檢測,如果檢測出所述讀取/寫入的數(shù)據(jù)中包含惡意代碼,返回磁盤讀取失敗,以阻斷主引導(dǎo)記錄中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系; 其中,所述在啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序包括在操作系統(tǒng)的注冊表中將安全驅(qū)動程序注冊為系統(tǒng)預(yù)留類型,以便操作系統(tǒng)在啟動過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序。
2.根據(jù)權(quán)利要求I所述的方法,所述在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序包括 在所述安全驅(qū)動程序被加載時(shí),向系統(tǒng)注冊回調(diào)函數(shù),以便在硬盤初始化結(jié)束之后所述安全驅(qū)動程序被操作系統(tǒng)調(diào)用。
3.根據(jù)權(quán)利要求I所述的方法,還包括 對所述主引導(dǎo)記錄中的惡意程序進(jìn)行清除。
4.根據(jù)權(quán)利要求3所述的方法,所述對所述主引導(dǎo)記錄中的惡意程序進(jìn)行清除包括 重建主引導(dǎo)記錄。
5.根據(jù)權(quán)利要求I所述的方法,還包括 對所述磁盤分區(qū)中的惡意驅(qū)動程序進(jìn)行刪除。
6.一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的裝置,包括 加載單元,用于在啟動操作系統(tǒng)的過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序; 調(diào)用單元,用于在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序; 監(jiān)控單元,用于通過所述安全驅(qū)動程序?qū)Υ疟P的讀取操作進(jìn)行監(jiān)控; 檢測單元,用于當(dāng)監(jiān)控到磁盤的讀取/寫入操作發(fā)生時(shí),對讀取/寫入的數(shù)據(jù)進(jìn)行檢測,如果檢測出所述讀取/寫入的數(shù)據(jù)中包含惡意代碼,返回磁盤讀取失敗,以阻斷主引導(dǎo)記錄中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系; 其中,所述加載單元包括 注冊表寫入單元,用于在操作系統(tǒng)的注冊表中將安全驅(qū)動程序注冊為系統(tǒng)預(yù)留類型,以便操作系統(tǒng)在啟動過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序。
7.根據(jù)權(quán)利要求6所述的裝置,所述調(diào)用單元包括 回調(diào)函數(shù)注冊單元,用于在所述安全驅(qū)動程序被加載時(shí),向系統(tǒng)注冊回調(diào)函數(shù),以便在硬盤初始化結(jié)束之后所述安全驅(qū)動程序被操作系統(tǒng)調(diào)用。
8.根據(jù)權(quán)利要求6所述的裝置,還包括 清除單元,用于對所述主引導(dǎo)記錄中的惡意程序進(jìn)行清除。
9.根據(jù)權(quán)利要求8所述的裝置,所述清除單元包括 重建子單元,用于重建主引導(dǎo)記錄。
10.根據(jù)權(quán)利要求6所述的裝置,還包括 刪除單元,用于對所述磁盤分區(qū)中的惡意驅(qū)動程序進(jìn)行刪除。
11.一種對主引導(dǎo)記錄惡意程序進(jìn)行處理的設(shè)備,包括權(quán)利要求6至10任一項(xiàng)所述的對主引導(dǎo)記錄惡意程序進(jìn)行處理的裝置。
全文摘要
本發(fā)明公開了對主引導(dǎo)記錄惡意程序進(jìn)行處理的方法及裝置,所述方法包括在操作系統(tǒng)的注冊表中將安全驅(qū)動程序注冊為系統(tǒng)預(yù)留類型,以便操作系統(tǒng)在啟動過程中,進(jìn)行內(nèi)核初始化時(shí),加載安全驅(qū)動程序;在硬盤初始化結(jié)束后調(diào)用所述安全驅(qū)動程序;在所述安全驅(qū)動程序被調(diào)用后,通過所述安全驅(qū)動程序?qū)Υ疟P的讀取操作進(jìn)行監(jiān)控;當(dāng)監(jiān)控到磁盤的讀取/寫入操作發(fā)生時(shí),對讀取/寫入的數(shù)據(jù)進(jìn)行檢測,如果檢測出所述讀取/寫入的數(shù)據(jù)中包含惡意代碼,返回磁盤讀取失敗,以阻斷主引導(dǎo)記錄中的惡意程序與磁盤分區(qū)中的惡意驅(qū)動程序之間的聯(lián)系。通過本發(fā)明,能夠有效的阻止主引導(dǎo)記錄惡意程序?qū)τ?jì)算機(jī)的破壞。
文檔編號G06F21/51GK102867141SQ20121038035
公開日2013年1月9日 申請日期2012年9月29日 優(yōu)先權(quán)日2012年9月29日
發(fā)明者邵堅(jiān)磊 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司