專利名稱:用于在獨(dú)立于操作系統(tǒng)(os)的防病毒(av)掃描器上執(zhí)行強(qiáng)制性安全策略的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本公開一般地涉及計算領(lǐng)域。更具體地說,本發(fā)明的實(shí)施例涉及對在計算系統(tǒng)中運(yùn)行的防病毒掃描代理強(qiáng)制執(zhí)行強(qiáng)制性安全策略。
背景技術(shù):
防病毒(AV)掃描代理應(yīng)用程序一般作為操作系統(tǒng)(OS)進(jìn)程來運(yùn)行。AV掃描代理通過使用一些與惡意軟件所使用的相同的隱匿技術(shù)來保護(hù)自身不受惡意軟件/木馬攻擊。近來操作系統(tǒng)設(shè)計中的改變采用了強(qiáng)制性訪問控制(MAC)標(biāo)簽,其以低、中、高完整性分類的形式來標(biāo)記進(jìn)程。在不同級別的進(jìn)程不允許彼此進(jìn)行修改/訪問。但是MAC級別的語義在OS環(huán)O (內(nèi)核特權(quán))處強(qiáng)制執(zhí)行。環(huán)O受到損害意味著MAC強(qiáng)制執(zhí)行機(jī)制受到損害,并因而在環(huán)3 (用戶特權(quán))和環(huán)O中運(yùn)行的AV掃描代理受到損害。虛擬內(nèi)存管理器(VMM)(如果使用了)的損害也可能導(dǎo)致用戶OS (UOS)的MAC機(jī)制受到損害。在OS中的MAC機(jī)制的使用使得AV掃描代理更難躲避針對AV掃描代理代碼的惡意軟件。因此,除非改進(jìn)OS安全性,否則AV掃描代理代碼會易受到攻擊。
通過參考附圖來提供詳細(xì)描述。在不同附圖中使用的相同附圖標(biāo)記指示相似的或相同的項(xiàng)目。圖1是根據(jù)本發(fā)明的一些實(shí)施例的執(zhí)行容器完整性模型的圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的具有客戶OS的執(zhí)行容器完整性模型;圖3是根據(jù)本發(fā)明的實(shí)施例的具有客戶OS (具有AV應(yīng)用)的執(zhí)行容器完整性模型的圖;圖4是根據(jù)本發(fā)明的實(shí)施例的用于建立域C的流程圖;圖5是示出了根據(jù)本發(fā)明的實(shí)施例的對應(yīng)于一系列資源設(shè)陷機(jī)構(gòu)的級聯(lián)Biba級別的圖;圖6是示出了根據(jù)本發(fā)明的實(shí)施例的建立C子域的流程圖;圖7是示出了根據(jù)本發(fā)明的實(shí)施例的設(shè)置應(yīng)用陷阱的流程圖;圖8是示出了根據(jù)本發(fā)明的另一實(shí)施例的設(shè)置應(yīng)用陷阱的流程圖;圖9是示出了根本發(fā)明的實(shí)施例的執(zhí)行陷阱的流程圖;圖10是根據(jù)本發(fā)明的另一實(shí)施例的具有用于虛擬機(jī)管理器(VMM)的客戶OS的執(zhí)行容器完整性模型的圖;圖11是根據(jù)本發(fā)明的實(shí)施例的具有用于VMM的客戶OS的執(zhí)行容器完整性模型的圖,其中虛擬機(jī)包括AV應(yīng)用;以及圖12和圖13示出了計算系統(tǒng)的實(shí)施例的框圖,其可以用來實(shí)現(xiàn)在本文中討論的
一些實(shí)施例。
具體實(shí)施例方式在下面的說明書中,為了提供對各個實(shí)施例的完全理解而闡述了多個具體細(xì)節(jié)。但是,沒有所述具體細(xì)節(jié)本發(fā)明的各個實(shí)施例也可以實(shí)施。在其他的實(shí)例中,沒有詳細(xì)描述公知的方法、程序、部件和電路,以免模糊了本發(fā)明的特定實(shí)施例。此外,可以使用各種器件來執(zhí)行本發(fā)明的實(shí)施例的各個方面,所述器件例如為集成半導(dǎo)體電路(硬件)、被組織為存儲在計算機(jī)可讀存儲介質(zhì)上的一個或多個程序的計算機(jī)可讀指令(軟件),或硬件和軟件的一些組合。為了本公開的目的,對“邏輯”的引用應(yīng)意味著硬件、軟件(包括例如控制處理器操作的微代碼)、固件,或其上的一些組合。在實(shí)施例中,可以在計算系統(tǒng)中的受保護(hù)的執(zhí)行環(huán)境中執(zhí)行AV掃描代理應(yīng)用程序,在所述計算系統(tǒng)中可以向該AV掃描代理分配MAC特權(quán),所述MAC特權(quán)支配由用戶操作系統(tǒng)(UOS)(或虛擬機(jī)管理器(VMM))所使用的MAC特權(quán)。AV掃描代理配置包含UOS代理的存儲頁面,使用受保護(hù)的執(zhí)行環(huán)境來保護(hù)所述存儲頁面。這些存儲頁面具有有效的MAC特權(quán),所述MAC特權(quán)高于由UOS (或VMM)授予的最高特權(quán),因而UOS的損害不會轉(zhuǎn)化為UOS中的AV掃描代理的損害。本發(fā)明的實(shí)施例使用至少兩種技術(shù)的組合:受保護(hù)的執(zhí)行環(huán)境微代碼和在硬件級別應(yīng)用的、與操作系統(tǒng)MAC抽象分離的MAC標(biāo)簽。在受保護(hù)的執(zhí)行環(huán)境中的執(zhí)行容器為以比最高可能的OS環(huán)O級別更高的安全級別運(yùn)行的AV掃描代理運(yùn)行時間提供執(zhí)行隔離。這個級別由受保護(hù)的執(zhí)行環(huán)境強(qiáng)制執(zhí)行。因?yàn)槭鼙Wo(hù)的執(zhí)行環(huán)境遵守MAC安全模型,所以受保護(hù)的執(zhí)行環(huán)境可以在防止惡意修改AV掃描代理運(yùn)行時間的同時仍允許對OS文件系統(tǒng)對象進(jìn)行讀取訪問。本發(fā)明的實(shí)施例一致地關(guān)聯(lián)了 MAC標(biāo)簽,同時在客戶OS資源上設(shè)置了陷阱。實(shí)施例的方法在客戶資源和頁面上遞歸地級聯(lián)標(biāo)簽分配和陷阱分配,直到AV掃描代理應(yīng)用和相關(guān)的數(shù)據(jù)被保護(hù)??梢杂捎嬎阆到y(tǒng)的處理器檢測并防止嘗試修改受保護(hù)的資源的惡意軟件。從檢測到的攻擊中恢復(fù)可以由來自受保護(hù)的執(zhí)行環(huán)境的以較高的完整性級別運(yùn)行的處理器代理程序進(jìn)行管理,而不破壞系統(tǒng)的完整性模型。MAC安全模型通過將安全標(biāo)簽分配給系統(tǒng)中的主體和對象來保護(hù)信息。一個這樣的MAC安全模型是Biba模型,其公開在1977年4月,Mitre公司的Biba, K.J.“IntegrityConsiderations for Secure Computer Systems”,MTR-3153 中。Biba 完整性模型是計算機(jī)系統(tǒng)安全策略的正式狀態(tài)轉(zhuǎn)換系統(tǒng),其描述了被設(shè)計用來確保數(shù)據(jù)完整性的一套訪問控制規(guī)則。數(shù)據(jù)和主體被分組為完整性的有序級別。設(shè)計該模型使得主體不可以損壞處于高于該主體級別等級的數(shù)據(jù),或該主體不可以被來自低于該主體級別等級的數(shù)據(jù)損壞。一般來說,保持?jǐn)?shù)據(jù)完整性的目的在于防止數(shù)據(jù)被未授權(quán)方修改、防止未授權(quán)的數(shù)據(jù)被未授權(quán)方修改,和維護(hù)內(nèi)部和外部一致性(即,數(shù)據(jù)反映了真實(shí)世界)。這種安全模型是為了數(shù)據(jù)完整性,并且其特性在于短語“不向下讀,不向上寫”。Biba MAC規(guī)則可被總結(jié)為:1)給予資源(主體和對象)Biba完整性標(biāo)簽,使得更高級別“支配”更低級別。支配對象或其他主體的主體能對這些資源“向下寫”。2)較低級別的資源能“向上讀”更高級別的資源。Biba模型可以被應(yīng)用于受保護(hù)的執(zhí)行環(huán)境,使得設(shè)備、存儲器、直接存儲器存取(DMA)緩存、中斷和配置空間都可以固定地使用Biba標(biāo)簽,使得能一致地應(yīng)用Biba訪問規(guī)貝U。在受保護(hù)的執(zhí)行環(huán)境中運(yùn)行的應(yīng)用可以對應(yīng)于MAC標(biāo)簽約束而被分配虛擬資源,其中運(yùn)行在執(zhí)行容器中的OS強(qiáng)制執(zhí)行Biba安全模型。可以信任受保護(hù)的執(zhí)行環(huán)境的資源管理器部件以跨越執(zhí)行容器(受保護(hù)的存儲器)和設(shè)備資源之間的硬件接口邊界來強(qiáng)制執(zhí)行特權(quán)語義。圖1是根據(jù)本發(fā)明的某些實(shí)施例的執(zhí)行容器完整性模型的圖。受保護(hù)的執(zhí)行環(huán)境可以對運(yùn)行在執(zhí)行容器100中的應(yīng)用強(qiáng)制執(zhí)行Biba安全策略。執(zhí)行容器包括在計算系統(tǒng)內(nèi)的應(yīng)用環(huán)境,所述計算系統(tǒng)與正常的操作系統(tǒng)環(huán)境相隔離。在實(shí)施例中,執(zhí)行容器在其功能性方面受到約束;執(zhí)行容器可能不包括全功能的操作系統(tǒng)。在實(shí)施例中,執(zhí)行容器包括應(yīng)用(App)策略管理器部件102,和一個或多個應(yīng)用程序。在圖1示出的示例中,執(zhí)行容器包括第一級別完整性的應(yīng)用(App L1104),第二級別完整性的應(yīng)用(App L2106),和第三級別完整性的應(yīng)用(App L3108)。在實(shí)施例中,通過使用仲裁訪問平臺資源(中央處理單元(CPU)、存儲器、芯片組、閃存等)的硬件支持對這些資源進(jìn)行分區(qū),受保護(hù)的執(zhí)行環(huán)境提供在計算系統(tǒng)中創(chuàng)建執(zhí)行容器的機(jī)制。目的在于除了用于用戶操作系統(tǒng)(UOS)的容器以外,通常利用在為了節(jié)約能源的低活動期間UOS使得內(nèi)核脫機(jī)時未使用的多核處理器中的內(nèi)核上的周期,其他獨(dú)立的操作環(huán)境能夠運(yùn)行。這對能源消耗和性能具有輕微的影響,但是提供了用于程序執(zhí)行的環(huán)境,所述環(huán)境可被用于UOS的帶外(OOB)活動,例如安全性、可管理性、安全商務(wù)或許可。使用OOB執(zhí)行環(huán)境,運(yùn)行在這些容器中的應(yīng)用將免受用戶篡改、惡意軟件的損害,并且能抵抗操作系統(tǒng)故障。為啟動這個功能,可能在處理器上添加若干新的硬件特征(例如定時器、設(shè)備過濾、調(diào)度緩存、頁表、中斷映射支持和閃存中的空間),還可能需要擴(kuò)展的軟件堆棧(內(nèi)核、UOS驅(qū)動、內(nèi)核驅(qū)動、固件等),并且還可能需要非核心補(bǔ)丁支持。每個執(zhí)行容器將具有獨(dú)立的存儲器(包括單獨(dú)的擴(kuò)展頁表(EPT))、它們自身的狀態(tài)、控制在處理器上執(zhí)行所需的時間片段的方法,和用于專門訪問硬件設(shè)備的潛在方法(通過設(shè)備過濾、局部高級可編程序中斷控制器(APIC)和中斷重映射強(qiáng)制執(zhí)行)。受保護(hù)的執(zhí)行環(huán)境的一個示例和在計算系統(tǒng)中用于改進(jìn)功率效率的使用模型公開在Kumar等人的“Method and Apparatus for Cost andPower Efficient Scalable Os-1ndependent Services”中,其于 2007 年 12 月 26 日提交,序號為11/964,439,已轉(zhuǎn)讓給本申請的受讓人,并通過引用方式將其并入本申請。在實(shí)施例中,應(yīng)用與受保護(hù)的執(zhí)行環(huán)境資源管理器(RM) 110進(jìn)行通信。在實(shí)施例中,RM可被實(shí)現(xiàn)為計算系統(tǒng)的處理器中的微代碼,并且RM創(chuàng)建在不同完整性級別運(yùn)行的線程。在實(shí)施例中,RM可以作為獨(dú)立的超線程而運(yùn)行,其不可被環(huán)O或環(huán)3進(jìn)程訪問。RM的受保護(hù)的超線程可以在系統(tǒng)引導(dǎo)過程期間被實(shí)例化,并且可以由操作系統(tǒng)進(jìn)行調(diào)度但不會被操作系統(tǒng)修改。在執(zhí)行容器100中運(yùn)行的應(yīng)用上強(qiáng)制執(zhí)行Biba安全策略可以通過以下實(shí)現(xiàn):使RMllO以比執(zhí)行容器更高的完整性級別進(jìn)行操作,使得代表執(zhí)行容器來修改或破壞RM的任意企圖構(gòu)成對安全策略的違反。RM能夠在執(zhí)行容器中建立信任,作為在執(zhí)行容器中加載和驗(yàn)證操作系統(tǒng)的一部分。在實(shí)施例中,執(zhí)行容器發(fā)起控制策略來確認(rèn)執(zhí)行容器能力包括強(qiáng)制執(zhí)行Biba安全規(guī)則的能力。在RM中的域策略管理器112將一系列的Biba標(biāo)簽(S卩,特權(quán))分配給應(yīng)用策略管理器102。域策略管理器保持跟蹤域能在處理器中運(yùn)行的標(biāo)簽。執(zhí)行容器根據(jù)提供的范圍來強(qiáng)制執(zhí)行Biba規(guī)則。應(yīng)用策略管理器接著將特權(quán)分配給來自所述范圍內(nèi)的執(zhí)行容器應(yīng)用。這確保了系統(tǒng)范圍的Biba級別的語義一致性,即使執(zhí)行容器可能不具有計算平臺資源的全局視角。RMllO提供了多個安全域。在實(shí)施例中,域是物理資源(例如存儲器、磁盤存儲設(shè)備或網(wǎng)絡(luò)接口設(shè)備)的分區(qū),其中該分區(qū)根據(jù)由資源管理器使用的Biba標(biāo)簽包含已標(biāo)記的數(shù)據(jù)。在圖1示出的示例中,有兩個域,具有在類別Yl中的完整性級別Xl的域A114,和在類別Y2中的完整性級別X2的域B116??梢詫⒏鞣N計算系統(tǒng)部件(例如物理存儲器和設(shè)備118)分配到一個域。例如,可將設(shè)備120和122分配給域A,并且可以將設(shè)備124和126分配到域B。例如,包含在直接存儲器存取(DMA)緩存中在Biba標(biāo)簽(X1:Y1)處指定的存儲頁面可被寫入到磁盤存儲設(shè)備,所述磁盤存儲設(shè)備具有根據(jù)Biba標(biāo)簽方案的分區(qū)軌道,其中軌道0-η對應(yīng)于標(biāo)簽(X1:¥1),并且軌道(11+1)-111對應(yīng)于標(biāo)簽乂2:Υ2,以此類推。也可以在DMA存儲器上創(chuàng)建虛擬化技術(shù)的表,使得虛擬化技術(shù)的道對應(yīng)于標(biāo)簽(X1:Y1 ),并且第二虛擬化技術(shù)的道對應(yīng)于另一標(biāo)簽X2:Y2,以此類推。圖1還包括嘗試在應(yīng)用之間讀和寫的流程管理的表示。如果App LI的完整性級別Xl低于或等于高級別,則在域A中具有高級別完整性的應(yīng)用可以向下寫入App L1104。在域A中的應(yīng)用也可以從App LI讀取。App LI可以從在域A中的應(yīng)用讀取。因?yàn)锳pp L2的完整性級別Χ2小于或等于App LI的完整性級別XI,所以App L1104可以向下寫App L2106。App LI也可以從App L2讀取。App L2可以從App LI讀取。因?yàn)锳pp L3的完整性級別Χ3低于或等于App L2的完整性級別Χ2,所以App L2106可以向下寫App L3108o App L2也可以從App L3讀取。App L3可以從App L2讀取。因?yàn)橛駼中的應(yīng)用的低完整性級別低于或等于App L3的完整性級別X3,所以App L3108也可以向下寫域B130中的應(yīng)用。App L3也可以從在域B中的應(yīng)用讀取。在域B中的應(yīng)用可以從App L3讀取。圖2示出了根據(jù)本發(fā)明的實(shí)施例的具有客戶OS的執(zhí)行容器完整性模型。RMllO可以將全局Biba特權(quán)分配給缺少可信Biba感知內(nèi)核的客戶0S200。特權(quán)在初始化客戶OS時被關(guān)聯(lián)。RM微代碼監(jiān)視隨后對硬件的訪問。因此,因?yàn)椴呗宰杩共黄ヅ洌栽趫?zhí)行容器中運(yùn)行的應(yīng)用所共享的設(shè)備和存儲器資源不會造成線程增加。但是客戶OS應(yīng)用(例如在這個示例中的App L3108)能繼續(xù)正常運(yùn)行而不需要知道Biba安全模型對設(shè)備和系統(tǒng)資源的約束,除非這些訪問表示對系統(tǒng)完整性的威脅。在實(shí)施例中,RM包括全局客戶特權(quán)分配部件20,用于將Biba模型應(yīng)用到客戶OS訪問。例如,如果由CPU超線程組成的Biba感知執(zhí)行容器100具有分別分配了 B iba標(biāo)簽(X1:Y1)和(X2:Υ2)的兩個應(yīng)用LI 104和L2106,給定在沒有Biba感知的客戶0S200 (運(yùn)行在第二 CPU超線程中)中的第三應(yīng)用L3108可能需要使用由資源管理器分配的資源。作出創(chuàng)建用于分配給客戶OS的資源的默認(rèn)映射的全局客戶特權(quán)分配,使得由資源管理器進(jìn)行的Biba標(biāo)簽支配計算將產(chǎn)生明確的結(jié)果;并且當(dāng)客戶OS訪問時已經(jīng)給予Biba標(biāo)簽的資源會混淆沒有Biba感知的客戶OS。在包括AV掃描代理的客戶OS中保護(hù)存儲頁面的新技術(shù)可以“加固”這些頁面來對抗客戶OS中的惡意軟件的可能攻擊。通過進(jìn)行這些存儲頁面保護(hù)配置和使用受保護(hù)的執(zhí)行環(huán)境的運(yùn)行時間軟件,在客戶OS中的受保護(hù)部件能夠以提高的安全級別操作,其安全策略相對于系統(tǒng)范圍的策略是一致的。圖3是根據(jù)本發(fā)明的實(shí)施例的具有客戶OS (具有AV應(yīng)用)的執(zhí)行容器完整性模型的圖。在實(shí)施例中,計算系統(tǒng)可以建立一系列的域以能夠保護(hù)AV掃描代理的完整性。在實(shí)施例中,可以為正被監(jiān)視是否變化的客戶OS存儲器創(chuàng)建一組域。一些域可以包括在客戶0S200內(nèi)的受保護(hù)的資源303。至少一個域可以包括在客戶0S200內(nèi)的未受保護(hù)的資源306。在實(shí)施例中,域可以與在處理器中的微操作(uop)線程相關(guān)聯(lián)。域A114:最高完整性級別(SYS_HI)。這個域可以由計算系統(tǒng)建立并且具有最高完整性級別。域Al 14由計算硬件(寄存器、存儲器)、RMllO和RM受控設(shè)備,以及應(yīng)用策略管理器102組成,所述應(yīng)用策略管理器102能夠接受清單和存儲器區(qū)域并且驗(yàn)證該存儲器區(qū)域與清單相匹配,并且基于存儲在應(yīng)用策略管理器中的可信根驗(yàn)證簽名的有效性。域B116:(域B〈域A)。域B包含受保護(hù)的執(zhí)行環(huán)境100應(yīng)用,其運(yùn)行來支持AV掃描代理保護(hù)機(jī)制??梢杂蒖MllO以及在執(zhí)行容器100中運(yùn)行的其他程序來驗(yàn)證這些應(yīng)用。部件包括運(yùn)行時間/輕量級操作系統(tǒng)(未示出)、加載器302、錯誤處理器304、應(yīng)用清單322和應(yīng)用策略管理器102,所述應(yīng)用策略管理器102向域C防病毒應(yīng)用300提供服務(wù),并且負(fù)責(zé)證實(shí)域C防病毒應(yīng)用300且將防病毒應(yīng)用安裝到執(zhí)行容器100中。域C310:(域C〈域B)。這是將在其中執(zhí)行防病毒應(yīng)用的域。在域C中的防病毒應(yīng)用具有比執(zhí)行容器100應(yīng)用更低的完整性級別,但因?yàn)樵谶@個域中應(yīng)用的完整性可能由域A中的數(shù)字簽名和應(yīng)用策略管理器102進(jìn)行驗(yàn)證,所以其高于計算系統(tǒng)的其余部分。在實(shí)施例中,在這個域中可能有至少兩個應(yīng)用,在執(zhí)行容器100中運(yùn)行的錯誤處理器304和在受保護(hù)頁面中運(yùn)行在用戶(客戶)0S200中的防病毒應(yīng)用300。該防病毒應(yīng)用可以具有客戶OS專用知識,但需要被高于域D的Biba模型保護(hù)。域c-l, C-2,..., c-n:(如果 i>i,則域 C_i〈域 C_i。域 C-2〈域 C-1〈域 C)。域 C的應(yīng)用(防病毒應(yīng)用300和錯誤處理器304)將創(chuàng)建一系列低于域C的細(xì)粒度域。當(dāng)將寫入陷阱放置在那些存儲器區(qū)域周圍時,它們將在客戶OS中的存儲器放入這些域中。這些域具有低于域C的完整性級別,這是因?yàn)椴⒉恢涝诖鎯ζ鲄^(qū)域中的值沒有惡意軟件,但是知道自設(shè)置了陷阱后這些值沒有改變。這與域C相對比,在域C中所包括的軟件被顯示出從創(chuàng)建軟件起就沒有改變軟件的清單簽名。也與域D相對比(在下面討論,即,客戶OS環(huán)境),在域D內(nèi),在任意時間都能改變存儲器。在實(shí)施例中,可以使用一系列這樣的域,使得AV應(yīng)用可以分辨在受保護(hù)項(xiàng)目中的不同級別的完整性。例如,因?yàn)樘幚砥鞯娜置枋龇砑拇嫫?GDTR)存儲在域A硬件中所以已知在GDTR中的值具有高確信度,而與網(wǎng)絡(luò)存儲器映射呈線性的值可以取決于存儲在以前建立的域C-1中的值。因此,不能以與域C-1相同的完整性級別建立值并且因此所述值必須具有其自身的域C- (i+1)。域D312:(域D〈域C-n〈域-C)。在實(shí)施例中,域D可以是分配給可被客戶應(yīng)用308所訪問的所有未保護(hù)的資源306的全局域。這包括客戶環(huán)O應(yīng)用和內(nèi)核。域D還包括所有的環(huán)3應(yīng)用軟件。從物理存儲設(shè)備的一分區(qū)分配客戶OS存儲資源,其中分區(qū)320包含在具有標(biāo)簽(X4:Y)的域D中的軌道tO-tn。包含在受保護(hù)的客戶OS存儲頁面303中的AV應(yīng)用300具有存儲頁面陷阱,當(dāng)解除引用(de-reference)所述陷阱時將致使錯誤處理器314咨詢Biba MAC策略,借此可以使用支配包括域C的默認(rèn)標(biāo)簽的標(biāo)簽來覆蓋默認(rèn)客戶OS Biba標(biāo)簽。通常由318表示這些存儲頁面。從存儲池和存儲資源314和316分配由執(zhí)行容器100消耗的物理資源。執(zhí)行容器100對由標(biāo)簽分離和通過分區(qū)來強(qiáng)制執(zhí)行的這些資源具有排他性訪問??梢詫?yīng)用清單322存儲在具有符合域A114的標(biāo)簽分配的執(zhí)行容器存儲314中。圖4是根據(jù)本發(fā)明的實(shí)施例的用于建立域C的流程圖400。在塊402,AV應(yīng)用部件300使用處理器指令來指定錯誤處理器部件304的代碼鏡像、用于錯誤處理器的清單、AV應(yīng)用的存儲器位置,和AV應(yīng)用清單322。在塊404,加載器部件302使用應(yīng)用策略管理器102來驗(yàn)證應(yīng)用清單322和錯誤處理器304代碼鏡像。如果成功地驗(yàn)證了應(yīng)用清單和錯誤處理器,則過程繼續(xù)。加載器創(chuàng)建域C310、將錯誤處理器代碼鏡像拷貝到與域C相關(guān)聯(lián)的存儲器內(nèi),并且啟動由處理器執(zhí)行的錯誤處理器代碼。在塊406,加載器302請求錯誤處理器304鎖定在客戶0S200中為AV應(yīng)用300保留的存儲頁面。在塊408,錯誤處理器通過在客戶OS存儲器318中的所選代碼片段上設(shè)置陷阱,來鎖定當(dāng)前加載在客戶存儲器中的AV應(yīng)用300的可執(zhí)行代碼鏡像。最初,客戶OS受保護(hù)的頁面在域D處。在塊410,加載器測量AV應(yīng)用存儲器并將其與AV應(yīng)用清單322進(jìn)行比較。如果在客戶OS中的攻擊者通過供應(yīng)不正確的頁面地址而較早地欺騙了錯誤處理器,則完整性檢測應(yīng)該會失敗。因此,加載器不依賴在域D中的頁面表來執(zhí)行完整性檢查,而是基于運(yùn)行在域A中的應(yīng)用策略管理器102所證實(shí)的清單。在塊412,一旦加載器驗(yàn)證了 AV應(yīng)用鏡像的完整性,并且已建立了條件使得其他的客戶OS應(yīng)用(或甚至是客戶OS內(nèi)核代碼)在不觸發(fā)頁面陷阱(由錯誤處理器可檢測)情況下不能修改鏡像,加載器將AV應(yīng)用推進(jìn)到域C。在實(shí)施例中,現(xiàn)在錯誤處理器304和AV應(yīng)用300在同一域中,它們能夠經(jīng)由硬件實(shí)現(xiàn)的處理器發(fā)送消息命令進(jìn)行通信。在塊414,錯誤處理器驗(yàn)證從AV應(yīng)用接收的每個消息都來源于上述定義和鎖定的存儲器區(qū)域內(nèi)。在域C中包括代碼片段和數(shù)據(jù)片段二者。鎖定用于消息的代碼片段并將其與錯誤處理器的代碼片段一起放入到域C中,并且可以許可AV應(yīng)用來訪問這些頁面。此時,已經(jīng)建立了域C,包括運(yùn)行在執(zhí)行容器100中的錯誤處理器和運(yùn)行在客戶0S200中的AV應(yīng)用300。清單已驗(yàn)證了這兩個部件并且存儲器陷阱保留了軟件鏡像的完整性。現(xiàn)在可以運(yùn)行AV應(yīng)用來掃描惡意軟件。圖5是示出根據(jù)本發(fā)明的實(shí)施例的對應(yīng)于一系列資源設(shè)陷機(jī)構(gòu)的級聯(lián)Biba安全級別的圖。設(shè)置初始內(nèi)核陷阱包括建立或改變域C-l、C-2等。將資源放入到不同的域改進(jìn)了系統(tǒng)的整體安全性。圖5示出了圖4的塊408的另外的細(xì)節(jié)??蛻?S200可以包括用于域C500的受保護(hù)的資源區(qū)域,受保護(hù)的資源區(qū)域在實(shí)施例中包括AV配置程序510。客戶OS也可以包括用于域D的未受保護(hù)的資源區(qū)域306,未受保護(hù)的資源區(qū)域306在實(shí)施例中可以包含未受保護(hù)的頁面520,客戶OS還包括用于域D的受保護(hù)的資源區(qū)域508。域C-1502具有任意C子域的最高完整性級別。因?yàn)橥獠繖C(jī)構(gòu)簽名的清單沒有證實(shí),因此其內(nèi)容不能保證是沒有惡意軟件的。關(guān)于C子域?qū)⒆龀龃_認(rèn):從設(shè)置陷阱的點(diǎn)起,沒有未經(jīng)授權(quán)的軟件修改了值(但是不保證未經(jīng)授權(quán)的軟件在設(shè)置陷阱之前沒有修改信息)。在實(shí)施例中,可以首先建立域C-1502并且該域包含在受保護(hù)的寄存器512內(nèi)的所有內(nèi)核元件??梢越又褂糜駽-1的元件建立域C-2504來獲得正確的地址。域C-1將包含為未授權(quán)的改變(SYSENTER MSR、CR3等)所監(jiān)視的系統(tǒng)的寄存器514,并且域C-2將包含地址轉(zhuǎn)換頁表(PT)和頁面錯誤處理器(ΡΠΟ 514。一旦建立了這些域,可以進(jìn)一步創(chuàng)建域C-K例如域C-N506),所述域C-1依賴于域C-1和域C-2的完整性。進(jìn)一步地,域η可以包含設(shè)備驅(qū)動器516和應(yīng)用,所述應(yīng)用的頁面是使用頁面錯誤陷阱(例如AV掃描器518)來保護(hù)的。圖6是示出根據(jù)本發(fā)明的實(shí)施例的建立C子域的流程圖600。在塊602,AV應(yīng)用300識別要設(shè)陷的內(nèi)核寄存器512以及在內(nèi)核內(nèi)被允許修改這些寄存器的代碼位置一例如允許改變用于客戶OS200上下文的CR3的值的調(diào)度軟件。在塊604,AV應(yīng)用向錯誤處理器304發(fā)送消息來在所選的寄存器和允許對寄存器做出修改的一列代碼位置上設(shè)置陷阱。在塊606,錯誤處理器將寄存器和代碼位置放置到域C-1502中,并且在寄存器和授權(quán)的代碼設(shè)置上設(shè)置寫入陷阱。此時,對寄存器的所有未授權(quán)的訪問將在受保護(hù)的執(zhí)行環(huán)境系統(tǒng)內(nèi)生成陷阱,并且將生成從域D306寫入到域C-1502的Biba違例。在塊608,AV應(yīng)用使用在域C-1中的寄存器的值來識別需要在域C-2504中受到保護(hù)的系統(tǒng)的頁面表514。在塊610,AV應(yīng)用向錯誤處理器發(fā)送消息以在所選的頁面表?xiàng)l目上設(shè)置陷阱,并且包括允許對那些位置(例如頁面錯誤處理器)做出修改的一列位置。在塊612,錯誤處理器在所選的頁面表?xiàng)l目上、在那些被授權(quán)修改頁面表的代碼位置上設(shè)置陷阱,并且將存儲器和代碼位置放置到域C-2504中。此時,對頁面表的所有未授權(quán)的訪問將生成在受保護(hù)的執(zhí)行環(huán)境系統(tǒng)中的陷阱,并且將生成從域D306寫入到域C-2504的Biba違例。所有授權(quán)的操作將是從域C-2504到域C-2的寫入或從域C-2到域D306的寫入。此時,已保護(hù)了核心系統(tǒng)(內(nèi)核)寄存器和頁面表。這允許系統(tǒng)在這些核心元件上構(gòu)建更復(fù)雜的陷阱。圖7是示出根據(jù)本發(fā)明的實(shí)施例的設(shè)置應(yīng)用陷阱的流程圖700。圖7提供了圖6的塊604的實(shí)施例的進(jìn)一步細(xì)節(jié)來用于建立或改變域C-1。這在無論何時AV應(yīng)用確定必須保護(hù)內(nèi)核或用戶存儲器的區(qū)域,或當(dāng)系統(tǒng)狀態(tài)改變使得以前沒有訪問特定存儲器區(qū)域的代碼區(qū)域現(xiàn)在需要訪問那個區(qū)域時發(fā)生。在塊702,AV應(yīng)用300確定在內(nèi)核或應(yīng)用存儲器中需要保護(hù)的位置。AV應(yīng)用讀取客戶OS硬件寄存器512和頁面表514來計算陷阱的位置。這些值駐留在域C-1502或域C-2504中。在塊704,AV應(yīng)用向錯誤處理器304發(fā)送消息,以在所需的存儲器位置和允許對這些存儲器位置做出修改的一列代碼位置上設(shè)置陷阱。在塊706,錯誤處理器在存儲器位置和授權(quán)修改存儲器位置的所有代碼位置上設(shè)置寫入陷阱。然后錯誤處理器將這些元件放置到域C-1中,其中i被確定為j-Ι,其中j是用于計算陷阱的地址和位置的最高域級別。來自未受保護(hù)區(qū)域的所有未授權(quán)訪問將生成Biba違例,這是因?yàn)槠鋵⑹菑挠駾306到域C-1的寫入。但是,如果在域C-1內(nèi)存在多個區(qū)域,則將需要辨別在該域內(nèi)的寫入(從被授權(quán)寫入到一個存儲區(qū)區(qū)域的寫入不能被允許向該域中的所有區(qū)域?qū)懭?。圖8是示出根據(jù)本發(fā)明的另一實(shí)施例的設(shè)置應(yīng)用陷阱的流程圖800。這個過程可被用作圖7的替換流程。在塊802,AV應(yīng)用確定在內(nèi)核或應(yīng)用代碼內(nèi)的位置需要訪問在域C-1內(nèi)的存儲器位置。這可能是因?yàn)榘惭b了新的驅(qū)動器或其他軟件。在塊804,AV應(yīng)用向錯誤處理器發(fā)送消息以包括在域C-1內(nèi)的代碼區(qū)域。在塊806,錯誤處理器在代碼位置上設(shè)置陷阱,并將代碼位置放置到域C-1中。至此,已將AV應(yīng)用表示為在受保護(hù)的執(zhí)行環(huán)境系統(tǒng)內(nèi)的單個實(shí)體,但在實(shí)施例中,AV應(yīng)用可以由多個部分組成并且所述部分可以駐留在系統(tǒng)內(nèi)的不同域中。例如,在實(shí)施例中,AV應(yīng)用可以由兩個部件組成:在客戶OS對象上設(shè)置陷阱的AV配置(Config)應(yīng)用510,和讀取未受保護(hù)頁面和文件來用于尋找惡意軟件感染的AV掃描器應(yīng)用518。通過這個分割模型,可將AV配置部件提升到域C500中,但是AV掃描器518可以保留在較低的域中。在一個實(shí)施例中,可將AV掃描器放置在最低的C子域中(域C-n506),并且AV掃描器取決于所有更高域的完整性,但是它隔離于來自域D惡意軟件的攻擊,這是因?yàn)槿魏斡捎駾惡意軟件向AV掃描器的寫入將生成Biba錯誤。當(dāng)在“環(huán)”模式中使用Biba時,許可AV掃描器518讀取域D的對象同時在域C_n506操作。如果檢測到感染的對象,AV掃描器可以在域D產(chǎn)生子程序來刪除或隔離感染的文件。因?yàn)锳V掃描器不能在域C-n運(yùn)行,所以AV掃描器永遠(yuǎn)不會受到攻擊型惡意軟件的威脅。AV掃描器可以給成功通過AV掃描的硬盤驅(qū)動器(HDD)或固態(tài)硬盤(SSD)320或存儲頁面分配新的標(biāo)簽。新標(biāo)簽是大于D并小于域C-n的域。通過驗(yàn)證標(biāo)簽改變請求來源于AV掃描器頁面,同時頁面陷阱是激活的且AV掃描器標(biāo)簽在域C-n或更高的域,資源管理器(RM) 110驗(yàn)證AV掃描器是可信的(例如,頁面陷阱保護(hù)是合適的)以執(zhí)行在已掃描的對象上執(zhí)行標(biāo)簽改變。當(dāng)在“低水位線”模式使用Biba時,AV掃描器自動地將標(biāo)簽轉(zhuǎn)換到域D來執(zhí)行掃描。如果檢測到感染的對象,掃描器可以立即移除或隔離,但是不可以改變清除對象的標(biāo)簽。然而,通過確認(rèn)AV掃描器符合域C-n的要求,所述要求是已在所有臨界代碼和數(shù)據(jù)區(qū)域上放置了陷阱,并且在AV掃描器在域D中操作時這些陷阱已是合適的,AV掃描器可以按如上所述將其標(biāo)簽改變?yōu)橛駽-n。僅因?yàn)橘Y源陷阱,AV掃描器518被保護(hù)不受域D惡意軟件的損害;在此沒有強(qiáng)制使用Biba限制。當(dāng)在“嚴(yán)格”模式中使用Biba時,AV掃描器必須在執(zhí)行對象掃描和隔離之前請求標(biāo)簽改變?yōu)橛駾。接著,當(dāng)完成改變時,AV掃描器必須請求將標(biāo)簽改變回域C-n以對清除對象重新標(biāo)注。在實(shí)施例中,將AV掃描器放置到域C-n可以按如下完成。AV配置應(yīng)用510確定在AV掃描器應(yīng)用518內(nèi)需要保護(hù)的位置。AV配置應(yīng)用發(fā)信號通知錯誤處理器304將陷阱放置在適當(dāng)?shù)腁V掃描器應(yīng)用位置上。因?yàn)橛駽-n取決于所有其他的C子域,所以錯誤處理器設(shè)置適當(dāng)?shù)南葳澹⑶覍⑽恢梅胖玫接駽-n506中。圖9是示出根本發(fā)明的實(shí)施例的執(zhí)行陷阱的流程圖900。在某一時間,在設(shè)陷的位置將發(fā)生寫入。這將生成錯誤(通過AV掃描器機(jī)制或通過從較低完整性域向較高完整性域進(jìn)行寫入造成的Biba違例)。在塊902,如果客戶0S200應(yīng)用或內(nèi)核向設(shè)置了陷阱的存儲器進(jìn)行寫入,則RMllO標(biāo)記頁面訪問并且調(diào)用錯誤處理器304。在塊904,RM創(chuàng)建一組來自寄存器的系統(tǒng)狀態(tài)表。在塊906,RM調(diào)用錯誤處理器并將系統(tǒng)狀態(tài)表傳遞給錯誤處理器。確信正確地構(gòu)造了狀態(tài)表。在塊908,錯誤處理器確定被嘗試訪問的存儲器的域和正在訪問存儲器的代碼的域。在塊910,如果嘗試的存儲器訪問來自高于或等同于存儲器的域的域,并且嘗試訪問存儲器的代碼位置列在允許改變這個存儲器位置的范圍組中,則錯誤處理器允許操作。在塊912,如果嘗試的存儲器訪問來自于低于存儲器的域的域,則錯誤處理器不允許訪問改變存儲器。圖10是根據(jù)本發(fā)明的另一實(shí)施例的具有用于虛擬機(jī)管理器(VMM) 1002的客戶OS的執(zhí)行容器完整性模型的圖。所使用的VMM在虛擬化技術(shù)的技術(shù)領(lǐng)域中是普遍知曉的。在實(shí)施例中,VMM能夠強(qiáng)制執(zhí)行通常理解的Biba安全策略。RMllO在高于VMM的完整性級別進(jìn)行操作,使得代表VMM的任何嘗試對RM進(jìn)行的修改或破壞都構(gòu)成對安全策略的違例。作為VMM負(fù)載的一部分,RM能夠建立對VMM的信任,并且能夠驗(yàn)證確認(rèn)VMM能力的啟動控制策略包括強(qiáng)制執(zhí)行Biba安全規(guī)則的能力。在RM中的域策略管理器112將一系列Biba標(biāo)簽(即,特權(quán))分配給在VMM內(nèi)的VM策略管理器1004。VMM根據(jù)提供的范圍強(qiáng)制執(zhí)行Biba規(guī)貝U。在VMM中的VM策略管理器接著將特權(quán)分配給來自那個范圍內(nèi)的VM容器。這確保Biba級別系統(tǒng)范圍的語義連續(xù)性,即使VMM可能不具有對所有計算平臺資源的全局視角。例如,如果在執(zhí)行容器100中的應(yīng)用程序(例如,App L1104)被分配了特權(quán)域A114,并且運(yùn)行在客戶VM11008中的應(yīng)用(例如,App G11006)被分配了特權(quán)域A114,則這兩個應(yīng)用將使用類似的特權(quán)進(jìn)行操作。此外,如果App L1104將信息降級用于App L2106消耗,則App L2能夠?qū)⒛莻€信息通知給運(yùn)行在客戶0S200環(huán)境中的客戶VM21012中的AppG21010,而不違反系統(tǒng)范圍安全策略。類似地,App G21010能夠降級信息并且將其共享給運(yùn)行在客戶VM31016中并具有域C310的App G31014,和/或App L3108,而不違反安全策略。具有通常理解的安全策略模型允許系統(tǒng)部件之間的靈活互動,同時仍舊可以確保保持系統(tǒng)的安全目的。如果確定客戶OS環(huán)境具有低于受保護(hù)的執(zhí)行環(huán)境的最大級別的可信度,則RM將保留在沒有分配給VMM環(huán)境的范圍的頂層的特權(quán)級別。如果VMM被損壞并且分配的特權(quán)在其分配的范圍外,則RM能夠在存儲器和設(shè)備訪問上執(zhí)行范圍檢查來檢測欺騙。如果使用安全啟動技術(shù)(例如,可信的執(zhí)行技術(shù)(TXT))啟動VMM環(huán)境,則RM可以信任VMM來強(qiáng)制執(zhí)行在VM頁面上的范圍檢查。這可能會產(chǎn)生有益的性能影響。受保護(hù)的執(zhí)行環(huán)境的使用可以結(jié)合虛擬化,同時保持系統(tǒng)范圍的Biba安全策略一致性。圖11是根據(jù)本發(fā)明的實(shí)施例的具有用于VMM1002的客戶0S200的執(zhí)行容器完整性模型的圖,其中虛擬機(jī)包括AV應(yīng)用??梢允褂檬鼙Wo(hù)的執(zhí)行環(huán)境來在VM11008中的更高的特權(quán)應(yīng)用上強(qiáng)制執(zhí)行域邊界。具有相同特權(quán)的VMM信任VMl (例如,域O是代表VMM行動的VM)。但是,如果VM受到損害,VM能夠破壞VMM的行為。圖11示出了用于填充在VM11008中的應(yīng)用(App G11006)的執(zhí)行環(huán)境1022,使用存儲器沙盒技術(shù)保護(hù)所述應(yīng)用。VMM使用通常理解的由RMllO的域策略管理器112指導(dǎo)的策略語法和語義來對VM強(qiáng)制執(zhí)行Biba特權(quán)。另外的頁面保護(hù)可被用于在VM11008中的AppG11006??梢詫iba策略分配給應(yīng)用策略管理器102,使得分配給App G11006的Biba標(biāo)簽在VMM策略管理器1004分配給VMl 1008的標(biāo)簽范圍內(nèi)。在VM1008中的客戶OS沒有感知Biba的情況下,VMM1002能夠注冊應(yīng)用1006頁面1018來生成VMExit陷阱,使得VM清單1020包含用于構(gòu)建VMExit陷阱的策略和Biba標(biāo)簽分配,其覆蓋Biba感知VMM1002分配的默認(rèn)標(biāo)簽。在客戶OS感知Biba VM1012&1016的情況下,VM根據(jù)VM做出的標(biāo)簽分配來分配
存儲器頁面。本發(fā)明的實(shí)施例通過實(shí)現(xiàn)由處理器的微代碼強(qiáng)制執(zhí)行的強(qiáng)制完整性策略來提供受保護(hù)的執(zhí)行環(huán)境。正式指定的完整性規(guī)則(例如,Biba)使得驗(yàn)證和安全評估更簡單。在處理器硬件中的執(zhí)行(微代碼)確保受到損害的OS不能容易地破壞安全策略。本發(fā)明的實(shí)施例可用于虛擬化環(huán)境和非虛擬化環(huán)境并用于在任意操作系統(tǒng)環(huán)境中。圖12示出了計算系統(tǒng)1200的實(shí)施例的框圖。在各個實(shí)施例中,可以用能夠執(zhí)行參考本發(fā)明的一些實(shí)施例在本文中討論的一種或多種操作的各種電子設(shè)備來提供系統(tǒng)1200的一個或多個部件。例如,可以使用系統(tǒng)1200的一個或多個部件來執(zhí)行參考圖1-11所討論的操作,例如根據(jù)本文中的討論的操作的處理指令、執(zhí)行子程序等。還有,可以使用在本文中討論的各種存儲設(shè)備(例如,參考圖12和/或圖13)來存儲數(shù)據(jù)、操作結(jié)果等。在一個實(shí)施例中,可以將在網(wǎng)絡(luò)1203上接收(例如,經(jīng)由網(wǎng)絡(luò)接口設(shè)備1230和/或1330)的數(shù)據(jù)存儲在存在于處理器1202 (和/或圖3的1302)中的高速緩存(例如,在實(shí)施例中為LI高速緩存)中。這些處理器可以接著根據(jù)本發(fā)明的各個實(shí)施例應(yīng)用在本文中討論的操作。更具體地,計算系統(tǒng)1200可以包括經(jīng)由互連網(wǎng)絡(luò)(或總線)1204進(jìn)行通信的一個或多個中央處理單元(CPU) 1202或處理器。因此,在一些實(shí)施例中可以由處理器執(zhí)行在本文中討論的各種操作。此外,處理器1202可以包括通用處理器、網(wǎng)絡(luò)處理器(其處理在計算機(jī)網(wǎng)絡(luò)1203上傳輸?shù)臄?shù)據(jù)),或其他類型的處理器(包括精簡指令集計算機(jī)(RISC)處理器或復(fù)雜指令集計算機(jī)(CISC))。此外,處理器1202可以具有單個或多個內(nèi)核設(shè)計。具有多個內(nèi)核設(shè)計的處理器1202可以在同一集成電路(IC)芯片上集成不同類型的處理器內(nèi)核。還有,具有多個內(nèi)核設(shè)計的處理器1202可以實(shí)現(xiàn)為對稱的或非對稱的多處理器。此外,可以由系統(tǒng)1200的一個或多個部件執(zhí)行參考圖1-11所討論的操作。在實(shí)施例中,處理器(例如處理器11202-1)可以包括作為硬件線路邏輯(例如,電路)或微代碼的資源管理器(RM)110。芯片組1206也可以與互連網(wǎng)絡(luò)1204進(jìn)行通信。芯片組1206可以包括圖形和存儲器控制中心(GMCH) 1208。GMCH1208可以包括與存儲器1212進(jìn)行通信的存儲器控制器1210。存儲器1212可以存儲數(shù)據(jù),包括處理器1202或計算系統(tǒng)1200包括的任意其他設(shè)備執(zhí)行的指令序列。此外,存儲器1212可以存儲在本文中討論的一種或多種程序或算法,例如執(zhí)行容器100、客戶0S200、編譯器1213、根據(jù)執(zhí)行表的指令、映射等。這些數(shù)據(jù)(包括指令)的相同部分或至少一部分可以存儲在硬盤驅(qū)動器1228和/或在處理器1202內(nèi)的一個或多個高速緩存中。在本發(fā)明的一個實(shí)施例中,存儲器1212可以包括一種或多種易失性存儲(或存儲器)設(shè)備,例如隨機(jī)存取存儲器(RAM)、動態(tài)RAM (DRAM)、同步DRAM (SDRAM)、靜態(tài)RAM (SRAM),或其他類型的存儲設(shè)備。還可以使用非易失性存儲器,例如硬盤。另外的設(shè)備可以經(jīng)由互連網(wǎng)絡(luò)1204進(jìn)行通信,例如多處理器和/或多系統(tǒng)存儲器。GMCH1208還可以包括與顯示器1216通信的圖形接口 1214。在本發(fā)明的一個實(shí)施例中,圖形接口 1214可以經(jīng)由加速圖形端口(AGP)與顯示器1216進(jìn)行通信。在本發(fā)明的實(shí)施例中,顯示器1216可以是通過例如信號轉(zhuǎn)換器與圖形接口 1214進(jìn)行通信的平板顯示器,所述信號轉(zhuǎn)換器將存儲在存儲設(shè)備(例如,視頻存儲器或系統(tǒng)存儲器)中的圖像的數(shù)字表示轉(zhuǎn)換為由顯示器1216進(jìn)行解釋和顯示的顯示信號。由接口 1214產(chǎn)生的顯示信號在被顯示器1216解釋并隨后顯示之前,可以通過各種控制設(shè)備。中心接口 1218可以允許GMCH1208和輸入/輸出(I/O)控制中心(ICH) 1220進(jìn)行通信。ICH1220可以向I/O設(shè)備提供與計算系統(tǒng)1200進(jìn)行通信的接口。ICH1220可以通過外圍橋(或控制器)1224與總線1222進(jìn)行通信,所述外圍橋(或控制器)1224例如為外圍部件互連(PCI)橋、通用串行總線(USB)控制器,或其他類型的外圍橋或控制器。橋1224可以提供在處理器1202和外圍設(shè)備1224之間的數(shù)據(jù)路徑。也可以使用其他類型的技術(shù)。還有,多條總線可以通過例如多個橋或控制器與ICH1220進(jìn)行通信。此外,在本發(fā)明的各個實(shí)施例中,可以包括與ICH1220進(jìn)行通信的其他外圍設(shè)備:電子集成驅(qū)動器(IDE)或小型計算機(jī)系統(tǒng)接口(SCSI)硬盤驅(qū)動器、USB端口、鍵盤、鼠標(biāo)、并行端口、串行端口、軟盤驅(qū)動器、數(shù)字輸出支持(例如,數(shù)字視頻接口( DVI)),或其他設(shè)備??偩€1222可以與音頻設(shè)備1226、一個或多個磁盤驅(qū)動器1228和網(wǎng)絡(luò)接口設(shè)備1230進(jìn)行通信,所述網(wǎng)絡(luò)接口設(shè)備1230可以與計算機(jī)網(wǎng)絡(luò)1203進(jìn)行通信。在實(shí)施例中,設(shè)備1230可以是能夠有線通信或無線通信的網(wǎng)絡(luò)接口控制器(NIC)。其他設(shè)備可以經(jīng)由總線1222進(jìn)行通信。還有,在本發(fā)明的一些實(shí)施例中,各種部件(例如網(wǎng)絡(luò)接口設(shè)備1230)可以與GMCHl208進(jìn)行通信。此外,可以結(jié)合處理器1202、GMCH1208,和/或圖形接口 1214來形成單個芯片。此外,計算系統(tǒng)1200可以包括易失性和/或非易失性存儲器(或存儲)。例如,非易失性存儲器可以包括以下的一種或多種設(shè)備:只讀存儲器(ROM)、可編程ROM (PR0M)、可擦除PROM (EPR0M)、電EPROM (EEPR0M)、磁盤驅(qū)動器(例如,1228)、軟盤、光盤只讀存儲器(CD-ROM)、數(shù)字多用途盤(DVD)、閃存、磁光盤,或其他類型的能夠存儲電子數(shù)據(jù)(例如,包括指令)的機(jī)器可讀介質(zhì)。在實(shí)施例中,可以以例如參考圖13所討論的點(diǎn)對點(diǎn)(PtP)配置來安排系統(tǒng)1200的部件。例如,通過多個點(diǎn)對點(diǎn)接口可以互連處理器、存儲器和/或輸入/輸出設(shè)備。更精確地,圖13示出了根據(jù)本發(fā)明的實(shí)施例的安排為點(diǎn)對點(diǎn)(PtP)配置的計算系統(tǒng)1300。特別地,圖13示出了其中通過多個點(diǎn)對點(diǎn)接口進(jìn)行互連的處理器、存儲器和輸入/輸出設(shè)備的系統(tǒng)??梢酝ㄟ^系統(tǒng)1300的一個或多個部件來執(zhí)行參考圖1-12所討論的操作。如圖13所示,系統(tǒng)1300可以包括多個處理器,為了清楚僅示出了兩個處理器,處理器1302和1304。處理器1302和1304每一個可以包括與存儲器1310和1312相耦合的本地存儲器控制中心(MCH)1306和1308(在一些實(shí)施例中,其可以是與圖12中的GMCH1208是相同或相似的)。存儲器1310和/或1312可以存儲諸如參考圖13的存儲器1212所討論的那些各類數(shù)據(jù)。處理器1302和1304可以是例如參考圖13的處理器1302所討論的那些任何適當(dāng)?shù)奶幚砥?。處理?302和1304可以分別使用PtP接口電路1316和1318經(jīng)由點(diǎn)對點(diǎn)(PtP)接口 1314來交換數(shù)據(jù)。處理器1302和1304中的每一個可以使用點(diǎn)對點(diǎn)接口電路1326、1328、1330和1332經(jīng)由個體PtP接口 1322和1324與芯片組1320進(jìn)行數(shù)據(jù)交換。芯片組1320還可以使用PtP接口電路1337經(jīng)由高性能圖形接口 1336與高性能圖形電路1334進(jìn)行數(shù)據(jù)交換。通過使用處理器1302和1304可以提供本發(fā)明的至少一個實(shí)施例。例如,處理器1302和/或1304可以執(zhí)行圖1-11的一個或多個操作。但是本發(fā)明的其他實(shí)施例可以存在于圖13的系統(tǒng)1300中的其他電路、邏輯單元或設(shè)備中。此外,本發(fā)明的其他實(shí)施例可以分布在圖13中示出的數(shù)個電路、邏輯單元,或設(shè)備??梢允褂肞tP接口電路1341來將芯片組1320耦合到總線1340??偩€1340可以具有與其相耦合的一個或多個設(shè)備,例如總線橋1342和I/O設(shè)備1343。經(jīng)由總線1344,總線橋1343可以與其他設(shè)備相耦合,所述其他設(shè)備例如為鍵盤/鼠標(biāo)1345、參考圖12討論的網(wǎng)絡(luò)接口設(shè)備1330 (例如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC),或類似的可以與計算機(jī)網(wǎng)絡(luò)1303相耦合的設(shè)備)、音頻I/O設(shè)備1347,和/或數(shù)據(jù)存儲設(shè)備1348。數(shù)據(jù)存儲設(shè)備1348可以存儲可被處理器1302和/或1304執(zhí)行的代碼1349。在本發(fā)明的各個實(shí)施例中,在本文中例如參考圖1-13所討論的操作可以用硬件(例如,邏輯電路)、軟件(包括,例如,控制處理器(例如參考圖12-13所討論的處理器)操作的微代碼)、固件,或其上的組合,它們可以作為計算機(jī)程序產(chǎn)品來提供,例如,包括具有指令(或軟件程序)存儲在其上的有形的機(jī)器可讀或計算機(jī)可讀介質(zhì),所述指令用來為計算機(jī)(例如,處理器或計算機(jī)設(shè)備的其他邏輯)編程以執(zhí)行在本文中討論的操作。機(jī)器可讀介質(zhì)可以包括例如在文本中所討論的那些存儲設(shè)備。本說明書中引用“一個實(shí)施例”或“實(shí)施例”指結(jié)合該實(shí)施例所描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實(shí)施例中。本說明書中各處出現(xiàn)的短語“在一個實(shí)施例中”并不必然全都指相同實(shí)施例。在說明書和權(quán)利要求書中,可以使用術(shù)語“耦合”和“連接”以及它們的派生詞。在特定的實(shí)施例中,“連接”可被用來指示兩個或更多個元件彼此之間是直接物理接觸或電接觸的。“耦合”可以意味著兩個或更多個元件是直接物理接觸或電接觸的。然而,“耦合”還可以意味著兩個或更多的元件彼此之間不是直接接觸的,但彼此之間仍然可以協(xié)作或交互。此外,這些計算機(jī)可讀媒介可以作為計算機(jī)程序產(chǎn)品而被下載,其中可以經(jīng)由通信鏈路(例如總線、調(diào)制解調(diào)器,或網(wǎng)絡(luò)連接)通過數(shù)據(jù)信號的方式將程序從遠(yuǎn)程計算機(jī)(例如,服務(wù)器)傳送到請求計算機(jī)(例如,客戶端)。因此,雖然已經(jīng)用具體到結(jié)構(gòu)特征和/或方法動作的語言描述了實(shí)施例,但是可以理解,不應(yīng)將聲明的主題限制到所描述的具體特征或動作。而是,作為實(shí)現(xiàn)聲明的主題的示例形式公開了這些具體特征和動作。
權(quán)利要求
1.一種在具有加載器和錯誤處理器的計算系統(tǒng)中,對在客戶操作系統(tǒng)中運(yùn)行的獨(dú)立于操作系統(tǒng)(OS)的防病毒(AV)應(yīng)用強(qiáng)制執(zhí)行安全策略的方法,包括: 由所述AV應(yīng)用指定錯誤處理器代碼鏡像、錯誤處理器清單、所述AV應(yīng)用的存儲器位置,和AV應(yīng)用清單; 由所述加載器驗(yàn)證所述錯誤處理器代碼鏡像和所述錯誤處理器清單; 由所述加載器創(chuàng)建具有第一安全級別的第一安全域,將所述錯誤處理器代碼鏡像拷貝到與所述第一安全域相關(guān)聯(lián)的存儲器,并且啟動所述錯誤處理器的執(zhí)行; 由所述加載器請求鎖定在所述客戶OS中為所述AV應(yīng)用保留的存儲器頁; 通過在所述客戶OS存儲器頁中所選的代碼段上設(shè)置陷阱,所述錯誤處理器鎖定加載到客戶OS存儲器中的所述AV應(yīng)用的可執(zhí)行代碼鏡像; 由所述加載器測量AV 應(yīng)用存儲器并將所述測量與所述AV應(yīng)用清單進(jìn)行比較;以及當(dāng)所述測量和比較步驟成功地驗(yàn)證所述AV應(yīng)用時,由所述加載器將所述AV應(yīng)用提升到所述第一安全域。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述加載器和所述錯誤處理器在所述計算系統(tǒng)中的受保護(hù)的執(zhí)行環(huán)境中執(zhí)行。
3.根據(jù)權(quán)利要求1所述的方法,其中,在所述客戶OS中運(yùn)行的其他應(yīng)用位于具有第二安全級別的第二安全域中,所述第一安全級別高于所述第二安全級別。
4.根據(jù)權(quán)利要求3所述的方法,其中,在所述第二安全域中運(yùn)行的應(yīng)用在沒有觸發(fā)由所述錯誤處理器檢測到的陷阱的情況下不能修改在所述第一安全域中的存儲器。
5.根據(jù)權(quán)利要求3所述的方法,其中,在所述第二安全域中運(yùn)行的客戶OS內(nèi)核代碼在沒有觸發(fā)由所述錯誤處理器檢測到的陷阱的情況下不能修改在所述第一安全域中的存儲器。
6.根據(jù)權(quán)利要求1所述的方法,還包括執(zhí)行所述AV應(yīng)用來掃描在所述計算系統(tǒng)中的惡意軟件。
7.根據(jù)權(quán)利要求6所述的方法,還包括由所述錯誤處理器驗(yàn)證來自所述AV應(yīng)用的消息來源于已鎖定的客戶OS存儲器。
8.根據(jù)權(quán)利要求1所述的方法,其中,由所述計算系統(tǒng)的處理器的資源管理器邏輯來控制對所述安全域的訪問。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述AV應(yīng)用在由虛擬機(jī)管理器(VMM)所控制的虛擬機(jī)中執(zhí)行。
10.一種包括一條或多條指令的計算機(jī)可讀介質(zhì),當(dāng)在具有加載器和錯誤處理器的計算系統(tǒng)的處理器上執(zhí)行所述指令時,配置所述處理器執(zhí)行以下一個或多個操作: 由防病毒(AV)應(yīng)用指定錯誤處理器代碼鏡像、錯誤處理器清單、所述AV應(yīng)用的存儲器位置,和AV應(yīng)用清單; 由所述加載器驗(yàn)證所述錯誤處理器代碼鏡像和所述錯誤處理器清單; 由所述加載器創(chuàng)建具有第一安全級別的第一安全域,將所述錯誤處理器代碼鏡像拷貝到與所述第一安全域相關(guān)聯(lián)的存儲器,并且啟動所述錯誤處理器的執(zhí)行; 由所述加載器請求鎖定在所述客戶OS中為所述AV應(yīng)用保留的存儲器頁; 通過在所述客戶OS存儲器頁中所選的代碼段上設(shè)置陷阱,所述錯誤處理器鎖定加載到客戶OS存儲器中的所述AV應(yīng)用的可執(zhí)行代碼鏡像; 由所述加載器測量AV應(yīng)用存儲器并將所述測量與所述AV應(yīng)用清單進(jìn)行比較;以及當(dāng)所述測量和比較步驟成功地驗(yàn)證所述AV應(yīng)用時,由所述加載器將所述AV應(yīng)用提升到所述第一安全域。
11.根據(jù)權(quán)利要求10所述的介質(zhì),其中,所述加載器和所述錯誤處理器在所述計算系統(tǒng)中的受保護(hù)的執(zhí)行環(huán)境中執(zhí)行。
12.根據(jù)權(quán)利要求10所述的介質(zhì),其中,在所述客戶OS中運(yùn)行的其他應(yīng)用位于具有第二安全級別的第二安全域中,所述第一安全級別高于所述第二安全級別。
13.根據(jù)權(quán)利要求12所述的介質(zhì),其中,在所述第二安全域中運(yùn)行的應(yīng)用在沒有觸發(fā)由所述錯誤處理器檢測到的陷阱的情況下不能修改在所述第一安全域中的存儲器。
14.根據(jù)權(quán)利要求12所述的介質(zhì),其中,在所述第二安全域中運(yùn)行的客戶OS內(nèi)核代碼在沒有觸發(fā)由所述錯誤處理器檢測到的陷阱的情況下不能修改在所述第一安全域中的存儲器。
15.根據(jù)權(quán)利要求10所述的介質(zhì),還包括用于執(zhí)行所述AV應(yīng)用來掃描在所述計算系統(tǒng)中的惡意軟件的指令。
16.根據(jù)權(quán)利要求15所述的介質(zhì),還包括用于由所述錯誤處理器驗(yàn)證來自所述AV應(yīng)用的消息來源于已鎖定的客戶OS存儲器的指令。
17.一種計算系統(tǒng),包括: 用于執(zhí)行指令來強(qiáng)制執(zhí)行用于所述計算系統(tǒng)的安全策略的處理器,所述處理器包括控制對多個安全域的訪問的資源管理器邏輯; 包括加載器和錯誤處理器的執(zhí)`行容器;以及 包括防病毒(AV)應(yīng)用的客戶操作系統(tǒng)(OS); 其中,所述AV應(yīng)用指定錯誤處理器代碼鏡像、錯誤處理器清單、所述AV應(yīng)用的存儲器位置,和AV應(yīng)用清單; 其中,所述加載器驗(yàn)證所述錯誤處理器代碼鏡像和所述錯誤處理器清單,創(chuàng)建具有第一安全級別的第一安全域,將所述錯誤處理器代碼鏡像拷貝到與所述第一安全域相關(guān)聯(lián)的存儲器,由所述處理器啟動所述錯誤處理器的執(zhí)行,和請求鎖定在所述客戶OS中為所述AV應(yīng)用保留的存儲器頁; 其中,所述錯誤處理器通過在所述客戶OS存儲器面中所選的代碼段上設(shè)置陷阱來鎖定加載到客戶OS存儲器中的所述AV應(yīng)用的可執(zhí)行代碼鏡像;以及 其中,所述加載器測量AV應(yīng)用存儲器,將所述測量與所述AV應(yīng)用清單進(jìn)行比較,并且當(dāng)所述測量和比較步驟成功地驗(yàn)證所述AV應(yīng)用時,將所述AV應(yīng)用提升到所述第一安全域。
18.根據(jù)權(quán)利要求17所述的計算系統(tǒng),其中,在所述客戶OS中運(yùn)行的其他應(yīng)用位于具有第二安全級別的第二安全域中,所述第一安全級別高于所述第二安全級別。
19.根據(jù)權(quán)利要求18所述的計算系統(tǒng),其中,在所述第二安全域中運(yùn)行的應(yīng)用在沒有觸發(fā)由所述錯誤處理器檢測到的陷阱的情況下不能修改在所述第一安全域中的存儲器。
20.根據(jù)權(quán)利要求18所述的計算系統(tǒng),其中,在所述第二安全域中運(yùn)行的客戶OS內(nèi)核代碼在沒有觸發(fā)由所述錯誤處理器檢測到的陷阱的情況下不能修改在所述第一安全域中的存儲器。
21.根據(jù)權(quán)利要求17所述的計算系統(tǒng),還包括執(zhí)行所述AV應(yīng)用來掃描在所述計算系統(tǒng)中的惡意軟件。
22.根據(jù)權(quán)利要求21所述的計算系統(tǒng),其中,所述錯誤處理器驗(yàn)證來自所述AV應(yīng)用的消息來源于已鎖定的客戶OS存儲器。
23. 根據(jù)權(quán)利要求1所述的計算系統(tǒng),還包括在所述客戶OS中用于實(shí)例化虛擬機(jī)的虛擬機(jī)管理器(VMM),其中,所述AV應(yīng)用在所述虛擬機(jī)中執(zhí)行。
24. 根據(jù)權(quán)利要求1所述的計算系統(tǒng),其中`,所述執(zhí)行容器包括受保護(hù)的執(zhí)行環(huán)境。
全文摘要
一種防病毒(AV)應(yīng)用,其指定錯誤處理器代碼鏡像、錯誤處理器清單、AV應(yīng)用的存儲器位置,和AV應(yīng)用清單。加載器驗(yàn)證錯誤處理器代碼鏡像和錯誤處理器清單,創(chuàng)建具有第一安全級別的第一安全域,將錯誤處理器代碼鏡像拷貝到與第一安全域相關(guān)聯(lián)的存儲器,并且啟動錯誤處理器的執(zhí)行。加載器請求鎖定在客戶操作系統(tǒng)中為AV應(yīng)用保留的存儲頁面。通過在客戶操作系統(tǒng)存儲器中所選代碼片段上設(shè)置陷阱,錯誤處理器鎖定加載到客戶操作系統(tǒng)存儲器中的AV應(yīng)用的可執(zhí)行代碼鏡像。
文檔編號G06F21/53GK103119601SQ201180044799
公開日2013年5月22日 申請日期2011年7月25日 優(yōu)先權(quán)日2010年8月18日
發(fā)明者N·M·史密斯, G·D·丹內(nèi)爾斯, V·尚博格, S·蘇古馬爾 申請人:英特爾公司