亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分類惡意軟件檢測和抑制的制作方法

文檔序號:12513058閱讀:269來源:國知局
分類惡意軟件檢測和抑制的制作方法與工藝

本申請要求2014年9月26日提交的題為“Taxonomic Malware Detection and Mitigation(分類惡意軟件檢測和抑制)”的美國實用新型申請?zhí)?4/497,757的優(yōu)先權(quán),所述申請通過引用結(jié)合在此。

技術(shù)領(lǐng)域

本申請涉及計算機(jī)安全領(lǐng)域,并且更具體地涉及一種用于進(jìn)行分類惡意軟件檢測和抑制的系統(tǒng)和方法。



背景技術(shù):

反病毒和反惡意軟件研究已經(jīng)演變成惡意軟件作者與安全研究員之間正在進(jìn)行的軍備競賽。在反惡意軟件研究的更早些時候,安全研究員識別已知為惡意軟件的可執(zhí)行對象并對其進(jìn)行采指紋就足夠了。然后,用戶計算機(jī)上的反惡意軟件代理可以在計算機(jī)中搜索與已知惡意軟件指紋相匹配的可執(zhí)行對象。

然而,隨著惡意軟件作者已經(jīng)增加其努力來避免檢測和抑制,依靠簡單的指紋識別解決方案已經(jīng)變得更加困難。在一個示例中,根據(jù)可執(zhí)行對象的校驗和來計算所述對象的指紋。校驗和是比較兩個二進(jìn)制對象并高度可信地判定它們是否相同的非常有效的方式。如果兩個二進(jìn)制對象具有相同的校驗和,則所述兩個對象被認(rèn)為非常高度可信地相同。由此,如果發(fā)現(xiàn)可執(zhí)行對象與已知惡意軟件對象具有相同的校驗和,則可以安全地隔離可執(zhí)行對象,隔離有用對象的概率可忽略。

附圖說明

當(dāng)與附圖一起閱讀時,將從以下詳細(xì)描述中更好地理解本公開。強(qiáng)調(diào)的是,根據(jù)行業(yè)中的標(biāo)準(zhǔn)實踐,不同特征未按比例繪制,并且僅用于說明性目的。實際上,為了討論清楚,不同特征的尺寸可以被任意放大或減小。

圖1是根據(jù)本說明書的一個或多個示例的安全使能網(wǎng)絡(luò)的框圖。

圖2是根據(jù)本說明書的一個或多個示例的計算設(shè)備的框圖。

圖3是根據(jù)本說明書的一個或多個示例的服務(wù)器的框圖。

圖4是根據(jù)本說明書的一個或多個示例的由分類引擎執(zhí)行的方法的流程圖。

圖5是根據(jù)本說明書的一個或多個示例的分類引擎的功能性框圖。

圖6是根據(jù)本說明書的一個或多個示例的由分類引擎執(zhí)行的方法的流程圖。

具體實施方式



技術(shù)實現(xiàn)要素:

在示例中,分類引擎比較兩個二進(jìn)制對象以便判定它們是否可以被分類為屬于共同的族。如示例應(yīng)用程序,所述分類引擎可用于檢測源自共同祖先的惡意軟件對象。為了對所述對象進(jìn)行分類,對所述二進(jìn)制進(jìn)行反匯編并且標(biāo)準(zhǔn)化所產(chǎn)生的匯編代碼。過濾出如編譯器生成的庫代碼等已知“干凈(clean)”函數(shù)。然后,可以表征匯編代碼的標(biāo)準(zhǔn)化塊,如通過形成N-grams并且對每個N-gram進(jìn)行校驗和。可以將這些與已知惡意軟件例程進(jìn)行比較。

本公開的示例實施例

以下公開內(nèi)容提供了用于實施本公開的不同特征的許多不同實施例或示例。以下描述了部件和安排的具體示例以便簡化本公開。當(dāng)然,這些僅是示例并且并不旨在是限制性的。另外,本公開在各種示例中可以重復(fù)參考標(biāo)號和/或字母。這種重復(fù)是為了簡單和清晰的目的,并且本身并不指定所討論的各種實施例和/或配置之間的關(guān)系。

不同實施例可以具有不同優(yōu)點,并且不一定需要任何實施例的任何特定優(yōu)點。

基于校驗和的指紋識別技術(shù)和其他常用的惡意軟件檢測方法受制于由惡意軟件作者進(jìn)行的隱藏技術(shù)。例如,盡管校驗和是比較兩個二進(jìn)制對象的非??焖偾覝?zhǔn)確的方法,但是通過例如對惡意軟件對象進(jìn)行微小變化及重新編譯也很容易將其擊敗。因為即使微小變化完全改變了校驗和,重新編譯的惡意軟件對象也必須被獨立地發(fā)現(xiàn)并重新表征。

由此,安全研究員與惡意軟件作者之間的軍備競賽的一方面是:惡意軟件作者可以頻繁地對惡意軟件對象進(jìn)行細(xì)微變化,以便擊敗老的校驗和。然后,這些新惡意軟件對象在安全研究員能夠識別它們并更新它們的校驗和之前被釋放到它們可能引起一些程度的危害的野外。這種動作對所謂“零日”利用而言特別危險,其中,惡意軟件對象保持不被檢測直到它達(dá)到它選擇的某個日期和時間或其他條件,在所述點處,惡意軟件對象在野外的所有副本同時遞送有效載荷。在零日利用的情況下,在所述對象被檢測且使用新校驗和更新反惡意軟件代理之前可能已經(jīng)完成大量損害。

用于檢測惡意軟件對象的另一個有用方法是在沙箱環(huán)境中運行新可疑的可執(zhí)行對象,并且監(jiān)測它們來查看它們是否展現(xiàn)惡意軟件行為。盡管和校驗和一樣,這種方法提供了非常有價值的服務(wù),但是惡意軟件作者已經(jīng)適應(yīng)了。在一些情況下,惡意軟件作者將使用環(huán)境觸發(fā)器來防止惡意軟件對象在所有機(jī)器上遞送其有效載荷。這可能包括例如:檢查被感染的機(jī)器上的網(wǎng)絡(luò)卡的MAC地址是否具有特殊數(shù)字序列、IP地址是否滿足某個標(biāo)準(zhǔn)、或任何其他偽隨機(jī)因素。這使得特殊沙箱環(huán)境將不太可能觸發(fā)環(huán)境觸發(fā)器并檢測惡意軟件有效載荷。盡管這種技術(shù)意味著,N個被感染的計算機(jī)中,僅k·N(k<1)個機(jī)器將實際上接收有效載荷,但是對檢測的阻礙可以幫助惡意軟件對象更長時間保持未檢測,并且由此實現(xiàn)有效載荷遞送的網(wǎng)絡(luò)增加。

惡意軟件作者還可以使用如壓縮機(jī)、保護(hù)器、加密門、粘合劑、多層封裝等混淆技術(shù)和類似技術(shù)來避免檢測。在一些情況下,可商購的遠(yuǎn)程管理工具(RAT)被修改以便包含反調(diào)試和反虛擬化能力,使其作為惡意工具更加有效。

本說明書的申請人已經(jīng)認(rèn)識到,盡管當(dāng)前惡意軟件檢測方法執(zhí)行有價值的服務(wù),但是提供新穎方法是有用的,由此,在惡意軟件對象有機(jī)會遞送有效載荷之前可以檢測并很好地修復(fù)惡意軟件對象。在一個示例中,提供了分類引擎,包括硬件和軟件,所述硬件和軟件可操作用于分析可執(zhí)行對象并高可信度地判定可執(zhí)行對象是否屬于惡意軟件分類中的惡意軟件對象的“族”。

這種方法承認(rèn),盡管可以例如通過如重新編譯等微小變化來擊敗校驗和,但是惡意軟件對象的基本特征中的許多特征保持不變。具體地,像許多軟件一樣,惡意軟件通常不是從零開始發(fā)展的。相反,惡意軟件作者可以依賴于與其他軟件開發(fā)者分享的有用和合法例程庫類似的惡意軟件例程庫。由此,盡管每個個別惡意軟件對象可以具有單獨的校驗和,但是大量惡意軟件對象可以分享某些特征。由此,可以計算“模糊指紋”以便不僅檢測可執(zhí)行對象的校驗和,還通過檢測某些共同子例程或函數(shù)的存在來將所述對象分類為屬于惡意軟件族。

