專利名稱:諸如虛擬機(jī)或硬化操作系統(tǒng)中的計(jì)算機(jī)安全管理的制作方法
技術(shù)領(lǐng)域:
所描述技術(shù)一般涉及維護(hù)計(jì)算機(jī)操作系統(tǒng)的安全性與完整性。
背景技術(shù):
當(dāng)被特別設(shè)計(jì)成損害或破壞系統(tǒng)的軟件(例如,惡意軟件或“malware(惡意軟件)”)入侵計(jì)算機(jī)系統(tǒng)時(shí),計(jì)算機(jī)操作系統(tǒng)的完整性以及因此整個(gè)計(jì)算機(jī)系統(tǒng)遭受危害。盡管假設(shè)病毒、蠕蟲和特洛伊木馬威脅的出現(xiàn),計(jì)算機(jī)用戶的安全考慮和需求的范圍是廣泛的,然而大多數(shù)計(jì)算機(jī)用戶關(guān)心的是諸如操作系統(tǒng)進(jìn)程、存儲(chǔ)器進(jìn)程等其計(jì)算機(jī)的關(guān)鍵基礎(chǔ)結(jié)構(gòu)組件的完整性。
某些類型的惡意軟件使用了操作系統(tǒng)的特許操作來攻擊計(jì)算機(jī)。這樣的特許操作一般包括只能由特許用戶或進(jìn)程訪問的指令或指令集。例如,當(dāng)惡意軟件不知何故能夠訪問這些特許操作中的一個(gè)或多個(gè)時(shí),這可能導(dǎo)致操作系統(tǒng)文件的刪除或破壞、對(duì)存儲(chǔ)器中的操作系統(tǒng)組件的攻擊、用戶文件的刪除、以及許多其它有害的可能性。在某些情況下,甚至非惡意進(jìn)程也可能通過訪問特許操作的無意行為而損壞計(jì)算機(jī)系統(tǒng)。更普遍地,幾乎任何進(jìn)程都可能通過簡(jiǎn)單地假冒特許用戶的身份而獲得對(duì)特許操作的訪問。
通常,操作系統(tǒng)提供用于主存進(jìn)程并為那些進(jìn)程提供系統(tǒng)服務(wù)的基礎(chǔ)結(jié)構(gòu)。操作系統(tǒng)一般提供基本安全保護(hù),諸如在系統(tǒng)資源上實(shí)施訪問控制和所有權(quán)權(quán)限。例如,在正常的操作系統(tǒng)環(huán)境中,諸如主機(jī)防火墻、易受攻擊性評(píng)價(jià)、補(bǔ)丁檢測(cè)、行為阻斷、主機(jī)或網(wǎng)絡(luò)入侵檢測(cè)以及反病毒技術(shù)等保護(hù)性安全服務(wù)都作為操作系統(tǒng)中的本機(jī)應(yīng)用程序來運(yùn)行。盡管有這些措施,然而操作系統(tǒng)有時(shí)仍不能準(zhǔn)確判定是否受到了攻擊。特別地,一旦一段惡意代碼或其它惡意軟件攻擊了計(jì)算機(jī)系統(tǒng)并獲得足夠的控制(例如,管理員級(jí)訪問),則操作系統(tǒng)用來判定它是否處于攻擊之下的所有進(jìn)一步嘗試都不再有價(jià)值,因?yàn)橛糜谶@種嘗試的機(jī)制也被破壞了。這是因?yàn)閻阂獯a可有效地修改操作系統(tǒng)或者用來保護(hù)它的應(yīng)用程序所使用的存儲(chǔ)器內(nèi)或盤上結(jié)構(gòu)的任何內(nèi)容。
一種保護(hù)計(jì)算機(jī)系統(tǒng)及其操作系統(tǒng)的方法涉及安裝一組安全應(yīng)用程序,諸如反病毒軟件、個(gè)人防火墻及入侵檢測(cè)系統(tǒng)。在有多個(gè)計(jì)算機(jī)系統(tǒng)的系統(tǒng)中,諸如計(jì)算機(jī)網(wǎng)絡(luò)或布署在陣列中的計(jì)算機(jī)系統(tǒng)的集群,每個(gè)獨(dú)立計(jì)算機(jī)系統(tǒng)運(yùn)行它自己的那組安全應(yīng)用程序。這是因?yàn)榫W(wǎng)絡(luò)或陣列中的每個(gè)計(jì)算機(jī)系統(tǒng)都是具有其自己網(wǎng)絡(luò)附件、它自己的中央處理單元、它自己的操作系統(tǒng)實(shí)例等的物理上獨(dú)立的實(shí)體。盡管這樣的安全應(yīng)用程序可安裝在每個(gè)計(jì)算機(jī)系統(tǒng)上以防止計(jì)算機(jī)系統(tǒng)及其操作系統(tǒng)受到危害,但這樣的安全應(yīng)用程序可能太易于失敗而不能保護(hù)計(jì)算機(jī)系統(tǒng),因?yàn)榫拖笕魏芜\(yùn)行在計(jì)算機(jī)系統(tǒng)上的其它應(yīng)用程序一樣,它們也易于受到攻擊。
在保護(hù)計(jì)算機(jī)系統(tǒng)及其操作系統(tǒng)的另一種方法中,計(jì)算機(jī)系統(tǒng)的各方面,如存儲(chǔ)器,都由計(jì)算機(jī)系統(tǒng)的隔離方面保護(hù)。
發(fā)明內(nèi)容
這里所描述的計(jì)算機(jī)安全技術(shù)提供了各種不同的安全特征,包括使用單個(gè)安全進(jìn)程(或安全進(jìn)程組)來監(jiān)視、保護(hù)和修復(fù)運(yùn)行在主機(jī)系統(tǒng)上的多個(gè)邏輯上隔離的虛擬機(jī)。在某些實(shí)施例中,該安全技術(shù)對(duì)在計(jì)算機(jī)上執(zhí)行的一個(gè)或多個(gè)自包含的操作環(huán)境實(shí)例提供了安全性。該安全技術(shù)可包括實(shí)現(xiàn)可由監(jiān)管進(jìn)程控制的安全應(yīng)用程序。安全應(yīng)用程序可監(jiān)視一個(gè)或多個(gè)虛擬機(jī)。這種監(jiān)視可使用各種不同的技術(shù)來完成,包括由安全應(yīng)用程序?qū)μ摂M機(jī)的離線掃描、實(shí)現(xiàn)運(yùn)行于每個(gè)虛擬機(jī)上的代理安全進(jìn)程等等。
在某些實(shí)施例中,這組安全應(yīng)用程序和監(jiān)管進(jìn)程都可運(yùn)行于計(jì)算機(jī)的主機(jī)系統(tǒng)上,它可提供用于執(zhí)行一個(gè)或多個(gè)自包含操作環(huán)境的平臺(tái)。該安全技術(shù)可保護(hù)運(yùn)行于一個(gè)或多個(gè)自包含操作環(huán)境中的進(jìn)程以及運(yùn)行于計(jì)算機(jī)上在自包含操作環(huán)境之外的進(jìn)程。
圖1是示出在一個(gè)實(shí)施例中用于實(shí)現(xiàn)安全技術(shù)的系統(tǒng)示例的框圖。
圖2是示出圖1系統(tǒng)中的虛擬機(jī)的離線掃描的示例的框圖。
圖3A是示出圖1系統(tǒng)中的虛擬機(jī)的離線掃描的可選示例的框圖。
圖3B是示出圖1系統(tǒng)中的虛擬機(jī)的離線掃描的另一示例的框圖。
圖3C是示出圖1系統(tǒng)中的虛擬機(jī)的離線掃描的又一示例的框圖。
圖4是示出由監(jiān)管進(jìn)程執(zhí)行的監(jiān)視圖1的系統(tǒng)中的操作系統(tǒng)的例程的流程圖。
圖5是示出使用周期性掃描來監(jiān)視圖1的系統(tǒng)中的虛擬機(jī)的安全監(jiān)控例程的示例的流程圖。
圖6是示出使用虛擬機(jī)結(jié)構(gòu)安裝來監(jiān)視圖1的系統(tǒng)中的虛擬機(jī)的安全監(jiān)控例程的第二示例的流程圖。
圖7是示出不使用虛擬機(jī)結(jié)構(gòu)安裝來監(jiān)視圖1的系統(tǒng)中的虛擬機(jī)的安全監(jiān)控例程的第三示例的流程圖。
圖8是示出使用運(yùn)行于虛擬機(jī)中的代理進(jìn)程來監(jiān)控圖1的系統(tǒng)中的虛擬機(jī)的安全監(jiān)控例程的第二示例的流程圖。
在附圖中,同樣的參考標(biāo)號(hào)標(biāo)識(shí)相同或基本相似的元素或動(dòng)作。為便于對(duì)任意特定元素或動(dòng)作的討論,參考標(biāo)號(hào)中的最高一位數(shù)字指的是首次引入該元素的圖號(hào)(例如,元素204是關(guān)于圖2第一次引入和討論的)。
具體實(shí)施例方式
現(xiàn)在將參考各實(shí)施例描述本發(fā)明。以下描述提供了用于本發(fā)明這些實(shí)施例的全面理解和開放描述的特定細(xì)節(jié)。然而,本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可不采用這些細(xì)節(jié)而實(shí)施。在其它實(shí)例中,沒有詳細(xì)示出或描述眾所周知的結(jié)構(gòu)和功能,以免不必要地模糊對(duì)本發(fā)明實(shí)施例的描述。
所呈現(xiàn)描述中使用的術(shù)語旨在以其最廣泛合理的方式解釋,即使是與本發(fā)明某個(gè)特定實(shí)施例的詳細(xì)描述結(jié)合起來使用的。某些術(shù)語會(huì)在下面強(qiáng)調(diào);然而,旨在以任何受限方式解釋的任何術(shù)語都將公開而明確地如本詳細(xì)描述部分中這樣定義。
I.綜述這里所描述的計(jì)算機(jī)安全技術(shù)提供了各種不同的安全特征,包括使用單個(gè)安全進(jìn)程(或安全進(jìn)程組)來監(jiān)視、保護(hù)和修復(fù)運(yùn)行于主機(jī)系統(tǒng)上的多個(gè)邏輯上隔離的虛擬機(jī)。
在某些實(shí)施例中,在物理機(jī)上執(zhí)行的主機(jī)系統(tǒng)提供了其上可執(zhí)行操作系統(tǒng)和應(yīng)用程序的虛擬機(jī)。盡管許多進(jìn)程可在虛擬機(jī)上執(zhí)行,但通常執(zhí)行于虛擬機(jī)上的操作系統(tǒng)和應(yīng)用程序不能訪問資源(例如存儲(chǔ)器和設(shè)備),除非提供虛擬機(jī)的主機(jī)系統(tǒng)允許或者由已經(jīng)分配給虛擬機(jī)的詢問指定。
如果虛擬機(jī)執(zhí)行了惡意軟件,任何損害都被限制在虛擬機(jī)的操作系統(tǒng)、應(yīng)用程序和可訪問資源中。這樣,計(jì)算機(jī)可充分受保護(hù)而不被虛擬機(jī)上執(zhí)行的惡意軟件影響。
在某些實(shí)施例中,主機(jī)系統(tǒng)可防止在虛擬機(jī)上執(zhí)行的操作系統(tǒng)和應(yīng)用程序進(jìn)行可引起對(duì)物理機(jī)的資源或操作系統(tǒng)的不合需要的改變的特許操作。例如,在虛擬機(jī)上執(zhí)行的操作系統(tǒng)可在虛擬機(jī)中給以管理員權(quán)限,但不是在物理機(jī)內(nèi)。
在某些實(shí)施例中,主機(jī)系統(tǒng)實(shí)現(xiàn)搶先安全進(jìn)程。這樣的安全進(jìn)程的示例包括主機(jī)防火墻監(jiān)控程序、易受攻擊性評(píng)價(jià)監(jiān)控程序、補(bǔ)丁檢測(cè)監(jiān)控程序、行為阻斷監(jiān)控程序、主機(jī)或網(wǎng)絡(luò)入侵檢測(cè)監(jiān)控程序以及反病毒技術(shù)。通常,配置安全進(jìn)程來增強(qiáng)虛擬機(jī)、主機(jī)系統(tǒng)以及進(jìn)而是物理機(jī)的安全性。
在某些實(shí)施例中,安全進(jìn)程被實(shí)施為或受控于運(yùn)行在主機(jī)系統(tǒng)上的監(jiān)管進(jìn)程。監(jiān)管進(jìn)程可有助于或?yàn)榘踩M(jìn)程提供對(duì)虛擬機(jī)組件的某種級(jí)別的訪問或可見性,包括虛擬存儲(chǔ)器、虛擬盤、虛擬網(wǎng)絡(luò)適配器、虛擬驅(qū)動(dòng)器等(例如,以存儲(chǔ)器中的數(shù)據(jù)結(jié)構(gòu)或?qū)ο竽P偷男问?。例如,監(jiān)管進(jìn)程可允許安全進(jìn)程掃描存儲(chǔ)器中或存儲(chǔ)在對(duì)應(yīng)于虛擬機(jī)的虛擬硬盤的磁盤上的數(shù)據(jù)結(jié)構(gòu)以尋找惡意軟件或安全漏洞的證據(jù)。此外(或可供選擇地),當(dāng)提供了由主機(jī)系統(tǒng)支持的對(duì)象模型時(shí),監(jiān)管進(jìn)程可幫助返回有關(guān)虛擬機(jī)狀態(tài)(諸如存儲(chǔ)器狀態(tài)或通信狀態(tài))的信息至主機(jī)系統(tǒng)。通常,由于主機(jī)系統(tǒng)和監(jiān)管進(jìn)程提供了某種級(jí)別的隔離,安全進(jìn)程可監(jiān)管和監(jiān)視虛擬機(jī)的安全,同時(shí)還保持對(duì)這些虛擬機(jī)中執(zhí)行的有害程序的不可訪問。這樣,保護(hù)安全進(jìn)程不被它們所要監(jiān)控的程序篡改或摧毀。
在某些實(shí)施例中,安全進(jìn)程可用于監(jiān)視和修復(fù)處于已保存狀態(tài)的虛擬機(jī),其中虛擬機(jī)監(jiān)控程序的執(zhí)行已停止,且所有關(guān)于虛擬機(jī)存儲(chǔ)器、設(shè)備和CPU狀態(tài)的信息都寫出到物理文件中。安全進(jìn)程還可用來監(jiān)視和修復(fù)處于暫停狀態(tài)的虛擬機(jī),這一般是由虛擬機(jī)管理器調(diào)用的。在暫停狀態(tài)期間,虛擬機(jī)停止執(zhí)行,但保持準(zhǔn)備好繼續(xù)下一指令或處理。不論在暫停還是已保存狀態(tài)情況下,虛擬機(jī)內(nèi)部的虛擬操作系統(tǒng)不知道狀態(tài)改變。同樣地,安全進(jìn)程可具有在載入主機(jī)系統(tǒng)前掃描和修復(fù)或清除虛擬機(jī)的能力。
在某些實(shí)施例中,主機(jī)系統(tǒng)可安裝虛擬機(jī)的硬盤,如同它是一個(gè)物理盤一樣,并隨后在塊級(jí)別上掃描虛擬硬盤(如同任意其它已安裝盤一樣)。例如,主機(jī)系統(tǒng)可使用能夠載入物理機(jī)操作系統(tǒng)的盤驅(qū)動(dòng)器。這個(gè)盤驅(qū)動(dòng)器隨后可解釋虛擬硬盤,并將作為本地附加盤呈現(xiàn)給主機(jī)系統(tǒng)。
監(jiān)視虛擬機(jī)的另一方法是在每個(gè)虛擬機(jī)中運(yùn)行“代理”安全進(jìn)程。這樣,代理安全進(jìn)程關(guān)聯(lián)于主機(jī)系統(tǒng)上的主安全進(jìn)程。代理安全進(jìn)程打開到主安全進(jìn)程的通信信道,并幫助發(fā)現(xiàn)對(duì)虛擬機(jī)的攻擊并從中恢復(fù)。盡管這種情況可能涉及在攻擊期間代理安全進(jìn)程被危害的風(fēng)險(xiǎn),但代理還有可用于它的經(jīng)由主安全進(jìn)程的外部恢復(fù)選項(xiàng)。在某些情況下(例如涉及系統(tǒng)管理程序使用的情況),代理可運(yùn)行于不同的虛擬機(jī)中而不是其實(shí)際監(jiān)控的虛擬機(jī)。
在某些實(shí)施例中,主機(jī)系統(tǒng)可拍攝每個(gè)虛擬機(jī)完整狀態(tài)的周期性快照。理論上,這種快照拍攝可瞬間執(zhí)行,具有較小的性能開銷。然而這種技術(shù)的許多變體都是可能的。如果安全進(jìn)程檢測(cè)到虛擬機(jī)內(nèi)的異常(例如,惡意軟件覆寫了操作系統(tǒng)或者惡意軟件把自己表示為存儲(chǔ)器中的程序),則主機(jī)系統(tǒng)可將虛擬機(jī)狀態(tài)恢復(fù)到最后的快照狀態(tài),采取措施來防止異常的再次發(fā)生,并重啟虛擬機(jī)。
II.代表性系統(tǒng)圖1-5和以下討論提供了本發(fā)明可在其中實(shí)現(xiàn)的合適環(huán)境的簡(jiǎn)要描述。盡管不要求,但本發(fā)明的諸方面可諸如由通用計(jì)算機(jī)(例如服務(wù)器計(jì)算機(jī)、無線設(shè)備或個(gè)人/膝上型計(jì)算機(jī))執(zhí)行的例程等在計(jì)算機(jī)可執(zhí)行指令的通用上下文環(huán)境中描述。相關(guān)領(lǐng)域中的技術(shù)人員將理解,本發(fā)明可用其它通信、數(shù)據(jù)處理或計(jì)算機(jī)系統(tǒng)配置來實(shí)施,包括因特網(wǎng)裝置、手持設(shè)備(包括個(gè)人數(shù)字助理(PDA))、可穿戴計(jì)算機(jī)、各種蜂窩或移動(dòng)電話、嵌入式計(jì)算機(jī)(包括耦合到汽車上的那些)、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)電子產(chǎn)品、機(jī)頂盒、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。
本發(fā)明諸方面可在被特別編程、配置或構(gòu)造以執(zhí)行一個(gè)或多個(gè)在這里詳細(xì)解釋的計(jì)算機(jī)可執(zhí)行指令的專用計(jì)算機(jī)或數(shù)據(jù)處理器上實(shí)施。本發(fā)明的諸方面還可在分布式計(jì)算環(huán)境中實(shí)施,其中任務(wù)或模塊由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可位于本地或遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
本發(fā)明的諸方面可存儲(chǔ)或分布在計(jì)算機(jī)可讀介質(zhì)上,包括磁或光可讀的計(jì)算機(jī)盤,作為半導(dǎo)體存儲(chǔ)器、納米技術(shù)存儲(chǔ)器、有機(jī)或光存儲(chǔ)器或其它便攜式數(shù)據(jù)存儲(chǔ)介質(zhì)上的微碼。事實(shí)上,本發(fā)明諸方面中的計(jì)算機(jī)實(shí)現(xiàn)的指令、數(shù)據(jù)結(jié)構(gòu)、屏幕顯示和其它數(shù)據(jù)可分布于因特網(wǎng)或其它網(wǎng)絡(luò)(包括無線網(wǎng))上、一段時(shí)間內(nèi)傳播介質(zhì)(例如電磁波、聲波等)上的傳播信號(hào)上、或者可在任意模擬或數(shù)字網(wǎng)絡(luò)(分組交換、電路交換或其它方案)上提供。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明的各部分駐留在服務(wù)器計(jì)算機(jī)上,同時(shí)相應(yīng)部分駐留在如移動(dòng)設(shè)備的客戶機(jī)計(jì)算機(jī)上。
參考圖1,其上可實(shí)現(xiàn)計(jì)算機(jī)安全技術(shù)的計(jì)算機(jī)系統(tǒng)(物理機(jī))100配備了各種組件。這些組件包括被配置為在計(jì)算機(jī)系統(tǒng)100上運(yùn)行的主機(jī)系統(tǒng)102,它附加于、與之結(jié)合或代替標(biāo)準(zhǔn)或通用計(jì)算機(jī)操作系統(tǒng)104。在某些實(shí)施例中,可配置主機(jī)系統(tǒng)102,以使它不能訪問除了本機(jī)和/或特許監(jiān)管和安全功能之外的任何內(nèi)容。主機(jī)系統(tǒng)102可與一個(gè)或多個(gè)計(jì)算機(jī)資源接口,諸如帶有存儲(chǔ)器管理單元(MMU)108的處理器106、磁盤110、存儲(chǔ)器112、通信子系統(tǒng)114以及一個(gè)或多個(gè)系統(tǒng)驅(qū)動(dòng)器116。
在某些實(shí)施例中,一個(gè)或多個(gè)虛擬機(jī)118運(yùn)行于主機(jī)系統(tǒng)102的控制之下并可從屬于主機(jī)系統(tǒng)102。虛擬機(jī)118的每一個(gè)可包括有助于處理器和其它機(jī)器資源虛擬化或仿真的組件集合。例如,如說明的實(shí)施例所示,每個(gè)虛擬機(jī)118可訪問一組仿真資源,包括虛擬網(wǎng)絡(luò)適配器119、虛擬存儲(chǔ)器120(它可包括物理機(jī)存儲(chǔ)器112的已分配部分)、虛擬盤122以及各自代表非虛擬系統(tǒng)驅(qū)動(dòng)器116的虛擬實(shí)例的虛擬驅(qū)動(dòng)器124。虛擬操作系統(tǒng)實(shí)例126運(yùn)行在這些虛擬機(jī)118的每一個(gè)上。在某些實(shí)施例中,虛擬操作系統(tǒng)實(shí)例126可以是物理機(jī)操作系統(tǒng)104的全部或部分副本。
通常,虛擬機(jī)118可依靠MMU 108來提供各種頁面級(jí)保護(hù)。通常,運(yùn)行在每個(gè)虛擬機(jī)上的應(yīng)用程序或進(jìn)程129只使用它們各自的虛擬機(jī)的仿真資源(例如,虛擬存儲(chǔ)器120、虛擬盤122、虛擬驅(qū)動(dòng)器124、操作系統(tǒng)126等)。這樣的應(yīng)用程序或進(jìn)程129有時(shí)被稱為“客戶”碼(guset code)。仿真資源通常假定是可信的,其意義在于它們遵從于主機(jī)系統(tǒng)102上的標(biāo)準(zhǔn)保護(hù)機(jī)制并不暴露任何主機(jī)系統(tǒng)用戶數(shù)據(jù)給客戶碼,除非明確地命令這么做。
在某些實(shí)施例中,仿真資源可使用若干集成技術(shù),諸如I/O端口訪問、存儲(chǔ)器映射的寄存器、直接存儲(chǔ)器存取(DMA)、中斷等,在主機(jī)系統(tǒng)102和運(yùn)行在虛擬機(jī)118上的客戶碼之間交換數(shù)據(jù)。其它數(shù)據(jù)交換技術(shù)包括剪貼板共享、文件拖放、時(shí)間同步等。為支持這類數(shù)據(jù)交換技術(shù),虛擬機(jī)118可提供幾種能力,包括異步客戶事件、同步主機(jī)調(diào)用、在客戶碼和主機(jī)系統(tǒng)102之間數(shù)據(jù)傳輸、集成服務(wù)注冊(cè)等。
虛擬機(jī)118可在主機(jī)系統(tǒng)102上使用幾種可能技術(shù)中的任一種創(chuàng)建或啟動(dòng)。例如,在一個(gè)實(shí)施例中,主機(jī)系統(tǒng)102可創(chuàng)建并啟動(dòng)虛擬機(jī)的實(shí)例并在創(chuàng)建時(shí)為虛擬機(jī)配置參數(shù)。在某些實(shí)施例中,主機(jī)系統(tǒng)102可將現(xiàn)存虛擬機(jī)映像放在盤110(或許在共享上)上,并將該映像載入為新虛擬機(jī)實(shí)例。在某些情況下,這種載入稱為“導(dǎo)入”虛擬機(jī)實(shí)例,且在某種程度上可比作將數(shù)據(jù)從一個(gè)應(yīng)用程序帶入另一個(gè)應(yīng)用程序的”導(dǎo)入”功能。
在某些實(shí)施例中,一組一個(gè)或多個(gè)監(jiān)管進(jìn)程128運(yùn)行在主機(jī)系統(tǒng)102上。在某些實(shí)施例中,一個(gè)或多個(gè)監(jiān)管進(jìn)程128可具有對(duì)虛擬操作系統(tǒng)實(shí)例126的完全或部分訪問,并可為每個(gè)虛擬機(jī)118提供安全服務(wù)。在某些實(shí)施例中,監(jiān)管進(jìn)程128還可處理諸如數(shù)字權(quán)限管理(DRM)和許可控制等活動(dòng)。由于這種配置規(guī)定運(yùn)行于虛擬機(jī)118上的任意惡意軟件不能訪問每個(gè)虛擬機(jī)外的資源,監(jiān)管進(jìn)程128一般是安全的,免于惡意軟件的破壞。
在某些實(shí)施例中,一個(gè)或多個(gè)監(jiān)管進(jìn)程128控制一組可保護(hù)和/或監(jiān)管主機(jī)系統(tǒng)102上的所有虛擬機(jī)118的安全應(yīng)用程序(例如,反病毒軟件、個(gè)人防火墻、入侵檢測(cè)系統(tǒng)等)。例如,一個(gè)或多個(gè)監(jiān)管進(jìn)程可通過該組安全應(yīng)用程序便于多個(gè)虛擬機(jī)的離線掃描。離線掃描可包括配置該組安全應(yīng)用程序來了解每個(gè)虛擬機(jī)的虛擬資源,因?yàn)樗鼈冏鳛樘摂M對(duì)象駐留在計(jì)算機(jī)系統(tǒng)(物理機(jī))上。這樣,該組安全應(yīng)用程序可檢查(掃描)那些來自虛擬機(jī)之外的虛擬資源(例如,使用虛擬機(jī)數(shù)據(jù)結(jié)構(gòu)的內(nèi)部格式的知識(shí))。
盡管在這里使用了術(shù)語“安全應(yīng)用程序”和“監(jiān)管進(jìn)程”,但這些概念并不限于應(yīng)用程序或進(jìn)程。相反,任何被配置成為虛擬機(jī)提供服務(wù)的實(shí)用程序或攻擊和/或其資源可在主機(jī)系統(tǒng)上實(shí)現(xiàn),以達(dá)到所需結(jié)果而不脫離本發(fā)明范圍。這種實(shí)用程序和工具的某些示例包括反廣告實(shí)用程序、反間諜軟件實(shí)用程序、詞盤碎片整理器等。
虛擬機(jī)資源的離線掃描可在虛擬機(jī)正在運(yùn)行或睡眠狀態(tài)(例如在暫?;蛞驯4鏍顟B(tài)中)時(shí)發(fā)生。例如,在虛擬機(jī)可通過定位和載入現(xiàn)有虛擬機(jī)映像到主機(jī)系統(tǒng)102上來創(chuàng)建的情況下,離線掃描(和任何必需的清除和修復(fù))可在“導(dǎo)入”虛擬機(jī)實(shí)例之前發(fā)生??稍跁和;蛞驯4鏍顟B(tài)中掃描的虛擬機(jī)資源包括虛擬硬盤、虛擬機(jī)存儲(chǔ)器內(nèi)容、虛擬通信端口緩沖器結(jié)構(gòu)等。在某些實(shí)現(xiàn)中,訪問暫停的虛擬機(jī)的存儲(chǔ)器是不可能的。但是,虛擬機(jī)存儲(chǔ)器在虛擬機(jī)處于保存狀態(tài)或通過虛擬機(jī)快照仍然是可訪問的。
參考圖2,示出了離線掃描配置200的一個(gè)示例,它例示了圖1的各種組件。在這種配置中,安全應(yīng)用程序202和可任選的監(jiān)管進(jìn)程128駐留在主機(jī)系統(tǒng)102上。安全應(yīng)用程序202可至少部分地由監(jiān)管進(jìn)程128控制,它將虛擬機(jī)118的資源視為可掃描安全漏洞證據(jù)的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)結(jié)構(gòu)組。為允許它以原始形式訪問虛擬機(jī)118的資源并準(zhǔn)確檢測(cè)安全漏洞,安全應(yīng)用202可依賴關(guān)于關(guān)聯(lián)于資源的數(shù)據(jù)結(jié)構(gòu)的語義和配置的信息。在某些實(shí)施例中,更新這種信息以反映數(shù)據(jù)結(jié)構(gòu)的語義和配置中任何故意的改變。
例如,圖2的安全應(yīng)用程序202可以是一個(gè)反病毒掃描引擎,它掃描虛擬機(jī)118以檢測(cè)它是否感染了一個(gè)或多個(gè)已知病毒或蠕蟲。為開始掃描過程,反病毒引擎202載入當(dāng)前特征定義文件到它的程序存儲(chǔ)器。例如,特征定義文件可定義虛擬機(jī)的虛擬硬盤結(jié)構(gòu)的語義和配置,從而在其當(dāng)前狀態(tài)下掃描虛擬機(jī)的硬盤時(shí)給反病毒引擎提供參考點(diǎn)。
接下來,反病毒引擎指揮其掃描來讀取和虛擬機(jī)的虛擬硬盤相關(guān)的物理機(jī)硬盤部分。這樣,反病毒引擎有效地讀取了虛擬硬盤的內(nèi)容,并使用本領(lǐng)域技術(shù)人員檢測(cè)惡意軟件所用的方法和技術(shù),將其內(nèi)容(例如,內(nèi)容對(duì)象)與其已知惡意內(nèi)容列表進(jìn)行比較。為此示例起見,虛擬硬盤內(nèi)的內(nèi)容對(duì)象可以是文件,或者由操作系統(tǒng)操縱的另一對(duì)象,諸如來自微軟Windows系統(tǒng)的注冊(cè)表鍵,或者能夠被標(biāo)識(shí)為惡意或非希望軟件實(shí)例的一部分的盤上的任何其它對(duì)象。在發(fā)現(xiàn)惡意軟件的基礎(chǔ)上,反病毒引擎可試圖刪除任何損壞的對(duì)象,或刪除位于對(duì)象內(nèi)的感染。
圖3A提供了離線掃描配置300的第二示例。在這個(gè)配置中,由監(jiān)管進(jìn)程128支持的虛擬機(jī)對(duì)象接口302提供了一個(gè)統(tǒng)一接口,通過該接口,安全應(yīng)用程序304可訪問虛擬機(jī)的資源。虛擬機(jī)對(duì)象接口302可將在各虛擬機(jī)之間變化的虛擬機(jī)數(shù)據(jù)結(jié)構(gòu)映射到可由安全應(yīng)用程序304為掃描和其它活動(dòng)而訪問的共同格式。這樣,只需要開發(fā)安全應(yīng)用程序304來訪問這個(gè)共同格式而不是虛擬機(jī)可能具有的每個(gè)格式變體。例如,主機(jī)系統(tǒng)102可發(fā)現(xiàn)關(guān)于虛擬機(jī)118的狀態(tài)(諸如盤狀態(tài)、存儲(chǔ)器狀態(tài)或通信狀態(tài))的信息,以便安全應(yīng)用程序304可監(jiān)視它們、查找安全漏洞或其它問題。此外,虛擬機(jī)對(duì)象接口302可提供可由多個(gè)安全應(yīng)用程序使用的功能。例如,虛擬機(jī)對(duì)象接口302可提供允許另一安全進(jìn)程掃描虛擬機(jī)的虛擬網(wǎng)絡(luò)適配器以查找具有諸如蠕蟲負(fù)載等惡意內(nèi)容的傳入網(wǎng)絡(luò)分組的功能。
這種配置為虛擬機(jī)的設(shè)計(jì)者和安全應(yīng)用程序的設(shè)計(jì)者提供了某些靈活性。例如,虛擬機(jī)的設(shè)計(jì)者可改變虛擬機(jī)的數(shù)據(jù)結(jié)構(gòu)而沒有對(duì)安全應(yīng)用程序設(shè)計(jì)者產(chǎn)生后果。因此,只需要開發(fā)安全應(yīng)用304來訪問這個(gè)共同格式而不是虛擬機(jī)可能具有的每個(gè)格式變體。
在某些實(shí)施例中,離線掃描技術(shù)有助于虛擬機(jī)當(dāng)前狀態(tài)與安全應(yīng)用程序感知為虛擬機(jī)的當(dāng)前狀態(tài)的同步,從而提供更準(zhǔn)確而一致的掃描能力。這種同步在虛擬機(jī)狀態(tài)快速變化的情況下可能是很有用的。
參考圖3,可實(shí)現(xiàn)這種同步的一種方法是通過運(yùn)行提供虛擬機(jī)的接近實(shí)時(shí)自相一致的視圖的代理進(jìn)程322。代理進(jìn)程322可運(yùn)行于虛擬機(jī)118上,隨后可輸出該虛擬機(jī)的視圖到虛擬機(jī)對(duì)象接口302,后者隨后可提供適當(dāng)信息給監(jiān)管進(jìn)程和/或安全應(yīng)用程序。在某些實(shí)施例中,代理進(jìn)程322可提供應(yīng)用程序編程接口(API)供虛擬機(jī)對(duì)象接口302使用。(可供選擇地,安全應(yīng)用程序可提供類似的API供虛擬機(jī)對(duì)象接口302使用。)可實(shí)現(xiàn)這種同步的可供選擇的方法是讓虛擬機(jī)118創(chuàng)建其狀態(tài)的恒定快照,并將這些快照存儲(chǔ)在存儲(chǔ)器或盤上。盡管這些快照可能是“過時(shí)”幾秒的,但它們是自相一致的。
參考圖3C,用于提供虛擬機(jī)的安全掃描的一種可供選擇的技術(shù)是配置的系統(tǒng)330,以便安全應(yīng)用程序336和監(jiān)管進(jìn)程334運(yùn)行在指定的虛擬機(jī)332上(而非直接運(yùn)行在主機(jī)系統(tǒng)102上)。安全應(yīng)用程序336和監(jiān)管進(jìn)程334隨后可監(jiān)視和/或掃描其它虛擬機(jī)118以檢測(cè)問題。這樣,可保護(hù)指定的虛擬機(jī)332(它可專用于提供安全監(jiān)視)不受攻擊。
III.系統(tǒng)流程圖4到8是示出在圖1系統(tǒng)內(nèi)發(fā)生的過程的代表性流程圖。這些流程圖不示出所有功能或數(shù)據(jù)交換,而是提供了對(duì)在此系統(tǒng)下交換的命令和數(shù)據(jù)的理解。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,某些功能或命令和數(shù)據(jù)的交換可以重復(fù)、變化、省略或補(bǔ)充,而未示出的其它方面也很容易實(shí)現(xiàn)。
參考圖4,例如由圖1的監(jiān)管進(jìn)程執(zhí)行的監(jiān)管例程400可運(yùn)行在主機(jī)系統(tǒng)之上(或離線),來監(jiān)視、修改和/或配置運(yùn)行于虛擬機(jī)上的進(jìn)程或虛擬操作系統(tǒng)。可供選擇地,監(jiān)管例程400可監(jiān)視、修改和/或配置運(yùn)行在硬化操作系統(tǒng)(但不是虛擬的)上的進(jìn)程。
在方框401,例程400暫停虛擬機(jī)操作系統(tǒng)。在判定框402,例程400檢查在虛擬機(jī)內(nèi)發(fā)生的損害活動(dòng)(例如欺詐進(jìn)程)導(dǎo)致的變化。例如,例程400可掃描虛擬機(jī)操作系統(tǒng)內(nèi)核的一部分以檢查問題。作為監(jiān)視虛擬操作系統(tǒng)內(nèi)核的一個(gè)替換(或除此之外),例程400可監(jiān)視連接到虛擬(或硬化)操作系統(tǒng)的其它各方面。例如,例程400可監(jiān)視虛擬地址空間、監(jiān)視仿真設(shè)備、監(jiān)視仿真硬盤驅(qū)動(dòng)器、執(zhí)行完整性驗(yàn)證(例如,進(jìn)行校驗(yàn)和)、檢查駐留在虛擬盤或存儲(chǔ)器中的文件的完整性等。
在判定框402,如果例程400未檢測(cè)到損害活動(dòng)導(dǎo)致的變化,則例程400前進(jìn)到方框404,在結(jié)束前重啟虛擬操作系統(tǒng)內(nèi)核。但在某些實(shí)施例中(未例示),例程400可循環(huán)返回到方框401(在一個(gè)時(shí)間段過去后),以再次執(zhí)行暫停和檢查步驟(除非虛擬操作系統(tǒng)實(shí)例終止)。但在判定框402,如果例程400檢測(cè)到損害活動(dòng)導(dǎo)致的變化,則例程前進(jìn)到方框403,在那里例程啟動(dòng)遏制動(dòng)作。示例遏制動(dòng)作可包括諸如掛起客戶操作系統(tǒng)以進(jìn)行附加掃描、掛起選擇進(jìn)程、清除惡意軟件并重新格式化虛擬操作系統(tǒng)以修復(fù)任何損壞、在拍攝“快照”后關(guān)閉虛擬機(jī),以便一旦虛擬機(jī)重啟,虛擬機(jī)環(huán)境可或多或少恢復(fù)等。
圖5給出了離線掃描例程示例500,它由控制一組被配置成執(zhí)行運(yùn)行在主機(jī)系統(tǒng)上的虛擬機(jī)的離線掃描和修復(fù)的安全應(yīng)用程序(例如,反病毒軟件)的監(jiān)管進(jìn)程協(xié)助完成。在框501,例程500檢索運(yùn)行著的虛擬機(jī)當(dāng)前狀態(tài)的周期性快照。在框502,例程掃描所檢索的周期性快照。在判定框503,如果檢測(cè)到問題,則例程前進(jìn)到框504,其中例程向運(yùn)行著的虛擬機(jī)通知有關(guān)問題,或者可供選擇地,指示虛擬機(jī)退回到問題發(fā)生前最后保存的狀態(tài)。如果在判定框503例程500未檢測(cè)到問題,則例程返回到框501以檢索下一周期性快照。
圖6給出了離線掃描例程示例600,它由控制一組被配置成執(zhí)行運(yùn)行在主機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)的離線掃描和修復(fù)的安全應(yīng)用程序(例如,反病毒軟件)的監(jiān)管進(jìn)程協(xié)助完成。例如,例程600可用來檢測(cè)和恢復(fù)由于惡意軟件入侵而不可用的虛擬機(jī)。在框601,例程600以類似于安裝物理盤的方式安裝虛擬機(jī)的下一結(jié)構(gòu)或組件到主機(jī)系統(tǒng)上。這樣,結(jié)構(gòu)或組件結(jié)合為計(jì)算機(jī)操作系統(tǒng)的一部分,而不是視作外部掃描的對(duì)象。結(jié)構(gòu)或組件可以是從主機(jī)系統(tǒng)角度看上去的仿真組件。在某些實(shí)施例中,虛擬機(jī)的結(jié)構(gòu)或組件可被對(duì)象化,因而主機(jī)系統(tǒng)可為該組安全應(yīng)用程序提供掃描它們的接口。例如,虛擬機(jī)的存儲(chǔ)器可被對(duì)象化來掃描存儲(chǔ)器中的惡意軟件。
在框602,該組安全應(yīng)用程序掃描虛擬硬盤驅(qū)動(dòng)器結(jié)構(gòu)(或存儲(chǔ)器中的結(jié)構(gòu)等)。在判定框603,如果被掃描的結(jié)構(gòu)是受到危害的,則例程600繼續(xù)到框604,其中安全應(yīng)用程序修復(fù)虛擬硬盤驅(qū)動(dòng)器結(jié)構(gòu)(或存儲(chǔ)器中的結(jié)構(gòu))。但如果在判定框603掃描組件未受危害,則例程前進(jìn)到判定框605。
在判定框605,如果虛擬機(jī)所有的結(jié)構(gòu)或組件都已被掃描過,則例程結(jié)束。否則,例程循環(huán)返回到框601以安裝下一虛擬機(jī)結(jié)構(gòu)或組件。
在某些實(shí)施例中,例程600可結(jié)合追蹤在每個(gè)虛擬機(jī)硬盤驅(qū)動(dòng)器中掃描之間發(fā)生的變化的優(yōu)化技術(shù)來使用。這樣,例程600可只掃描自上次掃描后的變化,從而提高掃描效率。例如,優(yōu)化例程可在塊級(jí)別上追蹤虛擬機(jī)的硬盤驅(qū)動(dòng)器中的變化。塊級(jí)別上的變化隨后可為掃描目的而映射到文件級(jí)的變化(因?yàn)榈湫偷姆床《拒浖谖募?jí)上掃描)。可供選擇地,變化可通過查看對(duì)主文件表結(jié)構(gòu)的修改來追蹤。這可能涉及主機(jī)系統(tǒng)中先前的主文件表的檢驗(yàn)點(diǎn)存儲(chǔ)。
圖7給出了離線掃描例程示例700,它由控制一組被配置成執(zhí)行運(yùn)行在主機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)的離線掃描和修復(fù)的安全應(yīng)用程序(例如,反病毒軟件)的監(jiān)控進(jìn)程協(xié)助完成。例如,例程700可用來檢測(cè)和恢復(fù)由于惡意軟件入侵而不可用的虛擬機(jī)。與在掃描前安裝虛擬機(jī)結(jié)構(gòu)或組件的圖6的離線掃描例程相反,圖7的例程在外部掃描結(jié)構(gòu)或組件。在框701,例程700掃描虛擬機(jī)的下一結(jié)構(gòu)或組件。結(jié)構(gòu)或組件可以是從主機(jī)系統(tǒng)角度看上去的仿真組件。在某些實(shí)施例中,虛擬機(jī)結(jié)構(gòu)或組件可被對(duì)象化,這樣主機(jī)系統(tǒng)可為該組安全應(yīng)用程序提供掃描它們的接口。例如,虛擬機(jī)存儲(chǔ)器可被對(duì)象化來掃描存儲(chǔ)器中的惡意軟件。
在判定框702,如果被掃描的結(jié)構(gòu)受到危害,則例程700繼續(xù)到框703,其中安全應(yīng)用程序修復(fù)虛擬硬盤驅(qū)動(dòng)器結(jié)構(gòu)(或存儲(chǔ)器中的結(jié)構(gòu))。但如果在判定框702被掃描的組件未受到危害,則例程前進(jìn)到判定框704。在判定框704,如果虛擬機(jī)的所有結(jié)構(gòu)或組件都已被掃描過,則例程結(jié)束。否則,例程返回到框701,以安裝下一虛擬機(jī)結(jié)構(gòu)或組件。
圖8是給出離線掃描例程的第二示例800的流程圖,它由控制一組被配置成執(zhí)行運(yùn)行在主機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)的離線掃描或修復(fù)的安全應(yīng)用程序(例如,反病毒軟件)的監(jiān)控進(jìn)程協(xié)助完成。在例程800中,諸如圖3B的代理進(jìn)程322等代理進(jìn)程使其正被掃描的虛擬機(jī)實(shí)際狀態(tài)能與被安全應(yīng)用感知的虛擬機(jī)狀態(tài)同步。
在框801,例程800通過某個(gè)機(jī)器間通信接口建立安全應(yīng)用程序(諸如圖3B的安全應(yīng)用程序304,它運(yùn)行在主機(jī)系統(tǒng)或者虛擬機(jī)對(duì)象接口上)與代理進(jìn)程之間的通信。在框802,例程800建立對(duì)虛擬機(jī)存儲(chǔ)器的訪問。例如,運(yùn)行在主機(jī)系統(tǒng)上的代理進(jìn)程可提供對(duì)相應(yīng)于虛擬機(jī)應(yīng)用程序存儲(chǔ)器的虛擬緩沖區(qū)的訪問。例程繼續(xù)到框803,其中安全應(yīng)用程序掃描存儲(chǔ)器以找出安全問題的證據(jù)。例如,當(dāng)安全應(yīng)用程序是反病毒掃描引擎時(shí),反病毒掃描引擎可掃描存儲(chǔ)器,以查找匹配已知惡意軟件特征的代碼模式。在判定框804,如果虛擬機(jī)的任意結(jié)構(gòu)或組件已受到危害,則例程800繼續(xù)到方框805,其中安全應(yīng)用程序和/或代理進(jìn)程清除計(jì)算機(jī)存儲(chǔ)器??晒┻x擇地,安全應(yīng)用程序可用信號(hào)通知代理進(jìn)程采取針對(duì)虛擬機(jī)的糾正動(dòng)作。但如果在判定框804沒有結(jié)構(gòu)或組件受到危害,則例程結(jié)束。
IV.結(jié)論除非上下文明確要求,否則在本描述和權(quán)利要求書通篇中,詞匯“包括”、“包含”等都要按包含意思解釋,而不是排它或詳盡的意思;即“包括,但不限于”的意思。此外,詞匯“這里”、“以上”、“以下”和類似含義的詞匯在用于本申請(qǐng)時(shí),是指本申請(qǐng)為一整體而不是本申請(qǐng)的任何具體部分。當(dāng)權(quán)利要求書在對(duì)兩個(gè)或多個(gè)項(xiàng)的列表使用詞匯“或者”時(shí),該詞匯涵蓋該詞所有下列解釋列表中任意項(xiàng)、列表中所有項(xiàng)以及列表中各項(xiàng)的任意組合。
本發(fā)明實(shí)施例的以上詳細(xì)描述并不旨在窮盡或限制本發(fā)明于以上所揭示的精確形式。盡管為說明起見,以上描述了本發(fā)明的特定實(shí)施例和示例,但正如相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到的,在本發(fā)明的范圍內(nèi),各種等價(jià)的修改都是可能的。例如,盡管進(jìn)程或框是以給定順序呈現(xiàn)的,但可供選擇的實(shí)施例可用不同順序執(zhí)行具有這些步驟的例程或者使用具有這些框的系統(tǒng),而且某些進(jìn)程或框可被刪除、移動(dòng)、添加、細(xì)分、結(jié)合和/或修改。這些進(jìn)程或框的每一個(gè)都可用各種不同的方法來實(shí)施。而且,盡管進(jìn)程或框有時(shí)被示出為串行執(zhí)行,但這些進(jìn)程或框可改為并行執(zhí)行,或者可在不同時(shí)間執(zhí)行。在上下文環(huán)境允許的地方,以上詳細(xì)描述中使用單數(shù)或復(fù)數(shù)的詞匯也可分別在上下文環(huán)境允許的地方包括復(fù)數(shù)或單數(shù)。
這里所給出的本發(fā)明內(nèi)容可應(yīng)用于其它系統(tǒng),而不必需是這里所描述的系統(tǒng)。以上描述的各個(gè)不同實(shí)施例的元素和動(dòng)作可結(jié)合起來提供更多的實(shí)施例。
本申請(qǐng)涉及2004年12月21日提交的題為“Method and System for a Self-healingDevice(自恢復(fù)性能設(shè)備的方法和系統(tǒng))”的共同擁有的美國(guó)專利申請(qǐng)第號(hào)。所有以上專利和申請(qǐng)以及其它參考,包括任何列在所附提交頁中列出的那些,都在這里通過引用而被包括。如果需要的話,本發(fā)明諸方面可被修改,以使用以上所述各種引用的系統(tǒng)、功能和概念來給出本發(fā)明更多的實(shí)施例。
可對(duì)本發(fā)明按照以上詳細(xì)描述作出這些和其它變化。盡管以上描述詳細(xì)說明了本發(fā)明的某些實(shí)施例并描述了預(yù)期的最佳模式,但不管以上文本中出現(xiàn)多么詳細(xì)的說明,本發(fā)明還可以用許多方法來實(shí)施。如以上所提到的,在描述本發(fā)明的某些特征或方面時(shí)所使用的特定術(shù)語不應(yīng)理解為暗示該術(shù)語在這里被重定義以受限于該術(shù)語所關(guān)聯(lián)的本發(fā)明的任何具體特性、特征或方面。通常,在所附權(quán)利要求書中所使用的術(shù)語不應(yīng)解釋為將本發(fā)明限于在本說明書中所揭示的特定實(shí)施例,除非以上詳細(xì)描述部分明確定義了這類術(shù)語。因此,本發(fā)明的實(shí)際范圍不僅包括所揭示的實(shí)施例,而且還包括在所附權(quán)利要求書中實(shí)施或?qū)崿F(xiàn)的本發(fā)明的所有等價(jià)方法。盡管本發(fā)明的某些方面是以某些權(quán)利要求的形式呈現(xiàn)的,但發(fā)明人以任何數(shù)量的權(quán)利要求形式構(gòu)想本發(fā)明的不同方面。例如,盡管只有本發(fā)明的一個(gè)方面被闡述為包含在計(jì)算機(jī)可讀介質(zhì)中,但其它方面也同樣可包含在計(jì)算機(jī)可讀介質(zhì)中。因此,發(fā)明人保留在提交本申請(qǐng)后增加附加權(quán)利要求的權(quán)利,以對(duì)本發(fā)明其它方面繼續(xù)這樣的附加權(quán)利要求形式。
權(quán)利要求
1.在計(jì)算機(jī)中,一種用于監(jiān)視和保護(hù)包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的方法,其中,所述多個(gè)實(shí)例的每一個(gè)都訪問所述計(jì)算機(jī)的仿真資源,所述方法包括在所述計(jì)算機(jī)上執(zhí)行至少一個(gè)安全應(yīng)用程序,所述安全應(yīng)用程序用于監(jiān)視包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)以檢測(cè)有害進(jìn)程,其中,所述至少一個(gè)安全應(yīng)用程序在包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例之外執(zhí)行;以及通過單組安全應(yīng)用程序幫助掃描包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)的虛擬資源,其中,所述虛擬資源包括所述計(jì)算機(jī)的仿真資源,并且其中,所述幫助包括配置所述安全應(yīng)用程序組以了解由所述計(jì)算機(jī)的主操作系統(tǒng)所察覺的資源。
2.如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)安全應(yīng)用程序通過與相應(yīng)代理安全進(jìn)程的通信來訪問包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè),所述相應(yīng)代理安全進(jìn)程以一對(duì)一的對(duì)應(yīng)關(guān)系運(yùn)行在包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)中。
3.如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)安全應(yīng)用程序通過提供統(tǒng)一接口的虛擬機(jī)對(duì)象接口來訪問包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè),通過所述統(tǒng)一接口,所述至少一個(gè)安全應(yīng)用程序304可訪問所述仿真資源。
4.如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)安全應(yīng)用程序在由所述計(jì)算機(jī)提供的主機(jī)系統(tǒng)中執(zhí)行,并且其中,包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)也在所述主機(jī)系統(tǒng)中執(zhí)行。
5.如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)安全應(yīng)用程序在由所述計(jì)算機(jī)提供的主機(jī)系統(tǒng)中執(zhí)行,其中,包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)也在所述主機(jī)系統(tǒng)中執(zhí)行,且其中,所述至少一個(gè)安全應(yīng)用程序至少部分地是由在所述主機(jī)系統(tǒng)中執(zhí)行的監(jiān)管進(jìn)程控制的。
6.如權(quán)利要求1所述的方法,其特征在于,通過單組安全應(yīng)用程序幫助掃描包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)的虛擬資源包括提供對(duì)關(guān)聯(lián)于包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例之一的虛擬存儲(chǔ)器結(jié)構(gòu)的訪問。
7.如權(quán)利要求1所述的方法,其特征在于,通過單組安全應(yīng)用程序幫助掃描包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)的虛擬資源包括提供對(duì)關(guān)聯(lián)于包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例之一的虛擬硬盤結(jié)構(gòu)的訪問。
8.如權(quán)利要求1所述的方法,其特征在于,通過單組安全應(yīng)用程序幫助掃描包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)的虛擬資源包括提供對(duì)關(guān)聯(lián)于包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例之一的虛擬網(wǎng)絡(luò)適配器結(jié)構(gòu)的訪問。
9.如權(quán)利要求1所述的方法,其特征在于,通過單組安全應(yīng)用程序幫助掃描包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例的每一個(gè)的虛擬資源包括提供對(duì)關(guān)聯(lián)于包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例之一的虛擬驅(qū)動(dòng)器結(jié)構(gòu)的訪問。
10.如權(quán)利要求1所述的方法,其特征在于,還包括在包含的進(jìn)程執(zhí)行環(huán)境的多個(gè)實(shí)例之一中檢測(cè)到有害進(jìn)程時(shí),如果它尚未被去活,則去活所述實(shí)例;以及修復(fù)所述實(shí)例;以及將所修復(fù)的實(shí)例載入所述計(jì)算機(jī)的主機(jī)環(huán)境中,以便它變?yōu)榛顒?dòng)的。
11.在計(jì)算機(jī)系統(tǒng)中,一種用于保護(hù)操作系統(tǒng)不受不合需要的進(jìn)程作用引起的破壞的方法,所述方法包括暫停運(yùn)行于所述操作系統(tǒng)上的內(nèi)核,其中,所述操作系統(tǒng)至少部分地隔離于所述計(jì)算機(jī)系統(tǒng)基礎(chǔ)結(jié)構(gòu)的核心方面;檢查所述內(nèi)核以判定是否存在不合需要的進(jìn)程作用的證據(jù),其中,所述檢查至少部分地是由獨(dú)立于所述至少部分隔離的操作系統(tǒng)的監(jiān)管進(jìn)程執(zhí)行的;以及在所述至少部分隔離的操作系統(tǒng)中存在不合需要的進(jìn)程作用的證據(jù)時(shí),采取遏制所述不合需要的進(jìn)程作用的步驟。
12.如權(quán)利要求11所述的方法,其特征在于,遏制所述不合需要的進(jìn)程作用的步驟包括掛起所述至少部分隔離的操作系統(tǒng)并執(zhí)行進(jìn)一步的監(jiān)視。
13.如權(quán)利要求11所述的方法,其特征在于,遏制所述不合需要的進(jìn)程作用的步驟包括掛起運(yùn)行于所述至少部分隔離的操作系統(tǒng)上的選擇進(jìn)程。
14.如權(quán)利要求11所述的方法,其特征在于,遏制所述不合需要的進(jìn)程作用的步驟包括終止關(guān)聯(lián)于所述不合需要的進(jìn)程作用的進(jìn)程。
15.一種用于保護(hù)對(duì)關(guān)聯(lián)于計(jì)算機(jī)系統(tǒng)的核心組件的特許操作的訪問的計(jì)算機(jī)系統(tǒng),所述系統(tǒng)包括處理器;與所述處理器通信的主存儲(chǔ)器設(shè)備;次級(jí)存儲(chǔ)器設(shè)備;操作系統(tǒng);以及主機(jī)系統(tǒng),其中,所述主機(jī)系統(tǒng)包括一個(gè)或多個(gè)虛擬機(jī),其中,所述一個(gè)或多個(gè)虛擬機(jī)的每一個(gè)都與所述計(jì)算機(jī)系統(tǒng)的核心組件隔離,從而當(dāng)運(yùn)行于關(guān)聯(lián)于所述虛擬機(jī)的環(huán)境中時(shí),有害進(jìn)程不能直接訪問所述核心組件,并且其中,所述一個(gè)或多個(gè)虛擬機(jī)的每一個(gè)包括虛擬操作系統(tǒng)的實(shí)例、對(duì)虛擬存儲(chǔ)器的訪問以及至少一個(gè)虛擬驅(qū)動(dòng)器;以及至少一個(gè)監(jiān)管進(jìn)程,用于結(jié)合安全應(yīng)用程序監(jiān)視所述一個(gè)或多個(gè)虛擬機(jī),其中,所述監(jiān)視包括對(duì)有害進(jìn)程的可能檢測(cè),并且其中,所述至少一個(gè)監(jiān)管進(jìn)程和安全應(yīng)用程序都與所述虛擬機(jī)隔離。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述監(jiān)視還包括監(jiān)視所述虛擬存儲(chǔ)器的地址空間。
17.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述虛擬機(jī)還包括對(duì)一個(gè)或多個(gè)仿真設(shè)備的訪問,并且其中,所述監(jiān)視還包括監(jiān)視所述仿真設(shè)備。
18.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述虛擬機(jī)還包括對(duì)仿真硬盤驅(qū)動(dòng)器的訪問,并且其中,所述監(jiān)視還包括監(jiān)視所述仿真硬盤驅(qū)動(dòng)器。
19.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述監(jiān)視還包括對(duì)到運(yùn)行于所述虛擬機(jī)的進(jìn)程的輸入或來自所述進(jìn)程的輸出執(zhí)行完整性驗(yàn)證。
20.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述虛擬機(jī)還包括對(duì)仿真硬盤驅(qū)動(dòng)器的訪問,并且其中,所述監(jiān)視還包括檢查駐留在所述虛擬機(jī)或所述仿真硬盤驅(qū)動(dòng)器上的文件的完整性。
全文摘要
一種安全方案為在計(jì)算機(jī)上執(zhí)行的一個(gè)或多個(gè)自包含的操作環(huán)境實(shí)例提供安全。該安全方案可包括實(shí)現(xiàn)一組可由監(jiān)管進(jìn)程控制的安全應(yīng)用程序等等。這組安全應(yīng)用程序和監(jiān)管進(jìn)程都可在計(jì)算機(jī)的主機(jī)系統(tǒng)上運(yùn)行,主機(jī)系統(tǒng)還可提供用于執(zhí)行一個(gè)或多個(gè)自包含的操作環(huán)境的平臺(tái)。該安全方案保護(hù)運(yùn)行于一個(gè)或多個(gè)自包含的操作環(huán)境的進(jìn)程以及運(yùn)行于計(jì)算機(jī)上自包含的操作環(huán)境之外的進(jìn)程。
文檔編號(hào)G06F1/00GK1794131SQ200510127119
公開日2006年6月28日 申請(qǐng)日期2005年11月21日 優(yōu)先權(quán)日2004年12月21日
發(fā)明者B·阿姆斯特朗, J·加姆斯, K·D·雷, M·克萊默, P·英格蘭德, S·A·菲爾德 申請(qǐng)人:微軟公司