日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

一種惡意文件的檢測方法和裝置的制造方法

文檔序號:10613171閱讀:503來源:國知局
一種惡意文件的檢測方法和裝置的制造方法
【專利摘要】本發(fā)明屬于信息安全領(lǐng)域,涉及一種惡意文件的檢測方法,所述方法包括:文件反編譯步驟,對被檢測文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù);數(shù)據(jù)篩選步驟,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù);數(shù)據(jù)清洗步驟,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù);比較步驟,將所述被檢測文件中的每個用戶所寫函數(shù)與已知的惡意函數(shù)和干凈函數(shù)比較,獲取被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值;判斷步驟,根據(jù)被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值判斷被檢測文件的惡意程度。通過上述技術(shù)方案,實現(xiàn)把惡意文件的檢測粒度降低到函數(shù)級別,有利于提高文件惡意性的判定。
【專利說明】
一種惡意文件的檢測方法和裝置
技術(shù)領(lǐng)域
[0001]本專利屬于信息安全領(lǐng)域,具體而言涉及一種惡意文件的檢測方法和裝置。
【背景技術(shù)】
[0002]在信息安全領(lǐng)域,惡意文件檢測是非常重要的一環(huán)。惡意文件的類型多種多樣。例如,包括但不限于Windows系統(tǒng)的PE文件、Linux系統(tǒng)的ELF文件、MAC系統(tǒng)的可執(zhí)行文件、Android系統(tǒng)上的APK文件;還有客戶端腳本類文件,如Javascript腳本、VBscript腳本、shel I腳本;還有服務(wù)端腳本文件,如PHP文件,Python文件,ASP文件等等。為了保證信息安全需要判定出預(yù)定文件是否是惡意文件,并采取相應(yīng)的措施進行處理。
[0003]現(xiàn)有技術(shù)中對惡意文件的判定方法針對不同的文件類型也不盡然相同。但惡意文件的判定一般有兩種方式,一是靠人工判定,需要借助安全人員的經(jīng)驗來對文件進行分析;二是自動化判定,自動化判定方式是使用計算機程序來固化人工的經(jīng)驗,達到機器自動化判定惡意文件的目的。自動化判定技術(shù),本質(zhì)上是根據(jù)已知文件與未知文件之間的關(guān)聯(lián),來推測出未知文件的屬性。這種關(guān)聯(lián)包含了文件內(nèi)容的相似度比較、文件內(nèi)容的差異性比較、文件的來源是否相同、以及是文件之間否有同樣的簽名信息,等等。其中最重要的就是文件內(nèi)容的相似度比較,因為多數(shù)情況下,能夠獲得的只有文件的內(nèi)容而沒有文件的外圍關(guān)聯(lián)?目息O
[0004]隨著惡意文件種類和技術(shù)的日益增長,現(xiàn)有技術(shù)中需要持續(xù)地豐富對惡意文件檢測的手段,以便于提高信息安全能力。

【發(fā)明內(nèi)容】