族分類是一種經(jīng)由靜態(tài)代碼分析標(biāo)識類似可執(zhí)行對象的方法。盡管本文中將檢測和分類描述為族分類的示例,但是所公開的系統(tǒng)和方法實際上同樣適用于為了實質(zhì)相似性而比較可執(zhí)行對象或其他二進(jìn)制對象是有用的或有價值的任何情況。由此,本文中所公開的系統(tǒng)和方法可以同樣適用于例如檢測版權(quán)侵犯的應(yīng)用程序。貫穿本說明書的剩余部分,將具體參考惡意軟件檢測將族分類和分類引擎描述為示例。然而,此示例意在是非限制性的。

族分類使用可執(zhí)行對象的反匯編來計算被分析對象與已知惡意軟件對象的零個或多個族之間的相似度,由此,潛在地將被分析對象分類為屬于惡意軟件族。

本說明書的方法對檢測惡意軟件對象的許多規(guī)避族或類別是有效且可擴(kuò)展的。分類引擎可以使用代碼指令語義、用于過濾出庫或編譯器產(chǎn)生的代碼的過濾器,從而使得僅對用戶定義的代碼執(zhí)行分析。這增加了惡意軟件檢測率同時減少了誤肯定。

分類引擎是可擴(kuò)展且有效的。其通過發(fā)現(xiàn)惡意對象之間的共同代碼序列來檢測庫代碼重用。分類引擎還可以采用有效方式跟蹤與惡意軟件族相關(guān)聯(lián)的共同代碼段。由此,可以采用前攝方式來標(biāo)識、跟蹤和阻止目標(biāo)攻擊。

鑒于對多種模糊技術(shù)的固有挑戰(zhàn),當(dāng)基于或者完整用戶代碼或者與惡意軟件對象相關(guān)的某些代碼或功能塊來進(jìn)行檢測時,還可以使用混合方法。

根據(jù)本說明書的一個實施例,可執(zhí)行對象經(jīng)受沙箱動態(tài)分析,以便標(biāo)識分類候選項。一旦標(biāo)識了分類候選項,它就作為用于分類引擎的被分析對象。

對可執(zhí)行對象進(jìn)行反匯編,產(chǎn)生“ASM”匯編列表文件。在一些情況下,可以將ASM列表調(diào)節(jié)成調(diào)用蹤跡。如貫穿本說明書所使用的,“調(diào)用蹤跡”是可用于由分類引擎進(jìn)行的模糊匹配的骨架或架構(gòu),并且具體地可以從匹配函數(shù)中移動調(diào)用順序。由此,使用調(diào)用蹤跡,如果兩個函數(shù)具有相似的調(diào)用,甚至如果那些調(diào)用有略微不同的順序,則可以對它們進(jìn)行匹配。

然后,所述分類可以使用干凈函數(shù)列表(CFL)來過濾出編譯器產(chǎn)生的代碼并減少噪音和對候選惡意軟件例程之間的相似度的測量。在一個實施例中,為了實現(xiàn)這一點,收集來自不同編譯器的文件,并且創(chuàng)建模糊散列來標(biāo)識并隔離干凈函數(shù)。在此階段,可以移除來自共同庫例程的函數(shù)或其他編譯器產(chǎn)生的代碼。

例如,C編程語言中的共同子例程是“安全字符串復(fù)制”函數(shù)strncpy_s()。此函數(shù)的x86實現(xiàn)的一個示例如下所示:

前述列表的每一行采用以下形式:

:[地址] [操作碼] [助記符] [操作數(shù)]

此函數(shù)的散列為068a67f4ac41399c4d48128bff929ffc。在一個示例中,分類引擎由此將此列表標(biāo)識為屬于strncpy_s()函數(shù),所述strncpy_s()函數(shù)是標(biāo)準(zhǔn)庫函數(shù)。由此,包含此例程的幾乎沒有提供關(guān)于被分析對象是否是惡意的或如何對其進(jìn)行分類的信息??梢赃M(jìn)一步提供來自不同編譯器和庫中的相同函數(shù)的實現(xiàn)方式的校驗和。由此,當(dāng)分類引擎遇到具有與這些校驗和之一相匹配的代碼塊的二進(jìn)制對象或此例程的模糊指紋時,它可以自信地斷言:這是為了有效的目的可以被安全地過濾出的編譯器生成的strncpy_s()函數(shù)。

在另一個示例中,可以提供惡意軟件函數(shù)的“黑名單”。這可以包括與已知函數(shù)相匹配的模糊散列的相似庫,所述已知函數(shù)不應(yīng)當(dāng)出現(xiàn)在合法軟件中,或可以被安全地認(rèn)為是“惡意軟件函數(shù)”。鑒于上述“干凈函數(shù)”由于幾乎不提供有用信息而可以被安全地忽略,對已知惡意軟件函數(shù)的包含可以指示被分析對象應(yīng)當(dāng)被列入黑名單或以其他方式被修復(fù),無論是否進(jìn)行進(jìn)一步分析。

分類引擎可能采用的另一種技術(shù)是“ASM標(biāo)準(zhǔn)化”。這種技術(shù)承認(rèn),典型匯編指令包括操作代碼(操作碼(opcode)),所述操作代碼可以與如“MOV”或“PUSH”等有用助記符相關(guān)聯(lián)。這之后可能是零個或多個操作數(shù)。所述操作數(shù)可以表示例如寄存器、常量、或存儲器位置。由此,在一個示例中,一段代碼可以包括:

mov di,ecx

mov ebp,esp

mov dword ptr ss:[esp+24],1

在一些情況下,標(biāo)準(zhǔn)化可以包括僅考慮指令的助記符。然而,在其他情況下,這可能導(dǎo)致丟失指令的語義。

由此,在本說明書的一個或多個示例中,匯編代碼標(biāo)準(zhǔn)化方法提供了有用抽象層,同時仍然保留指令的語義。例如,前述代碼樣本可以被標(biāo)準(zhǔn)化為以下:

mov di,ecx mov REG,REG

push ebp,esp push REG,REG

mov dword ptr ss:[esp+24],1 mov MEM,CONST

由此,匯編代碼標(biāo)準(zhǔn)化算法可以將操作數(shù)歸類到一起,如寄存器、存儲器位置、和常量。以此方式,指令的語義被保留,并且即使當(dāng)指令使用不同寄存器、常量、和/或存儲器位置時,也可以進(jìn)行匹配。

然而,注意,在某些架構(gòu)中,可以提供單獨的指令操作碼和助記符用于基于寄存器的操作、基于存儲器的操作、和基于常量的操作。在那些情況下,匯編代碼標(biāo)準(zhǔn)化可以被最小化。換言之,在操作碼或助記符本身承載指令的語義的情況下,可能減少或消除對標(biāo)準(zhǔn)化的需要。

由本說明書的分類引擎執(zhí)行的另一種技術(shù)是N-gram生成。N-gram是來自給定指令序列的N個項目的連續(xù)序列。N-gram在浮動窗口上計算。例如,指令的以下序列導(dǎo)致以下兩個3-grams:

原始樣本:

mov REG,REG

xor REG,REG

push REG,REG

mov MEM,CONST

第一個3-gram:

mov REG,REG

xor REG,REG

push REG,REG

第二個3-gram:

xor REG,REG

push REG,REG

mov MEM,CONST

在一個示例中,每個N-gram可以被轉(zhuǎn)換成如32比特散列等散列來降低比較的復(fù)雜性。顯然,N-gram中N的值越小,比較的解析度越高,并且需要處理它的處理功率越大。

使用散列的N-grams,可以確定被分析對象與已知惡意軟件對象之間的相似度。在一個示例中,經(jīng)由杰卡德指數(shù)對兩個對象進(jìn)行比較。如果杰卡德指數(shù)與例如由安全研究團(tuán)隊定義的預(yù)定閾值相匹配,則文件被認(rèn)為是相似的。可以根據(jù)以下計算文件對的杰卡德指數(shù):

