專利名稱::實(shí)時(shí)多引擎選擇和組合的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及實(shí)時(shí)多引擎選擇和組合。
背景技術(shù):
:分類引擎可用于許多不同的分類設(shè)定中,包括但不限于惡意軟件(malware)、垃圾郵件(spam)、網(wǎng)站、和圖像分類。例如,在惡意軟件的上下文中,運(yùn)行多個(gè)而不是一個(gè)反惡意軟件引擎可以極大提升標(biāo)識(shí)惡意軟件的精確度。然而,應(yīng)用若干引擎可能降低實(shí)時(shí)應(yīng)用的性能,因?yàn)檫@些應(yīng)用受到可用資源量的限制。這顯著降低了直接方案的價(jià)值。而且,在一組分類引擎中選擇出表現(xiàn)最好的單一軟件引擎是許多應(yīng)用中的共同問題。
發(fā)明內(nèi)容下面提供了簡(jiǎn)明的
發(fā)明內(nèi)容,以便提供對(duì)本文所描述的一些新穎實(shí)施例的基本理解。本
發(fā)明內(nèi)容不是詳盡的概覽,并且它不旨在標(biāo)識(shí)關(guān)鍵/重要元素或描繪本發(fā)明的范圍。其唯一目的是以簡(jiǎn)化形式呈現(xiàn)一些概念,作為稍后呈現(xiàn)的更具體實(shí)施例的序言。所公開的體系結(jié)構(gòu)提供基于引擎處理給定實(shí)體的專長(zhǎng)而從分類引擎的集合中選擇一個(gè)或多個(gè)候選分類引擎的能力。所述體系結(jié)構(gòu)學(xué)習(xí)哪一個(gè)或多個(gè)分類引擎將被應(yīng)用于一類實(shí)體,諸如文件、文本、網(wǎng)站、圖像、和其它分類主題。例如,每個(gè)分類引擎可能對(duì)特定實(shí)體(例如,文件)或特定實(shí)體集合(例如,若干文件)的探測(cè)比其它引擎更好。定義適當(dāng)?shù)奶卣骷弦源_定該實(shí)體類別使得能夠構(gòu)建學(xué)習(xí)機(jī)制,從而對(duì)于給定實(shí)體,可以以高概率針對(duì)該實(shí)體選擇最佳分類引擎或分類引擎集合。如果選擇了超過一個(gè)分類引擎,則可將結(jié)果組合以實(shí)現(xiàn)更好的功效。為了為實(shí)現(xiàn)上述及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面。這些方面指示了可以實(shí)施本文所公開的原理的各種方式,所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。結(jié)合附圖閱讀下面的具體實(shí)施方式,其他優(yōu)點(diǎn)和新穎特征將變得顯而易見。圖1示出了根據(jù)所公開的架構(gòu)的計(jì)算機(jī)實(shí)現(xiàn)的引擎選擇系統(tǒng)。圖2示出引擎選擇系統(tǒng)的一替代實(shí)施例,其中該引擎選擇系統(tǒng)包括學(xué)習(xí)組件。圖3示出用于訓(xùn)練學(xué)習(xí)組件的系統(tǒng)。圖4示出運(yùn)行時(shí)系統(tǒng),其中選擇組件利用頻率技術(shù)。圖5示出一替代運(yùn)行時(shí)系統(tǒng),其中特性并行饋送入選擇組件中的分類器集合中。圖6示出一系統(tǒng),其中在運(yùn)行時(shí)所有分類器可被應(yīng)用于給定的未知文件。圖7示出了根據(jù)所公開的架構(gòu)的計(jì)算機(jī)實(shí)現(xiàn)的引擎選擇方法。圖8示出了圖7的方法的進(jìn)一步的方面。圖9示出根據(jù)所公開的架構(gòu)執(zhí)行引擎選擇的計(jì)算系統(tǒng)的框圖。具體實(shí)施例方式通過提供基于引擎處理給定實(shí)體(例如,文件、文本、文檔、圖像、網(wǎng)站等)的專長(zhǎng)(正確探測(cè)一實(shí)體為惡意軟件的可能性)從一組分類引擎中選擇一個(gè)或多個(gè)候選分類引擎的能力,所公開的架構(gòu)緩解了利用多個(gè)反惡意軟件探測(cè)器引擎(“昂貴”分類器)對(duì)實(shí)時(shí)應(yīng)用的性能的潛在負(fù)面影響。目標(biāo)在于在需要時(shí)只使用適當(dāng)?shù)摹鞍嘿F”分類引擎(例如,在資源使用、處理延遲等方面是“昂貴”的)。相應(yīng)地,最先使用“輕量的”(或類別)分類器來協(xié)助只選擇適當(dāng)?shù)陌嘿F分類器,然后最終使用所述昂貴分類器為給定的未知實(shí)體輸出總的探測(cè)輸出。例如,當(dāng)處理文件分類時(shí),對(duì)引擎的選擇基于該引擎將使用一未知實(shí)體(例如,文件)的特性探測(cè)到該實(shí)體類別的概率。該“未知”實(shí)體是潛在地包括惡意軟件或者產(chǎn)生不希望的和未授權(quán)的結(jié)果的動(dòng)作的實(shí)體。該實(shí)體可在如下意義上是未知的,即,對(duì)該實(shí)體一無所知,或者僅知道有關(guān)該實(shí)體的一些邊緣的而非決定性的東西。例如,在該實(shí)體是文件的情況下,該文件可能是可執(zhí)行文件(executable)(例如,擴(kuò)展名為“exe”),該文件不提供有關(guān)它是否是惡意的任何公開信息。然而,如果未知文件的擴(kuò)展名為PDF(可移植文檔格式),那么很容易知道文件的類型,而尚未知道的是該P(yáng)DF文件是否是惡意的。可以使用投票和/或排序來協(xié)助一個(gè)或多個(gè)候選引擎的選擇。排名最高的引擎中的一個(gè)或多個(gè)可被激活以實(shí)現(xiàn)所期望的性能(例如,在假肯定、假否定、資源消耗等方面)。使用統(tǒng)計(jì)學(xué)的、低性能要求(performance-light)的模塊來跳過或選擇若干高性能要求(performance-demanding)的過禾呈。利用方法和算法來基于匹配最佳分類引擎(例如,反惡意軟件引擎)來學(xué)習(xí)基于與實(shí)體相關(guān)聯(lián)的特性來探測(cè)實(shí)體類(例如,惡意軟件)。例如,如果實(shí)體是網(wǎng)站,則特性可包括IP地址、位置、聲譽(yù)、文件類型等等。如果實(shí)體是圖像,則特性可包括圖像來源(例如,諸如已知可信賴網(wǎng)站、用戶的已知可信賴便攜式計(jì)算機(jī)等有聲譽(yù)的資源)、大小、文件類型、名稱等。提供用戶選擇選項(xiàng)以指定選擇引擎的標(biāo)準(zhǔn),例如,已排序的分類引擎(例如,反惡意軟件引擎)的最大數(shù)量和/或最大處理時(shí)間,以考慮到機(jī)器的每種狀態(tài)(例如,機(jī)器是否過載、穩(wěn)定等)。用戶還可以針對(duì)特定未知實(shí)體(例如,文件)選擇最小探測(cè)概率。此外,可以隨著分類引擎的更新而隨著時(shí)間的推移重新評(píng)估最佳分類。現(xiàn)在將參考附圖,全部附圖中相同的參考編號(hào)用于表示相同的元件。在下面的描述中,為了進(jìn)行說明,闡述了很多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的全面理解。然而,顯而易見,可以沒有這些具體細(xì)節(jié)的情況下實(shí)施各新穎實(shí)施例。在其他情況下,以框圖形式示出了各個(gè)公知的結(jié)構(gòu)和設(shè)備以便于描述本發(fā)明。本發(fā)明將涵蓋落入所要求保護(hù)的主題的精神和范圍內(nèi)的所有修改、等效方案和替換方案。圖1示出了根據(jù)所公開的架構(gòu)的計(jì)算機(jī)實(shí)現(xiàn)的引擎選擇系統(tǒng)100。系統(tǒng)100包括包括用于處理未知實(shí)體106的多個(gè)不同的(昂貴)分類引擎104的引擎組件102、檢查未知實(shí)體110的實(shí)體特性112的檢查組件108、以及利用一個(gè)或多個(gè)輕量分類器116來協(xié)助從不同分類引擎104中選擇一個(gè)或多個(gè)候選昂貴分類引擎118以處理未知實(shí)體110的選擇組件114。該選擇可以至少部分基于實(shí)體特性112。選擇組件114可以與執(zhí)行排序功能的排序組件120相關(guān)聯(lián)。可對(duì)所有昂貴分類引擎104執(zhí)行排序以協(xié)助選擇用于探測(cè)未知實(shí)體110的類的最佳引擎。在此情況下,可以不使用選擇分類器116。還可以對(duì)候選的昂貴分類引擎118執(zhí)行排序。排序組件120可以簡(jiǎn)單地將已排序的昂貴分類引擎104的列表輸出至選擇引擎114。然后已排序的昂貴分類引擎104的子集(一些或全部)被指定為候選引擎118,并被激活以實(shí)現(xiàn)預(yù)定的性能。一個(gè)或多個(gè)候選分類引擎118可基于候選引擎將探測(cè)到特定類的未知實(shí)體(如惡意文件、惡意網(wǎng)站、惡意圖像等)的概率被選擇。在一個(gè)示例中,未知實(shí)體110包括(或者就是)未知文件而昂貴分類引擎104是實(shí)時(shí)應(yīng)用于未知實(shí)體110以確定該未知文件是否是惡意軟件的反惡意軟件引擎。選擇組件114的選擇過程可以基于各種因素,這些因素包括但不限于所預(yù)測(cè)的準(zhǔn)確度、所預(yù)測(cè)的假肯定率和假否定率、探測(cè)的概率和資源消耗,本文后面會(huì)更加詳細(xì)地描述這些因素。一個(gè)或多個(gè)選擇的候選分類引擎118輸出分類信息(類信息)122。分類信息122可以基于對(duì)昂貴分類引擎104的更新而隨著時(shí)間的推移被重新評(píng)估。這里,選擇組件114(從多個(gè)不同的引擎104中)選擇兩個(gè)候選昂貴分類引擎第一昂貴引擎IM和第三昂貴引擎126,兩者中的每一個(gè)均在處理和標(biāo)識(shí)未知實(shí)體110方面具有一定程度的專長(zhǎng)。在多個(gè)候選昂貴引擎118被最終選擇的情況下,可以使用聚集組件1來處理分類信息122的相應(yīng)輸出并為未知實(shí)體110輸出總的探測(cè)輸出130。在只選擇單一候選昂貴分類引擎的情況下,可以不使用聚集。注意,在系統(tǒng)100中可能使用多個(gè)不同的分類器集合。例如,一組分類器可以用于選擇組件114中(或與選擇組件114相關(guān)聯(lián)地使用),引擎組件102的引擎104中的一個(gè)或多個(gè)引擎可以是分類器,以及作為組合候選引擎118的輸出的聚集組件128的一部分的可任選的分類器。而且,僅在選擇組件114中就可以使用不同種類的分類器。例如,選擇分類器116可以包括用于標(biāo)識(shí)實(shí)體類型的類型分類器。圖2示出引擎選擇系統(tǒng)200的一替代實(shí)施例,其中引擎選擇系統(tǒng)200包括學(xué)習(xí)組件202。學(xué)習(xí)組件202學(xué)習(xí)不同昂貴分類引擎中的哪個(gè)昂貴分類引擎應(yīng)用于一類實(shí)體。沒有示出學(xué)習(xí)組件202的輸入和輸出,因?yàn)榭梢愿鶕?jù)需要連接于圖示的組件、組件輸入和組件輸出中的許多個(gè)。例如,可以為聚集組件1使用學(xué)習(xí)來組合候選引擎118的輸出(分類信息122)。在另一示例中,用于從候選引擎118中標(biāo)識(shí)候選引擎118的學(xué)習(xí)可以在選擇組件114中進(jìn)行(或與選擇組件114協(xié)作進(jìn)行)。為了訓(xùn)練學(xué)習(xí)組件202,針對(duì)納入考慮的每種類型的實(shí)體(例如,文件)評(píng)估所有昂貴引擎104的輸出。例如,學(xué)習(xí)組件202可以使用引擎104中的每一個(gè)引擎評(píng)估一未知的PDF文件。學(xué)習(xí)組件202學(xué)習(xí)候選引擎118的已排序列表(由排序組件120所提供的)以按照所提議的標(biāo)準(zhǔn)之一(例如,標(biāo)記)評(píng)估未知PDF文件。類似的技術(shù)也可應(yīng)用于例如Β0Τ(為用戶、另一程序操作或模擬用戶動(dòng)作的機(jī)器人程序)可執(zhí)行文件。在BOT實(shí)體的情況下,提供選擇組件114中的(選擇分類器116中的)一選擇分類器以評(píng)估該未知文件并預(yù)測(cè)該文件是Β0Τ,因?yàn)樵撐粗募哪康氖穷A(yù)先未知的。離線情況下,可以學(xué)習(xí)到昂貴引擎104的一子集善于探測(cè)Β0Τ,因此這些昂貴引擎被選中作為候選引擎118。這不同于PDF示例,因?yàn)閺奈募麛U(kuò)展名立即知道該文件是PDF文件。系統(tǒng)200還包括用于針對(duì)機(jī)器的每種狀態(tài)和探測(cè)閾值的概率指定多個(gè)已排序的候選引擎的配置組件204。換言之,引擎選擇系統(tǒng)200包括包括用于處理未知文件的多個(gè)不同的(昂貴)反惡意軟件分類引擎的引擎組件、接收并檢查未知文件的文件特性的檢查組件、從不同的反惡意軟件分類引擎中選擇一個(gè)或多個(gè)候選反惡意軟件分類引擎以處理未知文件的選擇組件,所述選擇至少部分基于對(duì)給定候選分類引擎的文件特性輸入、以及基于候選反惡意軟件分類引擎與未知文件的成功匹配來學(xué)習(xí)候選反惡意軟件分類引擎的學(xué)習(xí)組件。該一個(gè)或多個(gè)候選反惡意軟件分類引擎可以實(shí)時(shí)處理未知文件并且每個(gè)候選分類引擎輸出有關(guān)該未知文件的類型的分類信息,該一個(gè)或多個(gè)候選反惡意軟件分類引擎是基于每個(gè)候選引擎將正確標(biāo)識(shí)惡意文件的類型的可能性而被選擇的。該選擇組件利用一個(gè)或多個(gè)(輕量級(jí))選擇分類器,所述選擇分類器針對(duì)每個(gè)反惡意軟件分類引擎計(jì)算該未知文件的預(yù)測(cè)的準(zhǔn)確度。該一個(gè)或多個(gè)候選反惡意軟件分類引擎實(shí)時(shí)處理該未知文件且每個(gè)相關(guān)聯(lián)的候選分類引擎按照預(yù)測(cè)的準(zhǔn)確度輸出有關(guān)該未知文件的類型的分類信息,每個(gè)反惡意軟件分類引擎的預(yù)測(cè)的準(zhǔn)確度部分地基于用于訓(xùn)練給定引擎的訓(xùn)練模型中的假肯定、假否定、或差錯(cuò)中的至少一項(xiàng)。部分基于投票過程或排序過程選擇兩個(gè)或更多個(gè)候選反惡意軟件分類引擎,且組合相關(guān)聯(lián)的輸出以輸出總的探測(cè)輸出。到候選反惡意軟件分類引擎的輸入包括程序文件、程序文件的特性或程序文件的來源位置中的至少一項(xiàng)。圖3示出用于訓(xùn)練學(xué)習(xí)組件202的系統(tǒng)300。作為訓(xùn)練的一部分,例如在實(shí)體為文件的上下文中,學(xué)習(xí)組件202將被適當(dāng)標(biāo)記(諸如良性PDF、惡意PDF、第3類惡意PDF(對(duì)于PDF來說),和/或良性可執(zhí)行文件、惡意可執(zhí)行文件或BOT可執(zhí)行文件(對(duì)于未知可執(zhí)行文件來說)等)的不同類型(例如,PDF、BOT等)的文件302作為輸入。此示例指示訓(xùn)練可以考慮良性對(duì)(versus)惡意,或良性對(duì)第N類攻擊(其中第N類是攻擊家族中的一具體類型),以及各引擎104的輸出或在評(píng)估已知的已標(biāo)記訓(xùn)練文件時(shí)的其他標(biāo)記。一組分類器參數(shù)304由學(xué)習(xí)組件302產(chǎn)生,該組分類器參數(shù)可由選擇分類器116使用以評(píng)估未知文件并產(chǎn)生候選引擎118的已排序列表以用于納入考慮的每種類型的文件。然后將候選引擎118的這個(gè)已排序列表與那些引擎所消耗的資源的可任選的估計(jì)值一起提供至選擇組件114以選擇候選引擎118。在應(yīng)用于未知文件和惡意軟件探測(cè)的架構(gòu)的一個(gè)更加具體的實(shí)現(xiàn)中,可使用(昂貴)反惡意軟件分類引擎將引擎選擇系統(tǒng)200應(yīng)用于未知文件(實(shí)體)。在一個(gè)示例中,反惡意軟件分類引擎104可以是不同公司出售的商業(yè)產(chǎn)品。在另一示例中,反惡意軟件分類引擎104可以是使用機(jī)器學(xué)習(xí)或其他方法(例如,基于統(tǒng)計(jì)的方法)訓(xùn)練過的不同類型的統(tǒng)計(jì)學(xué)的惡意軟件分類器。在第三示例中,反惡意軟件分類引擎104可以包括既有商用反惡意軟件產(chǎn)品又有統(tǒng)計(jì)學(xué)分類方法的集合。未知文件可能是可執(zhí)行二進(jìn)制文件和/或用于生成漏洞利用的數(shù)據(jù)文件,諸如圖像文件(例如,jpeg)、視頻文件(例如,wmv)、音樂文件(例如,mp;3)、文檔文件(例如,字處理和PDF文件)或其他特定類型的數(shù)據(jù)文件(例如,xls)ο然而,要意識(shí)到,如同上面描述的,所公開的架構(gòu)不限于未知文件和惡意軟件分類,而是可以用于例如具有公知文件擴(kuò)展名(例如,PDF)的“部分已知”文件。相應(yīng)地,系統(tǒng)200包括引擎組件102,引擎組件102包括用于實(shí)時(shí)處理未知文件(未知實(shí)體106)的多個(gè)不同的反惡意軟件分類引擎104。檢查組件108接收并檢查未知文件(例如,未知實(shí)體110)的文件特性112。選擇組件114從不同的反惡意軟件分類引擎104中選擇一個(gè)或多個(gè)候選反惡意軟件分類引擎118以處理該未知文件。如本文所述的,該選擇可以僅基于文件特性112,或者對(duì)于未知文件的情況可以基于對(duì)(輕量級(jí))選擇分類器(例如,性能、類別等)的輸入,且期望預(yù)測(cè)該文件是否是例如Β0Τ。如同前面指示的,該選擇還可以至少部分基于候選分類引擎所消耗的資源。學(xué)習(xí)組件202基于候選反惡意軟件分類引擎118與未知文件(例如,實(shí)體110)的成功匹配來學(xué)習(xí)候選反惡意軟件分類引擎118。在一個(gè)示例中,引擎2(ENGINE2)和引擎5(ENGINE5)在探測(cè)惡意PDF文件方面可能是特別有效的。如果未知文件是PDF類型的,那么選擇組件114會(huì)從對(duì)引擎104的準(zhǔn)確度排序的預(yù)先計(jì)算的列表中選擇這兩個(gè)引擎作為候選引擎118以正確標(biāo)識(shí)惡意PDF文件。在另一示例中,文件類型分類器(作為選擇分類器116之一)基于特性112來指示一未知文件是惡意的,而選擇組件114已經(jīng)學(xué)習(xí)到引擎6伍呢1服6)和引擎2(ENGINE2)在標(biāo)識(shí)惡意文件方面是特別有效的。那么選擇組件114會(huì)選擇這兩個(gè)引擎作為候選引擎118。在另一示例中,如果類型分類器(作為選擇分類器116之一)預(yù)測(cè)未知文件例如是BOT,且該系統(tǒng)已學(xué)習(xí)到反惡意軟件引擎6(ENGINE6)、引擎2(ENGINE2)、和引擎5(ENGINE5)在準(zhǔn)確標(biāo)識(shí)BOT方面是排名最高的三個(gè)反惡意軟件引擎,那么如果資源不允許引擎5(ENGINE5)也評(píng)估未知文件的話,則選擇引擎114將選擇引擎6(ENGINE6)和引擎2(ENGINE2)。例如,引擎5(ENGINE5)可能通過對(duì)未知文件執(zhí)行深入且耗時(shí)的檢查而在預(yù)測(cè)BOT方面具有非常高的準(zhǔn)確度,但是實(shí)時(shí)約束阻止將這個(gè)引擎納入候選引擎118的列表中。后面在任務(wù)是文件的上下文中更加詳細(xì)地描述所公開的引擎選擇架構(gòu)的各方面和能力。實(shí)體分類過程可被概括為三個(gè)階段基于若干文件特性(例如,文件類型、文件大小、頭部簽名、代碼所使用的DLL等)以及可任選地基于由候選引擎消耗的資源來標(biāo)識(shí)最適于該任務(wù)的一個(gè)或多個(gè)候選引擎(其中引擎可以是任何形式的任務(wù)執(zhí)行器)(“元分類”階段),發(fā)送要被檢查的實(shí)體至一個(gè)或多個(gè)選中的引擎,以及要么選擇最佳引擎的輸出要么組合排名最高的諸引擎的輸出以產(chǎn)生對(duì)未知任務(wù)的總分類。在將所公開的架構(gòu)應(yīng)用于未知文件的惡意軟件探測(cè)的上下文中,一個(gè)或多個(gè)候選反惡意軟件引擎可以實(shí)時(shí)處理未知文件,而輕量級(jí)選擇分類器預(yù)測(cè)反惡意軟件引擎在處理未知文件中的準(zhǔn)確度。該一個(gè)或多個(gè)候選反惡意軟件引擎是基于每個(gè)候選引擎標(biāo)識(shí)一類型的惡意軟件文件的專長(zhǎng),以及可任選地基于諸如由例如給定引擎或所有引擎總共利用或消耗的資源等其他參數(shù),而被選擇的。該一個(gè)或多個(gè)候選反惡意軟件引擎實(shí)時(shí)處理未知文件,且每個(gè)候選引擎輸出有關(guān)該未知文件的類型的分類信息。每個(gè)反惡意軟件引擎的所預(yù)測(cè)的準(zhǔn)確度部分地基于用于訓(xùn)練給定引擎的訓(xùn)練模型中的假肯定、假否定或差錯(cuò)中的至少一項(xiàng)??梢圆糠只谕镀边^程或排序過程選擇兩個(gè)或更多個(gè)候選反惡意軟件引擎。對(duì)候選反惡意軟件引擎的輸入可包括程序文件、程序文件的特性或程序文件的來源或來源位置中的至少一項(xiàng)。8學(xué)習(xí)組件202促進(jìn)學(xué)習(xí)哪一個(gè)或多個(gè)反惡意軟件引擎應(yīng)當(dāng)被應(yīng)用于一類文件。每個(gè)反惡意軟件引擎比另一惡意軟件引擎更好地探測(cè)一類或多類文件。定義確定文件的類(例如,惡意軟件的)的所需的特性集合使得學(xué)習(xí)機(jī)制能夠如此構(gòu)建以便對(duì)于給定文件,能以高成功概率為此文件做出最佳反惡意軟件引擎的選擇。該架構(gòu)基于能運(yùn)行多個(gè)引擎(應(yīng)用)的系統(tǒng),其中每個(gè)引擎具有其自己的專長(zhǎng)(對(duì)該系統(tǒng)是未知或已知的),以基于引擎的結(jié)果做出更精確的決策。然而,在一些情況下,運(yùn)行所有可能的反惡意軟件引擎來評(píng)估未知文件需要非常高昂的計(jì)算機(jī)資源量并且延遲對(duì)文件的總體確定。所公開的架構(gòu)部分地關(guān)注于從引擎集合中標(biāo)識(shí)單一引擎或一子集的引擎,以在未知文件的分類中使用。如同之前指示的,引擎可以是為惡意軟件探測(cè)專門指定的反惡意軟件分類引擎。替代地,選擇組件114可以是適應(yīng)性的。例如,考慮以下情形引擎一和三是活動(dòng)的,但是因?yàn)閷?duì)這兩個(gè)引擎的處理估計(jì)可能太保守了,所以仍然有處理時(shí)間剩下。那么選擇組件114可以選擇額外的引擎來協(xié)助完成剩余的處理。選擇哪些反惡意軟件引擎應(yīng)當(dāng)被選擇的兩個(gè)標(biāo)準(zhǔn)包括探測(cè)的概率和探測(cè)的準(zhǔn)確度。如果反惡意軟件引擎探測(cè)到一未知文件是惡意軟件,則要么該文件是惡意軟件,要么該反惡意軟件引擎做出了“假肯定”確定。如果反惡意軟件引擎探測(cè)到一未知文件不是惡意軟件,則要么該文件是良性的,要么該反惡意軟件引擎做出了“假否定”確定。在假肯定的情況下,反惡意軟件引擎通常被設(shè)計(jì)為具有非常低的假肯定率如果該文件被探測(cè)為是惡意軟件,那么它最有可能是惡意軟件。在假否定的情況下,新類型的或多態(tài)形式的惡意軟件經(jīng)常不會(huì)被許多反惡意軟件引擎正確地探測(cè)為惡意軟件。如果反惡意軟件引擎沒有將一未知文件探測(cè)為惡意軟件,則有一個(gè)合理的概率為該文件是惡意的但是還沒有被正確地探測(cè)到。所公開的架構(gòu)可以快速預(yù)測(cè)(實(shí)時(shí)地)反惡意軟件引擎是否能夠正確地分類未知文件以及該分類的準(zhǔn)確度。具體來說,如同前面指示的,可以選擇一個(gè)或多個(gè)反惡意軟件引擎來評(píng)估(掃描)未知文件,該一個(gè)或多個(gè)反惡意軟件引擎有可能以高概率正確探測(cè)到未知文件是否是惡意軟件,并且在預(yù)測(cè)中具有高準(zhǔn)確度。因?yàn)閱蝹€(gè)反惡意軟件引擎可能不能準(zhǔn)確探測(cè)某些形式的惡意軟件,所以可能需要用反惡意軟件引擎的子集來掃描該未知文件,該子集的反惡意軟件引擎都有可能以合理高的準(zhǔn)確率將該未知文件探測(cè)為惡意的。多個(gè)反惡意軟件引擎的這種組合減少了總的假肯定率。因此,本文公開了對(duì)反惡意軟件引擎的所預(yù)測(cè)的輸出進(jìn)行排序以進(jìn)行可能的評(píng)估。而且,如果使用多個(gè)反惡意軟件引擎來評(píng)估未知文件,那么必須基于每個(gè)反惡意軟件引擎的所預(yù)測(cè)的準(zhǔn)確度來組合結(jié)果。例如,如果一個(gè)候選反惡意軟件引擎探測(cè)到一未知文件是惡意的,但是之前已經(jīng)確定那個(gè)引擎產(chǎn)生很大百分比的假肯定,那么它的貢獻(xiàn)在總的組合后的得分中應(yīng)該給一個(gè)較低的權(quán)重。該架構(gòu)還可以處理如下情形觀察每個(gè)引擎的總的準(zhǔn)確度,并在聚集輸出時(shí)對(duì)這些引擎(及相關(guān)聯(lián)的輸出)加權(quán)。在一個(gè)實(shí)例中,該架構(gòu)假定某些反惡意軟件引擎在探測(cè)特定類的文件中的惡意軟件上比其他反惡意軟件引擎更好。例如,已知如下事實(shí)不同的惡意軟件引擎具有不同的探測(cè)率(因?yàn)檫@些引擎可具有不同的簽名或針對(duì)新的病毒探測(cè)具有不同的試探性分類方法)。例如,一個(gè)反惡意軟件引擎廠商可能雇用在探測(cè)和編寫針對(duì)特洛伊木馬(trojan)的簽名方面為世界上最好的分析人員,但是這些分析人員在探測(cè)病毒方面卻不像其他廠商那樣好。類似地,另一反惡意軟件引擎的內(nèi)部感測(cè)器(sensor)可允許它能夠比任何其他反惡意軟件引擎更好地檢測(cè)rootkit。在另一示例中,一種類型的反惡意軟件引擎在探測(cè)PDF文件漏洞利用方面更好。考慮至少兩種用于預(yù)測(cè)某一反惡意軟件引擎的準(zhǔn)確度的方法一種方法是基于頻率的方法,另一種方法是機(jī)器學(xué)習(xí)方法。圖4示出運(yùn)行時(shí)系統(tǒng)400,其中選擇組件114利用頻率技術(shù)。在頻率方法中,為每個(gè)反惡意軟件引擎104創(chuàng)建所預(yù)測(cè)的準(zhǔn)確度的列表。在系統(tǒng)400中,選擇組件114(與排序組件120協(xié)作)可從相關(guān)聯(lián)的所預(yù)測(cè)的準(zhǔn)確度列表中選擇前N個(gè)引擎和/或從直接基于文件的特性的列表中選擇前N個(gè)引擎。例如,考慮該文件是PDF文檔的情形。對(duì)于PDF,可能有與二進(jìn)制可執(zhí)行文件、MP3文件、視頻或字處理文件不同的已排序列表。在基于頻率的準(zhǔn)確度方法中,在一時(shí)間段(諸如例如最近一周、最近一個(gè)月、最近三個(gè)月或最近一年)內(nèi)針對(duì)特定反惡意軟件引擎監(jiān)控假肯定和假否定的數(shù)量。在預(yù)測(cè)反惡意軟件引擎的總的準(zhǔn)確度時(shí)還可以考慮多個(gè)時(shí)間窗口(例如,最近一周和最近一個(gè)月)。一種確定引擎i的準(zhǔn)確度%的方法被定義為FPi+FNi^=I--l———-其中Ni是該引擎(例如,反惡意軟件)掃描的總的樣本的數(shù)量,而FPjnFNi分別是該引擎產(chǎn)生的假肯定和假否定的數(shù)量。進(jìn)而,越近出現(xiàn)的差錯(cuò)(例如,假肯定和假否定)可比在更遙遠(yuǎn)的過去發(fā)生的差錯(cuò)用更高的權(quán)重加權(quán)。例如,如果某一廠商已放出了將很大數(shù)量的類似類型的文件探測(cè)為惡意軟件的通用簽名,但是該通用簽名具有高的假肯定率且不正確地將某些干凈的文件探測(cè)為惡意軟件,那么這可以被相應(yīng)地加權(quán)。當(dāng)該通用簽名由生產(chǎn)(production)反惡意軟件引擎使用時(shí),假肯定率會(huì)很高。一旦探測(cè)到通用簽名中的差錯(cuò),該差錯(cuò)可被快速移除而假肯定率會(huì)降低。類似地,反惡意軟件引擎可能在生產(chǎn)簽名中不探測(cè)新形式的惡意軟件,導(dǎo)致很高的假否定率。一旦針對(duì)新的惡意軟件家族放出了簽名或通用簽名的新的集合之后,假否定率會(huì)降低。換句話說,反惡意軟件引擎的準(zhǔn)確度會(huì)隨著時(shí)間而改變?!N針對(duì)基于頻率的準(zhǔn)確度處理隨時(shí)間改變的準(zhǔn)確度的方法是基于當(dāng)前時(shí)間和假肯定或假否定被首次探測(cè)的時(shí)間之間的差而對(duì)每個(gè)假肯定或假否定賦予權(quán)重。發(fā)生時(shí)間更近的假肯定和假否定與發(fā)生時(shí)間更早的那些相比被給予更高的權(quán)重。然后使用每個(gè)個(gè)體反惡意軟件引擎的準(zhǔn)確度(基于本文中下面定義的文件特性)從反惡意軟件引擎的集合中選擇出最好的個(gè)體或子集以用于深度掃描。這種用于確定反惡意軟件引擎的準(zhǔn)確度的基于頻率的方法估算每個(gè)引擎的總的準(zhǔn)確度所有類型的惡意軟件都被認(rèn)為是等同的。該方法不嘗試基于惡意軟件的所預(yù)測(cè)的類型來指定準(zhǔn)確度。為了這樣做,采用了機(jī)器學(xué)習(xí)方案(下面會(huì)考慮)。圖5示出了一替代運(yùn)行時(shí)系統(tǒng)500,其中特性502并行饋送入選擇組件114中的一組選擇分類器504(類似于圖1的選擇分類器116)。在機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘框架中,特征是可以從訓(xùn)練數(shù)據(jù)中的每個(gè)示例提取的特性——諸如字節(jié)順序——分類器可用其生成探測(cè)模型。對(duì)于實(shí)時(shí)系統(tǒng),期望定義不需要附加文件掃描的這樣的特征??杀焕玫奶卣靼ǖ幌抻趤碜灶^部的特征、基于文件特性的特征、基于文件來源的特征、以及基于每個(gè)惡意軟件引擎在每個(gè)惡意軟件類型上具有的簽名的數(shù)量的特征。來自程序頭部的特征可包括資源信息。在PE(可移植可執(zhí)行)文件中(在Windows操作系統(tǒng)中),來自公共對(duì)象文件格式(COFF)的信息可被提取,并且例如可以使用文件大小、DLL的名稱以及那些DLL和重定位表格內(nèi)的函數(shù)調(diào)用的名稱??梢詫?duì)上述信息應(yīng)用不同的聚集(例如,每個(gè)DLL內(nèi)使用的不同的函數(shù)調(diào)用的數(shù)量)。此簡(jiǎn)檔給出了在特定二進(jìn)制文件內(nèi)多么重度地使用了一DLL的粗略度量。直觀上,因?yàn)閷?duì)每個(gè)資源的調(diào)用的數(shù)量被計(jì)數(shù)而不是詳細(xì)列舉被引用的函數(shù),所以這是宏觀資源使用模型。代碼中每個(gè)段落的大小可被認(rèn)為是程序頭部的特征。程序頭部的其他特征包括簽名人名稱、簽名人是否為空、簽名發(fā)放者名稱、描述名稱、描述是否為空、組織名稱、組織是否為空、版本、版本是否為空、以及文件時(shí)間戳?;谖募匦缘奶卣骺砂ㄎ募Q、文件的位置敏感散列、文件是否被打包、以及文件類型(由通用導(dǎo)航器(navigator)從二進(jìn)制數(shù)據(jù)提取)。基于文件來源的特征可包括從中獲取文件的服務(wù)器的名聲(特別適用于基于web的系統(tǒng))以及發(fā)送者的可靠度(例如,對(duì)于電子郵件消息——檢查發(fā)件人是否在從收件人接收電子郵件的人的列表中)如果性能允許,可對(duì)其他特征(諸如字節(jié)順序(N元語法))并基于文件內(nèi)容執(zhí)行文件掃描(等同于運(yùn)行附加的反惡意軟件引擎)。基于這些特征(或附加的特征),可構(gòu)造靜態(tài)規(guī)則集合或分類器以標(biāo)識(shí)哪個(gè)反惡意軟件引擎被認(rèn)為在輸入文件的類別類型上是專家。該分類方法可以以至少兩種方式做出。在第一種技術(shù)中,第一階段使用文件類別預(yù)測(cè)器預(yù)測(cè)未知文件的類別。此類別可以是干凈的、病毒、特洛伊木馬、rootkit、filedropper等之一。然后為該未知文件的所預(yù)測(cè)的類別選擇最佳反惡意軟件引擎的結(jié)果或組合來自前N個(gè)反惡意軟件引擎的結(jié)果。在第二種技術(shù)中,所有標(biāo)記的文件(例如,惡意的、良性的)被用于訓(xùn)練預(yù)測(cè)哪些廠商具有最佳結(jié)果的分類器。接下來描述訓(xùn)練機(jī)器學(xué)習(xí)分類器以應(yīng)用于專家選擇。具體說來,算法分為分類器的訓(xùn)練和將分類器應(yīng)用于未知的且可能實(shí)時(shí)的數(shù)據(jù)。關(guān)于反惡意軟件引擎準(zhǔn)確度分類,可以每個(gè)反惡意軟件引擎(其可在受控環(huán)境中被離線訓(xùn)練)提供一分類器。然而,這不應(yīng)被解釋為被如此限制,因?yàn)橛?xùn)練也可以對(duì)真實(shí)示例(例如,在線或離線的、批量的或一個(gè)接一個(gè)的)執(zhí)行。在分類器的訓(xùn)練階段中,每個(gè)分類器獲取代表要被掃描的文件的特征向量和指示該反惡意軟件引擎是否正確地分類該文件(例如,是否是惡意軟件)的標(biāo)簽作為輸入。用這種方式,每個(gè)分類器學(xué)習(xí)在其上訓(xùn)練該分類器的反惡意軟件引擎的優(yōu)點(diǎn)和缺點(diǎn)。更具體地說,令表示輸入文件的一組屬性。令權(quán)利要求1.一種計(jì)算機(jī)實(shí)現(xiàn)的引擎選擇系統(tǒng)(100),所述引擎選擇系統(tǒng)(100)具有存儲(chǔ)由處理器執(zhí)行的可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述引擎選擇系統(tǒng)(100)包括包括用于處理未知實(shí)體的多個(gè)不同分類引擎的引擎組件(102);檢查未知實(shí)體的實(shí)體特性的檢查組件(108);以及做出對(duì)所述不同分類引擎的一個(gè)或多個(gè)候選分類引擎的選擇以處理所述未知實(shí)體的選擇組件(114),其中所述選擇至少部分基于所述實(shí)體特性。2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)候選分類引擎處理所述未知實(shí)體且每個(gè)候選分類引擎輸出用于探測(cè)所述未知實(shí)體的分類信息。3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)候選分類引擎是基于每個(gè)候選引擎標(biāo)識(shí)實(shí)體類的專長(zhǎng)而選擇的。4.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,基于對(duì)所述多個(gè)不同分類引擎的更新而隨著時(shí)間重新評(píng)估所述分類信息。5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述多個(gè)不同分類引擎中的至少一個(gè)或所述一個(gè)或多個(gè)候選分類引擎被排序。6.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述候選分類引擎是基于所述候選引擎將探測(cè)到特定類的未知實(shí)體的概率而選擇的。7.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述實(shí)體包括未知文件且所述分類引擎是惡意軟件引擎,所述惡意軟件引擎被實(shí)時(shí)應(yīng)用以確定所述未知文件是否是惡意軟件。8.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,還包括學(xué)習(xí)組件,所述學(xué)習(xí)組件學(xué)習(xí)所述不同分類引擎中的哪個(gè)分類引擎被應(yīng)用于所述實(shí)體的一類。9.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,還包括用于針對(duì)機(jī)器的每種狀態(tài)和探測(cè)閾值的概率指定多個(gè)已排序候選引擎的配置組件。10.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,兩個(gè)或更多個(gè)候選反惡意軟件分類引擎是部分基于投票過程或排序過程而選擇的,且相關(guān)聯(lián)的輸出被組合以輸出總的探測(cè)輸出。11.一種由處理器執(zhí)行的計(jì)算機(jī)實(shí)現(xiàn)的引擎選擇方法,包括檢查未知文件的文件特性(700);基于所述文件特性從分類引擎的集合中選擇一個(gè)或多個(gè)候選反惡意軟件分類引擎(702);使用所述一個(gè)或多個(gè)候選反惡意軟件分類引擎處理所述未知文件以針對(duì)所述候選反惡意軟件分類引擎中的每一個(gè)候選反惡意軟件分類引擎輸出分類信息(704);以及基于所述候選反惡意軟件分類引擎中的所述一個(gè)或多個(gè)候選反惡意軟件分類引擎的單一輸出或多個(gè)輸出而分類所述未知文件(706)。12.根據(jù)權(quán)利要求11所述的方法,其特征在于,還包括基于所述候選引擎將探測(cè)到所述未知文件為惡意軟件的專長(zhǎng)或概率而選擇所述一個(gè)或多個(gè)候選反惡意軟件分類引擎。13.根據(jù)權(quán)利要求11所述的方法,其特征在于,還包括基于排序過程或投票過程激活所述一個(gè)或多個(gè)候選反惡意軟件分類引擎。14.根據(jù)權(quán)利要求11所述的方法,其特征在于,還包括應(yīng)用概率性機(jī)制來跳過或選擇高性能要求的過程。15.根據(jù)權(quán)利要求11所述的方法,其特征在于,還包括基于對(duì)所述引擎的更新而隨著時(shí)間重新評(píng)估所述一個(gè)或多個(gè)候選反惡意軟件分類引擎。全文摘要本發(fā)明涉及實(shí)時(shí)多引擎選擇和組合?;诜诸愐嫣幚斫o定實(shí)體(例如,文件)的專長(zhǎng)來選擇分類引擎的架構(gòu)。對(duì)引擎的選擇基于該引擎將使用未知實(shí)體的特性探測(cè)到該未知實(shí)體分類的概率。排名最高的一個(gè)或多個(gè)引擎被激活以實(shí)現(xiàn)所需的性能。使用統(tǒng)計(jì)的、低性能要求的模塊來跳過或選擇若干高性能要求的過程。使用方法和算法來基于匹配(一個(gè)或多個(gè))最佳分類引擎來基于實(shí)體特性探測(cè)實(shí)體類的學(xué)習(xí)。提供用于指定已排序的分類引擎的最大數(shù)量的用戶選擇選項(xiàng),以考慮機(jī)器的每個(gè)狀態(tài)。用戶可以選擇針對(duì)特定實(shí)體(例如,未知文件)的探測(cè)的最小概率??梢噪S著分類引擎的更新而隨著時(shí)間的推移重新評(píng)估最佳分類。文檔編號(hào)G06F21/00GK102509039SQ201110306969公開日2012年6月20日申請(qǐng)日期2011年9月27日優(yōu)先權(quán)日2010年9月30日發(fā)明者E·謝弗,J·W·斯托克斯,K·拉丁斯基,R·瓦爾沙夫斯基,V·霍洛斯托弗申請(qǐng)人:微軟公司