專利名稱:用于檢測復雜惡意軟件的系統(tǒng)和方法
技術領域:
本發(fā)明涉及計算機安全領域,尤其涉及用于計算機保護以抵御具有復雜感染模式的惡意軟件的系統(tǒng)和方法。
背景技術:
諸如病毒、蠕蟲和木馬的計算機惡意軟件,對于計算機系統(tǒng)和網(wǎng)絡有顯著的安全威脅。為了對抗計算機惡意軟件的不斷増加的傳播,開發(fā)了大量的反病毒檢測技木。然而,在保護計算機抵抗惡意軟件方面,并不是所有惡意軟件檢測方法都是有效的;尤其當惡意 軟件是為避開這些檢測方法而專門設計吋。在最簡單的情形下,惡意軟件可以為單個的組件或?qū)ο?,例如如果啟動就會?zhí)行可導致計算機損壞的操作的可執(zhí)行文件。諸如簽名或啟發(fā)式(heuristic)分析的常見的惡意軟件檢測技術,通常會檢測出單ー組件的惡意軟件。然而,更復雜的惡意軟件由多個組件組成,每個組件執(zhí)行特定的操作;例如,一個組件可以隨文件執(zhí)行操作,第二個組件可以修改系統(tǒng)注冊表,而第三個組件可以執(zhí)行網(wǎng)絡功能。此外,每個組件本身可能都并不會執(zhí)行惡意操作,但是如果將它們的操作相結(jié)合,其可以導致對計算機的損壞。常見的惡意軟件檢測方法在檢測這種具有復雜感染模式的多組件惡意軟件方面可能不是有效的。因此,需要用于檢測具有復雜感染模式的惡意軟件的新技木。
發(fā)明內(nèi)容
本發(fā)明公開了用于檢測計算機惡意軟件的系統(tǒng)、方法和計算機程序產(chǎn)品。在ー個示例性實施例中,該方法包括由惡意軟件檢測系統(tǒng)監(jiān)視計算機上的一個或多個軟件對象的進程或線程的執(zhí)行。然后,該系統(tǒng)通過計算該對象的數(shù)字簽名和檢查該數(shù)字簽名是否與被信任對象相關聯(lián)而確定該一個或多個對象是否為被信任対象。如果該對象是被信任的,則系統(tǒng)停止對該被信任對象的一個或多個進程或線程的監(jiān)視。如果該ー個或多個對象是不被信任的,則系統(tǒng)在多個單獨的對象情境(context)中存儲被監(jiān)視的每個不被信任對象的進程或線程的執(zhí)行的事件。然后,該系統(tǒng)使用惡意軟件行為規(guī)則來分別分析存儲在每個對象情境中的該被監(jiān)視的進程或線程的執(zhí)行的事件,以識別惡意對象。如果在單獨的對象情境中的被監(jiān)視的進程或線程的執(zhí)行的事件不是惡意的,則系統(tǒng)確定是否該被監(jiān)視的進程或線程是彼此相關的,并將相關的進程或線程的情境合并至公共情境。然后,該系統(tǒng)使用惡意軟件行為規(guī)則來分析存儲在公共情境中的事件,以識別具有復雜行為的惡意對象。以上對于本發(fā)明的示例性實施例的簡要概括用于提供對這種實施例的基本理解。此概括并非對本發(fā)明的所有涉及方面的廣泛概述,并且既非意圖確定所有實施例的重要或關鍵元素,也非意圖劃定任何或所有實施例的范圍。其唯一的目的是以簡化的形式提供一個或多個方面的ー些概念,作為以下的更詳細描述的前序。為了前述和相關目標的實現(xiàn),該一個或多個實施例包括在下文中所充分描述并在權(quán)利要求書特別指出的特征。下面的描述和附圖詳細地闡述了ー個或多個實施例的特定示范性特征。然而,這些特征僅表示其中可以采用該發(fā)明的各個方面的原理的各種方式中的ー些,并且此說明意圖包括該發(fā)明的所有這樣的方面及其等同物。
并入說明書中并構(gòu)成說明書的一部分的附圖示出了本發(fā)明的一個或多個示范性實施例,并與詳細描述一起用于解釋本申請實施例的原理和實施方式。附圖中圖I圖示了根據(jù)ー個示例性實施例的惡意軟件檢測系統(tǒng)的示意圖。圖2圖示了根據(jù)ー個示例性實施例的由惡意軟件檢測系統(tǒng)實施的對相關進程的情境合并的示例。圖3A-B圖示了根據(jù)ー個示例性實施例的惡意軟件檢測系統(tǒng)的操作的算法。 圖4圖示了根據(jù)ー個示例性實施例的計算機系統(tǒng)的示意圖。
具體實施例方式在此圍繞用于計算機惡意軟件的檢測的系統(tǒng)、方法和計算機程序產(chǎn)品來描述本發(fā)明的示例性實施例。本領域普通技術人員應當了解,以下的描述僅僅是示例性的而并非意圖以任何方式進行限定。受益于本發(fā)明的本領域技術人員會很容易地想到其他實施例?,F(xiàn)將詳細參考在附圖中圖示的本發(fā)明的示例性實施例的實施方式。貫穿附圖和以下的描述會盡可能使用相同的附圖標記來指代相同或相似的項。圖I圖示了惡意軟件檢測系統(tǒng)的ー個示例性實施例。該系統(tǒng)可以在需要保護以抵御計算機惡意軟件的個人計算機、服務器、網(wǎng)絡路由器、移動電話或其他電子設備(本文中常見以計算機來指代)上實施。一般而言,系統(tǒng)100監(jiān)視由諸如程序、文件、腳本、動態(tài)鏈接數(shù)據(jù)庫等的各種軟件對象101在計算機上所啟動的進程和線程的執(zhí)行,以檢測惡意對象。在一個示例性實施例中,被監(jiān)視的對象101可以包括位于計算機存儲空間中的含有命令代碼的可執(zhí)行文件,所述計算機存儲空間諸如計算機的硬盤驅(qū)動器或隨機存取存儲器。當對象101啟動時,其在系統(tǒng)存儲器中創(chuàng)建進程。進程是容器(container),在該容器中執(zhí)行對象101(例如可執(zhí)行文件)的命令代碼。該進程具有虛擬地址空間,在該虛擬地址空間中存儲該進程的運行時間數(shù)據(jù)并映射相關的動態(tài)數(shù)據(jù)庫DLL(動態(tài)鏈接數(shù)據(jù)庫)。進程可以具有多個執(zhí)行線程。對象的代碼在進程線程中執(zhí)行。每個進程可以與ー個或多個對象101關聯(lián)。這意味著如果進程或線程在計算機上執(zhí)行惡意的操作,則該啟動進程的對象101也是惡意的。在一個示例性實施例中,惡意軟件檢測系統(tǒng)100包括分析工具102,當新的進程在計算機上啟動時,該分析工具102通過使用可用的操作系統(tǒng)工具和/或該啟動進程的對象101的數(shù)字簽名來檢查啟動該給定進程的對象101的參數(shù)??梢圆捎美缭搯舆M程的對象101的校驗和或虛擬存儲器中的可執(zhí)行文件的代碼校驗和作為對象101的參數(shù)。在第一階段,分析工具102將被檢查的對象101的參數(shù)與位于被信任對象的本地存儲器109中的被信任對象的參數(shù)進行比較。此外,該分析工具102可以檢查對象101的數(shù)字簽名。數(shù)字簽名是由認證機構(gòu)提供并加入至文件的電子安全標記。由此,當進程啟動時,分析工具102通過使用包括存儲在本地存儲器109中經(jīng)數(shù)字簽名的對象的參數(shù)在內(nèi)的被信任對象參數(shù)而建立啟動進程的對象101的可信度。在一個示例性實施例中,本地存儲器109可以僅含有最常見的對象的參數(shù)。在此情形下,如果分析工具102不能在存儲器109中找到對象參數(shù),其可以經(jīng)由諸如因特網(wǎng)的網(wǎng)絡110發(fā)送詢問至遠程反病毒服務器(未示出)。該反病毒服務器可以維持全套的已知的惡意的和被信任的對象的參數(shù),并且可以將其信息提供至分析工具102。在一個示例性實施例中,被信任對象是已知對計算機無害的對象,因此,不必要在被信任對象上,以及從該對象 啟動的進程和線程上執(zhí)行任何附加的惡意軟件檢測操作。然而,如果對象是不被信任的,也就是分析工具102在被信任對象的列表中沒有找到被檢查的對象101,則可能該對象和其啟動的進程均為有害的或惡意的。因此,不被信任的對象101 (本文中還以可疑或潛在惡意對象指代)繼續(xù)由系統(tǒng)100監(jiān)視,以防止從這些對象啟動的進程的惡意行為。特別地,如果被檢查的對象101不被信任,則分析工具102將被檢查的對象數(shù)據(jù)101發(fā)送至情境編譯工具103,該情境編譯工具103為該對象編譯情境。在ー個示例性實施例中,該情境是由被檢查的對象101所啟動的進程(或線程)所初始化的事件的日志(log)。特別地,該情境編譯工具103可以為每個被監(jiān)視的不被信任的對象101生成単獨的情境。該情境編譯工具103可以將生成的情境存儲在情境存儲器104中,該情境存儲器104可以在計算機的隨機存取存儲器或永久性存儲器中實施。由情境編譯工具103加入至對象情境的事件可以包括但并不限定于新的對象創(chuàng)建事件、對已存在對象的修改事件、進程啟動事件、系統(tǒng)注冊表參數(shù)更改事件、網(wǎng)絡連接建立事件以及其他類型的事件。在一個示例性實施例中,在檢測到潛在有害事件的情形下,分析工具102可以向情境編譯工具103發(fā)送通知,所述潛在有害事件諸如對系統(tǒng)注冊表的修改和嘗試創(chuàng)建或修改諸如exe文件、腳本、批處理文件等的可執(zhí)行文件。此通知至少含有該啟動進程的對象的標識,如對象的校驗和。其還含有事件類型以及事件所涉及的對象的標識,所述事件類型諸如對象修改,所述對象的標識諸如被修改的對象的校驗和。當接收到進程事件的通知吋,該情境編譯工具103可以將此信息保存在情境存儲器104中被分析的對象101的情境中。所收集的信息進ー步用于檢測計算機上的惡意對象。在一個示例性實施例中,該情境編譯工具103在其操作中使用圖2中所圖示的情境合并機制。在幾個對象或其進程之間的關系在其執(zhí)行的進程中被識別的情形下使用該情境合并機制,也就是為個體行為未顯示出惡意的多個不被信任的對象創(chuàng)建公共情境的機制。為了分析在此情形下對于計算機的一般安全威脅,可能需要分析從不同但相關的不被信任的對象所啟動的進程的累積操作。例如,在一個進程初始化自另ー個(也就是父子關系)的情形下,會在多個從不同對象所啟動的多個進程之間產(chǎn)生關系,該關系創(chuàng)建新的對象,從該新的對象初始化新的進程,或者該關系將線程嵌入至初始化的進程中。在這種狀況下,進程是相關的,并且不僅分析在特定進程的執(zhí)行時發(fā)生的操作,還分析從不同對象所啟動的相關進程的累積操作。類似的狀況發(fā)生在例如多組件惡意軟件或具有復雜感染模式的其他惡意軟件感染計算機吋。作為示例,啟動進程的對象101可以創(chuàng)建和啟動另ー個對象。在此情形下,當與被信任對象不相關的第一進程201在系統(tǒng)中出現(xiàn)時,情境編譯工具103在情境存儲器104中生成情境203。此情境203含有與在進程201的執(zhí)行中所初始化的事件(事件I. I-事件
I.3)有關的數(shù)據(jù)。在進程201的執(zhí)行中的某ー時刻,可能生成創(chuàng)建和啟動新的對象的事件,并且此事件初始化新的進程202。當新的進程202啟動時,情境編譯工具103為記錄由進程202所生成的事件而生成単獨的情境204。在一個示例性實施例中,情境編譯工具103可以確定是否新的進程202與諸如進程201的任何其它被監(jiān)視的進程相關。在進程201和202彼此相關的情形下,情境編譯工具103可以生成新的単獨的公共情境205,該公共情境205會含有發(fā)生在第一進程201和第二進程202的執(zhí)行過程中的所有事件。因此,當潛在有害事件出現(xiàn)時,它們會涉及公共情境205以及涉及啟動進程的對象101的単獨的情境203或204,所述啟動進程的對象101在其執(zhí)行過程中已導致潛在有害事件。如上文所指出,對象/迸程之間可以有很多不同的關系,并且當檢測到新的相關對象時,情境編譯工具103以在從新的對象所啟動的進程的執(zhí)行過程中所生成的事件來更新該新的對象的情境和公共情境205。特別地,當檢測到新的事件時,將其記錄在情境存儲器104中的ー個(在單ー對象的情形下)或幾個(在相關對象的情形下)情境中。在此方式下,情境編譯工具103可以為各種相關對象創(chuàng)建大量不同的情境并將這些情境存儲在情境存儲器104中。在一個示例性實施例中,配置情境分析工具105以獨立地分析情境存儲器104中的每個情境是否存在惡意軟件。特別地,情境分析工具105基于對象在其進程的執(zhí)行過程中的行為來分析對象是否是有害的,這些進程作為事件被記錄在存儲器104中的對象情境中。更具體地,基于存儲在規(guī)則存儲器107中的行為規(guī)則來執(zhí)行該分析。這些行為規(guī)則識別諸如病毒、蠕蟲、木馬、垃圾郵件、BOTs、誘騙聯(lián)絡(spoofer)等的各種已知類型的惡意軟件的行為。對象行為意味著在從被檢查的對象101所啟動的進程的執(zhí)行過程中所采用的操作的集合。作為其操作的結(jié)果,情境分析工具105基于被檢查對象的情境得到關于其有害度的結(jié)論。在一個示例性實施例中,每當情境中出現(xiàn)新的事件或在當新的事件出現(xiàn)后情境分析工具105檢測該對象的有害度時的情形下,重復對對象情境的分析;然后情境分析工具發(fā)送關于此對象的信息至反病毒工具106。該反病毒工具106可以采取合適的補救操作,諸如終止從惡意對象初始化的進程,以及隔離或刪除已啟動惡意進程的對象。因為每個情境的事件本身可能表現(xiàn)為無害的或非惡意的,所以對情境203和情境204的獨立分析有可能無法識別惡意對象;然而,對合并的情境205的分析則會揭露這些進程的惡意行為,所述合并的情境205包括由相關進程201和202所生成的事件的組合集。這意味著惡意軟件使用復雜感染模式,也就是其通過使用幾個進程而進行操作,并且每個進程本身是不具威脅性的或非惡意的,但是它們累積的活動可能是對計算機有害的。在此情形下,反病毒工具106可以使被檢測的進程不能執(zhí)行,并刪除與被檢測的進程相關的所有對象。 在另ー個示例中,一個進程203可以執(zhí)行一系列操作,所述一系列操作通過例如向已存在的進程202中嵌入線程而初始化新的進程或激活已存在的進程;之后,進程201可以終止,但進程202會繼續(xù)執(zhí)行。雖然進程201終止并且其單獨的情境203可能已從存儲器104刪除,但是含有被終止進程201的事件和正運行進程202的事件的組合情境205保持在存儲器104中,并且受到情境分析工具105的分析。這意味著可在對相關進程202的分析中使用所保存的被終止進程201的一系列操作,從而即使在所有有害對象的進程終止后也能確定相關進程202的有害性并且識別所有惡意對象。由于系統(tǒng)進程通常被認為是可信的,其不會被反病毒應用程序所檢查,因此惡意軟件通常在系統(tǒng)進程中初始化線程以隱藏其活動。系統(tǒng)進程可以是在系統(tǒng)操作過程中從系統(tǒng)文件所啟動的進程。系統(tǒng)進程的示例有Svchost. exe(負責動態(tài)鏈接庫的使用)、ffinlogon. exe (控制用戶登入和登出系統(tǒng))、Services. exe (負責開始和停止系統(tǒng)服務以及負責其交互)等。然而,如果線程是在系統(tǒng)進程中初始化的,則情境編譯工具103可以注冊此事件;此外,由情境編譯工具103生成含有系統(tǒng)進程操作數(shù)據(jù)的單獨的情境和用于相關進程的公共情境。自此,情境分析工具105可以監(jiān)視系統(tǒng)進程的活動。在惡意活動的情形下,情境分析工具105可以容易地檢測在系統(tǒng)進程中的惡意線程初始化的方式并將執(zhí)行該活動的惡意對象刪除。
在一個示例性實施例中,情境分析工具105經(jīng)由網(wǎng)絡110連接至遠程反病毒服務器(未示出)。該工具105向反病毒服務器發(fā)送所識別的惡意軟件的情境和在分析對象101的過程中所發(fā)現(xiàn)的相關的情境。此外,該反病毒服務器本身可以向情境分析工具105發(fā)送詢問,所述詢問含有用于請求該情境的對象的校驗和。在此情形下,該情境分析工具尋找具有所接收的校驗和的對象并將此情境與所有相關的情境一起轉(zhuǎn)發(fā)至反病毒服務器。與反病毒服務器進行交互的能力是有用的,因為這允許反病毒服務器對從不同的系統(tǒng)100獲得的不同對象的情境執(zhí)行綜合分析,以分析新種類的惡意軟件的行為,并生成由分析工具105使用的新的惡意軟件行為規(guī)則。在一個示例性實施例中,系統(tǒng)100包括對存儲器107中的規(guī)則和存儲器109中的被信任對象列表進行更新的更新工具108。該更新工具108使用計算機網(wǎng)絡110以從反病毒服務器(未示出)獲得更新。在各種不同的實施例中,系統(tǒng)100實施改善其惡意軟件檢測效果的附加機制。例如,在一些情況下,系統(tǒng)100不能基于存儲在存儲器107中的現(xiàn)有版本的惡意軟件行為規(guī)則最終確定不被信任的對象101是否是惡意的,在此情形下,對象101可能被反病毒工具106隔離一段時間,諸如一周或ー個月,或直到反病毒服務器提供了將能夠最終確定所隔離的對象是否惡意的新的規(guī)則。此外,系統(tǒng)100可以將被隔離的對象的情境存儲在情境存儲器104中。有可能在一段時間后,反病毒服務器可以創(chuàng)建會得出被隔離的對象是否是惡意的最終識別的新的規(guī)則。由此,在規(guī)則存儲器107由更新工具108更新后,該工具108可以發(fā)送更新后的規(guī)則信息至情境分析工具105。該情境分析工具105轉(zhuǎn)而可以分析之前在情境存儲器104中保存的情境。這種通過使用新的行為規(guī)則的重復檢查有可能檢測到之前使用舊的行為規(guī)則無法檢測到的新的惡意對象。如果基于新的行為規(guī)則將被隔離的對象101的情境識別為惡意的,則情境分析根據(jù)105可以通知反病毒工具106隔離的對象是惡意的,從而可以對那個對象采用合適的補救操作。圖3A和B圖示了惡意軟件檢測的示例性算法。在步驟301,系統(tǒng)100可以更新存儲器109中的被信任對象的簽名的列表。在步驟302,更新工具108檢查是否有任何可用的規(guī)則更新,并在步驟303以新的惡意軟件行為規(guī)則更新存儲器107。一旦規(guī)則更新,該更新工具108通知情境分析工具105關于新規(guī)則的可用性。在步驟304,情境分析工具105使用更新后的規(guī)則分析之前編譯并存儲在存儲器104中的情境。如果該情境存儲器104不具有任何之前保存的要檢查的情境,則不執(zhí)行分析。如果在步驟305情境分析工具105檢測到所存儲情境的惡意行為模式,則工具105發(fā)送關于此惡意情境的信息至反病毒工具106,該反病毒工具106將可疑對象保持隔離。在步驟306該反病毒工具106會執(zhí)行合適的補救操作。此外,在步驟307,情境分析工具105可以向反病毒服務器發(fā)送所識別的惡意對象的參數(shù),諸如對象的校驗和。一旦在步驟301-307已經(jīng)更新了被信任對象列表和規(guī)則數(shù)據(jù)庫,在步驟308分析工具102可開始監(jiān)視計算機上的各種進程的執(zhí)行。新的進程ー開始,在步驟309分析工具102就通過例如將對象的簽名與存儲器109中含有的被信任對象的簽名的列表進行比較來檢查啟動進程的對象101的可信度。如果 在步驟310確定對象是可信的,則系統(tǒng)100不收集關于該對象的進ー步信息,并允許由該給定對象所初始化的進程在計算機上運行而無需進ー步的檢查。在此情形下,系統(tǒng)停止關于此對象和其進程的操作。然而,如果在被信任對象的列表109中沒有找到對象101,這意味著被檢查的對象101可能是惡意的。然后,在步驟311分析工具102收集對象參數(shù)并將其發(fā)送至情境編譯エ具103,在步驟313該情境編譯工具103為此對象編譯情境。所編譯的情境保存在情境存儲器104中。這之后,情境編譯工具103監(jiān)視從被檢查的對象101所啟動的進程中的可疑事件的出現(xiàn);例如,這種事件可與對象的創(chuàng)建和刪除或系統(tǒng)注冊表的修改等相關,并且如果其被最終確定為惡意的,可以終止進程。然而,如果在步驟314不能將進程識別為惡意的,則該系統(tǒng)通過例如識別顯示出被監(jiān)視的進程和另ー個被執(zhí)行的進程或線程之間的關系的事件,來確定是否被監(jiān)視的進程具有任何相關的進程的線程。然后,在步驟315,情境編譯工具103將相關的對象的情境合井。新的公共情境含有幾個相關進程的事件,其存儲在情境存儲器104中。當將新的事件加入至情境中時,在步驟316情境分析工具105使用來自存儲器107的惡意軟件行為規(guī)則分析該情境。如果在步驟317該情境分析工具105沒有檢測到進程的惡意活動,則允許此進程繼續(xù)在計算機上運行,并且對此進程的事件的收集和分析也在步驟314中繼續(xù)。如果在步驟317檢測到惡意活動,則在步驟318反病毒系統(tǒng)106終止該進程和與其相關的所有進程。然后,在步驟319,刪除、修復或隔離相關惡意軟件。此外,在步驟320,情境分析工具105發(fā)送惡意對象參數(shù)至反病毒服務器。圖4描繪了在其上可以實施惡意軟件檢測系統(tǒng)100的計算機5的示例性實施例。計算機5可以包括通過系統(tǒng)總線10連接的一個或多個處理器15、存儲器20、ー個或多個硬盤驅(qū)動器30、光驅(qū)35、串行端ロ 40、圖形卡45、聲卡50和網(wǎng)卡55。系統(tǒng)總線10可以為幾種類型的總線結(jié)構(gòu)中的任何ー個,包括使用各種已知總線架構(gòu)中的任何ー種的存儲器總線或存儲器控制器、外圍總線和局部總線。處理器15可以包括ー個或多個Intel C0re2QUad
2.33GHz處理器或其他類型的微處理器。系統(tǒng)存儲器20可以包括只讀存儲器(ROM) 21和隨機存取存儲器(RAM) 23。存儲器20可以實施為DRAM (動態(tài)RAM)、EPROM、EEPR0M、閃存或其他類型的存儲器架構(gòu)。ROM 21存儲基本輸入/輸出系統(tǒng)22 (BIOS),該基本輸入/輸出系統(tǒng)22含有幫助諸如在啟動過程中在計算機系統(tǒng)5的組件之間傳輸信息的基本例程。RAM 23存儲諸如Windows XPProfessional或其他類型的操作系統(tǒng)的操作系統(tǒng)24 (OS),該操作系統(tǒng)24負責在計算機系統(tǒng)5中管理和協(xié)調(diào)進程,以及分配和共享硬件資源。系統(tǒng)存儲器20還存儲諸如服務306的應用程序和程序25。系統(tǒng)存儲器20還存儲由程序25使用的各種運行時間數(shù)據(jù)26。計算機系統(tǒng)5可以進一歩包括諸如SATA磁性硬盤驅(qū)動器(HDD)的硬盤驅(qū)動器30以及用于讀或?qū)懼T如CD-ROM、DVD-ROM或其他光學介質(zhì)的可移動光盤的光盤驅(qū)動器35。驅(qū)動器30和35及其相關聯(lián)的計算機可讀介質(zhì)提供了對實施本文所公開的算法和方法的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、應用程序以及程序模塊/子例程的非易失性存儲。盡管示例性的計算機系統(tǒng)5采用磁盤和光盤,本領域技術人員應當理解,在計算機系統(tǒng)的替代實施例中,還可以使用可存儲計算機系統(tǒng)5可訪問數(shù)據(jù)的其他類型的計算機可讀介質(zhì),諸如磁帶盒、閃存卡、數(shù)字視頻盤、RAM、ROM、EPROM以及其他類型的存儲器。計算機系統(tǒng)5進ー步包括諸如通用串行總線(USB)的多個串行端ロ 40,用于連接諸如鍵盤、鼠標、觸控板及其它類型的數(shù)據(jù)輸入設備75。串行端ロ 40還可以用來連接諸如打印機、掃描儀及其它類型的數(shù)據(jù)輸出沒備80以及諸如外部數(shù)據(jù)存儲設備等的其它外圍設備85。系統(tǒng)5還可以包括諸如nVidia GeForce GT 240M或其他視頻卡的圖形卡45,用干與監(jiān)視器60或其他視頻再現(xiàn)設備接合。系統(tǒng)5還可以包括聲卡50,用于經(jīng)由內(nèi)部或外 部揚聲器65再現(xiàn)聲音。此外,系統(tǒng)5可以包括網(wǎng)卡55,諸如以太網(wǎng)、WiFi、GSM、藍牙或其他有線、無線或蜂窩網(wǎng)絡接ロ,用于將計算機系統(tǒng)5連接至諸如因特網(wǎng)的網(wǎng)絡70。在各種實施例中,本文描述的算法和方法可以實現(xiàn)于硬件、軟件、固件或者其任意組合中。如果在軟件中實現(xiàn),這些功能可以作為ー個或者多個指令或者代碼在非暫時性計算機可讀介質(zhì)上存儲。計算機可讀介質(zhì)既包括計算機存儲介質(zhì)也包括通信介質(zhì),所述通信介質(zhì)有利于從ー個地方向另ー個地方傳送計算機程序。存儲介質(zhì)可以是能夠被計算機訪問的任何可用的介質(zhì)。作為示例而非限制,這種計算機可讀介質(zhì)可包括RAM、ROM、EEPR0M、CD-ROM或其它光盤存儲器、磁盤存儲器或其它磁性存儲設備、或者任何能夠用于以指令或者數(shù)據(jù)結(jié)構(gòu)的形式承載或者存儲所需的程序代碼并且可被計算機訪問的其它介質(zhì)。而且,任何連接都可以被稱為計算機可讀介質(zhì)。例如,如果使用同軸電纜、光纜、雙絞線、數(shù)字用戶線(DSL)或者諸如紅外、射頻和微波這類無線技術從網(wǎng)站、服務器或者其它遠程信源發(fā)送軟件,那么介質(zhì)的定義包括該同軸電纜、光纜、雙絞線、數(shù)字用戶線(DSL)、或者諸如紅外、射頻和微波這類無線技木。為了清楚起見,本文沒有示出并描述實施例的所有常規(guī)特征。應該理解的是,在任何這種實際的實施方式的開發(fā)中,為了達到開發(fā)者的特定目標,必須做出大量特定于實施方式的決定,而且,這些特定目標會因?qū)嵤┓绞降牟煌烷_發(fā)者的不同而變化。應該理解的是,這種開發(fā)工作可能是復雜且費時的,但不論如何,對于受益于本申請的普通技術人員而H,都將是常規(guī)的工程任務。而且,可以理解的是,本文使用的措辭和術語用于描述而非限制的目的,以使本說明書的術語或者措辭可由本領域技術人員在本文提出的教導和指導下結(jié)合相關領域技術人員的知識做出解釋。而且,除非像這樣明確地予以闡述,否則說明書中或者權(quán)利要求中的任何術語都并非意圖表示不常見的或者特殊的意思。本文公開的各種實施例包括本文通過圖示方式提到的已知組件的現(xiàn)在和將來已知的等同物。而且,盡管已經(jīng)示出和說明了實施例和應用程序,但對受益于本文公開的內(nèi)容的本領域技術人員來說顯而易見的是,在不脫離本文公開的發(fā)明構(gòu)思的情況下,比上述提及到的更多的修改例都是可能的。
權(quán)利要求
1.一種用于檢測計算機惡意軟件的方法,所述方法包括 監(jiān)視ー個或多個軟件對象的進程或線程的執(zhí)行; 確定所述ー個或多個對象是否為被信任對象或不被信任對象; 在多個單獨的對象情境中存儲所述被監(jiān)視的每個不被信任對象的進程或線程的執(zhí)行的事件; 確定存儲在單獨的對象情境中的所述被監(jiān)視的進程或線程是否彼此相關; 將存儲在所述相關進程或線程的對象情境中的事件合并至公共情境中;以及使用惡意軟件行為規(guī)則來分析存儲在所述公共情境中以及存儲在單獨的對象情境中的所述被監(jiān)視的進程或線程的事件,以識別惡意對象。
2.如權(quán)利要求I所述的方法,進ー步包括 終止與惡意對象相關聯(lián)的所有進程和線程的執(zhí)行;以及 刪除、隔離或修復所述惡意對象。
3.如權(quán)利要求I所述的方法,進ー步包括 通過計算所述對象的數(shù)字簽名和檢查所述數(shù)字簽名是否與被信任對象相關聯(lián)而確定所述ー個或多個對象是否為被信任對象;以及 停止對被信任對象的一個或多個進程或線程的監(jiān)視。
4.如權(quán)利要求I所述的方法,其中確定對象是否為被信任的包括 將所述對象的數(shù)字簽名與本地被信任對象存儲器進行比較;以及 如果在所述本地被信任對象存儲器中沒有找到所述對象的所述數(shù)字簽名,則向含有已知惡意和被信任對象的簽名的綜合數(shù)據(jù)庫的遠程反病毒服務器發(fā)送詢問。
5.如權(quán)利要求I所述的方法,其中確定所述對象是否為被信任的包括 計算所述對象的校驗和;以及 詢問遠程反病毒服務器以確定所述校驗和是否與惡意或被信任對象相關聯(lián)。
6.如權(quán)利要求I所述的方法,進ー步包括 將對象的情境傳送給遠程反病毒服務器;以及 基于所述被傳送的情境從所述服務器接收新的惡意軟件行為規(guī)則。
7.如權(quán)利要求I所述的方法,進ー步包括 如果被信任對象的進程在系統(tǒng)進程中嵌入線程,則繼續(xù)監(jiān)視所述被信任對象;以及 在単獨的對象情境中存儲所述系統(tǒng)進程的執(zhí)行的事件。
8.一種用于檢測計算機惡意軟件的系統(tǒng),包括 存儲器,經(jīng)配置以存儲被信任軟件對象的列表和惡意軟件行為規(guī)則; 處理器,耦合至所述存儲器,所述處理器經(jīng)配置以 監(jiān)視ー個或多個軟件對象的進程或線程的執(zhí)行; 確定所述ー個或多個對象是否為被信任對象或不被信任對象; 在多個單獨的對象情境中存儲所述被監(jiān)視的每個不被信任對象的進程或線程的執(zhí)行的事件; 確定存儲在單獨的對象情境中的所述被監(jiān)視的進程或線程是否彼此相關; 將存儲在所述相關進程或線程的對象情境中的事件合并至公共情境中;以及 使用惡意軟件行為規(guī)則來分析存儲在所述公共情境中以及存儲在單獨的對象情境中的所述被監(jiān)視的進程或線程的事件,以識別惡意對象。
9.如權(quán)利要求8所述的系統(tǒng),其中所述處理器經(jīng)進一步配置以 終止與惡意對象相關聯(lián)的所有進程和線程的執(zhí)行;以及 刪除、隔離或修復所述惡意對象。
10.如權(quán)利要求8所述的系統(tǒng),其中所述處理器經(jīng)進一步配置以 通過計算所述對象的數(shù)字簽名和將所述數(shù)字簽名與存儲在所述存儲器中的所述被信任軟件對象的列表進行比較而確定所述一個或多個對象是否為被信任對象;以及停止對被信任對象的一個或多個進程或線程的監(jiān)視。
11.如權(quán)利要求8所述的系統(tǒng),其中如果在所述被信任軟件對象的列表中沒有找到所述對象的所述數(shù)字簽名,則所述處理器經(jīng)進一步配置以 向含有已知惡意和被信任對象的簽名的綜合數(shù)據(jù)庫的遠程反病毒服務器發(fā)送詢問。
12.如權(quán)利要求8所述的系統(tǒng),其中為確定所述對象是否為被信任的,所述計算機經(jīng)進一步配置以 計算所述對象的校驗和;以及 詢問遠程反病毒服務器以確定所述校驗和是否與惡意或被信任對象相關聯(lián)。
13.如權(quán)利要求8所述的系統(tǒng),其中所述處理器經(jīng)進一步配置以 將對象的情境傳送給遠程反病毒服務器;以及 基于所述被傳送的情境從所述服務器接收新的惡意軟件行為規(guī)則。
14.如權(quán)利要求8所述的系統(tǒng),其中所述處理器經(jīng)進一步配置以 如果被信任對象的進程在系統(tǒng)進程中嵌入線程,則繼續(xù)監(jiān)視所述被信任對象;以及 在單獨的對象情境中存儲所述系統(tǒng)進程的執(zhí)行的事件。
全文摘要
本發(fā)明公開了用于檢測具有復雜感染模式的惡意軟件的系統(tǒng)、方法和計算機程序產(chǎn)品。該系統(tǒng)通過識別潛在的有害軟件對象、監(jiān)視潛在有害對象的各進程和線程的執(zhí)行、編譯被監(jiān)視進程和線程的執(zhí)行的事件的情境、以及將相關的進程和線程的情境進行合并而提供對抗惡意軟件的增強的保護。基于使用惡意軟件行為規(guī)則而對單獨的和合并的對象情境的分析,該系統(tǒng)能檢測到具有簡單的和復雜的行為模式的惡意對象。
文檔編號G06F21/55GK102651061SQ201210100140
公開日2012年8月29日 申請日期2012年4月6日 優(yōu)先權(quán)日2011年4月19日
發(fā)明者丹尼斯·A·納扎羅夫, 尤里·G·斯洛博迪亞努克, 弗拉季斯拉夫·V·馬蒂嫩科, 米哈伊爾·A·帕夫柳席奇卡, 阿列克謝·A·波利亞科夫 申請人:卡巴斯基實驗室封閉式股份公司