本說明書的分類引擎的原型實驗性地運行于被稱為“Zbot”的特定惡意軟件樣本上。Zbot樣本隨時間偏離,從而使得在大約一年之后,近期的Zbot樣本與原始Zbot僅共享大約83%的代碼。分類引擎能夠以大約98%的準(zhǔn)確度將測試樣本分類為屬于惡意軟件的Zbot族。

相同的原型還能夠高準(zhǔn)確度地正確地將其他樣本分類為屬于惡意軟件的“Swizzor”族。

在另一個實施例中,分類引擎可以被修改成還提供對“灰色軟件”應(yīng)用程序的檢測。這些包括除過度攻擊性的或侵入性的應(yīng)用程序外的半合法的且可以提供一些有用功能的應(yīng)用程序。例如,用于智能電話的閃光燈應(yīng)用程序可以提供通告功能(閃光燈),但也可以執(zhí)行與通告功能完全無關(guān)的其他任務(wù),如上傳用戶內(nèi)容、電子郵件、照片、口令、或敏感信息。

如使用惡意軟件檢測示例,分類引擎的這種實施例對可執(zhí)行對象進(jìn)行反匯編,以便創(chuàng)建匯編列表文件。然后,如以上所描述的,分類引擎可以從ASM列表中創(chuàng)建調(diào)用蹤跡。還如以上所描述的,可以根據(jù)函數(shù)黑名單和CFL來過濾函數(shù)。

基于剩下的子例程,可以根據(jù)分類法對所述對象進(jìn)行分類。這種分類法可能與先前示例的分類法有點不同。盡管先前示例專注于使用惡意軟件族對對象進(jìn)行分類,但是這種分類法更關(guān)心根據(jù)它們預(yù)期的函數(shù)對對象進(jìn)行分類。

然后,分類引擎可以生成多重圖,從所述對象的自報告行為和所述對象類別的預(yù)期行為中接收輸入。此多重圖可用于判定所述對象是否像這種類別中的對象預(yù)期表現(xiàn)的那樣表現(xiàn)。例如,被分類為閃光燈應(yīng)用程序的對象將被期望提供用戶界面并訪問所述閃光燈。然而,將不期望收集用戶信息、記錄音頻或視頻、或者拍照。由此,如果所述對象執(zhí)行那些不期望的任務(wù),則可以將其標(biāo)記為灰色軟件。

現(xiàn)在將更具體地參照所附附圖來描述分類引擎。

圖1是根據(jù)本說明書的一個或多個示例的分布式安全網(wǎng)絡(luò)100的網(wǎng)絡(luò)層次圖。在圖1的示例中,多個用戶120操作多個計算設(shè)備110。具體地,用戶120-1操作臺式計算機(jī)110-1。用戶120-2操作膝上型計算機(jī)110-2。并且用戶120-3操作移動設(shè)備110-3。

每臺計算設(shè)備可以包括適當(dāng)?shù)牟僮飨到y(tǒng),如微軟Windows、Linux、安卓、Mac OSX、蘋果iOS、Unix等。相比一種類型的設(shè)備,可能在另一種類型的設(shè)備上更經(jīng)常地使用前述項中的一些項。例如,臺式計算機(jī)110-1(在一些情況下也可以是工程工作站)可能更有可能使用微軟Windows、Linux、Unix或者M(jìn)ac OSX之一。膝上型計算機(jī)110-2(通常是具有更小定制化選項的便攜的現(xiàn)成設(shè)備)更有可能運行微軟Windows或者M(jìn)ac OSX。移動設(shè)備110-3更有可能運行安卓或者iOS。然而,這些示例并不旨在是限制性的。

計算設(shè)備110可以經(jīng)由網(wǎng)絡(luò)170而彼此通信地耦合以及耦合到其他網(wǎng)絡(luò)資源。網(wǎng)絡(luò)170可以是任何適當(dāng)?shù)木W(wǎng)絡(luò)或網(wǎng)絡(luò)的組合,通過非限制性示例的方式,包括例如局域網(wǎng)、廣域網(wǎng)、無線網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)或互聯(lián)網(wǎng)。在此展示中,為簡單起見,網(wǎng)絡(luò)170被示出為單個網(wǎng)絡(luò),但是在一些實施例中,網(wǎng)絡(luò)170可以包括大量網(wǎng)絡(luò),如連接至互聯(lián)網(wǎng)的一個或多個企業(yè)內(nèi)部網(wǎng)。

連接至網(wǎng)絡(luò)170的還有一個或多個服務(wù)器140、應(yīng)用程序儲存庫160以及通過各種設(shè)備連接的人類參與者(包括例如攻擊者190和開發(fā)者180)。服務(wù)器140可以被配置成用于提供合適的網(wǎng)絡(luò)服務(wù),包括在本說明書的一個或多個示例中公開的某些服務(wù)。在一個實施例中,服務(wù)器140和網(wǎng)絡(luò)170的至少一部分由一個或多個安全管理員150管理。

用戶120的目標(biāo)可以是在沒有來自攻擊者190和開發(fā)者180的干擾的情況下成功地操作他們各自的計算設(shè)備110。在一個示例中,攻擊者190是惡意軟件作者,其目標(biāo)或者目的是引起惡意傷害或損害。惡意傷害或損害可以采取以下形式:在計算設(shè)備110上安裝Root kit或其他惡意軟件以便篡改系統(tǒng)、安裝間諜軟件或廣告軟件以便收集個人和商用數(shù)據(jù)、丑化網(wǎng)站、操作如垃圾郵件服務(wù)器等僵尸網(wǎng)絡(luò)、或僅打攪和騷擾用戶120。因此,攻擊者190的一個目的可能是在一個或多個計算設(shè)備110上安裝其惡意軟件。如貫穿本說明書所使用的,惡意軟件(“惡意軟件”)包括被設(shè)計成用于采取可能不需要的行動的任何病毒、木馬、僵尸、根程序病毒包、后門、蠕蟲、間諜軟件、廣告軟件、勒索軟件、撥號器、有效載荷、惡意瀏覽器輔助對象、cookie、記錄器等,通過非限制性示例的方式,包括數(shù)據(jù)毀壞、隱藏數(shù)據(jù)收集、瀏覽器劫持、網(wǎng)絡(luò)代理或重定向、隱藏跟蹤、數(shù)據(jù)記錄、鍵盤記錄、過多的或蓄意的移除阻礙、聯(lián)系人采集以及未授權(quán)的自傳播。

服務(wù)器140可以由合適的企業(yè)操作,以便提供安全更新和服務(wù)(包括反惡意軟件服務(wù))。服務(wù)器140還可以提供如路由、聯(lián)網(wǎng)、企業(yè)數(shù)據(jù)服務(wù)、和企業(yè)應(yīng)用程序等實質(zhì)服務(wù)。在一個示例中,服務(wù)器140被配置成用于分布并實施企業(yè)計算和安全政策。這些政策可以由安全管理員150根據(jù)寫企業(yè)政策來管理。安全管理員150還可以響應(yīng)于管理和配置服務(wù)器140和網(wǎng)絡(luò)170的全部或部分。

開發(fā)者180也可以在網(wǎng)絡(luò)170上進(jìn)行操作。開發(fā)者180可能沒有惡意的意圖,但是可能開發(fā)造成安全風(fēng)險的軟件。例如,眾所周知的且經(jīng)常被利用的安全缺陷是所謂的緩沖器溢出,其中,惡意用戶(如攻擊者190)能夠?qū)⑦^長的字符串輸入輸入表中并且由此獲得執(zhí)行任意指令或者使用提升的特權(quán)來操作計算設(shè)備110的能力。緩沖器溢出可以是例如不良輸入驗證或未完成的垃圾收集的結(jié)果,并且在許多情況下,在非顯而易見的情境中出現(xiàn)。因此,盡管開發(fā)者180本身不是惡意的,但是其可能為攻擊者190提供攻擊向量。開發(fā)者180所開發(fā)的應(yīng)用程序也可以引起固有問題,比如崩潰、數(shù)據(jù)丟失或其他非期望的行為。開發(fā)者180可以自己托管軟件,或者可以將他的軟件上傳到應(yīng)用程序儲存庫160。因為來自開發(fā)者180的軟件本身可能是期望的,所以開發(fā)者180在漏洞變得已知時偶爾提供修復(fù)漏洞的更新或補丁是有益的。

