用于虛擬機中的惡意軟件檢測的過程評估的制作方法
【專利說明】用于虛擬機中的惡意軟件檢測的過程評估
【背景技術】
[0001] 本發(fā)明涉及用于保護計算機系統(tǒng)不受惡意軟件攻擊的系統(tǒng)及方法,且尤其涉及使 用硬件虛擬化技術的反惡意軟件系統(tǒng)。
[0002] 惡意軟件(Malicioussoftware)(其英文簡稱為malware)影響世界范圍內的大 量計算機系統(tǒng)。惡意軟件以其眾多的形式(例如,計算機病毒、懦蟲及rootkits)對數(shù)以 百萬計的計算機用戶造成嚴重的威脅,使計算機用戶易于丟失數(shù)據(jù)及敏感信息、身份盜用 及生產(chǎn)率損失等。
[0003] 硬件虛擬化技術允許通常被稱作虛擬機的模擬計算機環(huán)境的創(chuàng)建,其在許多方面 表現(xiàn)為物理計算機系統(tǒng)。在典型應用(例如,服務器整合及基礎結構即服務(IAAS))中,若 干虛擬機可同時在同一物理機上運行,共享它們之間的硬件資源,因此降低投資及操作成 本。每一虛擬機可獨立于其它虛擬機而運行其自己的操作系統(tǒng)及/或軟件應用程序。歸因 于惡意軟件的穩(wěn)定增殖,在此環(huán)境中操作的每一虛擬機潛在地需要惡意軟件保護。
[0004] 通常在所屬領域中使用的虛擬化解決方案包括管理程序(還被稱作虛擬機監(jiān)視 器),其由在計算硬件與虛擬機的操作系統(tǒng)(0S)之間操作的軟件層組成,且與相應0S相比 較具有更多處理器特權。由于一些惡意軟件(例如,rootkits)以0S特權級操作,因此開 發(fā)以管理程序的特權級執(zhí)行的反惡意軟件解決方案是有利的。
【發(fā)明內容】
[0005] 根據(jù)一個方面,主機系統(tǒng)包括至少一個處理器,所述主機系統(tǒng)經(jīng)配置以執(zhí)行:管理 程序,其經(jīng)配置以公開虛擬機;過程評估器,其在所述虛擬機內執(zhí)行;存儲器自省引擎,其 在所述虛擬機的外部執(zhí)行;及過程評分模塊。所述過程評估器經(jīng)配置以確定在所述虛擬機 內執(zhí)行的被評估過程是否執(zhí)行動作,且作為響應,當所述被評估過程執(zhí)行所述動作時,將第 一過程評估指示符傳輸?shù)剿鲞^程評分模塊,所述第一過程評估指示符是針對所述被評估 過程確定。所述存儲器自省引擎經(jīng)配置以攔截對操作系統(tǒng)功能的調用,以檢測在所述虛擬 機內執(zhí)行的受保護過程的啟動,其中所述操作系統(tǒng)功能經(jīng)配置以將所述受保護過程添加到 在所述虛擬機內執(zhí)行的過程列表,且響應于檢測到所述啟動,確定所述被評估過程是否嘗 試修改所述受保護過程的存儲器頁,且作為響應,當所述被評估過程嘗試修改所述存儲器 頁時,將第二過程評估指示符傳輸?shù)剿鲞^程評分模塊,所述第二過程評估指示符是針對 所述被評估過程確定。所述過程評分模塊經(jīng)配置以接收所述第一及第二過程評估指示符, 且作為響應,根據(jù)所述第一及第二過程評估指示符來確定所述被評估過程是否為惡意的。
[0006] 根據(jù)另一方面,一種非暫時性計算機可讀媒體編碼指令,所述指令當在包括至少 一個處理器的主機系統(tǒng)上執(zhí)行時導致所述主機系統(tǒng)形成:管理程序,其經(jīng)配置以公開虛擬 機;過程評估器,其在所述虛擬機內執(zhí)行;存儲器自省引擎,其在所述虛擬機的外部執(zhí)行; 及過程評分模塊。所述過程評估器經(jīng)配置以確定在所述虛擬機內執(zhí)行的被評估過程是否執(zhí) 行動作,且作為響應,當所述被評估過程執(zhí)行所述動作時,將第一過程評估指示符傳輸?shù)剿?述過程評分模塊,所述第一過程評估指示符是針對所述被評估過程確定。所述存儲器自省 引擎經(jīng)配置以攔截對操作系統(tǒng)功能的調用,以檢測在所述虛擬機內執(zhí)行的受保護過程的啟 動,其中所述操作系統(tǒng)功能經(jīng)配置以將所述受保護過程添加到在所述虛擬機內執(zhí)行的過程 列表,且響應于檢測到所述啟動,確定所述被評估過程是否嘗試修改所述受保護過程的存 儲器頁,且作為響應,當所述被評估過程嘗試修改所述存儲器頁時,將第二過程評估指示符 傳輸?shù)剿鲞^程評分模塊,所述第二過程評估指示符是針對所述被評估過程確定。所述過 程評分模塊經(jīng)配置以接收所述第一及第二過程評估指示符,且作為響應,根據(jù)所述第一及 第二過程評估指示符來確定所述被評估過程是否為惡意的。
[0007] 根據(jù)另一方面,一種方法包括使用主機系統(tǒng)的至少一個處理器以接收針對被評估 過程而確定的第一過程評估指示符,所述被評估過程在由在所述主機系統(tǒng)上執(zhí)行的管理程 序公開的虛擬機內執(zhí)行。所述方法進一步包括使用所述至少一個處理器以接收針對所述 被評估過程而確定的第二過程評估指示符,且響應于接收到所述第一及第二過程評估指示 符,使用所述至少一個處理器以根據(jù)所述第一及第二過程評估指示符來確定所述被評估過 程是否為惡意的。確定所述第一過程評估指示符包括使用在所述虛擬機內執(zhí)行的過程評估 器來確定所述被評估過程是否執(zhí)行第一動作。確定所述第二過程評估指示符包括使用在所 述虛擬機的外部執(zhí)行的存儲器自省引擎來確定所述被評估過程是否執(zhí)行第二動作。
[0008] 根據(jù)另一方面,一種方法包括使用主機系統(tǒng)的至少一個處理器以執(zhí)行存儲器自省 引擎,所述存儲器自省引擎在由在所述主機系統(tǒng)上執(zhí)行的管理程序公開的虛擬機的外部執(zhí) 行,其中執(zhí)行所述存儲器自省引擎包括檢測在所述虛擬機內執(zhí)行的過程的啟動。所述方法 進一步包括響應于所述存儲器自省引擎檢測到所述過程的所述啟動,使用所述至少一個處 理器以確定所述過程的第一及第二過程評估指示符。所述方法進一步包括響應于確定所述 第一及第二評估指示符,使用所述至少一個處理器以根據(jù)所述第一及第二過程評估指示符 來確定所述過程是否為惡意的。
【附圖說明】
[0009] 在閱讀以下詳細描述后及在參考圖式后就將更好地理解本發(fā)明的前述方面及優(yōu) 點,在圖式中:
[0010] 圖1展示根據(jù)本發(fā)明的一些實施例的受保護而不受惡意軟件攻擊的主機計算機 系統(tǒng)的示范性硬件配置。
[0011] 圖2展示根據(jù)本發(fā)明的一些實施例的由在圖1的所述主機系統(tǒng)上執(zhí)行的管理程序 公開的虛擬機的示范性集合,及結合存儲器自省引擎操作以保護虛擬機的安全應用程序。
[0012] 圖3說明在各種處理器特權級的主機系統(tǒng)上執(zhí)行的軟件對象的示范性階層,包含 根據(jù)本發(fā)明的一些實施例的反惡意軟件對象的集合。
[0013] 圖4展示根據(jù)本發(fā)明的一些實施例的接收由多個過程評估器針對過程而確定的 多個過程評估指示符的示范性過程評分模塊。
[0014] 圖5展示根據(jù)本發(fā)明的一些實施例的由圖4的過程評分模塊執(zhí)行的示范性步驟序 列。
[0015] 圖6展示根據(jù)本發(fā)明的一些實施例的圖2的系統(tǒng)配置中的存儲器地址的示范性映 射。
[0016] 圖7說明在Windows?環(huán)境中的過程的集合的示范性執(zhí)行流程。實線箭頭指示在 不存在反惡意軟件系統(tǒng)的情況下的示范性執(zhí)行流程。虛線箭頭指示對所述執(zhí)行流程的修 改,所述修改由根據(jù)本發(fā)明的一些實施例而操作的多個過程評估器引入。
[0017] 圖8說明根據(jù)本發(fā)明的一些實施例由圖2到3的存儲器自省引擎執(zhí)行的示范性步 驟序列。
[0018] 圖9展示根據(jù)本發(fā)明的一些實施例的由存儲器自省引擎執(zhí)行以保護存儲器頁的 示范性步驟序列。
[0019] 圖10說明包括經(jīng)由計算機網(wǎng)絡連接到安全服務器的多個主機系統(tǒng)的示范性配 置。
[0020] 圖11展示根據(jù)本發(fā)明的一些實施例的主機系統(tǒng)與安全服務器之間的示范性反惡 意軟件事務。
【具體實施方式】
[0021] 在以下描述中,應理解,結構之間的所有列舉的連接可為直接操作連接或通過中 介結構的間接操作連接。元件集合包含一或多個元件。元件的任何列舉應被理解為是指至 少一個元件。多個元件包含至少兩個元件。除非另有要求,否則任何所描述的方法步驟未 必需要按所說明的特定順序執(zhí)行。來源于第二元件的第一元件(例如,數(shù)據(jù))涵蓋等于第 二元件的第一元件,以及通過處理第二元件而產(chǎn)生的第一元件及任選的其它數(shù)據(jù)。根據(jù)參 數(shù)做出確定或決定涵蓋根據(jù)參數(shù)且任選地根據(jù)其它數(shù)據(jù)做出確定或決定。除非另有指定, 否則一些數(shù)量/數(shù)據(jù)的指示符可為所述數(shù)量/數(shù)據(jù)自身,或為與所述數(shù)量/數(shù)據(jù)自身不同 的指示符。除非另有指定,否則過程表示計算機程序的例子,其中計算機程序為確定計算機 系統(tǒng)以執(zhí)行指定任務的指令序列。除非另有指定,否則頁代表個別地映射到計算機系統(tǒng)的 物理存儲器的虛擬化物理存儲器的最小單元。計算機可讀媒體涵蓋例如磁性、光學及半導 體存儲媒體(例如,硬盤驅動器、光盤、塊閃存儲器、DRAM)的非暫時性媒體,以及例如導電 電纜及光纖鏈路的通信鏈路。根據(jù)一些實施例,本發(fā)明尤其提供包括硬件(例如,一或多 個處理器)以及計算機可讀媒體的計算機系統(tǒng),所述硬件經(jīng)編程以執(zhí)行本文中所描述的方 法,所述計算機可讀媒體編碼指令以執(zhí)行本文中所描述的方法。
[0022] 以下描述作為實例而未必作為限制來說明本發(fā)明的實施例。
[0023] 圖1展示根據(jù)本發(fā)明的一些實施例的執(zhí)行反惡意軟件操作的主機系統(tǒng)10的示范 性硬件配置。主機系統(tǒng)10可表示公司計算裝置(例如,企業(yè)服務器)或最終用戶裝置(例 如,個人計算機或智能電話等)。其它主機系統(tǒng)包含娛樂裝置,例如,電視機及游戲機,或具 有支持虛擬化且需要惡意軟件保護的存儲器及處理器的任何其它裝置。圖1展示用于說明 性目的的計算機系統(tǒng);其它客戶端裝置(例如,移動電話或平板計算機)可具有不同配置。 在一些實施例中,系統(tǒng)10包括物理裝置的集合,其包含處理器12、存儲器單元14、輸入裝置 16的集合、輸出裝置18的集合、存儲裝置20的集合及網(wǎng)絡適配器22的集合,其全部由總線 24的集合連接。
[0024] 在一些實施例中,處理器12包括物理裝置(例如,多核集成電路),其經(jīng)配置以用 信號及/或數(shù)據(jù)集合來執(zhí)行計算及/或邏輯運算。在一些實施例中,此類邏輯運算是以處理 器指令序列(例如,機器碼或其它軟件類型)的形式遞送到處理器12。存儲器單元14可包 括易失性計算機可讀媒體(例如,RAM),其存儲由處理器12在進行指令期間存取或產(chǎn)生的 數(shù)據(jù)/信號。輸入裝置16可包含計算機鍵盤、鼠標及麥克風等等,其包含允許用戶將數(shù)據(jù) 及/或指令引入到系統(tǒng)10中的相應硬件接口及/或適配器。輸出裝置18可包含顯示裝置 (例如,顯示器及揚聲器等等),以及硬件接口 /適配器(例如,圖形卡),其允許系統(tǒng)10向 用戶傳達數(shù)據(jù)。在一些實施例中,輸入裝置16及輸出裝置18可共享硬件的公用部分,在觸 摸屏裝置的情況下就是如此。存儲裝置20包含計算機可讀媒體,其實現(xiàn)軟件指令及/或數(shù) 據(jù)的非易失性存儲、讀取及寫入。示范性存儲裝置20包含磁盤與光盤及快閃存儲器裝置, 以及可裝卸式媒體(例如,⑶及/或DVD盤與驅動器)。網(wǎng)絡適配器22的集合使系統(tǒng)10 能夠連接到計算機網(wǎng)絡及/或其它裝置/計算機系統(tǒng)。總線24共同地表示多個系統(tǒng)、外圍 設備及芯片集總線,及/或實現(xiàn)主機系統(tǒng)10的裝置12到22的互相通信的所有其它電路。 舉例來說,總線24可包括將處理器12連接到存儲器14的北橋,及/或將處理器12連接到 裝置16到22的南橋等等。
[0025] 圖2展示根據(jù)本發(fā)明的一些實施例的在主機系統(tǒng)10上執(zhí)行且由管理程序30公開 的客戶虛擬機32a到b的示范性集合。虛擬機(VM)在所屬領域中通常被稱作實際物理機/ 計算機系統(tǒng)的軟件模擬,其各自能夠獨立于其它VM而運行其自己的操作系統(tǒng)及軟件。管理 程序30包括允許由主機系統(tǒng)10的硬件資源的多個虛擬機的多路復用(共享)的軟件,例 如,處理器操作、存儲器、存儲、輸入/輸出及聯(lián)網(wǎng)裝置。在一些實施例中,管理程序30使多 個虛擬機及/或操作系統(tǒng)(0S)能夠在主機系統(tǒng)10上同時運行,具有各種程度的隔離。為實 現(xiàn)此類配置,管理程序30的軟件形成部分可產(chǎn)生多個虛擬化(即)經(jīng)軟件模擬的裝置,每 一虛擬化裝置模擬系統(tǒng)10的物理硬件裝置,例如,處理器12及存儲器14等等。管理程序 30可進