專利名稱:用于檢測惡意軟件和管理惡意軟件相關信息的系統和方法
技術領域:
本發明總體上涉及計算機科學領域,具體而言涉及供不同安全應用程序使用的用于檢測惡意軟件和管理惡意軟件相關信息的系統、方法和計算機程序產品。
背景技術:
日趨復雜且迅速擴散的惡意的軟件,也被稱為惡意軟件(malware),給個人計算機、企業計算機網絡、個人通訊設備等帶來日益增加的安全威脅。惡意的軟件通常以文件傳輸的方式通過計算機網絡進行傳播,例如因特網、電子郵件或其它數據通訊工具。為了打擊惡意軟件的傳播,不同的安全軟件供應商開發了各種各樣的計算機和網絡安全產品,例如反病毒軟件、反間諜軟件、反釣魚軟件、反垃圾郵件軟件、防火墻應用程序。這些安全應用程序采用不同的方法來檢測惡意軟件和其它威脅。例如,簽名檢測技術利用從已知惡意軟件獲取的代碼模板來對代碼中的那些模板進行對象掃描。校驗信息完整性的技術使用已知的可信任的(干凈的)程序的代碼并且利用其創建干凈程序代碼的拷貝用于后續的與應用程序的對比。在操作系統更新之后,信息完整性校驗系統創建修改文件的長列表。校驗和(checksum)監測系統使用循環冗余碼(cyclic redundancy code, CRC)值來確定程序文件的完整性和可靠性。使用仿真技術在虛擬計算機環境中執行可疑程序以檢測惡意行為。由于各種安全應用程序是由不同的供應商開發的,使用不同的惡意軟件檢測技術,并且具有不同的數據通信和數據存儲格式,所以這些應用程序通常不能彼此兼容。此外,每個應用程序都維護自身的惡意軟件數據庫,供應商定期采用有關最新的惡意軟件和其它威脅的信息來更新該數據庫。由于彼此不兼容,這些安全產品不能與彼此共享與已經檢測出的惡意軟件有關的信息。例如,當遇到新型惡意軟件或威脅,但一種安全應用程序并未檢測出該惡意軟件或威脅,而另一種安全應用程序卻已經識別出該類惡意軟件時,共享與新威脅有關的信息將有助于阻止惡意軟件的傳播。因此,需要改進的系統來檢測和管理惡意軟件相關信息以及分配該信息給不同的安全應用程序。
發明內容
本發明公開了用于集中檢測、存儲和管理惡意軟件相關信息以及分配該信息給不同的安全應用程序的系統、方法和計算機程序產品。在一個示范性實施例中,集中安全管理系統包括安全信息的中央知識數據庫,例如有關不同種類的惡意軟件和其它安全威脅的信息。該系統進一步包括解釋器模塊,該模塊提供多個定制的XML接口以接收和解析來自不同供應商開發的遠程安全應用程序的信息查詢。該系統進一步包括多個本地和遠程分析模塊(引擎),該模塊(引擎)使用包含于所述中央知識數據庫中的惡意軟件相關信息分析來自所述安全應用程序的信息查詢。在一個示范性實施例中,集中安全系統積聚來自不同安全威脅的信息并且向各種安全應用程序和各種分析模塊提供到所積聚的信息的受控訪問。所述不同的安全應用程序和分析模塊可以包括但不限于計算機應用程序或者由不同供應商提供的在線服務;實施不同的惡意軟件檢測技術,例如簽名匹配、仿真、白名單或黑名單數據庫等;駐留在不同的計算機系統,例如個人計算機、公司工作站和服務器、個人通信設備(例如智能手機),網絡防火墻等;或者具備不同的系統訪問策略。在一個示范性實施例中,所述集中安全管理系統通過多個XML接口之一接收來自遠程安全應用程序的有關可疑對象的信息查詢。所述解釋器模塊從多個分析模塊中選擇兩個或兩個以上不同的分析模塊來分析可疑對象中惡意軟件的存在,并且將從所述遠程安全應用程序接收到的有關所述可疑對象的信息提供給所選取的分析模塊。分析模塊采用不同的惡意軟件分析技術來分析所述可疑對象。所述分析模塊將所述分析的結果返回給所述解釋器模塊。該結果包括多個與所述可疑對象關聯的信息參數,包括識別所述對象為惡意或者非惡意的參數。所述解釋器模塊通過所述多個XML接口之一將有關識別出的惡意對象的所述信息傳送給所述安全應用程序以響應所述查詢。在一個示范性實施例中,如果所述分析的結果是至少一個分析模塊識別所述可疑對象為惡意且另一個分析模塊識別所述可疑對象為非惡意,則所述解釋器模塊識別在該可疑對象的一個或多個信息參數與存儲在所述中央知識數據庫中的其它已知的惡意和非惡意對象的信息參數之間的關聯性。如果識別出的相關的惡意對象的數量超過識別出的相關的非惡意對象的數量,其中兩個相關的對象具有至少一個基本相似的信息參數,則所述解釋器模塊識別該可疑對象為惡意軟件,并將該分析的結果返回給所述安全應用程序。以上本發明示范性實施例的概要用于提供對于這些實施例的基本理解。本概要并非本發明所有設想方面的廣泛概述,且并非意圖確認所有實施例的關鍵或特征因素,也并非描述某些或者全部實施例的范圍。本概要的唯一目的是以簡化的形式提出有關一個或多個方面的一些概念作為隨后更加詳盡的描述的前奏。為了達到前述的及相關的目的,該一個或多個實施例包括了下文中充分描述且權利要求中具體指出的特征。下面的說明以及附圖詳細地闡述了一個或多個實施例的某些示例性的特征。然而,這些特征僅僅表明了本發明的不同方面的原理能夠得以應用的一些方式,并且本說明意圖包括本發明的所有這些方面及其等同物。
本發明的附圖并入并作為本說明書的一部分用于示例性說明本發明的一個或多個示范性實施例。該附圖結合下面的詳細描述,用來解釋本發明實施例的原理及實施方式。附圖中
圖1示出了根據一個示范性實施例計算機系統的示意圖,該計算機系統用于實現用于檢測惡意軟件和管理惡意軟件相關信息的系統;
圖2示出了根據一個示范性實施例,用于檢測惡意軟件和管理惡意軟件相關信息的系統的示意圖3A、圖;3B、圖3C示出了根據不同的示范性實施例,用于存儲惡意軟件相關信息的對象數據結構的示意圖4示出了根據一個示范性實施例,用于檢測惡意軟件和管理惡意軟件相關信息的方法的流程圖;圖5示出了根據一個示范性實施例,用于檢測惡意軟件和管理惡意軟件相關信息的另一種方法的流程圖6示出了根據一個示范性實施例,用于存儲和管理惡意軟件相關信息的面向對象的類的數據結構的示意圖。
具體實施例方式本文將圍繞供多個不同安全應用程序使用的用于惡意軟件相關信息的集中安全管理的系統、方法和計算機程序產品來描述本發明的示范性實施例。本領域的普通技術人員將會意識到下面的描述僅僅是說明性的且并非意圖作任何形式的限定。受益于本申請的本領域的技術人員將易于獲得其他實施例的啟示。現在將詳盡地指出如何實施附圖所示的本發明的具體實施例。貫穿附圖及下面的描述,相同的附圖標記用于盡可能的表示相同或類似的項目。圖1描述了計算機系統5的一個示范性實施例,例如網絡服務器,其適用于實現本發明的集中安全系統,以及其它可以正在使用該安全系統的服務的計算設備,包括但不限于運行安全應用程序的個人電腦和服務器、移動通信設備、網絡服務器及其它設備。正如圖ι所示,計算機系統5可以包括一個或多個處理器15、存儲器20、一個或多個硬盤驅動器 30、光盤驅動器35、串行端口 40、圖形卡45、聲卡50和網卡55,上述設備通過系統總線10 相連。系統總線10可以是幾種類型總線結構的任意類型,包括存儲器總線或存儲控制器、 外圍總線和本地總線,上述總線使用各已知的總線結構的任意一種。處理器15可以包括一個或多個htel Core 2 Quad 2. 33 GHz處理器或者其它類型的微處理器。系統存儲器20可以包括只讀存儲器(ROM) 21和隨機存取存儲器(RAM) 23。存儲器20可以在DRAM (動態RAM)、EPROM、EEPR0M、閃存或者其它類型的存儲器結構中實現。 ROM 21存儲基本的輸入/輸出系統22 (BIOS),其包含例如啟動期間有助于在計算機系統 5的組成部件之間傳遞信息的基本例程。RAM 23存儲操作系統M (0S),例如Windows XP Professional 或者其它類型的操作系統,其負責計算機系統5中的進程的管理與協調以及硬件資源的分配與共享。系統存儲器20還存儲在所述計算機系統5上運行的應用程序和程序25,例如安全應用程序。系統存儲器20還存儲程序25使用的各種運行時(runtime) 數據26。計算機系統5可以進一步包括硬盤驅動器30,例如1太字節(terabyte) SATA 磁性硬盤驅動器(HDD),以及用于讀取或寫入可移動光盤的光盤驅動器35,例如⑶-ROM、 DVD-ROM或者其它光學介質。驅動器30和35以及與之相關聯的計算機可讀介質提供對于計算機可讀指令、數據結構、應用程序以及實施在此披露的算法和方法的程序模塊/子程序的非易失性存儲。盡管示范的計算機系統5使用磁盤和光盤,本領域的技術人員仍應意識到可存儲可由計算機系統5所訪問的數據的其它類型的計算機可讀介質也可以應用于所述計算機系統的替代性實施例中,例如盒式磁帶、閃存卡、數字視頻光碟、RAMs, ROMs、 EPROMs和其它類型的存儲器。計算機系統5進一步包括多個串行端口 40,例如通用串行總線(USB),其用于連接數據輸入設備75,例如鍵盤、鼠標、觸摸板及其它。串行端口 40還可用于連接數據輸出設備 80,例如打印機、掃描儀及其它,以及用于連接其它外圍設備85,例如外部數據存儲設備等。計算機系統5還可以包括圖形卡45,例如nVidia GeForce GT 240M或者其它視頻卡,其用于與監視器60或者其它視頻再現設備聯接。計算機系統5還可以包括聲卡50,其用于經由內置或外置的揚聲器65再現聲音。此外,系統5可以包括網卡55,例如Khernet、WiFi、 GSM、藍牙或者其它有線、無線或蜂窩網絡接口,用于將計算機系統5連接到網絡70,例如因特網(Internet)。圖2示出了本發明的集中安全系統200的示范性實施例的示意性框圖。正如圖中描繪的,系統200可以作為連接到因特網、內聯網或者其它公共或專用網絡的網絡服務器或者一組服務器來實現。系統200包括管理模塊220、解釋器模塊M0、中央知識數據庫230 和各種內部分析模塊250及外部分析模塊沈0。內部分析模塊250對于系統200而言可以是本地的,例如,所述內部分析模塊250部署在同一服務器或同一局域網中。外部分析模塊 260通常遠離系統200,例如,所述外部分析模塊260部署在遠程應用服務器中。不同的模塊可以使用硬件、軟件或其結合來實現。在一個實施例中,系統200可以被駐留在遠程個人計算機及工作站210中的不同的外部安全應用程序215、外部分析模塊沈0、第三方服務器 270、移動通信設備(例如智能手機)、網絡防火墻以及其它受到各種安全威脅和攻擊的設備所訪問。在一個示范性實施例中,管理模塊220控制對安全系統200的訪問。例如,管理模塊220可以為不同類型的安全應用程序215、分析模塊250及沈0、第三方服務器270或者其它向系統200注冊的實體維護多個訪問策略。每個訪問策略可以包含與使用系統200 的服務的實體有關的信息,例如公司名稱、由該公司持有的用于訪問所述系統200的用戶許可的數量、由該公司使用的訪問所述系統200的安全應用程序的類型以及給予該實體的訪問權的等級。例如,完全訪問權可以允許該給定的實體對來自所述安全系統200的信息發出無限制數量的請求,以及允許該給定的實體將關于新威脅的信息提交給安全系統200。 相比而言,部分訪問權將允許該實體信息發出有限制數量的請求。在操作過程中,管理模塊 220從在所述系統注冊的實體接收全部信息查詢及其它類型的通信,識別該實體,查驗相關聯的訪問策略,并將所述查詢轉發給解釋器模塊M0。在一個示范性實施例中,解釋器模塊240執行對于來自不同安全應用程序215的信息查詢的解釋。總體而言,信息查詢可以包含關于安全應用程序215遇到的安全問題或者可疑文檔、電子郵件消息、鏈接等的描述,安全應用程序215不能決定將其分類為惡意或者非惡意。由于不同的安全應用程序215可以由不同的軟件供應商開發,可以使用不同的程序語言,可以在不同的平臺上運行,并且可以具有不同的通信協議,所以解釋器模塊MO 提供多個允許與不同安全應用程序215通信的定制的可擴展標示語言(XML)接口。例如,管理模塊220可以將該查詢所來自的應用程序的識別信息提供給解釋器模塊M0,解釋器模塊240將選擇適當的XML接口以解析并處理來自該安全應用程序的查詢。通過這種方式, 安全系統200為不同供應商開發的不同安全應用程序215和尋找與未知類型的惡意軟件及其它威脅有關的信息的其它實體提供跨平臺的支持。在另一個示范性實施例中,解釋器模塊240將對信息查詢的分析委托給不同的模塊250及沈0。例如,解釋器模塊240可以請求一個或多個可使用的分析模塊來分析從安全應用程序215接收到的有關可疑文檔或活動的信息。由于不同的分析模塊250及260可以配置不同的惡意軟件檢測技術來分析并檢測惡意的軟件或者其它類型的威脅,所以所述分析模塊可能需要來自中央數據庫230的不同的惡意軟件相關信息以便確定所述可疑文檔或活動是否是惡意的,對該類型的威脅進行分類,以及確定適當的防御行為。為了達到上述目的,解釋器模塊240提供不同類型的XML接口來與這些分析模塊進行通信。例如,解釋器模塊240可以使用定制XML接口將可疑對象提供給仿真模塊250,然后使用該XML接口以請求/接收來自中央知識數據庫230的供所述分析模塊使用的附加信息。與此對比,解釋器模塊240可以使用與之不同的XML接口來將可疑網絡活動的記錄(log)提供給記錄解析模塊260,然后使用該XML接口以請求/接收來自知識數據庫230的供所述分析模塊使用的附加信息。通過使用定制的XML接口,系統200可以容易地將提供不同類型的分析邏輯來檢測惡意軟件的不同的分析模塊250及260集成起來。在一個示范性實施例中,分析模塊250及260包含處理邏輯以分析并歸類安全應用程序215不能識別的安全威脅。這些模塊能夠在系統200的內部運行(如模塊250),也能夠在系統200的外部運行(如模塊沈0)。在一個示范性實施例中,分析模塊250及260可以包括一個或多個服務器以執行由不同軟件開發商開發的幾種不同的反病毒引擎。每個反病毒引擎可以維護自身的包含惡意軟件相關信息的本地數據庫沈5。解釋器模塊240可配置為使用不同的可用反病毒引擎來同時測試可疑文檔。換句話說,同一可疑文檔實際上可同時被兩個或多個分析模塊所分析。表明該可疑文檔是否為惡意的以及如果該可疑文檔是惡意時所必須采取的防御行為的分析結果被傳送給解釋器模塊M0,解釋器模塊240轉而將該分析的結果轉發給發起該查詢的安全應用程序215。此外,正如在此將要更詳細地描述的那樣,解釋器模塊240可以對新的惡意文檔進行分類并將其添加到中央知識數據庫230用于今后的參照。在另一個示范性實施例中,另外的分析模塊250或260可以包括仿真引擎,該仿真引擎在安全虛擬環境中執行由解釋器模塊240提供的可疑文檔。該虛擬環境可以配置成與計算機210的初始環境相應,在此初始環境中,安全應用程序215根據管理模塊220中的有關計算機210的可用信息發現該可疑文檔。例如,如果計算機210運行Windows XP 操作系統,則該虛擬環境可以被創建成模擬Windows XP 操作系統。使用仿真技術檢測惡意軟件的示范性系統披露于共有的專利號為7,614,084的美國專利中,在此通過引用的方式將其全文合并到本文中。表明該可疑文檔是否為惡意的以及如果該文檔是惡意時所必須采取的防御行為的分析結果由解釋器模塊240傳送給應用程序215。此外,解釋器模塊240可以對新的惡意文檔進行分類并將其添加到中央數據庫230用于今后的參照。在另一個示范性實施例中,另外的分析模塊250或260可以包括簽名分析器引擎, 該引擎將安全應用程序215提供的可疑文檔的簽名(例如散表)與包含已知惡意文檔的簽名的其本地數據庫265或者包含在中央數據庫230中的簽名進行比較。如果簽名分析器引擎確定該可疑文檔的簽名與已知惡意軟件的簽名相匹配,則該可疑文檔被識別為那個類型的惡意軟件,報告給解釋器模塊對0。解釋器模塊240可以轉而在中央數據庫230中檢查對于此特定類型的惡意軟件必須采取何種類型的防御行為。然后,解釋器模塊240將與已檢測到的惡意軟件有關的信息和與需要采取的保護計算機210免受該類型惡意軟件攻擊的行為類型有關的信息傳達給安全應用程序215。如果已檢測到的惡意軟件是新類型的惡意軟件,則解釋器模塊240可以對該惡意軟件進行適當的分類,并將其添加到中央知識數據庫 230用于今后的參照。
在另一個示范性實施例中,分析模塊250或260可以包括記錄解析器引擎。該引擎可以配置為分析在計算機210或相關聯的網絡中安全應用程序215所檢測到的可疑程序的執行記錄或者可疑網絡活動的記錄。程序執行記錄通常表明了可疑程序執行的一系列事件,例如可疑的系統呼叫或者存儲器訪問。網絡活動記錄通常表明了一系列可疑網絡活動, 例如異常流量、未授權的登錄嘗試或文檔訪問、竊聽活動等。如果記錄解析器引擎識別出惡意的程序活動或網絡攻擊,則將其報告給解釋器模塊對0,解釋器模塊240轉而將此報告連同對于該惡意的程序或網絡威脅所必須采取的防御行為類型的信息一起報告給應用程序 215。此外,該惡意的程序或網絡活動可以被解釋器模塊240分類并添加到中央數據庫230 中。然而在另一個示范性實施例中,安全系統200可以配置為向托管在遠程服務器 270上的第三方專家系統提供有關已知或新近發現的惡意軟件及計算機威脅的信息。例如,所述第三方專家系統270可以擁有自身的本地惡意軟件數據庫275,但是可能需要用安全系統200積累的有關新型惡意軟件的當前信息來對其進行更新。在此種情況下,服務器 270可以定期向系統200查詢有關新型惡意軟件的信息或者收集有關不同類型惡意軟件及其它威脅的統計信息。管理模塊220將確定服務器270是否可以使用服務器訪問策略向系統注冊,并進一步將授權的查詢轉發給解釋器模塊M0。模塊240使用適當的XML接口接收該請求,其將會解析來自服務器270的信息查詢,然后向中央知識數據庫230查詢所請求的有關特定類型惡意軟件的信息。檢索到的信息采用適當的XML接口被轉發給服務器270。在一個示范性實施例中,安全系統200可易于擴展,以適應數量不斷增長的不同的安全應用程序215和使用系統的服務的遠程服務器270。完全相同的分析模塊250及260 的數量可以增加或者減少以便提高安全系統200的處理能力及效率。例如,所述系統可以被調整以包括三個運行仿真引擎的服務器、五個運行簽名分析器引擎的服務器、兩個運行記錄解析器引擎的服務器以及其它類型的分析模塊,其數量取決于來自不同安全應用程序 215和服務器270的信息查詢量。在一個示范性實施例中,解釋器模塊240可被配置為管理所有分析模塊之間的任務分配,以便使用已知技術來優化系統效率及實現內部和外部分析模塊之間的均衡負載分布。在一個示范性實施例中,中央知識數據庫230可以包括一個或多個SQL服務器,解釋器模塊240使用XML接口可以訪問該服務器。總體而言,該數據庫230是與已知安全威脅有關的信息的存儲處,該已知的安全威脅例如計算機病毒、間諜軟件、垃圾郵件、網絡釣魚腳本、網絡攻擊和其它類型的安全威脅;也是與針對上述安全威脅的不同類型防御行為有關的信息的存儲處,該防御行為例如已檢測到的惡意軟件的隔離或排除、被感染文檔的終止執行、因特網或電子郵件服務的阻斷等。另外,中央知識數據庫230可以包含白名單數據庫,其包含有關非惡意對象的信息,例如文檔、腳本、插件、應用程序、網站等。而且,中央知識數據庫230可以包括與利用安全系統服務的不同類型安全應用程序有關的信息,這些信息包括軟件開發商/供應商信息、軟件版本信息、本地惡意軟件數據庫更新狀態、訪問等級(完全,有限等)、應用程序故障排除信息等。此外,該數據庫230包含有關本地分析模塊 250和遠程分析模塊260的信息,包括軟件開發商/供應商信息、軟件版本信息、本地惡意軟件數據庫更新狀態、模塊所使用的分析技術(例如簽名掃描、仿真、白名單知識數據庫等)、 模塊故障排除信息等。解釋器模塊240使用分析模塊250及260檢測到的有關新型惡意及非惡意對象的信息和其它信息來定期更新中央知識數據庫230。在一個示范性實施例中,有關各種惡意對象即惡意文檔、程序、腳本、網站等的信息,可以以類的對象的形式存儲于系統200中。圖3A-圖3C描繪了用于在安全系統200內存儲惡意軟件相關的信息的類的實施例。圖3A示出了在該類中所有參數的信息可以被分成兩部分基本信息310和補充信息320。基本信息310可以包括例如有關惡意對象(文檔名稱及文檔路徑)類型的信息、對象源、該對象在何地何時被創建、該對象被發送給誰等。描述此對象的所有其它參數包括補充信息320。例如,該補充信息可以包括但不限于惡意對象的MD5散表(hash),其可以用于該對象的簽名分析;非常易受此類型惡意對象影響的系統組件的識別;與為保護計算機系統免受此類型對象的攻擊所必須采取的防御行為有關的信息,例如該惡意對象的隔離或排除、受感染文檔的終止執行、因特網或電子郵件訪問的阻斷等。在一個示范性實施例中,分析模塊250及260為每個已分析的可疑文檔或威脅創建新類型的對象。分析模塊在惡意軟件分析期間完成對所有基本和所有補充信息的收集并將其通過適當的XML接口發送給解釋器模塊M0。由于這些分析模塊執行不同類型的分析并且使用來自中央知識數據庫230的不同信息,所以對于相同惡意文檔或威脅所產生的數據對象可能是不同的;這些所產生的數據對象可能有不同數目的字段或者在相同的字段中有不同的信息。例如,如圖3B中所示,分析模塊250及260可以為同一可疑文檔(文檔名1) 創建兩個不同的對象330和340,然而,其余的關于這些對象的基本及補充信息可以是不同的;例如,這些對象可以有不同的文檔路徑,其歸因于有關此可疑文檔的信息查詢來自不同的安全應用程序;這些對象可以有不同的MD5散表值,其歸因于這些文檔可能已經被改變。 因此,在這些信息可以被添加到中央知識數據庫230以及被報告給安全應用程序215之前, 解釋器模塊240必須確定這些對象是相關的并且一定是彼此相互關聯的。在一個示范性實施例中,這些相關的對象可以由解釋器模塊240進行分析并基于匹配參數加以關聯以獲得供非匹配參數使用的全部替代選擇。例如,能夠通過名稱來相互關聯對象330和340,并且能夠發現用于具有相同名稱的對象的所有MD5散表,正如圖中所示。類似地,解釋器模塊240能夠通過MD5散表值使對象350和360相互關聯,并且在用戶系統中獲取全部替代選擇的名稱(以不同的名稱,在不同的位置),正如圖3C中所示。通過這種方式,相關的對象,包括惡意和非惡意的對象,可以被識別并且彼此相互關聯。如果在相互關聯的過程中已發現新的參數,則解釋器模塊240用該新參數在中央知識數據庫230 中為該對象更新補充信息字段,并且向請求該對象的安全應用程序提供更新后的信息。圖4描繪了解釋器模塊240的操作算法的一個示范性實施例。在步驟410中,解釋器模塊從安全應用程序215接收關于可疑對象(例如文檔、鏈接或者活動記錄)的信息查詢。 在步驟420中,解釋器模塊選擇一個或者多個分析模塊250或260用來分析該給定查詢,并且將該查詢通過相關聯的XML接口轉發給所選取的模塊。在分析模塊分析該對象的期間, 解釋器模塊可以從所選取的分析模塊接收對于來自中央數據庫230的信息的請求。解釋器模塊240將所有來自數據庫230的對于該可疑對象的分析為必要的可用信息提供給分析模塊。如果在步驟430中,分析模塊提供不一致的分析結果,即一個分析模塊識別該可疑對象為惡意的且另一分析模塊識別該對象為非惡意的,則在步驟440中,解釋器模塊240可以識別分析模塊所提供的不一致結果之間的關聯性,以便最終確定該對象是否為惡意的。在一個示范性實施例中,可以使用統計分析來識別關聯性(其示例被示出于圖5中)。在其它實施例中,專家系統、模糊邏輯規則、遺傳算法或者披露于專利號為7,530,106的共有美國專利中的安全風險評級系統,均可以用于將不一致的結果統一起來,該美國專利再次通過引用的方式合并到本文中。如果所有的分析結果是一致的且在步驟450中,該可疑對象被所有的分析模塊識別為非惡意的,則過程移動到步驟490,在此步驟中,解釋器模塊將該分析結果報告給請求該結果的安全應用程序。如果在步驟450中,該對象被所有的分析模塊識別為惡意的,則解釋器模塊確定是否檢測到了新型惡意軟件,例如,通過檢查在中央知識數據庫230中是否有關于此惡意對象的任何信息。如果在中央知識數據庫230中沒有關于所檢測到的惡意對象的信息,則在步驟470中,解釋器模塊在數據庫230中為該新的惡意對象創建惡意軟件的新的類。如果該對象不是新的,則在步驟480中,解釋器模塊使用分析模塊在分析該對象的期間所發現的任何新參數來更新中央數據庫記錄。最后,在步驟490,解釋器模塊將分析結果報告給發起該信息查詢的安全應用程序215。圖5示出了由解釋器模塊240執行的統計分析算法的一個示范性實施例,該算法用于識別從兩個或多個分析模塊接收的不一致的分析結果之間的關聯性。在步驟510中, 解釋器模塊從兩個或多個分析模塊接收不一致的分析結果。當某些分析模塊識別可疑對象為惡意的而其它的分析模塊識別該可疑對象為非惡意的時候,此分析結果不一致。例如, 簽名分析器可能確定可疑文檔為非惡意的,而仿真引擎可能確定同一文檔表現出惡意的活動。在此情況下,解釋器模塊可以使用統計分析來識別該可疑對象的不同參數與存儲在中央數據庫230中的其它惡意及非惡意對象的相似參數之間的關聯性。為達到上述目的,在步驟520中,解釋器模塊選擇該可疑對象的基本或者補充參數(310或320 )之一。例如,該給定可疑對象的文檔路徑(或鏈接)可以被選作適合的關聯參數。在步驟530,解釋器模塊通過在中央知識數據庫230中搜尋具有基本相似的文檔路徑參數的其它對象(例如與可疑對象下載自同一網站的對象)來執行統計分析。如果在步驟540中,解釋器模塊確定具有大體相似的文檔路徑參數的已識別惡意對象的總數超過具有大體相似的文檔路徑的非惡意對象的總數一定的百分比(例如至少25%)或者其它標準,則解釋器模塊可以得出該可疑對象為惡意的結論,同時流程轉到步驟570。然而,如果在步驟540中,解釋器模塊沒有在該可疑對象與中央數據庫中的其它對象的文檔路徑參數之間發現任何關聯性,因而也就不能得出該可疑對象是否為惡意的結論,則解釋器模塊可以在步驟520中選擇其它參數,并且使用該參數重復所述統計分析。如果在步驟550中所有的參數都已經被使用,但是所述統計分析沒有得出該對象是否為惡意的確鑿答案,則在步驟560中發送所有的分析結果給專家人工進行審查。接下來,在步驟570中,解釋器模塊在中央數據庫中存儲/更新統計分析的結果或者專家人工審查的結果,并在步驟580中,將該分析結果報告給發起該信息查詢的安全應用程序215。圖6示出了由解釋器模塊240使用的類數據結構的一個示范性實施例,用于實例化圖3中所示的用于存儲惡意軟件相關信息的類用例(class Case)的對象。類用例610 為存儲于中央數據庫230中的對象定義多個參數620 (基本的和補充的),并且定義多個函數630用于訪問及修改所述對象的參數。在一個示范性實施例中,所述類可以使用XML格式來定義,并且可以使用XML接口來訪問各參數。以下提供對于類用例不同函數及其使用的簡要描述。
例如,解釋器模塊240可以使用函數CaseLoad 640通過不同的參數字段來搜索中央數據庫230中的對象。例如,可以在針對可疑對象的統計分析期間以及對象更新期間使用該函數。該函數返回具有一個或多個所請求的搜索參數的對象的列表。可以使用任意以下參數來搜索該對象
case_id 整數(integer)-唯一的對象標識符;
file_name 字符串(string)-該對象的名稱; date_open 日期時間(datatime)-該對象被創建的日期及時間; date_lastop 日期時間(datatime)-此對象的最后修改日期及時間; current_status 整數(integer)-該對象(惡意或非惡意)的當前狀態); compl_level 整數(integer)-該對象的復雜等級; antivirus 整數(integer)-檢測此對象的分析模塊的標識符; file_path 字符串(string)-關于對象源路徑的信息(例如URL); MD5-sum 整數(integer)-該對象的MD5散表;以及 problem 字符串(string)-惡意對象行為的描述。在例如分析模塊提供有關此對象的新信息的時候,解釋器模塊240可以使用函數 CaseUpdate 650來修改/更新由casejd識別的對象的參數。解釋器模塊可以使用函數 CaseClose 660來存儲將更新存儲于中央數據庫中并關閉用casejd識別的對象。通過其他描述存儲于中央數據庫230中的惡意和非惡意對象的參數以及允許解釋器模塊240訪問、搜索和修改存儲于類用例所實例化的對象中的數據的附加函數,可以對以上類結構進行擴展。在一個示范性實施例中,內部分析模塊250也支持相同的類結構, 該類結構簡化了在這些分析模塊、解釋器模塊和中央數據庫之間的信息交換。為了與配置其它類結構以維護和傳輸數據的外部分析模塊進行通信,解釋器模塊可以使XML接口定制為以本地格式接收來自那些分析模塊的數據并將接收到的數據映射為類用例的格式以在系統200中加以處理和存儲。本發明的集中安全系統相對于現有技術有很多優勢。該集中安全系統的一個優勢是,其為配置了由不同供應商開發的不同的安全和反病毒軟件、防火墻及其它產品的公司安全架構的安裝提供更大的靈活性。例如,公司網絡中的安全應用程序可以具有安全規則, 所述安全規則指定如果用戶的工作站之一檢測到未知但可疑的活動,則該用戶對于因特網和電子郵件的訪問必須被阻斷直到已檢測到的威脅的實際危險被安全人員所確定。然而, 如果安全應用程序有權訪問本發明的集中安全系統,則該應用程序可以使用有關已檢測到的活動的可用信息查詢所述安全系統,并實時接收有關已檢測到的活動實際上是否為惡意的響應以及關于適當防御行為的信息。所述安全系統提高了不同安全應用程序保護公司網絡免受惡意軟件和其它威脅攻擊的效力。在不同的實施例中,在此描述的算法和方法可以通過硬件、軟件、固件(firmware ) 或者其任意組合來實現。如果以軟件實現,可以一條或多條指令或代碼的形式將所述函數存儲在非暫時性的計算機可讀介質上。計算機可讀介質包括計算機存儲器和方便計算機程序從一處傳遞到另一處的通信介質。存儲介質可以是可被計算機訪問的任何可用介質。根據實施例但并非限定,這樣的計算機可讀介質包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲器、磁盤存儲器或其它磁性存儲器設備或者可用于以指令或數據結構的形式攜帶或存儲所需的程序代碼并且可被計算機訪問的任何其它介質。此外,任何連接均可稱為計算機可讀介質。例如,如果從網站、服務器或其它遠程資源傳輸軟件是使用同軸電纜、光纜、雙絞線、數字用戶專用線(DSL)或者諸如紅外線、無線電及微波之類的無線技術的方式,則該連接方式包括在介質的定義中。為了清楚起見,在此并未對實施本發明的所有常規特征加以示出和描述。應當意識到在任何這類實際的實施方式的開發過程中,必須做出大量特定的實施方式決策以實現開發者的特定目標,同時應當意識到這些特定目標將隨實施方式的不同以及開發者的不同而改變。而且,應當意識到這類開發工作可能是復雜且耗費時間的,但是對于受益于本文公開內容的本領域的普通技術人員而言,都將是常規的工程任務。此外,可以理解的是在此使用的措辭或術語是為了描述而非限定的目的,以便本領域的技術人員根據在此提出的教導及指引并結合相關領域技術人員所掌握的知識來解讀本說明書中的措辭或術語。而且,除非如此明確的予以闡述,否則本說明書或權利要求中的任何術語均并非意圖歸結為非常規或者特殊的含義。在此披露的各種實施例包含現在及將來與在此通過示例的方式所提及的已知組件的已知等同物。而且,盡管已經示出及描述了實施例及其應用,但對于受益于本發明的本領域的技術人員而言顯而易見的是,在不脫離本申請中所披露的發明構思的情況下,比以上提及的更多的修改是可能的。
權利要求
1.一種用于檢測惡意軟件的計算機實施方法,所述方法包括從多個分析引擎中選擇兩個或者多個不同的分析引擎用于分析可疑對象是否存在惡意軟件,其中不同的分析引擎使用不同的惡意軟件分析技術;將關于所述可疑對象的信息提供給所述所選擇的分析引擎;從所述所選擇的分析引擎接收分析所述可疑對象的結果,其中所述結果包括多個與所述可疑對象相關聯的信息參數,所述信息參數包括識別所述對象為惡意或非惡意的參數;如果至少一個分析引擎識別所述可疑對象為惡意的且至少一個其它分析引擎識別所述可疑對象為非惡意的,則識別所述可疑對象的一個或多個信息參數與存儲于知識數據庫中的其它已知惡意和非惡意對象的信息參數之間的關聯性;以及如果已識別的關聯的惡意對象的數量超過已識別的關聯的非惡意對象的數量,則識別所述可疑對象為惡意軟件,其中兩個關聯的對象具有至少一個基本相似的信息參數。
2.根據權利要求1所述的方法,進一步包括提供多個定制為接收來自不同安全應用程序的數據并傳送數據給不同安全應用程序的不同的第一 XML接口 ;以及提供多個定制為接收來自不同分析引擎的數據并傳送數據給不同分析引擎的不同的第二 XML接口。
3.根據權利要求2所述的方法,進一步包括通過所述多個第一 XML接口之一從遠程安全應用程序接收關于所述可疑對象的信息查詢;以及通過所述多個第一 XML接口之一向所述安全應用程序傳送關于已識別的惡意對象的信息以響應所述查詢。
4.根據權利要求2所述的方法,其中至少部分基于在所述多個不同分析引擎之間的處理負載的均衡分布,從所述多個分析引擎中選擇兩個或者多個分析引擎。
5.根據權利要求1所述的方法,其中所述所選擇的兩個或多個分析引擎基本上同時分析所述可疑對象是否存在惡意軟件。
6.根據權利要求2所述的方法,進一步包括在所述所選擇的分析引擎分析所述可疑對象期間,通過所述多個第二 XML接口之一從所述所選擇的分析引擎接收對于關于已知惡意對象的信息的請求;從所述知識數據庫檢索所述被請求的信息;以及通過所述多個第二 XML接口之一傳送所述檢索到的信息給所述所選擇的分析引擎以供在惡意軟件分析期間使用。
7.根據權利要求1所述的方法,進一步包括如果兩個或多個所選擇的分析引擎識別所述可疑對象為惡意的,但是提供新的或不同的關于所述已識別的惡意對象的信息參數, 則在所述知識數據庫中識別一個或多個關聯的惡意對象,并使用所述新的或不同的信息參數來更新所述已識別的關聯的惡意對象。
8.用于檢測惡意軟件的系統,所述系統包括存儲器,其配置為存儲關于已知的惡意和非惡意對象的信息的知識數據庫;以及處理器,其與所述存儲器耦合,所述處理器配置為從多個分析引擎中選擇兩個或者多個不同的分析引擎用于分析可疑對象是否存在惡意軟件,其中不同的分析引擎使用不同的惡意軟件分析技術;將關于所述可疑對象的信息提供給所述所選擇的分析引擎;從所述所選擇的分析引擎接收分析所述可疑對象的結果,其中所述結果包括多個與所述可疑對象相關聯的信息參數,所述信息參數包括識別所述對象為惡意或非惡意的參數;如果至少一個分析引擎識別所述可疑對象為惡意的且至少一個其它分析引擎識別所述可疑對象為非惡意的,則識別所述可疑對象的一個或多個信息參數與存儲于所述知識數據庫中的其它已知惡意和非惡意對象的信息參數之間的關聯性;以及如果已識別的關聯的惡意對象的數量超過已識別的關聯的非惡意對象的數量,則識別所述可疑對象為惡意軟件,其中兩個關聯的對象具有至少一個基本相似的信息參數。
9.根據權利要求8所述的系統,其中所述處理器進一步配置為提供多個定制為接收來自不同安全應用程序的數據并傳送數據給不同安全應用程序的不同的第一 XML接口 ;以及提供多個定制為接收來自不同分析引擎的數據并傳送數據給不同分析引擎的不同的第二 XML接口。
10.根據權利要求9所述的系統,其中所述處理器進一步配置為通過所述多個第一 XML接口之一從遠程安全應用程序接收關于所述可疑對象的信息查詢;以及通過所述多個第一 XML接口之一向所述安全應用程序傳送關于已識別的惡意對象的信息以響應所述查詢。
11.根據權利要求9所述的系統,其中至少部分基于在所述多個不同分析引擎之間的處理負載的均衡分布,從所述多個分析引擎選擇兩個或者多個分析引擎。
12.根據權利要求8所述的系統,其中所述所選擇的兩個或多個分析引擎基本上同時分析所述可疑對象是否存在惡意軟件。
13.根據權利要求9所述的系統,其中所述處理器進一步配置為在所選擇的分析引擎分析所述可疑對象期間,通過所述多個第二 XML接口之一從所述所選擇的分析引擎接收對于關于已知惡意對象的信息的請求;從所述知識數據庫檢索所述被請求的信息;以及通過所述多個第二 XML接口之一傳送所述檢索到的信息給所述所選擇的分析引擎以供在惡意軟件分析期間使用。
14.根據權利要求8所述的系統,其中所述處理器進一步配置為如果兩個或多個所選擇的分析引擎識別所述可疑對象為惡意的,但是提供新的或不同的關于所述已識別的惡意對象的信息參數,則在所述知識數據庫中識別一個或多個關聯的惡意對象,并使用所述新的或不同的信息參數來更新所述已識別的關聯的惡意對象。
15.嵌入在非暫時性的計算機可讀存儲介質中的計算機程序產品,所述計算機可讀存儲介質包括用于檢測惡意軟件的計算機可執行指令,所述介質包括指令用于從多個分析引擎中選擇兩個或者多個不同的分析引擎用于分析可疑對象是否存在惡意軟件,其中不同的分析引擎使用不同的惡意軟件分析技術;將關于所述可疑對象的信息提供給所述所選擇的分析引擎;從所述所選擇的分析引擎接收分析所述可疑對象的結果,其中所述結果包括多個與所述可疑對象相關聯的信息參數,所述信息參數包括識別所述對象為惡意或非惡意的參數;如果至少一個分析引擎識別所述可疑對象為惡意的且至少一個其它分析引擎識別所述可疑對象為非惡意的,則識別所述可疑對象的一個或多個信息參數與存儲于知識數據庫中的其它已知惡意和非惡意對象的信息參數之間的關聯性;以及如果已識別的關聯的惡意對象的數量超過已識別的關聯的非惡意對象的數量,則識別所述可疑對象為惡意軟件,其中兩個關聯的對象具有至少一個基本相似的信息參數。
16.根據權利要求15所述的計算機程序產品,進一步包括指令用于提供多個定制為接收來自不同安全應用程序的數據并傳送數據給不同安全應用程序的不同的第一 XML接口 ;以及提供多個定制為接收來自不同分析引擎的數據并傳送數據給不同分析引擎的不同的第二 XML接口。
17.根據權利要求16所述的計算機程序產品,進一步包括指令用于通過所述多個第一 XML接口之一從遠程安全應用程序接收關于所述可疑對象的信息查詢;以及通過所述多個第一 XML接口之一向所述安全應用程序傳送關于已識別的惡意對象的信息以響應所述查詢。
18.根據權利要求16所述的計算機程序產品,其中至少部分基于所述多個不同分析引擎之間的處理負載的均衡分布,從所述多個分析引擎選擇兩個或者多個分析引擎。
19.根據權利要求15所述的計算機程序產品,其中所述所選擇的兩個或多個分析引擎基本上同時分析所述可疑對象是否存在惡意軟件。
20.根據權利要求16所述的計算機程序產品,進一步包括指令用于在所述所選擇的分析引擎分析所述可疑對象期間,通過所述多個第二 XML接口之一從所選擇的分析引擎接收對于關于已知惡意對象的信息的請求;從所述知識數據庫檢索所述被請求的信息;以及通過所述多個第二 XML接口之一傳送所述檢索到的信息給所述所選擇的分析引擎以供在惡意軟件分析期間使用。
全文摘要
本發明公開了用于集中檢測和管理供不同安全應用程序使用的惡意軟件相關信息的系統、方法和計算機程序產品。在一個示例中,集中安全管理系統包括安全信息的中央知識數據庫,該安全信息例如與不同類型的惡意軟件及其它安全威脅有關的信息。該系統進一步包括解釋器模塊,該解釋器模塊提供多個定制的可擴展標示語言(XML)接口來接收和解析來自不同供應商開發的遠程安全應用程序的信息查詢。該系統進一步包括多個本地及遠程分析模塊(引擎),其使用包含在中央知識數據庫中的惡意軟件相關信息來分析來自安全應用程序的信息查詢。
文檔編號G06F21/56GK102332072SQ20111033978
公開日2012年1月25日 申請日期2011年11月1日 優先權日2010年11月1日
發明者奧列格·V·乍特瑟 申請人:卡巴斯基實驗室封閉式股份公司