應(yīng)用程序儲存庫160可以表示向用戶120提供交互地或自動地下載應(yīng)用程序并將其安裝在計算設(shè)備110上的能力的Windows或蘋果“應(yīng)用程序商店”、類Unix儲存庫或端口收集、或者其他網(wǎng)絡(luò)服務(wù)。開發(fā)者180和攻擊者190都可以經(jīng)由應(yīng)用程序儲存庫160提供軟件。如果應(yīng)用程序儲存庫160具有適當(dāng)?shù)氖构粽?90難以分散明顯惡意的軟件的安全措施,那么攻擊者190反而可以暗中將漏洞插入到顯然有益的應(yīng)用程序中。

在一些情況下,一個或多個用戶120可以屬于企業(yè)。企業(yè)可以提供對可以安裝的應(yīng)用程序(例如來自應(yīng)用程序儲存庫160)的類型進(jìn)行限制的政策指示。因此,應(yīng)用程序儲存庫160可以包括并非無意開發(fā)的且不是惡意軟件的但卻違背政策的軟件。例如,一些企業(yè)限制對娛樂軟件(如媒體播放器和游戲)的安裝。因此,甚至安全的媒體播放器或游戲也可能不適合企業(yè)計算機(jī)。安全管理員150可以響應(yīng)于分布與這些限制一致的計算政策。

在另一示例中,用戶120可以是小孩子的父母,并且希望保護(hù)小孩子不受非期望內(nèi)容(通過非限制性示例的方式,比如,色情作品、廣告軟件、間諜軟件、不符合年齡的內(nèi)容、對某些政治、宗教或社會運動的倡導(dǎo)、或用于討論非法或危險活動的論壇)的影響。在這種情況下,父母可以執(zhí)行安全管理員150的職責(zé)中的一些或所有。

總的來說,作為前述類型內(nèi)容之一的候選項的任何對象可以被稱為“可能不想要的內(nèi)容”(PUC)。PUC的“可能”方面指當(dāng)對象被標(biāo)記為PUC時,其不一定被列入黑名單。相反,它是作為不應(yīng)當(dāng)被允許在計算設(shè)備110上駐留或工作的對象的候選項。由此,用戶120和安全管理員150的目標(biāo)是配置和操作計算設(shè)備110,以便有用地分析PUC并做出關(guān)于如何響應(yīng)PUC對象的明智決策。這可以包括計算設(shè)備110上的代理(如圖2的反惡意軟件代理224),為了附加情報,所述代理可以與服務(wù)器140通信。服務(wù)器140可以提供基于網(wǎng)絡(luò)的服務(wù)(包括圖3的分類引擎324),所述基于網(wǎng)絡(luò)的服務(wù)被配置成用于實施政策并且以其他方式在適當(dāng)?shù)貙UC進(jìn)行分類以及對PUC起作用方面輔助計算設(shè)備110。

圖2是根據(jù)本說明書的一個或多個示例的客戶端設(shè)備110的框圖??蛻舳嗽O(shè)備110可以是任何合適的計算設(shè)備。在各種實施例中,通過非限制性示例的方式,“計算設(shè)備”可以是或可以包括:計算機(jī)、嵌入式計算機(jī)、嵌入式控制器、嵌入式傳感器、個人數(shù)字助理(PDA)、膝上型計算機(jī)、蜂窩電話、IP電話、智能電話、平板計算機(jī)、可轉(zhuǎn)換平板計算機(jī)、手持計算器或者用于處理和傳達(dá)數(shù)據(jù)的任何其他電子、微電子或者微機(jī)電設(shè)備。

客戶端設(shè)備110包括連接至存儲器220的處理器210,所述存儲器具有存儲在其中的用于提供操作系統(tǒng)222和反惡意軟件代理224的可執(zhí)行指令。客戶端設(shè)備110的其他部件包括存儲設(shè)備250、網(wǎng)絡(luò)接口260以及外圍設(shè)備接口240。

在示例中,盡管其他存儲器架構(gòu)是可能的(包括在其中存儲器220經(jīng)由系統(tǒng)總線270-1或一些其他總線與處理器210進(jìn)行通信的存儲器架構(gòu)),但是處理器210經(jīng)由存儲器總線270-3通信地耦合至存儲器220,通過示例的方式,所述存儲器總線可以是例如直接存儲器訪問(DMA)總線。處理器210可以經(jīng)由系統(tǒng)總線270-1通信地耦合至其他設(shè)備。如貫穿本說明書所使用的,“總線”包括任何有線或無線互連線、網(wǎng)絡(luò)、連接、束、單條總線、多條總線、交叉式網(wǎng)絡(luò)、單級網(wǎng)絡(luò)、多級網(wǎng)絡(luò)或可操作用于在計算設(shè)備的各個部分之間或計算設(shè)備之間承載數(shù)據(jù)、信號或功率的其他傳導(dǎo)介質(zhì)。應(yīng)當(dāng)注意的是,僅通過非限制性示例的方式來公開這些用途,并且一些實施例可以省略前述總線中的一條或多條總線,而其他實施例可以采用附加或不同總線。

在各個示例中,“處理器”可以包括硬件、軟件或提供可編程邏輯的固件的任何組合,通過非限制性示例的方式,包括微處理器、數(shù)字信號處理器、現(xiàn)場可編程門陣列、可編程邏輯陣列、專用集成電路或虛擬機(jī)處理器。

處理器210可以經(jīng)由DMA總線270-3連接至DMA配置中的存儲器220。為了簡化本公開,存儲器220被公開為單個邏輯塊,但是在物理實施例中可以包括具有任何一種或多種適當(dāng)?shù)囊资曰蚍且资源鎯ζ骷夹g(shù)的一塊或多塊,包括例如DDR RAM、SRAM、DRAM、緩存、L1或L2存儲器、片上存儲器、寄存器、閃存、ROM、光學(xué)介質(zhì)、虛擬存儲器區(qū)域、磁性或磁帶存儲器等。在某些實施例中,存儲器220可以包括相對低等待時間的易失性主存儲器,而存儲設(shè)備250可以包括相對更高等待時間的非易失性存儲器。然而,存儲器220和存儲設(shè)備250無需是物理分離的設(shè)備,并且在一些示例中可以僅表示功能的邏輯分離。還應(yīng)當(dāng)注意的是,盡管通過非限制性示例的方式公開了DMA,但是DMA并不是與本說明書一致的唯一協(xié)議,并且其他存儲器架構(gòu)是可用的。

存儲設(shè)備250可以是任何種類的存儲器220,或者可以是分離的設(shè)備,如硬盤驅(qū)動器、固態(tài)驅(qū)動器、外部存儲設(shè)備、獨立磁盤冗余陣列(RAID)、網(wǎng)絡(luò)附接存儲設(shè)備、光學(xué)存儲設(shè)備、磁帶驅(qū)動器、備份系統(tǒng)、云存儲設(shè)備、或前述任何組合。存儲設(shè)備250可以是或者可以在其中包括一個或多個數(shù)據(jù)庫或者存儲在其他配置中的數(shù)據(jù),并且可以包括所存儲的操作軟件拷貝,如操作系統(tǒng)222和反惡意軟件代理224的軟件部分。許多其他配置也是可能的,并且旨在包括在本說明書的寬泛范圍內(nèi)。

