用于虛擬分區(qū)監(jiān)視的系統(tǒng)和方法
【專利摘要】在一個示例實施例中提供一種方法,其包括在外部處理機(jī)中接收與虛擬分區(qū)中的事件關(guān)聯(lián)的事件通知。能夠停置虛擬分區(qū)中引起事件的進(jìn)程中的線程。當(dāng)安全性處理機(jī)評估事件的潛在威脅時,可允許其它線程和進(jìn)程進(jìn)行恢復(fù)??芍甘咎摂M分區(qū)中的幫手代理運(yùn)行任務(wù)、例如收集和匯編虛擬分區(qū)中的事件上下文,以及基于該任務(wù)的結(jié)果能夠返回給外部處理機(jī)。能夠基于由幫手代理所返回的結(jié)果來采取策略動作,其可包括例如指示幫手代理終止引起事件的進(jìn)程。
【專利說明】用于虛擬分區(qū)監(jiān)視的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]一般來說,本說明書涉及信息技術(shù)安全,以及更具體來說,涉及用于虛擬分區(qū)監(jiān)視的系統(tǒng)和方法。
【背景技術(shù)】
[0002]信息技術(shù)中的虛擬化技術(shù)的演進(jìn)引起了從基于云的計算到移動電話中的嵌入式系統(tǒng)的多種應(yīng)用。一般來說,虛擬化隱藏計算平臺的硬件特性,并且改為呈現(xiàn)抽象平臺,該抽象平臺能夠托管包括完整操作系統(tǒng)的其它平臺。一種普遍的虛擬化技術(shù)是部署管理程序(又稱作虛擬機(jī)管理器),其能夠允許客體軟件(包括完整操作系統(tǒng))同時運(yùn)行于抽象主機(jī)平臺上。管理程序能夠為其客體軟件提供模擬計算環(huán)境,通常稱作“虛擬機(jī)”。因此,例如,多個全異操作系統(tǒng)能夠在管理程序下運(yùn)行于單個框架上。
[0003]但是,隨著所部署虛擬機(jī)的數(shù)量增加,虛擬機(jī)可能成為對惡意攻擊的更普遍目標(biāo)。以及雖然虛擬化提供許多優(yōu)點,但是它也能夠呈現(xiàn)獨特的安全性難題。例如,外部安全軟件能夠監(jiān)視虛擬機(jī)中的事件,例如監(jiān)視存儲器的讀取、寫入或者運(yùn)行訪問,但是在了解這類事件的上下文方面可存在重大難題。在沒有充分了解事件上下文的情況下,安全性動作可明顯受到限制。因此,對于提供安全虛擬化平臺仍然有許多難題。
【專利附圖】
【附圖說明】
[0004]為了提供對本公開及其特征和優(yōu)點的更完整了解,參照結(jié)合附圖進(jìn)行的以下描述,其中相似參考標(biāo)號表示相似部件,其中:
圖1是示出其中虛擬分區(qū)可按照本說明書來監(jiān)視的虛擬化平臺的示例實施例的簡化框圖;
圖2是示出可與虛擬平臺的一個潛在實施例關(guān)聯(lián)的附加細(xì)節(jié)的簡化框圖;以及 圖3A-3B是示出可與虛擬平臺的一個實施例關(guān)聯(lián)的潛在操作的簡化流程圖。
【具體實施方式】
[0005]概述
在一個示例實施例中提供一種方法,其包括在外部處理機(jī)中接收與虛擬分區(qū)中的事件關(guān)聯(lián)的事件通知。能夠停置(park)虛擬分區(qū)中引起事件的進(jìn)程中的線程。當(dāng)安全性處理機(jī)評估事件的潛在威脅時,可允許其它線程和進(jìn)程進(jìn)行恢復(fù)??芍甘咎摂M分區(qū)中的幫手代理(helper agent)運(yùn)行任務(wù)、例如收集和匯編虛擬分區(qū)中的事件上下文,以及基于該任務(wù)的結(jié)果能夠返回給外部處理機(jī)。能夠基于由幫手代理所返回的結(jié)果來采取策略動作,其可包括例如指示幫手代理終止引起事件的進(jìn)程。
[0006]在更具體實施例中,例如,外部處理機(jī)可在第二虛擬分區(qū)中、在虛擬化主機(jī)中或者作為管理程序擴(kuò)展進(jìn)行操作。虛擬分區(qū)可以是虛擬化平臺中的虛擬化客體、例如虛擬機(jī)的實例,以及事件通知能夠由管理程序擴(kuò)展來發(fā)送給安全性處理機(jī)。[0007]示例實施例
來看圖1,圖1是示出其中虛擬分區(qū)可按照本說明書來監(jiān)視的虛擬化平臺100的一個示例實施例的簡化框圖。虛擬化平臺100包括硬件105、管理程序110和管理程序擴(kuò)展模塊115。一般來說,硬件105表示任何機(jī)器或設(shè)備,其能夠?qū)?shù)據(jù)進(jìn)行接收、執(zhí)行邏輯操作、存儲或者顯示,并且可以非限制性地包括處理器105a和存儲器105b。虛擬化平臺100可具有一個以上虛擬分區(qū),例如虛擬化客體120和安全性監(jiān)視器125。在一些實施例中,管理程序110可以是直接運(yùn)行于硬件105(如圖1所示)的本地或“裸金屬”管理程序,但是備選地可在運(yùn)行于硬件105的主機(jī)軟件(例如虛擬化主機(jī))下運(yùn)行。安全性監(jiān)視器125例如可通過已注冊回叫來與管理程序擴(kuò)展120進(jìn)行通信,以及例如通過網(wǎng)絡(luò)通信直接與幫手代理210 (即,繞過管理程序擴(kuò)展120)進(jìn)行通信。
[0008]一般來說,虛擬分區(qū)可以是能夠具有在其中運(yùn)行的軟件的虛擬機(jī)、沙箱、容器或者任何其它隔離環(huán)境的實例。軟件可包括操作系統(tǒng)和應(yīng)用軟件。但是,對于虛擬分區(qū)中運(yùn)行的所有軟件,虛擬分區(qū)可看來是不同的物理機(jī)器。
[0009]為了說明監(jiān)視諸如平臺100之類的虛擬化平臺中的虛擬分區(qū)的原理,重要的是了解這種平臺中發(fā)生的活動和通信。以下基本信息可被看作是可正確說明本公開的基礎(chǔ)。事實上這種信息是僅為了便于說明而提供,并且相應(yīng)地決不應(yīng)當(dāng)被理解為限制本公開的廣義范圍及其潛在應(yīng)用。
[0010]進(jìn)程通常在不斷變化的上下文(或狀態(tài))(例如進(jìn)程寄存器、控制寄存器、存儲器、表格或列表中的數(shù)據(jù))的情況下進(jìn)行操作。如本文所使用的術(shù)語“進(jìn)程”在廣泛意義上用于一般表示進(jìn)程、應(yīng)用、線程、任務(wù)、指令集、代碼塊或者其它類似操作單元。構(gòu)成上下文的東西可取決于下層硬件和操作系統(tǒng)軟件,但是一般來說,上下文包括在進(jìn)程被中斷時恢復(fù)執(zhí)行所需的最小數(shù)據(jù)集。但是,它還能夠表示在了解被攔截事件的環(huán)境或境況方面可以是有用的任何信息。一個進(jìn)程的上下文數(shù)據(jù)可以是對單個操作環(huán)境中的其它進(jìn)程(包括虛擬分區(qū)中的進(jìn)程)容易地可用的,但是可能難以從進(jìn)程的操作環(huán)境的外部、例如從同一虛擬平臺上的另一個虛擬分區(qū)中的進(jìn)程訪問。
[0011]管理程序擴(kuò)展、中央處理器擴(kuò)展、芯片組擴(kuò)展等能夠用于促進(jìn)具有不同上下文的進(jìn)程的增強(qiáng)監(jiān)視。例如,管理程序擴(kuò)展能夠從外部上下文、例如從充當(dāng)安全性監(jiān)視器的第二虛擬化客體來提供虛擬化客體的增強(qiáng)監(jiān)視,例如監(jiān)視存儲器的讀取、寫入或者運(yùn)行訪問。
[0012]擴(kuò)展集也可支持其它類型的事件的監(jiān)視,包括其它類型的存儲器訪問或者對存儲器屬性的變更,例如使區(qū)域是可寫或者可執(zhí)行的。還能夠監(jiān)視特定CPU指令或者指令類型的執(zhí)行,例如CPU “CALL”或“RET”指令。監(jiān)視也可以是更有針對性的,例如對于由特定進(jìn)程所觸發(fā)的事件、特定區(qū)域(或者多個區(qū)域)中的代碼、所指定地址的執(zhí)行、對所指定地址的寫入、CPU注冊變更或者CPU環(huán)狀態(tài)變更。
[0013]匯編上下文信息可包括例如在觸發(fā)被攔截事件的進(jìn)程中加載的枚舉模塊(即,動態(tài)鏈接庫或“DLL”)。在客體操作系統(tǒng)中,這種枚舉能夠是微不足道的,這是因為它可能由操作系統(tǒng)的一組應(yīng)用編程接口(API)來支持。但是,客體操作系統(tǒng)外部的枚舉模塊能夠要求經(jīng)過一系列內(nèi)部操作系統(tǒng)結(jié)構(gòu),以查找模塊。
[0014]能夠保持客體操作系統(tǒng)內(nèi)部的結(jié)構(gòu)的模板以提供某種上下文,但是保持每個客體操作系統(tǒng)版本的這些模板的版本能夠是極為繁重的。此外,諸如Microsoft Windows之類的一些系統(tǒng)的文件編制可能是不可用的,這能夠增加負(fù)擔(dān)。
[0015]由諸如管理程序擴(kuò)展之類的擴(kuò)展集所支持的監(jiān)視能夠包括對已注冊處理機(jī)或代理的回叫。因此,例如,如果在被監(jiān)視存儲器區(qū)域中檢測到訪問,則事件能夠觸發(fā)具有事件上下文的已注冊回叫?;亟锌稍谑录瓿芍盎蛑蟀l(fā)生。引起事件的進(jìn)程可在回叫進(jìn)行時被掛起,或者回叫可與事件完成異步。傳遞給回叫的信息可包括事件上下文,諸如事件的目標(biāo)(例如被訪問的存儲器區(qū)域)以及觸發(fā)事件的執(zhí)行組件(例如進(jìn)程)的身份(例如進(jìn)程標(biāo)識符、線程或者代碼位置)。
[0016]一般來說,虛擬化分區(qū)的監(jiān)視能夠分為兩類:(I)內(nèi)部事件處理,以及(2)外部事件處理。在內(nèi)部事件處理中,將與諸如訪問被監(jiān)視存儲器之類的虛擬分區(qū)中的事件有關(guān)的通知發(fā)送給與觸發(fā)通知的事件相同的虛擬分區(qū)中的處理機(jī)。與此對比,虛擬分區(qū)的外部監(jiān)視向被監(jiān)視虛擬分區(qū)外部運(yùn)行的處理機(jī)提供被監(jiān)視虛擬分區(qū)中的事件的通知。處理機(jī)可在虛擬化主機(jī)(如果存在的話)、管理程序或者獨立虛擬分區(qū)中運(yùn)行。例如,當(dāng)前管理程序擴(kuò)展可要求處理機(jī)在被監(jiān)視存儲器外部、在用作安全性監(jiān)視器的另一個虛擬化客體之中運(yùn)行。
[0017]但是,如果處理機(jī)在被監(jiān)視虛擬分區(qū)外部運(yùn)行,則了解被攔截事件的上下文可出現(xiàn)重大難題。在沒有對事件上下文的訪問的情況下,會難以進(jìn)行與被攔截事件的合法性有關(guān)的安全性判定。因此,在提供被攔截事件的起源的全上下文的同時使用虛擬化分區(qū)監(jiān)視的外部傳遞能夠提供有效值。
[0018]除了匯編事件的上下文信息的難題之外,向虛擬分區(qū)外部運(yùn)行的已注冊回叫傳遞監(jiān)視事件還能夠引起其它問題。通過這種模式的事件傳遞,例如,觸發(fā)監(jiān)視事件的虛擬分區(qū)的虛擬處理器能夠在外部運(yùn)行回叫處理機(jī)處理事件的同時完全暫停。除非存在更多虛擬處理器可用,否則虛擬分區(qū)中沒有其它活動可發(fā)生。即使存在其它虛擬處理器,整個虛擬分區(qū)在它們還觸發(fā)監(jiān)視事件時也仍然能夠暫停。因此,這種類型的傳遞能夠引起基于管理程序的監(jiān)視的性能不利后果,并且還阻止虛擬化客體例如以上下文信息的發(fā)現(xiàn)來幫助外部回叫處理機(jī)。
[0019]外部事件處理機(jī)能夠提供優(yōu)于內(nèi)部事件處理機(jī)的若干優(yōu)點。這些優(yōu)點能夠包括保護(hù)事件處理機(jī)及關(guān)聯(lián)決策器免受被監(jiān)視虛擬分區(qū)中運(yùn)行的惡意軟件的直接攻擊。其它優(yōu)點包括無代理安全性,其中在虛擬分區(qū)中沒有部署安全性代理的情況下可保護(hù)虛擬分區(qū)。相應(yīng)地,如果可在沒有如本文所述通常伴隨外部事件處理機(jī)的許多問題的情況下提供被攔截操作的起源的更完整上下文,則可顯著增強(qiáng)虛擬分區(qū)監(jiān)視的外部傳遞的值。
[0020]按照本文所述的實施例,通過提供外部監(jiān)視而無需了解內(nèi)部操作系統(tǒng)結(jié)構(gòu),虛擬化平臺100能夠克服這些缺點(等等),同時保存外部事件處理的優(yōu)點。虛擬化平臺100例如可為混合虛擬分區(qū)監(jiān)視提供外部處理機(jī),該外部處理機(jī)能夠接收被監(jiān)視虛擬分區(qū)、例如在管理程序下運(yùn)行的被監(jiān)視虛擬化客體中所攔截的事件的通知。虛擬分區(qū)中部署的內(nèi)部幫手代理能夠代表外部處理機(jī)來執(zhí)行某些任務(wù),其可包括匯編與被攔截事件關(guān)聯(lián)的上下文信息,并且向外部處理機(jī)提供結(jié)果。內(nèi)部幫手代理可包括駐留在被監(jiān)視進(jìn)程中的組件以及可單獨運(yùn)行的組件。外部處理機(jī)能夠使用內(nèi)部代理的信息和活動來指導(dǎo)策略判定,例如在其違反安全性策略時阻塞事件并且終止事件進(jìn)程或線程。在一些實施例中,外部處理機(jī)可指導(dǎo)內(nèi)部代理實現(xiàn)某些策略動作。[0021]在虛擬化平臺100的一些實施例中,在評估事件時,可在虛擬分區(qū)中停置或掛起與虛擬分區(qū)中的被攔截事件關(guān)聯(lián)的操作,這能夠允許其它進(jìn)程和線程在虛擬分區(qū)中運(yùn)行。掛起關(guān)聯(lián)操作能夠使對虛擬分區(qū)的性能影響為最小,并且還允許內(nèi)部代理在虛擬分區(qū)中運(yùn)行,以便運(yùn)行外部處理機(jī)的任務(wù)。此外,這些任務(wù)能夠在與引發(fā)被攔截事件的線程不同的線程中執(zhí)行,由此降低互用性和死鎖問題的風(fēng)險。
[0022]在更具體實施例中,外部安全性處理機(jī)或代理可向擴(kuò)展管理程序進(jìn)行注冊,以便接收虛擬化客體中的事件的通知。虛擬化客體中運(yùn)行的幫手代理能夠創(chuàng)建等待接收來自安全性處理機(jī)的任務(wù)請求的線程。幫手代理還可在被監(jiān)視進(jìn)程中創(chuàng)建存儲器區(qū)域,以便包含用于與安全性處理機(jī)進(jìn)行通信的數(shù)據(jù)以及安全性處理機(jī)能夠控制的代碼。響應(yīng)事件攔截,安全性處理機(jī)能夠?qū)⑹录|發(fā)線程放入保持狀態(tài),并且發(fā)起幫手代理的任務(wù)以在被監(jiān)視虛擬化客體中執(zhí)行。
[0023]來看圖2,圖2是示出可與虛擬平臺100的一個潛在實施例關(guān)聯(lián)的附加細(xì)節(jié)的簡化框圖。圖2包括管理程序擴(kuò)展模塊115、虛擬化客體120和安全性監(jiān)視器125。安全性監(jiān)視器125還可以是管理程序110中的虛擬化客體,特別是具有附加特權(quán)的受信客體。虛擬化客體120和安全性監(jiān)視器125各可包括相應(yīng)虛擬處理器205a-b、相應(yīng)存儲器元件205a_b和各種軟件元件(包括某些實施例中的不同的操作系統(tǒng))。更具體來說,虛擬化客體120可包括幫手代理210、事件停置模塊215和被監(jiān)視進(jìn)程220。數(shù)據(jù)區(qū)域225可用于與事件停置模塊215進(jìn)行通信。幫手代理210的嵌入式組件230還可駐留在被監(jiān)視進(jìn)程220中。安全性監(jiān)視器125可具有安全性處理機(jī)235和檢測模塊240。管理程序擴(kuò)展115可提供對被監(jiān)視進(jìn)程220的監(jiān)視和執(zhí)行控制以及在事件觸發(fā)通知時提供到安全監(jiān)視器125的事件回叫??腕w內(nèi)通信機(jī)制可實現(xiàn)幫手代理210與安全性處理機(jī)235之間的直接通信。
[0024]在備選實施例中,安全性監(jiān)視器125 (包括處理機(jī)235和檢測模塊240)可駐留在管理程序110中(虛擬分區(qū)外部)或者作為管理程序擴(kuò)展。在又一些實施例中,如果例如管理程序110不是嵌入式管理程序,則安全性監(jiān)視器125可在主機(jī)操作系統(tǒng)的執(zhí)行環(huán)境中進(jìn)行操作。
[0025]關(guān)于與虛擬平臺100關(guān)聯(lián)的內(nèi)部結(jié)構(gòu),硬件105能夠包括用于存儲將要在本文所述操作中使用的信息的存儲器元件(如圖1所示)。另外,虛擬平臺100可包括處理器和一個或多個虛擬處理器,它們能夠運(yùn)行軟件或算法以執(zhí)行如本文所述的活動。這些裝置還可在適當(dāng)時并且基于特定需要來將信息保持在任何適當(dāng)存儲器元件(隨機(jī)存取存儲器(RAM)、ROM、EPR0M、EEPR0M、ASIC等)、軟件、硬件或者任何其它適當(dāng)組件、裝置、元件或?qū)ο笾小1疚乃龅拇鎯ζ黜椀娜我粋€應(yīng)當(dāng)被理解為包含在廣義術(shù)語‘存儲器元件’中。由管理程序I I O、管理程序擴(kuò)展I I 5、虛擬化客體I 2 O或安全性監(jiān)視器2 3 5所跟蹤或發(fā)送的信息可在其全部能夠在任何適當(dāng)時間幀來引用的任何數(shù)據(jù)庫、寄存器、控制列表或存儲結(jié)構(gòu)中提供。任何這類存儲選項可包含在如本文所使用的廣義術(shù)語‘存儲器元件’中。類似地,本文所述的潛在處理元件、模塊和機(jī)器中的任一個應(yīng)當(dāng)被理解為包含在廣義術(shù)語‘處理器’中。
[0026]注意,在某些示例實現(xiàn)中,本文所述功能可由在一個或多個有形非暫時介質(zhì)中編碼的邏輯(例如,專用集成電路(ASIC)中提供的嵌入式邏輯、數(shù)字信號處理器(DSP)指令、將要由處理器或者其它類似機(jī)器所運(yùn)行的軟件(潛在包含目標(biāo)代碼和源代碼)等)來實現(xiàn)。在這些實例的一部分中,存儲器元件(如圖1所示)能夠存儲用于本文所述操作的數(shù)據(jù)。這包括存儲器元件,該存儲器元件能夠存儲被運(yùn)行以執(zhí)行本文所述活動的軟件、邏輯、代碼或處理器指令。處理器能夠運(yùn)行與數(shù)據(jù)關(guān)聯(lián)的任何類型的指令,以便實現(xiàn)本文所詳述的操作。在一個示例中,處理器(如圖1所示)或虛擬處理器(如圖2所示)可將元件或制品(例如數(shù)據(jù))從一個狀態(tài)或事態(tài)變換成另一個狀態(tài)或事態(tài)。在另一個示例中,本文所述的活動可采用固定邏輯或者可編程邏輯(例如由處理器所運(yùn)行的軟件/計算機(jī)指令)來實現(xiàn),以及本文所確定的元件可能是某種類型的可編程處理器、可編程數(shù)字邏輯(例如現(xiàn)場可編程門陣列(FPGA)、可擦可編程只讀存儲器(EPROM)、電可擦可編程ROM(EEPROM))或者包括數(shù)字邏輯、軟件、代碼、電子指令或者它們的任何適當(dāng)組合的ASIC。
[0027]圖3A-3B是示出可與虛擬平臺100的一個實施例關(guān)聯(lián)的潛在操作的簡化流程圖。更具體來說,圖3A示出可用于配置虛擬平臺100的初步操作,以及圖3B示出與評估和作用于事件關(guān)聯(lián)的潛在操作。
[0028]來看圖3A,安全監(jiān)視器125可在305向管理程序擴(kuò)展115進(jìn)行注冊,以便接收所指定事件的事件通知(例如回叫)。另外,幫手代理210可在310創(chuàng)建線程,該線程等待來自處理機(jī)的任務(wù)請求,例如來自處理機(jī)235的經(jīng)由網(wǎng)絡(luò)通信的請求。事件停置模塊215和數(shù)據(jù)區(qū)域225也可在315和320來創(chuàng)建。例如,事件停置模塊215能夠等待操作系統(tǒng)支持的
令機(jī)制。
[0029]在325,嵌入式組件、例如嵌入式組件230還可在每個被監(jiān)視進(jìn)程中來創(chuàng)建,其包括駐留在每個被監(jiān)視進(jìn)程的地址空間中的存儲器區(qū)域。例如,代碼注入可用于將可執(zhí)行代碼插入運(yùn)行進(jìn)程中,其可包括將可執(zhí)行模塊(例如DLL)加載到進(jìn)程中。通常,注入的第一步驟是獲得對進(jìn)程的充分訪問,以便允許能夠放置和運(yùn)行所注入代碼的存儲器區(qū)域的創(chuàng)建。通常可得到訪問令牌,以便獲得對運(yùn)行進(jìn)程的訪問。訪問令牌可包括在進(jìn)程中分配存儲器、對那個存儲器進(jìn)行寫入以及改變存儲器的屬性(例如以便允許執(zhí)行)的特權(quán)。一旦獲得對進(jìn)程的訪問,則能夠在那個進(jìn)程中創(chuàng)建存儲器。代碼可寫入那個存儲器,以及屬性可設(shè)置成允許從存儲器中的執(zhí)行。在其它實施例中,操作系統(tǒng)可提供用于指定進(jìn)程應(yīng)當(dāng)將模塊加載到各實例中的機(jī)制。例如,Windows操作系統(tǒng)中的“rundll”注冊表項能夠使進(jìn)程加載該項中所列的所有模塊。
[0030]然后可運(yùn)行所注入代碼。如果模塊在進(jìn)程開始時加載,則所注入代碼可在模塊被加載時已經(jīng)被運(yùn)行。例如,在Windows中DLL能夠在其“dllmain”導(dǎo)出中運(yùn)行代碼。備選地,可通過在進(jìn)程中創(chuàng)建新線程以運(yùn)行所注入存儲器區(qū)域中的代碼,來發(fā)起所注入代碼。代碼掛鉤(hooking)還可用于將執(zhí)行重定向到所注入代碼。代碼掛鉤能夠使進(jìn)程中的代碼的執(zhí)行分支到所注入存儲器區(qū)域中的代碼。例如,在接口開始的指令可采用能夠?qū)?zhí)行轉(zhuǎn)移到所注入代碼中的“跳轉(zhuǎn)”指令來替代。使用代碼注入和代碼掛鉤能夠?qū)崿F(xiàn)以其他方式也許不可能的進(jìn)程中的操作的增強(qiáng)監(jiān)視。
[0031]來看圖3B,進(jìn)程(例如進(jìn)程220)可例如通過嘗試訪問安全性監(jiān)視器125對其注冊以接收回叫的存儲器區(qū)域,在330觸發(fā)來自管理程序擴(kuò)展115的被監(jiān)視事件和回叫。安全性處理機(jī)235在335能夠接收具有事件數(shù)據(jù)的回叫,并且在340使用管理程序擴(kuò)展115來指導(dǎo)虛擬處理器205a運(yùn)行事件停置模塊215。回叫能夠完成,并且虛擬化客體120返回到運(yùn)行狀態(tài),使得僅停置進(jìn)程220。由于它沒有使用忙循環(huán),所以系統(tǒng)的其余部分可繼續(xù)正常運(yùn)行,這能夠允許幫手代理210運(yùn)行。
[0032]事件例如可在數(shù)據(jù)區(qū)域225中來識別,并且事件停置模塊215可執(zhí)行經(jīng)由嵌入式組件230所傳遞的任務(wù)。任務(wù)可包括例如將指令指針和棧設(shè)置成某個值,以實現(xiàn)控制轉(zhuǎn)移。任務(wù)還可包括將任何其它寄存器設(shè)置成某個值,例如設(shè)置成API的返回值。因此,幫手代理210能夠提供停置已經(jīng)觸發(fā)回叫的線程或進(jìn)程的機(jī)制,并且允許線程代表安全性處理機(jī)235使用諸如客體操作系統(tǒng)所提供的API之類的虛擬化客體120中可用的機(jī)制來執(zhí)行任務(wù),這能夠顯著增加穩(wěn)定性和兼容性。虛擬化客體在345可恢復(fù)其它進(jìn)程、線程等的執(zhí)行。
[0033]安全性處理機(jī)235可在350向幫手代理210 (例如經(jīng)由客體內(nèi)通信機(jī)制)發(fā)送任務(wù)請求。幫手代理210(或者幫手代理210中的線程)可接收該請求,并且從請求中檢索數(shù)據(jù)有效載荷。數(shù)據(jù)有效載荷可包括要運(yùn)行的任務(wù)的描述,例如枚舉進(jìn)程中加載的所有模塊(例如DLL)。因此,例如,安全性處理機(jī)235可在350請求事件的上下文數(shù)據(jù)。上下文數(shù)據(jù)的示例可包括與觸發(fā)事件的進(jìn)程有關(guān)的信息、觸發(fā)事件的動作(例如對特定存儲器區(qū)域的寫入訪問)的類型、擁有已訪問的特定存儲器區(qū)域的進(jìn)程或者與文件操作有關(guān)的細(xì)節(jié)(例如文件大小、名稱、修改日期等)。幫手代理210能夠執(zhí)行所述任務(wù),并且向安全性處理機(jī)235返回任何結(jié)果,例如在355返回進(jìn)程220的上下文數(shù)據(jù)。
[0034]基于上下文數(shù)據(jù)和事件數(shù)據(jù),檢測模塊240能夠確定事件是否為惡意的或者是否以其它方式違反安全性策略。如果沒有違反安全性策略,則安全性處理機(jī)235可在360,例如通過重置虛擬處理器205a的指令指針以從觸發(fā)事件發(fā)生的點恢復(fù)執(zhí)行,使用管理程序擴(kuò)展115來允許進(jìn)程220繼續(xù)進(jìn)行。重置指令指針可使將進(jìn)程220作為正常線程來操作時原本可能遇到的問題為最小。備選地,數(shù)據(jù)區(qū)域225可采用命令來設(shè)置,以便將指令指針和棧指針向回設(shè)置成使執(zhí)行返回觸發(fā)事件發(fā)生的點的值。
[0035]但是,如果檢測模塊240在355識別安全性策略違反,則安全性處理機(jī)235能夠在365指示幫手代理210來實現(xiàn)動作,例如阻塞進(jìn)程220進(jìn)一步執(zhí)行。動作可由幫手代理210或者嵌入式組件230來執(zhí)行。例如,阻塞觸發(fā)操作可由嵌入式組件230最佳地執(zhí)行,而終止被監(jiān)視進(jìn)程220可由幫手代理210 (在被監(jiān)視進(jìn)程220外部運(yùn)行)最佳地執(zhí)行。事件停置模塊215還可取決于動作類型實現(xiàn)動作。如果動作是異步的,例如終止進(jìn)程,則安全性處理機(jī)235能夠?qū)⑵鋫鬟f給幫手代理210,并且結(jié)束觸發(fā)事件的處理。如果動作是同步的,則動作可在數(shù)據(jù)區(qū)域255來指示,例如以便向幫手代理210發(fā)信號通知,并且然后可結(jié)束被監(jiān)視事件的處理。違反也可記錄在日志中或者例如在370經(jīng)由電子郵件向管理員報告。
[0036]重要的是要注意,附圖中的步驟僅示出可由虛擬平臺100或者在虛擬平臺100中運(yùn)行的可能情況和模式的一部分。這些步驟的一部分可在適當(dāng)時刪除或移除,或者這些步驟可經(jīng)過相當(dāng)大的修改或改變,而沒有背離本文所提供教導(dǎo)的范圍。另外,多個這些操作描述為與一個或多個附加操作同時地或者并行地運(yùn)行。但是,這些操作的定時可極大地改變。為了便于示例和論述而提供了前面的操作流程。虛擬平臺100提供了充分靈活性,這是因為可提供任何適當(dāng)布置、年表、配置和定時機(jī)制,而沒有背離本文所提供的教導(dǎo)。
[0037]此外,本文所述的原理易于應(yīng)用于其它監(jiān)視系統(tǒng),其中回叫或其它事件通知可從客體或?qū)iT容器傳遞給具有不同上下文的處理機(jī),例如用于文檔控制、審計、辯論和性能監(jiān)視。
[0038]許多其它變更、置換、變化、改變和修改可以是對本領(lǐng)域的技術(shù)人員確定的,并且預(yù)計本公開包含如落入所附權(quán)利要求書的范圍之內(nèi)的所有這類變更、置換、變化、改變和修改。為了幫助美國專利商標(biāo)局(USPTO)以及還有本申請所發(fā)布的任何專利的任何讀者理解這里所附權(quán)利要求書,本 申請人:希望指出:本 申請人::(a)除非在具體權(quán)利要求中具體使用詞語“用于…的裝置”或者“用于…的步驟”,否則并不預(yù)計所附權(quán)利要求的任一項援引35U.S.C第六(6)段第11 2小節(jié),這是因為它在其提交日期存在;以及(b)并不預(yù)計通過本說明書中的任何陳述按照沒有在所附權(quán)利要求書中以其他方式反映的任何方式來限制本公開。
【權(quán)利要求】
1.一種方法,包括: 在外部處理機(jī)中接收與虛擬分區(qū)中的事件關(guān)聯(lián)的事件通知; 指示所述虛擬分區(qū)中的幫手代理來運(yùn)行任務(wù)并且將基于所述任務(wù)的結(jié)果返回給所述外部處理機(jī);以及 基于所述幫手代理所返回的所述結(jié)果來采取策略動作。
2.如權(quán)利要求1所述的方法,其中,所述外部處理機(jī)在第二虛擬分區(qū)中進(jìn)行操作。
3.如權(quán)利要求1所述的方法,其中,所述外部處理機(jī)在虛擬化主機(jī)中進(jìn)行操作。
4.如權(quán)利要求1所述的方法,其中: 所述外部處理機(jī)在虛擬化平臺的第一虛擬化客體中進(jìn)行操作;以及 所述虛擬分區(qū)是所述虛擬化平臺中的第二虛擬化客體。
5.如權(quán)利要求1所述的方法,其中,所述事件通知從虛擬化平臺的管理程序擴(kuò)展來接收。
6.如權(quán)利要求1所述的方法,還包括: 停置所述虛擬分區(qū)中引起所述事件的進(jìn)程的線程;以及 在停置引起所述事件的所述線程之后恢復(fù)所述虛擬分區(qū)中的其它進(jìn)程。
7.如權(quán)利要求1所述的方法,其中,從所述幫手代理所返回的所述結(jié)果包括與所述事件關(guān)聯(lián)的事件上下文。
8.如權(quán)利要求1所述的方法,其中,所述策略動作包括終止引起所述事件的所述進(jìn)程。
9.如權(quán)利要求1所述的方法,其中,所述策略動作包括指示所述幫手代理終止引起所述事件的所述進(jìn)程。
10.如權(quán)利要求1所述的方法,其中: 所述外部處理機(jī)在虛擬化平臺中的第一虛擬化客體中進(jìn)行操作; 所述虛擬分區(qū)是所述虛擬化平臺中的第二虛擬化客體; 所述事件通知從所述虛擬化平臺的管理程序擴(kuò)展來接收; 在停置引起所述事件的進(jìn)程中的線程之后恢復(fù)所述虛擬分區(qū)中的其它進(jìn)程; 來自所述幫手代理的所述結(jié)果包括與所述事件關(guān)聯(lián)的事件上下文;以及 所述策略動作包括指示所述幫手代理終止引起所述事件的所述進(jìn)程。
11.在一個或多個非暫時介質(zhì)中編碼的邏輯,其包括供執(zhí)行的代碼,并且在由一個或多個處理器運(yùn)行時可操作以執(zhí)行操作,所述操作包括: 在外部處理機(jī)中接收與虛擬分區(qū)中的事件關(guān)聯(lián)的事件通知; 指示所述虛擬分區(qū)中的幫手代理來運(yùn)行任務(wù)并且將基于所述任務(wù)的結(jié)果返回給所述外部處理機(jī);以及 基于所述幫手代理所返回的所述結(jié)果來采取策略動作。
12.如權(quán)利要求11所述的編碼邏輯,其中,所述外部處理機(jī)在第二虛擬分區(qū)中進(jìn)行操作。
13.如權(quán)利要求11所 述的編碼邏輯,其中,所述外部處理機(jī)在虛擬化主機(jī)中進(jìn)行操作。
14.如權(quán)利要求11所述的編碼邏輯,其中:所述外部處理機(jī)在虛擬化平臺中的第一虛擬化客體中進(jìn)行操作;以及 所述虛擬分區(qū)是所述虛擬化平臺中的第二虛擬化客體。
15.如權(quán)利要求11所述的編碼邏輯,其中,所述事件通知從虛擬化平臺中的管理程序擴(kuò)展來接收。
16.如權(quán)利要求11所述的編碼邏輯,其中,所述操作還包括停置所述虛擬分區(qū)中引起所述事件的進(jìn)程中的線程。
17.如權(quán)利要求11所述的編碼邏輯,其中,從所述幫手代理所返回的所述結(jié)果包括與所述事件關(guān)聯(lián)的事件上下文。
18.如權(quán)利要求11所述的編碼邏輯,其中,所述策略動作包括終止引起所述事件的所述進(jìn)程。
19.如權(quán)利要求11所述的編碼邏輯,其中,所述策略動作包括指示所述幫手代理終止引起所述事件的所述進(jìn)程。
20.—種設(shè)備,包括: 虛擬分區(qū)中的幫手代理;以及 所述虛擬分區(qū)外部的安全性處理機(jī); 一個或多個處理器,其可操作以運(yùn)行與所述安全性處理機(jī)和所述幫手代理關(guān)聯(lián)的指令,所述指令可操作以執(zhí)行操作,所述操作包括: 在所述安全性處理機(jī)中接收與所述虛擬分區(qū)中的事件關(guān)聯(lián)的事件通知; 停置所述虛擬分區(qū)中引起所·述事件的進(jìn)程中的線程; 指示所述幫手代理來運(yùn)行所述虛擬分區(qū)中的任務(wù),并且將基于所述任務(wù)的結(jié)果返回給所述安全性處理機(jī);以及 基于所述幫手代理所返回的所述結(jié)果來采取策略動作。
21.如權(quán)利要求20所述的設(shè)備,其中: 所述安全性處理機(jī)在虛擬化平臺中的第一虛擬化客體中進(jìn)行操作;以及 所述虛擬分區(qū)是所述虛擬化平臺中的第二虛擬化客體。
22.如權(quán)利要求20所述的設(shè)備,其中,所述事件通知從虛擬化平臺的管理程序擴(kuò)展來接收。
23.如權(quán)利要求20所述的設(shè)備,其中,所述操作還包括在停置引起所述事件的進(jìn)程中的線程之后恢復(fù)所述虛擬分區(qū)中的其它進(jìn)程。
24.如權(quán)利要求20所述的設(shè)備,其中,從所述幫手代理所返回的所述結(jié)果包括與所述事件關(guān)聯(lián)的事件上下文。
25.如權(quán)利要求20所述的設(shè)備,其中,所述策略動作包括終止引起所述事件的所述進(jìn)程。
26.如權(quán)利要求20所述的設(shè)備,其中,所述策略動作包括指示所述幫手代理終止引起所述事件的所述進(jìn)程。
【文檔編號】G06F21/56GK103827882SQ201280028185
【公開日】2014年5月28日 申請日期:2012年6月7日 優(yōu)先權(quán)日:2011年6月8日
【發(fā)明者】G.W.達(dá)爾徹爾, J.L.愛德華茲 申請人:邁可菲公司