用于管理器環(huán)境中的內(nèi)核rootkit防護的系統(tǒng)和方法
【專利摘要】一個實施例中的系統(tǒng)和方法包括:用于創(chuàng)建軟白名單的模塊,其中該軟白名單具有與管理器環(huán)境中的客戶機操作系統(tǒng)里的每一個客戶機內(nèi)核頁相對應(yīng)的條目;當針對客戶機內(nèi)核頁進行訪問嘗試時,產(chǎn)生頁錯誤;如果該客戶機內(nèi)核頁與軟白名單中的條目里的一個相對應(yīng),則修復(fù)該頁錯誤,以便允許訪問和執(zhí)行;如果該客戶機內(nèi)核頁不與軟白名單中的條目里的任何一個相對應(yīng),則拒絕執(zhí)行。如果該頁錯誤是指令頁錯誤,并且該客戶機內(nèi)核頁與軟白名單中的條目里的一個相對應(yīng),則該方法包括:將該客戶機內(nèi)核頁標記成只讀的和可執(zhí)行的。所述軟白名單包括:與每一個客戶機內(nèi)核頁的虛擬地址相對應(yīng)的機器頁面號的散列。
【專利說明】用于管理器環(huán)境中的內(nèi)核ROOTKIT防護的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]概括地說,本公開內(nèi)容涉及計算機網(wǎng)絡(luò)領(lǐng)域,具體地說,及用于管理器(hypervisor)環(huán)境中的內(nèi)核ROOTKIT防護的系統(tǒng)和方法。
【背景技術(shù)】
[0002]計算機網(wǎng)絡(luò)安全領(lǐng)域在今日社會已變得日益地重要和復(fù)雜。事實上每一個企業(yè)或者組織都配置有計算機網(wǎng)絡(luò)環(huán)境,其通常具有多個相互連接的計算機(例如,終端用戶計算機、膝上型計算機、服務(wù)器、打印設(shè)備等等)。此外,云服務(wù)提供商(和運行多個應(yīng)用和操作系統(tǒng)的其它組織)可以使用管理器技術(shù)在一個主機設(shè)備(host device)上同時地運行各種不同的客戶機(guest)操作系統(tǒng)。管理器是允許在一個主機計算機上同時地運行多個操作系統(tǒng)的計算機軟件/硬件平臺虛擬化軟件。在管理器環(huán)境中,可能外部地或內(nèi)部地引起安全威脅。管理器環(huán)境下的這些威脅,可能向IT管理員呈現(xiàn)進一步的挑戰(zhàn)。
【專利附圖】
【附圖說明】
[0003]為了提供本公開內(nèi)容及其特征和優(yōu)點的更全面理解,結(jié)合附圖來參照下面的描述,其中相同的附圖標記表示相同的部件,其中:
[0004]圖1是示出了根據(jù)一個示例性實施例用于管理器環(huán)境中的內(nèi)核rootkit防護的系統(tǒng)的組件的簡化框圖;以及
[0005]圖2是示出了可以與本公開內(nèi)容的實施例相關(guān)聯(lián)的示例性操作步驟的簡化流程圖。
[0006]示例性實施例的【具體實施方式】
[0007]概沭
[0008]一個實施例中的系統(tǒng)和方法包括:用于創(chuàng)建軟白名單的模塊,其中該軟白名單具有與管理器環(huán)境中的客戶機操作系統(tǒng)里的每一個客戶機內(nèi)核頁相對應(yīng)的條目;當針對客戶機內(nèi)核頁進行訪問嘗試時,產(chǎn)生頁錯誤;如果該客戶機內(nèi)核頁與軟白名單中的條目里的一個相對應(yīng),則修復(fù)該頁錯誤,以便允許進行訪問和執(zhí)行;以及如果該客戶機內(nèi)核頁不與軟白名單中的條目里的任何一個相對應(yīng)時,則拒絕進行執(zhí)行。在示例性實施例中,該軟白名單包括與每一個客戶機內(nèi)核頁的虛擬地址相對應(yīng)的機器頁面號的散列。
[0009]其它示例性實施例包括:如果所述頁錯誤是指令頁錯誤,并且所述客戶機內(nèi)核頁與所述軟白名單中的條目里的一個相對應(yīng),則將所述客戶機內(nèi)核頁標記成只讀和可執(zhí)行。如果所述頁錯誤是數(shù)據(jù)頁錯誤,并且所述客戶機內(nèi)核頁不與所述軟白名單中的條目里的任何一個相對應(yīng),則該方法包括:修復(fù)所述頁錯誤;以及將所述客戶機內(nèi)核頁標記成不可執(zhí)行。
[0010]更具體的實施例包括:在管理器的影子頁表中將與每一個客戶機內(nèi)核頁相對應(yīng)的頁表條目標記成N0T_PRESENT (不存在)。在其它示例性實施例中,該方法包括通過下面操作來拒絕執(zhí)行:使所述客戶機OS無限地循環(huán)、在所述客戶機OS中注入異常、或者修復(fù)所述頁錯誤、以及將所述影子頁表中的相應(yīng)PTE指向制作的頁而不是所述客戶機內(nèi)核頁。所述制作的頁可以包括導致所述客戶機OS崩潰或者導致無害地執(zhí)行的一組無操作(NOP)指令的代碼。
[0011]在其它示例性實施例中,在所述客戶機OS在啟動時實質(zhì)上已經(jīng)裝載了所有其內(nèi)核組件之后,執(zhí)行創(chuàng)建軟白名單。如果所述客戶機OS實質(zhì)上沒有裝載所有其內(nèi)核組件,每一個客戶機內(nèi)核頁可以來自于分頁池范圍或者非分頁池范圍。另一個實施例包括:在域創(chuàng)建期間,在所述管理器中設(shè)置鎖定特征比特,以使能rootkit防護和其它特征。
[0012]示例件實施例
[0013]圖1的簡化框圖示出了用于管理器環(huán)境中的內(nèi)核rootkit防護的系統(tǒng)10的示例性實現(xiàn)。如本申請所使用的,“管理器”是允許一個或多個操作系統(tǒng)(OS)(其稱為“客戶機OS”)在主機設(shè)備(例如,計算機)上同時地運行的硬件虛擬實體。虛擬化允許客戶機OS在隔離的虛擬環(huán)境(其通常稱為虛擬機或者客戶機)上不修改地運行,在隔離的虛擬環(huán)境中對主機設(shè)備的物理特性和行為進行復(fù)制。具體而言,一個客戶機可以表示裝備有虛擬硬件(處理器、存儲器、磁盤、網(wǎng)絡(luò)接口等等)的隔離的虛擬環(huán)境。根據(jù)圖1中所描繪的實施例,系統(tǒng)10包括管理器12,其向客戶機14提供虛擬環(huán)境。在本公開內(nèi)容的廣泛的范圍之內(nèi),可以有任意數(shù)量的客戶機駐留在管理器12上。為了便于解釋,在圖1中只表示性地描繪了單一客戶機。
[0014]管理器12對主機設(shè)備(沒有示出)的被分配由客戶機14使用的硬件16進行控制和管理。在管理器12上,客戶機14可以運行客戶機0S18??蛻魴C0S18可以支持一個或多個應(yīng)用20 (本申請中用單數(shù)稱為應(yīng)用20,以指代應(yīng)用中的一個)。如本申請所使用的,以廣泛的含義來使用術(shù)語“應(yīng)用”,以便一般地指代任何軟件文件、庫模塊、函數(shù)、子例行程序、二進制文件、指令集、代碼塊、或者其它類似的操作單元,其中所述其它類似的操作單元包括:在具有輔助或者不具有輔助(例如,編譯、解釋等等)的基礎(chǔ)上,能被計算機理解和處理的指令。
[0015]管理器12可以管理應(yīng)用20針對底層硬件16 (例如,處理器22和機器存儲器24)的訪問。如本申請所使用的,“機器存儲器”指代管理器12可見的、如在主機設(shè)備上可用的存儲器單元??蛻魴C0S18可以向應(yīng)用20呈現(xiàn)客戶機虛擬存儲器26,其訪問客戶機物理存儲器28。如本申請所使用的,術(shù)語“客戶機虛擬存儲器”指代在客戶機14中運行的應(yīng)用20可見的基本連續(xù)虛擬地址空間。地址空間指代離散地址的范圍,每一個離散地址可以對應(yīng)于一個存儲器單元(即,地址),應(yīng)用(例如,應(yīng)用20)可以在該存儲器單元處存儲數(shù)據(jù),并稍后獲取數(shù)據(jù)。如本申請所使用的,術(shù)語“客戶機物理存儲器”指代客戶機0S18可見的虛擬存儲器。
[0016]客戶機物理存儲器28可以在操作期間創(chuàng)建內(nèi)核頁30。當客戶機OS將其客戶機內(nèi)核裝載到內(nèi)存中時,該客戶機內(nèi)核被劃分成頁(例如,客戶機內(nèi)核頁30),其中一些頁包含內(nèi)核指令,其它頁包含內(nèi)核數(shù)據(jù)。每一個頁(其包括客戶機內(nèi)核頁30中的每一個在內(nèi))通常具有標準大小(例如,4kB),并與一個地址(例如,客戶機虛擬地址)相關(guān)聯(lián)??蛻魴C0S18通過頁表,將每一個頁的虛擬地址映射到相應(yīng)的“物理”地址。雖然客戶機存儲器(例如,客戶機虛擬存儲器26和客戶機物理存儲器28)是虛擬的,但客戶機0S18假定客戶機物理存儲器28是真實的或者“物理的”。但是,客戶機物理存儲器(例如,客戶機物理存儲器28)僅僅是管理器12為了維持針對(真實)主機物理地址(其還稱為機器地址)的正確映射所使用的抽象。
[0017]頁表是客戶機0S18為了存儲虛擬地址和“物理”地址之間的映射而使用的數(shù)據(jù)結(jié)構(gòu)。頁表包含若干頁表條目(PTE),每一個PTE將一個虛擬地址映射到相應(yīng)的“物理”地址(例如,從客戶機虛擬地址映射到客戶機物理地址或者從客戶機物理地址映射到機器地址)。PTE包括:與適當?shù)拇鎯ζ髟?例如,客戶機物理存儲器28或者機器存儲器24)中的頁有關(guān)的“物理”地址(例如,客戶機物理地址或者機器地址)和其它信息,例如,該頁是否存在、該頁是只讀的還是讀/寫的等等。
[0018]針對當前執(zhí)行的進程,管理器12可以使用影子頁表32,將客戶機物理存儲器28映射到機器存儲器24?!斑M程”是指令正被執(zhí)行的應(yīng)用(或者其一部分)的實例。影子頁表32包括與客戶機內(nèi)核頁30相對應(yīng)的頁表條目(PTE) 34。PTE34中的每一個包括:與裝載到機器存儲器24中的相應(yīng)內(nèi)核頁有關(guān)的機器地址和其它信息。根據(jù)一個示例性實施例,可以在影子頁表32中將PTE34標記成N0T_PRESENT(不存在)。在示例性實施例中,每當在客戶機0S18中創(chuàng)建任何新的內(nèi)核頁時,就可以缺省地將影子頁表32中的相應(yīng)PTE34標記成N0T_PRESENT。
[0019]管理器12中的rootkit防護模塊36可以將與客戶機內(nèi)核頁30的虛擬地址相對應(yīng)的機器頁面號(MFN)添加到散列(hash) 36中。在一個不例性實現(xiàn)中,MFN指代在機器存儲器24中為相應(yīng)的虛擬地址分配的頁號。頁錯誤處理機40可以有條件地允許或者拒絕對于適當?shù)目蛻魴C內(nèi)核頁30的訪問或者執(zhí)行。在管理器12上運行的域O (DOMO) 42具有訪問物理硬件16以及與在該系統(tǒng)上運行的其它客戶機進行交互的特權(quán)。D0M042可以具有鎖定模塊44,用于控制管理器12中的rootkit防護模塊36的某些鎖定特征。
[0020]為了描繪系統(tǒng)10的技術(shù)的目的,重要的是理解可能在給定的系統(tǒng)(例如,圖1中所示出的系統(tǒng))中出現(xiàn)的動作和安全問題??梢詫⑾旅娴幕拘畔⒁曌鳛橛糜趯Ρ竟_內(nèi)容進行適當?shù)亟忉尩幕A(chǔ)。認真地提供這樣的信息僅僅是為了解釋的目的,因此,這樣的信息無論如何不應(yīng)被解釋為限制本公開內(nèi)容及其潛在應(yīng)用的廣泛范圍。
[0021]典型的計算體系結(jié)構(gòu)支持4環(huán)(編號為O到3)的特權(quán)層級,以便保護系統(tǒng)代碼和數(shù)據(jù)不被低級特權(quán)代碼無意或者惡意覆蓋。環(huán)O是最高特權(quán)層級,而環(huán)3是最低特權(quán)層級。OS可以針對不同的進程使用不同的特權(quán)層級。例如,Windows OS針對進程和數(shù)據(jù)安全,使用兩個特權(quán)層級(環(huán)O和3)。用于諸如互聯(lián)網(wǎng)瀏覽器和微軟Word之類的應(yīng)用和很多Windows服務(wù)(例如,服務(wù)控制管理器、本地系統(tǒng)安全權(quán)限、Winlogon、會話管理器和RPC服務(wù)器等等)的代碼在環(huán)3中運行。
[0022]內(nèi)核級代碼在環(huán)O中運行,并在設(shè)備驅(qū)動器和內(nèi)核組件(例如,針對虛擬存儲器、高速緩存、輸入/輸出、對象、即插即用、硬件抽象層、圖形子系統(tǒng)、文件系統(tǒng)和網(wǎng)絡(luò)協(xié)議實現(xiàn)的管理器)。內(nèi)核將應(yīng)用連接到計算設(shè)備的硬件。通常,內(nèi)核包括可以根據(jù)OS進行變化的若干組件。例如,Linux OS可以包括諸如下面的組件:低級驅(qū)動器(例如,負責中央處理單元(CPU)、存儲器管理單元(MMU)和板上設(shè)備初始化的特定于架構(gòu)的驅(qū)動器);進程調(diào)度器(例如,負責將CPU時間切片公平地分配到不同的進程的組件);存儲器管理器(例如,負責向不同的進程分配存儲器和共享存儲器的組件);文件系統(tǒng)(例如,對底層文件系統(tǒng)進行抽象以便向用戶呈現(xiàn)統(tǒng)一文件系統(tǒng)接口的組件);網(wǎng)絡(luò)接口(例如,提供針對不同的聯(lián)網(wǎng)設(shè)備的訪問和控制的組件);設(shè)備驅(qū)動器(例如,高級驅(qū)動器)等等。應(yīng)用通常使用系統(tǒng)函數(shù)調(diào)用(例如,Win32API調(diào)用)來與內(nèi)核進行通信。
[0023]Rootkit改變(應(yīng)用中的進程的)正常執(zhí)行路徑的流程,以使其秘密行動成功實施。Rootkit是這樣一種軟件:其實現(xiàn)針對設(shè)備的持續(xù)的特權(quán)訪問,同時通過破壞標準OS功能來有效地隱藏它的存在。Rootkit通常修改系統(tǒng)函數(shù)調(diào)用所返回的數(shù)據(jù),以便隱藏它們的二進制文件、進程和注冊表條目。根據(jù)rootkit在什么地方運行以及它們掛鉤在系統(tǒng)中的什么區(qū)域,通常可以將rootkit分類成兩種類型中的一種:用戶模式的rootkit和內(nèi)核rootkit.,由于用戶模式的rootkit以用戶模式特權(quán)執(zhí)行,因此其相對容易地進行檢測和修復(fù)。另一方面,內(nèi)核rootkit以系統(tǒng)特權(quán)執(zhí)行,這使得檢測和修復(fù)它們更具有挑戰(zhàn)性。內(nèi)核rootkit通常通過安裝內(nèi)核模式設(shè)備驅(qū)動器,將它們的代碼裝載(即,注入)到內(nèi)核地址空間。例如,可以通過使用內(nèi)核模塊將內(nèi)核代碼注入到運行的內(nèi)核,或者通過向一塊未使用的內(nèi)核存儲器寫入新代碼,或者通過插入內(nèi)核模塊文件等等,來安裝內(nèi)核rootkit。一旦傳輸機制到位,內(nèi)核rootkit就可以破壞一個進程的正常執(zhí)行路徑的流程。
[0024]內(nèi)核rootkit是桌面安全中的顯著挑戰(zhàn)。內(nèi)核rootkit可以發(fā)起各種攻擊,例如,打開系統(tǒng)后門、偷竊隱私信息、關(guān)閉安全措施以及執(zhí)行其它惡意應(yīng)用。一般情況下,攻擊者在第一次獲得根級訪問之后,通過使用已知的漏洞或者通過獲得密碼(例如,借由通過社交工程破解加密),在計算機上安裝內(nèi)核rootkit。一旦內(nèi)核rootkit被安裝了,其就允許攻擊者通過繞開正常的認證和授權(quán)機制來掩蓋正在進行的入侵并維持針對該計算機的特權(quán)訪問。內(nèi)核rootkit可能是難于檢測的,這是由于內(nèi)核rootkit可能能夠破壞旨在發(fā)現(xiàn)它的軟件。檢測方法包括使用替代的、信任的操作系統(tǒng);基于行為的方法;簽名掃描;差別掃描;以及存儲器轉(zhuǎn)儲分析。刪除可能是復(fù)雜的,或者實際上是不可能的,特別是在內(nèi)核rootkit駐留在內(nèi)核之中的情況下更是如此。
[0025]在管理器環(huán)境下,攻擊的影響可能是很嚴重的。一個受感染的客戶機可能感染該主機設(shè)備上的所有其它客戶機。例如,攻擊者可以通過感染一個客戶機來獲得硬件上的管理員特權(quán),并且通過管理器環(huán)境從一個客戶機移到另一個客戶機。在管理器擁有成千個客戶機的情形下,這種客戶機到客戶機攻擊可能具有災(zāi)難性的結(jié)果。
[0026]管理器環(huán)境給出了用于在無需駐留于客戶機的防護軟件的情況下,提供內(nèi)核rootkit防護的機會。客戶機在虛擬化主機設(shè)備中的管理器之上運行。傳統(tǒng)的內(nèi)核rootkit防護機制可以安裝到在管理器上運行的客戶機的每一個實例上;但是,這些方法在存儲器、運行時間性能和管理方面導致了顯著開銷。理想情況下,內(nèi)核rootkit防護機制應(yīng)該位于(其正在保護的)內(nèi)核之外,這在非虛擬化環(huán)境下可能是不可能的。此外,在云(虛擬化)環(huán)境下運行客戶機的客戶可能喜歡云服務(wù)提供商透明地提供內(nèi)核rootkit防護。
[0027]在內(nèi)核rootkit防護的一種方法中,可以使用散列函數(shù)來計算磁盤上的代碼庫的數(shù)字簽名。該散列函數(shù)創(chuàng)建消息摘要,消息摘要是針對任意的數(shù)據(jù)塊計算的使得對該數(shù)據(jù)的改變也改變散列值的固定大小比特串。通過以定期的時間間隔重新計算磁盤上的代碼庫的消息摘要,并將其與受信任的指紋列表進行比較,可以檢測和監(jiān)測到系統(tǒng)的改變。但是,當前方法只檢查自從代碼的發(fā)布者上一次發(fā)布以來,該代碼是否被修改過。此外,內(nèi)核IOOtkit可以通過從存儲器進行裝載,而不是在磁盤上進行修改,來破壞該過程。其它rootkit防護解決方案可以是基于商業(yè)OS的。需要能夠提供無代理保護的用于虛擬化環(huán)境的軟件。
[0028]圖1所描繪的用于管理器環(huán)境中的內(nèi)核rootkit防護的系統(tǒng),可以解決這些問題以及其它。本公開內(nèi)容的實施例尋求大幅地提高現(xiàn)有技術(shù)的能力,以便允許更健壯的解決方案。在示例性實施例中,系統(tǒng)10的組件可以在管理器12之中,創(chuàng)建客戶機內(nèi)核頁30的軟白名單(例如,散列38)。該軟白名單包括與客戶機0S18中的每一個客戶機內(nèi)核頁30相對應(yīng)的條目。在示例性實施例中,該軟白名單旨在包括批準的客戶機內(nèi)核頁的列表,其中所述批準的客戶機內(nèi)核頁中的每一個通過例如相應(yīng)的機器頁面號(MFN)、而不是整個頁內(nèi)容的校驗和來表示。在示例性實施例中,該軟白名單(即,散列38)包括與客戶機內(nèi)核頁30相對應(yīng)的MFN的散列。
[0029]根據(jù)一個示例性實施例,可以在客戶機0S18已經(jīng)引導并且已經(jīng)裝載了其內(nèi)核組件(例如,進程調(diào)度器、存儲器管理器、文件系統(tǒng)等等)之后,創(chuàng)建該軟白名單。如本申請所使用的,術(shù)語“引導”指代引導序列,其是當打開電源時計算機執(zhí)行的一組初始操作。其后,系統(tǒng)10可以確保不執(zhí)行來自于不存在于該軟白名單中的任何新內(nèi)核頁的代碼。根據(jù)另一個示例性實施例,可以在客戶機0S18已經(jīng)引導,并已經(jīng)裝載了其內(nèi)核組件之前,創(chuàng)建該軟白名單。內(nèi)核頁30可以處于分頁池和非分頁池之中(這是由于所有的內(nèi)核驅(qū)動器都裝載在這些頁之中)??梢詫⒎猪摮睾头欠猪摮胤秶畠?nèi)的每一個錯誤虛擬地址的頁起始地址存儲在管理器12中的散列表(例如,散列38)里。
[0030]例如,系統(tǒng)10可以防護零日威脅,這是因為其是基于白名單的。在示例性實施例中,系統(tǒng)10可以由公有云基礎(chǔ)設(shè)施提供商和使用私有云的公司來實現(xiàn)。系統(tǒng)10可以提供透明的安全層。對于不頻繁地改變其基本OS配置而只是改變在基本OS配置上存儲的數(shù)據(jù)的客戶(例如,Web主機服務(wù)提供商)來說,該解決方案可能是特別有用的。
[0031]轉(zhuǎn)到管理器環(huán)境下的存儲器管理,客戶機OS(例如,客戶機0S18)向應(yīng)用(例如,應(yīng)用20)提供客戶機虛擬存儲器(例如,客戶機虛擬存儲器26)中的虛擬地址空間布局??梢詫⒖蛻魴C虛擬存儲器的地址空間劃分成用戶空間(其中用戶空間是應(yīng)用(例如,應(yīng)用20)可訪問的)和系統(tǒng)空間(其中系統(tǒng)空間包括引導驅(qū)動器、進程頁表、系統(tǒng)高速緩存、分頁池和非分頁池等等)。通常,系統(tǒng)頁的地址位置是硬編碼的(或者是先驗已知的)。例如,可以將4GB的客戶機虛擬存儲器分割成3GB的用戶空間(其地址范圍從OxBFFFFFFF到0x00000000)和系統(tǒng)空間(其地址范圍從OxFFFFFFFF到OxCOOOOOOO)。
[0032]客戶機OS通過頁表來處理虛擬地址到物理地址的映射。雖然虛擬地址空間(例如,客戶機虛擬存儲器26)通常是連續(xù)的,但是這些地址可能被映射到物理地址空間(例如,客戶機物理存儲器28)中的非連續(xù)塊。將虛擬到物理映射信息放置在稱為頁表條目(PTE)的結(jié)構(gòu)的頁表中。PTE的格式可以隨著OS發(fā)生變化,例如,Linux OS可以指定一種格式,而Windows XP OS可以指定另一種格式。一般地,PTE通常包含一個位來指示PTE所引用的頁是否存在(或者有效)。例如,當一個進程開始裝載到機器存儲器(例如,機器存儲器24)中時,客戶機OS假定頁裝載到客戶機物理存儲器(例如,客戶機物理存儲器28)中,并生成相應(yīng)的頁表。將針對被裝載到機器存儲器的頁的存在位設(shè)置為O (其指示Ν0Τ_PRESENT),直到將所有頁都裝載到存儲器中為止。一旦裝載了所有頁,則可以將針對這些頁的存在位在各自的PTE中設(shè)置為I (其指示PRESENT)。在裝載期間,如果嘗試訪問被標記為N0T_PRESENT的頁,則可以產(chǎn)生頁錯誤。[0033]在示例性實施例中,客戶機14所維持的任何頁表可以具有相應(yīng)的影子頁表(例如,影子頁表32),其是由管理器12來生成和維持的。客戶機0S18無權(quán)訪問影子頁表32。在引導時,客戶機0S18可以將其內(nèi)核從計算機的硬盤裝載到存儲器中(例如,以客戶機內(nèi)核頁30的形式)。Rootkit防護模塊36可以在影子頁表32中將與客戶機內(nèi)核頁30相對應(yīng)的PTE34標記成N0T_PRESENT。在一個示例中,rootkit防護模塊36可以通過讀取頁的虛擬地址,來確定該頁是客戶機內(nèi)核頁30中的一個。如果該虛擬地址位于特定的范圍(例如,預(yù)定的范圍)之內(nèi),則該頁可以是客戶機內(nèi)核頁30中的一個,并且相應(yīng)的PTE34可以被標記成 N0T_PRESENT。
[0034]當發(fā)生頁錯誤時,控制從執(zhí)行引起該頁錯誤的指令的處理器(例如,處理器22)轉(zhuǎn)移到管理器(例如,管理器12)。管理器的頁錯誤處理機(例如,頁錯誤處理機40)可以確定指令指針和出錯地址,例如以便判斷該頁錯誤是指令頁錯誤還是數(shù)據(jù)頁錯誤。例如,如果指令指針(即,指向處理器接下來將嘗試執(zhí)行的存儲器地址的指針)指向出錯地址,則該頁錯誤是指令頁錯誤。
[0035]轉(zhuǎn)到圖1的基礎(chǔ)設(shè)施,管理器12可以運行客戶機OS的多個實例。管理器12可以是服務(wù)器、防火墻、防病毒解決方案或者更一般地是計算機的一部分。在一個示例性實現(xiàn)中,管理器12是Xen單元,Xen單元在裸硬件上運行并提供在相同的硬件上同時地運行OS的多個實例的能力。典型的Xen設(shè)置可以涉及Xen在多個OS之下運行,其中應(yīng)用位于與一組客戶機(例如客戶機14)相關(guān)聯(lián)的OS之上。該完整的配置可以在服務(wù)器(或者某個其它網(wǎng)絡(luò)設(shè)施)中提供。在一個示例性實施例中,客戶機14可能正在運行與D0M042相關(guān)聯(lián)的OS。應(yīng)當注意,Xen實現(xiàn)僅僅表示本公開內(nèi)容可以應(yīng)用的一個可能示例。任意數(shù)量的其它管理器可以類似地從本申請所討論的廣泛教導中受益。
[0036]用于管理管理器12的控制工具可以在D0M042上運行。D0M042可以提供統(tǒng)一的接口,來在管理器12上管理客戶機(例如,客戶機14)。D0M042可以提供一種供管理員配置管理器12的方式,包括:管理存儲、控制客戶機行為的方面、建立虛擬網(wǎng)絡(luò)、配置管理器和一個或多個客戶機、以及對客戶機進行創(chuàng)建、刪除、關(guān)閉、引導等等。例如,這種類型的設(shè)置在服務(wù)器運行XeruXen進而擁有客戶機的多個實例的數(shù)據(jù)中心中可以是流行的。D0M042可以包括修改的Linux內(nèi)核,并且可以具有用于訪問物理I/O資源、以及與在該系統(tǒng)上運行的其它虛擬機進行交互的特殊權(quán)利。通常,D0M042是在系統(tǒng)引導時所發(fā)起的第一域,并且其可以用于創(chuàng)建和配置所有其它常規(guī)的客戶機(例如,客戶機14)。管理器環(huán)境可能要求D0M042在其它客戶機能夠被啟動之前進行運行。
[0037]轉(zhuǎn)到圖2,圖2的簡化流程圖示出了可以與本公開內(nèi)容的實施例相關(guān)聯(lián)的示例性操作步驟。操作100可以開始于102,此時激活D0M042。在104,鎖定模塊44可以使能域創(chuàng)建期間的鎖定功能(其與從客戶機上下文到管理器上下文的VMEXIT轉(zhuǎn)換相關(guān)聯(lián))。在106,可以在管理器12中,設(shè)置特定于域的數(shù)據(jù)結(jié)構(gòu)中的鎖定功能比特。在108,可以啟動管理器虛擬機(HVM)(即,客戶機14)。在110,在VMEXIT到管理器12的情況下,客戶機0S18可以創(chuàng)建針對客戶機內(nèi)核頁30的頁表條目(PTE)。在112,rootkit防護模塊36可以在影子頁表32中,創(chuàng)建針對客戶機內(nèi)核頁30的PTE34。在114,rootkit防護模塊36可以在由管理器12所維持的影子頁表32中,將客戶機內(nèi)核頁30標記成N0T_PRESENT。此外,在116,可以連同與處理器22相關(guān)聯(lián)的虛擬機指令(VMRUN) —起來提供該操作。[0038]如果已經(jīng)使能了 rootkit防護(例如,客戶機0S18已經(jīng)引導并裝載了其內(nèi)核組件),則頁錯誤處理機40可以執(zhí)行諸如下面的動作:遍歷管理器12中的影子頁表32,以及向散列38添加虛擬地址(例如,其與先前沒有訪問的頁相對應(yīng))。在一個示例性實施例中,在客戶機18完成引導之后,這些動作發(fā)生一次,隨后系統(tǒng)10可以視作為被鎖定。
[0039]在120,客戶機0S14中的應(yīng)用20可以嘗試訪問客戶機內(nèi)核頁30。嘗試訪問客戶機內(nèi)核頁30,可能造成122中的頁錯誤(這是由于客戶機內(nèi)核頁30已被標記成Ν0Τ_PRESENT)。應(yīng)當注意,如果沒有使能rootkit防護(例如,客戶機0S18尚未引導和裝載其內(nèi)核組件),并且如果頁錯誤位于分頁池范圍和非分頁池范圍之外,則頁錯誤處理機40可以簡單地修復(fù)該頁錯誤,并將針對每一個出錯虛擬地址(例如,在分頁池范圍和非分頁池范圍中)的頁起始地址存儲在散列38中。可以允許對位于分頁池和非分頁池范圍之外的這些地址進行訪問,這是由于通常將內(nèi)核驅(qū)動器裝載在分頁池范圍和非分頁池范圍之內(nèi)。
[0040]當在122中遭遇到頁錯誤時,在124中,判斷該頁錯誤是指令頁錯誤還是數(shù)據(jù)頁錯誤。如果該頁錯誤是數(shù)據(jù)頁錯誤,則搜索軟白名單(即散列38)以查找與出錯虛擬地址相對應(yīng)的MFN散列。如果在散列38中存在該出錯虛擬地址的MFN,則與該頁錯誤相關(guān)聯(lián)的頁是合法的。因此,在126,頁錯誤處理機40可以永久地修復(fù)該頁錯誤,以便允許該頁的未來訪問/執(zhí)行。另一方面,如果在散列38中不存在與該出錯虛擬地址相對應(yīng)的MFN,則該內(nèi)核頁是新的,并且向其進行寫入的任何嘗試可能包括代碼或數(shù)據(jù)。因此,在126,頁錯誤處理機40可以永久地修復(fù)該頁錯誤,將該頁標記成NX (不執(zhí)行)。這可以確保發(fā)生最少的頁錯誤,同時防止任何新的內(nèi)核頁被訪問或者執(zhí)行。其它頁可以繼續(xù)是可讀/寫的(在不存在任何頁錯誤的情況下),直到嘗試執(zhí)行該頁為止。在128,可以允許應(yīng)用20訪問影子頁表32,并且該過程結(jié)束于130。
[0041]如果在124中確定該頁錯誤是指令錯誤,則頁錯誤處理機40可以在132中檢查在散列38中是否存在針對該出錯虛擬地址的MFN。如果存在,則在134中頁錯誤處理機40可以永久地修復(fù)該頁錯誤(例如,允許未來訪問/執(zhí)行),并將該頁標記成只讀,刪除任何NX并允許訪問/執(zhí)行。如果在散列38中不存在該頁,則其可能意味著該頁是新內(nèi)核頁,并且在136中,頁錯誤處理機40可以拒絕執(zhí)行。可以以下面幾種方式來實現(xiàn)拒絕執(zhí)行:(i)不修復(fù)頁錯誤,造成客戶機14中的出錯線程無限地循環(huán);(ii)不修復(fù)頁錯誤,并在客戶機14中注入異常。該異??梢员怀鲥e進程捕獲。如果該進程不處理該異常,則其可以被殺掉;
(iii)可以修復(fù)頁錯誤,但可以使與該出錯頁相關(guān)聯(lián)的影子PTE34指向制作的頁而不是期望的頁。該制作的頁可以配置有造成客戶機14崩潰,或者造成將無害地執(zhí)行無操作被執(zhí)行(NOP)指令的代碼。其它示例是時客戶機14“藍屏”、插入造成優(yōu)雅地退出的偽頁等等。該過程可以在138處結(jié)束。
[0042]可以在各個位置處(例如,在rootkit防護模塊36中),提供用于內(nèi)核rootkit防護(以及禁止執(zhí)行危險代碼)的軟件。在一個示例性實現(xiàn)中,該軟件駐留在尋求被保護以防止安全攻擊(或者防止不想要的、或者未授權(quán)的對可寫入存儲區(qū)域的操作)的計算機中。在更詳細的配置中,該軟件專門駐留在管理器的安全層中,其可以包括圖1所描述的組件(或者與它們進行交互)。在其它實施例中,可以從web服務(wù)器接收或者下載軟件(例如,在針對單獨的設(shè)備、單獨的虛擬機、客戶機、管理器、服務(wù)器等等,購買單獨的終端用戶許可的背景下),以便提供該內(nèi)核rootkit防護。[0043]在其它示例中,內(nèi)核rootkit防護功能可以涉及專有單元(例如,作為防病毒解決方案的一部分),其中這些專有單元可以在這些標識的單元中提供(或者接近這些標識的單元),或者在任何其它設(shè)備、服務(wù)器、網(wǎng)絡(luò)設(shè)施、控制臺、防火墻、交換機、信息技術(shù)(IT)設(shè)備等等中提供,或者被提供成互補解決方案(例如,結(jié)合防火墻),或者在網(wǎng)絡(luò)中的某個地方進行設(shè)置。如本說明書中所使用的,術(shù)語‘計算機’意味著涵蓋:用于在安全環(huán)境下,影響或者處理電子信息的這些可能單元(VMM、管理器、Xen設(shè)備、虛擬設(shè)備、網(wǎng)絡(luò)設(shè)備、路由器、交換機、網(wǎng)關(guān)、處理器、服務(wù)器、負載平衡器、防火墻或者任何其它適當?shù)脑O(shè)備、組件、單元或?qū)ο?。此外,這種計算機可以包括:有助于實現(xiàn)其操作的任何適當硬件、軟件、組件、模塊、接口或者對象。這可以包括:允許有效的防護內(nèi)核rootkit的適當算法和通信協(xié)議。此外,可以以任何適當?shù)姆绞?,對?nèi)核rootkit防護功能進行合并。沿著類似的設(shè)計替換方案,可以以各種可能的配置,對各個附圖中的所描繪模塊和組件里的任何一個進行組合:所有這些都清晰地落入本說明書的廣泛范圍之內(nèi)。
[0044]這些單元(例如,計算機、服務(wù)器、網(wǎng)絡(luò)設(shè)施、防火墻、管理器、任何其它類型的虛擬單元等等)中的任何一個,可以包括能夠執(zhí)行軟件或者算法以便執(zhí)行如本說明書所討論的內(nèi)核rootkit防護動作的處理器。另外,在適當時病基于特定的需求,這些單元(例如,計算機、服務(wù)器、網(wǎng)絡(luò)設(shè)施、防火墻、管理器、任何其它類型的虛擬單元等等)中的每一個,可以包括存儲器單元(隨機存取存儲器(RAM)、ROM、EPROM、EEPROM、ASIC等等)、軟件、硬件,或者位于任何其它適當?shù)慕M件、設(shè)備、單元或者對象中?;谔囟ǖ男枨蠛蛯崿F(xiàn),可以在任何數(shù)據(jù)庫、寄存器、表、高速緩存、隊列、控制列表或者存儲結(jié)構(gòu)中提供在系統(tǒng)10中被跟蹤、發(fā)送、接收或者存儲的信息,所有這些可以用任何適當?shù)臅r間表來引用。
[0045]這些單元和/或模塊可以彼此之間進行協(xié)作,以便結(jié)合管理器環(huán)境中的內(nèi)核rootkit防護來執(zhí)行這些動作,如本申請所討論的。在其它實施例中,可以將這些特征提供在這些單元之外,包括在其它設(shè)備中以實現(xiàn)這些意圖的功能,或者以任何適當?shù)姆绞竭M行合并。例如,可以刪除或者合并與各個單元相關(guān)聯(lián)的處理器中的一些,使得單一處理器和單一存儲單元負責某些動作。通常來講,附圖中所描述的排列就其表示性來說是更加具有邏輯性的,而物理體系結(jié)構(gòu)可以包括這些單元的各種置換、組合和/或混合。
[0046]本申請所討論的存儲器術(shù)語中的任何一個(例如,客戶機內(nèi)核頁30、影子頁表32、機器存儲器24、客戶機虛擬存儲器26、客戶機物理存儲器28、散列38等等),應(yīng)當被解釋成涵蓋在廣義術(shù)語‘存儲器單元’之內(nèi)。類似地,在本說明書中所描述的潛在處理單元、模塊和機器中的任何一個,應(yīng)當被解釋成涵蓋在廣義術(shù)語‘處理器’之內(nèi)。計算機、網(wǎng)絡(luò)設(shè)施、虛擬單元等等中的每一個也可以包括:用于在管理器環(huán)境中接收、發(fā)送和/或傳輸數(shù)據(jù)或者信息的適當接口。
[0047]處理器可以執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令,以實現(xiàn)本申請在該說明書中所詳細描述的操作。在一個示例中,處理器(如附圖中所示出的)可以將一個單元或者物品(例如,數(shù)據(jù))從一種狀態(tài)或者事物轉(zhuǎn)換成另一種狀態(tài)或者事物。在另一個示例中,本申請所概述的動作可以用固定邏輯或者可編程邏輯(例如,由處理器執(zhí)行的軟件/計算機指令)來實現(xiàn),并且本申請所標識的單元可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(FPGA))、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程ROM(EEPROM)或者包括數(shù)字邏輯、軟件、代碼、電子指令或者其任意組合的ASIC。[0048]在某些示例性實現(xiàn)中,本申請所概述的內(nèi)核rootkit防護功能可以通過在一個或多個有形、非臨時性介質(zhì)中編碼的邏輯(例如,在專用集成電路(ASIC)、數(shù)字信號處理器(DSP)指令、將由處理器或者其它類似機器執(zhí)行的軟件(其潛在地包含目標代碼和源代碼)等等中提供的嵌入式邏輯)來實現(xiàn)。在這些實例中的一些中,存儲器單元(如附圖中所示)可以存儲用于本申請所描述的操作的數(shù)據(jù)。這包括能夠存儲軟件、邏輯、代碼或者處理器指令的存儲器單元,其中這些軟件、邏輯、代碼或者處理器指令被執(zhí)行以實現(xiàn)本說明書中所描述的動作。在各個實施例中,這些單元中的一些或者全部包括:能夠協(xié)調(diào)、管理或者協(xié)作以便實現(xiàn)如本申請所概述的操作的軟件(或者往復(fù)式軟件)。這些單元中的一個或多個可以包括有助于實現(xiàn)其操作的任何適當?shù)乃惴ā⒂布?、軟件、組件、模塊、接口或者對象。
[0049]應(yīng)當注意,在本申請?zhí)峁┑谋姸嗍纠?,通過兩個、三個、四個或者更多的網(wǎng)絡(luò)單元和模塊來描述交互。但是,這只是用于清楚說明和舉例說明目的。應(yīng)當理解的是,可以以任何適當?shù)姆绞綄ο到y(tǒng)進行合并。沿著類似的設(shè)計替換方案,可以將圖1中的所描繪的模塊、組件和單元中的任何一個以各種可能的配置進行組合,所有這些都清晰地落入本說明書的廣泛范圍之內(nèi)。在某些情況下,通過僅僅引用有限數(shù)量的單元或者組件,來描述一組給定的流程的功能中的一個或多個是更容易的。應(yīng)當理解的是,圖1的系統(tǒng)(以及其教導)可容易地擴展,并且能適應(yīng)很大數(shù)量的組件以及更復(fù)雜/高深的排列和配置。因此,所提供的示例不應(yīng)當限制系統(tǒng)10的范圍,或者約束系統(tǒng)10的廣義教導,這是因為這些示例可以潛在地應(yīng)用于各種其它架構(gòu)。
[0050]同樣重要的是要注意,參照前述的附圖所描述的操作僅僅描繪了可以由該系統(tǒng)執(zhí)行、或者在該系統(tǒng)中執(zhí)行的可能場景中的一些。在適當時,可以對這些操作中的一些進行刪除或者去除,或者可以對這些步驟進行相當?shù)男薷幕蛘吒淖?,而不脫離所討論的構(gòu)思的范圍。此外,可以對這些操作的時序進行相當?shù)母淖儯匀猾@得本公開內(nèi)容中所教示的結(jié)果。提供前述的操作流程,只是用于舉例和討論目的。本系統(tǒng)所提供的實質(zhì)的靈活性在于:可以在不脫離所討論的構(gòu)思的教導的基礎(chǔ)上,提供任何適當?shù)呐帕?、年表、配置和定時機制。
【權(quán)利要求】
1.一種方法,包括: 創(chuàng)建軟白名單,所述軟白名單具有與管理器環(huán)境中的客戶機操作系統(tǒng)(OS)中的每一個客戶機內(nèi)核頁相對應(yīng)的條目,所述管理器環(huán)境包括管理器; 當針對客戶機內(nèi)核頁進行訪問嘗試時,產(chǎn)生頁錯誤; 如果所述客戶機內(nèi)核頁與所述軟白名單中的所述條目中的一個條目相對應(yīng),則修復(fù)所述頁錯誤,以便允許訪問和執(zhí)行;以及 如果所述客戶機內(nèi)核頁不與所述軟白名單中的所述條目中的任何一個條目相對應(yīng),則拒絕執(zhí)行。
2.根據(jù)權(quán)利要求1所述的方法,還包括: 如果所述頁錯誤是指令頁錯誤,并且所述客戶機內(nèi)核頁與所述軟白名單中的所述條目中的一個條目相對應(yīng),則將所述客戶機內(nèi)核頁標記成只讀的和可執(zhí)行的。
3.根據(jù)權(quán)利要求1所述的方法,還包括: 如果所述頁錯誤是數(shù)據(jù)頁錯誤,并且所述客戶機內(nèi)核頁不與所述軟白名單中的所述條目中的任何一個條目相對應(yīng),則: 修復(fù)所述頁錯誤;以及 將所述客戶機內(nèi)核頁標記成不可執(zhí)行的。
4.根據(jù)權(quán)利要求1所述的方法,其中,創(chuàng)建所述軟白名單包括:將與每一個客戶機內(nèi)核頁的虛擬地址相對應(yīng)的機器頁面號(MFN)添加到散列中。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 在所述管理器的影子頁表中,將與每一個客戶機內(nèi)核頁相對應(yīng)的頁表條目(PTE)標記成 NOT_PRESENT。
6.根據(jù)權(quán)利要求5所述的方法,其中,拒絕執(zhí)行包括以下中的一個: 使所述客戶機OS無限地循環(huán); 在所述客戶機OS中注入異常;或者 修復(fù)所述頁錯誤,并將所述影子頁表中的相應(yīng)PTE指向制作的頁而不是所述客戶機內(nèi)核頁,其中,所述制作的頁包括代碼,所述代碼使所述客戶機OS崩潰或者引起一組無害地執(zhí)行的無操作(NOP)指令。
7.根據(jù)權(quán)利要求1所述的方法,其中,創(chuàng)建所述軟白名單是在所述客戶機OS在引導時已經(jīng)基本上裝載了其所有內(nèi)核組件之后執(zhí)行的。
8.根據(jù)權(quán)利要求1所述的方法,其中,創(chuàng)建所述軟白名單是在所述客戶機OS已經(jīng)基本上裝載了其所有內(nèi)核組件之前執(zhí)行的,并且每一個客戶機內(nèi)核頁來自于分頁池范圍或者非分頁池范圍。
9.根據(jù)權(quán)利要求1所述的方法,還包括: 在域創(chuàng)建期間,在所述管理器中設(shè)置鎖定功能位,以使能rootkit防護。
10.一種裝置,包括: 存儲器;和 處理器;以及 管理器,使得所述裝置被配置為: 創(chuàng)建軟白名單,所述軟白名單具有與管理器環(huán)境中的客戶機操作系統(tǒng)(OS)中的每一個客戶機內(nèi)核頁相對應(yīng)的條目,所述管理器環(huán)境包括管理器; 當針對客戶機內(nèi)核頁進行訪問嘗試時,產(chǎn)生頁錯誤; 如果所述客戶機內(nèi)核頁與所述軟白名單中的所述條目中的一個條目相對應(yīng),則修復(fù)所述頁錯誤,以便允許訪問和執(zhí)行;以及 如果所述客戶機內(nèi)核頁不與所述軟白名單中的所述條目中的任何一個條目相對應(yīng),則拒絕執(zhí)行。
11.根據(jù)權(quán)利要求10所述的裝置,其中,所述裝置還被配置為: 如果所述頁錯誤是指令頁錯誤,并且所述客戶機內(nèi)核頁與所述軟白名單中的所述條目中的一個條目相對應(yīng),則將所述客戶機內(nèi)核頁標記成只讀的和可執(zhí)行的。
12.根據(jù)權(quán)利要求10所述的裝置,其中,所述裝置還被配置為: 如果所述頁錯誤是數(shù)據(jù)頁錯誤,并且所述客戶機內(nèi)核頁不與所述軟白名單中的所述條目中的任何一個條目相對應(yīng),則: 修復(fù)所述頁錯誤;以及 將所述客戶機內(nèi)核頁標記成不可執(zhí)行的。
13.根據(jù)權(quán)利要求10所述的裝置,其中,創(chuàng)建所述軟白名單包括:將與每一個客戶機內(nèi)核頁的虛擬地址相對 應(yīng)的機器頁面號(MFN)添加到散列中。
14.根據(jù)權(quán)利要求10所述的裝置,其中,拒絕執(zhí)行包括以下中的一個: 使所述客戶機OS無限地循環(huán); 在所述客戶機OS中注入異常;或者 修復(fù)所述頁錯誤,并將所述管理器的影子頁表中的相應(yīng)PTE指向制作的頁而不是所述客戶機內(nèi)核頁,其中,所述制作的頁包括代碼,所述代碼使所述客戶機OS崩潰或者引起一組無害地執(zhí)行的無操作(NOP)指令。
15.一種編碼在非臨時性介質(zhì)中的邏輯,所述邏輯包括用于執(zhí)行的代碼并且在被處理器執(zhí)行時用于執(zhí)行包括以下的操作: 創(chuàng)建軟白名單,所述軟白名單具有與管理器環(huán)境中的客戶機操作系統(tǒng)(OS)中的每一個客戶機內(nèi)核頁相對應(yīng)的條目,所述管理器環(huán)境包括管理器; 當針對客戶機內(nèi)核頁進行訪問嘗試時,產(chǎn)生頁錯誤; 如果所述客戶機內(nèi)核頁與所述軟白名單中的所述條目中的一個條目相對應(yīng),則修復(fù)所述頁錯誤,以便允許訪問和執(zhí)行;以及 如果所述客戶機內(nèi)核頁不與所述軟白名單中的所述條目中的任何一個條目相對應(yīng),則拒絕執(zhí)行。
16.根據(jù)權(quán)利要求15所述的邏輯,還包括: 如果所述頁錯誤是指令頁錯誤,并且所述客戶機內(nèi)核頁與所述軟白名單中的所述條目中的一個條目相對應(yīng),則將所述客戶機內(nèi)核頁標記成只讀的和可執(zhí)行的。
17.根據(jù)權(quán)利要求15所述的邏輯,還包括: 如果所述頁錯誤是數(shù)據(jù)頁錯誤,并且所述客戶機內(nèi)核頁不與所述軟白名單中的所述條目中的任何一個條目相對應(yīng),則: 修復(fù)所述頁錯誤;以及 將所述客戶機內(nèi)核頁標記成不可執(zhí)行的。
18.根據(jù)權(quán)利要求15所述的邏輯,其中,創(chuàng)建所述軟白名單包括:將與每一個客戶機內(nèi)核頁的虛擬地址相對應(yīng)的機器頁面號(MFN)添加到散列中。
19.根據(jù)權(quán)利要求15所述的邏輯,還包括: 在所述管理器的影子頁表中,將與每一個客戶機內(nèi)核頁相對應(yīng)的PTE標記成NOT_PRESENTο
20.根據(jù)權(quán)利要求19所述的邏輯,其中,拒絕執(zhí)行包括以下中的一個: 使所述客戶機OS無限地循環(huán); 在所述客戶機OS中注入異常;或者 修復(fù)所述頁錯誤,并將所述影子頁表中的相應(yīng)PTE指向制作的頁而不是所述客戶機內(nèi)核頁,其中,所述制作的頁包括代碼,所述代碼使所述客戶機OS崩潰或者引起一組無害地執(zhí)行的無操作(NOP)指令。
【文檔編號】G06F21/55GK103907101SQ201280053257
【公開日】2014年7月2日 申請日期:2012年9月14日 優(yōu)先權(quán)日:2011年10月13日
【發(fā)明者】A·丹格, P·莫欣德爾, V·斯里瓦斯塔瓦 申請人:邁克菲公司