[0005]本專利即是基于現(xiàn)有技術(shù)中的上述需求而提出的,本專利要解決的技術(shù)問題是提供一種惡意文件的檢測方法和裝置,提高對于惡意文件檢測的能力。
[0006]為了解決上述問題,本發(fā)明提供了如下技術(shù)方案:
[0007]—種惡意文件的檢測方法,所述方法包括:文件反編譯步驟,對被檢測文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù);數(shù)據(jù)篩選步驟,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù);數(shù)據(jù)清洗步驟,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù);比較步驟,將所述被檢測文件中的每個用戶所寫函數(shù)與已知的惡意函數(shù)和干凈函數(shù)比較,獲取被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值;判斷步驟,根據(jù)被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值判斷被檢測文件的惡意程度。
[0008]優(yōu)選地,所述方法還包括:函數(shù)內(nèi)容摘要計算步驟,針對每個被檢測文件中用戶所寫函數(shù),取所述清洗后的函數(shù)數(shù)據(jù)中預(yù)定長度的編碼,根據(jù)該編碼計算得到該函數(shù)內(nèi)容摘要值。
[0009]優(yōu)選地,獲取已知的惡意函數(shù)和干凈函數(shù)的方法包括:文件采集步驟,采集樣本文件,所述樣本文件包含已知的干凈文件和惡意文件;文件反編譯步驟,分別對每個干凈文件和惡意文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù);數(shù)據(jù)篩選步驟,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù);數(shù)據(jù)清洗步驟,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù);統(tǒng)計步驟,根據(jù)所述清洗后的函數(shù)數(shù)據(jù)統(tǒng)計每個函數(shù)在惡意文件和干凈文件中出現(xiàn)的次數(shù),根據(jù)所述次數(shù)得到每個函數(shù)的惡意程度數(shù)值。
[0010]優(yōu)選地,所述底層語言描述的函數(shù)數(shù)據(jù)為操作碼或字節(jié)碼。
[0011]優(yōu)選地,所述去除其中的不穩(wěn)定字節(jié)包括:對所述不穩(wěn)定的字節(jié)賦予預(yù)定的數(shù)值,或者將所述不穩(wěn)定的字節(jié)完全刪除。
[0012]根據(jù)本專利的另外一個方面,提供了一種函數(shù)惡意程度的檢測裝置,所述裝置包括:文件采集模塊,采集樣本文件,所述樣本文件包含已知的干凈文件和惡意文件;文件反編譯模塊,分別對每個干凈文件和惡意文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù);數(shù)據(jù)篩選模塊,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù);數(shù)據(jù)清洗模塊,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù);統(tǒng)計模塊,根據(jù)所述清洗后的函數(shù)數(shù)據(jù)統(tǒng)計每個函數(shù)在惡意文件和干凈文件中出現(xiàn)的次數(shù),根據(jù)所述次數(shù)得到每個函數(shù)的惡意程度數(shù)值。
[0013]優(yōu)選地,所述裝置還包括:函數(shù)內(nèi)容摘要計算模塊,針對每個函數(shù),取所述清洗后的函數(shù)數(shù)據(jù)中預(yù)定長度的編碼,根據(jù)該編碼計算得到該函數(shù)內(nèi)容摘要值;
[0014]優(yōu)選地,所述裝置還包括已知惡意函數(shù)和干凈函數(shù)惡意程度判斷模塊,所述已知惡意函數(shù)和干凈函數(shù)惡意程度判斷模塊包括:文件采集子模塊,采集樣本文件,所述樣本文件包含已知的干凈文件和惡意文件;文件反編譯子模塊,分別對每個干凈文件和惡意文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù);數(shù)據(jù)篩選子模塊,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù);數(shù)據(jù)清洗子模塊,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù);統(tǒng)計子模塊,根據(jù)所述清洗后的函數(shù)數(shù)據(jù)統(tǒng)計每個函數(shù)在惡意文件和干凈文件中出現(xiàn)的次數(shù),根據(jù)所述次數(shù)得到每個函數(shù)的惡意程度數(shù)值。
[0015]優(yōu)選地,所述底層語言描述的函數(shù)數(shù)據(jù)為操作碼或字節(jié)碼。
[0016]優(yōu)選地,所述去除其中的不穩(wěn)定字節(jié)包括:對所述不穩(wěn)定的字節(jié)賦予預(yù)定的數(shù)值,或者將所述不穩(wěn)定的字節(jié)完全刪除。
[0017]本專利通過上述技術(shù)方案,實現(xiàn)了對文件中對于單個函數(shù)惡意程度的判斷從而判斷整個文件的惡意程度。把文件的檢測粒度降低到用戶所寫的函數(shù)的級別,豐富了對于惡意文件判斷的手段,從而有利于提高文件惡意性的判定能力。
【附圖說明】
[0018]圖1是本專利【具體實施方式】中提供的一種惡意文件的檢測方法的流程圖。
[0019]圖2是本專利【具體實施方式】中提供的一種已知函數(shù)惡意程度判斷的方法流程圖。
[0020]圖3是本專利【具體實施方式】中提供的一種惡意文件的檢測裝置的結(jié)構(gòu)圖。
[0021]圖4是本專利【具體實施方式】中提供的一種已知函數(shù)惡意程度判斷的裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0022]下面結(jié)合附圖對本專利的【具體實施方式】進行說明。需要指出的是,本【具體實施方式】僅僅是對本專利優(yōu)選技術(shù)方案的舉例,并不能理解為對本專利保護范圍的限制。
[0023]實施例一
[0024]本實施例一提供了一種惡意文件的檢測方法。通過該方法檢測計算機文件的惡意性。
[0025]本實施例一中所指的惡意文件是指能夠在計算機系統(tǒng)或者其他智能系統(tǒng)運行并進行惡意操作的文件。其中所述計算機系統(tǒng)并不僅限于個人電腦或者是服務(wù)器,還包括其他利用計算機工作的系統(tǒng);其他智能系統(tǒng)包括但不限于手機操作系統(tǒng)、可穿戴設(shè)備操作系統(tǒng)以及智能機器人操作系統(tǒng)等。
[0026]圖1示出了本實施例中惡意文件檢測方法的流程。在該方法中包括如下步驟:
[0027]步驟001文件反編譯,對被檢測文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù)。
[0028]對于被檢測文件是否是惡意文件的檢測技術(shù),在現(xiàn)有技術(shù)中有廣泛的記載,例如采用分析代碼的方法,或者是采用黑名單、白名單的方法等等。
[0029]在本實施例中,提供了一種基于被檢測文件中的函數(shù)進行分析的方法。在本實施例的方法中,首先需要分析出被檢測文件中的函數(shù),因而在本實施例中首先對于被檢測文件進行反編譯,以獲取所述被檢測文件中的函數(shù)的信息。
[0030]在步驟001中對預(yù)定的被檢測文件進行反編譯,以獲得采用底層語言描述的所述被檢測文件的函數(shù)數(shù)據(jù)。將每個被檢測文件所得到的反編譯結(jié)果單獨存儲。
[0031]反編譯可以采用現(xiàn)有技術(shù)中的反編譯工具來實現(xiàn),例如采用現(xiàn)有技術(shù)中的編譯工具IDA來實現(xiàn),當然也可以采用現(xiàn)有技術(shù)中的其它反編譯方法來實現(xiàn),以將每個被檢測文件編譯得到各自的底層語言描述的函數(shù)數(shù)據(jù)。
[0032]所述底層語言例如是一種使用十六進制字符描述的序列。例如樣本文件是EXE文件,則將其反編譯成匯編語言描述的函數(shù)數(shù)據(jù)包,如果樣本是APK文件,則將其反編譯成Smali語言描述的函數(shù)數(shù)據(jù)包。所述匯編語言和所述Samli語言都是使用十六進制的字節(jié)來描述的序列。所述匯編語言描述的函數(shù)數(shù)據(jù)也可以叫做操作碼,其它的底層語言描述的函數(shù)數(shù)據(jù)通常稱為字節(jié)碼。
[0033]將所述被檢測文件反編譯成上述底層語言描述的內(nèi)容,是因為絕大部分的計算機文件都可以反編譯成上述底層語言,并且反編譯成上述底層語言能夠更加真實地反應(yīng)所述文件的內(nèi)容。從而提高了對文件分析的適用范圍和準確性。
[0034]步驟002,對所述函數(shù)數(shù)據(jù)進行篩選,得到與樣本軟件中由用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù)。
[0035]在步驟002中的所述篩選包括對步驟001得到的底層語言所描述的函數(shù)進行篩選。
[0036]所述篩選可以包括去除匯編語言級別的庫函數(shù)、以及在反編譯過程中由編譯器自動生成的函數(shù)。因為,通常惡意的指令都是由特定的用戶所施加的,庫函數(shù)和編譯工具生成的函數(shù)通常都不會帶來惡意指令,也就是說通常文件中的惡意指令的特征信息都是基于用戶自行編寫完成的,因而僅僅保留與用戶所寫內(nèi)容對應(yīng)的函數(shù)就足以保留與文件是否惡意相關(guān)的特征,去掉其他函數(shù)可以避免帶來噪音影響判斷。
[0037]識別用戶所寫的內(nèi)容以及庫函數(shù)和編譯工具生成的函數(shù),可以通過現(xiàn)有技術(shù)來實現(xiàn),通常現(xiàn)有技術(shù)中對于庫函數(shù)和編譯器自動生成的函數(shù)都有明確的記錄,因而將這些函數(shù)直接去掉即可。例如,當采用IDA反編譯工具反編譯時,可以調(diào)用IDA反編譯工具提供的API來實現(xiàn)這些篩選,當然依據(jù)與之類似的規(guī)則,也可以在反編譯庫中實現(xiàn)上述篩選。
[0038]篩選過庫函數(shù)和編譯器生成的函數(shù)的數(shù)據(jù),后通常僅剩下與用戶所寫內(nèi)容對應(yīng)的函數(shù)。當然如果在反編譯得到的函數(shù)數(shù)據(jù)中存在其它與用戶所寫內(nèi)容無關(guān)的函數(shù)也可以去除。
[0039]步驟003,對每個與用戶所寫內(nèi)容所對應(yīng)的函數(shù)進行清洗,去除其中不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù)。
[0040]如上所述,每一個函數(shù)在反編譯完成后的數(shù)據(jù)內(nèi)容是一段16進制的字節(jié)序列。在該字節(jié)序列中的某些字節(jié)是在每次編譯之后有可能是不一樣的,例如,其中有些字節(jié)的值是某個字符串的偏移地址,由于字符串的位置在每次編譯后有可能是不一樣的,這樣就導(dǎo)致了所述偏移地址也不一樣,從而相應(yīng)的字節(jié)內(nèi)容也會產(chǎn)生變化,這些易于產(chǎn)生變化的字節(jié)即為不穩(wěn)定字節(jié),或者稱之為易變字節(jié)。
[0041]通常不穩(wěn)定字節(jié)包括在如下類型的字節(jié)中:例如,在采用匯編語言進行反編譯中,包括但不限于,字符串引用的字節(jié)68 XX XX XX XX,調(diào)用API函數(shù)FF 15XX XX XX XX,調(diào)用內(nèi)部函數(shù)E8 XX XX XX XX等類型。其中的XX XX XX XX即為易變字節(jié)。
[0042]由此可見,函數(shù)中如果引用了某些字符串或者其它資源,在進行反編譯后,操作碼中會含有相對地址,這種相對地址,在重新編譯后有可能是變化的,所以導(dǎo)致函數(shù)的內(nèi)容也發(fā)生了變化。因而對于不穩(wěn)定字節(jié)的清洗,可以去除這種易變字節(jié)帶來的影響。
[0043]對于這些字節(jié)進行清洗,可以采取把這些字節(jié)重置為預(yù)定的數(shù)值、包括但不限于O;或者完全去掉等方法。
[0044]例如,一個函數(shù)經(jīng)過反編譯后可以得到如下操作內(nèi)容:
[0045]text:00401828 55
[0046]text:00401829 8B EC
[0047]text:0040182B 83 EC 20
[0048]text:0040182E 6A 64
[0049]text:00401830 68 80 El 40 00
[0050]text:00401835 6A 67F[0051 ] text:00401837 FF 75 08
[0052]text:0040183A FF 15 50 91 40 00
[0053]text:00401840 6A 64
[0054]text:00401842 68 E8 El 40 00
[0055]text:00401847 6A 6D
[0056]text:00401849 FF 75 08
[0057]text:0040184C FF 15 50 91 40 40
[0058]text:00401852 FF 75 08
[0059]text:00401855 E8 53 F9 FF FF
[0060]text:0040185A 59
[0061]text:0040185B 8B 45 08
[0062]text:0040185E A3 A3 Dl 40 00
[0063]text:00401863 FF 75 14
[0064]text:00401866 FF 75 08
[0065]text:00401869 E8 E9 OF 00 00
[0066]text:0040186E 59
[0067]text:0040186F 59
[0068]text:00401870 85 CO
[0069]其中,
[0070]558B EC 83 EC 20 6A 64 68 80 El 40 00 6A 67 FF
[0071]75 08 FF 15 50 91 40 00 6A 64 68 E8 El 40 00 6A
[0072]6D FF 75 08 FF 15 50 91 40 00 FF 75 08 E8 53 F9
[0073]FF FF 59 8B 45 08 A3 A3 Dl 40 00 FF 75 14 FF 75
[0074]08 E8 E9 OF OO OO 59 59 85 CO
[0075]即為得到的操作碼。然后進行清洗操作,例如,對其中前64個字節(jié)進行清洗操作,其結(jié)果為:
[0076]55 8B EC 83 EC 20 6A 64 68 00 00 00 00 6A 67 FF
[0077]75 08 FF 15 00 00 00 00 6A 64 68 00 00 00 00 6A
[0078]6D FF 75 08 FF 15 00 00 00 00 FF 75 08 E8 00 00
[0079]00 00 59 8B 45 08 A3 A3 Dl 40 00 FF 75 14 FF 75
[0080]其中依照前述的規(guī)則判斷的不穩(wěn)定字節(jié)80 El 40 00,50 91 40 00、E8 El 4000,50 91 40 00,53 F9 FF FF、均進行歸零操作,從而實現(xiàn)清洗。
[0081]步驟004,取每個函數(shù)的清洗后的函數(shù)數(shù)據(jù)中預(yù)定長度的編碼,計算得到該函數(shù)內(nèi)容摘要值。
[0082]經(jīng)過清洗后的函數(shù)即表示為一個特定內(nèi)容和順序的編碼,這個編碼可以通過計算其預(yù)定長度數(shù)值所得到的內(nèi)容摘要來表示。所述內(nèi)容摘要即成為該函數(shù)的“指紋”,可以用于識別該函數(shù)。
[0083]所述預(yù)定長度可以是該函數(shù)編碼的前N字節(jié)(例如64字節(jié)或者128字節(jié)),也可以是全部字節(jié)或者是在所述編碼中節(jié)選的部分字節(jié)。計算所述內(nèi)容摘要的算法可以是哈希算法,所述內(nèi)容摘要即為計算出來的哈希值。計算得到函數(shù)數(shù)據(jù)包中每個函數(shù)預(yù)定長度的匯編碼的哈希值,以表示被檢測文件中用戶所寫的函數(shù)。
[0084]例如,在如上所舉的例子中,采用SHA256算法計算前64字節(jié)的哈希值:
[0085]SHA256
[0086]
(558BEC83EC206A6468000000006A67FF7508FF15000000006A6468000000006A6DFF7508FF1500000000FF7508E800000000598B4508A3A3D14000FF75 14FF75)=324b5e91805e6fe493919f8b3e971972942el4835470a02ae8f0fb5b97cd393b
[0087]最終的 SHA256 的值:324b5e91805e6fe493919f8b3e971972942el4835470a02ae8f0fb5b97cd393b就用來表示這個函數(shù)。
[0088]步驟005比較步驟,將所述被檢測文件中的每個用戶所寫函數(shù)與已知的惡意函數(shù)和干凈函數(shù)比較,獲取被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值。
[0089]在本步驟中,所述被檢測文件中的每個用戶所寫的函數(shù)經(jīng)過清洗和計算內(nèi)容摘要之后與預(yù)先存儲的干凈/惡意函數(shù)數(shù)據(jù)庫中的惡意函數(shù)和干凈函數(shù)進行查找比較。所述干凈/惡意函數(shù)數(shù)據(jù)庫中不僅存儲有干凈函數(shù)或者惡意函數(shù)的內(nèi)容,還存儲有每一個干凈函數(shù)和惡意函數(shù)的惡意程度數(shù)值,優(yōu)選地還可以包括該函數(shù)惡意程度數(shù)值的權(quán)重。例如,已經(jīng)確認安全的可信賴廠商的操作系統(tǒng)文件中的用戶編寫的干凈函數(shù)可以定義為惡意程度數(shù)值為0,而已經(jīng)確認的惡意文件中的用戶編寫的惡意函數(shù)可以定義為惡意程度為100。而如果某一用戶編寫的函數(shù)即在已知的干凈文件中出現(xiàn)過,又在已知的惡意文件中出現(xiàn)過則可以將其惡意程度依據(jù)在相關(guān)惡意文件和干凈文件中出現(xiàn)的頻率定義為大于O小于100的數(shù)值。當然上述舉例僅僅是給出了其中一種賦值的方法,在本實施例中,采用不同的數(shù)值例如-100?100,或者是采用小數(shù)的表示方法,或者是基于惡意函數(shù)和干凈函數(shù)的其它屬性來定義相關(guān)數(shù)值都是本領(lǐng)域技術(shù)人員容易想到和替代的方法。
[0090]所述干凈/惡意函數(shù)數(shù)據(jù)庫可以通過如下舉例的方式來建立。需要指出的是,雖然下述方法是一個優(yōu)選的技術(shù)方案,但是本領(lǐng)域技術(shù)人員采用其它方法只要能夠建立一個關(guān)于函數(shù)惡意程度判斷的查找表,即能夠在一定程度上實現(xiàn)本實施例中的技術(shù)方案。而下述的舉例,僅僅是一個優(yōu)選的技術(shù)方案而已。
[0091]如圖2所示,建立所述干凈/惡意函數(shù)數(shù)據(jù)庫的方法包括:
[0092]S501,采集已知的干凈文件和惡意文件。
[0093]在S501中,可以采集大量的干凈文件和惡意文件;這種采集可以是一次性的,但是更為優(yōu)選的是不斷地運行本方法中的S501-S506,從而持續(xù)不斷地采集各種已知的干凈文件和惡意文件。所述干凈文件和惡意文件樣本是已經(jīng)確認過的文件,即根據(jù)已有信息就能夠準確判斷該文件是安全還是惡意的文件。在本實施例中的所述惡意文件是指所有會產(chǎn)生危害的軟件,包括但不限于“病毒”、“蠕蟲病毒”、木馬程序、惡意間諜軟件、非允許的廣告軟件和勒索軟件等。所述干凈文件與惡意文件相對,是指不會對系統(tǒng)安全或信息安全產(chǎn)生危害的軟件。例如,所述干凈文件樣本可以選取具有安全信譽的公司簽名的文件,例如經(jīng)過微軟簽名的文件等,也可以是基于各種渠道獲取的確認安全的文件。惡意文件樣本可以選取各種已經(jīng)確認的惡意文件,例如包括但不限于經(jīng)過殺毒軟件公司核實過的惡意文件樣本。
[0094]在本步驟中,采集的軟件樣本數(shù)量可以是多個,甚至是數(shù)量巨大的。比如采集盡可能多的能獲取到的干凈文件和惡意文件。當采集軟件的數(shù)量越多,則基于統(tǒng)計的分析越準確。
[0095]S502,分別對每個干凈文件和惡意文件,進行反編譯,得到底層語言描述匯編語言的函數(shù)數(shù)據(jù)。
[0096]在S502中對獲取的文件進行反編譯,既包括對所述干凈文件進行反編譯也包括對所述惡意文件進行反編譯。每個文件得到的反編譯結(jié)果單獨存儲。其反編譯過程可以參考實施例一中的步驟001來實現(xiàn),可以采用和步驟001類似的方法,因而在本部分不再詳細描述。
[0097]S503,對所述函數(shù)數(shù)據(jù)進行篩選,得到與樣本軟件中由用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù)。
[0098]在S503中對每個采集文件中所述函數(shù)數(shù)據(jù)進行篩選,篩選過庫函數(shù)和編譯器生成的函數(shù)的數(shù)據(jù)后,通常僅剩下與用戶所寫內(nèi)容對應(yīng)的函數(shù)。當然如果在反編譯得到的函數(shù)數(shù)據(jù)中存在其它與用戶所寫內(nèi)容無關(guān)的函數(shù)也可以去除。其過程可以參考實施例一中的步驟002來實現(xiàn),可以采用和步驟002類似的方法,因而在本部分不再詳細描述。
[0099]S504,對每個與用戶所寫內(nèi)容所對應(yīng)的函數(shù)進行清洗,去除其中不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù)。
[0100]所述清洗過程可以參考實施例一中的步驟003來實現(xiàn),可以采用和步驟003類似的方法,因而在本部分不再詳細描述。
[0101]S505,計算取每個函數(shù)的清洗后的函數(shù)數(shù)據(jù)中預(yù)定長度的編碼,計算得到該函數(shù)內(nèi)容摘要值。
[0102]經(jīng)過清洗后的函數(shù)即表示為一個特定內(nèi)容和順序的編碼,這個編碼可以通過計算其預(yù)定長度數(shù)值的所得到的內(nèi)容摘要來表示。所述內(nèi)容摘要即成為該函數(shù)的“指紋”,可以用于識別該函數(shù)。其過程可以參考實施例一中的步驟004來實現(xiàn),可以采用和步驟004類似的方法,因而在本部分不再詳細描述。
[0103]S506統(tǒng)計每個函數(shù)在惡意文件和干凈文件中出現(xiàn)的次數(shù),由此得到每個函數(shù)的惡意程度數(shù)值。
[0104]對大量的惡意和干凈樣本文件反編譯,并且提取函數(shù),并對每一個函數(shù)出現(xiàn)在惡意文件和干凈文件中的次數(shù)進行統(tǒng)計。如果該函數(shù)出現(xiàn)在惡意文件中,則相應(yīng)的惡意統(tǒng)計次數(shù)遞增;反之,如果出現(xiàn)在干凈文件中,則相應(yīng)的干凈統(tǒng)計次數(shù)遞增。根據(jù)統(tǒng)計數(shù)據(jù),就可以計算得到此函數(shù)的惡意程度值。
[0105]步驟006判斷步驟,根據(jù)被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值判斷被檢測文件的惡意程度。
[0106]當獲取了每個函數(shù)的惡意程度數(shù)值之后,一種方式是將每個函數(shù)的惡意程度數(shù)值進行疊加,從而得到整個被檢測文件的惡意程度數(shù)值?;蛘呤遣捎闷渌鄯e的方式,例如通過對不同類型的函數(shù)施加不同的權(quán)重再進行累積的方式來得到整個被檢測文件的惡意程度數(shù)值。
[0107]當?shù)玫奖粰z測文件的惡意程度數(shù)值時,即可根據(jù)所述惡意程度數(shù)值來判斷該函數(shù)的惡意程度。
[0108]更進一步地,還可以采用閾值的方式對于所述被檢測文件的惡意程度進行過濾,例如當被檢測文件的惡意程度大于某個數(shù)值時則認定該被檢測文件為惡意文件,當被檢測文件的惡意程度小于某個數(shù)值時則認定該被檢測文件為安全文件。或者當被檢測文件的惡意程度位于某個區(qū)間之內(nèi)時,進行其它方式的惡意程度檢測。
[0109]實施例二
[0110]本實施例二提供了一種函數(shù)惡意程度的檢測裝置。通過該裝置檢測計算機文件中單個函數(shù)的惡意程度和干凈程度。
[0111]圖3示出了本實施例中一種函數(shù)惡意程度的檢測裝置。在裝置包括如下模塊:
[0112]文件反編譯模塊,對被檢測文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù)。
[0113]對于被檢測文件是否是惡意文件的檢測技術(shù),在現(xiàn)有技術(shù)中有廣泛的記載,例如采用分析代碼的方法,或者是采用黑名單、白名單的方法等等。
[0114]在本實施例中,提供了一種基于被檢測文件中的函數(shù)進行分析的方法。在本實施例的方法中,首先需要分析出被檢測文件中的函數(shù),因而在本實施例中首先對于被檢測文件進行反編譯,以獲取所述被檢測文件中的函數(shù)的信息。
[0115]在本模塊中對預(yù)定的被檢測文件進行反編譯,以獲得采用底層語言描述的所述被檢測文件的函數(shù)數(shù)據(jù)。將每個被檢測文件所得到的反編譯結(jié)果單獨存儲。
[0116]反編譯可以采用現(xiàn)有技術(shù)中的反編譯工具來實現(xiàn),例如采用現(xiàn)有技術(shù)中的編譯工具IDA來實現(xiàn),當然也可以采用現(xiàn)有技術(shù)中的其它反編譯方法來實現(xiàn),以將每個被檢測文件編譯得到各自的底層語言描述的函數(shù)數(shù)據(jù)。
[0117]所述底層語言例如是一種使用十六進制字符描述的序列。例如樣本文件是EXE文件,則將其反編譯成匯編語言描述的函數(shù)數(shù)據(jù)包,如果樣本是APK文件,則將其反編譯成Smali語言描述的函數(shù)數(shù)據(jù)包。所述匯編語言和所述Samli語言都是使用十六進制的字節(jié)來描述的序列。所述匯編語言描述的函數(shù)數(shù)據(jù)也可以叫做操作碼,其它的底層語言描述的函數(shù)數(shù)據(jù)通常稱為字節(jié)碼。
[0118]將所述被檢測文件反編譯成上述底層語言描述的內(nèi)容,是因為絕大部分的計算機文件都可以反編譯成上述底層語言,并且反編譯成上述底層語言能夠更加真實地反應(yīng)所述文件的內(nèi)容。從而提高了對文件分析的適用范圍和準確性。
[0119]數(shù)據(jù)篩選模塊,對所述函數(shù)數(shù)據(jù)進行篩選,得到與樣本軟件中由用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù)。
[0120]在本模塊中的所述篩選包括對反編譯模塊中得到的底層語言所描述的函數(shù)進行篩選。
[0121]所述篩選可以包括去除匯編語言級別的庫函數(shù)、以及在反編譯過程中由編譯器自動生成的函數(shù)。因為,通常惡意的指令都是由特定的用戶所施加的,庫函數(shù)和編譯工具生成的函數(shù)通常都不會帶來惡意指令,也就是說通常文件中的惡意指令的特征信息都是基于用戶自行編寫完成的,因而僅僅保留與用戶所寫內(nèi)容對應(yīng)的函數(shù)就足以保留與文件是否惡意相關(guān)的特征,去掉其他函數(shù)可以避免帶來噪音影響判斷。
[0122]識別用戶所寫的內(nèi)容以及庫函數(shù)和編譯工具生成的函數(shù),可以通過現(xiàn)有技術(shù)來實現(xiàn),通?,F(xiàn)有技術(shù)中對于庫函數(shù)和編譯器自動生成的函數(shù)都有明確的記錄,因而將這些函數(shù)直接去掉即可。例如,當采用IDA反編譯工具反編譯時,可以調(diào)用IDA反編譯工具提供的API來實現(xiàn)這些篩選,當然依據(jù)與之類似的規(guī)則,也可以在反編譯庫中實現(xiàn)上述篩選。
[0123]篩選過庫函數(shù)和編譯器生成的函數(shù)的數(shù)據(jù),后通常僅剩下與用戶所寫內(nèi)容對應(yīng)的函數(shù)。當然如果在反編譯得到的函數(shù)數(shù)據(jù)中存在其它與用戶所寫內(nèi)容無關(guān)的函數(shù)也可以去除。
[0124]數(shù)據(jù)清洗模塊,對每個與用戶所寫內(nèi)容所對應(yīng)的函數(shù)進行清洗,去除其中不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù)。
[0125]如上所述,每一個函數(shù)在反編譯完成后的數(shù)據(jù)內(nèi)容是一段16進制的字節(jié)序列。在該字節(jié)序列中的某些字節(jié)是在每次編譯之后有可能是不一樣的,例如,其中有些字節(jié)的值是某個字符串的偏移地址,由于字符串的位置在每次編譯后有可能是不一樣的,這樣就導(dǎo)致了所述偏移地址也不一樣,從而相應(yīng)的字節(jié)內(nèi)容也會產(chǎn)生變化,這些易于產(chǎn)生變化的字節(jié)即為不穩(wěn)定字節(jié),或者稱之為易變字節(jié)。
[0126]通常不穩(wěn)定字節(jié)包括在如下類型的字節(jié)中:例如,在采用匯編語言進行反編譯中,包括但不限于,字符串引用的字節(jié)68 XX XX XX XX,調(diào)用API函數(shù)FF 15XX XX XX XX,調(diào)用內(nèi)部函數(shù)E8 XX XX XX XX等類型。其中的XX XX XX XX即為易變字節(jié)。
[0127]由此可見,函數(shù)中如果引用了某些字符串或者其它資源,在進行反編譯后,操作碼中會含有相對地址,這種相對地址,在重新編譯后有可能是變化的,所以導(dǎo)致函數(shù)的內(nèi)容也發(fā)生了變化。因而對于不穩(wěn)定字節(jié)的清洗,可以去除這種易變字節(jié)帶來的影響。
[0128]對于這些字節(jié)進行清洗,可以采取把這些字節(jié)重置為預(yù)定的數(shù)值、包括但不限于O;或者完全去掉等方法。
[0129]例如,一個函數(shù)經(jīng)過反編譯后可以得到如下操作內(nèi)容:
[0130]text:00401828 55
[0131]text:00401829 8B EC
[0132]text:0040182B 83 EC 20
[0133]text:0040182E 6A 64
[0134]text:00401830 68 80 El 40 00
[0135]text:00401835 6A 67F
[0136]text:00401837 FF 75 08
[0137]text:0040183A FF 15 50 91 40 00
[0138]text:00401840 6A 64
[0139]text:00401842 68 E8 El 40 00
[0140]text:00401847 6A 6D
[0141]text:00401849 FF 75 08
[0142]text:0040184C FF 15 50 91 40 40
[0143]text:00401852 FF 75 08
[0144]text:00401855 E8 53 F9 FF FF
[0145]text:0040185A 59
[0146]text:0040185B 8B 45 08
[0147]text:0040185E A3 A3 Dl 40 00
[0148]text:00401863 FF 75 14
[0149]text:00401866 FF 75 08
[0150]text:00401869 E8 E9 OF 00 00
[0151]text:0040186E 59
[0152]text:0040186F 59
[0153]text:00401870 85 CO
[0154]其中,
[0155]55 8B EC 83 EC 20 6A 64 68 80 El 40 00 6A 67 FF
[0156]75 08 FF 15 50 91 40 00 6A 64 68 E8 El 40 00 6A
[0157]6D FF 75 08 FF 15 50 91 40 00 FF 75 08 E8 53 F9
[0158]FF FF 59 8B 45 08 A3 A3 Dl 40 00 FF 75 14 FF 75
[0159]08 E8 E9 OF 00 00 59 59 85 CO
[0160]即為得到的操作碼。然后進行清洗操作,例如,對其中前64個字節(jié)進行清洗操作,其結(jié)果為:
[0161]55 8B EC 83 EC 20 6A 64 68 00 00 00 00 6A 67 FF
[0162]75 08 FF 15 00 00 00 00 6A 64 68 00 00 00 00 6A
[0163]6D FF 75 08 FF 15 00 00 00 00 FF 75 08 E8 00 00
[0164]00 00 59 8B 45 08 A3 A3 Dl 40 00 FF 75 14 FF 75
[0165]其中依照前述的規(guī)則判斷的不穩(wěn)定字節(jié)80 El 40 00,50 91 40 00、E8 E140 00、50 91 40 00,53 F9 FF FF、均進行歸零操作,從而實現(xiàn)清洗。
[0166]函數(shù)內(nèi)容摘要計算模塊,取每個函數(shù)的清洗后的函數(shù)數(shù)據(jù)中預(yù)定長度的編碼,計算得到該函數(shù)內(nèi)容摘要值。
[0167]經(jīng)過清洗后的函數(shù)即表示為一個特定內(nèi)容和順序的編碼,這個編碼可以通過計算其預(yù)定長度數(shù)值所得到的內(nèi)容摘要來表示。所述內(nèi)容摘要即成為該函數(shù)的“指紋”,可以用于識別該函數(shù)。
[0168]所述預(yù)定長度可以是該函數(shù)編碼的前N字節(jié)(例如64字節(jié)或者128字節(jié)),也可以是全部字節(jié)或者是在所述編碼中節(jié)選的部分字節(jié)。計算所述內(nèi)容摘要的算法可以是哈希算法,所述內(nèi)容摘要即為計算出來的哈希值。計算得到函數(shù)數(shù)據(jù)包中每個函數(shù)預(yù)定長度的匯編碼的哈希值,以表示被檢測文件中用戶所寫的函數(shù)。
[0169]例如,在如上所舉的例子中,采用SHA256算法計算前64字節(jié)的哈希值:
[0170]SHA256
[0171]
(558BEC83EC206A6468000000006A67FF7508FF15000000006A6468000000006A6DFF7508FF1500000000FF7508E800000000598B4508A3A3D14000FF75 14FF75)=324b5e91805e6fe493919f8b3e971972942el4835470a02ae8f0fb5b97cd393b
[0172]最終的SHA256 的值:324b5e91805e6fe493919f8b3e971972942el4835470a02ae8f0fb5b97cd393b就用來表示這個函數(shù)。
[0173]比較模塊,將所述被檢測文件中的每個用戶所寫函數(shù)與已知的惡意函數(shù)和干凈函數(shù)比較,獲取被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值。
[0174]在本模塊中,所述被檢測文件中的每個用戶所寫的函數(shù)經(jīng)過清洗和計算內(nèi)容摘要之后與預(yù)先存儲的干凈/惡意函數(shù)數(shù)據(jù)庫中的惡意函數(shù)和干凈函數(shù)進行查找比較。所述干凈/惡意函數(shù)數(shù)據(jù)庫中不僅存儲有干凈函數(shù)或者惡意函數(shù)的內(nèi)容,還存儲有每一個干凈函數(shù)和惡意函數(shù)的惡意程度數(shù)值,優(yōu)選地還可以包括該函數(shù)惡意程度數(shù)值的權(quán)重。例如,已經(jīng)確認安全的可信賴廠商的操作系統(tǒng)文件中的用戶編寫的干凈函數(shù)可以定義為惡意程度數(shù)值為0,而已經(jīng)確認的惡意文件中的用戶編寫的惡意函數(shù)可以定義為惡意程度為100。而如果某一用戶編寫的函數(shù)即在已知的干凈文件中出現(xiàn)過,又在已知的惡意文件中出現(xiàn)過則可以將其惡意程度依據(jù)在相關(guān)惡意文件和干凈文件中出現(xiàn)的頻率定義為大于O小于100的數(shù)值。當然上述舉例僅僅是給出了其中一種賦值的方法,在本實施例中,采用不同的數(shù)值例如-100?100,或者是采用小數(shù)的表示方法,或者是基于惡意函數(shù)和干凈函數(shù)的其它屬性來定義相關(guān)數(shù)值都是本領(lǐng)域技術(shù)人員容易想到和替代的方法。
[0175]所述干凈/惡意函數(shù)數(shù)據(jù)庫可以通過如下舉例的方式來建立。需要指出的是,雖然下述方法是一個優(yōu)選的技術(shù)方案,但是本領(lǐng)域技術(shù)人員采用其它方法只要能夠建立一個關(guān)于函數(shù)惡意程度判斷的查找表,即能夠在一定程度上實現(xiàn)本實施例中的技術(shù)方案。而下述的舉例,僅僅是一個優(yōu)選的技術(shù)方案而已。
[0176]建立所述干凈/惡意函數(shù)數(shù)據(jù)庫的方法可以采用實施例一中的S501-S506中記載的方法來建立,當然該數(shù)據(jù)庫也可以包括與所述步驟S501-S506相對應(yīng)的相關(guān)模塊,其結(jié)構(gòu)如圖4所示。
[0177]判斷模塊,根據(jù)被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值判斷被檢測文件的惡意程度。
[0178]當獲取了每個函數(shù)的惡意程度數(shù)值之后,一種方式是將每個函數(shù)的惡意程度數(shù)值進行疊加,從而得到整個被檢測文件的惡意程度數(shù)值?;蛘呤遣捎闷渌鄯e的方式,例如通過對不同類型的函數(shù)施加不同的權(quán)重再進行累積的方式來得到整個被檢測文件的惡意程度數(shù)值。
[0179]當?shù)玫奖粰z測文件的惡意程度數(shù)值時,即可根據(jù)所述惡意程度數(shù)值來判斷該函數(shù)的惡意程度。
[0180]更進一步地,還可以采用閾值的方式對于所述被檢測文件的惡意程度進行過濾,例如當被檢測文件的惡意程度大于某個數(shù)值時則認定該被檢測文件為惡意文件,當被檢測文件的惡意程度小于某個數(shù)值時則認定該被檢測文件為安全文件?;蛘弋敱粰z測文件的惡意程度位于某個區(qū)間之內(nèi)時,進行其它方式的惡意程度檢測。
[0181]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0182]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(裝置)、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0183]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0184]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0185]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項】
1.一種惡意文件的檢測方法,其特征在于,所述方法包括: 文件反編譯步驟,對被檢測文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù); 數(shù)據(jù)篩選步驟,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù); 數(shù)據(jù)清洗步驟,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù); 比較步驟,將所述被檢測文件中的每個用戶所寫函數(shù)與已知的惡意函數(shù)和干凈函數(shù)比較,獲取被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值; 判斷步驟,根據(jù)被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值判斷被檢測文件的惡意程度。2.根據(jù)權(quán)利要求2所述的一種惡意文件的檢測方法,其特征在于,所述方法還包括: 函數(shù)內(nèi)容摘要計算步驟,針對每個被檢測文件中用戶所寫函數(shù),取所述清洗后的函數(shù)數(shù)據(jù)中預(yù)定長度的編碼,根據(jù)該編碼計算得到該函數(shù)內(nèi)容摘要值。3.根據(jù)權(quán)利要求2所述的一種惡意文件的檢測方法,其特征在于,獲取已知的惡意函數(shù)和干凈函數(shù)的方法包括: 文件采集步驟,采集樣本文件,所述樣本文件包含已知的干凈文件和惡意文件; 文件反編譯步驟,分別對每個干凈文件和惡意文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù); 數(shù)據(jù)篩選步驟,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù); 數(shù)據(jù)清洗步驟,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù); 統(tǒng)計步驟,根據(jù)所述清洗后的函數(shù)數(shù)據(jù)統(tǒng)計每個函數(shù)在惡意文件和干凈文件中出現(xiàn)的次數(shù),根據(jù)所述次數(shù)得到每個函數(shù)的惡意程度數(shù)值。4.根據(jù)權(quán)利要求1-3中任一項所述的惡意文件的檢測方法,其特征在于, 所述底層語言描述的函數(shù)數(shù)據(jù)為操作碼或字節(jié)碼。5.根據(jù)權(quán)利要求1-4中任一項所述的函數(shù)惡意程度的檢測方法,其特征在于, 所述去除其中的不穩(wěn)定字節(jié)包括:對所述不穩(wěn)定的字節(jié)賦予預(yù)定的數(shù)值,或者將所述不穩(wěn)定的字節(jié)完全刪除。6.一種惡意文件的檢測裝置,其特征在于,所述裝置包括: 文件反編譯模塊,對被檢測文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù); 數(shù)據(jù)篩選模塊,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù); 數(shù)據(jù)清洗模塊,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù); 比較模塊,將所述被檢測文件中的每個用戶所寫函數(shù)與已知的惡意函數(shù)和干凈函數(shù)比較,獲取被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值; 判斷模塊,根據(jù)被檢測文件中的每個用戶所寫函數(shù)的惡意程度數(shù)值判斷被檢測文件的惡意程度。7.根據(jù)權(quán)利要求6所述的一種惡意文件的檢測裝置,其特征在于,所述裝置還包括: 函數(shù)內(nèi)容摘要計算模塊,針對每個函數(shù),取所述清洗后的函數(shù)數(shù)據(jù)中預(yù)定長度的編碼,根據(jù)該編碼計算得到該函數(shù)內(nèi)容摘要值。8.根據(jù)權(quán)利要求7所述的一種惡意文件的檢測裝置,其特征在于,所述裝置還包括已知惡意函數(shù)和干凈函數(shù)惡意程度判斷模塊,所述已知惡意函數(shù)和干凈函數(shù)惡意程度判斷模塊包括: 文件采集子模塊,采集樣本文件,所述樣本文件包含已知的干凈文件和惡意文件; 文件反編譯子模塊,分別對每個干凈文件和惡意文件進行反編譯,得到底層語言描述的函數(shù)數(shù)據(jù); 數(shù)據(jù)篩選子模塊,對所述函數(shù)數(shù)據(jù)進行篩選,選出樣本文件中與用戶所寫內(nèi)容所對應(yīng)的函數(shù)數(shù)據(jù); 數(shù)據(jù)清洗子模塊,對所述與用戶所寫內(nèi)容所對應(yīng)的每個函數(shù)進行清洗,去除其中的不穩(wěn)定字節(jié),得到清洗后的函數(shù)數(shù)據(jù); 統(tǒng)計子模塊,根據(jù)所述清洗后的函數(shù)數(shù)據(jù)統(tǒng)計每個函數(shù)在惡意文件和干凈文件中出現(xiàn)的次數(shù),根據(jù)所述次數(shù)得到每個函數(shù)的惡意程度數(shù)值。9.根據(jù)權(quán)利要求6-8中任一項所述的一種惡意文件的檢測裝置,其特征在于, 所述底層語言描述的函數(shù)數(shù)據(jù)為操作碼或字節(jié)碼。10.根據(jù)權(quán)利要求6-9中任一項所述的一種惡意文件的檢測裝置,其特征在于, 所述去除其中的不穩(wěn)定字節(jié)包括:對所述不穩(wěn)定的字節(jié)賦予預(yù)定的數(shù)值,或者將所述不穩(wěn)定的字節(jié)完全刪除。
【文檔編號】G06F21/55GK105975854SQ201610443601
【公開日】2016年9月28日
【申請日】2016年6月20日
【發(fā)明人】程波, 侯賀明
【申請人】武漢綠色網(wǎng)絡(luò)信息服務(wù)有限責任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1