可以提供網(wǎng)絡(luò)接口260來將客戶端設(shè)備110與有線或無線網(wǎng)絡(luò)通信地耦合。如貫穿本說明書所使用的“網(wǎng)絡(luò)”可以包括可操作用于在計算設(shè)備內(nèi)或在計算設(shè)備之間交換數(shù)據(jù)或信息的任何通信平臺,通過非限制性示例的方式包括自組織本地網(wǎng)、提供具有電交互能力的通信設(shè)備的互聯(lián)網(wǎng)架構(gòu)、簡易老式電話系統(tǒng)(POTS)(計算設(shè)備可以使用所述簡易老式電話系統(tǒng)來執(zhí)行交易,在所述交易中它們可以由人類操作員來幫助或在所述交易中它們可以自動地將數(shù)據(jù)鍵入到電話或其他合適的電子設(shè)備中)、提供通信接口或在系統(tǒng)中的任何兩個節(jié)點之間進(jìn)行交換的任何分組數(shù)據(jù)網(wǎng)絡(luò)(PDN)、或任何局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、無線局域網(wǎng)(WLAN)、虛擬專用網(wǎng)(VPN)、內(nèi)聯(lián)網(wǎng)、或促進(jìn)網(wǎng)絡(luò)或電話環(huán)境中的通信的任何其他適當(dāng)?shù)募軜?gòu)或系統(tǒng)。

在一個示例中,反惡意軟件代理224是從服務(wù)器140處接收更新并且根據(jù)從服務(wù)器140處接收的信息來阻止或修復(fù)惡意軟件的工具或程序。在一些情況下,反惡意軟件代理224可以作為“守護(hù)進(jìn)程”而運行?!笆刈o(hù)進(jìn)程”可以包括任何程序或一系列可執(zhí)行指令,無論在硬件、軟件、固件或其任何組合中實施與否,那些可執(zhí)行指令都作為后臺進(jìn)程、終止并駐留程序、服務(wù)、系統(tǒng)擴(kuò)展、控制面板、啟動程序、BIOS子例程、或沒有直接用戶交互操作的任何類似程序的運行。還應(yīng)當(dāng)注意的是,反惡意軟件代理224僅通過非限制性示例的方式被提供,并且包括交互式或用戶模式軟件的其他硬件和軟件還可以結(jié)合、除了或替代反惡意軟件代理224而被提供,以便執(zhí)行根據(jù)本說明書的方法。

在一個示例中,反惡意軟件代理224包括存儲在可操作用于執(zhí)行惡意軟件活動的非瞬態(tài)介質(zhì)上的可執(zhí)行指令。在適當(dāng)時間(如在啟動客戶端設(shè)備110之后或在來自操作系統(tǒng)222或用戶120的命令之后),處理器210可以從存儲設(shè)備250中檢索反惡意軟件代理224(或其軟件部分)的副本并將其加載到存儲器220中。然后,處理器210可以迭代地執(zhí)行反惡意軟件代理224的指令。

外圍設(shè)備接口240可以被配置成用于與連接至客戶端設(shè)備110但不一定是客戶端設(shè)備110的核心架構(gòu)的一部分的任何輔助設(shè)備接口連接。外圍設(shè)備可以可操作用于向客戶端設(shè)備110提供擴(kuò)展功能,并且可以或可以不完全依賴于客戶端設(shè)備110。在一些情況下,外圍設(shè)備可以是其自身的計算設(shè)備。通過非限制性示例的方式,外圍設(shè)備可以包括輸入和輸出設(shè)備,如顯示器、終端、打印機(jī)、鍵盤、鼠標(biāo)、調(diào)制解調(diào)器、網(wǎng)絡(luò)控制器、傳感器、換能器、致動器、控制器、數(shù)據(jù)采集總線、照相機(jī)、麥克風(fēng)、揚聲器或者外部存儲設(shè)備。

圖3是根據(jù)本說明書的一個或多個示例的服務(wù)器140的框圖。如結(jié)合圖2所描述的,服務(wù)器140可以是任何合適的計算設(shè)備。通常,除非另外特別指出,圖2的定義和示例可以被認(rèn)為同樣適用于圖3。

服務(wù)器140包括連接至存儲器320的處理器310,所述存儲器具有存儲在其中的用于提供操作系統(tǒng)322和分類引擎324的可執(zhí)行指令。服務(wù)器140的其他部件包括存儲設(shè)備350、網(wǎng)絡(luò)接口360和外圍設(shè)備接口340。

在示例中,處理器310經(jīng)由存儲器總線370-3通信地耦合至存儲器320,所述存儲器總線可以是例如直接存儲器訪問(DMA)總線。處理器310可以經(jīng)由系統(tǒng)總線370-1通信地耦合至其他設(shè)備。

處理器310可以經(jīng)由DMA總線370-3連接至DMA配置中的存儲器320。為了簡化本公開,如結(jié)合圖2的存儲器220而描述的,存儲器320被公開為單個邏輯塊,但是在物理環(huán)境中可以包括具有任何一種或多種合適的易失性或非易失性存儲器技術(shù)的一個或多個塊。在某些實施例中,存儲器320可以包括相對低等待時間的易失性主存儲器,而存儲設(shè)備350可以包括相對更高等待時間的非易失性存儲器。然而,如結(jié)合圖2而進(jìn)一步描述的,存儲器320和存儲設(shè)備350無需是物理分離的設(shè)備。

如結(jié)合圖2的存儲設(shè)備250所描述的,存儲設(shè)備350可以是任何種類的存儲器320,或者可以是分離的設(shè)備。存儲設(shè)備350可以是或其中可以包括一個或多個數(shù)據(jù)庫或存儲在其他配置中的數(shù)據(jù),并且可以包括操作軟件的存儲副本,如操作系統(tǒng)322和分類引擎324的軟件部分。許多其他配置也是可能的,并且旨在包括在本說明書的寬泛范圍內(nèi)。

可以提供網(wǎng)絡(luò)接口360來將服務(wù)器140與有線或無線網(wǎng)絡(luò)通信地耦合。

在一個示例中,分類引擎324是執(zhí)行方法(如圖4的方法400或圖6的方法600)的工具或程序。在各個實施例中,分類引擎324可以在硬件、軟件、固件或其一些組合中被具體化。例如,在一些情況下,分類引擎324可以包括被設(shè)計成用于執(zhí)行方法或其一部分的專用集成電路,并且還可以包括可操作用于指示處理器執(zhí)行所述方法的軟件指令。如以上所描述的,在一些情況下,分類引擎324可以作為守護(hù)進(jìn)程而運行。還應(yīng)當(dāng)注意的是,分類引擎324僅通過非限制性示例的方式被提供,并且包括交互式或用戶模式軟件的其他硬件和軟件還可以結(jié)合、除了或替代分類引擎324而被提供,以便執(zhí)行根據(jù)本說明書的方法。

在一個示例中,分類引擎324包括存儲在可操作用于執(zhí)行根據(jù)本說明書的方法的非瞬態(tài)介質(zhì)上的可執(zhí)行指令。在適當(dāng)時間(如在啟動服務(wù)器140之后或在來自操作系統(tǒng)322或用戶120的命令之后),處理器310可以從存儲設(shè)備350中檢索分類引擎324的副本(或其軟件部分)并將其加載到存儲器320中。然后,處理器310可以迭代地執(zhí)行分類引擎324的指令。

外圍設(shè)備接口340可以被配置成用于與連接至服務(wù)器140但不一定是服務(wù)器140的核心架構(gòu)的一部分的任何輔助設(shè)備接口連接。外圍設(shè)備可以可操作用于向服務(wù)器140提供擴(kuò)展功能,并且可以或可以不完全依賴于服務(wù)器140。在一些情況下,外圍設(shè)備可以是其自身的計算設(shè)備。通過非限制性示例的方式,外圍設(shè)備可以包括結(jié)合圖2的外圍設(shè)備接口240所討論的設(shè)備中的任何設(shè)備。

圖4是根據(jù)本說明書的一個或多個示例的由分類引擎324執(zhí)行的方法400的流程圖。在執(zhí)行方法400時,分類引擎324可以具體地按以可接受的可信度將被分析對象與已知對象進(jìn)行匹配的意圖來操作。在一個示例中,已經(jīng)根據(jù)本文中所公開的方法對已知對象進(jìn)行反匯編、分析、表征和分類。在方法400中,分類引擎324將被分析對象分類為或者是對已知對象的匹配或者不是。

