新四季網

用於在系統管理程序環境中進行內核rootkit保護的系統和方法

2023-04-25 19:02:46

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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