国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于在系統(tǒng)管理程序環(huán)境中進(jìn)行內(nèi)核rootkit保護(hù)的系統(tǒng)和方法

      文檔序號(hào):6496795閱讀:213來源:國知局
      用于在系統(tǒng)管理程序環(huán)境中進(jìn)行內(nèi)核rootkit保護(hù)的系統(tǒng)和方法
      【專利摘要】用于在系統(tǒng)管理程序環(huán)境中進(jìn)行ROOTKIT保護(hù)的系統(tǒng)和方法包括用于創(chuàng)建具有與系統(tǒng)管理程序環(huán)境中的來賓操作系統(tǒng)的每一個(gè)來賓內(nèi)核頁相對(duì)應(yīng)的條目的軟白名單的模塊,其中每個(gè)條目是對(duì)應(yīng)的來賓內(nèi)核頁的重復(fù)頁,當(dāng)進(jìn)程試圖訪問來賓內(nèi)核頁時(shí)生成頁錯(cuò)誤,以及將該進(jìn)程重定向到對(duì)應(yīng)的重復(fù)頁。如果頁錯(cuò)誤是數(shù)據(jù)頁錯(cuò)誤,則該方法包括修復(fù)頁錯(cuò)誤,并將對(duì)應(yīng)于來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為非可執(zhí)行的和可寫入的。如果頁錯(cuò)誤是指令頁錯(cuò)誤,則該方法包括將對(duì)應(yīng)于來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為只讀。通過改變系統(tǒng)管理程序的陰影頁表中的機(jī)器頁幀號(hào)以指向?qū)?yīng)的重復(fù)頁,來重新定向。
      【專利說明】用于在系統(tǒng)管理程序環(huán)境中進(jìn)行內(nèi)核ROOTKIT保護(hù)的系統(tǒng)和方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明一般涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,更具體而言,涉及用于在系統(tǒng)管理程序(hypervisor)環(huán)境中進(jìn)行內(nèi)核rootkit保護(hù)的系統(tǒng)和方法。
      [0002]背景
      [0003]計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域在當(dāng)今社會(huì)變得越來越重要并復(fù)雜化。為幾乎每一企業(yè)或組織配置了計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境,通常帶有多個(gè)互連的計(jì)算機(jī)(例如,最終用戶計(jì)算機(jī)、膝上型計(jì)算機(jī)、服務(wù)器、打印設(shè)備等等)。此外,云服務(wù)提供商(及運(yùn)行多個(gè)應(yīng)用程序和操作系統(tǒng)的其他組織)可以使用系統(tǒng)管理程序技術(shù)來同時(shí)在主機(jī)設(shè)備上運(yùn)行各種不同的來賓(guest)操作系統(tǒng)。系統(tǒng)管理程序是允許多個(gè)操作系統(tǒng)同時(shí)在主機(jī)計(jì)算機(jī)上運(yùn)行的計(jì)算機(jī)軟件/硬件平臺(tái)虛擬化軟件。安全威脅會(huì)在系統(tǒng)管理程序環(huán)境的外部和內(nèi)部產(chǎn)生。系統(tǒng)管理程序環(huán)境中的這些威脅會(huì)給IT管理員帶來進(jìn)一步的挑戰(zhàn)。
      [0004]附圖簡(jiǎn)述
      [0005]為提供對(duì)本發(fā)明以及其特征和優(yōu)點(diǎn)的比較完整的理解,將參考與附圖一起進(jìn)行的下面的描述,其中,相同參考編號(hào)表示相同部件,其中:
      [0006]圖1是示出了根據(jù)示例實(shí)施例的用于在系統(tǒng)管理程序環(huán)境中進(jìn)行內(nèi)核rootkit保護(hù)的系統(tǒng)的組件的簡(jiǎn)化框圖;以及
      [0007]圖2是可以與本發(fā)明的實(shí)施例相關(guān)聯(lián)的示例操作步驟的簡(jiǎn)化流程圖。
      [0008]示例實(shí)施例的詳細(xì)描述
      [0009]概覽
      [0010]在示例實(shí)施例中,系統(tǒng)和方法包括用于創(chuàng)建具有對(duì)應(yīng)于系統(tǒng)管理程序環(huán)境中的來賓操作系統(tǒng)的每一個(gè)來賓內(nèi)核頁的條目的軟白名單的模塊,其中,每一個(gè)條目都是對(duì)應(yīng)的來賓內(nèi)核頁的重復(fù)頁,當(dāng)一進(jìn)程試圖訪問來賓內(nèi)核頁時(shí)生成頁錯(cuò)誤,以及將該進(jìn)程重定向到對(duì)應(yīng)于來賓內(nèi)核頁的重復(fù)頁。如果頁錯(cuò)誤是數(shù)據(jù)頁錯(cuò)誤,則該方法包括修復(fù)頁錯(cuò)誤,并將對(duì)應(yīng)于來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為非可執(zhí)行的和可寫入的。如果頁錯(cuò)誤是指令頁錯(cuò)誤,則該方法包括將對(duì)應(yīng)于來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為只讀。
      [0011 ] 在示例實(shí)施例中,重新定向進(jìn)程包括將來賓內(nèi)核頁的虛擬地址指向?qū)?yīng)于來賓內(nèi)核頁的重復(fù)頁的機(jī)器頁幀號(hào)。其他實(shí)施例包括在系統(tǒng)管理程序的陰影頁表中將每一個(gè)來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為N0T_PRESENT (不_存在)。其他實(shí)施例可以包括在域創(chuàng)建過程中在系統(tǒng)管理程序中設(shè)置鎖合(lockdown)特征比特,以啟用rootkit保護(hù)。
      [0012]在某些實(shí)施例中,在來賓OS在引導(dǎo)時(shí)加載內(nèi)核組件之后創(chuàng)建軟白名單??梢酝ㄟ^漫步(walk)系統(tǒng)管理程序的陰影頁表并將每一個(gè)來賓內(nèi)核頁的虛擬地址映射到對(duì)應(yīng)的重復(fù)頁的機(jī)器頁幀號(hào)來創(chuàng)建軟白名單。在又一些其他實(shí)施例中如果,如果來賓OS沒有加載至少某些內(nèi)核組件,則該方法包括將每一個(gè)來賓內(nèi)核頁的虛擬基地址映射到對(duì)應(yīng)的重復(fù)頁的機(jī)器頁幀號(hào)及其他特征。
      [0013]示例實(shí)施例[0014]圖1是示出了用于在系統(tǒng)管理程序環(huán)境中進(jìn)行內(nèi)核rootkit保護(hù)的系統(tǒng)10的示例實(shí)現(xiàn)的簡(jiǎn)化框圖。如此處所使用的,“系統(tǒng)管理程序”是可使一個(gè)或多個(gè)操作系統(tǒng)(OS)(被稱為來賓OS)在主機(jī)設(shè)備(例如,計(jì)算機(jī))上同時(shí)運(yùn)行的硬件虛擬化實(shí)體。虛擬化可使來賓OS在隔離的虛擬環(huán)境(通常被稱為虛擬機(jī),或來賓)中未修改地運(yùn)行,在那里,再現(xiàn)了主機(jī)設(shè)備的物理特征和行為。更具體而言,來賓可以表示配備有虛擬硬件(處理器、存儲(chǔ)器、磁盤、網(wǎng)絡(luò)接口等等)的隔離的,虛擬環(huán)境。根據(jù)圖1中所示出的實(shí)施例,系統(tǒng)10包括向來賓14提供虛擬化環(huán)境的系統(tǒng)管理程序12??梢栽诒景l(fā)明的廣泛的范圍內(nèi)在系統(tǒng)管理程序12上主存任意數(shù)量的來賓。為便于說明,在圖1中象征地示出了單一來賓。
      [0015]系統(tǒng)管理程序12控制并管理被分配供來賓14使用的主機(jī)設(shè)備(未示出)的硬件
      16。來賓14可以在系統(tǒng)管理程序12上運(yùn)行來賓0S18。來賓0S18可以支持一個(gè)或多個(gè)應(yīng)用程序20 (此處以單數(shù)作為應(yīng)用程序20來引用應(yīng)用程序中的一個(gè))。如此處所使用的,術(shù)語“應(yīng)用程序”從廣義來講用于一般地指代任何軟件文件、庫模塊、函數(shù)、子例程、二進(jìn)制、指令集、代碼塊,或包括可以被計(jì)算機(jī)理解和處理(有或者沒有協(xié)助,例如,編譯,解釋等等))的指令的其他類似的操作單元。
      [0016]系統(tǒng)管理程序12可以管理應(yīng)用程序20對(duì)諸如處理器22和機(jī)器存儲(chǔ)器24之類的底層硬件16的訪問。如此處所使用的,“機(jī)器存儲(chǔ)器”是指對(duì)系統(tǒng)管理程序12可見的、作為在主機(jī)設(shè)備上可用的存儲(chǔ)器元件。來賓0S18可以將訪問來賓物理存儲(chǔ)器28的來賓虛擬存儲(chǔ)器26呈現(xiàn)給應(yīng)用程序20。如此處所使用的,術(shù)語“來賓虛擬存儲(chǔ)器”是指對(duì)在來賓14內(nèi)部運(yùn)行的應(yīng)用程序20可見的基本上連續(xù)的虛擬地址空間。地址空間是指離散地址的范圍,每一個(gè)離散地址都可以對(duì)應(yīng)于應(yīng)用程序(例如,應(yīng)用程序20)可以存儲(chǔ)數(shù)據(jù)并在以后檢索數(shù)據(jù)的存儲(chǔ)器位置(即,地址)。如此處所使用的,術(shù)語“來賓物理存儲(chǔ)器”是指對(duì)來賓0S18可見的虛擬存儲(chǔ)器。
      [0017]來賓物理存儲(chǔ)器28可以在操作過程中創(chuàng)建內(nèi)核頁30。當(dāng)來賓OS將其來賓內(nèi)核加載到存儲(chǔ)器中時(shí),來賓內(nèi)核被分成諸個(gè)頁(例如,來賓內(nèi)核頁30),其中某些頁包含內(nèi)核指令,而其他頁包含內(nèi)核數(shù)據(jù)。每一個(gè)頁,包括來賓內(nèi)核頁30中的每一個(gè),都通常是標(biāo)準(zhǔn)大小(例如,4kB),并與地址(例如,來賓虛擬地址)相關(guān)聯(lián)。來賓0S18通過頁表將每一個(gè)頁的虛擬地址都映射到對(duì)應(yīng)的“物理”地址。雖然來賓存儲(chǔ)器(例如,來賓虛擬存儲(chǔ)器26和來賓物理存儲(chǔ)器28)是虛擬的,但是,來賓0S18假設(shè)來賓物理存儲(chǔ)器28是真正的或“物理的”。然而,來賓物理存儲(chǔ)器(例如,來賓物理存儲(chǔ)器28)只是被系統(tǒng)管理程序12用來維持到(真正的)主機(jī)物理地址(也叫做機(jī)器地址)的正確的映射的抽象。
      [0018]頁表是來賓0S18用來存儲(chǔ)虛擬地址和“物理”地址之間的映射的數(shù)據(jù)結(jié)構(gòu)。頁表包含若干個(gè)頁表?xiàng)l目(PTE),每一個(gè)PTE都將虛擬地址映射到對(duì)應(yīng)的“物理”地址(例如,從來賓虛擬地址到來賓物理地址或從來賓物理地址到機(jī)器地址)。PTE包括“物理”地址(例如,來賓物理地址或機(jī)器地址)及與合適的存儲(chǔ)器元件(例如,來賓物理存儲(chǔ)器28或機(jī)器存儲(chǔ)器24)中的頁相關(guān)的其他信息,諸如是否存在頁,頁是只讀的還是讀/寫的等等。
      [0019]對(duì)于當(dāng)前正在執(zhí)行的進(jìn)程,陰影頁表32可以被系統(tǒng)管理程序12用來將來賓物理存儲(chǔ)器28映射到機(jī)器存儲(chǔ)器24?!斑M(jìn)程”是應(yīng)用程序的其指令正在被執(zhí)行的實(shí)例(或其一部分)。陰影頁表32包括對(duì)應(yīng)于來賓內(nèi)核頁30的頁表?xiàng)l目(PTE) 34。PTE34中的每一個(gè)都包括機(jī)器地址及與被加載到機(jī)器存儲(chǔ)器24的相應(yīng)內(nèi)核頁相關(guān)的其他信息。根據(jù)示例實(shí)施例,PTE34可以在陰影頁表32中標(biāo)記為NOT_PRESENT。
      [0020]系統(tǒng)管理程序12中的rootkit保護(hù)模塊36可以針對(duì)來賓0S18中的對(duì)應(yīng)的來賓內(nèi)核頁30,在系統(tǒng)管理程序12中創(chuàng)建重復(fù)的頁38。當(dāng)進(jìn)程試圖訪問來賓內(nèi)核頁30時(shí),頁錯(cuò)誤處理程序40可以有條件地允許或拒絕對(duì)合適的來賓內(nèi)核頁30的訪問或執(zhí)行。在系統(tǒng)管理程序12上運(yùn)行的域O (DOMO) 42可以具有訪問物理硬件16以及與在系統(tǒng)上運(yùn)行的其他來賓進(jìn)行交互的特殊權(quán)限。D0M042可以具有用于控制系統(tǒng)管理程序12中的rootkit保護(hù)模塊36的某些鎖合特征的鎖合模塊44。
      [0021]為了示出系統(tǒng)10的技術(shù),理解可能存在于諸如如圖1所示的系統(tǒng)之類的給定系統(tǒng)中的活動(dòng)和安全關(guān)切是十分重要的。下面基礎(chǔ)信息可以被視為可以適當(dāng)?shù)卣f明本發(fā)明的基礎(chǔ)。這樣的信息僅為解釋起見提供的,相應(yīng)地,不應(yīng)該以任何方式理解為限制本發(fā)明的廣泛的范圍以及其潛在的應(yīng)用。
      [0022]典型的計(jì)算體系結(jié)構(gòu)支持特權(quán)級(jí)別的四個(gè)環(huán)(編號(hào)O到3),以保護(hù)系統(tǒng)代碼以及數(shù)據(jù)被較低特權(quán)的代碼免于被無意地或惡意地改寫。環(huán)O是最高特權(quán)級(jí)別,而環(huán)3是最低的。OS可以針對(duì)不同的進(jìn)程使用不同的特權(quán)級(jí)別。例如,Windows OS針對(duì)進(jìn)程和數(shù)據(jù)安全性使用兩個(gè)特權(quán)級(jí)別(環(huán)O和3)。諸如Internet Explorer和Microsoft Word以及若干個(gè)Windows服務(wù)(例如,服務(wù)控制管理器(Service Control Manager)、本地系統(tǒng)安全認(rèn)證(Local System Security Authority)、Winlogon (Win 登錄)、會(huì)話管理器(SessionManager),以及RPC服務(wù)器(RPC Server)等等)之類的應(yīng)用程序的代碼在環(huán)3內(nèi)運(yùn)行。
      [0023]內(nèi)核級(jí)別的代碼在環(huán)O內(nèi)運(yùn)行,并用于設(shè)備驅(qū)動(dòng)程序和諸如虛擬存儲(chǔ)器的管理器之類的內(nèi)核組件、緩存、輸入/輸出、對(duì)象、即插即用、硬件抽象層、圖形子系統(tǒng)、文件系統(tǒng),以及網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)中。內(nèi)核將應(yīng)用程序連接到計(jì)算設(shè)備的硬件。一般而言,內(nèi)核包括可以隨著OS而變化的多個(gè)組件。例如,Linux OS可以包括諸如低級(jí)別驅(qū)動(dòng)程序之類的組件(例如,負(fù)責(zé)中央處理單元(CPU)、存儲(chǔ)器管理單元(MMU)和板上設(shè)備的初始化的體系結(jié)構(gòu)特定驅(qū)動(dòng)程序);進(jìn)程調(diào)度程序(例如,負(fù)責(zé)向不同的進(jìn)程進(jìn)行公平的CPU時(shí)間切片分配的組件);存儲(chǔ)器管理器(例如,負(fù)責(zé)向不同的進(jìn)程分配和共享存儲(chǔ)器的組件);文件系統(tǒng)(例如,提取基礎(chǔ)文件系統(tǒng)以便向用戶呈現(xiàn)統(tǒng)一的文件系統(tǒng)接口的組件);網(wǎng)絡(luò)接口(例如,提供對(duì)不同的網(wǎng)絡(luò)設(shè)備的訪問和控制的組件);設(shè)備驅(qū)動(dòng)程序(例如,高級(jí)別驅(qū)動(dòng)程序)等等。應(yīng)用程序一般使用系統(tǒng)函數(shù)調(diào)用(例如,Win32API調(diào)用)來與內(nèi)核進(jìn)行通信。
      [0024]rootkit改變正常的執(zhí)行路徑的流(例如,應(yīng)用程序中的進(jìn)程的)以使其秘密實(shí)現(xiàn)成功。rootkit是允許對(duì)設(shè)備進(jìn)行特許的訪問同時(shí)通過推翻標(biāo)準(zhǔn)OS功能而積極地隱藏其存在的軟件。Rootkit通常修改由系統(tǒng)函數(shù)調(diào)用返回的數(shù)據(jù),以隱藏它們的二進(jìn)制文件、進(jìn)程,以及注冊(cè)表?xiàng)l目。取決于它們?cè)谀睦镞\(yùn)行以及它們掛鉤在系統(tǒng)中的什么區(qū)域,rootkit一般可以分類為兩種類型中的一種:用戶模式rootkit和內(nèi)核rootkit。用戶模式rootkit相對(duì)容易檢測(cè)和檢修,因?yàn)樗鼈兝糜脩裟J教貦?quán)來執(zhí)行。另一方面,內(nèi)核rootkit利用系統(tǒng)特權(quán)來執(zhí)行,使它們檢測(cè)和檢修起來更具有挑戰(zhàn)性。內(nèi)核rootkit將它們的代碼加載到(即,注入)到內(nèi)核地址空間中,通常通過安裝內(nèi)核模式設(shè)備驅(qū)動(dòng)程序。例如,可以通過使用內(nèi)核模塊將內(nèi)核代碼注入到正在運(yùn)行的內(nèi)核中,或通過將新代碼寫入到一塊未使用的內(nèi)核存儲(chǔ)器中,或通過插入內(nèi)核模塊文件等等,來安裝內(nèi)核rootkit。一旦提供機(jī)制就位,內(nèi)核rootkit會(huì)干擾進(jìn)程的正常的執(zhí)行路徑的流。[0025]內(nèi)核rootkit在桌面安全中是嚴(yán)重的挑戰(zhàn)。內(nèi)核rootkit會(huì)啟動(dòng)各種攻擊,諸如打開系統(tǒng)后門,盜竊個(gè)人信息、禁用安全措施,以及執(zhí)行其他惡意代碼應(yīng)用程序。通常,在首先獲得根級(jí)別的訪問之后,要么通過利用已知弱點(diǎn)或通過獲得口令(例如,通過破解加密,通過社會(huì)工程等等),攻擊者在計(jì)算機(jī)上安裝內(nèi)核rootkit。一旦安裝了內(nèi)核rootkit,它可使攻擊者通過規(guī)避正常的認(rèn)證和授權(quán)機(jī)制,來屏蔽正在進(jìn)行的闖入并維持對(duì)計(jì)算機(jī)的特許的訪問。內(nèi)核rootkit可能難以檢測(cè),因?yàn)閮?nèi)核rootkit能夠推翻旨在發(fā)現(xiàn)它的軟件。檢測(cè)方法包括使用替換的,受信任的操作系統(tǒng);基于行為的方法;簽名掃描;差異掃描;以及存儲(chǔ)器轉(zhuǎn)儲(chǔ)分析。移除會(huì)復(fù)雜化或幾乎不可能,特別是在內(nèi)核rootkit駐留在內(nèi)核中的情況下。
      [0026]在系統(tǒng)管理程序環(huán)境中,攻擊的影響可能是嚴(yán)重的。一個(gè)被感染的來賓可能會(huì)感染主機(jī)設(shè)備上的所有其他來賓。例如,攻擊者可以通過感染來賓,來獲得硬件上的管理員特權(quán),并可以通過系統(tǒng)管理程序環(huán)境從一個(gè)來賓移動(dòng)到另一個(gè)來賓。在系統(tǒng)管理程序主存數(shù)千來賓的情況下,這樣的來賓-來賓攻擊會(huì)具有災(zāi)難性的結(jié)果。
      [0027]系統(tǒng)管理程序環(huán)境帶來了提供內(nèi)核rootkit保護(hù)的機(jī)會(huì),而無需來賓-駐留保護(hù)性軟件。來賓在虛擬化主機(jī)設(shè)備中的系統(tǒng)管理程序上運(yùn)行。傳統(tǒng)的內(nèi)核rootkit保護(hù)機(jī)制可以被安裝于在系統(tǒng)管理程序上運(yùn)行的來賓的每一個(gè)實(shí)例上;然而,這樣的方法就存儲(chǔ)器、運(yùn)行時(shí)性能和管理而言會(huì)導(dǎo)致大量的開銷。理想地,內(nèi)核rootkit保護(hù)機(jī)制將位于內(nèi)核(正在被它保護(hù)的)外面,這在非虛擬化環(huán)境中是不可能的。此外,在云(虛擬化)環(huán)境中運(yùn)行來賓的顧客可能希望云服務(wù)提供商透明地提供內(nèi)核rootkit保護(hù)。
      [0028]在內(nèi)核rootkit保護(hù)的一種方法中,基于硬件虛擬化的哈佛(Harvard)體系結(jié)構(gòu)被用來保護(hù)商用OS內(nèi)核遭受內(nèi)核rootkit攻擊。此方法基于指令獲取的頁級(jí)別的重定向,這偏離了以前的執(zhí)行指令級(jí)別的重定向的努力。該方法中的另一種技術(shù)允許通過僅重新定向內(nèi)核指令獲取,來啟用模式敏感的重定向。然而,此方法要求每一個(gè)來賓中的代理,從而增加了基礎(chǔ)結(jié)構(gòu)開銷。該方法還修改可執(zhí)行的以及可鏈接的格式(ELF)加載器(在LinuxOS中),以幫助rootkit保護(hù);這樣的對(duì)OS的修改是麻煩的。此外,此方法還使用轉(zhuǎn)換后援緩沖器(TLB)高速緩存操縱來在代碼和數(shù)據(jù)頁表之間切換,這會(huì)難以實(shí)現(xiàn)。
      [0029]圖1概述的系統(tǒng)管理程序環(huán)境中的用于內(nèi)核rootkit保護(hù)的系統(tǒng)可以解決這些問題等等。本發(fā)明的實(shí)施例試圖大大地改善現(xiàn)有的技術(shù)的能力,以允許更穩(wěn)健的解決方案。在示例實(shí)施例中,系統(tǒng)10的組件可以在系統(tǒng)管理程序12內(nèi)部創(chuàng)建來賓內(nèi)核頁30的軟白名單,例如,重復(fù)頁38。軟白名單(即,重復(fù)頁38)中的每一個(gè)條目是對(duì)應(yīng)的來賓內(nèi)核頁的重復(fù)頁。來賓內(nèi)核代碼可以從重復(fù)頁38中執(zhí)行,即使在來賓0S18被引導(dǎo)之后修改了來賓內(nèi)核頁30。類似地,沒有新的代碼可以被允許執(zhí)行,因?yàn)閷?duì)應(yīng)的頁將不會(huì)存在于初始白名單(即,重復(fù)頁38)中。陰影頁表32中的N0T_PRESENT比特可以被用來截取對(duì)系統(tǒng)管理程序12的訪問??梢詫TE標(biāo)記為可寫入或可執(zhí)行的(在最初將它們標(biāo)記為N0T_PRESENT之后)(例如,確保最小頁錯(cuò)誤,以取得更好的性能)。
      [0030]可以在來賓0S18完全引導(dǎo)并加載其內(nèi)核組件(例如,進(jìn)程調(diào)度程序、存儲(chǔ)器管理器、文件系統(tǒng)等等)之后,創(chuàng)建重復(fù)頁38。如此處所使用的,術(shù)語“引導(dǎo)”是指引導(dǎo)序列,這是當(dāng)通電時(shí)計(jì)算機(jī)執(zhí)行的初始操作集合。在一示例實(shí)施例中,可以僅在引導(dǎo)時(shí)創(chuàng)建重復(fù)頁38,以便不能執(zhí)行任何新頁(因?yàn)樗袌?zhí)行都通過重復(fù)頁被路由)。此外,當(dāng)創(chuàng)建新內(nèi)核頁時(shí),它被默認(rèn)地標(biāo)記為NOT_PRESENT。此后,系統(tǒng)10的組件可以確?,F(xiàn)有的內(nèi)核頁中的任何變化(包括在引導(dǎo)之后添加新頁或修改現(xiàn)有的頁)都不被允許執(zhí)行。在示例實(shí)現(xiàn)中,系統(tǒng)10可以防止零時(shí)間(day-zero)威脅,因?yàn)樗诎酌麊?。系統(tǒng)10可以由公共云基礎(chǔ)結(jié)構(gòu)提供商和使用私有云的公司來實(shí)現(xiàn)。系統(tǒng)10可以提供安全的透明層。解決方案可以對(duì)不經(jīng)常改變他們的基礎(chǔ)OS配置,而是改變存儲(chǔ)在它中的數(shù)據(jù)的顧客(例如,web主存服務(wù)提供商)有用。
      [0031 ] 轉(zhuǎn)向系統(tǒng)管理程序環(huán)境中的存儲(chǔ)器管理,來賓OS (例如,來賓0S18)將來賓虛擬存儲(chǔ)器(例如,來賓虛擬存儲(chǔ)器26)中的虛擬地址空間布局提供到應(yīng)用程序(例如,應(yīng)用程序20)。來賓虛擬存儲(chǔ)器的地址空間可以被分成能夠被應(yīng)用程序(例如,應(yīng)用程序20)訪問的用戶空間,以及系統(tǒng)空間,包括引導(dǎo)驅(qū)動(dòng)程序、進(jìn)程頁表、系統(tǒng)高速緩存,分頁的和非分頁的池等等。通常,系統(tǒng)頁的地址位置是硬編碼的(或先驗(yàn)知曉的)。例如,4GB的來賓虛擬存儲(chǔ)器可以被分離成3GB的用戶空間,帶有從OxBFFFFFFF到0x00000000的地址,以及系統(tǒng)空間,帶有從OxFFFFFFFF到OxCOOOOOOO的地址。
      [0032]來賓OS通過頁表來處理虛擬到物理地址映射。盡管虛擬地址空間(例如,來賓虛擬存儲(chǔ)器26) —般是相鄰的,但是,地址可以被映射到物理地址空間(例如,來賓物理存儲(chǔ)器28)中的非相鄰塊。虛擬到物理映射信息被置于叫做頁表?xiàng)l目(PTE)的結(jié)構(gòu)中的頁表中。PTE的格式可以隨著OS變化而變化,例如,Linux OS可以指定一種格式,而Windows XP OS可以指定另一種格式。一般而言,PTE通常包含指出由PTE引用的頁是否存在(或有效)的比特。例如,當(dāng)進(jìn)程開始加載到機(jī)器存儲(chǔ)器(例如,機(jī)器存儲(chǔ)器24)時(shí),來賓OS假設(shè)頁被加載到來賓物理存儲(chǔ)器(例如,來賓物理存儲(chǔ)器28),并生成對(duì)應(yīng)的頁表。正在被加載到機(jī)器存儲(chǔ)器中的頁的當(dāng)前比特被設(shè)置為O (指出N0T_PRESENT),直到所有頁被加載到存儲(chǔ)器中。一旦所有頁都被加載,在相應(yīng)的PTE中,頁的當(dāng)前比特可以設(shè)置為1(指出PRESENT(存在))。在加載過程中,如果(由進(jìn)程)作出訪問標(biāo)記為N0T_PRESENT的頁的嘗試,則可能生成頁錯(cuò)誤。
      [0033]在示例實(shí)施例中,由來賓14維護(hù)的任何頁表都可以具有由系統(tǒng)管理程序12生成和維護(hù)的對(duì)應(yīng)的陰影頁表(例如,陰影頁表32)。來賓0S18沒有對(duì)陰影頁表32的訪問。在引導(dǎo)時(shí),來賓0S18可以將其內(nèi)核從計(jì)算機(jī)的硬盤加載到存儲(chǔ)器中(例如,以來賓內(nèi)核頁30的形式)。Rootkit保護(hù)模塊36可以在陰影頁表32中將對(duì)應(yīng)于來賓內(nèi)核頁30的PTE34標(biāo)記為N0T_PRESENT。在一個(gè)示例中,rootkit保護(hù)模塊36可以通過讀取頁的虛擬地址來判斷頁是來賓內(nèi)核頁30中的一個(gè)。如果虛擬地址在特定范圍內(nèi)(例如,預(yù)定的范圍),則頁可以是來賓內(nèi)核頁30中的一個(gè),并可以將對(duì)應(yīng)的PTE34標(biāo)記為N0T_PRESENT。
      [0034]當(dāng)發(fā)生頁錯(cuò)誤時(shí),控制從執(zhí)行導(dǎo)致頁錯(cuò)誤的指令的處理器(例如,處理器22)轉(zhuǎn)移到系統(tǒng)管理程序(例如,系統(tǒng)管理程序12)。系統(tǒng)管理程序的頁錯(cuò)誤處理程序(例如,頁錯(cuò)誤處理程序40)可以確定指令指針和故障地址,例如,用以判斷頁錯(cuò)誤是指令頁錯(cuò)誤還是數(shù)據(jù)頁錯(cuò)誤。例如,如果指令指針(即,指向處理器接下來將試圖執(zhí)行的存儲(chǔ)器地址的指針)指向故障地址,那么,頁錯(cuò)誤是指令頁錯(cuò)誤。
      [0035]轉(zhuǎn)向圖1的基礎(chǔ)結(jié)構(gòu),系統(tǒng)管理程序12可以運(yùn)行來賓OS的多個(gè)實(shí)例。系統(tǒng)管理程序12可以是服務(wù)器、防火墻、防病毒解決方案或更一般的計(jì)算機(jī)的一部分。在一個(gè)示例實(shí)現(xiàn)中,系統(tǒng)管理程序12是在裸的硬件上運(yùn)行并提供在同一個(gè)硬件上同時(shí)運(yùn)行OS的多個(gè)實(shí)例的能力的Xen元件。典型的Xen設(shè)置可以涉及在多個(gè)OS之下運(yùn)行的Xen,其中,應(yīng)用程序在與一組來賓(例如,來賓14)相關(guān)聯(lián)的OS上面。整個(gè)配置可以在服務(wù)器(或某種其他網(wǎng)絡(luò)電器)中提供。在示例實(shí)施例中,來賓14可以運(yùn)行與D0M042相關(guān)聯(lián)的OS。請(qǐng)注意,Xen實(shí)現(xiàn)僅表示本發(fā)明可以應(yīng)用到的一種可能的示例。任意數(shù)量的額外的系統(tǒng)管理程序都可以類似地得益于此處所討論的廣泛的原理。
      [0036]用于管理系統(tǒng)管理程序12的控制工具可以在D0M042上運(yùn)行。D0M042可以提供管理系統(tǒng)管理程序12上的來賓(例如,來賓14)的統(tǒng)一界面。D0M042可以提供供管理員配置系統(tǒng)管理程序12的裝置,包括管理存儲(chǔ)器,控制來賓行為的各方面,設(shè)置虛擬網(wǎng)絡(luò)、配置系統(tǒng)管理程序和一個(gè)或多個(gè)來賓,以及創(chuàng)建、刪除、關(guān)閉、引導(dǎo)等等來賓。例如,這種設(shè)置在服務(wù)器運(yùn)行Xen而Xen進(jìn)而主存多個(gè)來賓的實(shí)例的數(shù)據(jù)中心流行。D0M042可以包括修改過的Linux內(nèi)核,并可以具有訪問物理I / O資源以及與在系統(tǒng)上運(yùn)行的其他虛擬機(jī)進(jìn)行交互的特殊權(quán)限。通常,D0M042是當(dāng)系統(tǒng)被引導(dǎo)時(shí)啟動(dòng)的第一域,并且它可以被用來創(chuàng)建并配置所有其他常規(guī)來賓(例如,來賓14)。系統(tǒng)管理程序環(huán)境可以要求D0M042在其他來賓可以啟動(dòng)之前運(yùn)行。
      [0037]轉(zhuǎn)向圖2,圖2是可以與本發(fā)明的實(shí)施例相關(guān)聯(lián)的示例操作步驟的簡(jiǎn)化流程圖。操作100可以在102開始,此時(shí)D0M042被激活。在104,鎖合特征可以在域創(chuàng)建過程中通過鎖合模塊44啟用(與從來賓上下文到系統(tǒng)管理程序上下文的VMEXIT (VM退出)過渡相關(guān)聯(lián))。在106,可以在系統(tǒng)管理程序12中設(shè)置域特定的數(shù)據(jù)結(jié)構(gòu)中的鎖合特征比特。在108,可以啟動(dòng)系統(tǒng)管理程序虛擬機(jī)(HVM) ( S卩,來賓14)。在110,來賓0S18可以為來賓內(nèi)核頁30創(chuàng)建頁表?xiàng)l目(PTE),帶有到系統(tǒng)管理程序12的VMEXIT。在112,rootkit保護(hù)模塊36可在陰影頁表32中為來賓內(nèi)核頁30創(chuàng)建PTE34。在114,rootkit保護(hù)模塊36可以在由系統(tǒng)管理程序12維護(hù)的陰影頁表32中將PTE34標(biāo)記為N0T_PRESENT。因此,對(duì)訪問其PTE34被標(biāo)記的來賓內(nèi)核頁30的任何嘗試會(huì)導(dǎo)致頁錯(cuò)誤。另外,在116,此操作可以連同與處理器22相關(guān)聯(lián)的虛擬機(jī)指令(VMRUN(VM運(yùn)行))一起提供。
      [0038]如果啟用了 rootkit保護(hù)(例如,來賓0S18引導(dǎo)并加載其內(nèi)核組件),則來賓內(nèi)核頁30中的某些可能不被使用,如此,對(duì)于它們,將不會(huì)有頁錯(cuò)誤。為了捕捉這樣的頁,在118,頁錯(cuò)誤處理程序40可以漫步系統(tǒng)管理程序12中的陰影頁表32,并為來賓內(nèi)核頁30的每一個(gè)頁創(chuàng)建重復(fù)頁,并保持對(duì)應(yīng)的虛擬地址到重復(fù)頁的機(jī)器頁幀號(hào)(MFN)的映射。MFN是指機(jī)器存儲(chǔ)器24中為對(duì)應(yīng)的虛擬地址分配的頁編號(hào)。在示例實(shí)施例中,這些活動(dòng)可以在引導(dǎo)完成之后執(zhí)彳丁一次,隨后,系統(tǒng)10可以被視為鎖合。如果:rootkit保護(hù)未啟用(例如,來賓0S18沒有引導(dǎo)并加載其內(nèi)核組件),則頁錯(cuò)誤處理程序40可以為來賓14的內(nèi)核中的每一個(gè)頁創(chuàng)建重復(fù)頁,并保持對(duì)應(yīng)的虛擬基地址(對(duì)應(yīng)于將存儲(chǔ)內(nèi)核頁的第一字節(jié)的虛擬地址)到重復(fù)頁的MFN的映射。
      [0039]在120,來賓0S14中的應(yīng)用程序20中的進(jìn)程可能試圖訪問來賓內(nèi)核頁30。在122,試圖訪問來賓內(nèi)核頁30會(huì)導(dǎo)致頁錯(cuò)誤(因?yàn)閷?duì)應(yīng)于來賓內(nèi)核頁30的PTE34被標(biāo)記為Ν0Τ_PRESENT)。當(dāng)在122遇到頁錯(cuò)誤時(shí),在124就頁錯(cuò)誤是指令頁錯(cuò)誤還是數(shù)據(jù)頁錯(cuò)誤作出判斷。如果頁錯(cuò)誤是數(shù)據(jù)頁錯(cuò)誤,則頁錯(cuò)誤處理程序40可以在126通過指向原始物理頁并將對(duì)應(yīng)的PTE標(biāo)記為NX(不執(zhí)行)和可寫入,來永久地修復(fù)頁錯(cuò)誤(例如,允許未來訪問/執(zhí)行)。在128,應(yīng)用程序20可以被允許訪問陰影頁表32,過程在130結(jié)束。這可以確保對(duì)訪問數(shù)據(jù)的嘗試不會(huì)導(dǎo)致頁錯(cuò)誤,但是對(duì)執(zhí)行代碼的嘗試卻會(huì)導(dǎo)致頁錯(cuò)誤,以使得控制被傳遞到系統(tǒng)管理程序12。
      [0040]如果124中的判斷是頁錯(cuò)誤是指令錯(cuò)誤,則可以在131中判斷對(duì)應(yīng)的重復(fù)頁是否存在于重復(fù)頁38中。如果存在重復(fù)頁,則頁錯(cuò)誤處理程序40可以通過在132中將錯(cuò)誤虛擬地址指向?qū)?yīng)于重復(fù)頁38的MFN(在陰影頁表32中),永久地修復(fù)頁錯(cuò)誤,并將頁標(biāo)記為只讀,以使得對(duì)頁的任何寫入都會(huì)導(dǎo)致錯(cuò)誤。此操作可能會(huì)導(dǎo)致在創(chuàng)建重復(fù)頁38時(shí)存在的代碼被執(zhí)行。另一方面,如果對(duì)應(yīng)的重復(fù)頁在重復(fù)頁38中不存在,則頁錯(cuò)誤處理程序40可以在133阻止頁的執(zhí)行。如此,不可以執(zhí)行新的或修改過的代碼。對(duì)代碼的任何修改都可能會(huì)在來賓內(nèi)核頁30中發(fā)生,且對(duì)修改過的來賓內(nèi)核頁30的任何執(zhí)行都可能來自系統(tǒng)管理程序的重復(fù)頁38。在128中,陰影頁表32可以被應(yīng)用程序20訪問(但是,此時(shí),可以讀取重復(fù)頁36,代替來賓內(nèi)核頁30),過程可以在130結(jié)束。
      [0041]可以在各種位置(例如,在rootkit保護(hù)模塊36內(nèi))提供用于內(nèi)核rootkit保護(hù)(以及抑制危險(xiǎn)的代碼執(zhí)行)的軟件。在一個(gè)示例實(shí)現(xiàn)中,此軟件駐留在尋求被保護(hù)免于安全攻擊(或被保護(hù)免于對(duì)可寫入的存儲(chǔ)器區(qū)域的非希望或未授權(quán)的操縱)的計(jì)算機(jī)中。在比較詳細(xì)的配置中,此軟件具體地常駐在系統(tǒng)管理程序的可以包括(或以其他方式連接)圖1所描繪的組件的安全層中。在其他實(shí)施例中,可以從web服務(wù)器接收或下載軟件(例如,在為單獨(dú)的設(shè)備、單獨(dú)的虛擬機(jī),來賓,系統(tǒng)管理程序、服務(wù)器等等購買單個(gè)最終用戶許可證的上下文中),以便提供此內(nèi)核rootkit保護(hù)。
      [0042]在其他示例中,內(nèi)核rootkit保護(hù)功能可以涉及專有的元件(例如,作為防病毒解決方案的一部分),該元件可以在這些標(biāo)識(shí)的元件中提供(或在附近),或在任何其他設(shè)備,服務(wù)器、網(wǎng)絡(luò)電器、控制臺(tái)、防火墻、交換機(jī)、信息技術(shù)(IT)設(shè)備等等中提供,或作為互補(bǔ)解決方案提供(例如,結(jié)合防火墻),或在網(wǎng)絡(luò)中的某處配置。如此處在本說明書中所使用的,術(shù)語“計(jì)算機(jī)”旨在包含可操作以影響或處理安全環(huán)境中的電子信息的這些可能的元件(VMM、系統(tǒng)管理程序、Xen設(shè)備、虛擬設(shè)備、網(wǎng)絡(luò)電器、路由器、交換機(jī)、網(wǎng)關(guān)、處理器、服務(wù)器、負(fù)載平衡器、防火墻,或任何其他合適的設(shè)備、組件、元件,或?qū)ο?。此外,此計(jì)算機(jī)可以包括任何合適的算法、硬件、軟件、組件、模塊、接口,或促進(jìn)其操作的對(duì)象。這可以包括允許針對(duì)內(nèi)核rootkit的有效防護(hù)的合適的算法和通信協(xié)議。另外,還可以以任何合適的方式合并內(nèi)核rootkit保護(hù)功能。與類似的設(shè)計(jì)替代方案一起:可以以各種可能的配置組合各種圖形的所示出的模塊以及組件中的任何一個(gè):所有的這些都在本說明書的廣泛的的范圍內(nèi)。
      [0043]這些元件中的任何一種(例如,計(jì)算機(jī)、服務(wù)器、網(wǎng)絡(luò)電器、防火墻、系統(tǒng)管理程序、任何其他類型的虛擬元件等等)都可以包括可以執(zhí)行軟件或算法以執(zhí)行如本說明書中所討論的內(nèi)核rootkit保護(hù)活動(dòng)的處理器。另外,這些元件中的每一個(gè)(例如,計(jì)算機(jī)、月艮務(wù)器、網(wǎng)絡(luò)電器、防火墻、系統(tǒng)管理程序、任何其他類型的虛擬元件等等)可包括存儲(chǔ)器元件(隨機(jī)存取存儲(chǔ)器(RAM)、ROM、EPROM、EEPR0M、ASIC等等)、軟件、硬件,或任何其他合適的組件,設(shè)備,元件,或?qū)ο?,在合適的情況下并基于特定需要??梢曰谔囟ㄐ枰蛯?shí)現(xiàn),在任何數(shù)據(jù)庫、寄存器、表、緩存、隊(duì)列、控制列表,或存儲(chǔ)器結(jié)構(gòu)中提供被跟蹤、發(fā)送、接收、存儲(chǔ)在系統(tǒng)10中的信息,所有的這些都可以以任何合適的時(shí)間幀引用。
      [0044]這些元件和/或模塊可以彼此進(jìn)行協(xié)作,以便在此處所討論的系統(tǒng)管理程序環(huán)境中結(jié)合內(nèi)核rootkit保護(hù)執(zhí)行活動(dòng)。在其他實(shí)施例中,這些特征可以在其他設(shè)備中所包括的這些元件外部提供,以實(shí)現(xiàn)這些預(yù)期功能,或以任何合適的方式合并。例如,可以移除,或以其他方式合并與各種元件相關(guān)聯(lián)的某些處理器,以使得單個(gè)處理器和單個(gè)存儲(chǔ)器位置負(fù)責(zé)某些活動(dòng)。在一般意義上,圖中所描繪的布局可以在其表示中更符合邏輯,而物理體系結(jié)構(gòu)可以包括這些元件的各種置換、組合,和/或混合。
      [0045]此處所討論的存儲(chǔ)器項(xiàng)目中的任何一個(gè)(例如,來賓內(nèi)核頁30、陰影頁表32、機(jī)器存儲(chǔ)器24、來賓虛擬存儲(chǔ)器26、來賓物理存儲(chǔ)器28、散列38等等)應(yīng)該解釋為包含在廣義的術(shù)語“存儲(chǔ)器元件”內(nèi)。類似地,本說明書中所描述的潛在的處理元件、模塊,以及機(jī)器應(yīng)該解釋為包含在廣義的術(shù)語“處理器”內(nèi)。計(jì)算機(jī)、網(wǎng)絡(luò)電器、虛擬元件等等中的每一個(gè)也都可以包括用于接收、傳輸,和/或以別的方式在系統(tǒng)管理程序環(huán)境中傳遞數(shù)據(jù)或信息的合適的接口。
      [0046]處理器可以執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令以實(shí)現(xiàn)本說明書中詳述的操作。在一個(gè)示例中,處理器(如圖所示)可以將元件或項(xiàng)目(例如,數(shù)據(jù))從一種狀態(tài)或東西轉(zhuǎn)換為另一種狀態(tài)或東西。在另一個(gè)示例中,此處概述的活動(dòng)可以利用固定邏輯或可編程邏輯(例如,由處理器執(zhí)行的軟件/計(jì)算機(jī)指令)來實(shí)現(xiàn),此處所標(biāo)識(shí)的元件可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場(chǎng)可編程門陣列(FPGA)、可擦與可編程只讀存儲(chǔ)器(EPROM)、電可擦可編程序只讀存儲(chǔ)器(EEPROM))或包括數(shù)字邏輯、軟件、代碼、電子指令,或其任何合適的組合的ASIC。
      [0047]在某些示例實(shí)現(xiàn)中,此處概述的內(nèi)核rootkit保護(hù)功能可以通過編碼在一個(gè)或多個(gè)有形的,非瞬時(shí)的介質(zhì)中的邏輯(例如,在專用集成電路(ASIC)中所提供的嵌入的邏輯、數(shù)字信號(hào)處理器(DSP)指令、要由處理器執(zhí)行的軟件(潛在地包括目標(biāo)代碼以及源代碼),或其他類似的機(jī)器,等等)來實(shí)現(xiàn)。在這些實(shí)例中的某些中,存儲(chǔ)器元件(如圖所示)可以存儲(chǔ)用于此處所描述的操作的數(shù)據(jù)。這包括存儲(chǔ)器元件能夠存儲(chǔ)被執(zhí)行以實(shí)現(xiàn)本說明書中所描述的活動(dòng)的軟件、邏輯、代碼或處理器指令。在各種實(shí)施例中,這些元件中的某些或全部包括可以協(xié)調(diào)、管理,或以其他方式協(xié)作以便實(shí)現(xiàn)此處概述的操作的軟件(或交替軟件)。這些元件中的一個(gè)或多個(gè)可以包括任何合適的算法、硬件、軟件、組件、模塊、接口,或促進(jìn)其操作的對(duì)象。
      [0048]請(qǐng)注意,對(duì)于此處所提供的很多示例,可以以兩個(gè)、三個(gè)、四個(gè),或更多網(wǎng)絡(luò)元件以及模塊來描述交互。然而,這只是為了清楚起見,并且只作為示例。應(yīng)該理解,可以以任何合適的方式來合并系統(tǒng)。與類似的設(shè)計(jì)替代方案一起,可以以各種可能的配置組合圖1的所示出的組件、模塊,以及元件中的任何一個(gè),所有的這些都在本說明書的寬的范圍內(nèi)。在某些情況下,可以通過只引用數(shù)量有限的元件或組件,更容易地描述給定流程集的功能中的一個(gè)或多個(gè),應(yīng)該理解,圖1的系統(tǒng)(以及其原理)是可輕松地?cái)U(kuò)展的,并可以接納大量的組件,以及更復(fù)雜的布局和配置。相應(yīng)地,所提供的示例不應(yīng)該限制范圍或抑制系統(tǒng)10的廣泛的原理,因?yàn)闈撛诘貞?yīng)用于無數(shù)其他體系結(jié)構(gòu)。
      [0049]還應(yīng)該指出,參考前面的圖形所描述的操作僅示出了可以由系統(tǒng)執(zhí)行的某些可能的情況。這些操作中的某些可以在合適的情況下刪除,或者可以在不偏離所討論的概念的范圍的情況下,顯著地修改或改變這些步驟。另外,還可以顯著地改變這些操作的時(shí)間,仍實(shí)現(xiàn)在本發(fā)明中講述的結(jié)果。前面的操作流程是作為示例和討論而提供的。由系統(tǒng)提供相當(dāng)大的靈活性,因?yàn)樵诓黄x所討論的概念的原理的情況下,可以提供任何合適的布局、時(shí)序、配置,以及定時(shí)機(jī)制。
      【權(quán)利要求】
      1.一種方法,包括: 創(chuàng)建具有與包括系統(tǒng)管理程序的系統(tǒng)管理程序環(huán)境中的來賓操作系統(tǒng)(OS)的每一個(gè)來賓內(nèi)核頁相對(duì)應(yīng)的條目的軟白名單,其中每個(gè)條目是所述對(duì)應(yīng)的來賓內(nèi)核頁的重復(fù)頁;當(dāng)進(jìn)程試圖訪問來賓內(nèi)核頁時(shí),生成頁錯(cuò)誤;以及 如果所述頁錯(cuò)誤是指令頁錯(cuò)誤,則將所述進(jìn)程重定向到對(duì)應(yīng)于所述來賓內(nèi)核頁的重復(fù)頁。
      2.如權(quán)利要求1所述的方法,其特征在于,所述重新定向包括改變所述系統(tǒng)管理程序的陰影頁表中的機(jī)器頁幀號(hào)以指向?qū)?yīng)于所述來賓內(nèi)核頁的所述重復(fù)頁。
      3.如權(quán)利要求1所述的方法,其特征在于,還包括: 如果所述頁錯(cuò)誤是數(shù)據(jù)頁錯(cuò)誤,則: 修復(fù)所述頁錯(cuò)誤;以及 將對(duì)應(yīng)于所述來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為非可執(zhí)行的和可寫入的。
      4.如權(quán)利要求1所述的方法,其特征在于,還包括: 如果所述頁錯(cuò)誤是指令頁錯(cuò)誤,則將對(duì)應(yīng)于所述來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為只讀。
      5.如權(quán)利要求1所述的方法,其特征在于,還包括: 在所述系統(tǒng)管理程序的陰影頁表中將每一個(gè)來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為NOT_PRESENTο`
      6.如權(quán)利要求1所述的方法,其特征在于,還包括: 在域創(chuàng)建過程中在所述系統(tǒng)管理程序中設(shè)置鎖合特征比特,以啟用rootkit保護(hù)。
      7.如權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建軟白名單是在所述來賓OS在引導(dǎo)時(shí)加載內(nèi)核組件之后執(zhí)行的,并且還包括: 漫步所述系統(tǒng)管理程序的陰影頁表;以及 將每一個(gè)來賓內(nèi)核頁的虛擬地址映射到所述對(duì)應(yīng)的重復(fù)頁的機(jī)器頁幀號(hào)。
      8.如權(quán)利要求1所述的方法,其特征在于,所述來賓OS沒有加載至少一些內(nèi)核組件,并還包括: 將每一個(gè)來賓內(nèi)核頁的虛擬基地址映射到所述對(duì)應(yīng)的重復(fù)頁的機(jī)器頁幀號(hào)。
      9.一種設(shè)備,包括: 存儲(chǔ)器;以及 處理器;以及 系統(tǒng)管理程序,以便所述設(shè)備被配置成: 創(chuàng)建具有與包括系統(tǒng)管理程序的系統(tǒng)管理程序環(huán)境中的來賓OS的每一個(gè)來賓內(nèi)核頁相對(duì)應(yīng)的條目的軟白名單,其中每個(gè)條目是所述對(duì)應(yīng)的來賓內(nèi)核頁的重復(fù)頁; 當(dāng)進(jìn)程試圖訪問來賓內(nèi)核頁時(shí),生成頁錯(cuò)誤;以及 如果所述頁錯(cuò)誤是指令頁錯(cuò)誤,則將所述進(jìn)程重定向到對(duì)應(yīng)于所述來賓內(nèi)核頁的重復(fù)頁。
      10.如權(quán)利要求9所述的設(shè)備,其特征在于,所述重新定向包括改變所述系統(tǒng)管理程序的陰影頁表中的機(jī)器頁幀號(hào)以指向?qū)?yīng)于所述來賓內(nèi)核頁的所述重復(fù)頁。
      11.如權(quán)利要求9所述的設(shè)備,其特征在于,所述設(shè)備進(jìn)一步被配置成: 如果所述頁錯(cuò)誤是數(shù)據(jù)頁錯(cuò)誤,則:修復(fù)所述頁錯(cuò)誤;以及 將對(duì)應(yīng)于所述來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為非可執(zhí)行的和可寫入的。
      12.如權(quán)利要求9所述的設(shè)備,其特征在于,所述設(shè)備進(jìn)一步被配置成: 如果所述頁錯(cuò)誤是指令頁錯(cuò)誤,則將對(duì)應(yīng)于所述來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為只讀。
      13.如權(quán)利要求9所述的設(shè)備,其特征在于,所述設(shè)備進(jìn)一步被配置成: 在所述系統(tǒng)管理程序的陰影頁表中將每一個(gè)來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為NOT_PRESENTο
      14.編碼在非瞬態(tài)介質(zhì)中的邏輯,所述邏輯包括用于執(zhí)行的代碼,并且所述代碼當(dāng)由處理器執(zhí)行時(shí)可操作用以執(zhí)行包括下列各項(xiàng)的操作: 創(chuàng)建具有與包括系統(tǒng)管理程序的系統(tǒng)管理程序環(huán)境中的來賓OS的每一個(gè)來賓內(nèi)核頁相對(duì)應(yīng)的條目的軟白名單,其中每個(gè)條目是所述對(duì)應(yīng)的來賓內(nèi)核頁的重復(fù)頁; 當(dāng)進(jìn)程試圖訪問來賓內(nèi)核頁時(shí),生成頁錯(cuò)誤;以及 如果所述頁錯(cuò)誤是指令頁錯(cuò)誤,則將所述進(jìn)程重定向到對(duì)應(yīng)于所述來賓內(nèi)核頁的重復(fù)頁。
      15.如權(quán)利要求14所述的邏輯,其特征在于,所述重新定向包括改變所述系統(tǒng)管理程序的陰影頁表中的機(jī)器頁幀號(hào)以指向?qū)?yīng)于所述來賓內(nèi)核頁的所述重復(fù)頁。
      16.如權(quán)利要求14所·述的邏輯,其特征在于,所述操作還包括: 如果所述頁錯(cuò)誤是數(shù)據(jù)頁錯(cuò)誤,則: 修復(fù)所述頁錯(cuò)誤;以及 將對(duì)應(yīng)于所述來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為非可執(zhí)行的和可寫入的。
      17.如權(quán)利要求14所述的邏輯,其特征在于,所述操作還包括: 如果所述頁錯(cuò)誤是指令頁錯(cuò)誤,則將對(duì)應(yīng)于所述來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為只讀。
      18.如權(quán)利要求14所述的邏輯,其特征在于,所述操作還包括: 在所述系統(tǒng)管理程序的陰影頁表中將每一個(gè)來賓內(nèi)核頁的頁表?xiàng)l目標(biāo)記為NOT_PRESENTο
      19.如權(quán)利要求14所述的邏輯,其特征在于,所述創(chuàng)建軟白名單是在所述來賓OS在引導(dǎo)時(shí)加載多個(gè)內(nèi)核組件之后執(zhí)行的,并且還包括: 漫步所述系統(tǒng)管理程序的陰影頁表;以及 將每一個(gè)來賓內(nèi)核頁的虛擬地址映射到所述對(duì)應(yīng)的重復(fù)頁的機(jī)器頁幀號(hào)。
      20.如權(quán)利要求14所述的邏輯,其特征在于,所述操作還包括: 在域創(chuàng)建過程中在所述系統(tǒng)管理程序中設(shè)置鎖合特征比特,以啟用rootkit保護(hù)。
      【文檔編號(hào)】G06F21/10GK103858129SQ201280050169
      【公開日】2014年6月11日 申請(qǐng)日期:2012年9月15日 優(yōu)先權(quán)日:2011年10月13日
      【發(fā)明者】A·丹戈, P·蒙辛德, V·斯里瓦斯塔瓦 申請(qǐng)人:邁克菲股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1