在框410中,如在本文中所描述的,分類引擎324對被分析對象進(jìn)行反匯編。

在框420中,分類引擎324為被分析對象創(chuàng)建一個或多個ASM列表文件。

在框430中,分類引擎324將ASM列表文件與CFL進(jìn)行比較。將CFL提供為來自框432的輸入。在此框中,可以標(biāo)識編譯器產(chǎn)生的代碼,并且可以標(biāo)識其他已知好的或良好的子例程。框430還可以接收函數(shù)黑名單434。函數(shù)黑名單434可以包括高度可信地已知僅發(fā)生在惡意軟件對象中的許多函數(shù)。

在決策框452中,分類引擎324判定是否發(fā)現(xiàn)被列入黑名單的函數(shù)。如果發(fā)現(xiàn)被列入黑名單的函數(shù),則在框454中,分類引擎324可以將被分析對象列入黑名單或者以其他方式修復(fù)被分析對象。然后,可以將控制轉(zhuǎn)到框490,并且完成方法400。

這代表標(biāo)識惡意軟件對象比將惡意軟件對象分類成族更重要的示例。如果特定實施例的主要目的僅是確保惡意軟件被標(biāo)識和抑制,則對被分析對象中的已知惡意軟件例程的包含對此目的來說可能足夠了。

然而,存在對所述對象進(jìn)行完全分類仍然有用的情況。在那種情況下,從框430直接到框440之后可能是平行路徑。在那種情況下,可以將所述對象列入黑名單,但是如果可能,對所述對象進(jìn)行分類仍然有用。

返回至框452,如果沒有發(fā)現(xiàn)黑名單函數(shù),則將控制轉(zhuǎn)到框440。如以上所描述的,在平行路徑中,還可以將控制直接從框430轉(zhuǎn)到框440。

在框440中,分類引擎324丟棄已知干凈函數(shù),如編譯器生成的代碼和標(biāo)準(zhǔn)庫例程。如以上所描述的,這些函數(shù)可能不是有意義地有助于判定對象是否是惡意軟件。

在框442中,分類引擎324可以標(biāo)準(zhǔn)化剩余函數(shù)。這可以包括將操作數(shù)分類為例如寄存器、存儲器位置和常量。在其他情況下,這可以包括簡單地保持操作碼,其中,指令的語義由操作碼完全確定。這種標(biāo)準(zhǔn)化過程的結(jié)果是標(biāo)準(zhǔn)化ASM列表。

在框450中,對框442的標(biāo)準(zhǔn)化ASM列表進(jìn)行操作,如以上所描述的,分類引擎324可以生成N-grams并對其進(jìn)行散列。對N的選擇可以取決于期望的粒度或精確度以及可用計算資源。在一個示例中,將N選擇為3。在另一個示例中,將N選擇為從2到10的值。這些示例是非限制性的,并且僅以說明的方式提供。

在框460中,分類引擎324接收應(yīng)用程序分類法并執(zhí)行相似性分析。應(yīng)用程序分類法462可以提供例如用于將惡意軟件對象組成族的分類方案。由此,可以根據(jù)這種分類法將此示例的已知對象分類成惡意軟件族???60的相似性分析的目的是判定第一可執(zhí)行對象是否還應(yīng)當(dāng)被分類成相同的惡意軟件族。如以上所描述的,相似性分析460可以包括杰卡德指數(shù)。相似性分析的結(jié)果是計算的變量J。

在框470中,分類引擎324判定J是否大于所提供的閾值。如果J大于所述閾值,則在框480中,第一可執(zhí)行對象被認(rèn)為是對第二可執(zhí)行對象的匹配,并且可以接收相同的分類。

返回至框470,如果J不大于所述閾值,則在框482中,被分析對象不被考慮為對已知對象的匹配。

在框490中,所述方法完成。

圖5是根據(jù)本說明書的一個或多個示例的對象分類的功能性框圖???10是惡意軟件樣本儲存庫。可以根據(jù)分類法(如圖4的分類法462)對惡意軟件樣本510進(jìn)行分類。

惡意軟件樣本510以及被分析對象512可以被提供給如高級威脅防御(ATD)裝置520等功能框。ATD裝置520可以可操作用于創(chuàng)建反匯編的ASM列表文件522。在一些情況下,可以將ASM列表文件522轉(zhuǎn)換成調(diào)用蹤跡。

將ASM列表文件522提供給ASM標(biāo)準(zhǔn)化框530。如本文中所描述的,ASM標(biāo)準(zhǔn)化框530執(zhí)行ASM標(biāo)準(zhǔn)化,如從助記符和/或操作碼中對操作數(shù)進(jìn)行分類和/或修整。然后,將標(biāo)準(zhǔn)化ASM文件提供給過濾元框550。

過濾元框550接收例如輸入黑名單函數(shù)數(shù)據(jù)庫540和干凈函數(shù)列表數(shù)據(jù)庫432。在框552中,過濾元框550根據(jù)干凈函數(shù)列表數(shù)據(jù)庫432標(biāo)識并隔離干凈函數(shù)。在框554中,過濾框550標(biāo)識被列入黑名單的函數(shù)。如結(jié)合圖4所指出的,在某些實施例中,標(biāo)識一個或多個被列入黑名單的函數(shù)對完成必要分析和將對象本身列入黑名單來說可能足夠了。在其他示例中,可以執(zhí)行附加分析。

在框580中,分類引擎324生成N-grams以便進(jìn)行分析。在元框570中,分類引擎324對N-grams進(jìn)行操作。這可以包括特征散列572和特征向量574。

在框560中,分類引擎324例如根據(jù)杰卡德指數(shù)執(zhí)行相似性分析。對相似性的輸入可以是分類法數(shù)據(jù)庫462。一個或多個安全研究員590可以貢獻(xiàn)于分類法數(shù)據(jù)庫462。

相似性分析560向元框592提供值J。元框592可以從安全研究員590處接收輸入,并且可以包括分類度量,如族名稱594和匹配百分比596。

根據(jù)圖5的功能性框圖,基于相似性分析560,將被分析對象512與一個或多個惡意軟件樣本510進(jìn)行比較并使用零個或多個惡意軟件樣本對其進(jìn)行分類。

圖6是根據(jù)本說明書的一個或多個示例的由分類引擎324執(zhí)行的方法600的流程圖。在執(zhí)行方法600時,分類引擎324可以具體地按以高可信度標(biāo)識灰色軟件或惡意軟件應(yīng)用程序的意圖來操作。在一個示例中,已經(jīng)根據(jù)本文中所公開的方法對某些已知對象進(jìn)行反匯編、分析、表征和分類。在方法600中,分類引擎324將被分析對象分類為或者合法的或者可疑的。

在框610中,如在本文中所描述的,分類引擎324對被分析對象進(jìn)行反匯編。

在框620中,分類引擎324為被分析對象創(chuàng)建一個或多個ASM列表文件并從ASM列表文件中生成調(diào)用蹤跡。

在框630中,分類引擎324將調(diào)用蹤跡與CFL進(jìn)行比較。將CFL提供為來自框632的輸入。在此框中,可以標(biāo)識編譯器產(chǎn)生的代碼,并且可以標(biāo)識其他已知好的或良好的子例程???30還可以接收函數(shù)黑名單634。函數(shù)黑名單634可以包括高度可信地已知僅發(fā)生在惡意軟件或灰色軟件對象中的許多函數(shù)。

在框640中,分類引擎324丟棄已知干凈函數(shù),如編譯器生成的代碼和標(biāo)準(zhǔn)庫例程。如以上所描述的,這些函數(shù)可能不是有意義地有助于判定對象是否是灰色軟件。

在框650中,分類引擎324接收應(yīng)用程序分類法652,并根據(jù)所述分類法對被分析對象進(jìn)行分類。

在框660中,分類引擎324生成被分析對象的多重圖,包括預(yù)期類別行為662。在Joris Kinable和Orestis Kostakis于2010年8月27日發(fā)表的“Malware Classification based on Call Graph Clustering(基于調(diào)用圖聚類的惡意軟件分類)”論文中更加詳細(xì)地描述了多重圖生成。自本申請的日期起,可以在http://arxiv.org/abs/1008.4365獲得本論文。

