專利名稱:保護代理和特權(quán)模式的制作方法
保護代理和特權(quán)模式
北旦 冃豕
計算設備中的處理器通常包括特權(quán)和非特權(quán)模式。以特權(quán)模式運行的軟件 一般能夠執(zhí)行處理器所支持的每一條指令。通常,操作系統(tǒng)內(nèi)核在特權(quán)模式中
運行,該模式有時被稱為"環(huán)o"、"管理員模式"或"內(nèi)核模式"。
相反,可約束在計算設備上運行的某些軟件僅以非特權(quán)模式運行。該模式 一般允許軟件執(zhí)行處理器的指令的子集。操作系統(tǒng)由此可使用該非特權(quán)模式來 限制以該模式運行的軟件的活動。例如,軟件可被限于計算設備的存儲器的特
定子集。該非特權(quán)模式有時被稱為"環(huán)3"或"用戶模式"。 一般而言,計算設備 用戶應用程序以該非特權(quán)模式操作。
如果軟件應用程序以該非特權(quán)模式操作,則該應用程序可請求訪問無法直 接從該非特權(quán)模式訪問的存儲器部分。該應用程序可能希望例如在該存儲器部
分中執(zhí)行諸如"創(chuàng)建新文件"等操作。該請求通常經(jīng)由將該非特權(quán)模式代碼轉(zhuǎn)換 成特權(quán)模式代碼的調(diào)用門或其他系統(tǒng)調(diào)用指令來路由。該轉(zhuǎn)換確保非特權(quán)模式 無法直接訪問被指定為只可從特權(quán)模式訪問的存儲器。
根據(jù)這些模式,惡意代碼的制作者可訪問特權(quán)模式并安裝改變計算設備的 行為的惡意軟件。該惡意軟件可例如更改文件位置、隱藏文件、修改文件、改 變鍵擊等。這些惡意軟件中的某一些可包括"rootkit"(根套件),其不僅改變 計算設備的行為而且將其自身隱藏在特權(quán)模式的存儲器中。在計算設備上運行 的反病毒應用程序因此可能無法發(fā)現(xiàn)該隱藏的rootkit,由此允許該惡意軟件繼 續(xù)其惡意行動。此外,這些惡意軟件可如以下所討論地遮蔽(patch over)操作 系統(tǒng)的內(nèi)置保護系統(tǒng)。
惡意軟件制作者可訪問特權(quán)模式并且以各種方式將惡意軟件加載到計算 設備上,包括通過欺騙計算設備用戶不知不覺地將惡意軟件安裝到該用戶自己 的計算設備上。結(jié)果,當前操作系統(tǒng)通常采用一個或多個保護系統(tǒng)來檢測這些 惡意軟件。這些保護系統(tǒng)通常監(jiān)視某些重要的操作系統(tǒng)資源以檢測對這些資源 的任何改變。如果這一保護系統(tǒng)檢測到這一改變,則該保護系統(tǒng)可判定該特定資源已被惡意軟件感染。這些保護系統(tǒng)還可向用戶的反病毒應用程序提供當前 駐留在非特權(quán)模式的存儲器中的應用程序的列表。當然,如果惡意軟件成功隱 藏,則它不會出現(xiàn)在所提供的列表上。此外,如果惡意軟件成功遮蔽保護系統(tǒng), 則該保護系統(tǒng)可能無法運行或無法以其他方式檢測對重要的操作系統(tǒng)資源的 任何改變。
雖然這些保護系統(tǒng)可以是有效的,但它們也可具有幾個弱點。第一,這些 系統(tǒng)通常依賴于隱匿并由此容易在被惡意軟件標識的情況下受到惡意利用。 即,如果惡意軟件解密了保護系統(tǒng)的身份并定位了該保護系統(tǒng),則該惡意軟件 可禁用該保護系統(tǒng)本身。惡意軟件制作者還可指示其他人如何做同樣的事情。
此外并且與第一個弱點有關(guān),這些保護系統(tǒng)一般在與操作系統(tǒng)相同的保護范圍 內(nèi)操作(例如,在特權(quán)模式自身中)。因此,如果惡意軟件獲得對特權(quán)模式的 訪問權(quán)并且能夠去除隱匿保護系統(tǒng)的屏蔽,則保護系統(tǒng)自身容易受到攻擊。最 后,這些保護系統(tǒng)與操作系統(tǒng)或特權(quán)模式同時初始化。因此,如果惡意軟件或 惡意軟件制作者在該初始化之前獲得對計算設備的控制,則它或他可防止保護 系統(tǒng)初始化。
概述
本文描述了能夠使得保護代理能從不可從操作系統(tǒng)特權(quán)模式訪問的存儲
器中確定操作系統(tǒng)的一個或多個資源是否已被修改的工具。在某些實施例中, 這些工具可使得保護代理能夠駐留在虛擬機監(jiān)控程序中。在其他實施例中,這
些工具可使得保護代理能夠駐留在由虛擬機監(jiān)控程序提供的不同的虛擬分區(qū) 中。通過在操作系統(tǒng)特權(quán)模式之外操作,保護代理可較不易受到在操作系統(tǒng)特 權(quán)模式中操作的實體的攻擊。
提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的 一些概念。本概述不旨在標識所要求保護的主題的關(guān)鍵或必要特征,也不旨在 用于幫助確定所要求保護的主題的范圍。例如,術(shù)語"工具"可以指上述上下文 和通篇文檔所準許的系統(tǒng)、方法、計算機可讀指令、和/或技術(shù)。
附圖簡述
圖1示出了工具的各個實施例可在其中操作的示例性操作環(huán)境。 圖2展示了圖l所示模塊的不同的計算設備存儲器權(quán)限。 圖3表示圖1所示模塊中的某一些駐留在其中的計算設備存儲器的不同部分。
圖4是示出虛擬機監(jiān)控程序可保護與保護代理相關(guān)聯(lián)的存儲器部分并設 置定時器以運行該代理的示例性方式的流程圖。
圖5示出了具有能夠?qū)⑽锢硖幚砥魈摂M化為多個操作系統(tǒng)虛擬處理器和 保護代理虛擬處理器的虛擬機監(jiān)控程序的示例性體系結(jié)構(gòu)。
圖6示出了圖5的物理處理器在各虛擬處理器中可分配到多少帶寬。
圖7是示出工具可啟用并運行駐留在不可從操作系統(tǒng)特權(quán)模式訪問的存
儲單元的保護代理的某些方式的示例性過程。
圖8是示出工具可更改虛擬機監(jiān)控程序以啟用并運行駐留在不可從操作 系統(tǒng)特權(quán)模式訪問的存儲單元的保護代理的某些方式的示例性過程。
圖9是示出工具可通過向虛擬機監(jiān)控程序作出請求來創(chuàng)建保護代理特權(quán) 模式的某些方式的示例性過程。
圖10是示出工具可通過將真實計算機處理器虛擬化為其中至少一個用于 運行保護代理的多個虛擬計算機處理器來創(chuàng)建保護代理特權(quán)模式的某些方式 的示例性過程。
圖11是示出工具可使得能夠添加不存在于底層物理處理器上的特權(quán)模式 的某些方式的示例性過程。
貫穿本公開和各附圖,使用相同的標號來引用相同的組件和特征。
詳細描述 概覽
下文描述了能夠以使得保護代理不可從操作系統(tǒng)特權(quán)模式更改或訪問的 方式操作該保護代理的工具。這些工具因此使得能夠?qū)ΡWo代理本身進行保 護,由此確保保護代理檢測對重要的操作系統(tǒng)資源的更改的能力。另外,這些 工具可響應于檢測到資源更改或響應于所嘗試的對保護代理本身的修改來關(guān) 閉操作系統(tǒng)或操作系統(tǒng)特權(quán)模式。此外,這些工具可使得保護代理能夠?qū)Σ僮飨到y(tǒng)資源強制實施不變性,而無需在此之后檢測資源修改。
以下在標題為"示例性操作環(huán)境"的章節(jié)中闡明這些工具可在其中啟用這 些和其它動作的環(huán)境。之后是標題為"自主保護代理"的章節(jié)并且該章節(jié)包括 兩小節(jié)。標題為"虛擬機監(jiān)控程序保護代理"的第一小節(jié)描述了保護代理可駐 留在虛擬機監(jiān)控程序中并在其中執(zhí)行的一種示例性方式。這之后是標題為"虛 擬分區(qū)保護代理"的另一小節(jié),該小節(jié)描述了保護代理可居留在與操作系統(tǒng)的 分區(qū)分開的虛擬分區(qū)中并在其中執(zhí)行的一種示例性方式。
之后是標題為"自主保護代理特權(quán)模式"的另一章節(jié)并且該章節(jié)也包括兩 小節(jié)。第一小節(jié)描述了虛擬機監(jiān)控程序定時器可將保護代理特權(quán)模式添加到底 層處理器的一種示例性方式,并且標題為"向虛擬機監(jiān)控程序作出的保護請 求"。之后是標題為"保護代理虛擬處理器"的小節(jié)并且該小節(jié)描述了可創(chuàng) 建保護代理特權(quán)模式的另一種方式,在這該實例中使用包括被配置成以保護代 理特權(quán)模式運行保護代理的一個虛擬處理器在內(nèi)的多個虛擬處理器。之后是標 題為"工具的示例性使用"的章節(jié)并且該章節(jié)描述了在操作中的先前描述的工 具的示例。最后,標題為"工具的其他實施例"的章節(jié)描述了其中這些工具可 起作用的各種其他實施例和方式。包括這些章節(jié)標題和概述的本概覽是出于方 便讀者的目的而提供的,而非旨在限制權(quán)利要求或所命名的各節(jié)的范圍。示例性操作環(huán)境
在詳細描述這些工具之前,提供示例性操作環(huán)境的以下討論來幫助讀者理 解可采用這些工具的各發(fā)明性方面的某些方式。以下描述的環(huán)境僅構(gòu)成一個示 例且并非旨在將這些工具的應用限于任一個特定操作環(huán)境??墒褂闷渌h(huán)境而 不背離所要求保護的主題的精神和范圍。例如,雖然以下各章節(jié)以單個保護代 理描述了各實施例,但也可利用多個保護代理。在某些實例中,這些保護代理 可獨立或并排運行。在這些實例中,保護代理通常只能夠訪問其相應分區(qū)內(nèi)的 存儲器。此外,可同時利用以下所描述的各種技術(shù)。即,不同的保護代理可在 相同的操作環(huán)境中利用不同的技術(shù)。
轉(zhuǎn)向當前示例,圖1在100處概括地示出了一個這樣的示例性操作環(huán)境。 該環(huán)境包括計算設備102,其本身包括一個或多個處理器104以及計算機可讀
介質(zhì)106。計算機可讀介質(zhì)106包括虛擬機監(jiān)控程序108 (例如,管理程序), 其可使得該一個或多個處理器能夠虛擬化為多個虛擬處理器。虛擬機監(jiān)控程序 108還可啟用多個虛擬分區(qū)。可使一個或多個虛擬處理器與每一個分區(qū)相關(guān)聯(lián), 并在可用的物理處理器上調(diào)度這些虛擬處理器。如圖所示,在某些實施例中, 虛擬機監(jiān)控程序可啟用第一虛擬分區(qū)IIO和第二虛擬分區(qū)112。如以下所詳細 討論的,這些分區(qū)可用于將操作系統(tǒng)功能與保護代理服務分開。
同樣如圖所示,計算機可讀介質(zhì)106還包括操作系統(tǒng)(OS) 114以及一個 或多個用戶應用程序116。操作系統(tǒng)114向用戶應用程序116提供操作系統(tǒng)服 務118,由此允許這些應用程序在計算設備上運行。另外, 一個或多個操作系 統(tǒng)資源120駐留在操作系統(tǒng)上。示例性資源包括系統(tǒng)服務分派表(SSDT)、 中斷分派表(IDT)、全局描述符表(GDT)等。同樣如圖所示,操作系統(tǒng)可 包括惡意軟件122 (即,具有惡意企圖的代碼),其可能已經(jīng)以上述方式或以 其他方式被加載到計算設備上。以下所討論的一個或多個保護代理可檢測惡意 軟件對操作系統(tǒng)資源作出的改變,并且響應于該檢測來采取防御動作。如果代 理作出這一判定,則該保護代理可關(guān)閉操作系統(tǒng)和/或計算設備或可采取其他抵 抗動作。
在討論了計算設備的結(jié)構(gòu)之后,注意力現(xiàn)在轉(zhuǎn)向存在于底層的一個或多個 物理處理器104上的不同的特權(quán)模式。虛擬機監(jiān)控程序特權(quán)模式124表示圖1所示的最具特權(quán)模式。該特權(quán)模式可訪問所有或基本上所有的設備資源和存儲 器。從虛擬機監(jiān)控程序特權(quán)模式124,虛擬機監(jiān)控程序可調(diào)度處理器并允許訪 問針對每一個虛擬分區(qū)的存儲器區(qū)域。雖然在分區(qū)內(nèi)運行的操作系統(tǒng)可能相信 它控制著物理處理器的所有資源,但實際上它只控制如由虛擬機監(jiān)控程序來確 定的部分。
具有比虛擬機監(jiān)控程序特權(quán)模式少的特權(quán)的操作系統(tǒng)特權(quán)模式126可訪
問所有操作系統(tǒng)資源120以及大多數(shù)或所有操作系統(tǒng)存儲器。然而,該特權(quán)模 式不可訪問與諸如第二虛擬分區(qū)112等另一分區(qū)相關(guān)聯(lián)的任何資源或存儲器。
然而,因為該特權(quán)模式一般可訪問所有操作系統(tǒng)存儲器,所以它有時被稱為"具
有特權(quán)的模式(Privileged Mode)"。"環(huán)0"、"管理員模式"或"內(nèi)核模式"也可 描述該特權(quán)模式。如上所述,在操作系統(tǒng)特權(quán)模式126中運行的用戶應用程序 一般能夠執(zhí)行處理器所提供的除為虛擬機監(jiān)控程序模式保留的指令之外的大 多數(shù)指令。
該操作系統(tǒng)特權(quán)模式與有時被稱為"非特權(quán)模式"、"環(huán)3"或簡稱為"用戶模 式"的用戶特權(quán)模式128形成對比。同樣如上所述,用戶應用程序在從用戶特 權(quán)模式128操作時可能無法訪問或更改與操作系統(tǒng)相關(guān)聯(lián)的特定存儲器。 一般 而言,計算設備用戶應用程序在執(zhí)行基本操作時以該用戶特權(quán)模式操作。
除了上述模式之外,圖1還示出了第二虛擬分區(qū)特權(quán)模式130和保護代理 特權(quán)模式132。如將在以下詳細討論的,雖然一般不具有與虛擬機監(jiān)控程序特 權(quán)模式一樣多的存儲器訪問權(quán),但保護代理特權(quán)模式132可訪問操作系統(tǒng)特權(quán) 模式不可訪問的存儲器部分。由此,該特權(quán)模式可比操作系統(tǒng)特權(quán)模式更具特
權(quán),但比虛擬機監(jiān)控程序特權(quán)模式所具有的特權(quán)少。
同樣如將在以下詳細描述的,第二虛擬分區(qū)特權(quán)模式一般可訪問與第二虛 擬分區(qū)112相關(guān)聯(lián)的存儲器。另外,該模式可訪問第一虛擬分區(qū)。這一附加訪 問可例如允許駐留在第二虛擬分區(qū)中的保護代理掃描與第一虛擬分區(qū)及其對 應操作系統(tǒng)相關(guān)聯(lián)的存儲器。該模式一般不可訪問虛擬機監(jiān)控程序,并且因此 具有比虛擬機監(jiān)控程序特權(quán)模式少的特權(quán)。然而,第二虛擬分區(qū)特權(quán)模式仍然 可訪問操作系統(tǒng)特權(quán)模式不可訪問的存儲器部分。
同時,圖2示出了計算設備存儲器權(quán)限200。該附圖由此表示可由圖l的模塊訪問的存儲器數(shù)量。如圖所示,以虛擬機監(jiān)控程序特權(quán)模式124操作的虛 擬機監(jiān)控程序108在所示的所有模塊中具有最多的存儲器權(quán)限。事實上,該虛
擬機監(jiān)控程序駐留在存儲器部分202中并且只有它可訪問存儲器部分202。接 著,保護代理204 (例如,圖l所示保護代理中的任一個)以保護代理特權(quán)模 式132操作并且可訪問除了對應于虛擬機監(jiān)控程序的部分202之外的所有存儲 器。然而,該保護代理可訪問該保護代理本身駐留在其中的存儲器部分206。
同時,操作系統(tǒng)114以操作系統(tǒng)特權(quán)模式126操作并且可訪問除部分202 和部分206之外的所有存儲器。雖然操作系統(tǒng)可能無法訪問與保護代理相關(guān)聯(lián) 的存儲器部分206,但該操作系統(tǒng)及其相關(guān)聯(lián)的特權(quán)模式可訪問存儲器部分 208。該存儲器部分208有時被稱為內(nèi)核存儲器或操作系統(tǒng)的最低層組件,并 且一般包含圖1所示的資源。然而,即使惡意軟件在存儲器部分208中加載并 操作,該惡意軟件也無法訪問與保護代理相關(guān)聯(lián)的存儲器部分206。
最后,圖2示出用戶應用程序116只可訪問存儲器部分210。這些用戶應 用程序和對應的用戶特權(quán)模式不可訪問與操作系統(tǒng)的最低層組件相關(guān)聯(lián)的存 儲器部分208。使用該操作環(huán)境的概念,以下四個章節(jié)詳細描述了可使得保護 代理不可從操作系統(tǒng)特權(quán)模式更改或訪問的各示例性方式。
自主保護代理
以下章節(jié)描述了能夠從不可由在操作系統(tǒng)特權(quán)模式中操作的實體訪問的 存儲器中確定一個或多個操作系統(tǒng)資源是否已被修改的工具。由此,這些工具 可允許保護代理駐留在除了操作系統(tǒng)存儲器本身的存儲單元之外的存儲單元。 更具體而言,以下各小節(jié)描述了保護代理可如何駐留在虛擬機監(jiān)控程序或自主 虛擬分區(qū)中。
虛擬機監(jiān)控程序保護代理
該小節(jié)描述了保護代理134可如何如圖1所示地駐留在虛擬機監(jiān)控程序本 身中。因為操作系統(tǒng)特權(quán)模式無法訪問虛擬機監(jiān)控程序,所以該存儲單元保護 了保護代理免遭位于操作系統(tǒng)存儲器中的惡意軟件的攻擊。為了從該存儲單元 進行操作,保護代理接收該保護代理134可監(jiān)視的一個或多個操作系統(tǒng)資源120的標識。該標識可經(jīng)由資源標識符136來接收。如圖所示,操作系統(tǒng)可通 過應用程序編程接口 (API)調(diào)用來將該信息提供給虛擬機監(jiān)控程序,或者該
操作系統(tǒng)可以按清單138的形式來提供該信息。如上所述,這些資源可包括 SSDT、 IDT禾BGDT。
一旦保護代理接收到了資源標識,該保護代理134就將保護代理服務140 擴展至操作系統(tǒng)114。這些保護代理服務一般包括確定所標識資源中的任一 個是否已被更改。如果作出這一判定,則保護代理或虛擬機監(jiān)控程序可例如關(guān) 閉操作系統(tǒng)。保護代理服務還可包括針對被標記為不可更改(例如,"只讀") 的任何資源強制實施不變性。
采用這一體系結(jié)構(gòu)開始于加載并初始化能夠主存一個或多個操作系統(tǒng)的 虛擬機監(jiān)控程序。在該示例中,虛擬機監(jiān)控程序主存單個操作系統(tǒng)114,該操 作系統(tǒng)本身在虛擬機監(jiān)控程序加載之后開始初始化。在操作系統(tǒng)初始化期間, 與該操作系統(tǒng)的最低層組件相關(guān)聯(lián)的存儲器部分208 (例如,內(nèi)核)首先加載。 操作系統(tǒng)資源120 (例如,SSDT、 GDT、 IDT)中的部分或全部一般居留在該 存儲器部分208中。
在操作系統(tǒng)初始化之前或同時,保護代理134可開始從虛擬機監(jiān)控程序中 運行。如上所述,保護代理一般接收一組一個或多個操作系統(tǒng)資源的標識并確 定所標識的資源中的一個或多個是否已被更改。注意,每一個所標識資源通常 都包括處于多個存儲單元的多個組件,保護代理可監(jiān)視這些組件中的每一個以 完全保護整個資源。例如,如果清單將SSDT標識為將要監(jiān)視和保護的資源, 則保護代理不僅保護實際表而且還保護SSDT的其他組件。例如,保護代理還 可監(jiān)視并掃描指向該表的存儲單元的寄存器。此外,保護代理還可監(jiān)視將SSDT 的虛擬地址轉(zhuǎn)換成物理地址的存儲器轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)(例如,頁表)。如果保護 代理無法這樣做,則惡意代碼可創(chuàng)建具有不同頁表映射的另一張表(即,繞過 SSDT本身)。
除了標識之外,保護代理還可接收指示該保護代理如何保護相應資源的保 護屬性。例如,保護代理可接收SSDT資源的標識以及相應的保護屬性"只讀"。 該保護代理因此獲悉SSDT應保持只讀并由此不應被更改。"初始化只讀"是 另一可能的保護屬性,其指示保護代理相應資源可在初始化期間寫入一次,但
13在此之后該資源應保持只讀。
保護代理既可主動也可被動地按多種方式接收資源的標識和資源保護屬 性。例如,操作系統(tǒng)可提供標識保護代理可監(jiān)視的資源的經(jīng)數(shù)字簽名的清單。 該經(jīng)數(shù)字簽名的清單可以按多種方式標識資源,諸如通過名稱(例如,SSDT、
IDT、 GDT等)或通過將資源映射到存儲器部分208中的對應存儲單元的地址
等。在后面的實例中,該清單可標識資源的來賓物理地址、來賓虛擬地址或系
統(tǒng)物理地址。注意,在某些情況下,可將來賓物理地址映射到實際系統(tǒng)物理地
址以便發(fā)現(xiàn)對應資源組件的實際物理地址。
在虛擬機監(jiān)控程序或保護代理接收到清單之后,這些組件可確定該清單是
否已被篡改或修改。如果虛擬機監(jiān)控程序或保護代理作出這一判定,則該虛擬
機監(jiān)控程序或保護代理可選擇使啟動操作系統(tǒng)失敗。另外,可使與資源列表相
關(guān)聯(lián)的加密無效,由此保護其安全性。
作為對清單的補充或替換,保護代理可經(jīng)由對虛擬機監(jiān)控程序的一個或多
個應用程序編程接口 (API)調(diào)用(例如,"超調(diào)用(hypercall)")來接收資源 和保護屬性標識。在操作系統(tǒng)初始化時,該操作系統(tǒng)(以及或許操作系統(tǒng)的最 低層組件208)可作出對虛擬機監(jiān)控程序的超調(diào)用,從而將可監(jiān)視和保護的特 定資源通知給保護代理。這些超調(diào)用可以按與上述相同的方式來標識相關(guān)資 源。同樣如上所述,這些超調(diào)用還可標識資源的保護屬性。
在利用經(jīng)數(shù)字簽名的清單以及一個或多個超調(diào)用的實施例中,保護代理可 在操作系統(tǒng)引導之前或同時首先掃描清單中所標識的資源。在該初始掃描之 后,操作系統(tǒng)然后可作出對虛擬機監(jiān)控程序的超調(diào)用以指示保護代理確定該超 調(diào)用所標識的頁面是否已被更改。清單由此在每一次操作系統(tǒng)引導時標識要掃 描的資源,而超調(diào)用在其相應初始化時標識要動態(tài)掃描的資源。
在標識了要監(jiān)視的資源后,保護代理然后確定資源(例如,上述SSDT的 所有部分)是否己被更改。保護代理還可對所標識的資源強制實施不變性。例 如,保護代理可確保被指定為"只讀"的任何資源都不變?yōu)?可寫"。
為了以此方式監(jiān)視并保護資源,在虛擬機監(jiān)控程序中執(zhí)行的代碼可采用虛 擬機監(jiān)控程序偵聽管理器(例如,圖1的管理器146)。如果這樣指示,則該 偵聽管理器可在所標識資源的各個組件上注冊偵聽。由于該注冊,虛擬機監(jiān)控
14程序中的保護代理現(xiàn)在可在作出訪問或修改這些所標識資源的嘗試的情況下 接收偵聽。由此,保護代理可校驗和掃描所標識資源的各個組件。它還可主動 阻止修改這些資源的嘗試。
在某些實施例中,保護代理掃描資源并確定資源的初始狀態(tài)以供在比較將 來掃描的結(jié)果時使用。在其他實施例中,保護代理已經(jīng)知道資源的初始狀態(tài)以 比較將來掃描的結(jié)果。在任何情況下,保護代理都可計算該初始狀態(tài)的散列或 校驗和值。在該計算之后,保護代理在操作系統(tǒng)引導之前、之后或同時掃描資 源。在掃描后,保護代理計算結(jié)果的散列或校驗和,并將此與初始狀態(tài)散列或 校驗和值進行比較。如果相等,則保護代理確定對應的資源尚未被更改。當然, 保護代理可繞過散列或校驗和值并改為直接將初始狀態(tài)與掃描結(jié)果進行比較。
然而,如果值不同,則保護代理和/或虛擬機監(jiān)控程序可采取一個或多個 響應動作。首先,保護代理本身可關(guān)閉操作系統(tǒng)或操作系統(tǒng)特權(quán)模式,或者它 可指示虛擬機監(jiān)控程序來這樣做。再一次,因為保護代理駐留在虛擬機監(jiān)控程 序中并且因為虛擬機監(jiān)控程序主存操作系統(tǒng),所以這兩個組件能夠關(guān)閉操作系 統(tǒng)。此外,因為保護代理駐留在虛擬機監(jiān)控程序中,所以即使從操作系統(tǒng)特權(quán) 模式也無法篡改操作系統(tǒng)的關(guān)閉。
除了關(guān)閉操作系統(tǒng)之外,保護代理和/或虛擬機監(jiān)控程序可首先向操作系 統(tǒng)警告即將來臨的關(guān)閉。虛擬機監(jiān)控程序和操作系統(tǒng)之間的通信信道可允許這 一通信。在替換實施例中,保護代理和/或虛擬機監(jiān)控程序可向存儲單元寫入警 告或發(fā)信號通知操作系統(tǒng)所監(jiān)視的事件。
不考慮是否已給予警告,操作系統(tǒng)關(guān)閉可以是突然的或者優(yōu)雅的。在前一 種情況下,虛擬機監(jiān)控程序可僅在獲悉不同的散列或校驗和值后立即關(guān)閉操作 系統(tǒng)。在后一種情況下,虛擬機監(jiān)控程序可給予操作系統(tǒng)一特定時間量來將其 自身干凈地關(guān)閉。此時,操作系統(tǒng)可例如關(guān)閉任何打開的文件并轉(zhuǎn)儲清除任何 相應的數(shù)據(jù)。操作系統(tǒng)還可釋放所分配的資源。此外,該關(guān)閉可利用兩種方法。 例如,如果虛擬機監(jiān)控程序主存多個分區(qū),則它可立即關(guān)閉具有不同的散列或 校驗和值的分區(qū),同時允許其他分區(qū)干凈地關(guān)閉。在任何情況下,關(guān)閉的方式 可根據(jù)策略來配置并且可以是可調(diào)整的。
除了關(guān)閉和相應的警告之外,保護代理和/或虛擬機監(jiān)控程序可響應于對所標識資源的不被允許的更改來采取后引導動作。例如,虛擬機監(jiān)控程序和/ 或保護代理可在重新引導操作系統(tǒng)時將資源更改通知給操作系統(tǒng)。作為響應, 操作系統(tǒng)可執(zhí)行反病毒掃描以檢測任何惡意軟件是否的確駐留在諸如部分208 (例如,內(nèi)核)等操作系統(tǒng)存儲器中。此外,虛擬機監(jiān)控程序可將操作系統(tǒng)引 導至安全模式中,或者操作系統(tǒng)本身可選擇引導至安全模式中。同樣響應于通 知,操作系統(tǒng)可將其本身標識為已遭到攻擊,并由此可不允許其本身訪問其耦 合的任何網(wǎng)絡。
虛擬分區(qū)保護代理
保護代理(例如,圖1的保護代理142)可駐留在單獨的虛擬分區(qū)(例如, 圖1的第二虛擬分區(qū)112)中,而不是駐留在虛擬機監(jiān)控程序本身中。在這些 實施例中,該單獨分區(qū)擔當虛擬機監(jiān)控程序的可信代表。保護代理142由此不 可從操作系統(tǒng)特權(quán)模式訪問。如上所述,虛擬機監(jiān)控程序108允許這樣的對計 算設備102的虛擬化。雖然虛擬機監(jiān)控程序可將計算設備虛擬化為任何數(shù)量的 分區(qū),但圖l示出了主存操作系統(tǒng)的第一分區(qū)以及主存保護代理的第二分區(qū)。
保護代理駐留在其中的第二虛擬分區(qū)在某些情況下可以是專用安全分區(qū),其主 要或唯一功能是運行保護代理。在其他實施例中,該第二虛擬分區(qū)可執(zhí)行附加 功能,諸如主存另一操作系統(tǒng)等。
駐留在第二虛擬分區(qū)中的保護代理142能夠執(zhí)行許多或所有與以上關(guān)于 駐留在虛擬機監(jiān)控程序中的保護代理134所描述的相同的功能。g卩,保護代理 142可主動或被動地接收一個或多個操作系統(tǒng)資源120的標識。響應于該標識, 該保護代理同樣可擴展保護代理服務140,其一般包括確定所標識資源中的一 個或多個是否已被更改,并且如果是則采取響應動作。這些服務還可包括強制 實施指定資源的不變性。保護代理142可經(jīng)由與上述技術(shù)類似的技術(shù)來執(zhí)行這 些功能。
如圖所示,保護代理142可從第二虛擬分區(qū)特權(quán)模式130訪問,但不可從 操作系統(tǒng)特權(quán)模式126訪問。由此,所得體系結(jié)構(gòu)允許對保護代理本身進行保 護以免遭位于操作系統(tǒng)中的任何惡意軟件的攻擊,即使該惡意軟件駐留在與該 操作系統(tǒng)的最低層組件相關(guān)聯(lián)的存儲器部分108中。自主保護代理特權(quán)模式
本章節(jié)描述了能夠使得與保護代理相關(guān)聯(lián)的操作系統(tǒng)存儲器部分不可從 操作系統(tǒng)特權(quán)模式更改或訪問,同時仍舊允許該存儲器部分物理地駐留在操作 系統(tǒng)物理存儲空間中。這些工具由此創(chuàng)建自主保護代理特權(quán)模式,其可訪問與 保護代理相關(guān)聯(lián)的存儲器部分以及可在操作系統(tǒng)特權(quán)模式中訪問的其余存儲 器部分。該特權(quán)模式因此比操作系統(tǒng)特權(quán)模式更具特權(quán)。
第一小節(jié)描述了能夠通過請求虛擬機監(jiān)控程序保護與保護代理相關(guān)聯(lián)的 存儲器部分來創(chuàng)建保護代理特權(quán)模式的工具。同時,第二小節(jié)描述了允許通過 將物理處理器虛擬化為包括用于運行保護代理的專用虛擬處理器在內(nèi)的多個 虛擬處理器來創(chuàng)建保護代理特權(quán)模式的工具。
向虛擬機監(jiān)控程序作出的保護請求
本小節(jié)描述了保護代理可如何請求虛擬機監(jiān)控程序保護與保護代理相關(guān) 聯(lián)的存儲器并由此對保護代理本身進行保護。該保護導致保護代理144以保護
代理特權(quán)模式132操作,如圖1所示。如圖所示,保護代理144在移位到保護
代理特權(quán)模式之前最初可駐留在操作系統(tǒng)特權(quán)模式中。在以該后一特權(quán)模式操
作時,該保護代理一般不會受到來自以操作系統(tǒng)特權(quán)模式126操作的實體的攻 擊的影響。
在以保護代理特權(quán)模式132操作時,實體具有比在以操作系統(tǒng)特權(quán)模式 126操作的情況下稍多的特權(quán),但所具有的特權(quán)仍然少于虛擬機監(jiān)控程序特權(quán) 模式124。如圖2所示,以該特權(quán)模式操作的保護代理可訪問除與該保護代理 本身相關(guān)聯(lián)的存儲器部分206之外的與操作系統(tǒng)相關(guān)聯(lián)的所有存儲器。虛擬機 監(jiān)控程序108強制實施所添加的保護代理可訪問性。
圖3和4示出了創(chuàng)建該保護代理特權(quán)模式的示例性方式。圖3描繪了所有 或基本上所有計算設備存儲器300。計算設備存儲器300包括與操作系統(tǒng)特權(quán) 模式(例如,內(nèi)核)相關(guān)聯(lián)的存儲器部分302以及與用戶特權(quán)模式相關(guān)聯(lián)的存 儲器部分304。如圖所示,存儲器部分302還包括與保護代理144相關(guān)聯(lián)的存 儲器部分306以及驅(qū)動程序加載在其中的存儲器部分308。
17如圖4所示,創(chuàng)建保護代理特權(quán)模式132的過程400通過初始化存儲器部 分302 (例如,內(nèi)核)在動作1開始。在動作2,存儲器部分306或保護代理 144本身調(diào)用虛擬機監(jiān)控程序108來請求該虛擬機監(jiān)控程序保護與該保護代理 相關(guān)聯(lián)的存儲器部分。在這樣請求時,保護代理或?qū)拇鎯ζ饕蟛辉试S更 改在操作系統(tǒng)特權(quán)模式中運行的代碼或以其他方式接觸該存儲器部分306。保 護代理還可向虛擬機監(jiān)控程序108進行自我驗證(例如,通過數(shù)字簽名)。該 存儲器部分或保護代理本身還可請求虛擬機監(jiān)控程序設置定時器并在該定時 器到期時運行該保護代理。動作3表示虛擬機監(jiān)控程序響應于該請求來保護該 存儲器免遭在操作系統(tǒng)特權(quán)模式中操作的實體的攻擊并設置定時器。注意,因 為與保護代理相關(guān)聯(lián)的該存儲器部分306現(xiàn)在是不可更改和/或不可從操作系 統(tǒng)特權(quán)模式訪問的,所以該保護代理現(xiàn)在駐留在保護代理特權(quán)模式中。
在動作4,驅(qū)動程序加載到存儲器部分308中。注意,動作2的請求和動 作3的相應保護一般在驅(qū)動程序加載到存儲器中之前進行,因為惡意軟件可能 以驅(qū)動程序的形式存在。如在以下"對工具的示例性使用"章節(jié)中所討論地,惡 意軟件制作者通常欺騙用戶將惡意驅(qū)動程序安裝到計算設備中。如果一個或多 個惡意驅(qū)動程序的確在保護存儲器部分306之前加載到存儲器中,則這些惡意 驅(qū)動程序可能遮蔽該請求以保護其本身。這一遮蔽將由此經(jīng)由虛擬機監(jiān)控程序 阻礙保護代理的周期性運行,并因此阻礙保護代理特權(quán)模式的創(chuàng)建。然而,通 過請求虛擬機監(jiān)控程序在早期設置定時器,該過程確保在操作系統(tǒng)特權(quán)模式中 運行的代碼無法這樣禁止保護代理的周期性運行。
同時,動作5可能在驅(qū)動程序已經(jīng)被加載后的某一時刻進行。如圖所示, 動作5表示虛擬機監(jiān)控程序定時器到期,并因此運行保護代理。在運行時,保 護代理144執(zhí)行與先前章節(jié)中所討論的功能相似或相同的功能。同樣如上所述, 保護代理可響應于確定一個或多個所標識資源已被更改來采取動作。保護代理 還可響應于來自在操作系統(tǒng)特權(quán)模式中操作的實體對保護代理或其對應存儲 器的訪問或更改嘗試來采取這一動作。
動作6表示保護代理在該保護代理完成運行時通知虛擬機監(jiān)控程序。最 后,動作7表示重復動作3、 5和6。由此,虛擬機監(jiān)控程序可重置其定時器并 以諸如每100毫秒(ms)等周期性間隔運行保護代理。通過在虛擬機監(jiān)控程序處設置故障安全定時器,過程400由此消除了操作 系統(tǒng)代碼篡改與保護代理相關(guān)聯(lián)的存儲器部分的能力。由此,該過程確保保護 代理將繼續(xù)運行并且不會被在操作系統(tǒng)特權(quán)模式中行動的惡意軟件遮蔽。相 反,保護代理將在自主特權(quán)模式中運行,同時仍舊駐留在分配給操作系統(tǒng)的物 理存儲器中。
保護代理虛擬處理器
本小節(jié)描述了虛擬機監(jiān)控程序可如何通過調(diào)度虛擬處理器運行保護代理
144來創(chuàng)建保護代理特權(quán)模式。圖5示出了包括將計算設備102虛擬化為各自 包括一操作系統(tǒng)的兩個分區(qū)的虛擬機監(jiān)控程序108的體系結(jié)構(gòu)500。如圖所示, 該示例中的計算設備包括兩個真實處理器104(a)和104(b),虛擬處理器可在這 兩個處理器中的每一個上調(diào)度多個虛擬處理器。同樣如圖所示,虛擬機監(jiān)控程 序創(chuàng)建第一虛擬分區(qū)502和第二虛擬分區(qū)504。第一虛擬分區(qū)包括用于運行第 一操作系統(tǒng)的第一虛擬處理器506。類似地,第二虛擬分區(qū)包括用于運行第二 操作系統(tǒng)的第二虛擬處理器508。然而,在此實例中,虛擬機監(jiān)控程序還包括 用于運行諸如圖1的保護代理144等保護代理的保護代理虛擬處理器510。
為了創(chuàng)建體系結(jié)構(gòu)500,虛擬機監(jiān)控程序首先加載并初始化。如圖6所示, 虛擬機監(jiān)控程序然后虛擬化各個虛擬處理器并在這樣做時,分配真實處理器帶 寬600。為了開始該虛擬化和分配,虛擬機監(jiān)控程序在第一真實處理器上虛擬 化第一虛擬處理器。在當前示例中,該虛擬化是在如圖6所示的一對一的基礎 上完成的。即,只有該單個虛擬處理器506對應于真實處理器104(a),并且由 此虛擬機監(jiān)控程序?qū)⒃撜鎸嵦幚砥鞯乃袔挾挤峙浣o該虛擬處理器。虛擬機 監(jiān)控程序然后在第二真實處理器104(b)上虛擬化第二虛擬處理器508。然而, 虛擬機監(jiān)控程序保留第二真實處理器的帶寬的某一部分,而不是在一對一基礎 上。同樣如圖6所示,虛擬機監(jiān)控程序然后在第二真實處理器104(b)的其余帶
寬上虛擬化保護代理虛擬處理器510。
在第二真實處理器上操作的每一個虛擬處理器一般都在時間分片的基礎
上行動。即,第二虛擬處理器可在該第二虛擬處理器的操作掛起之前的某一時 間量內(nèi)在第二真實處理器上操作。此時,該第二真實處理器在某一其他時間量內(nèi)切換到保護代理虛擬處理器的操作。例如,第二虛擬處理器可在第二真實處 理器上操作90毫秒,此時該第二虛擬處理器的操作掛起并且保護代理虛擬處 理器的操作開始10毫秒。保護代理虛擬處理器對于兩個操作系統(tǒng)分區(qū)以及第 一和第二虛擬處理器兩者而言一般都是透明的。由此,兩個操作系統(tǒng)都相信其 對應的虛擬處理器對應于相應的真實處理器。
除了分配真實處理器帶寬之外,虛擬機監(jiān)控程序還管理每一個虛擬處理器
都可訪問的存儲器部分。在當前示例中,第一虛擬處理器可訪問與第一操作系 統(tǒng)相關(guān)聯(lián)的所有存儲器。同時,第二虛擬處理器可訪問除了與保護代理相關(guān)聯(lián) 的存儲器部分之外的與第二操作系統(tǒng)相關(guān)聯(lián)的所有存儲器。僅保護代理虛擬處 理器可訪問除了分配給第二操作系統(tǒng)的存儲器之外的與保護代理相關(guān)聯(lián)的存 儲器部分。
此外,第一和第二虛擬處理器只具有更改其相關(guān)聯(lián)存儲器的能力。由此, 操作其各自操作系統(tǒng)的虛擬處理器都無法更改與保護代理相關(guān)聯(lián)的存儲器部 分。然而,保護代理虛擬處理器可更改與該保護代理相關(guān)聯(lián)的存儲器,并且在 某些實施例中,也可更改與第二虛擬處理器相關(guān)聯(lián)的存儲器。
按照其程序化特性,保護代理虛擬處理器將周期性地運行保護代理。雖然
在某些實例中保護代理虛擬處理器可運行其他應用程序,但當前示例示出了專 用的保護代理虛擬處理器。由此,該虛擬處理器一般只用于周期性地運行保護 代理。同樣,保護代理可以按與上述保護代理相似或相同的方式執(zhí)行與上述保 護代理相似或相同的功能。
通過調(diào)度專用的保護代理虛擬處理器,虛擬機監(jiān)控程序確保保護代理將在 該處理器的控制下并以自主保護代理特權(quán)模式周期性地運行。此外,因為只有 該保護代理虛擬處理器可訪問與保護代理相關(guān)聯(lián)的存儲器部分,所以虛擬機監(jiān) 控程序保護該存儲器免遭操作系統(tǒng)中的代碼的攻擊。因此,在操作系統(tǒng)特權(quán)模 式中操作的惡意軟件無法遮蔽保護代理及防止保護代理運行。由此,該技術(shù)基 本上消除了操作系統(tǒng)篡改保護代理的能力。
對工具的示例性使用
在先前描述了能夠確保對保護代理進行保護的工具之后,以下章節(jié)僅描述了這些工具在操作中的一個示例。首先,想象計算機用戶在因特網(wǎng)上沖浪,并 且同時在特定網(wǎng)站上沖浪,具有惡意企圖的對話框在該用戶的顯示器上彈出。 該對話框請求用戶許可將某種惡意軟件安裝在該用戶的計算機上。盡管該請求 可以是直接的,但想象該對話框通常對該請求進行偽裝。例如,該對話框可虛 假地通知該用戶他或她中獎了。在這樣通知時,該對話框惡意地指示用戶鍵擊 該對話框上的"OK"按鈕以領(lǐng)取獎品。想象用戶的確選擇了 OK按鈕并且該用戶 選擇繼續(xù)所請求的操作而不管來自在計算設備上運行的軟件(例如,反病毒應 用程序)的一個或多個警告。
此時,計算設備開始安裝包含惡意軟件的驅(qū)動程序。如對于驅(qū)動程序一般 是如此的,該惡意驅(qū)動程序被準予訪問操作系統(tǒng)特權(quán)模式并加載到與該特權(quán)模 式相關(guān)聯(lián)的存儲器(例如,內(nèi)核)中。 一旦在內(nèi)核中加載,惡意驅(qū)動程序及其
附隨的惡意軟件本質(zhì)上具有對計算機的存儲器和操作系統(tǒng)的全權(quán)委托(carte blanch)訪問權(quán)。對于用戶而言不幸的是,想象該惡意軟件包括記錄用戶的鍵 擊的按鍵記錄器?,F(xiàn)在想象用戶導航到他或她的銀行網(wǎng)站并登入到他或她的銀 行賬戶。由于其記錄鍵擊的能力,按鍵記錄器獲悉該用戶的銀行賬戶密碼并將 該密碼通過因特網(wǎng)發(fā)送到該惡意驅(qū)動程序的制作者。
使情況變得更糟糕地,想象該惡意軟件是"rootkit",即嘗試主動對保護代 理和用戶的反病毒軟件進行隱藏的惡意軟件。在常規(guī)系統(tǒng)中,保護代理駐留在 內(nèi)核(即,在惡意軟件可訪問的存儲器)中。因此,在這些常規(guī)系統(tǒng)中,惡意 軟件可訪問保護代理并可嘗試對該保護代理隱藏其本身。如果成功,則對于保 護代理而言惡意軟件將會看上去并不存在于內(nèi)核中。因此,當用戶的反病毒軟 件調(diào)用保護代理并請求存在于計算機的存儲器中的所有應用程序的列表時,該 惡意軟件將不在其中。該不在其中致使反病毒軟件沒有能力知曉并移除惡意軟 件。此外,惡意軟件可遮蔽保護代理,由此從根本上防止該保護代理運行。由 此,保護代理可能無法注意到惡意軟件是否更改任何操作系統(tǒng)資源。
然而,想象用戶的計算設備上的保護代理駐留在存儲器中或以不可從操作 系統(tǒng)特權(quán)模式訪問的模式運行,而不是如在常規(guī)系統(tǒng)中地駐留在內(nèi)核中。因此, 當惡意驅(qū)動程序加載到內(nèi)核中時,它不可訪問保護代理駐留在其中的存儲器或 保護代理運行的模式。因此,驅(qū)動程序及其附隨惡意軟件不可訪問保護代理本身。惡意軟件由此無法對保護代理隱藏其本身并因此也無法對反病毒軟件隱藏 其本身。因此,當反病毒軟件向保護代理詢問存在于計算機的存儲器中的所有 應用程序的列表時,所返回的列表包括惡意軟件。反病毒軟件然后將該代碼識 別為惡意軟件并因此將其從用戶的計算機設備中移除。此外,保護代理本身可 注意到惡意軟件是否更改操作系統(tǒng)資源并作為響應,可關(guān)閉用戶的計算設備。 因此,通過駐留在存儲器中或以不可從操作系統(tǒng)特權(quán)模式訪問的模式運 行,此處所描述的各實施例防止惡意軟件對保護代理隱藏其本身或遮蔽保護代 理。在以上示例中,用戶的計算設備因此能夠從該機器中移除惡意軟件或者在 某些實例中,在惡意軟件更改重要資源時關(guān)閉系統(tǒng)。在任一種情況下,這些實 施例都用于減少惡意軟件期望造成損害的有效性。
工具的其它實施例
以上各章節(jié)描述了其中使得保護代理不可從操作系統(tǒng)特權(quán)模式更改或訪 問的幾個特定示例。在本章節(jié)中,描述工具的其他實施例,諸如將不存在于底 層處理器上的特權(quán)模式添加到處理器等。
這些示例性實施例作為圖7到11的過程700到1100的一部分來描述。參 考圖1到6描述或示出的這些過程以及各示例性過程能以任何合適的硬件、軟 件、固件、或其組合來實現(xiàn);在軟件和固件的情況下,這些過程表示被實現(xiàn)為 存儲在計算機可讀介質(zhì)中并由一個或多個處理器執(zhí)行的計算機可執(zhí)行指令的 操作集合。本章節(jié)中所描述的工具的這些實施例不旨在限制該工具或權(quán)利要求 的范圍。
參考圖7,框702接收標識一個或多個操作系統(tǒng)資源的強制實施策略???包括加密數(shù)據(jù)的該強制實施策略可經(jīng)由經(jīng)數(shù)字簽名的清單或通過向操作系統(tǒng) 展示應用程序編程接口 (API)(例如,超調(diào)用)來接收???04從不可從在 操作系統(tǒng)特權(quán)模式中操作的實體訪問的存儲器中標識一個或多個操作系統(tǒng)資 源。示例性資源包括系統(tǒng)服務分派表(SSDT)、中斷分派表(IDT)和/或全 局描述符表(GDT)。如上所述,該標識可以在虛擬機監(jiān)控程序(例如,由圖 1的保護代理134)或單獨的虛擬分區(qū)(例如,由圖1的保護代理142)中進行。
同時,框706表示確定所標識資源中的任一個是否已被更改。同樣,這可
22以在虛擬機監(jiān)控程序或單獨的分區(qū)中進行。如果框706確定所標識資源中的一
個或多個的確己被更改,則框708響應于該判定來終止操作系統(tǒng)。最后,框710
在重新引導操作系統(tǒng)時將非法操作通知給該操作系統(tǒng)。
圖8示出了用于允許保護代理在虛擬機監(jiān)控程序中運行的過程800。框802 更改虛擬機監(jiān)控程序偵聽管理器以便有效地允許接收與操作系統(tǒng)資源相關(guān)聯(lián) 的存儲器頁或寄存器已被更改的指示。該資源可包括參考圖7描述的資源中的 一個,或者可以是另一操作系統(tǒng)資源。在任何情況下,框804接收標識操作系 統(tǒng)資源以及可能的一個或多個其他操作系統(tǒng)資源的強制實施策略。同樣,該標 識可經(jīng)由以上所討論的各種技術(shù)來完成。如上所述,資源的保護屬性(例如, "只讀"或"初始化只讀")可伴隨資源的標識。同時,框806表示接收與操作系 統(tǒng)資源相關(guān)聯(lián)的存儲器頁或寄存器的確已被更改的指示。作為響應,框808關(guān) 閉操作系統(tǒng)特權(quán)模式以便有效地關(guān)閉與操作系統(tǒng)資源相關(guān)聯(lián)的操作系統(tǒng)。在某 些實例中,圖1的虛擬機監(jiān)控程序108可完成此對操作系統(tǒng)特權(quán)模式的關(guān)閉。
接著,圖9描述了用于創(chuàng)建如圖1所示的保護代理特權(quán)模式132的保護代 理特權(quán)模式的示例性過程900???02接收使得存儲器的特定范圍不可從操作 系統(tǒng)特權(quán)模式更改或訪問的請求。同樣,虛擬機監(jiān)控程序可接收該請求,該請 求可源自該存儲器范圍本身或來自駐留在該存儲器范圍內(nèi)的保護代理。框904 保護該存儲器范圍并設置定時器以便周期性地運行駐留在該存儲器范圍內(nèi)的 保護代理。同樣,虛擬機監(jiān)控程序可設置這一定時器,該定時器可指示虛擬機 監(jiān)控程序以規(guī)律的間隔運行保護代理。
同時,框906接收描述操作系統(tǒng)資源的強制實施策略。同樣,該強制實施 策略和所描述的資源可以與上述強制實施策略和資源相似或相同???08運行 可由虛擬機監(jiān)控程序?qū)崿F(xiàn)的保護代理。判定框910詢問操作系統(tǒng)資源是否已被 更改。保護代理可通過以上文中所詳述的方式起作用來作出該判定。如果框910 的確確定已發(fā)生更改,則框912關(guān)閉操作系統(tǒng)。然而,如果未作出這一判定, 則框914接收保護代理已完成運行的通知。在某些實例中且如上所述,保護代 理本身可這樣通知虛擬機監(jiān)控程序。同時,框916表示在運行保護代理和不運 行保護代理之間循環(huán)。最后,注意,雖然保護代理不運行,但虛擬機監(jiān)控程序 可響應于來自在操作系統(tǒng)特權(quán)模式中操作的實體對與該保護代理相關(guān)聯(lián)的存儲器范圍的訪問嘗試來關(guān)閉操作系統(tǒng)。
圖10示出了用于創(chuàng)建如圖1所示的保護代理特權(quán)模式132的保護代理特
權(quán)模式的另一示例性過程1000???002將真實計算機處理器虛擬化為多個虛 擬計算機處理器。這些虛擬處理器可包括一個或多個操作系統(tǒng)虛擬處理器,其 各自具有更改其自己的操作系統(tǒng)存儲器并且如圖6所示地使用真實處理器的處 理帶寬的一部分的特權(quán)。虛擬處理器還可包括至少一個保護代理虛擬處理器, 其具有更改其自己的保護代理存儲器并使用真實處理器的處理帶寬的不同部 分的特權(quán)。雖然所有虛擬處理器都可由虛擬機監(jiān)控程序來調(diào)度,但保護代理虛 擬處理器對于操作系統(tǒng)虛擬處理器可以是透明的。在某些實例中,操作系統(tǒng)虛 擬處理器可能無法更改分配給保護代理虛擬處理器的存儲器。此外,保護代理 虛擬處理器可以是專用處理器,其主要或唯一目的是如上所述地使得保護代理 執(zhí)行。
接著,框1004使得保護代理虛擬處理器執(zhí)行保護代理,該保護代理可有 效地確定所述操作系統(tǒng)存儲器部分是否已被更改。同時,框1006接收操作系 統(tǒng)存儲器的一部分己被更改的指示。作為響應,框1008關(guān)閉對應的操作系統(tǒng)。
最后,圖11描繪了用于將特權(quán)模式添加到真實計算處理器的過程1100。 框1102表示對存在于底層物理處理器上的一個或多個特權(quán)模式進行確定、標 識或分類。這些特權(quán)模式一般由底層物理處理器本身來定義。無論如何,框1104 添加不存在于底層物理處理器上的特權(quán)模式。在某些實例中,所添加的特權(quán)模 式能夠更改計算設備中與可由一個或多個現(xiàn)有特權(quán)模式更改的存儲器部分不 同的存儲器部分。所添加的特權(quán)模式還能夠添加并執(zhí)行先前不存在或不可在底 層處理器中執(zhí)行的指令。
此外,存在于底層物理處理器上的一個或多個特權(quán)模式可包括用戶特權(quán)模 式和操作系統(tǒng)特權(quán)模式。在這些實施例中,所添加的特權(quán)模式可以比用戶特權(quán) 模式和操作系統(tǒng)特權(quán)模式兩者都更具特權(quán),比用戶特權(quán)模式更具特權(quán)但比操作 系統(tǒng)特權(quán)模式所具特權(quán)少,或者比用戶和操作系統(tǒng)特權(quán)模式兩者所具特權(quán)都 少。最后,注意,添加特權(quán)模式的一個實例可包括以上述多種方式添加保護代 理特權(quán)模式(例如,圖1所示的保護代理特權(quán)模式132)。例如,保護代理及 其相關(guān)聯(lián)的存儲器范圍可請求使該存儲器范圍不可從在操作系統(tǒng)特權(quán)模式中操作的實體訪問。虛擬機監(jiān)控程序還可通過調(diào)度保護代理虛擬處理器運行保護 代理來創(chuàng)建該特權(quán)模式。
結(jié)論
上述工具能夠通過使保護代理能駐留在不可從操作系統(tǒng)特權(quán)模式訪問的 存儲單元或者通過創(chuàng)建保護代理特權(quán)模式來使得保護代理不可從操作系統(tǒng)特 權(quán)模式更改或訪問。雖然已經(jīng)用對結(jié)構(gòu)特征和/或方法動作專用的語言描述了該 工具,但是應該理解,在所附權(quán)利要求中定義的該工具不必限于所述的具體特 征或動作。相反,這些具體特征和動作是作為實現(xiàn)該工具的示例性形式而公開 的。
權(quán)利要求
1.一種或多種其中具有計算機可讀指令的計算機可讀介質(zhì),所述指令在由計算設備(102)執(zhí)行時使得所述計算設備(102)執(zhí)行以下動作在虛擬機監(jiān)控程序(108)處接收(902)使得存儲器范圍(206、306)不可從操作系統(tǒng)特權(quán)模式(126)更改或訪問的請求;使得(904)所述存儲器范圍(206、306)不可從所述操作系統(tǒng)特權(quán)模式(126)更改或訪問;以及運行(908)駐留在所述存儲器范圍(206、306)內(nèi)的保護代理(144)。
2. 如權(quán)利要求1所述的介質(zhì),其特征在于,還包括設置(904)定時器以 運行所述保護代理(144)。
3. 如權(quán)利要求2所述的介質(zhì),其特征在于,所述定時器指示所述虛擬機監(jiān) 控程序(108)以規(guī)律的間隔運行所述保護代理(144)。
4. 如權(quán)利要求1所述的介質(zhì),其特征在于,所述保護代理(144)被配置 成接收(906)描述可從所述操作系統(tǒng)特權(quán)模式(126)訪問的一個或多個資源(120)的強制實施策略,并且響應于接收到所述強制實施策略,確定(910) 所述一個或多個資源(120)中的一個或多個是否已被更改。
5. 如權(quán)利要求4所述的介質(zhì),其特征在于,還包括響應于由所述保護代理 (144)確定所述一個或多個資源(120)中的一個或多個已被更改來關(guān)閉(912)與所述操作系統(tǒng)特權(quán)模式(126)相關(guān)聯(lián)的操作系統(tǒng)(114)。
6. 如權(quán)利要求4所述的介質(zhì),其特征在于,所述一個或多個資源(120) 包括系統(tǒng)服務分派表(SSDT)、中斷分派表(IDT)或全局描述符表(GDT)。
7. 如權(quán)利要求1所述的介質(zhì),其特征在于,還包括在所述虛擬機監(jiān)控程序 (108)處并在所述運行(908)保護代理(144)之后接收(914)所述保護代理(144)已完成運行的通知。
8. 如權(quán)利要求1所述的介質(zhì),其特征在于,還包括響應于來自所述操作系 統(tǒng)特權(quán)模式(126)的對所述存儲器范圍(206、 306)或所述保護代理(144) 的訪問嘗試來關(guān)閉與所述操作系統(tǒng)特權(quán)模式(126)相關(guān)聯(lián)的操作系統(tǒng)(114)。
9. 如權(quán)利要求1所述的介質(zhì),其特征在于,還包括在所述運行(908)保 護代理(144)和不運行所述保護代理(144)之間循環(huán)(916),從而使得所 述保護代理(144)至少在其運行時不可從所述操作系統(tǒng)特權(quán)模式(126)更改 或訪問。
10. —種方法,包括將一個或多個真實計算處理器U04(a)、 104(b))虛擬化(1002)為虛擬 計算處理器(506、 508、 510),所述虛擬計算處理器(506、 508、 510)包括一個或多個操作系統(tǒng)虛擬處理器(506、 508),其各自具有更改其自己的 操作系統(tǒng)存儲器并使用所述一個或多個真實計算處理器(104(a)、 104(b))的處 理帶寬(600)的一部分的特權(quán);以及至少一個保護代理虛擬處理器(510),其具有更改其自己的保護代理存 儲器并使用所述一個或多個真實計算處理器(104(a)、 104(b))的處理帶寬(600) 的不同部分的特權(quán);以及使得(1004)所述保護代理虛擬處理器(510)執(zhí)行保護代理(144),所 述保護代理(144)有效地確定所述操作系統(tǒng)存儲器的一部分是否已被更改。
11. 如權(quán)利要求10所述的方法,其特征在于,還包括接收(1006)所述保護代理(144)確定所述操作系統(tǒng)存儲器的一部分已 被更改的指示;以及響應于接收到所述指示,關(guān)閉(1008)對應的操作系統(tǒng)(144)。
12. 如權(quán)利要求10所述的方法,其特征在于,所述一個或多個操作系統(tǒng)虛擬處理器(506、 508)無法更改所述保護代理存儲器。
13. 如權(quán)利要求10所述的方法,其特征在于,所述使得(1004)所述 保護代理虛擬處理器(510)執(zhí)行保護代理(144)包括使得所述保護代理虛擬 處理器(510)以指定時間間隔執(zhí)行所述保護代理(144)。
14. 如權(quán)利要求10所述的方法,其特征在于,所述保護代理虛擬處理 器(510)僅專用于執(zhí)行所述保護代理(144)。
15. 如權(quán)利要求10所述的方法,其特征在于,所述保護代理虛擬處理 器(510)由虛擬機監(jiān)控程序(108)來調(diào)度并且對于關(guān)聯(lián)于所述操作系統(tǒng)存儲 器的操作系統(tǒng)(114)是透明的。
16. —種或多種其中具有計算機可讀指令的計算機可讀介質(zhì),所述指令 在由包括包含一個或多個特權(quán)模式的底層物理處理器(104)的計算設備(102) 執(zhí)行時,使得所述計算設備(102)添加(1104)不存在于所述底層物理處理 器(104)上的特權(quán)模式。
17. 如權(quán)利要求16所述的介質(zhì),其特征在于,所添加的特權(quán)模式能夠 更改所述計算設備(102)中與可由最初存在于所述底層物理處理器(104)上 的一個或多個特權(quán)模式更改的存儲器部分不同的存儲器部分。
18. 如權(quán)利要求16所述的介質(zhì),其特征在于,所述最初存在于所述底 層物理處理器(102)上的一個或多個特權(quán)模式包括用戶特權(quán)模式(128)和操 作系統(tǒng)特權(quán)模式(126),并且其中所添加的特權(quán)模式比所述用戶特權(quán)模式(128) 和所述操作系統(tǒng)特權(quán)模式(126)兩者都更具特權(quán)。
19. 如權(quán)利要求16所述的介質(zhì),其特征在于,所述最初存在于所述底 層物理處理器(104)上的一個或多個特權(quán)模式包括用戶特權(quán)模式(128)和操作系統(tǒng)特權(quán)模式(126),并且其中所添加的特權(quán)模式比所述用戶特權(quán)模式(128) 更具特權(quán)但比所述操作系統(tǒng)特權(quán)模式(126)所具特權(quán)少。
20. 如權(quán)利要求16所述的介質(zhì),其特征在于,所述最初存在于所述底 層物理處理器上的一個或多個特權(quán)模式包括操作系統(tǒng)特權(quán)模式(126),并且 其中所述添加(1104)特權(quán)模式包括調(diào)用虛擬機監(jiān)控程序(108)來請求使得 與保護代理(144)相關(guān)聯(lián)的存儲器范圍(206、 306)不可從所述操作系統(tǒng)特 權(quán)模式(126)更改或訪問。
全文摘要
本文描述了能夠使得與保護代理相關(guān)聯(lián)的操作系統(tǒng)存儲器的一部分不可從操作系統(tǒng)特權(quán)模式更改或訪問的工具。在某些實施例中,這些工具能夠通過請求虛擬機監(jiān)控程序保護該操作系統(tǒng)存儲器部分來創(chuàng)建保護代理特權(quán)模式。在其他實施例中,這些工具能夠通過將物理處理器虛擬化為其中至少一個是被設計成運行保護代理的保護代理虛擬處理器的多個虛擬處理器來創(chuàng)建保護代理特權(quán)模式。通過使得該操作系統(tǒng)存儲器部分不可從操作系統(tǒng)特權(quán)模式更改或訪問,保護代理可較不易受到在操作系統(tǒng)特權(quán)模式中操作的實體的攻擊。
文檔編號G06F9/06GK101589364SQ200780050472
公開日2009年11月25日 申請日期2007年12月12日 優(yōu)先權(quán)日2007年1月25日
發(fā)明者A·桑頓, E·托奧特, F·福爾茨, S·辛哈 申請人:微軟公司