<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

用于處理惡意軟件的方法和裝置的制作方法

文檔序號:6354348閱讀:236來源:國知局
專利名稱:用于處理惡意軟件的方法和裝置的制作方法
技術領域
本發明一般涉及用于處理惡意軟件的方法和裝置。在一個方面中,本發明涉及一 種用于將計算機對象分類為惡意軟件的方法和裝置。在另一個方面中,本發明涉及一種用 于確定遠程計算機能夠防止惡意軟件的方法和裝置。在另一個方面中,本發明涉及一種用 于將計算機對象分類為惡意軟件或安全的方法和裝置。在另一個方面中,本發明涉及一種 在計算機上安裝軟件的方法。
背景技術
在此使用的術語“惡意軟件”一般指任何可執行的計算機文件或者是惡意代碼或
包含惡意代碼(并且因此包括病毒、特洛伊、蠕蟲、間諜軟件、廣告軟件等)的更一般的“對
^fe ”家。一種諸如反病毒掃描軟件的典型反惡意軟件產品掃描對象或應用于對象的算法 結果或其部分,從而在已知指示存在病毒的對象中查找簽名(signature)。通常地,處理惡 意軟件的方法當新型惡意軟件例如經由因特網發布時,最終檢測這些惡意軟件。一旦檢 測到新的惡意軟件條目,那么該領域中的服務提供商生成試圖處理這些惡意軟件的簽名, 并且然后將這些簽名發布以更新他們的反惡意軟件程序。還使用了啟發式(Heuristic)方 法。這些系統很好地用于防止已知的惡意對象。然而,由于它們依靠生成和/或更新 的簽名文件,所以在一個新的惡意軟件開始存在或發布與生成或更新用于與惡意軟件進行 戰斗的簽名并且將其提供給用戶之間存在著不可避免的延遲。因此,用戶在一個特定時間 段內處于來自于新的惡意軟件的風險中,該特定時間段可能高達一周甚至更長。而且,為了 盡量擊敗反病毒產品,惡意軟件編寫者使用混淆(obfuscation)技術從而試圖隱藏病毒代 碼的簽名或簽名基礎數據以防止檢測。通常地,混淆包括加密或對病毒代碼打包。W0-A-2004/097602描述了一種系統,該系統分析由本地計算機接收或生成的計算 機文件并且將這些文件與已知文件的數據庫進行比較以確定特定文件是否是已知的,并且 如果是,確定該特定文件是否在足夠長的時間內已知從而可以被看作“安全的”。然而,在實 踐中,關于它本身,這不太可能提供足夠的保護,因為例如,可以僅將病毒或特洛伊的有效 載荷進行編程來激活,這可以在特定日期、或者當從本地或遠程系統或進程接收消息或指 令時,或者可以在該進程已經進行了第一次運行或被發布之后的數月或者甚至數年時發生 特定事件的時候進行。因此,僅查看文件的時間長短不是確定它是否是適當地安全的并且 將繼續如此的滿意方法。在W0-A-2004/0083408的系統中,通過檢查由計算機上運行的特定文件進行的連 接嘗試來檢測文件中的蠕蟲。
US-A-6944772、US-A-6772346、EP-A-1549012 和 EP-A-U80040 都公開了 “基于群 體的”反惡意軟件系統,其中多個“本地”計算機都經由網絡(例如,其可以是LAN或因特 網)連接到中央計算機。在遇到它們還不知道的文件時,本地計算機向中央計算機發送對 運行文件進行授權的請求。如果在中央計算機處識別了文件,那么中央計算機可以發送對 本地計算機的許可,以便當已知文件是安全時運行該文件,或者當已知文件是惡意時發送 “拒絕”命令。然而,在這些現有技術方案的每個中,如果該文件在中央計算機處不是已知 的,那么整個文件被發送到中央計算機,其中可以分析該文件以確定它是否應該被看作安 全的還是惡意的。通常通過對文件進行詳細分析(例如,通過模擬或解釋)來手工或“半手 工”執行此類分析,其可能仍需要花費數天來滿足通常要求的人的介入。因此,在將新文件 分類為安全或惡意軟件之前仍舊存在相當長的時間段。在這些現有技術系統的情況中,由 本地計算機發送到中央計算機的對運行文件授權的請求可以包括發送校驗和或者唯一代 表文件的“關鍵字”或“簽名”。類似的基于群體的反惡意軟件系統在W0-A-02/33525中公開。在此系統中,在本 地計算機尋求許可(clearance)運行中央計算機不知道是安全或惡意軟件的文件的情況 中,在其他本地計算機上的關于文件普及的某些受限審核信息可以被發送給與尋求允許運 行該文件的本地計算機相關聯的人類系統管理員。因此,人類系統管理員仍舊可以通過“手 工”決定文件是否是運行安全的來更好地獲得通知。在US-A-2004/0073810的系統中,包含關于附件或其他傳輸的文件的數據的元文 件發送到中央計算機。對關于該文件的數據進行分析從而確定傳輸的文件是惡意軟件的可 能性。給出的特定示例是,如果傳輸文件已經經由至少一定數目的服務器進行了傳輸,那么 它應該被作為惡意軟件。在US-A-2005/0021994和US-A-2004/0153644中公開的系統中,可以由例如與文 件相關聯的軟件銷售商驗證為安全的預先準許的文件可以在沒有進一步檢查的情況下總 是被允許運行。在US-A-2004/0153644的系統的一個實施例中,執行監控,從而如果在中央 機構處在一個時間段中從多個本地計算機接收到該文件的大量不正常請求,或者如果在一 個時間段內從單個本地計算機接收到該文件的大量不正常請求,則確定文件是惡意的。在US-A-2004/0006704的系統中,將計算機上的軟件安裝版本與軟件版本及其已 知弱點的數據庫進行比較。因此,可以通知計算機用戶特定的風險以及如何通過更新現有 軟件或安裝新軟件來最小化這些風險。在W0-A-03/021402的系統中,中央數據庫保存了存儲在多個本地計算機的每個 上的所有文件的虛擬映像。如果識別了一個本地計算機中的威脅,可以向具有類似配置的 其他本地計算機通知該風險。因此,現有技術系統或者依靠對新對象的深入分析從而確定對象是否是惡意的, 這在分析文件和新的反惡意軟件分布期間引入了延遲并因此引入了用戶風險,或者執行對 特定對象操作的受限分析或向計算機的傳輸方法,以確定對象是惡意的可能性。

