專利名稱:一種清除rootkit的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及清除病毒的系統(tǒng)及方法,尤其涉及一種清除ROOTKIT的系統(tǒng)及方法。
背景技術(shù):
隨著商業(yè)用戶對(duì)個(gè)人計(jì)算機(jī)(PC)依賴性的不斷加大,用戶在PC上主要的檢查病毒與木馬的工具是防(殺)病毒及防(殺)木馬工具軟件,這些工具工作原理是在系統(tǒng)運(yùn)行時(shí),掃描系統(tǒng)內(nèi)存中的進(jìn)程及硬盤上保存的系統(tǒng)文件,并匹配相關(guān)特征文件,從而發(fā)現(xiàn)病毒及木馬。
操作系統(tǒng)是由內(nèi)核(Kernel)和外殼(Shell)兩部分組成的,其中內(nèi)核負(fù)責(zé)一切實(shí)際的工作,包括CPU任務(wù)調(diào)度、內(nèi)存分配管理、設(shè)備管理、文件操作等;外殼是基于內(nèi)核提供的交互功能而存在的界面,它負(fù)責(zé)指令傳遞和解釋。一般的進(jìn)程查看工具和殺毒軟件也不例外,能看到的進(jìn)程其實(shí)是內(nèi)核“看到”并通過(guò)相關(guān)接口指令(API)反饋到應(yīng)用程序的,這樣就不可避免的存在一條數(shù)據(jù)通道。簡(jiǎn)單而言,ROOTKIT設(shè)法讓自己達(dá)到和內(nèi)核一樣的運(yùn)行級(jí)別,甚至進(jìn)入內(nèi)核空間,這樣它就擁有了和內(nèi)核一樣的訪問(wèn)權(quán)限,因而可以對(duì)內(nèi)核指令進(jìn)行修改,最常見的是修改內(nèi)核枚舉進(jìn)程的API,讓它們返回的數(shù)據(jù)始終“遺漏”ROOTKIT自身進(jìn)程的信息,一般的進(jìn)程工具自然就“看”不到ROOTKIT了。更高級(jí)的ROOTKIT還篡改更多API,這樣,用戶就看不到進(jìn)程(進(jìn)程API被攔截),看不到文件(文件讀寫API被攔截),看不到被打開的端口(網(wǎng)絡(luò)組件SOCK API被攔截),更攔截不到相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)包(網(wǎng)絡(luò)組件NDIS API被攔截)了,這樣ROOTKIT通過(guò)監(jiān)聽系統(tǒng)的功能、用合法的數(shù)值取代返回的數(shù)據(jù)。ROOTKIT其它的秘密活動(dòng)包括掩蓋網(wǎng)絡(luò)活動(dòng)和修改WINDOWS注冊(cè)表,達(dá)到了隱藏其代碼不被發(fā)現(xiàn)的目標(biāo)。
當(dāng)病毒或者木馬采用ROOTKIT技術(shù)時(shí),其病毒本身內(nèi)存中進(jìn)程和硬盤保存的文件被隱藏起來(lái),則不會(huì)被防病毒、防木馬工具軟件發(fā)現(xiàn),更不會(huì)與特征文件進(jìn)行匹配,因此采用ROOTKIT技術(shù)的病毒與木馬不會(huì)被采用現(xiàn)有技術(shù)的防病毒與防木馬的工具軟件發(fā)現(xiàn)。
系統(tǒng)中隱藏的病毒及木馬,輕則破壞系統(tǒng),重則盜取用戶合同、銀行帳號(hào)等敏感數(shù)據(jù),給用戶帶來(lái)嚴(yán)重地?fù)p失。
目前,最可靠地檢測(cè)ROOTKIT的辦法是關(guān)閉操作系統(tǒng)(OFFLINE OS)檢測(cè)。例如,系統(tǒng)自身啟動(dòng),然后列出所有的文件、REGISTRY項(xiàng)等等。然后用WINPE從CD啟動(dòng),再列出所有的文件、REGISTRY項(xiàng)。這時(shí),對(duì)比兩個(gè)列表,在正常情況下,兩個(gè)列表中所列內(nèi)容應(yīng)該是一樣的,如果出現(xiàn)不一樣的地方,就可以發(fā)現(xiàn)那些在用自身系統(tǒng)啟動(dòng)的情況下看不到的文件。
該方法的主要缺點(diǎn)是1)該方法只能檢測(cè)硬盤中文件,對(duì)于可能通過(guò)網(wǎng)絡(luò)或方式進(jìn)入系統(tǒng)或系統(tǒng)中運(yùn)行態(tài)的進(jìn)程無(wú)法檢查;2)關(guān)閉系統(tǒng)會(huì)給用戶帶來(lái)不便,特別是對(duì)于某些24小時(shí)不能停機(jī)的重要系統(tǒng)(例如,銀行的授權(quán)系統(tǒng)等),關(guān)閉系統(tǒng)的方法是不現(xiàn)實(shí)的;3)由于ROOTKIT是未知的,不僅查找ROOTKIT存在困難,而且ROOTKIT如何替換系統(tǒng)核心文件和API是未知的,清除未知ROOTKIT存在技術(shù)問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種清除ROOTKIT的系統(tǒng)。
本發(fā)明的另一目的在于,提供一種清除ROOTKIT的方法。
本發(fā)明的清除ROOTKIT的系統(tǒng),包括虛擬機(jī)監(jiān)視器,以及運(yùn)行在虛擬機(jī)監(jiān)視器上的服務(wù)操作系統(tǒng)和至少一個(gè)客戶操作系統(tǒng),其中所述客戶操作系統(tǒng)包括檢測(cè)工具代理模塊,用于在客戶操作系統(tǒng)運(yùn)行時(shí),收集客戶操作系統(tǒng)中信息;所述服務(wù)操作系統(tǒng)包括檢測(cè)工具;所述檢測(cè)工具,用于在虛擬機(jī)監(jiān)視器中收集客戶操作系統(tǒng)運(yùn)行時(shí)的信息,并將收集的信息與所述檢測(cè)工具代理模塊收集的信息相比較,判斷是否存在ROOTKIT,并依照檢測(cè)工具代理模塊中收集的信息,將被ROOTKIT修改的信息替換。
所述服務(wù)操作系統(tǒng)還可以包括原始系統(tǒng)文件參照模塊,用于在客戶操作系統(tǒng)最初運(yùn)行時(shí),保存初始系統(tǒng)信息。
所述收集的信息為文件列表信息或者系統(tǒng)內(nèi)存狀態(tài)信息。
所述系統(tǒng)內(nèi)存狀態(tài)信息為系統(tǒng)API接口地址信息及API對(duì)應(yīng)的程序代碼。
本發(fā)明的清除ROOTKIT的方法,包括以下步驟步驟A)檢測(cè)工具代理模塊收集用戶在客戶操作系統(tǒng)中的信息;步驟B)運(yùn)行于虛擬機(jī)監(jiān)視器上的服務(wù)操作系統(tǒng)檢查運(yùn)行于虛擬機(jī)監(jiān)視器3上的客戶操作系統(tǒng)中是否存在被ROOTKIT修改的信息;步驟C)如果存在ROOTKIT,則依照檢測(cè)工具代理模塊收集的信息,將被ROOTKIT修改的信息替換,清除ROOTKIT。
所述步驟B)可以包括下列步驟步驟B1)檢測(cè)工具在虛擬機(jī)監(jiān)視器中收集客戶操作系統(tǒng)打開的信息;步驟B2)客戶操作系統(tǒng)中的檢測(cè)工具代理模塊收集在客戶操作系統(tǒng)1中打開的信息,并將收集的信息傳輸給服務(wù)操作系統(tǒng)的檢測(cè)工具;步驟B3)將所述步驟B1)中檢測(cè)工具收集的信息與步驟B2)中檢測(cè)工具代理模塊收集的信息進(jìn)行比較,判斷是否存在差異信息;步驟B4)如果沒有差異信息,則客戶操作系統(tǒng)中沒有ROOTKIT,檢查過(guò)程結(jié)束;如果有差異信息,則客戶操作系統(tǒng)中存在ROOTKIT。
所述步驟C)還可以包括下列步驟檢測(cè)工具,用步驟B2)中檢測(cè)工具代理模塊收集的信息,替換被ROOTKIT修改的差異信息,清除ROOTKIT。
本發(fā)明的查殺ROOTKIT的方法,還可以包括以下步驟服務(wù)操作系統(tǒng)中原始系統(tǒng)文件參照模塊對(duì)客戶操作系統(tǒng)中初始系統(tǒng)信息進(jìn)行保存;針對(duì)差異信息,檢測(cè)工具用原始系統(tǒng)文件參照模塊中保存的初始系統(tǒng)信息替換硬盤保存的實(shí)際被ROOTKIT修改的信息。
所述收集的信息為文件列表信息或者系統(tǒng)內(nèi)存狀態(tài)信息。
所述系統(tǒng)內(nèi)存狀態(tài)信息為API接口地址信息和API對(duì)應(yīng)的程序代碼。
本發(fā)明的有益效果是根據(jù)本發(fā)明的清除ROOTKIT的系統(tǒng)及方法,在操作系統(tǒng)實(shí)時(shí)運(yùn)行時(shí),可靠地清除未知ROOTKIT,且本發(fā)明的檢測(cè)工具以及原始系統(tǒng)文件參考模塊運(yùn)行于操作系統(tǒng)之外的VMM控制的服務(wù)操作系統(tǒng)內(nèi)存區(qū)域,攻擊操作系統(tǒng)安全軟件的病毒及木馬無(wú)法攻擊到VMM以及服務(wù)操作系統(tǒng),因此檢測(cè)工具以及原始系統(tǒng)文件參考模塊不會(huì)受到攻擊,安全性高。
圖1為本發(fā)明一實(shí)施例的清除ROOTKIT的系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明一實(shí)施例的清除ROOTKIT的方法流程圖;圖3為本發(fā)明另一實(shí)施例的清除ROOTKIT的系統(tǒng)結(jié)構(gòu)示意圖;圖4為本發(fā)明另一實(shí)施例的清除ROOTKIT的方法流程圖。
具體實(shí)施例方式
以下將結(jié)合附圖1~4詳細(xì)說(shuō)明本發(fā)明的清除ROOTKIT的系統(tǒng)及方法。
實(shí)施例1圖1為本發(fā)明一實(shí)施例的清除ROOTKIT的系統(tǒng)結(jié)構(gòu)示意圖。
如圖1所示,本實(shí)施例的清除ROOTKIT的系統(tǒng)包括至少一個(gè)客戶操作系統(tǒng)(客戶OS)1、服務(wù)操作系統(tǒng)2、虛擬機(jī)監(jiān)視器(Virtual Machine Monitor,VMM)3。
其中,虛擬機(jī)監(jiān)視器3,運(yùn)行在支持虛擬計(jì)算指令的硬件平臺(tái)上,并在其上運(yùn)行現(xiàn)有的各種操作系統(tǒng)(包括本發(fā)明的客戶操作系統(tǒng)1以及服務(wù)操作系統(tǒng)2);服務(wù)操作系統(tǒng)2,其運(yùn)行于虛擬機(jī)監(jiān)視器3上,包括檢測(cè)工具22,用于在虛擬機(jī)監(jiān)視器3中直接收集客戶操作系統(tǒng)1運(yùn)行時(shí)的信息(例如,打開的文件集、進(jìn)程集以及API接口地址等信息),其在客戶操作系統(tǒng)1中設(shè)置有檢測(cè)工具代理模塊22’,用于收集在客戶操作系統(tǒng)1中用戶打開的信息(例如,打開的文件集、進(jìn)程集以及API接口地址等信息);客戶操作系統(tǒng)1,包括所述服務(wù)操作系統(tǒng)2中檢測(cè)工具代理模塊22’,用于收集在客戶操作系統(tǒng)1中用戶打開的信息,并將收集的信息傳輸至檢測(cè)工具22。
以上,檢測(cè)工具22及檢測(cè)工具代理模塊22’所收集到的信息包括1)文件列表信息存儲(chǔ)在存儲(chǔ)設(shè)備上的文件清單;2)系統(tǒng)內(nèi)存狀態(tài)信息,包括系統(tǒng)API接口地址以及API接口相應(yīng)的程序代碼等。
可以理解的是,如果客戶操作系統(tǒng)1中存在ROOTKIT,由于ROOTKIT會(huì)隱藏其自身以及被其修改的文件或者系統(tǒng)API接口等信息,因此檢測(cè)工具代理模塊22’中顯示的收集到的信息則是為未被ROOTKIT修改的原始信息(例如,原始系統(tǒng)文件、原始API接口等信息)。
具體的,當(dāng)客戶操作系統(tǒng)1最初運(yùn)行時(shí),檢測(cè)工具22開始運(yùn)行于虛擬機(jī)監(jiān)視器3上,用于在虛擬機(jī)監(jiān)視器3中直接收集客戶操作系統(tǒng)1運(yùn)行時(shí)的信息(包括文件集、進(jìn)程集、API接口地址以及API相應(yīng)的程序代碼等),并與從檢測(cè)工具代理模塊22’傳輸來(lái)的在客戶操作系統(tǒng)1中收集的信息進(jìn)行比較,如果發(fā)現(xiàn)某些文件或者進(jìn)程只存在于檢測(cè)工具22收集的集合中,而檢測(cè)工具代理模塊22’中未收集到,則差異文件有可能是ROOTKIT;如果檢測(cè)工具22收集的API接口地址與檢測(cè)工具代理模塊22’收集的API接口地址不一致時(shí),則差異API接口地址為ROOTKIT替換的API接口。此時(shí),檢測(cè)工具22將依照檢測(cè)工具代理模塊22’中收集的信息,即未被ROOTKIT修改的原始信息,包括原始系統(tǒng)文件、原始API接口地址及相應(yīng)的程序代碼,替換硬盤保存的實(shí)際被ROOTKIT修改的系統(tǒng)文件、API接口地址及相應(yīng)的程序代碼,從而清除未知的ROOTKIT。
以下,參照?qǐng)D2介紹本發(fā)明的清除ROOTKIT的方法,包括以下步驟步驟101)服務(wù)操作系統(tǒng)2中檢測(cè)工具22開始在虛擬機(jī)監(jiān)視器3上運(yùn)行,并通過(guò)虛擬機(jī)監(jiān)視器3收集用戶在客戶操作系統(tǒng)1中打開的信息(例如,打開的文件集、進(jìn)程集以及API接口地址等信息),并通知客戶操作系統(tǒng)1中檢測(cè)工具代理模塊22’收集用戶在客戶操作系統(tǒng)1中打開的信息(包括文件集、進(jìn)程集以及API接口地址等);步驟102)客戶操作系統(tǒng)1中的檢測(cè)工具代理模塊22’將其在客戶操作系統(tǒng)1中收集的信息傳輸至服務(wù)操作系統(tǒng)2中的檢測(cè)工具22;步驟103)檢測(cè)工具22將步驟101)中檢測(cè)工具22收集的信息與步驟102)中檢測(cè)工具代理模塊22’收集的信息進(jìn)行比較,判斷是否存在差異信息(例如,差異文件、差異進(jìn)程以及差異API接口地址等),如果不存在差異信息,則客戶操作系統(tǒng)1中沒有ROOTKIT,則向客戶操作系統(tǒng)1提示后結(jié)束檢查過(guò)程,否則,執(zhí)行步驟104)
步驟104)針對(duì)差異信息,檢測(cè)工具22用檢測(cè)工具代理模塊22’中收集的相應(yīng)信息,替換硬盤保存的實(shí)際被ROOTKIT修改的信息(例如,系統(tǒng)文件、API接口地址以及API相應(yīng)的程序代碼等),從而清除未知的ROOTKIT。
下面,結(jié)合一個(gè)具體的例子來(lái)說(shuō)明本發(fā)明的方法在實(shí)際系統(tǒng)中的應(yīng)用服務(wù)操作系統(tǒng)2中檢測(cè)工具22在虛擬機(jī)監(jiān)視器3上運(yùn)行,并基于虛擬機(jī)監(jiān)視器3收集在客戶操作系統(tǒng)1運(yùn)行時(shí)打開的文件為1、2、3和4;客戶操作系統(tǒng)1中檢測(cè)工具代理模塊22’收集直接在客戶操作系統(tǒng)1中打開的文件為1和2,且該文件1的內(nèi)容與檢測(cè)工具22收集的文件1的內(nèi)容有差異,在檢測(cè)工具22收集的文件1的內(nèi)容是abc,而檢測(cè)工具代理模塊22’收集的文件1的內(nèi)容是def。
上述收集過(guò)程說(shuō)明1)文件3和4是ROOTKIT在硬盤上生成的新文件;2)文件1的內(nèi)容在ROOTKIT侵入前是def,而受ROOTKIT侵入后被修改為abc。
此時(shí),需要將文件3和4刪除,并將文件1的內(nèi)容abc改為def就能把系統(tǒng)恢復(fù)成未被ROOTKIT破壞的系統(tǒng),因此,檢測(cè)工具22需用檢測(cè)工具代理模塊22’收集的文件1(其內(nèi)容為def)替換硬盤中的保存的文件1(其內(nèi)容為abc)、3和4,即可清除未知ROOTKIT?;謴?fù)被ROOTKIT修改的系統(tǒng)API接口地址與恢復(fù)被ROOTKIT修改的系統(tǒng)文件的過(guò)程相類似,在此不再舉例說(shuō)明。
綜上所述,依照本發(fā)明實(shí)施例1的清除ROOTKIT的系統(tǒng),通過(guò)在硬件平臺(tái)上運(yùn)行VMM軟件,然后在VMM上運(yùn)行客戶操作系統(tǒng)1以及服務(wù)操作系統(tǒng)2,并在服務(wù)操作系統(tǒng)2上設(shè)置檢測(cè)工具22,在客戶操作系統(tǒng)1中設(shè)置檢測(cè)工具代理模塊22’,用于收集直接在客戶操作系統(tǒng)1上打開的信息,檢測(cè)工具22,用于在虛擬機(jī)監(jiān)視器3中直接收集客戶操作系統(tǒng)1運(yùn)行時(shí)打開的信息,并與檢測(cè)工具代理模塊22’中收集的信息相比較,顯示出差異信息,從而可靠地檢查出未知的ROOTKIT,然后,檢測(cè)工具22針對(duì)差異信息,用檢測(cè)工具代理模塊22’收集的相應(yīng)信息替代硬盤中實(shí)際被ROOTKIT修改的信息,從而清除ROOTKIT。本發(fā)明的檢測(cè)工具22運(yùn)行于操作系統(tǒng)之外的VMM控制的內(nèi)存區(qū)域,由于攻擊操作系統(tǒng)的病毒及木馬無(wú)法攻擊到VMM上,因此,檢測(cè)工具以及原始系統(tǒng)文件參考模塊不會(huì)受到攻擊,安全性高。
實(shí)施例2如圖3所示,為本實(shí)施例的清除ROOTKIT的系統(tǒng)結(jié)構(gòu)示意圖。本實(shí)施例的清除ROOTKIT的系統(tǒng)與本發(fā)明實(shí)施例1的清除ROOTKIT的系統(tǒng)的結(jié)構(gòu)大體相同,包括至少一個(gè)客戶操作系統(tǒng)1、服務(wù)操作系統(tǒng)2’、虛擬機(jī)監(jiān)視器3。不同之處在于,本實(shí)施例的服務(wù)操作系統(tǒng)2’,包括檢測(cè)工具22以及原始系統(tǒng)文件參照模塊21。
其中,原始系統(tǒng)文件參照模塊21,用于在客戶操作系統(tǒng)1最初運(yùn)行時(shí),對(duì)初始系統(tǒng)信息(包括文件集、進(jìn)程集、API接口地址以及相應(yīng)的程序代碼等信息)進(jìn)行鏡像或者備份。其他單元與本發(fā)明實(shí)施例1中的結(jié)構(gòu)和功能大體相同,在此不再?gòu)?fù)述。
此外,需要對(duì)客戶操作系統(tǒng)1中最初運(yùn)行時(shí)的系統(tǒng)信息進(jìn)行鏡像或備份的目的是當(dāng)檢測(cè)到被ROOTKIT感染的系統(tǒng)文件和API接口時(shí),依照檢測(cè)工具代理模塊22’中收集的未被ROOTKIT感染的原始信息,檢測(cè)模塊22用原始系統(tǒng)文件參照模塊21中相應(yīng)的初始系統(tǒng)信息替換硬盤保存的實(shí)際被ROOTKIT修改的信息,從而清除未知ROOTKIT。
具體的,當(dāng)客戶操作系統(tǒng)1最初運(yùn)行時(shí),原始系統(tǒng)文件參照模塊21對(duì)初始系統(tǒng)信息進(jìn)行鏡像或者備份;檢測(cè)工具22開始運(yùn)行于虛擬機(jī)監(jiān)視器3上,用于在虛擬機(jī)監(jiān)視器3中直接收集客戶操作系統(tǒng)1運(yùn)行時(shí)打開的文件集、進(jìn)程集、API接口地址等信息,并與檢測(cè)工具代理模塊22’中收集的文件集、進(jìn)程集、API接口地址等信息進(jìn)行比較,如果發(fā)現(xiàn)某些文件或進(jìn)程只存在于檢測(cè)工具22收集的集合中,而檢測(cè)工具代理模塊22’中未收集到,則差異文件有可能是ROOTKIT;如果檢測(cè)工具22收集的API接口地址與檢測(cè)工具代理模塊22’收集的API接口地址不一致時(shí),則差異API接口地址為ROOTKIT替換的API接口。此時(shí),依照差異信息,檢測(cè)工具22用原始系統(tǒng)文件參照模塊21中保存的相應(yīng)信息,替換硬盤保存的實(shí)際被ROOTKIT修改的信息(例如,系統(tǒng)文件、API接口地址及相應(yīng)的程序代碼等),從而清除未知的ROOTKIT。
以下,參照?qǐng)D4介紹本實(shí)施例的清除未知ROOTKIT的方法,包括以下步驟步驟201)服務(wù)操作系統(tǒng)2中原始系統(tǒng)文件參照模塊21對(duì)客戶操作系統(tǒng)1中初始系統(tǒng)信息進(jìn)行鏡像或備份;步驟202)服務(wù)操作系統(tǒng)2中檢測(cè)工具22開始在虛擬機(jī)監(jiān)視器3上運(yùn)行,并基于虛擬機(jī)監(jiān)視器3收集用戶在客戶操作系統(tǒng)1中打開的文件集、進(jìn)程集以及API接口地址等信息,并通知客戶操作系統(tǒng)1中檢測(cè)工具代理模塊22’收集用戶在客戶操作系統(tǒng)1中打開的文件集、進(jìn)程集以及API接口地址等信息;步驟203)客戶操作系統(tǒng)1中的檢測(cè)工具代理模塊22’將其收集的信息傳輸給服務(wù)操作系統(tǒng)2的檢測(cè)工具22;步驟204)檢測(cè)工具22將所述步驟202)中檢測(cè)工具22收集的信息與步驟203)中檢測(cè)工具代理模塊22’收集的信息進(jìn)行比較,判斷是否存在差異信息(例如,差異文件、差異進(jìn)程以及差異API接口地址等),如果不存在差異信息,則客戶操作系統(tǒng)1中沒有ROOTKIT,則向客戶操作系統(tǒng)1提示后結(jié)束檢查過(guò)程,否則,執(zhí)行步驟205);步驟205)針對(duì)差異信息,檢測(cè)工具22用相應(yīng)的在原始系統(tǒng)文件參照模塊21中鏡像或備份的初始系統(tǒng)信息替換硬盤保存的實(shí)際被ROOTKIT修改的信息(例如,系統(tǒng)文件、API接口以及相應(yīng)的程序代碼),從而清除未知的ROOTKIT。
以下,結(jié)合一個(gè)具體的例子來(lái)說(shuō)明本實(shí)施例的清除ROOTKIT的方法在實(shí)際系統(tǒng)中的應(yīng)用服務(wù)操作系統(tǒng)2中的原始系統(tǒng)文件參照模塊21對(duì)客戶操作系統(tǒng)1在最初運(yùn)行時(shí)的系統(tǒng)文件1和2進(jìn)行鏡像或備份得到文件1’和2’;檢測(cè)工具22在虛擬機(jī)監(jiān)視器3上運(yùn)行收集在客戶操作系統(tǒng)1運(yùn)行時(shí)打開的文件為1、2、3和4;客戶操作系統(tǒng)1中檢測(cè)工具代理模塊22’收集用戶在客戶操作系統(tǒng)1打開的文件為1和2,且文件1的內(nèi)容與檢測(cè)工具22收集的文件1的內(nèi)容有差異,在檢測(cè)工具22收集的文件1的內(nèi)容是abc,而檢測(cè)工具代理模塊22’收集的文件1的內(nèi)容是def。
上述收集過(guò)程說(shuō)明1)文件3和4是ROOTKIT在硬盤上生成的新文件;2)文件1的內(nèi)容在ROOTKIT侵入前是def,而受ROOTKIT侵入后被其改為abc。
此時(shí),需要將文件3和4刪除,并將文件1的內(nèi)容abc改為def就能把系統(tǒng)恢復(fù)成未被ROOTKIT破壞的系統(tǒng),因此,檢測(cè)工具22需用原始系統(tǒng)文件參照模塊21保存的文件1’(其內(nèi)容為def)替換硬盤中的保存的文件1(其內(nèi)容為abc)、3和4,即可清除未知ROOTKIT?;謴?fù)被ROOTKIT修改的系統(tǒng)API接口地址與恢復(fù)被ROOTKIT修改的系統(tǒng)文件的過(guò)程相類似,在此不再舉例說(shuō)明。
在本實(shí)施例中,將原始系統(tǒng)文件參照模塊21設(shè)置于服務(wù)操作系統(tǒng)2中是一種較佳方式,本發(fā)明并不局限于將原始系統(tǒng)文件參照模塊21設(shè)置于服務(wù)操作系統(tǒng)2中,只要在客戶操作系統(tǒng)1最初運(yùn)行時(shí),其完成對(duì)初始系統(tǒng)文件以及系統(tǒng)API接口地址等信息的鏡像或備份即可。
綜上所述,依照本實(shí)施例的清除ROOTKIT的系統(tǒng),通過(guò)在硬件平臺(tái)上運(yùn)行VMM軟件,然后在VMM上運(yùn)行客戶操作系統(tǒng)1以及服務(wù)操作系統(tǒng)2’,在客戶操作系統(tǒng)1中設(shè)置檢測(cè)工具代理模塊22’,用于收集直接在客戶操作系統(tǒng)1上打開的信息,并在服務(wù)操作系統(tǒng)2’上設(shè)置檢測(cè)工具22,用于在虛擬機(jī)監(jiān)視器3中直接收集客戶操作系統(tǒng)1運(yùn)行時(shí)打開的信息,并與檢測(cè)工具代理模塊22’中收集的信息相比較,顯示出差異信息,從而可靠地檢查出未知的ROOTKIT。通過(guò)增加原始系統(tǒng)文件參照模塊21,保留初始系統(tǒng)信息,檢測(cè)工具22針對(duì)差異信息,用原始系統(tǒng)文件參照模塊21中收集的相應(yīng)信息替代硬盤中實(shí)際被ROOTKIT修改的信息,從而清除ROOTKIT。本實(shí)施例的檢測(cè)工具22以及原始系統(tǒng)文件參照模塊21運(yùn)行于操作系統(tǒng)之外的VMM控制的內(nèi)存區(qū)域,由于攻擊操作系統(tǒng)的病毒及木馬無(wú)法攻擊到VMM上,因此,檢測(cè)工具22以及原始系統(tǒng)文件參考模塊21’不會(huì)受到攻擊,安全性高。
在上述本發(fā)明的實(shí)施例中,將檢測(cè)工具代理模塊設(shè)置于客戶操作系統(tǒng)中只是一種較佳方式,本發(fā)明并不局限于將檢測(cè)工具代理模塊設(shè)置在客戶操作系統(tǒng)中,檢測(cè)工具代理模塊可以通過(guò)各種其他方式實(shí)現(xiàn),例如,當(dāng)服務(wù)操作系統(tǒng)中的檢測(cè)工具開始運(yùn)行時(shí),其通過(guò)自身復(fù)制,然后向客戶操作系統(tǒng)中傳輸復(fù)制的檢測(cè)工具作為檢測(cè)工具代理模塊,并在客戶操作系統(tǒng)中運(yùn)行并駐留該檢測(cè)工具代理模塊;或者服務(wù)操作系統(tǒng)中的檢測(cè)工具向客戶操作系統(tǒng)中傳輸檢測(cè)工具代理模塊,并在客戶操作系統(tǒng)中運(yùn)行并駐留檢測(cè)工具代理模塊,由于文件復(fù)制及傳輸為現(xiàn)有技術(shù),本發(fā)明不再?gòu)?fù)述。
綜上所述,依照本發(fā)明的清除ROOTKIT的系統(tǒng)及方法,在操作系統(tǒng)實(shí)時(shí)運(yùn)行時(shí),可以可靠地清除未知ROOTKIT,且本發(fā)明的檢測(cè)工具以及原始系統(tǒng)文件參考模塊運(yùn)行于操作系統(tǒng)之外的VMM控制的服務(wù)操作系統(tǒng)內(nèi)存區(qū)域,攻擊操作系統(tǒng)安全軟件的病毒及木馬無(wú)法攻擊到VMM以及服務(wù)操作系統(tǒng),因此檢測(cè)工具以及原始系統(tǒng)文件參考模塊不會(huì)受到攻擊,安全性高。
對(duì)該技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),根據(jù)以上實(shí)施例可以聯(lián)想到其他的優(yōu)點(diǎn)和變形。因此,本發(fā)明并不局限于上述具體實(shí)施例,其僅僅作為例子對(duì)本發(fā)明進(jìn)行詳細(xì)、示范性的說(shuō)明。在不背離本發(fā)明宗旨的范圍內(nèi),本領(lǐng)域普通技術(shù)人員可以根據(jù)上述具體實(shí)施例通過(guò)各種等同替換所得到的技術(shù)方案,但是這些技術(shù)方案均應(yīng)該包含在本發(fā)明的權(quán)利要求的范圍及其等同的范圍之內(nèi)。
權(quán)利要求
1.一種清除ROOTKIT的系統(tǒng),其特征在于,包括虛擬機(jī)監(jiān)視器(3),以及運(yùn)行在虛擬機(jī)監(jiān)視器(3)上的服務(wù)操作系統(tǒng)(2)和至少一個(gè)客戶操作系統(tǒng)(1),其特征在于所述客戶操作系統(tǒng)(1)包括檢測(cè)工具代理模塊(22’),用于在客戶操作系統(tǒng)(1)運(yùn)行時(shí),收集客戶操作系統(tǒng)(1)中信息;所述服務(wù)操作系統(tǒng)(2)包括檢測(cè)工具(22);所述檢測(cè)工具(22),用于在虛擬機(jī)監(jiān)視器(3)中收集客戶操作系統(tǒng)(1)運(yùn)行時(shí)的信息,并將收集的信息與所述檢測(cè)工具代理模塊(22’)收集的信息相比較,判斷是否存在ROOTKIT,并依照檢測(cè)工具代理模塊(22’)中收集的信息,將被ROOTKIT修改的信息替換。
2.如權(quán)利要求1所述的清除ROOTKIT的系統(tǒng),其特征在于,所述服務(wù)操作系統(tǒng)(2)還包括原始系統(tǒng)文件參照模塊(21),用于在客戶操作系統(tǒng)(1)最初運(yùn)行時(shí),保存初始系統(tǒng)信息。
3.如權(quán)利要求1所述的清除ROOTKIT的系統(tǒng),其特征在于,所述收集的信息為文件列表信息或者系統(tǒng)內(nèi)存狀態(tài)信息。
4.如權(quán)利要求3所述的清除ROOTKIT的系統(tǒng),其特征在于,所述系統(tǒng)內(nèi)存狀態(tài)信息為系統(tǒng)API接口地址信息及API對(duì)應(yīng)的程序代碼。
5.一種清除ROOTKIT的方法,其特征在于,包括以下步驟步驟A)檢測(cè)工具代理模塊(22’)收集用戶在客戶操作系統(tǒng)(1)中的信息;步驟B)運(yùn)行于虛擬機(jī)監(jiān)視器(3)上的服務(wù)操作系統(tǒng)(2)檢查運(yùn)行于虛擬機(jī)監(jiān)視器(3)上的客戶操作系統(tǒng)(1)中是否存在被ROOTKIT修改的信息;步驟C)如果存在ROOTKIT,則依照檢測(cè)工具代理模塊(22’)收集的信息,將被ROOTKIT修改的信息替換,清除ROOTKIT。
6.如權(quán)利要求5所述的清除ROOTKIT的方法,其特征在于,所述步驟B)包括下列步驟步驟B1)檢測(cè)工具(22)在虛擬機(jī)監(jiān)視器(3)中收集客戶操作系統(tǒng)(1)打開的信息;步驟B2)客戶操作系統(tǒng)(1)中的檢測(cè)工具代理模塊(22’)收集在客戶操作系統(tǒng)(1)中打開的信息,并將收集的信息傳輸給服務(wù)操作系統(tǒng)(2)的檢測(cè)工具(22);步驟B3)將所述步驟B1)中檢測(cè)工具(22)收集的信息與步驟B2)中檢測(cè)工具代理模塊(22’)收集的信息進(jìn)行比較,判斷是否存在差異信息;步驟B4)如果沒有差異信息,則客戶操作系統(tǒng)(1)中沒有ROOTKIT,檢查過(guò)程結(jié)束;如果有差異信息,則客戶操作系統(tǒng)(1)中存在ROOTKIT。
7.如權(quán)利要求6所述的清除ROOTKIT的方法,其特征在于,所述步驟C)還包括下列步驟檢測(cè)工具(22)用步驟B2)中檢測(cè)工具代理模塊(22’)收集的信息,替換被ROOTKIT修改的差異信息,清除ROOTKIT。
8.如權(quán)利要求5所述的查殺ROOTKIT的方法,其特征在于,還包括以下步驟服務(wù)操作系統(tǒng)(2)中原始系統(tǒng)文件參照模塊(21)對(duì)客戶操作系統(tǒng)(1)中初始系統(tǒng)信息進(jìn)行保存;針對(duì)差異信息,檢測(cè)工具(22)用原始系統(tǒng)文件參照模塊(21)中保存的初始系統(tǒng)信息替換硬盤保存的實(shí)際被ROOTKIT修改的信息。
9.如權(quán)利要求5所述的查殺ROOTKIT的方法,其特征在于,所述收集的信息為文件列表信息或者系統(tǒng)內(nèi)存狀態(tài)信息。
10.如權(quán)利要求9所述的查殺ROOTKIT的方法,其特征在于,所述系統(tǒng)內(nèi)存狀態(tài)信息為API接口地址信息和API對(duì)應(yīng)的程序代碼。
全文摘要
本發(fā)明公開了一種清除ROOTKIT的系統(tǒng)及方法。其中,該系統(tǒng)包括虛擬機(jī)監(jiān)視器(3),以及運(yùn)行在虛擬機(jī)監(jiān)視器(3)上的服務(wù)操作系統(tǒng)(2)和至少一個(gè)客戶操作系統(tǒng)(1),其中客戶操作系統(tǒng)(1)包括檢測(cè)工具代理模塊(22’),用于在客戶操作系統(tǒng)(1)運(yùn)行時(shí),收集客戶操作系統(tǒng)(1)中信息;服務(wù)操作系統(tǒng)(2)包括檢測(cè)工具(22),用于在虛擬機(jī)監(jiān)視器(3)中收集客戶操作系統(tǒng)(1)運(yùn)行時(shí)的信息,并將收集的信息與所述檢測(cè)工具代理模塊(22’)收集的信息相比較,判斷是否存在ROOTKIT,并依照檢測(cè)工具代理模塊(22’)中收集的信息,將被ROOTKIT修改的信息替換。根據(jù)本發(fā)明的清除ROOTKIT的系統(tǒng)及方法,在操作系統(tǒng)實(shí)時(shí)運(yùn)行時(shí),可靠地清除未知ROOTKIT,且安全性高。
文檔編號(hào)G06F21/00GK101046836SQ20061006681
公開日2007年10月3日 申請(qǐng)日期2006年3月29日 優(yōu)先權(quán)日2006年3月29日
發(fā)明者楊文兵 申請(qǐng)人:聯(lián)想(北京)有限公司