專利名稱:具有使用網(wǎng)絡(luò)詢問的最優(yōu)定義分發(fā)的集中式掃描器數(shù)據(jù)庫的制作方法
具有使用網(wǎng)絡(luò)詢問的最優(yōu)定義分發(fā)的集中式掃描器數(shù)據(jù)庫技術(shù)領(lǐng)域
本披露總體上涉及計算機(jī)安全,并且更具體地涉及檢測惡意軟件。
技術(shù)背景
惡意軟件如計算機(jī)病毒、蠕蟲、特洛伊木馬、以及間諜軟件對現(xiàn)代計算機(jī)系統(tǒng)構(gòu)成 持續(xù)的威脅。為了與惡意文件做斗爭,計算機(jī)系統(tǒng)典型地運行試圖檢測、識別、并且將惡意 文件去除的防病毒軟件。常規(guī)的防病毒軟件存儲了一個定義數(shù)據(jù)庫,其中每個定義對應(yīng)于 已知惡意軟件。防病毒軟件周期性地對客戶端機(jī)器上的文件進(jìn)行掃描以檢測與已存儲的定 義相匹配的惡意軟件。然后,可以使被檢出惡意軟件失效或?qū)⑵淝宄?br>
雖然防病毒程序能夠檢測并去除惡意軟件,但正在持續(xù)不斷地產(chǎn)生的新的惡意軟 件被設(shè)計為圍繞現(xiàn)有程序來工作。因此,重要的是經(jīng)常對這些防病毒定義進(jìn)行更新這樣使 得新發(fā)布的惡意軟件可以被檢出。這些更新典型地是由防病毒程序銷售商提供的。
近年來,新的已知惡意軟件的數(shù)量已經(jīng)急劇增長,使得分發(fā)更新日益成為一個挑 戰(zhàn)性的問題。經(jīng)常的更新可以對客戶端機(jī)器造成數(shù)據(jù)過載的問題,這些機(jī)器必須持續(xù)接收 并存儲新的定義而同時繼續(xù)存儲并維護(hù)全部較舊的定義。這對于具有有限的物理內(nèi)存的客 戶端機(jī)器,如自動取款機(jī)(ATM),或具有有限的網(wǎng)絡(luò)帶寬的機(jī)器而言是特別棘手的。另外,將 大量的定義分發(fā)給客戶端機(jī)器導(dǎo)致定義分發(fā)者們的很大成本。
一種解決這個問題的方法是通過清除不再認(rèn)為構(gòu)成持續(xù)威脅的較舊定義來減少 由防病毒軟件使用的有效定義的數(shù)目。然而,如果這些較舊的威脅再次出現(xiàn),這種方法使得 客戶端易于受到攻擊。另一種常規(guī)的方法是提供一個中央防病毒服務(wù)器用于存儲所有的定 義而不是將這些定義分發(fā)給本地機(jī)器。然而,雖然這種方法降低了對本地存儲的需求,但它 顯著地增加了客戶端與服務(wù)器之間的網(wǎng)絡(luò)流量并且在總體性能和成本上并沒有提供顯著 的改進(jìn)。因此,所需要的是一種用于將惡意軟件定義分發(fā)給客戶端裝置的改進(jìn)的系統(tǒng)。發(fā)明內(nèi)容
一種系統(tǒng)、方法、以及計算機(jī)程序產(chǎn)品檢測惡意軟件。在客戶端裝置中,掃描引擎 對輸入文件應(yīng)用一個過濾程序以檢測是否該輸入文件具有與一個已知惡意軟件定義集合 中的一個惡意軟件定義的特征相匹配的特征?;谠撨^濾程序、響應(yīng)于確定該輸入文件具 有匹配的特征,使用針對已知惡意軟件的定義對該文件進(jìn)行掃描。掃描引擎基于該掃描來 確定是否該輸入文件包括惡意軟件。
—個中央服務(wù)器基于該已知惡意軟件定義的集合而生成該過濾程序并且將該過 濾程序分發(fā)給客戶端。中央服務(wù)器還針對一個已知惡意軟件定義的子集確定要分發(fā)給這些 客戶端的定義。在一個實施方案中,當(dāng)對該文件進(jìn)行掃描時,掃描引擎確定是否該定義是被 本地存儲的。如果該定義未被本地存儲,則客戶端將從服務(wù)器請求該定義并且該服務(wù)器將 該定義發(fā)送至該客戶端。
在本說明書中說明的這些特征及優(yōu)點并非包攬無遺的,并且特別是很多額外的特征和優(yōu)點通過參看附圖、說明書、以及權(quán)利要求書將對本領(lǐng)域的普通技術(shù)人員變得清楚。另 外,應(yīng)當(dāng)指出,在本說明書中使用的語言原則上是被選擇用于可讀性以及指導(dǎo)性目的,而并 非被選擇用于劃分或限定本發(fā)明的主題。
所披露的實施方案具有其他的優(yōu)點和特征,這些優(yōu)點和特征將從以下詳細(xì)說明、 所附權(quán)利要求書、以及附圖中變得更清楚,在附圖中
圖1是根據(jù)一個實施方案的一種計算環(huán)境的高級框圖。
圖2是根據(jù)一個實施方案的一種中央服務(wù)器的框圖。
圖3是根據(jù)一個實施方案的一種典型的計算機(jī)系統(tǒng)的高級框圖。
圖4是根據(jù)一個實施方案的一個客戶端裝置的內(nèi)存和存儲部件的框圖。
圖5是根據(jù)一個實施方案的一種掃描引擎的框圖。
圖6是一個流程圖,展示了根據(jù)一個實施方案的用于檢測惡意軟件的過程。
具體實施方式
現(xiàn)在將具體參見多個實施方案,在附圖中展示了這些實施方案的多個實例。應(yīng)注 意到在任何可行的情況下在圖示中可能使用類似的或相同的參考號并且可表明類似的或 相同的功能性。這些圖示僅為展示的目的描繪了多個實施方案。本領(lǐng)域的普通技術(shù)人員將 容易地從以下說明中認(rèn)識到,可以使用在此所展示的這些結(jié)構(gòu)以及方法的替代實施方案而 不背離在此說明的原理。
圖1是根據(jù)一個實施方案的一種計算環(huán)境100的高級框圖。計算環(huán)境100包括由 網(wǎng)絡(luò)102連接的一個中央服務(wù)器130以及多個客戶端104。為了簡化本說明,在圖1中僅示 出了三個客戶端104。計算環(huán)境100的實施方案可以具有連接到網(wǎng)絡(luò)102的很多額外的客 戶端104。
在一個實施方案中,客戶端104是由一個或多個使用者使用的進(jìn)行多種活動一臺 計算機(jī),這些活動包括下載、安裝、執(zhí)行文件、和/或瀏覽通過網(wǎng)絡(luò)102可訪問的網(wǎng)站。在 其他的實施方案中,客戶端104是一個可上網(wǎng)的裝置而不是一臺計算機(jī),如個人數(shù)字助理 (PDA)、移動電話、傳呼機(jī)、電視機(jī)頂盒,等等??蛻舳?04易于受到惡意軟件(如病毒、蠕蟲、 特洛伊木馬程序、間諜軟件,等等)的攻擊并且典型地運行防病毒軟件以檢測、去除、和/或 阻截這種惡意軟件。以下參見圖3更加詳細(xì)地說明了用作客戶端104的一種計算機(jī)系統(tǒng)的 實施方案。
網(wǎng)絡(luò)102代表客戶端104和中央服務(wù)器130之間的通信路徑。在一個實施方案 中,網(wǎng)絡(luò)102是互聯(lián)網(wǎng)。網(wǎng)絡(luò)102還可以使用專用的或私有的通信鏈路,它們不必是互聯(lián)網(wǎng) 的一部分。在一個實施方案中,網(wǎng)絡(luò)102使用多種標(biāo)準(zhǔn)的通信技術(shù)和/或協(xié)議。因此,網(wǎng)絡(luò) 102可以包括使用如以太網(wǎng)、802. 11、綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)、數(shù)字用戶線(DSL)、異步傳輸 模式(ATM)等等技術(shù)的鏈路。類似地,用在網(wǎng)絡(luò)102上的網(wǎng)絡(luò)協(xié)議可以包括傳輸控制協(xié)議 /互聯(lián)網(wǎng)協(xié)議(TCP/IP)、超文本傳輸協(xié)議(HTTP)、簡單郵件傳輸協(xié)議(SMTP)、文件傳輸協(xié)議 (FTP),等等??梢允褂冒ǔ谋緲?biāo)記語言(HTML)、可擴(kuò)展標(biāo)記語言(XML)等等的技術(shù)和 /或格式來表示在網(wǎng)絡(luò)102上交換的數(shù)據(jù)。此外,所有的或部分的鏈路可以用常規(guī)的加密技術(shù)(如安全套接層(SSL)、安全HTTP和/或虛擬專用網(wǎng)絡(luò)(VPN))加密。在另一個實施方案 中,這些實體可以使用定制的和/或?qū)iT的數(shù)據(jù)通信技術(shù),而不是以上說明的那些或除以 上說明的那些之外。
中央服務(wù)器130可以包括一個或多個標(biāo)準(zhǔn)計算機(jī)系統(tǒng),如以下說明的圖3中的計 算機(jī)系統(tǒng)。中央服務(wù)器130通過網(wǎng)絡(luò)102與多個客戶端104通信以便將防病毒更新分發(fā)給 這些客戶端104。在一個實施方案中,中央服務(wù)器130是可以通過互聯(lián)網(wǎng)訪問的、并且由一 個第三方供應(yīng)商來維護(hù)??商娲兀醒敕?wù)器130可以由一個局部企業(yè)網(wǎng)絡(luò)的管理員來 維護(hù)。例如,在商業(yè)企業(yè)中,企業(yè)可以維護(hù)它自己的中央服務(wù)器130以便將更新分發(fā)給它的 所有客戶端104而不依賴于外部服務(wù)。
中央服務(wù)器130可以周期性地將更新的惡意軟件定義分發(fā)給客戶端104??商娲?地,當(dāng)懷疑有潛在的威脅并且該定義在本地不可用時,這些客戶端104可以針對一個或多 個特定的定義詢問中央服務(wù)器130。在一個實施方案中,中央服務(wù)器130只向每個客戶端 104分發(fā)一個或多個過濾程序而不是分發(fā)完整的惡意軟件定義。這個或這些過濾程序是從 這些惡意軟件定義中生成的并且被用于確定是否正在被掃描的輸入文件具有與已知惡意 軟件定義中的那些特征相匹配的特征。在掃描過程中,客戶端104對正在被掃描的文件應(yīng) 用一個過濾程序并且該過濾程序輸出一個肯定的或否定的檢測。在一個實施方案中,該過 濾程序被設(shè)計使得可能偶爾發(fā)生誤肯定檢測,但是從不發(fā)生誤否定檢測。例如,在一些實例 中,當(dāng)實際上被過濾的文件中不存在惡意軟件時,該過濾程序可能不正確地輸出對惡意軟 件的一個肯定的檢測。然而,當(dāng)惡意軟件存在,只要該惡意軟件定義被包括在用于生成該過 濾程序的已知的集合中,則該過濾程序?qū)牟粫徽_地輸出一個否定檢測。有利地是,該 過濾程序包括比完整定義顯著地少的數(shù)據(jù)并且因此減少了對客戶端104所要求的存儲空 間和帶寬。
除了生成并分發(fā)該一個或多個過濾程序之外,中央服務(wù)器130存儲對于所有的已 知惡意軟件的一個完整定義的集合。在掃描過程中,如果所應(yīng)用的過濾程序檢出了潛在的 惡意軟件,客戶端104可以詢問中央服務(wù)器130以檢索完整定義。然后,客戶端104使用完 整定義對該文件進(jìn)行掃描以確定是否該過濾程序結(jié)果是真肯定(即,所過濾的文件實際上 包括惡意軟件)或誤肯定(即,所過濾的文件實際上不包括惡意軟件)。在一個實施方案 中,中央服務(wù)器130還針對一個已知惡意軟件定義的子集將完整定義分發(fā)給客戶端104。例 如,中央服務(wù)器能夠分發(fā)為被認(rèn)為構(gòu)成最嚴(yán)重威脅的惡意軟件的定義(例如,對于最常用 的30%的惡意軟件的定義)。這樣,對于最有可能被檢出的惡意軟件的完整定義可以被本 地檢索,從而減少了網(wǎng)絡(luò)流量。
圖2展示了中央服務(wù)器130的一種示例性實施方案。中央服務(wù)器130包括一個風(fēng) 險評估模塊202、一個分發(fā)服務(wù)器204、一個定義生成模塊206、一個過濾程序生成模塊208、 一個定義數(shù)據(jù)庫210、以及一個過濾程序數(shù)據(jù)庫212。無論何時發(fā)現(xiàn)了新的惡意軟件,定義 生成模塊206生成對于已知惡意軟件的完整定義。在一個實施方案中,該完整定義包括一 個或多個簽名,這些簽名包括已知在惡意軟件中存在的特征字節(jié)模式??商娲兀摱x可 以包括基于通常行為檢測惡意軟件的一種探試法。典型地定義是基于來自安全分析員的輸 入而生成的,這些分析員檢查并分析該惡意軟件的多個實例。一旦生成,這些完整定義被存 儲在定義數(shù)據(jù)庫210中。
風(fēng)險評估模塊202評估每個已知惡意軟件威脅的相對危險性并且確定要分發(fā)給 客戶端104的一個定義的子集。剩余的定義僅被存儲在中央服務(wù)器130中。評估模塊202 可以周期性地執(zhí)行以便重新評估風(fēng)險并且相應(yīng)地分發(fā)已更新的定義集合。在一個實施方案 中,風(fēng)險評估模塊202收集來自客戶端裝置104的數(shù)據(jù)并且使用這個信息來確定惡意軟件 的相對危險性。例如,風(fēng)險評估模塊202可以監(jiān)測由中央服務(wù)器130接收的針對一個具體 定義的詢問次數(shù)。如果中央服務(wù)器130對于一個具體的定義收到高頻率的詢問,那么風(fēng)險 評估模塊202可以確定該定義應(yīng)當(dāng)被分發(fā)給這些客戶端104。通過分發(fā)最常用的定義,可以 減少中央服務(wù)器130和客戶端104之間的網(wǎng)絡(luò)流量。
過濾程序生成模塊208基于這些惡意軟件定義生成一個或多個過濾程序并且將 這個或這些過濾程序存儲在過濾程序數(shù)據(jù)庫212中。在一個實施方案中,過濾程序生成模 塊208從該惡意軟件定義的集合中生成一個或多個Bloom過濾程序。Bloom過濾程序是一 種過濾程序,它用于確定一個要素是否是一個集合中(例如,該已知惡意軟件文件的集合) 的一員。為了生成Bloom過濾程序,過濾程序生成模塊208以多個位值的一個空陣列開始。 在每個已知惡意軟件的定義上計算出多個散列,其中每個散列函數(shù)的輸出提供指向該位陣 列中的一個位置的指針。然后,由這些散列函數(shù)輸出的這些位置中的每一個被設(shè)置為1,而 其余的位置被設(shè)置為0??墒褂玫纳⒘泻瘮?shù)的許多實例對于本領(lǐng)域的普通技術(shù)人員是已知 的。
為了應(yīng)用該過濾程序,對輸入文件應(yīng)用同一個集合的散列函數(shù)并且返回指向該陣 列中的多個位置的多個指針。如果這些位置中的每一個具有一個為1的位值,則該過濾程 序會輸出了一個肯定檢測,該肯定檢測表明該輸入文件具有與該已知惡意軟件定義的集合 中的一個定義相匹配的特征。另外,該過濾程序可以基于由這些散列函數(shù)輸出的多個陣列 位置的組合來確定匹配的惡意軟件的身份。如果這些位置中的任何一個是0,那么該輸入文 件不在該集合中(即,否定檢測)。Bloom過濾程序的一個特征是對于小百分比的情況的誤 肯定是可能的,但是該過濾程序從不會返回誤否定。
可以通過僅將很少量的數(shù)據(jù)(這些位陣列的值)分發(fā)給客戶端104而不是分發(fā)這 些完整定義來有利地實施這種類型的過濾程序。在一些實施方案中,過濾程序生成模塊208 可以生成對于不同的定義子組的多個過濾程序。通過增加過濾程序的數(shù)目,在向這些客戶 端104分發(fā)更多的過濾程序數(shù)據(jù)的代價下,可以降低誤肯定的百分比。
分發(fā)服務(wù)器204與網(wǎng)絡(luò)102進(jìn)行通信以便將存儲在過濾程序數(shù)據(jù)庫212中的一個 或多個過濾程序分發(fā)給客戶端104。分發(fā)服務(wù)器204還可以將存儲在定義數(shù)據(jù)庫210中的 這些定義的一個子集分發(fā)給客戶端104。例如,分發(fā)服務(wù)器204可以按一個百分比來分發(fā)最 有可能被檢出的定義。此外,當(dāng)服務(wù)器130收到針對未被客戶端104本地存儲的一個具體 定義的詢問時,分發(fā)服務(wù)器204可以向客戶端104提供所請求的定義。
圖3是一個高級框圖,展示了用作一個客戶端104或中央機(jī)構(gòu)130的一臺典型的 計算機(jī)300。所展示的是連接到總線304上的一個處理器302。同樣連接到總線304上的 是內(nèi)存306、存儲裝置308、鍵盤310、圖形適配器312、指向裝置314、以及網(wǎng)絡(luò)適配器316。 顯示器318被連接到圖形適配器312上。
處理器302可以是任何通用的處理器,如INTELx86可兼容的CPU。在一個實施方 案中,存儲裝置308是硬盤驅(qū)動器但也可以是能夠存儲數(shù)據(jù)的任何其他裝置,如可寫的光盤(⑶)或DVD、或固態(tài)內(nèi)存裝置。內(nèi)存306可以是例如固件、只讀存儲器(ROM)、非易失性隨 機(jī)存取存儲器(NVRAM)、和/或RAM,并且保存由處理器302使用的指令和數(shù)據(jù)。指向裝置 314可以是鼠標(biāo)、軌跡球、或其他類型的指向裝置,并且與鍵盤310 —起使用以便將數(shù)據(jù)輸 入計算機(jī)300中。圖形適配器312在顯示器218上顯示圖像和其他信息。網(wǎng)絡(luò)適配器316 將計算機(jī)300連接到網(wǎng)絡(luò)302上。
如本領(lǐng)中所知的,計算機(jī)300被適配為執(zhí)行多個計算機(jī)程序模塊。如在此所使用 的,術(shù)語“模塊”指用于提供特定的功能性的計算機(jī)程序邏輯和/或數(shù)據(jù)。可以在硬件、固 件、和/或軟件中實施一個模塊。在一個實施方案中,這些模塊被存儲在存儲裝置308上, 被加載入內(nèi)存306中,并且被處理器302執(zhí)行。
由圖1的這些實體使用的計算機(jī)系統(tǒng)300的類型可以根據(jù)被該實體使用的實施方 案以及處理能力而改變。例如,一部移動電話的客戶端104典型地具有有限的處理能力、一 個小型顯示器318,并且可能沒有指向裝置314。用作中央服務(wù)器130的計算機(jī)系統(tǒng)300可 能具有更大的處理能力但沒有顯示器318或鍵盤310。
圖4展示了客戶端裝置104的內(nèi)存306和存儲器308的一個示例性實施方案。內(nèi) 存306包括用于對存儲在存儲器308中的本地文件408進(jìn)行掃描的一個掃描引擎402。盡 管已說明掃描引擎402位于內(nèi)存306中,但是該掃描引擎也可以被存儲在存儲器308中并 且當(dāng)執(zhí)行時被下載到內(nèi)存306中。存儲器308還存儲被掃描引擎402用來對本地文件408 進(jìn)行掃描的一個或多個過濾程序404以及一個完整定義的集合406。在一個實施方案中, 這個或這些過濾程序404是基于所有已知惡意軟件的,而僅針對一個已知惡意軟件的子集 (例如,最常用的30%)來存儲多個完整定義406。
圖5展示了掃描引擎402的一個示例性實施方案。掃描引擎402包括一個過濾模 塊504、一個全檢測模塊506、以及一個服務(wù)器詢問模塊508。過濾模塊504在掃描處理過 程中對本地文件408應(yīng)用一個或多個已存儲的過濾程序404。應(yīng)用過濾程序404包括計算 該文件408的一個散列,該計算將產(chǎn)生一個肯定的檢測結(jié)果或者一個否定的檢測結(jié)果。若 結(jié)果是肯定檢測,則全部檢測模塊506使用完整定義406對這個肯定性檢出的文件408進(jìn) 行掃描。完整定義406可能是在存儲器308中本地可供使用的或者可能從中央服務(wù)器130 檢索到。當(dāng)本地沒有發(fā)現(xiàn)完整定義時,服務(wù)器詢問模塊508通過網(wǎng)絡(luò)102與中央服務(wù)器130 通信以便從服務(wù)器130請求一個完整定義。然后,完整定義模塊406應(yīng)用定義406來確定 是否惡意軟件確實已經(jīng)被檢出或者是否過濾程序404已經(jīng)產(chǎn)生了一個誤肯定。
圖6展示了由掃描引擎402執(zhí)行的用于檢測惡意軟件的過程的一種實施方案。掃 描引擎402的過濾模塊504首先在步驟602對將有待掃描的文件408應(yīng)用過濾程序404并 且在步驟604確定是否造成一個肯定檢測。若不存在肯定檢測,則掃描引擎402在步驟618 確定該文件不是惡意軟件。應(yīng)注意到可以肯定地做出這個確定,因為過濾程序404被設(shè)計 為排除了誤否定的可能性。若過濾模塊504產(chǎn)生了一個肯定檢測,則掃描引擎402在步驟 608在本地存儲器308中針對該惡意軟件的完整定義來搜索這些定義306以便確定是否該 定義是本地存儲的。若沒有在本地發(fā)現(xiàn)該定義,則服務(wù)器詢問模塊508在步驟610針對該 完整定義詢問中央服務(wù)器130。若該定義已經(jīng)是本地存儲的,則跳過詢問步驟610。然后, 全檢測模塊506在步驟612將該文件與這個完整定義進(jìn)行比較以便在614確定是否存在匹 配。若沒有檢出匹配,則沒有發(fā)現(xiàn)惡意軟件(即,該過濾程序結(jié)果是一個誤肯定)。若發(fā)現(xiàn)了這個完整定義,則掃描引擎402在步驟616確定檢出了惡意軟件。一旦檢出了惡意軟件, 掃描引擎402可以向該客戶端裝置的使用者提供一份危險報告,該危險報告表明所檢出的 惡意軟件。另外,掃描引擎402可以使用任何數(shù)目的常規(guī)技術(shù)來使該惡意軟件失效或去除 該惡意軟件。
在一個實施方案中,當(dāng)檢出了誤肯定,這個或這些過濾程序可以進(jìn)行修改以便降 低該過濾程序在將來應(yīng)用中再次發(fā)生誤肯定的可能性。例如,掃描引擎402可以向中央服 務(wù)器130發(fā)送一份報告來標(biāo)識生成該誤肯定的文件??梢苑治鲈撜`肯定并且基于該分析可 以生成一個新的過濾程序??商娲?,服務(wù)器130可以向客戶端104提供元數(shù)據(jù),該元數(shù)據(jù) 指示該客戶端在該過濾程序的未來應(yīng)用中忽略類似的檢測。
以上說明的一些部分就在信息上運作的算法以及符號表示而言說明了本發(fā)明的 這些實施方案。這些算法說明和表示是數(shù)據(jù)處理領(lǐng)域中的普通技術(shù)人員通常使用的,以便 將他們工作的本質(zhì)內(nèi)容有效率地傳達(dá)給本領(lǐng)域的其他技術(shù)人員。盡管被功能性地、計算性 地、或邏輯性地予以說明,這些操作應(yīng)當(dāng)被理解為有待由計算機(jī)程序或等效的電路、微代 碼、或諸如此類來實施。此外,已經(jīng)不時地證明方便的是將這些操作安排稱為模塊而不失通 用性。所說明的操作以及它們相關(guān)聯(lián)的模塊可以被實施在軟件、固件、硬件、或它們的任何 組合之中。
如在此所使用的,對“一個實施方案”或“一種實施方案”的任何引用意味著結(jié)合 本實施方案說明的一種具體的要素、特征、結(jié)構(gòu)、或特點被包括在至少一個實施方案中。在 本說明書的不同地方出現(xiàn)的短語“在一個實施方案中”并非必需全部都指同一個實施方案。
如在此所使用的,術(shù)語“包括”、“包含”、“包括了”、“包含了”、“具有”或它們的任何 其他的變體是旨在覆蓋一種非排他性的包容。例如,包括一個要素列表的一種過程、方法、 物件、或裝置并非必需限于僅僅是那些要素而是可以包括沒有明確地在這種過程、方法、物 件、或裝置中列出的或固有的其他要素。此外,除非明確地相反地陳述,“或者”指一種可兼 容的或者而不是一種排他性的或者。例如,條件A或者B被以下任何一項滿足:A是真(或 存在)并且B是假(或不存在),A是假(或不存在)并且B是真(或存在),以及A和B 二 者均是真(或存在)。
另外,“一種”或“一個”的使用被用于在此說明這些實施方案的多個要素和部件。 這樣做僅是為了方便起見并且給出本發(fā)明的一種通用含義。這種描述應(yīng)被解讀為包括一個 或至少一個并且單數(shù)還包括復(fù)數(shù),除非它顯而易見另有它意。
在閱讀本披露時,本領(lǐng)域的那些技術(shù)人員還應(yīng)認(rèn)識到通過這些在此披露的原理用 于垃圾郵件檢測和分析的系統(tǒng)及過程的額外的可替代的結(jié)構(gòu)的以及功能的設(shè)計。因此,雖 然已經(jīng)展示并說明了多個具體的實施方案和應(yīng)用程序,應(yīng)當(dāng)理解,本發(fā)明并不限于在此披 露的精確的構(gòu)造和部件并且可以于在此披露的本發(fā)明的方法以及裝置的安排、操作和細(xì)節(jié) 中做出對本領(lǐng)域的那些技術(shù)人員而言將是明顯的不同的修改、改變和變更,而不背離由所 附權(quán)利要求書限定的這些實施方案的范圍。
權(quán)利要求
1.一種用于檢測惡意軟件的計算機(jī)實施的方法,該方法包括對一個輸入文件應(yīng)用一個過濾程序以檢測是否該輸入文件具有與一個惡意軟件定義 的那些特征相匹配的特征,該惡意軟件定義是在多種已知惡意軟件定義的一個集合之中;基于應(yīng)用該過濾程序、響應(yīng)于該輸入文件具有與該惡意軟件定義中的那些特征相匹配 的特征,使用該惡意軟件定義對該輸入文件進(jìn)行掃描;并且基于該掃描來確定是否該輸入文件包括惡意軟件。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括基于應(yīng)用該過濾程序、響應(yīng)于該輸入文件具有與該惡意軟件定義中的那些特征相匹配 的特征,確定是否該惡意軟件定義是本地存儲的;并且響應(yīng)于該惡意軟件定義未被本地存儲,詢問一個中央服務(wù)器以獲取該惡意軟件定義。
3.如權(quán)利要求1所述的方法,進(jìn)一步包括由一個客戶端裝置接收來自該已知惡意軟件定義的集合的一個已知惡意軟件定義的 子集;接收該過濾程序,其中該過濾程序是基于來自該已知惡意軟件定義的集合的多個惡意 軟件定義;并且將該過濾程序以及該已知惡意軟件定義的子集本地存儲在該客戶端裝置中。
4.如權(quán)利要求3所述的方法,其中所接收的用于本地存儲的該已知惡意軟件定義的子 集包括對于最有可能被該客戶端裝置檢出的惡意軟件的多個惡意軟件定義。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括從一個中央服務(wù)器接收一次更新,該更新包括基于一個已知惡意軟件的更新的集合所 生成的一個更新的過濾程序。
6.如權(quán)利要求1所述的方法,其中該過濾程序包括被適配為在該輸入文件上計算多個 散列函數(shù)的一個Bloom過濾程序,其中這些散列函數(shù)的輸出表明是否該輸入文件具有與該 已知惡意軟件定義的集合中的任何一個相匹配的特征。
7.如權(quán)利要求6所述的方法,其中對該輸入文件應(yīng)用Bloom過濾程序能夠產(chǎn)生一個惡 意軟件的誤肯定檢測但是不能夠產(chǎn)生一個誤否定檢測。
8.如權(quán)利要求1所述的方法,其中該過濾程序是根據(jù)以下步驟生成的,這些步驟包括在每個惡意軟件定義上計算多個散列函數(shù);并且基于這些散列函數(shù)的輸出對該過濾程序進(jìn)行定義。
9.一種用于檢測惡意軟件的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括一種計算機(jī)可讀 存儲媒質(zhì),該媒質(zhì)包含計算機(jī)程序代碼用于對一個輸入文件應(yīng)用一個過濾程序以檢測是否該輸入文件具有與一個已知惡意軟件 定義的集合中的一個惡意軟件定義的那些特征相匹配的特征;基于應(yīng)用該過濾程序、響應(yīng)于具有與該惡意軟件定義中的那些特征相匹配的特征,使 用該惡意軟件定義對該輸入文件進(jìn)行掃描;并且基于該掃描來確定是否該輸入文件包括惡意軟件。
10.如權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中該計算機(jī)可讀存儲媒質(zhì)包含計算機(jī)程 序代碼用于基于應(yīng)用該過濾程序、響應(yīng)于該輸入文件具有與該惡意軟件定義中的那些特征相匹配的特征,確定是否該惡意軟件定義是本地存儲的;并且響應(yīng)于該惡意軟件定義未被本地存儲,詢問一個中央服務(wù)器以獲取該惡意軟件定義。
11.如權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中該計算機(jī)可讀存儲媒質(zhì)包含計算機(jī)程 序代碼用于由一個客戶端裝置從該已知惡意軟件定義的集合接收一個已知惡意軟件定義的子集;接收該過濾程序,其中該過濾程序是基于該已知惡意軟件定義的集合中的多個惡意軟 件定義;并且將該過濾程序以及該已知惡意軟件定義的子集本地存儲在該客戶端裝置中。
12.如權(quán)利要求11所述的計算機(jī)程序產(chǎn)品,其中所接收的用于本地存儲的該已知惡意 軟件定義的子集包括對于最有可能被該客戶端裝置檢出的惡意軟件的多個惡意軟件定義。
13.如權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中該計算機(jī)可讀存儲媒質(zhì)包含計算機(jī)程 序代碼用于從一個中央服務(wù)器接收一次更新,該更新包括基于一個已知惡意軟件的更新的集合所 生成的一個更新的過濾程序。
14.如權(quán)利要求所述9的計算機(jī)程序產(chǎn)品,其中該過濾程序包括被適配為在該輸入文 件上計算多個散列函數(shù)的一個Bloom過濾程序,其中這些散列函數(shù)的輸出表明是否該輸入 文件具有與該已知惡意軟件定義的集合中的任何一個相匹配的特征。
15.如權(quán)利要求14所述的計算機(jī)程序產(chǎn)品,其中對該輸入文件應(yīng)用Bloom過濾程序能 夠產(chǎn)生一個惡意軟件的誤肯定檢測但是不能夠產(chǎn)生一個誤否定檢測。
16.如權(quán)利要求所述9的計算機(jī)程序產(chǎn)品,其中該過濾程序是根據(jù)以下步驟生成的,這 些步驟包括在每個惡意軟件定義上計算多個散列函數(shù);并且基于這些散列函數(shù)的輸出對該過濾程序進(jìn)行定義。
17.一種用于將多個惡意軟件定義分發(fā)給客戶端裝置的方法,該方法包括生成來自一個已知惡意軟件定義的集合的一個過濾程序,其中該過濾程序檢測是否一 個輸入文件具有與該已知惡意軟件定義的集合的那些特征相匹配的特征;將該過濾程序分發(fā)給該客戶端裝置;并且將來自該已知惡意軟件定義的集合的一個惡意軟件定義的子集與該過濾程序一起分 發(fā)給該客戶端裝置,該已知惡意軟件定義的集合被用來生成該過濾程序。
18.如權(quán)利要求17所述的方法,進(jìn)一步包括接收來自該客戶端裝置的一個詢問,該詢問是對于未在已分發(fā)給該客戶端的已知惡意 軟件定義的子集中的一個定義;并且響應(yīng)于該詢問,將所詢問的定義發(fā)送至該客戶端裝置。
19.如權(quán)利要求17所述的方法,進(jìn)一步包括評估該已知惡意軟件定義的集合以確定要分發(fā)給該客戶端裝置的已知惡意軟件定義 的子集,其中該子集包括最有可能被該客戶端裝置檢出的多個惡意軟件定義。
20.如權(quán)利要求17所述的方法,進(jìn)一步包括基于來自該客戶端裝置的對于多個惡意軟件定義的詢問頻率,對要分發(fā)給該客戶端裝置的該已知惡意軟件定義的子集進(jìn)行更新。
全文摘要
一種系統(tǒng)和方法基于來自一個中央服務(wù)器的部分分發(fā)的惡意軟件定義來檢測客戶端上的惡意軟件。一個服務(wù)器存儲對于已知惡意軟件的惡意軟件定義。該服務(wù)器基于這些惡意軟件定義生成一個或多個過濾程序并且將這個或這些過濾程序分發(fā)給客戶端裝置。該服務(wù)器還針對最常被檢出的惡意軟件的一個子集將完整定義分發(fā)給這些客戶端??蛻舳搜b置通過首先對一個文件應(yīng)用該過濾程序來針對惡意軟件對多個文件進(jìn)行掃描。若該過濾程序輸出一個肯定檢測,則該客戶端使用該完整定義對該文件進(jìn)行掃描以確定是否該文件包括惡意軟件。若該完整定義未被客戶端本地存儲,則由客戶端向服務(wù)器詢問該定義并且然后繼續(xù)該掃描過程。
文檔編號G06F21/00GK102037471SQ200980118697
公開日2011年4月27日 申請日期2009年5月20日 優(yōu)先權(quán)日2008年5月21日
發(fā)明者P·斯曹 申請人:賽門鐵克公司