發明內容
根據本發明的第一方面,提供一種將計算機對象分類為惡意軟件的方法,該方法 包括
在基(基)計算機處,從多個遠程計算機的每一個接收關于計算機對象的數據,該 對象或類似對象存儲在遠程計算機上;在基計算機中,比較從多個計算機接收的關于計算機對象的數據;以及根據所述比較,將計算機對象分類為惡意軟件。與僅依靠簽名匹配的現有技術相比,該方面允許在對象和/或它們對不同遠程計 算機的影響之間進行比較,以確定特定對象是否應該被歸類為良好還是惡意軟件。可以執 行復雜的模式分析。這允許在不需要對對象本身進行詳細分析的情況下,快速確定對象的 本質,同樣確定它是否是惡意軟件,并且還避免了生成新簽名用于簽名匹配,如在傳統現有 技術反病毒軟件中的那樣。在優選的實施例中,從多個遠程計算機發送到基計算機并且在比較中使用的關于 計算機對象的數據包括以下中的一個或多個包含在對象內或者由所述對象組成的可執行 指令;對象的大小;對象的當前名稱;對象在盤上的物理和文件夾位置;對象的原始名稱; 對象的創建和修改日期;銷售商、產品、版本以及存儲在對象內的任何其他信息;對象頭部 或由所述遠程計算機保持的頭部;以及當創建、配置對象或對象在各個遠程計算機上運行 時,由對象發起的事件或涉及對象的事件。 優選地,該比較識別該對象和另一個對象之間的關系。在示例中,如果該對象或者 父對象或其他相關對象為不良(或良好),可以立刻并自動地使用此比較來將子對象標記 為不良(或良好)。因此,如果所述對象與其相關的至少一個其他對象被分類為惡意軟件, 那么該方法可以包括將所述對象分類為惡意軟件。所述其他對象包括存儲在至少某些遠程 計算機上的對象或類似對象。所述其他對象可以包括的其他對象是父對象或子對象或與所 述對象進程相關的對象。在最優選的實施例中,以關鍵字的形式發送數據,該關鍵字通過關于各個遠程計 算機上的對象執行的哈希進程獲得。使用這樣的關鍵字的主要優勢是縮減了需要傳輸到基 計算機的數據量。假設可能存在數千或甚至數百萬連接的遠程計算機,并且進一步假設每 個遠程計算機可以發送關于非常多個對象的細節,這可以是非常重要的優勢。關鍵字優選地具有代表包含在對象之內或由對象組成可執行指令的至少一個部 分。此重要的優選特征允許在對象的僅可執行指令的基計算機處進行比較。這意味著例如 基本上具有相同可執行指令的命名不同的對象(其經常是指示對象是惡意軟件的指示符) 可以被認為是出于此目的的“相同”對象。如另一個示例,可以發布程序的新版本,與基計 算機已知的先前版本相比,新版本具有微小的改變,并且至少關于可執行指令而言新版本 基本上可以被看作與先前版本相同。在該情況中,可以忽略微小差異并且對象被認為是相 同的。不僅在惡意軟件之間的區分中這是有用的,而且例如對于先前軟件的修改版本,它還 縮減了數據傳輸和存儲要求,因為基計算機可以通知遠程計算機,看起來是新的對象由于 此目的與之前已知的對象是相同的,因此避免了使遠程計算機向基計算機發送關于對象的 全面細節或者對象本身。關鍵字優選地具有至少一個代表關于所述對象的數據的部分。關于所述對象的數 據包括以下至少一個內容對象的當前名稱;對象在盤上的物理或文件夾位置;對象的原 始名稱;對象的創建和修改日期;銷售商、產品和版本以及存儲在對象內的任何其他信息; 對象頭部或由遠程計算機保持的頭部;以及當創建、配置對象或對象在各個遠程計算機上運行時,由對象發起的事件或涉及對象的事件。關鍵字優選地具有至少一個部分,該部分表示對象的物理大小。在這些部分中的多于一個部分存在于關鍵字中的情況下,多個部分優選地可分 開。該方法可以包括將對象初始分類為非惡意軟件,生成針對所述對象的掩碼 (mask),該掩碼定義對象的可接受行為,并且包括監控至少一個遠程計算機上的對象的操 作,以及如果實際監控的行為超出了掩碼允許的行為,則將對象重新分類為惡意軟件。這提 供了監控已經被分類或被看作良好的對象行為的有效率并且高效的方式,并且如果該對象 的行為證明了它,則允許將該對象快速重新分類為惡意軟件。根據本發明的第二方面,提供了一種用于將計算機對象分類為惡意軟件的裝置, 該裝置包括基計算機,被構建和安排為從多個遠程計算機中的每一個接收關于計算機對象的 數據,對象或類似對象存儲在遠程計算機上;該基計算機被構建和安排為比較從所述多個遠程計算機接收的關于所述計算機 對象的數據;以及,該基計算機被構建和安排為根據比較將所述計算機對象分類為惡意軟件。根據本發明的第三方面,提供一種用于從遠程計算機向基計算機提供關于計算機 對象的數據以便可以在基計算機處與從其他遠程計算機接收的類似數據進行比較的方法, 該方法包括從遠程計算機向基計算機提供關于存儲在遠程計算機上的計算機對象的數據;該數據包括以下中的一個或多個包含在對象之內或由對象組成的可執行指令; 對象的大小;對象的當前名稱;對象在盤上的物理以及文件夾位置;對象的原始名稱;對象 的創建和修改日期;銷售商、產品和版本以及存儲在對象內的任何其他信息;對象頭部或 由遠程計算機保持的頭部;以及當創建、配置對象或該對象在各個遠程計算機上運行時,由 對象發起的事件或涉及對象的事件;以關鍵字的形式發送的數據,該關鍵字通過關于各個遠程計算機上的對象執行的 哈希進程獲得。可以由運行在遠程計算機上的所謂的代理軟件執行的方法允許向基計算機有效 地發送數據,其最小化了數據傳輸和存儲要求,并且還允許在基計算機處進行快速分析。關鍵字優選地具有至少一個部分,該部分表示包含在該對象內或由該對象組成的 可執行指令。關鍵字優選地具有代表關于所述對象數據的至少一個部分。關于所述對象的所述 數據可以包括以下中的至少一個對象的當前名稱;對象在盤上的物理或文件夾位置;對 象的原始名稱;對象的創建和修改日期;銷售商、產品和版本以及存儲在對象內的任何其 他信息;對象頭部或由遠程計算機保持的頭部;以及當創建、配置對象或對象在各個遠程 計算機上運行時,由該對象發起的事件或涉及該對象的事件。關鍵字優選地具有至少一個部分,該部分表示對象物理大小。根據本發明的第四方面,提供一種確定遠程計算機具有防止惡意軟件的保護的方 法,該方法包括
6
在基計算機處接收所有或選擇的安全產品的細節,該安全產品在所述遠程計算機 上按時間點操作;從連接到基計算機的其他遠程計算機接收類似信息;以及識別具有安全產品的特定組合的所述其他遠程計算機沒有識別出來的任何惡意 軟件進程。以此方式,基計算機可以用于獲取關于例如操作系統和各種安全產品的特定、指 定組合的信息,包括存在于時間點的設置和簽名文件,呈現具有那些易受任何特定惡意軟 件對象攻擊的那些產品和設置的特定計算機。相應地可以建議用戶并且例如向用戶提供用 于補救情況的建議。因此,該方法包括可以在所述識別的基礎上向所述遠程計算機的用戶提供信息, 所述遠程計算機可能易受所述惡意軟件進程的攻擊。所有或選擇的安全產品的細節優選地包括安全產品的名稱、版本和裝載的簽名文 件。根據本發明的第五方面,提供一種用于確定遠程計算機具有防止惡意軟件的保護 措施的裝置,該裝置包括基計算機,被構建和安排為接收所有或選擇的安全產品的計算機細節,所述安全 產品在所述遠程計算機上按時間點操作;該基計算機被構建和安排為從連接到所述基計算機的其他遠程計算機接收類似 的信息;以及該基計算機被構建和安排為識別具有安全產品的特定組合的所述其他遠程計算 機沒有識別出來的任何惡意軟件進程。根據本發明的第六方面,提供一種將計算機對象分類為惡意軟件或安全的方法, 其中所述計算機對象是第一計算機對象的后代或相關的對象,該方法包括將第一計算機對象分類為惡意軟件或安全;在關于所述第一計算機對象的關鍵字中識別一個部分,該部分唯一地標識所述第 一計算機對象、并且被繼承或存在于所述第一計算機對象的后代或其他相關計算機對象的 關鍵字中;以及,根據唯一標識符部分存在于所述計算機對象的關鍵字中,將所述計算機對象分類 為惡意軟件或安全。此方面使用祖先的概念來使對象能夠被標記為惡意軟件。例如,任何特定進程可 以繁殖因此相關的子進程。可以檢查關于第一對象的關鍵字以識別一個部分,該部分唯一 地標識第一對象并且被繼承的或存在于第一對象的后代或其他相關對象的關鍵字中。該方法可以包括監控所述第一計算機對象的活動,并且在將第一計算機對象初始 地分類為安全并且隨后確定為惡意軟件的情況中,將第一計算機對象重新分類為惡意軟 件,該方法進一步包括將具有其中存在所述唯一標識符部分的關鍵字的任何計算機對象自 動地分類為惡意軟件。根據本發明的第七方面,提供一種用于將計算機對象分類為惡意軟件或安全的裝 置,其中所述計算機對象是第一計算機對象的后代或相關對象,該裝置包括計算機,被構建和安排為將第一計算機對象分類為惡意軟件或安全;
7
該計算機被構建和安排為在關于所述第一計算機對象的關鍵字中識別一個部分, 該部分唯一地標識所述第一計算機對象、并且被繼承或存在于所述第一計算機對象的后代 或其他相關計算機對象的關鍵字中;以及該計算機被構建和安排為根據唯一標識符部分存在于所述計算機對象的關鍵字 中,將所述計算機對象分類為惡意軟件或安全。根據本發明的第八方面,提供一種在計算機上安裝軟件的方法,該方法包括在計算機上安裝軟件的開始,在計算機上向用戶提供計算機生成的提示,以確定 用戶是否授權安裝;以及,如果沒有接收到用戶授權則停止安裝,否則在計算機處接收用戶進行安裝的授權;進行安裝;獲取關于安裝期間創建或使用的計算機對象的數據;在本地計算機處存儲所述數據。當用戶正在安裝新軟件并且例如沒有連接到具有上述類型的群體數據庫的基計 算機時,此方法提供安全性。在該情況中,可以在運行在本地計算機上的代理軟件中實現的 方法允許用戶許可進行安裝,而同時收集關于安裝期間創建的對象(諸如進程、新文件等) 的數據。優選地,在安裝期間參考本地存儲的數據以確保在安裝期間創建或使用的所有對 象是安裝進程的部分,并且如果發現在安裝期間創建或使用的對象不是安裝進程的一部 分,則進行以下之一或進行以下兩者(i)停止安裝,和(ii)在計算機上向用戶提供計算機 生成的提示。這允許該方法確保僅許可創建或使用安裝所要求的那些對象,并且因此避免 無意地允許安裝惡意軟件(假設惡意軟件經常創建對象,該對象是新軟件的正常安裝部分 所不期望的)。在優選的實施例中,該方法包括將計算機連接到群體數據庫,該群體數據庫可連 接到多個計算機,并且將存儲的數據上傳到群體數據庫用于與其他計算機提供的類似數據 進行比較。該方法可以包括將關于受信任安裝者的數據下載到計算機,在安裝期間參考所述 關于受信任安裝者的數據,以便關于受信任安裝者或由受信任安裝者創建的任何對象是自 動授權進行的。這便于安裝已經受信任的軟件。僅在計算機處接收到用戶授權以進行安裝之后的預定時間段,參考所述關于受信 任安裝者的數據。本發明還包括計算機程序,計算機程序包括用于使計算機執行任何上述方法的程 序指令。盡管參考附圖描述的本發明的實施例包括計算機裝置中執行的計算機進程以及 計算機裝置本身,本發明還擴展到適于實現本發明的計算機程序,特別是在載體上或載體 中的程序。程序可能是源代碼、目標代碼、諸如部分編譯形式的中間源代碼和目標代碼、或 用于實現根據本發明的進程的任何其他適合的形式。載體可以是能夠承載程序的任何實體 或設備。例如,載體可以包括諸如ROM的存儲介質,例如⑶ROM或半導體ROM、或磁記錄介 質,例如軟盤或硬盤。而且,載體可以是可傳輸載體,諸如電或光信號可以經由電纜或光纜或通過無線或其他方式傳遞。