在決策框670中,分類引擎判定被分析對象是否與針對其應(yīng)用程序類別(如在框660中所確定的)的預(yù)期行為相匹配。

在框680中,如果所述行為與預(yù)期相匹配,則被分析對象可以被認(rèn)為是合法的。

在框682中,如果所述行為與預(yù)期不匹配,則被分析對象可以酌情被認(rèn)為是灰色軟件或惡意軟件。

在框690中,所述方法完成。

前述內(nèi)容概述了若干實施例的特征,從而使得本領(lǐng)域的技術(shù)人員可以更好地理解本公開的方面。本領(lǐng)域的技術(shù)人員應(yīng)該認(rèn)識到,他們可以容易地將本公開用作設(shè)計或修改其他過程以及結(jié)構(gòu)的基礎(chǔ),以便于實施相同的目的和/或?qū)崿F(xiàn)本文中介紹的實施例的相同優(yōu)點。本領(lǐng)域的技術(shù)人員還應(yīng)意識到,所述等同構(gòu)造沒有背離本公開的精神和范圍,并且在不背離本公開的精神和范圍的情況下,可做出各種改變、替換和替代。

本公開的特定實施例可以容易地包括片上系統(tǒng)(SOC)中央處理單元(CPU)封裝件。SOC表示將計算機(jī)或其他電子系統(tǒng)的部件整合到單個芯片中的集成電路(IC)。其可以包含數(shù)字、模擬、混合信號、以及射頻功能,所有所述功能可以在單個芯片基底上提供。其他實施例可以包括多芯片模塊(MCM),多個芯片位于單個電子封裝件內(nèi)并且被配置成用于通過電子封裝件彼此密切交互。在各個其他實施例中,數(shù)字信號處理功能可以在專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)和其他半導(dǎo)體芯片中的一個或多個硅核中實施。

在示例實施方式中,本文中概述的處理活動的至少一些部分也可以在軟件中實施。在一些實施例中,這些特征中的一個或多個特征可以在所公開的附圖的元件外部提供的硬件中實施,或者可以采用任何適當(dāng)方式來合并,以便實現(xiàn)預(yù)期功能。各種部件可以包括可以協(xié)調(diào)以便實現(xiàn)如在此所概述的操作的軟件(或者往復(fù)式軟件)。在仍其他實施例中,這些元件可以包括促進(jìn)其操作的任何適當(dāng)?shù)乃惴?、硬件、軟件、部件、模塊、接口或者對象。

此外,可以移除或以其他方式合并與所描述的微處理器相關(guān)聯(lián)的部件中的一些部件。在一般意義上,在附圖中所描繪的安排可以在其表示上可以更合邏輯,而物理架構(gòu)可以包括這些元件的各種排列、組合和/或混合。必須注意,可以使用無數(shù)可能的設(shè)計配置來實現(xiàn)本文中所概述的操作目標(biāo)。相應(yīng)地,相關(guān)聯(lián)的基礎(chǔ)設(shè)施具有大量替代安排、設(shè)計選擇、設(shè)備可能性、硬件配置、軟件實施方式、設(shè)備選項等。

任何適當(dāng)配置的處理器部件可以執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令以便實現(xiàn)在此詳細(xì)說明的操作。在此公開的任何處理器可以將元件或物品(例如,數(shù)據(jù))從一個狀態(tài)或一種東西轉(zhuǎn)換為另一個狀態(tài)或另一種東西。在另一個示例中,在此概述的一些活動可以使用固定邏輯或者可編程邏輯(例如,由處理器執(zhí)行的軟件和/或計算機(jī)指令)實施,并且在此標(biāo)識的元件可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(FPGA)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM))、包括數(shù)字邏輯、軟件、代碼、電子指令、閃速存儲器、光盤、CD-ROM、DVD ROM、磁性或者光學(xué)卡、適合于存儲電子指令的其他類型的機(jī)器可讀介質(zhì)的ASIC、或者其任何適當(dāng)?shù)慕M合。在操作中,處理器可以將信息存儲在任何適當(dāng)類型的非瞬態(tài)存儲介質(zhì)(例如,隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、現(xiàn)場可編程門陣列(FPGA)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程ROM(EEPROM)等)、軟件、硬件中或者在適當(dāng)況下并基于特定需要存儲在任何其他適當(dāng)部件、設(shè)備、元件或者物體中。進(jìn)一步地,可以在任何數(shù)據(jù)庫、寄存器、表格、緩存、隊列、控制列表或者存儲結(jié)構(gòu)(所有這些可以在任何適當(dāng)?shù)臅r間幀被引用)中基于特定需要和實施方式提供在處理器中被跟蹤、發(fā)送、接收或者存儲的信息。本文中所討論的存儲器項中的任何存儲器項應(yīng)當(dāng)被理解為包括在寬泛術(shù)語‘存儲器’內(nèi)。類似地,本文中所描述的可能的處理元件、模塊以及機(jī)器中的任何一者應(yīng)當(dāng)被理解為包括在寬泛術(shù)語‘微處理器’或者‘處理器’內(nèi)。另外,在各種實施例中,本文中所描述的處理器、存儲器、網(wǎng)卡、總線、存儲設(shè)備、相關(guān)外圍設(shè)備以及其他硬件元件可以由軟件或固件配置來模仿或者虛擬化這些硬件元件的功能的處理器、存儲器以及其他相關(guān)設(shè)備實施。

采用各種形式來具體化實施在此描述的功能中的所有或部分功能的計算機(jī)程序邏輯,包括但決不限于源代碼形式、計算機(jī)可執(zhí)行的形式、以及各種中間形式(例如,由匯編器、編輯器、鏈接器或定位器生成的形式)。在示例中,源代碼包括以各種編程語言實施的一系列計算機(jī)程序指令,如目標(biāo)代碼、匯編語言、或高級語言(比如,與各種操作系統(tǒng)或操作環(huán)境一起使用的OpenCL、Fortran、C、C++、JAVA或HTML)。源代碼可以限定并使用各種數(shù)據(jù)結(jié)構(gòu)和通信消息。源代碼可以采用計算機(jī)可執(zhí)行的形式(例如,經(jīng)由解釋器),或者源代碼可以被轉(zhuǎn)換(例如,經(jīng)由轉(zhuǎn)換器、匯編器、或編譯器)成計算機(jī)可執(zhí)行的形式。

在對以上實施例的討論中,可以容易地替換、替代或以其他方式修改電容器、緩沖器、圖形元件、互連板、時鐘、DDR、相機(jī)傳感器、除法器、電感器、電阻器、放大器、開關(guān)、數(shù)字核、晶體管和/或其他部件,以便滿足特定電路需要。此外,應(yīng)當(dāng)注意的是,對互補電子設(shè)備、硬件、非瞬態(tài)軟件等的使用提供了同等可行的選項,以便實施本公開的教導(dǎo)。

在一個示例實施例中,可以在相關(guān)聯(lián)的電子設(shè)備的板上實施附圖的任何數(shù)量的電路。所述板可以是能夠容納電子設(shè)備的內(nèi)部電子系統(tǒng)的各個部件并進(jìn)一步為其他外圍設(shè)備提供連接器的一般電路板。更具體地,所述板可以提供電連接,系統(tǒng)的其他部件可以通過這些電連接來進(jìn)行電通信??梢曰谔囟ㄅ渲眯枰?、處理需求、計算機(jī)設(shè)計等來將任何合適的處理器(包括數(shù)字信號處理器、微處理器、支持芯片組等)、存儲器元件等適當(dāng)?shù)伛詈现了霭?。如外部存儲設(shè)備、附加傳感器、用于音頻/視頻顯示的控制器、以及外圍設(shè)備等其他部件可以作為插入卡而經(jīng)由線纜附接至所述板,或者整合到所述板本身中。在另一個示例實施例中,附圖的電路可以被實施為獨立的模塊(例如,具有相關(guān)聯(lián)的部件的設(shè)備和被配置成用于執(zhí)行特定應(yīng)用程序或功能的電路),或者被實施為到電子設(shè)備的專用硬件的插入模塊。

