實時模塊保護的制作方法
【技術領域】
[0001]本發明的實施例總體上涉及計算機安全和惡意軟件保護,并且更具體地,涉及實時模塊保護。
【背景技術】
[0002]本機操作系統服務可阻止安全軟件在系統的內核中安裝任意掛鉤。因而可防止安全軟件過濾電子設備的所有行為,包括惡意軟件的潛在惡意行為。惡意軟件可以包括但不限于,間諜軟件、根程序病毒包(rootkits)、密碼竊取器、垃圾郵件源、網絡釣魚攻擊源、拒絕服務攻擊源、病毒、記錄器、木馬、廣告軟件,或產生惡意行為的任何其他數字內容。
[0003]操作系統的過濾功能可能會受到限制,并且可能僅在由操作系統供應商所決定的時間軸上可用。惡意軟件可與安全軟件在相同的層級處操作和駐留,尤其是在操作系統內核中,并從而損害操作系統及安全軟件本身的完整性。
[0004]多種形式的積極(aggressive)內核模式惡意軟件篡改用戶模式存儲器以實現惡意任務,例如動態地注入惡意代碼、修改用戶模式代碼分段(subsect1n)以改變執行路徑并重定向到惡意代碼、以及修改用戶模式數據結構以使安全軟件失效。此外,一些惡意軟件可通過篡改進程存儲器代碼和數據分段以欺騙檢測邏輯來從內核攻擊反惡意軟件應用程序及進程。
[0005]內核模式根程序病毒包及其他惡意軟件采用各種方法從用戶模式應用程序和內核模式設備驅動程序中隱藏自身的存在。根據感染所發生的位置,所使用的技術可以改變。例如,惡意軟件能夠攻擊操作系統的內核活動進程列表從而從列表中清除或取消根程序病毒包或其他惡意軟件進程。其他惡意軟件可篡改進程訪問和枚舉函數的代碼分段。
【附圖說明】
[0006]為了更完整地理解本發明的實施例及其優點,現參考以下與附圖相結合的書面描述,其中:
[0007]圖1是用于保護電子設備避免惡意軟件的系統的示例實施例;
[0008]圖2是用于保護電子設備避免惡意軟件的基于虛擬機監視器和基于安全規則的可配置安全解決方案的系統的示例實施例;
[0009]圖3是用于保護電子設備避免惡意軟件的基于虛擬機監視器的方法的示例實施例;
[0010]圖4是用于在電子設備上使用操作系統下層捕獲來調節軟件訪問以保護存儲器的系統的示例實施例;
[0011]圖5是存儲器映射的示例實施例的示意圖;
[0012]圖6是用于使用對電子設備的嘗試訪問的操作系統下層捕獲來保護存儲器的方法的示例實施例;
[0013]圖7是用于實時模塊保護的系統的示例操作的示意圖;
[0014]圖8是用于實時模塊保護的方法的示例實施例。
【具體實施方式】
[0015]圖1是用于保護電子設備避免惡意軟件的系統100的示例性實施例。系統100可包括操作系統(“Ο/s”)下層(below-0/S)捕獲代理104,捕獲代理104通信地耦合到觸發事件處理器108。Ο/S下層捕獲代理104可被配置為捕獲(trap)對電子設備103的資源106的各種嘗試訪問。Ο/S下層捕獲代理104可被配置為創建與所捕獲的嘗試訪問相關聯的觸發事件,并將所述觸發事件發送給觸發事件處理器108。觸發事件處理器108可被配置為查詢一個或多個安全規則114或保護服務器102,以確定如何處理所述觸發事件。觸發事件處理器108還可被配置為評估所述觸發事件的傾向是惡意軟件或顛覆電子設備103的資源或操作的惡意嘗試的指示。此外,觸發事件處理器108可被配置為向Ο/S下層捕獲代理104提供是否應當允許或拒絕觸發事件的確定,或者可被配置為產生另一糾正動作。
[0016]可在比電子設備103中的操作系統更低的功能層級處實現Ο/S下層捕獲代理104。例如,Ο/S下層捕獲代理104可截獲操作系統112、驅動程序111或應用程序110對資源106的嘗試訪問。Ο/S下層捕獲代理104可在電子設備103的處理器上運行而無需使用操作系統。在一個實施例中,Ο/S下層捕獲代理104可運行于裸機環境或執行層級。此外,Ο/S下層捕獲代理104可運行于由電子設備103的處理器所限定的、比電子設備103的所有操作系統更高的執行優先級別。例如,在使用保護環的分級保護域模型的上下文中(其中較小的數字代表較高的優先級),操作系統112可運行于“環0”,而Ο/S下層捕獲代理104可運行于“環-1”。驅動程序111或應用程序110可運行于“環O”或“環3”。在處理器的一些實施例中,“環-1”的概念可被稱為“環O特權模式”,并且“環O”的概念可被稱為“環O非特權模式”。相比“環O”或“環O特權模式”,“環-1”或“環O特權模式”下的操作可能需要更多的額外開銷和費用。電子設備103的操作系統可運行于環O。在諸如INTEL處理器的處理器中,“VMX Root”模式可相當于“環O特權模式”,并且“VMX Non-root”模式可相當于“環 O”。
[0017]Ο/S下層捕獲代理104可對運行于“環O”或更高的實體透明地操作。因此,無論Ο/S下層捕獲代理104是否存在,都可由操作系統112或另一實體以相同的方式請求對資源106的嘗試訪問。當執行所接收的動作時,Ο/S下層捕獲代理104可允許所述請求發生、可拒絕所述請求,或者可采取其他糾正動作。為了拒絕所述請求,Ο/s下層捕獲代理104可簡單地不把請求發送給資源106或處理器,或者可向所述請求提供欺騙的或虛假的應答,以使操作系統112相信該動作已經發生。
[0018]通過在“環-1”、在比電子設備103的相關操作系統更高的優先級或低于電子設備103的相關操作系統運行,Ο/S下層捕獲代理104可避免困擾諸如操作系統112的操作系統的大多數惡意軟件。惡意軟件可欺騙在“環O”運行的操作系統112或甚至反惡意軟件的軟件,這是因為惡意軟件也可在“環O”優先級運行。然而,如果要執行惡意活動,電子設備103上的惡意軟件仍然必須做出對資源106的請求。因而,捕獲鏈接到敏感資源的操作可由在電子設備103中的操作系統的層級以下運行的捕獲代理更好地完成。
[0019]可以任何合適的方式實現Ο/S下層捕獲代理104。在一個實施例中,可在虛擬機監視器中實現Ο/s下層捕獲代理104。如針對Ο/S下層捕獲代理104所描述的,這種實施例可在操作系統的層級以下運行。例如,在下面的圖2的描述中的可找到對安全虛擬機監視器216的這種實施例的示例的描述。在另一實施例中,可在固件中實現Ο/S下層捕獲代理104。在又一實施例中,可在微代碼中實現Ο/S下層捕獲代理104。可在這些實施例的任意適合的組合中實現Ο/S下層捕獲代理104。
[0020]觸發事件處理器108可由通信地耦合在一起的一個或多個事件處理器或安全代理實現。觸發事件處理器108和Ο/S下層捕獲代理104可在同一安全代理中實現。在一個實施例中,觸發事件處理器108可運行于與Ο/S下層捕獲代理相同的優先級環。在另一實施例中,觸發事件處理器108可運行于與操作系統112、驅動程序111或應用程序110相同的優先級。在又一實施例中,觸發事件處理器108可由兩個或更多個觸發事件處理器實現,其中至少一個觸發事件處理器運行于與Ο/S下層捕獲代理相同的優先級環,并且至少一個觸發事件處理器運行于操作系統112、驅動程序111或應程序用110的層級。通過在Ο/S下層捕獲代理104的層級運行,觸發事件處理器108可類似地避免“環O”或“環3”惡意軟件感染代理本身的問題。然而,與操作系統112、驅動程序111或應用程序110 —起在“環O”或“環3”運行的觸發事件處理器108可以能夠提供關于對資源106的嘗試訪問的上下文信息,該上下文信息是從“環-1”代理的角度來看無法獲得的。
[0021]觸發事件處理器108可以以任何合適的方式實現。在一個實施例中,觸發事件處理器108可在虛擬機監視器或虛擬機監視器安全代理中實現。這種實施例可在操作系統的層級以下運行。例如,在下面的圖2的描述中的可找到對安全虛擬機監視器216和安全虛擬機監視器安全代理217的這種實施例的示例的描述。在另一實施例中,觸發事件處理器108可全部地或部分地在固件中實現。如針對觸發事件處理器108所描述的,這種實施例可在操作系統的層級以下運行。在又一實施例中,觸發事件處理器108可在微代碼中實現。如針對觸發事件處理器108所描述的,這種實施方式可在低于操作系統的層級以下運行。觸發事件處理器108可在這些實施例的組合中實現。
[0022]在一個實施例中,觸發事件處理器108可在多個模塊中實現,其中,至少一個這種模塊運行于操作系統以下的層級,并且至少一個這種模塊運行于操作系統之內的層級。每個這種模塊均可被配置為彼此進行通信。
[0023]在一個實施例中,操作系統下層捕獲代理104和/或觸發事件處理器108可在電子設備103的裸露的金屬層運行。操作系統下層捕獲代理104和/或觸發事件處理器108可運行而無需使用它們與它們被配置為要進行保護的資源106之間的操作系統。資源106可包括處理器、處理器的功能部件、存儲器、諸如數據結構的駐留在存儲器中的實體,或者諸如函數、進程或應用程序的駐留在存儲器中以供由處理器執行的實體。資源106可包括包含電子設備103的資源的系統資源。此外,資源106可被指定為受保護的,從而通過例如操作系統下層捕獲代理104、觸發事件處理器108或任何合適的反惡意軟件機制或模塊的操作進行保護。因此,資源106可包括受保護的系統資源。操作系統下層捕獲代理104和/或觸發事件處理器108可直接在電子設備103的硬件上運行。操作系統下層捕獲代理104和/或觸發事件處理器108可不需要使用諸如操作系統112的操作系統來執行或獲得對資源106的完全訪問。
[0024]電子設備103上可以存在其他操作系統,這些操作系統不參與處在操作系統112、操作系統下層捕獲代理104和觸發事件處理器108、以及資源106的層級處的多個實體之間的關系。例如,預引導操作系統可安全地啟動電子設備的一些部分,但不參與電子設備在處理來自應用程序110、驅動程序111和操作系統112模式的對資源106的請求這方面的正常操作。在另一示例中,電子設備103可包含主板組件、插入式板卡、外圍設備或其他組件,這些組件包含它們自己的操作系統和處理器組,以執行處于操作系統112、操作系統下層捕獲代理104和觸發事件處理器108與資源106的層級處的實體之間的關系之外的功能。這些操作系統可為嵌入式操作系統。這些操作系統中的任何一個均可不用于執行操作系統下層捕獲代理104和觸發事件處理器108。此外,這些操作系統中的任何一個均可不訪問由捕獲代理104和觸發事件處理器108所保護的資源106。
[0025]操作系統112、驅動程序11或應用呈現110中的每一個可通過任何合適的模塊、可執行文件、腳本、邏輯、指令、硬件、軟件、固件或它們的組合來實現,以在操作100上運行。
[0026]系統100可包括一個或多個操作系統下層捕獲代理104和一個或多個觸發事件處理器108的任意組合。可在以下各圖中的對捕獲代理、事件處理器和安全代理的描述中找到對操作系統下層捕獲代理104和觸發事件處理器108的描述。
[0027]資源106可包括電子設備的任何合適的資源。例如,資源106可包括寄存器、存儲器、控制器或I/o設備。例如,可在對圖2的系統資源214或圖4的虛擬存儲器430或物理存儲器403的描述中找到對資源106的示例實施例的描述。
[0028]安全規則114可包括任何合適的規則、邏輯、命令、指令、標志或用于告知Ο/S下層捕獲代理104要捕獲什么動作或用于告知觸發事件處理器108基于所捕獲的動作來處理事件的其他機制。觸發事件處理器108可被配置為向Ο/S下層捕獲代理提供安全規則114中的一個或多個。例如,可在對圖2中的安全規則222、或安全規則421或安全規則408的描述中找到對安全規則114中的一些或全部的示例實施例的描述。
[0029]內核模式和用戶模式實體(例如系統100的應用程序110、驅動程序111和操作系統112)可以任何合適的方式實現。例如,可在以下對圖2的應用程序210、驅動程序211和操作系統212或圖4的應用程序410、驅動程序411和操作系統413的描述中找到對系統100的應用程序110、驅動程序111和操作系統112的示例實施例的描述。
[0030]電子設備103可以任何合適的方式實現,例如計算機、個人數字助理、電話、移動設備、片上系統、服務器或可配置以解釋和/或執行程序指令和/或進程數據的任何其他設備。例如,可在以下對圖2的電子設備204或圖4中的電子設備401的描述中找到對電子設備103的示例實施例的描述。
[0031]系統100可在用于捕獲對在電子設備103的操作系統以下的層級處的資源的嘗試訪問的任何合適的系統中實現。系統100也可在用于通過查詢安全規則以確定所嘗試的訪問是否是惡意的來處理所嘗試的訪問的任何合適的單元中實現。例如,系統100可由下面的圖2-圖8中所描述的系統和方法200、300、400、500、600、700和800實現。
[0032]圖2是用于保護電子設備避免惡意軟件的基于虛擬機監視器和基于安全規則的可配置安全解決方案的系統200的示例實施例。系統200可為系統100的示例實施例,其在虛擬機監視器中實現系統100的某些元件。系統200可包括由可配置安全解決方案保護而避免惡意軟件的電子設備204。系統200的可配置安全解決方案可包括在所有操作系統下層運行的安全代理、安全虛擬機監視器、基于云的安全代理和Ο/S內行為安全代理。0/S下層安全代理和安全虛擬機監視器可被配置為防護對電子設備204的系統資源(包括由0/S內行為安全代理所使用的資源)的訪問。ο/s下層安全代理可在安全虛擬機監視器中運行。基于云的安全代理可被配置為向ο/s下層安全代理和ο/s內行為安全代理提供惡意軟件檢測信息,并從安全虛擬機監視器和Ο/s內行為安全代理接收關于可能與惡意軟件相關聯的可疑行為的信息。ο/s內行為安全代理可被配置為針對在電子設備上運行的惡意軟件的痕跡掃描電子設備204。系統200可包括一個或多個Ο/S下層安全代理,所述一個或多個Ο/S下層安全代理被配置為捕獲對電子設備204的資源訪問的嘗試使用、生成對應于所述嘗試的觸發事件、查詢關于所述觸發事件的安全規則、并且如果有必要則采取關于所述嘗試的糾正動作。
[0033]在一個實施例中,系統200可包括通信地耦合到一個或多個Ο/S內安全代理218和安全虛擬機監視器(“SVMM”)安全代理217的保護服務器202。SVMM安全代理217可駐留在SVMM 216中。SVMM 216可駐留在電子設備204中并運行在電子設備204上。Ο/S內安全代理218和SVMM安全代理217可通信地耦合。保護服務器202、0/S內安全代理218、SVMM安全代理217和SVMM 216可被配置為保護電子設備204免遭惡意軟件的感染。
[0034]SVMM安全代理217可以是圖中的觸發事件處理器108的示例實施例。SVMM 216可以是圖1的Ο/s下層捕獲代理104的示例實施例。
[0035]電子設備204可包括親合到處理器208的存儲器206。電子設備204可包括用于任何合適的目的而在電子設備上執行的一個或多個應用呈現210或驅動程序211。電子設備204可包括操作系統212。操作系統212可被配置為向應用程序210或驅動程序211提供對電子設備204的系統資源214的訪問。SVMM 216可被配置為截獲操作系統212對系統資源214的這種調用。SVMM 216和SVMM安全代理217可在操作系統212的層級以下運行。例如,SVMM 216和SVMM安全代理217可以特權模式(例如,“環-1”直接在處理器208上運行。
[0036]處理器208可包括例如微處理器、微控制器、數字信號處理器(DSP)、專用集成電路(ASIC)、或被配置為解釋和/或執行程序指令和/或進程數據的任何其他數字電路或模擬電路。在一些實施例中,處理器208可解釋和/或執行被存儲在存儲器206中的程序指令和/或進程數據。存儲器206可部分地或整體地被配置為應用程序存儲器、系統存儲器、或兩者。存儲器206可包括被配置為持有和/或容納一個或多個存儲器模塊的任何系統、設備或裝置。每個存儲器模塊可包括被配置為將程序指令和/或數據保留一段時間的任何系統、設備或裝置(例如,計算機可讀存儲介質)。用于配置系統200的操作的指令、邏輯或數據(例如,對諸如SVMM 216、SVMM安全代理217以及Ο/S內安全代理218的組件的配置)可駐留在存儲器206中,以由處理器208執行。
[0037]存儲器208可執行要由處理器的一個或多個內核執行的一個或多個代碼指令。處理器內核可遵循由代碼指令所指示的指令的程序順序。每個代碼指令可由處理器的一個或多個解碼器來處理。解碼器可生成諸如預先確定格式的固定寬度的微操作這樣的微操作以作為其輸出,或者可生成反映原始代碼指令的其他指令、微指令或控制信號。處理器208還可包括寄存器重命名邏輯和調度邏輯,其通常分配資源并排列與轉換指令相對應的操作以用于執行。在完成由所述代碼指令所指定的操作的執行后,處理器208內的后端邏輯可使指令退出(retire)。在一個實施例中,處理器208可允許無序執行但需要指令有序退出。處理器208內的退出邏輯可采取本領域技術人員已知的各種形式(例如,重新排序緩沖器等)。因此在代碼執行過程中,至少在由解碼器所生成的輸出、由寄存器重命名邏輯所利用的硬件寄存器和表格以及由執行邏輯所修改的任何寄存器方面,處理器208的處理器內核30發生變換。
[0038]保護服務器202可在網絡244上運行。在網絡244上運行的保護服務器202可實現云計算方案。保護服務器202可被配置為與電子設備204的元件進行通信來更新惡意軟件檢測規則和信息。保護服務器202可被配置為接收關于源自于電子設備204的可疑活動的信息,并確定這種可疑活動是否是惡意軟件感染的指示。操作系統212可包括一個或多個Ο/S內安全代理218。Ο/S內安全代理218可被配置為從保護服務器202接收監視和檢測規則,例如Ο/S內安全規則220。Ο/S內安全代理218可被配置為使用由保護服務器202接收到的Ο/S內安全規則220來監視和阻止電子設備上的可疑活動。Ο/S內安全代理218可被配置為將檢測到的可疑活動報告給保護服務器202。Ο/S內安全代理218可被配置為阻止惡意軟件操作并向保護服務器202報告這種阻止。如果系統200中存在一個以上的0/S內安全代理218,則每個Ο/S內安全代理218可被配置為執行捕獲、證實或與Ο/S內安全代理218相關聯的其他任務的指定部分。這些部分可由操作系統下層安全代理定義。例如,一個Ο/S內安全代理218可證實或調查MOV指令,而另一 Ο/S內安全代理218可證實或調查JMP指令。0/S內安全代理218可被配置為確定存儲器中特定頁的生命周期。例如,0/S內安全代理218可知道通常由操作系統212所使用的用來分配存儲器的頁的過程和步驟。類似地,0/S內安全代理218可知道通常由操作系統212所使用的將應用程序的映像加載到其加載程序中的過程和步驟。這種過程可遵循操作的靜態模式。因此,0/S內安全代理218可被配置為追蹤操作系統212的操作以確定是否遵循了給定的動作標準規程。0/S內安全代理218可與SVMM安全代理217通信,以確定由SVMM安全代理217所捕獲的操作是否生成了由0/S內安全代理218所觀察到的對應的預期行為。差異可指示惡意軟件已試圖執行在操作系統212的正常操作之外的系統功能。因此,例如0/S內安全代理218和SVMM安全代理217可確定所討論的頁是由惡意軟件直接加載到存儲器中,還是由操作系統加載程序加載。這種行為可使得0/S內安全代理218或SVMM安全代理217向保護服務器202報告信息,采用更具侵略性的捕獲和檢查,或采取任何其他糾正動作。
[0039]在一個實施例中,0/S內安全代理219可被配置為通過將其自身嵌入到操作系統212中而提供上下文信息。例如,0/S內安全代理219可被配置為將其自身或子組件注冊(register)為驅動程序過濾器,并將其自身附接到主驅動程序來確定該驅動程序看到或看不到什么。例如,通過作為附接到TFS.SYS的過濾器,0/S內安全代理219可被配置為報告操作系統212驅動程序所看到的文件I/O操作。
[0040]在另一實施例中,0/S內安全代理219可被配置為將從操作系統219內觀察到的這些信息提供給SVMM安全代理216或其它0/S下層安全代理,以用于與在操作系統下層觀察到的信息進行比較。兩組信息之間的差異可表明存在試圖隱藏其自身的惡意軟件。例如,0/S內安全代理219可掛鉤或過濾NDIS.SYS,并監視對特