現在,將通過參考附圖的示例描述本發明的實施例,其中圖1示意性地示出了可以在其中實現本發明的實施例的裝置;圖2是示意性地示出了根據本發明實施例的方法的示例操作的流程圖;圖3是示意性地示出了根據本發明的實施例的方法的另一個示例操作的流程圖; 以及,圖4是示意性地示出了信息獲取階段的流程圖。
具體實施例方式參考圖1,計算機網絡通常示出為基于諸如因特網1的分布式網絡。然而,本發明 可以通過或使用諸如LAN的其他類型的網絡來實現。多個本地或“遠程”計算機2經由因 特網1連接到“中央”或“基”計算機3。每個計算機2都可以是個人計算機、任何類型的服 務器、PDA、移動電話、交互電視或能夠裝載并且操作計算機對象的任何其他設備。此情況中 的對象可以是計算機文件、文件或子程序的部分、宏、web頁面或由計算機或在計算機上操 作的任何其他代碼片段,或任何不論是執行、模擬、模仿或解釋的事件。在圖中示意性地示 出了對象4,并且對象4可以例如如線5所示的那樣將對象4經由因特網1下載到遠程計算 機2、或如線6所示的那樣直接被應用。在一個優選的實施例中,基計算機3具有數據庫7,當遠程計算機2運行對象4以 確定對象4是安全的還是不安全的時,遠程計算機2可以與數據庫7進行交互。隨著時間 向群體(community)數據庫7提供涉及在所有連接的遠程計算機2上運行的每個對象的信 息組裝。如下面將進行的進一步描述,代表每個對象4的數據優選地采用涉及對象及其影 響的所謂的簽名或關鍵字的形式。還如以下將進行的進一步描述,數據庫7可以進一步包 括用于對象4的掩碼,其設定了對象的性能和操作的參數。現在參考圖2,在開始點21,計算機對象4(諸如進程)在遠程計算機2上運行。在 步驟22,通過在遠程計算機2上運行的本地“代理”軟件的操作,鉤住(hook) 了進程的操作, 從而代理軟件可以搜索存儲在遠程計算機2上的本地數據庫以搜索代表該特定進程的、其 相關對象和/或事件的簽名或關鍵字。如果存在本地簽名,它將指示該進程被認為是不安 全的或將指示該進程被認為是安全的。不安全的進程可能是一個已經被發現的惡意軟件, 或可能是已經被發現來自其運行的不可預知的或已知的不安全或惡意的結果。如果簽名指 示進程是安全的,那么在步驟23,遠程計算機2上的本地代理軟件允許該進程或事件運行。 如果簽名指示進程是不安全的,那么在步驟M,進程或事件停止。應該理解,可以存在除“安全”或“不安全”以外的多于兩個的狀態,并且用戶可以 選擇。例如,如果對象在本地被認為是不安全的,則可以向用戶呈現選項以允許相關進程仍 然運行。也可能向每個遠程計算機2呈現不同的狀態。該狀態可以由中央系統改變,以考 慮時間幀或遠程計算機的位置、狀態或所有權。如果對象是本地未知的,那么對象的細節通過因特網1或其他網絡傳遞到基計算 機3以便存儲在群體數據庫7中,并且優選地用于在基計算機3處進一步分析。在該情況中,則在步驟25搜索群體數據庫7中的已經存儲在群體數據庫7中的對象的簽名。群體數 據庫7提供有表示對象的簽名,該對象諸如每個監控的遠程計算機2運行的程序或進程。在 本領域中典型的實現中,可以存在數千甚至數百萬連接到基計算機3或可連接到基計算機 3的遠程計算機2,并且因此將很快發現在因特網1上新發布的任何對象或在這些遠程計算 機2的任何一個上發現的任何對象,并且由各個遠程計算機2創建簽名并且將該簽名發送 到基計算機3。當向群體數據庫7搜索所關注的遠程計算機2先前不知道的對象的簽名時,那么 如果發現了簽名并且該簽名指示對象是安全的,則在步驟26將至少一條有關對象是安全 的消息或簽名的拷貝發送到所關注的遠程計算機2的本地數據庫,以填充本地數據庫。以 此方式,遠程計算機2立刻具有此信息從而當下次遇到對象4時對其進行處理。分離消息 也傳遞回遠程計算機2以允許對象在當前實例中運行。如果在群體數據庫7中發現簽名,并且由于一些原因,這指示對象是不安全的,則 在步驟27該簽名被再次拷貝回本地數據庫并且標記為“不安全”,和/或消息被發送到遠程 計算機2從而對象的運行停止(或不允許其運行)和/或給予用戶通知選擇是否運行它。如果在搜索了整個群體數據庫7之后,對象仍舊是未知的,那么假設這是本領域 中之前從沒見過的全新對象。因此,在步驟觀創建代表對象的簽名,或將由遠程計算機2 發送的簽名用于此目的,并且在步驟四初始地將此簽名標記為不良或不安全的群體數據 庫7。在步驟30,將簽名拷貝到第一次運行該對象的遠程計算機2的本地數據庫。然后,可 以將消息傳遞到遠程計算機2以指示遠程計算機2不運行該對象,或者可替換地,可以向用 戶通知關于是否允許對象運行的意見。另外,在步驟31,群體數據庫7可以向遠程計算機2 請求對象本身的拷貝。如果遠程計算機2處的用戶選擇運行因為其太新所以被認為是不安全的進程,那 么該進程可以由遠程計算機2和/或群體數據庫7可以監控,并且如果例如在η天的時間 之后,沒有出現或表現出不良效果,那么可以認為它是安全的。可替換地,群體數據庫7可 以保持由組成網絡部分的多個遠程計算機2發現的進程的每個實例的日志,并且在記錄了 特定數量的實例以及可能記錄了被允許運行并且安全運行的其他特定數量的實例或進程 之后,則可以將群體數據庫7中的簽名標記為安全而不是不安全。在此概念下可以完成監 控安全性的多種其他變形。對象4的細節優選以唯一標識對象4的簽名或“關鍵字”的形式傳遞到基計算機 3。這主要縮減了數據存儲和傳輸要求。可以通過對遠程計算機2處的對象進行哈希函數 操作來形成此關鍵字。優選實施例中的關鍵字具體設置為具有至少三個可服務的部分,第一所述部分代 表包含在對象內或由該對象組成的可執行指令,第二所述部分代表關于所述對象的數據, 并且第三所述部分代表對象的物理大小。第二部分中的關于對象的數據可以是任何或所有 其他形式的身份,諸如文件名稱、其在盤上的物理以及文件夾位置、其原始文件名稱、其創 建和修改日期、銷售商、產品和版本以及存儲在對象內的任何其他信息,其文件頭部或由遠 程計算機2保持的關于其的頭部;以及當創建、配置或在各自的遠程計算機2上運行對象 時,由對象發起或涉及該對象的事件。通常地,關鍵字中提供的信息可以包括這些元素中的 至少一個或者這些元素的任何兩個或更多個的任何組合。
在一個優選的實施例中,針對PE類型(微軟定義的可移動可執行文件)的所有可 執行文件(諸如(但不限于).exe和.dll文件)創建校驗和。根據文件的性質生成三種 類型的校驗和類型1 對文件的五個不同部分的求校驗和。這些包括引入表、代碼段的開始部分 和結束部分、以及整個文件的開始部分和結束部分。此類型應用于分析的極大多數文件;類型2 對于舊的DOS或16比特可執行文件,對整個文件求校驗和;類型3 對于超過一定預定大小的文件,將文件采樣為塊,然后求校驗和。對于小 于一定預定大小的文件,對整個文件求校驗和。對于求校驗和進程,原則上可能是任何技術。MD5(消息摘要算法5)是廣泛使用的 密碼哈希函數,其可以用于此目的。這允許僅通過查看校驗和的可執行元素并且在共享公共可執行代碼的兩個可執 行元素之間進行比較來生成核心校驗和。對于上述類型1校驗和,可以使用三個簽名進程。第一個定義了全部文件并且將 使用幾乎任何改變去改變文件內容。第二個試圖僅定義改變更少的進程的處理指令。第三 個利用文件的大小,其大量減少了不同大小的對象的潛在沖突。通過跟蹤具有獨立出現的 不同拷貝的所有簽名的出現,可以識別已經改變或已經從公共點創建但還沒有編輯以執行 新的、可能的惡意功能性的進程。此“元數據”使當前和新近設計的啟發式方法能夠在群體數據庫7中的數據上運 行。存儲在群體數據庫7中的數據提供對象的創建、配置、執行、行為、身份以及與影 響它或被它影響的其他對象的關系的廣泛結果。優選的中央啟發式方法使用五個不同的進程以確定對象是安全的、不安全的或可 疑的。第一所述進程使用從已經看到對象的所有遠程計算機2捕獲的和相關的名稱、位 置、銷售商、產品和版本信息的單個或多個。通過針對單個對象考慮多個這種信息,可以確 定可以用作對象的真實性和/或可信性度量的分數。大部分安全對象不傾向于使用大量多 個識別信息或位置。可以建立規則以考慮這種關于對象類型以及其位置的信息。例如,臨 時文件經常使用多個系統生成的文件名,該文件名在針對相同對象的每個遠程計算機上可 以是不同的。在幾乎沒有多個對象時,則提供參考點以在對先前使用的、識別信息的其他對 象的已知行為的比較中考慮它的行為。例如,與已知為not印ad. exe的一個或多個對象的 行為相比,表示not印ad. exe的一個版本的新對象可以具有其行為。此比較可以針對使用 相同或類似識別信息的單個其他對象或多個其他對象。以此方式,可以針對新對象識別新 的行為模式。而且,允許優選的實施例隨著時間管理對象的行為以識別新的行為模式,該新 的行為模式可以使得先前被認為是安全的對象的狀態被重新考慮。可替換地,基于身份的 分數可以連同其他對象的分數一起被考慮,或者連同組合考慮有此對象上的其他進程創建 的分數一起被考慮。第二所述進程使用其他對象影響該對象或其他對象由該對象影響的關系。例如, 可以分析哪個對象創建了此對象,哪些對象是此對象創建的,哪些對象創建了注冊關鍵字 以運行或配置此對象,哪些對象由此對象創建的注冊關鍵字所配置或具有由此對象創建的注冊關鍵字,等等。在這點上,基于一個對象在另一個對象上執行的事件,或基于另一個對 象在該對象上執行的事件,考慮該對象具有的關系。此簡單的1對1關系鏈提供了一系列 復雜的相關點,允許針對任何對象及其按事件的前輩(predecessor)或其按事件的后代 (issue)(即子進程以及sub子進程)來考慮遺傳(ancestral)關系。這允許評定分數來 描述其與已知的、未知的、已知安全的或已知不良對象或其組合的關聯和關系。具有特定關 系、多個關系或一類或另一類關系混合的對象可以因此被判斷為安全或不安全。可替換地, 可以連同其他分數一起考慮基于關系的分數,從而確定安全還是不安全。此數據還可以用 于直接或經由其他對象及其行為推導出相關的對象的多個因素。例如可能推導出一個對象 的行為可以被其到另一個對象的關聯或鏈接來影響或改變。例如,考慮由微軟利用Windows 系列操作系統提供的not印ad. exe。其具有有限范圍的功能,并且因此將不期望它執行多種 事件,諸如向另一個計算機傳輸數據或運行其他程序等。然而,notepad, exe的行為可以通 過諸如經由動態鏈接庫注入(DLL注入)而向它注入新代碼而修改。在此情況中,notepad, exe現在將具有通過代碼注入或到另一個對象的鏈接所推導出的新功能。使用定義對象之 間關系的數據,可以推導出程序的新行為可以被分配到與另一個對象的關聯。如果該新行 為是惡意的,那么可以適當地將一個或所有進程標記為不安全。捕獲行為的組合提供了基礎以確定對象是安全的還是不安全的。惡意軟件通常表 現出特定行為和特征。例如,惡意軟件經常需要自我持續。這表明當系統重啟或發生特定 事件時,其本身需要自動重啟。在特定位置創建對象以自動重啟或觸發執行是惡意軟件的 典型特征。替換Windows系統環境的核心對象是惡意軟件典型特征的另一個示例。通過提 供行為模式,可以自動確定對象是不安全的還是安全的。群體數據庫7中的群體數據集中 化提供了快速同化(assimilate)對象行為的能力,允許對惡意軟件的快速識別和確定。對 象還可以在其本身上執行事件,這可以在推導分數中考慮。第三所述進程包括時間和空間。相關數據包括何時第一次看到對象,何時最后看 到對象,已經看到其多少次,在給定的時間間隔中已經看到其多少次,以及其被看到的加速 度的提高或降低。此信息與確定遠程計算機的群體中的對象普遍性高度相關。基于這些度 量來評分,該分數可以用于確定對象是安全的、不安全的,還是過于普遍的使得在沒有非常 全面的檢查時不能允許其執行或傳播。在此情況中,可以臨時保持對象,或者可以阻止對象 執行未決的關于其行為或關系的其他信息。此分數還可以與來自于其他進程的分數組合使 用。時間也和包括但不限于行為和身份的其他信息組合高度相關。例如,在多態或隨機命 名對象的情況中,時間是有力的限定符。(每次多態病毒從一個計算機復制到另一個計算機 時,該多態病毒改變其加密算法以及相應的加密關鍵字,并且因此傳統測量方法難以對其 進行檢測)。基于其隨著時間的活動,可以經常將創建其他程序的程序認為是正常的或不正 常的。第四所述程序考慮對象的行為。這允許基于對象執行的事件類型或由對象本身 或其他對象對該對象執行的事件類型評定分數。群體數據庫7的集中式系統允許無限數 量的事件類型,并且可以考慮執行事件的對象或者是具有在其上執行事件的對象,或者以 上兩者。某些事件類型還涉及除對象之外的外部信息,例如,執行事件以與因特網聊天中繼 站點連接的程序、或修改諸如Windows主文件的非可執行文件的程序。對象的行為事件, 無論是任何事件的“參與者(actor)”(即,該對象對另一個對象做了某些事)或“承受者
12(victim)”(即,另一個對象對該對象做了某些事)可以以諸如組合方式、序列方式、空間方 式、出現或未出現方式、或其的任何組合的多種方式來考慮。優選的實施例中的行為事件可 能由遠程計算機2提供或者來自于其他外部源。進程可以孤立地考慮這些或將這些組合起 來考慮。而且,以下是優選的實施例的特征,當該對象影響其他對象或者其他對象影響該對 象時可以將行為事件與其他對象的狀態組合考慮。例如,如果創建的程序是安全的、不安全 的、新的、未知的或可疑的,則創建程序可以具有不同的分數。類似地,由已知的不良程序創 建的程序將很可能由于根據創建其的對象的狀態而具有分配給其創建事件的不同分數。第五所述進程考慮web頁面或腳本的行為。在此方面中,為web頁面和url的組合 分配唯一的身份,該身份允許跟蹤其行為,就像其是類似于任何其他可執行文件的對象。在 此示例中,web頁面可以執行事件,所述事件將正常地視為由web瀏覽器(例如IExplore. exe或Firefox. exe)執行的事件。優選的實施例用web瀏覽器的識別細節和簽名代替與瀏 覽器內顯示或執行的web頁面相關的“偽”對象身份。在此方面中,可以以與其他對象相同 的方式將涉及的web頁面和/或web站點的狀態確定為安全、不安全、未知或可疑的。web 頁面的“偽”對象身份還允許優選的實施例阻止、插入或限制web頁面或web站點的功能性, 用于防止某些或所有其潛在的不安全行為,或者用于向遠程用戶提供資格信息以向他們指 導關于web站點、web頁面或它們的內容的安全性。在其他類型中,捕獲的元數據的類型可能是“事件”這些定義對象的動作或行為,該對象影響另一個對象或某些其他實體。該 事件具有三個主要部分執行動作的對象(“參與者”)的關鍵字,執行的動作(“事件類 型”),以及該對象的關鍵字或在其上執行動作的其他實體的身份(“承受者”)。雖然簡單, 但是此結構允許定義無限的一系列行為和關系。事件的三個部分示例可能是
權利要求
1.一種確定遠程計算機具有防止惡意軟件的保護的方法,所述方法包括在基計算機處接收所有或選擇的安全產品的細節,所述安全產品在所述遠程計算機上 按時間點操作;從連接到所述基計算機的其他遠程計算機接收類似信息;以及,識別具有安全產品的特定組合的所述其他遠程計算機沒有識別出來的任何惡意軟件 進程。
2.根據權利要求1所述的方法,包括根據所述識別向所述遠程計算機的用戶提供所 述遠程計算機可能易受所述惡意軟件進程攻擊的信息。
3.根據權利要求1或2所述的方法,其中全部或選擇的安全產品的細節包括所述安全 產品的名稱、版本以及裝載的簽名文件。
4.一種用于確定遠程計算機具有防止惡意軟件的保護的裝置,所述裝置包括基計算機,被構建和安排為接收所有或選擇的安全產品的計算機細節,所述安全產品 在所述遠程計算機上按時間點操作;所述基計算機被構建和安排為從連接到所述基計算機的其他遠程計算機接收類似的 信息;以及所述基計算機被構建和安排為識別具有安全產品的特定組合的所述其他遠程計算機 沒有識別出來的任何惡意軟件進程。
5.根據權利要求4所述的裝置,其中所述基計算機被構建和安排為根據所述識別向所 述遠程計算機的用戶提供所述遠程計算機可能易受所述惡意軟件進程攻擊的信息。
6.根據權利要求4或5所述的裝置,其中全部或選擇的安全產品的細節包括所述安全 產品的名稱、版本以及裝載的簽名文件。
7.一種確定遠程計算機具有防止惡意軟件的保護的設備,所述設備包括用于在基計算機處接收所有或選擇的安全產品的細節的裝置,所述安全產品在所述遠 程計算機上按時間點操作;用于從連接到所述基計算機的其他遠程計算機接收類似信息的裝置;以及,用于識別具有安全產品的特定組合的所述其他遠程計算機沒有識別出來的任何惡意 軟件進程的裝置。
8.根據權利要求7所述的設備,包括用于根據所述識別向所述遠程計算機的用戶提 供所述遠程計算機可能易受所述惡意軟件進程攻擊的信息的裝置。
9.根據權利要求7或8所述的設備,其中全部或選擇的安全產品的細節包括所述安全 產品的名稱、版本以及裝載的簽名文件。
全文摘要
本發明的一個方面提供一種將計算機對象分類為惡意軟件的方法,包括在基計算機處從多個遠程計算機中的每一個接收關于計算機對象的數據,該對象或類似對象存儲在遠程計算機上。在基計算機中,比較從多個計算機接收的關于計算機對象的數據。根據所述比較,將計算機對象分類為惡意軟件。在一個實施例中,關于計算機對象的數據包括以下中的一個或多個包含在對象內或者由所述對象組成的可執行指令;對象的大小;對象的名稱;對象在各個遠程計算機上的對象邏輯存儲位置或路徑;對象的銷售商;與對象相關聯的軟件產品和版本;以及當創建、配置對象或對象在各個遠程計算機上運行時,由對象發起的事件或涉及對象的事件。
文檔編號G06F21/57GK102096784SQ20111003612
公開日2011年6月15日 申請日期2006年6月30日 優先權日2005年6月30日
發明者D·哈特, M·哈特維希, M·莫里斯, P·斯塔布斯 申請人:普瑞維克斯有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影