注意,使用在此所提供的許多示例,可以關(guān)于兩個、三個、四個或更多個電氣部件來對交互進(jìn)行描述。然而,已經(jīng)僅為了清晰和示例的目的而完成了這一點。應(yīng)理解的是,可以采用任何適當(dāng)方式來合并所述系統(tǒng)。根據(jù)類似設(shè)計替代方案,可以在各種可能的配置中組合附圖中展示的部件、模塊和元件中的任一者,所有所述配置在本說明書的廣泛范圍內(nèi)。在某些情況下,通過僅參照有限數(shù)量的電氣元件,可能更容易描述一組給定流程的功能中的一項或多項功能。應(yīng)當(dāng)理解的是,附圖的電路及其教導(dǎo)是可容易擴(kuò)展的,并且可以容納大量部件以及更復(fù)雜/成熟的安排和配置。相應(yīng)地,所提供的示例不應(yīng)限制如潛在地應(yīng)用程序到無數(shù)其他架構(gòu)上的電路的范圍或抑制其寬泛教導(dǎo)。

許多其他的改變、替代、變更、改變、和修改對本領(lǐng)域技術(shù)人員來說是確定的,并且旨在本公開包含了落在所附權(quán)利要求書的范圍內(nèi)的所有的改變、替代、變更、改變、和修改。為了幫助美國專利和商標(biāo)局(USPTO)以及另外在此申請上發(fā)布的任何專利的任何閱讀者解釋在此所附權(quán)利要求書,申請人希望注意的是,申請人:(a)不旨在所附權(quán)利要求書中的任何一項當(dāng)出現(xiàn)于其提交日期時調(diào)用美國專利法第35章第112節(jié)第(6)段,除非具體權(quán)利要求中特別適用了單詞“用于……的裝置”或“用于……的步驟”;并且(b)不旨在借助說明書中的任何聲明以任何所附權(quán)利要求書中未另外反應(yīng)的方式限制本公開。

示例實施方式

示例1公開了一種計算裝置,包括:處理器;以及一個或多個邏輯元件,所述一個或多個邏輯元件包括分類引擎,所述分類引擎可操作用于:對被分析對象進(jìn)行反匯編;創(chuàng)建所述被分析對象的匯編語言列表;將所述匯編語言列表與已知對象進(jìn)行比較,所述已知對象屬于對象分類法中的族;以及將所述被分析對象分類為屬于所述對象分類法中的所述族。

示例2公開了如示例1所述的計算裝置,其中,所述分類引擎進(jìn)一步可操作用于從所述匯編語言列表中過濾已知干凈函數(shù)。

示例3公開了如示例1所述的計算裝置,其中,所述分類引擎進(jìn)一步可操作用于:在所述匯編語言列表中標(biāo)識至少一個被列入黑名單的函數(shù);以及將所述被分析對象指定為被列入黑名單的對象。

示例4公開了如示例1所述的計算裝置,其中,所述分類引擎進(jìn)一步可操作用于創(chuàng)建所述匯編語言列表的調(diào)用蹤跡。

示例5公開了如示例1所述的計算裝置,其中,所述分類引擎進(jìn)一步可操作用于標(biāo)準(zhǔn)化所述匯編語言列表的指令。

示例6公開了如示例5所述的計算裝置,其中,標(biāo)準(zhǔn)化所述匯編語言列表包括:保留操作代碼或助記符;以及對操作數(shù)進(jìn)行分類。

示例7公開了如示例6所述的計算裝置,其中,對操作數(shù)進(jìn)行分類包括將至少一些操作數(shù)分類為寄存器、存儲器地址和常量之一。

示例8公開了如示例5所述的計算裝置,其中,所述匯編語言的指令包括至少一些指令的語義,并且其中,標(biāo)準(zhǔn)化所述匯編語言列表包括丟棄針對所述至少一些包括語義的指令的操作數(shù)。

示例9公開了如示例1所述的計算裝置,其中,所述分類引擎進(jìn)一步可操作用于對所述匯編語言列表執(zhí)行N-gram分析。

示例10公開了如示例9所述的計算裝置,其中,所述分類引擎進(jìn)一步可操作用于生成所述N-gram分析中的每個N-gram的散列。

示例11公開了如示例1所述的計算裝置,其中,所述分類引擎進(jìn)一步可操作用于對所述被分析對象和所述已知對象執(zhí)行相似性分析。

示例12公開了如示例11所述的計算裝置,其中,所述相似性分析包括計算杰卡德指數(shù)。

示例13公開了如示例1所述的計算裝置,其中,所述已知對象為惡意軟件對象。

示例14公開了一種或多種計算機(jī)可讀介質(zhì),具有存儲在其上的可執(zhí)行指令,所述可執(zhí)行指令用于指示處理器提供分類引擎,所述分類引擎可操作用于:對被分析對象進(jìn)行反匯編;

創(chuàng)建所述被分析對象的匯編語言列表;將所述匯編語言列表與已知對象進(jìn)行比較,所述已知對象屬于對象分類法中的族;以及將所述被分析對象分類為屬于所述對象分類法中的所述族。

示例15公開了如示例14所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述分類引擎進(jìn)一步可操作用于從所述匯編語言列表中過濾已知干凈函數(shù)。

示例16公開了如示例14所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述分類引擎進(jìn)一步可操作用于:在所述匯編語言列表中標(biāo)識至少一個被列入黑名單的函數(shù);以及將所述被分析對象指定為被列入黑名單的對象。

示例17公開了如示例14所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述分類引擎進(jìn)一步可操作用于創(chuàng)建所述被分析對象的調(diào)用蹤跡。

示例18公開了如示例14所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述分類引擎進(jìn)一步可操作用于標(biāo)準(zhǔn)化所述匯編語言列表的指令。

示例19公開了如示例18所述的一種或多種計算機(jī)可讀介質(zhì),其中,標(biāo)準(zhǔn)化所述匯編語言列表包括:保留操作代碼或助記符;將至少一些操作數(shù)分類為寄存器、存儲器地址和常量之一。

示例20公開了如示例18所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述匯編語言的指令包括至少一些指令的語義,并且其中,標(biāo)準(zhǔn)化所述匯編語言列表包括丟棄針對所述至少一些包括語義的指令的操作數(shù)。

示例21公開了如示例14所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述分類引擎進(jìn)一步可操作用于:對所述匯編語言列表執(zhí)行N-gram分析,以及生成所述N-gram分析中的每個N-gram的散列。

示例22公開了如示例14所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述分類引擎進(jìn)一步可操作用于對所述被分析對象和所述已知對象執(zhí)行相似性分析,其中,所述相似性分析包括計算杰卡德指數(shù)。

示例23公開了如示例14所述的一種或多種計算機(jī)可讀介質(zhì),其中,所述已知對象為惡意軟件對象。

示例24公開了一種提供分類引擎的計算機(jī)實現(xiàn)的方法,所述方法包括:對被分析對象進(jìn)行反匯編;創(chuàng)建所述被分析對象的調(diào)用蹤跡;將所述調(diào)用蹤跡與已知對象進(jìn)行比較,所述已知對象屬于對象分類法中的族;以及生成所述被分析對象的多重圖。

示例25公開了如示例24所述的計算機(jī)實現(xiàn)的方法,進(jìn)一步包括:根據(jù)所述多重圖確定所述被分析對象與預(yù)期不匹配;以及將所述被分析對象指定為不屬于所述對象分類法中的所述族。

示例26公開了一種方法,包括執(zhí)行如示例14至23中任一項公開的指令。

示例27公開了一種裝置,包括用于執(zhí)行如示例26所述的方法的裝置。

示例28公開了如示例27所述的裝置,其中,所述裝置包括處理器和存儲器。

示例29公開了如示例28所述的裝置,其中,所述裝置進(jìn)一步包括具有存儲在其上的軟件指令的計算機(jī)可讀介質(zhì),所述軟件指令用于執(zhí)行如示例26所述的方法。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1