虛擬機(jī)中的頁面錯(cuò)誤注入使得經(jīng)換出的存儲(chǔ)器頁面映射到虛擬機(jī)虛擬化存儲(chǔ)器中的制作方法
【專利說明】虛擬機(jī)中的頁面錯(cuò)誤注入使得經(jīng)換出的存儲(chǔ)器頁面映射到 虛擬機(jī)虛擬化存儲(chǔ)器中
[0001] 相關(guān)申請(qǐng)案
[0002] 本申請(qǐng)案主張2013年7月17日申請(qǐng)的題為"虛擬機(jī)中的頁面錯(cuò)誤注入(Page FaultInjectionInVirtualMachines)"的第61/847, 538號(hào)美國(guó)臨時(shí)專利申請(qǐng)案的申請(qǐng) 日期的權(quán)益,所述申請(qǐng)案的全部?jī)?nèi)容以引用方式并入本文中。
【背景技術(shù)】
[0003] 本發(fā)明涉及用于保護(hù)計(jì)算機(jī)系統(tǒng)免受惡意軟件影響的系統(tǒng)及方法。
[0004] 惡意軟件(也稱為惡意軟件(malware))影響全世界范圍內(nèi)的大量計(jì)算機(jī)系統(tǒng)。惡 意軟件呈其許多形式(例如計(jì)算機(jī)病毒、蠕蟲病毒、藏匿技術(shù)及間諜軟件)向數(shù)百萬的計(jì)算 機(jī)用戶呈現(xiàn)嚴(yán)重風(fēng)險(xiǎn),從而使其易遭受數(shù)據(jù)及敏感信息丟失、身份盜用及生產(chǎn)率的損失以 及其它。
[0005] 硬件虛擬化技術(shù)允許產(chǎn)生通常被稱為虛擬機(jī)的模擬計(jì)算機(jī)環(huán)境,其以許多方式表 現(xiàn)為物理計(jì)算機(jī)系統(tǒng)。在典型的應(yīng)用程序(例如服務(wù)器整合及基礎(chǔ)設(shè)施即服務(wù)(IAAS))中, 若干虛擬機(jī)可在相同的物理機(jī)上同時(shí)運(yùn)行,共享其間的硬件資源,從而減小投資及操作成 本。每一虛擬機(jī)可與其它虛擬機(jī)分開地運(yùn)行其自己的操作系統(tǒng)及/或軟件應(yīng)用程序。由于 惡意軟件的平穩(wěn)擴(kuò)散,在此類環(huán)境中操作的每一虛擬機(jī)潛在地需要惡意軟件保護(hù)。
[0006] 通常用于所屬領(lǐng)域中的虛擬化解決方案包括管理程序,也被稱為虛擬機(jī)監(jiān)視器, 其由在計(jì)算硬件與虛擬機(jī)的操作系統(tǒng)(0S)之間操作的軟件的層組成,且具有比相應(yīng)的0S 多的處理器權(quán)限。可在管理程序的權(quán)限級(jí)別下進(jìn)行反惡意軟件操作。盡管此類配置可增加 安全性,但其引入一層額外的復(fù)雜性且可帶來較大的計(jì)算成本。
[0007] 對(duì)針對(duì)硬件虛擬化平臺(tái)開發(fā)有效、穩(wěn)健且可擴(kuò)展的反惡意軟件解決方案存在相當(dāng) 大的興趣。
【發(fā)明內(nèi)容】
[0008] 根據(jù)一個(gè)方面,一種主機(jī)系統(tǒng)包括:經(jīng)配置以操作管理程序及存儲(chǔ)器自省引擎的 硬件處理器。所述管理程序經(jīng)配置以暴露包括虛擬化處理器及虛擬化存儲(chǔ)器的虛擬機(jī),所 述虛擬機(jī)經(jīng)配置以利用虛擬化處理器執(zhí)行目標(biāo)進(jìn)程。所述存儲(chǔ)器自省引擎在虛擬機(jī)外部執(zhí) 行且經(jīng)配置以根據(jù)虛擬機(jī)的頁面表確定目標(biāo)進(jìn)程的虛擬存儲(chǔ)器空間的目標(biāo)頁面是否被換 出虛擬化存儲(chǔ)器,且作為響應(yīng),當(dāng)目標(biāo)頁面被換出虛擬化存儲(chǔ)器時(shí)直接將頁面錯(cuò)誤注入到 虛擬機(jī)中,所述頁面錯(cuò)誤使得虛擬機(jī)的操作系統(tǒng)將目標(biāo)頁面映射到虛擬化存儲(chǔ)器的頁面。
[0009] 根據(jù)另一方面,一種方法包括:利用主機(jī)系統(tǒng)的至少一個(gè)硬件處理器執(zhí)行管理程 序,所述管理程序經(jīng)配置以暴露包括虛擬化處理器及虛擬化存儲(chǔ)器的虛擬機(jī),所述虛擬機(jī) 進(jìn)一步經(jīng)配置以利用所述虛擬化處理器執(zhí)行目標(biāo)進(jìn)程。所述方法進(jìn)一步包括:利用至少一 個(gè)硬件處理器以確定所述目標(biāo)進(jìn)程的虛擬存儲(chǔ)器空間的目標(biāo)頁面是否被換出虛擬化存儲(chǔ) 器,且作為響應(yīng),當(dāng)所述頁面被換出所述虛擬化存儲(chǔ)器時(shí)利用所述至少一個(gè)硬件處理器直 接將頁面錯(cuò)誤注入到所述虛擬機(jī)中,所述頁面錯(cuò)誤使得所述虛擬機(jī)的操作系統(tǒng)將所述目標(biāo) 頁面映射到所述虛擬化存儲(chǔ)器的頁面。
[0010] 根據(jù)另一方面,一種非暫時(shí)性計(jì)算機(jī)可讀媒體存儲(chǔ)指令,所述指令在由主機(jī)系統(tǒng) 的至少一個(gè)硬件處理器執(zhí)行時(shí)使得所述主機(jī)系統(tǒng)形成存儲(chǔ)器自省引擎,其中所述主機(jī)系統(tǒng) 進(jìn)一步經(jīng)配置以執(zhí)行暴露包括虛擬化處理器及虛擬化存儲(chǔ)器的虛擬機(jī)的管理程序,所述虛 擬機(jī)經(jīng)配置以利用虛擬化處理器執(zhí)行目標(biāo)進(jìn)程。所述存儲(chǔ)器自省引擎在所述虛擬機(jī)外部執(zhí) 行且經(jīng)配置以根據(jù)所述虛擬機(jī)的頁面表確定所述目標(biāo)進(jìn)程的虛擬存儲(chǔ)器空間的目標(biāo)頁面 是否被換出所述虛擬存儲(chǔ)器,且作為響應(yīng),當(dāng)所述目標(biāo)頁面被換出所述虛擬化存儲(chǔ)器時(shí)直 接將頁面錯(cuò)誤注入到所述虛擬機(jī)中,所述頁面錯(cuò)誤使得所述虛擬機(jī)的操作系統(tǒng)將所述目標(biāo) 頁面映射到所述虛擬化存儲(chǔ)器的頁面。
【附圖說明】
[0011] 在閱讀以下詳細(xì)的描述之后且在參看圖式之后,本發(fā)明的前述方面及優(yōu)點(diǎn)將得到 更好的理解,在圖式中:
[0012] 圖1展示根據(jù)本發(fā)明的一些實(shí)施例的由在主機(jī)系統(tǒng)上執(zhí)行的管理程序暴露的一 組示范性虛擬機(jī),及保護(hù)所述組虛擬機(jī)免受惡意軟件影響的存儲(chǔ)器自省引擎。
[0013] 圖2展示根據(jù)本發(fā)明的一些實(shí)施例的主機(jī)系統(tǒng)的示范性硬件配置。
[0014] 圖3展示根據(jù)本發(fā)明的一些實(shí)施例的被暴露到客戶虛擬機(jī)的虛擬化硬件的示范 性配置。
[0015] 圖4說明根據(jù)本發(fā)明的一些實(shí)施例的在各種處理器權(quán)限級(jí)別下在主機(jī)系統(tǒng)上執(zhí) 行的軟件對(duì)象的示范性分層。
[0016] 圖5展示根據(jù)本發(fā)明的一些實(shí)施例的存儲(chǔ)器地址的示范性映射及存儲(chǔ)器頁面換 入及換出虛擬化存儲(chǔ)器的示范性交換。
[0017] 圖6展示根據(jù)本發(fā)明的一些實(shí)施例的由存儲(chǔ)器自省引擎執(zhí)行以保護(hù)虛擬機(jī)免受 惡意軟件影響的步驟的示范性序列。
[0018] 圖7展示根據(jù)本發(fā)明的一些實(shí)施例的由存儲(chǔ)自省執(zhí)行以實(shí)施直接頁面錯(cuò)誤注入 的步驟的示范性序列。
[0019] 圖8展示根據(jù)本發(fā)明的一些實(shí)施例的說明圖6到7的方法的應(yīng)用的步驟的示范性 序列。
[0020] 圖9展示根據(jù)本發(fā)明的一些實(shí)施例的說明圖6到7的方法的另一應(yīng)用的步驟的示 范性序列。
[0021] 圖10說明根據(jù)本發(fā)明的一些實(shí)施例的含有目標(biāo)進(jìn)程的數(shù)據(jù)的存儲(chǔ)器頁面的一組 虛擬地址的示范性確定。
【具體實(shí)施方式】
[0022] 在以下描述中,應(yīng)理解,結(jié)構(gòu)之間所有所列舉的連接可為直接可操作的連接或通 過中間結(jié)構(gòu)的間接可操作的連接。一組元件包含一或多個(gè)元件。對(duì)元件的任何列舉被理解 為指代至少一個(gè)元件。多個(gè)元件包含至少兩個(gè)元件。除非另外要求,否則任何所描述的方 法步驟無需一定以特定的所說明的次序執(zhí)行。來源于第二元素的第一元素(舉例來說,數(shù) 據(jù))包含與第二元素相同的第一元素,也包含通過處理第二元素及任選地其它數(shù)據(jù)產(chǎn)生的 第一元素。根據(jù)參數(shù)做出確定或決策包含根據(jù)參數(shù)及任選地根據(jù)其它數(shù)據(jù)做出確定或決 策。除非另外指定,否則一些量/數(shù)據(jù)的指示符可為所述量/數(shù)據(jù)本身或不同于量/數(shù)據(jù) 本身的指示符。除非另外指定,否則進(jìn)程為計(jì)算機(jī)程序(例如應(yīng)用程序或操作系統(tǒng)的一部 分)的實(shí)例,且以具有至少一個(gè)執(zhí)行線程及由操作系統(tǒng)指派到其的虛擬存儲(chǔ)器的區(qū)段為特 征,相應(yīng)的區(qū)段包括可執(zhí)行代碼。除非另外指定,否則頁面表示被個(gè)別地映射到主機(jī)系統(tǒng)的 物理存儲(chǔ)器的虛擬機(jī)的最小單元。除非另外指定,否則直接將頁面錯(cuò)誤注入到虛擬機(jī)中包 括:在無需來自操作系統(tǒng)或在相應(yīng)的虛擬機(jī)內(nèi)執(zhí)行的其它軟件的協(xié)助的情況下,在相應(yīng)的 虛擬機(jī)的虛擬化處理器內(nèi)誘發(fā)頁面錯(cuò)誤事件。此類直接注入不排除操作系統(tǒng)或其它軟件響 應(yīng)于所注入的頁面錯(cuò)誤而采取動(dòng)作,例如以處理頁面錯(cuò)誤。計(jì)算機(jī)可讀媒體包含非暫時(shí)性 媒體,例如磁存儲(chǔ)媒體、光存儲(chǔ)媒體及半導(dǎo)體存儲(chǔ)媒體(舉例來說,硬盤驅(qū)動(dòng)器、光盤、閃存 存儲(chǔ)器、DRAM),也包含通信鏈路,例如導(dǎo)電電纜及光纖鏈路。根據(jù)一些實(shí)施例,本發(fā)明尤其 提供包括經(jīng)編程以執(zhí)行本文中描述的方法的硬件(舉例來說,一或多個(gè)處理器)的計(jì)算機(jī) 系統(tǒng),以及對(duì)指令編碼以執(zhí)行本文中描述的方法的計(jì)算機(jī)可讀媒體。
[0023] 以下描述作為實(shí)例但不一定作為限制說明本發(fā)明的實(shí)施例。
[0024] 圖1展示根據(jù)本發(fā)明的一些實(shí)施例的將硬件虛擬化用于惡意軟件保護(hù)的主機(jī)系 統(tǒng)10的示范性配置。主機(jī)系統(tǒng)10可表示企業(yè)計(jì)算裝置(例如企業(yè)服務(wù)器)或終端用戶裝 置(例如個(gè)人計(jì)算機(jī)或智能手機(jī))。其它示范性主機(jī)系統(tǒng)包含娛樂裝置(例如TV或游戲 機(jī))或具有存儲(chǔ)器及處理器且需要惡意軟件保護(hù)的任何其它裝置。在圖1的實(shí)例中,主機(jī) 系統(tǒng)10執(zhí)行由管理程序30暴露的一組客戶虛擬機(jī)32a到b。虛擬機(jī)(VM)包括實(shí)際的物 理機(jī)/計(jì)算機(jī)系統(tǒng)的抽象(舉例來說,軟件模擬),所述VM能夠運(yùn)行操作系統(tǒng)及其它應(yīng)用 程序。管理程序30包含經(jīng)配置以產(chǎn)生多個(gè)虛擬化裝置(例如虛擬處理器及虛擬存儲(chǔ)器控 制器)且將此類虛擬化裝置呈現(xiàn)到軟件以替代主機(jī)系統(tǒng)10的真實(shí)的物理裝置的軟件。在 一些實(shí)施例中,管理程序30允許由主機(jī)系統(tǒng)10的硬件資源的多個(gè)虛擬機(jī)進(jìn)行的多路復(fù)用 (共享)。管理程序30可進(jìn)一步管理此類多路復(fù)用使得每一VM獨(dú)立地操作且察覺不到主 機(jī)系統(tǒng)10上同時(shí)執(zhí)行的其它VM。流行的管理程序的實(shí)例包含來自Vmware公司的VMware vSphere?及開源Xen管理程序以及其它。
[0025] 每一VM32a到b可分別執(zhí)行客戶操作系統(tǒng)(0S)34a到b。一組示范性應(yīng)用程 序42a到d-般表示任何軟件應(yīng)用程序,例如文字處理、圖像處理、媒體播放器、數(shù)據(jù)庫、 日歷、個(gè)人聯(lián)系人管理、瀏覽器、游戲、音頻通信、數(shù)據(jù)通信及反惡意軟件應(yīng)用程序以及其 它。操作系統(tǒng)34a到b可包括任何廣泛可用的操作系統(tǒng),例如MicrosoftWindows'?.、 MacOS?、Linux?、iOS?或Android?以及其它。每一0S在虛擬機(jī)內(nèi)執(zhí)行的應(yīng)用程序與 相應(yīng)的VM的虛擬化硬件裝置之間提供接口。在以下描述中,在虛擬機(jī)的虛擬處理器上執(zhí)行 的軟件被認(rèn)為在相應(yīng)的虛擬機(jī)內(nèi)執(zhí)行。例如,在圖1的實(shí)例中,應(yīng)用程序42a到b被認(rèn)為在 客戶VM32a內(nèi)執(zhí)行,而應(yīng)用程序42c到d被認(rèn)為在客戶VM32b內(nèi)執(zhí)行。相比之下,管理程 序30被認(rèn)為在客戶VM32a到b外部或下面執(zhí)行。
[0026] 在一些實(shí)施例中,管理程序30包含經(jīng)配置以執(zhí)行如下文進(jìn)一步描述的反惡意軟 件操作的存儲(chǔ)器自省引擎40。引擎40可被并入到管理程序30中,或可作為與管理程序30 不同且獨(dú)立于管理程序30但在與管理程序30實(shí)質(zhì)上類似的處理器權(quán)限級(jí)別下執(zhí)行的軟件 組件而被傳遞。單一引擎40可經(jīng)配置以對(duì)在主機(jī)系統(tǒng)10上執(zhí)行的多個(gè)VM進(jìn)行惡意軟件 保護(hù)。
[0027]