器及何時(shí)從物理存儲(chǔ)器交換出,但由于存儲(chǔ)器自省引擎40 不駐留在物理存儲(chǔ)器中,其不能夠存取及/或保護(hù)此類數(shù)據(jù)。相反,在VM32內(nèi)執(zhí)行的AM 驅(qū)動(dòng)器36通過(guò)迫使0S34加載相應(yīng)頁(yè)而可容易地存取從物理存儲(chǔ)器交換出的頁(yè)。AM驅(qū)動(dòng) 器36可因此有效地列出由受保護(hù)過(guò)程使用/加載的所有模塊,且確定VM32的虛擬化物理 存儲(chǔ)器內(nèi)的此類模塊的大小及位置。
[0058] 在替代實(shí)施例中,替代于主動(dòng)地檢測(cè)受保護(hù)過(guò)程的啟動(dòng)(以上步驟312),存儲(chǔ)器 自省引擎40可從AM驅(qū)動(dòng)器36接收受保護(hù)過(guò)程的指示符,其中AM驅(qū)動(dòng)器36可實(shí)際上檢測(cè) 來(lái)自VM32內(nèi)的受保護(hù)過(guò)程的啟動(dòng)。在此類實(shí)施例中,如上文所描述的步驟314不再為必 須的。在另一實(shí)施例中,在步驟316中,引擎40可實(shí)際上執(zhí)行必要的計(jì)算以確定受保護(hù)過(guò) 程的存儲(chǔ)器頁(yè)的地址,而不是依賴于如上文所描述的AM驅(qū)動(dòng)器36。
[0059] 在步驟318中,存儲(chǔ)器自省引擎保護(hù)目標(biāo)頁(yè)不受非所要修改(例如,由試圖破壞 VM32的惡意軟件)的影響。所屬領(lǐng)域中已知若干此類存儲(chǔ)器保護(hù)機(jī)制。由管理程序30在 存儲(chǔ)器自省引擎40發(fā)出請(qǐng)求時(shí)可使用數(shù)據(jù)結(jié)構(gòu)(例如,EPT或NPT)來(lái)強(qiáng)制執(zhí)行保護(hù)。例 如,管理程序30可通過(guò)修改相應(yīng)頁(yè)的EPT/NPT存取權(quán)限位而將目標(biāo)存儲(chǔ)器頁(yè)設(shè)置為只讀。 在一些實(shí)施例中,管理程序30可攔截寫(xiě)入分配給目標(biāo)對(duì)象的存儲(chǔ)器頁(yè)的任何嘗試,且重新 定向到存儲(chǔ)器自省引擎40的相應(yīng)嘗試用于分析。下文關(guān)于圖9將進(jìn)一步詳細(xì)描述步驟318 中的引擎40的操作。
[0060] 為將寫(xiě)入保護(hù)應(yīng)用到目標(biāo)頁(yè),步驟318可包括執(zhí)行圖6中所說(shuō)明的種類的存儲(chǔ)器 地址的轉(zhuǎn)譯:從由0S34針對(duì)受保護(hù)過(guò)程而建立的虛擬存儲(chǔ)器空間一直到主機(jī)系統(tǒng)10的物 理存儲(chǔ)器14,或從相應(yīng)VM的虛擬化物理存儲(chǔ)器空間到物理存儲(chǔ)器14。根據(jù)步驟316中從 AM驅(qū)動(dòng)器36接收的指示符,相應(yīng)轉(zhuǎn)譯允許存儲(chǔ)器自省引擎40確定實(shí)際物理存儲(chǔ)器14中的 目標(biāo)頁(yè)的地址。此類轉(zhuǎn)譯可使用EPT/NPT機(jī)制,如關(guān)于圖6所描述。
[0061] 在步驟320中,引擎40可檢測(cè)受保護(hù)過(guò)程的終止。在一些實(shí)施例中,步驟320可 以類似于上文所描述的步驟312的方式進(jìn)行。例如,步驟320可包括從內(nèi)核功能(其經(jīng)配 置以從VM32的作用過(guò)程列表移除過(guò)程)接收信號(hào),由AM驅(qū)動(dòng)器36通過(guò)掛鉤(例如,將補(bǔ) ?。ɡ?,VMCALL指令)應(yīng)用到相應(yīng)功能,所述補(bǔ)丁重新定向到引擎40的執(zhí)行)來(lái)修改相 應(yīng)功能??梢源朔绞叫薷牡氖痉缎訵indows功能為PspDeleteProcess。當(dāng)引擎40檢測(cè)到 受保護(hù)過(guò)程的終止時(shí),步驟322例如通過(guò)指示管理程序30改變針對(duì)所述目標(biāo)頁(yè)的寫(xiě)入權(quán)限 將保護(hù)從相應(yīng)目標(biāo)頁(yè)移除。
[0062] 圖9說(shuō)明由存儲(chǔ)器自省引擎40執(zhí)行以保護(hù)目標(biāo)頁(yè)(圖8中的步驟318)的步驟序 列。在步驟332中,引擎40可攔截寫(xiě)入目標(biāo)頁(yè)的嘗試;此類嘗試可指示惡意意圖,且可經(jīng) 由管理程序30而被攔截,如上文所描述。在步驟334中,引擎40可識(shí)別執(zhí)行所述嘗試的過(guò) 程;相應(yīng)過(guò)程將被稱作攻擊過(guò)程。在一些實(shí)施例中,為執(zhí)行步驟334,引擎40可使用指令指 針寄存器(例如,x86系統(tǒng)上的EIP及/或RIP寄存器)的內(nèi)容來(lái)識(shí)別執(zhí)行所述嘗試的處 理器指令(或其地址),及使用CR3寄存器的內(nèi)容來(lái)識(shí)別相應(yīng)指令所歸屬的過(guò)程。替代地, 引擎40可使用片段寄存器的內(nèi)容(例如,x86處理器上的FS及GS寄存器)以根據(jù)某些內(nèi) 核數(shù)據(jù)結(jié)構(gòu)(其在每一次0S 34切換過(guò)程之間的執(zhí)行時(shí)被修改)來(lái)識(shí)別攻擊過(guò)程。
[0063] 在步驟336中,引擎40可制訂攻擊過(guò)程的過(guò)程評(píng)估指示符52d(參見(jiàn)例如圖4)且 將指示符52d傳輸?shù)竭^(guò)程評(píng)分模塊38。示范性指示符52d可包括在步驟334中識(shí)別的攻擊 過(guò)程的指示符(例如,過(guò)程ID),及由攻擊過(guò)程嘗試的且在步驟332中被攔截的動(dòng)作的類型 的指示符(例如,寫(xiě)入受保護(hù)存儲(chǔ)器頁(yè)的嘗試)。
[0064] -些上文所描述的方法及系統(tǒng)需要在VM32內(nèi)執(zhí)行的組件之間的通信(例如,數(shù) 據(jù)交換及/或消息接發(fā)),及在相應(yīng)VM的外部執(zhí)行的組件之間的通信(例如,數(shù)據(jù)交換及/ 或消息接發(fā))??墒褂锰摂M化的技術(shù)領(lǐng)域中已知的任何方法執(zhí)行此通信。例如,為將數(shù)據(jù) 從以內(nèi)核模式執(zhí)行的組件(例如,AM驅(qū)動(dòng)器36)傳輸?shù)酱鎯?chǔ)器自省引擎40(參見(jiàn)例如圖8 中的步驟316),一些實(shí)施例使用特權(quán)指令將處理器12的控制從VM32轉(zhuǎn)移到管理程序30。 此類特權(quán)指令的實(shí)例為Intel平臺(tái)上的VMCALL,其可用以向引擎40發(fā)信號(hào)表示正從VM32 內(nèi)轉(zhuǎn)移一些數(shù)據(jù)。被傳輸?shù)膶?shí)際數(shù)據(jù)可放置在驅(qū)動(dòng)器36與引擎40之間共享的存儲(chǔ)器的 預(yù)定區(qū)段中。為將數(shù)據(jù)從存儲(chǔ)器自省引擎40傳輸?shù)紸M驅(qū)動(dòng)器36 (參見(jiàn)例如圖8中的步驟 314及圖9中的步驟336),一些實(shí)施例使用中斷注入機(jī)制以向驅(qū)動(dòng)器36發(fā)信號(hào)表示正從相 應(yīng)VM的外部傳輸數(shù)據(jù)??桑ɡ纾┩ㄟ^(guò)上文所描述的共享存儲(chǔ)器區(qū)段來(lái)轉(zhuǎn)移實(shí)際數(shù)據(jù)。
[0065] 在一些實(shí)施例中,主機(jī)系統(tǒng)10可經(jīng)配置以與遠(yuǎn)程安全服務(wù)器交換安全信息,例 如,關(guān)于惡意軟件檢測(cè)事件的細(xì)節(jié)。圖10說(shuō)明此示范性配置,其中多個(gè)主機(jī)系統(tǒng)l〇a到c經(jīng) 由計(jì)算機(jī)網(wǎng)絡(luò)26連接到安全服務(wù)器110。在示范性實(shí)施例中,主機(jī)系統(tǒng)10a到c為由公司 的雇員使用的個(gè)人計(jì)算機(jī),而安全服務(wù)器110可包括由相應(yīng)公司的網(wǎng)絡(luò)管理員配置以監(jiān)視 發(fā)生在系統(tǒng)l〇a到c上的惡意軟件威脅或安全事件的計(jì)算機(jī)系統(tǒng)。在另一實(shí)施例中,例如, 在基礎(chǔ)結(jié)構(gòu)即服務(wù)(IAAS)系統(tǒng)(其中每一主機(jī)系統(tǒng)10a到c為托管數(shù)十或數(shù)百個(gè)虛擬機(jī) 的服務(wù)器)中,安全服務(wù)器110可包括計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)經(jīng)配置以管理針對(duì)來(lái)自 中央位置的所有此類VM的反惡意軟件操作。在另一實(shí)施例中,安全服務(wù)器110可包括計(jì)算 機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)由反惡意軟件的提供商(例如,安全應(yīng)用程序44的提供商等)配 置以接收關(guān)于在圍繞網(wǎng)絡(luò)26的各種系統(tǒng)上檢測(cè)到的惡意軟件的統(tǒng)計(jì)及/或行為數(shù)據(jù)。網(wǎng) 絡(luò)26可包含廣域網(wǎng)(例如,因特網(wǎng)),而網(wǎng)絡(luò)26的部分可包含局域網(wǎng)(LAN)。
[0066] 圖11展示在圖10中所展示的實(shí)施例中的主機(jī)系統(tǒng)10與安全服務(wù)器110之間的 示范性數(shù)據(jù)交換。主機(jī)系統(tǒng)10可經(jīng)配置以向服務(wù)器110發(fā)送安全報(bào)告80,且從服務(wù)器110 接收安全設(shè)置82的集合。在一些實(shí)施例中,安全報(bào)告80包括過(guò)程評(píng)估指示符及/或由在 主機(jī)系統(tǒng)10上執(zhí)行的過(guò)程評(píng)估器確定的得分,及/或由過(guò)程評(píng)分模塊38確定的累積得分 等等。安全報(bào)告80還可包括識(shí)別相應(yīng)虛擬機(jī)及被評(píng)估過(guò)程的數(shù)據(jù)(例如,過(guò)程ID、名稱、路 徑、散列、版本信息或應(yīng)用程序及/或過(guò)程的其它種類的標(biāo)識(shí)符),以及將過(guò)程評(píng)估指示符/ 得分與VM及過(guò)程(針對(duì)所述過(guò)程而確定所述指示符)相關(guān)聯(lián)的指示符。在一些實(shí)施例中, 報(bào)告80可進(jìn)一步包括關(guān)于在主機(jī)系統(tǒng)10上執(zhí)行的過(guò)程及/或應(yīng)用程序的統(tǒng)計(jì)及/或行為 數(shù)據(jù)。系統(tǒng)10可經(jīng)配置以在檢測(cè)到惡意軟件時(shí)及/或根據(jù)時(shí)間表(例如,每幾分鐘、每小 時(shí)等等)而發(fā)送報(bào)告80。
[0067] 在一些實(shí)施例中,安全設(shè)置82可包含過(guò)程評(píng)估器的操作參數(shù)(例如,圖4中的過(guò) 濾器50a到c的參數(shù)),及/或過(guò)程評(píng)分模塊38的參數(shù)。模塊38的操作參數(shù)的實(shí)例為用于 確定被評(píng)估過(guò)程是否為惡意的閾值(參見(jiàn)圖5中的步驟308及相關(guān)聯(lián)的描述)。過(guò)程評(píng)估 器的示范性操作參數(shù)為指派到被評(píng)估過(guò)程(當(dāng)所述被評(píng)估過(guò)程執(zhí)行特定動(dòng)作時(shí))的惡意得 分的值。當(dāng)相應(yīng)過(guò)程寫(xiě)入磁盤文件時(shí),被評(píng)估過(guò)程可接收〇. 1的惡意得分;且當(dāng)被評(píng)估過(guò)程 修改Windows注冊(cè)表值時(shí),被評(píng)估過(guò)程可接收0. 7的惡意得分。
[0068] 在一些實(shí)施例中,服務(wù)器110運(yùn)行優(yōu)化算法來(lái)動(dòng)態(tài)地調(diào)整此類參數(shù)以最大化惡意 軟件檢測(cè)性能,例如,在最小化誤報(bào)的同時(shí)提高檢測(cè)率。優(yōu)化算法可接收關(guān)于在多個(gè)主機(jī)系 統(tǒng)10a到c上執(zhí)行的各種過(guò)程的統(tǒng)計(jì)及/或行為數(shù)據(jù)(包含由各種過(guò)程評(píng)估器向過(guò)程評(píng)分 模塊38報(bào)告的過(guò)程評(píng)估指示符/得分),且確定參數(shù)的最優(yōu)值。所述值隨后經(jīng)由網(wǎng)絡(luò)26被 傳輸?shù)较鄳?yīng)主機(jī)系統(tǒng)。在一些實(shí)施例中,為確定最優(yōu)參數(shù)值,服務(wù)器110可使用已知為干凈 (未受惡意軟件的影響)的過(guò)程的集合來(lái)校準(zhǔn)過(guò)程評(píng)分模塊38及/或過(guò)程評(píng)估器50a到 c的操作。在示范性校準(zhǔn)方案中,安全服務(wù)器110可指示主機(jī)系統(tǒng)10執(zhí)行校準(zhǔn)過(guò)程的集合 (已知為干凈的),且發(fā)送回服務(wù)器110針對(duì)所述校準(zhǔn)過(guò)程確定的過(guò)程評(píng)估指示符/得分的 集合。服務(wù)器110可隨后確定針對(duì)相應(yīng)虛擬機(jī)及/或主機(jī)系統(tǒng)定制的參數(shù)值。
[0069] 在另一實(shí)例中,安全設(shè)置82包括權(quán)重值的集合,由過(guò)程評(píng)分模塊38使用所述權(quán)重 值的集合以根據(jù)從各種過(guò)程評(píng)估器接收的個(gè)別過(guò)程評(píng)估指示符來(lái)確定針對(duì)被評(píng)估過(guò)程的 累積惡意得分。在實(shí)施例中,其中累積得分為個(gè)別得分的加權(quán)總和或加權(quán)平均,且其中根據(jù) 不同惡意軟件檢測(cè)標(biāo)準(zhǔn)或方法(例如,當(dāng)每一得分指示被評(píng)估過(guò)程是否執(zhí)行特定惡意軟件 指示行為時(shí))來(lái)計(jì)算每一得分,與其它標(biāo)準(zhǔn)/方法相比較,改變個(gè)別得分的權(quán)重可有效地改 變相應(yīng)標(biāo)準(zhǔn)或方法的相關(guān)性。惡意軟件威脅通常以波的形式發(fā)生,其中世界范圍內(nèi)的大量 計(jì)算機(jī)系統(tǒng)在短時(shí)間間隔中受到相同惡意軟件代理的影響。通過(guò)實(shí)時(shí)從多個(gè)主機(jī)系統(tǒng)接收 安全報(bào)告80,安全服務(wù)器110可保持與當(dāng)前惡意軟件威脅的更新,且可迅速地將最優(yōu)安全 設(shè)置82傳遞到相應(yīng)主機(jī)系統(tǒng),設(shè)置82包含(例如)針對(duì)檢測(cè)當(dāng)前惡意軟件威脅而優(yōu)化的 得分權(quán)重的集合。
[0070] 以上所描述的示范性系統(tǒng)及方法允許保護(hù)主機(jī)系統(tǒng)(例如,計(jì)算機(jī)系統(tǒng))不受惡 意軟件(例如,病毒或rootkits)的攻擊。常規(guī)反惡意軟件系統(tǒng)通常以操作系統(tǒng)的處理器 特權(quán)級(jí)(例如,內(nèi)核模式)執(zhí)行。一些惡意軟件(例如,rootkits)也可以0S的級(jí)操作,且 可因此使常規(guī)反惡意軟件系統(tǒng)癱瘓且破壞計(jì)算機(jī)系統(tǒng)的安全性。相反,在本發(fā)明的一些實(shí) 施例中,管理程序以最高處理器特權(quán)級(jí)在計(jì)算機(jī)系統(tǒng)上執(zhí)行,用虛擬機(jī)代替操作系統(tǒng)。根據(jù) 本發(fā)明的一些實(shí)施例而操作的反惡意軟件系統(tǒng)包括以管理程序級(jí)在VM內(nèi)執(zhí)行的組件及在 VM外部執(zhí)行的組件。因此可以與操作系統(tǒng)的處理器特權(quán)級(jí)相比較更高的處理器特權(quán)級(jí)進(jìn)行 一些反惡意軟件操作,其中在VM內(nèi)執(zhí)行的惡意軟件不能夠?qū)⑵淦茐?。在一些?shí)施例中,以 管理程序的級(jí)執(zhí)行的單個(gè)存儲(chǔ)器自省引擎可保護(hù)在相應(yīng)計(jì)算機(jī)系統(tǒng)上同時(shí)執(zhí)行的多個(gè)虛 擬機(jī)。
[0071] 在一些實(shí)施例中,存儲(chǔ)器自省引擎的操作包含選擇關(guān)鍵軟件對(duì)象(例如,某些驅(qū) 動(dòng)器、庫(kù)、寄存器及頁(yè)表等)的集合,且防止惡意修改此類對(duì)象。特定來(lái)說(shuō),一些實(shí)施例可因 此保護(hù)在VM內(nèi)執(zhí)行的反惡意軟件組件不受惡意攻擊。
[0072] 為保護(hù)此類對(duì)象,一些實(shí)施例可通過(guò)攔截寫(xiě)入分配到相應(yīng)對(duì)象的存儲(chǔ)器空間的嘗 試來(lái)防止惡意修改,且阻止或重新定向所述嘗試。其它實(shí)施例可通過(guò)將分配到相應(yīng)對(duì)象的 存儲(chǔ)器空間標(biāo)記為只讀來(lái)保護(hù)目標(biāo)對(duì)象。在典型的硬件及軟件配置中,存儲(chǔ)器被劃分成具 有連續(xù)地址的個(gè)別塊(被稱作頁(yè))。在支持虛擬化的系統(tǒng)中,頁(yè)存取權(quán)限由管理程序(例 如)使用專用數(shù)據(jù)結(jié)構(gòu)(例如,Intel平臺(tái)上的擴(kuò)展頁(yè)表(EPT))來(lái)控制。因此(例如)通 過(guò)存儲(chǔ)器自省引擎指示管理程序?qū)⒑袣w屬于相應(yīng)對(duì)象的數(shù)據(jù)的頁(yè)的集合標(biāo)記為只讀可 實(shí)現(xiàn)保護(hù)目標(biāo)對(duì)象的存儲(chǔ)器空間。
[0073] 在一些實(shí)施例中,一些反惡意軟件組件在受保護(hù)虛擬機(jī)內(nèi)執(zhí)行,與存儲(chǔ)器自省引 擎合作以檢測(cè)惡意軟件。此類配置通過(guò)橋接通過(guò)虛擬化而產(chǎn)生的語(yǔ)義鴻溝可實(shí)質(zhì)上簡(jiǎn)化惡 意軟件檢測(cè)。在典型的軟件配置中,以用戶模式執(zhí)行的惡意軟件檢測(cè)組件可獲取關(guān)于被評(píng) 估過(guò)程的行為的豐富信息,而大部分此信息對(duì)以內(nèi)核級(jí)執(zhí)行的組件或在相應(yīng)VM外部執(zhí)行 的組件來(lái)說(shuō)不是容易獲得的。例如,當(dāng)被評(píng)估過(guò)程嘗試從因特網(wǎng)下載文件時(shí),用戶模式過(guò) 程評(píng)估器