專(zhuān)利名稱(chēng):基于文件靜態(tài)結(jié)構(gòu)屬性的惡意軟件檢測(cè)新方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全中的惡意軟件檢測(cè)方法,特別是針對(duì)PE文件和ELF文件的新 穎而實(shí)用的惡意軟件檢測(cè)方法,它能夠在經(jīng)過(guò)有限訓(xùn)練集訓(xùn)練以后,檢測(cè)已知的和未知的 惡意軟件,因它只需提取少數(shù)的文件靜態(tài)結(jié)構(gòu)屬性,單個(gè)文件的檢測(cè)時(shí)間是0. 25秒左右, 且檢測(cè)正確率在99%以上,已達(dá)到了可實(shí)際部署應(yīng)用的檢測(cè)軟件的要求。
背景技術(shù):
據(jù)國(guó)內(nèi)外各大反病毒公司統(tǒng)計(jì),2008年截獲的各類(lèi)新病毒樣本數(shù)已經(jīng)超過(guò)1000 萬(wàn),日均截獲病毒樣本數(shù)萬(wàn)。計(jì)算機(jī)病毒的數(shù)量急劇增加,其傳播途徑多樣化,且抗反病毒 軟件能力強(qiáng),計(jì)算機(jī)病毒已經(jīng)成為互聯(lián)網(wǎng)以及廣大計(jì)算機(jī)用戶的最大安全威脅。
反病毒技術(shù)現(xiàn)狀
1、特征值掃描
傳統(tǒng)病毒掃描是利用惡意軟件留在被感染文件中的病毒特征值(即每種病毒所 獨(dú)有的十六進(jìn)制代碼串)進(jìn)行檢測(cè)。它的流程如下1、一種惡意軟件出現(xiàn)和長(zhǎng)生了破壞,引 起了反病毒公司分析專(zhuān)家的注意;2、分析專(zhuān)家找到該惡意軟件的樣本并進(jìn)行分析,提取出 了該惡意軟件的特征值;3、把提取出的特征值加入到反病毒軟件的服務(wù)器特征庫(kù)中;4、用 戶被提示更新本地反病毒軟件的特征庫(kù);5、用戶更新后可以檢測(cè)和查殺該惡意軟件。其缺 點(diǎn)是它幾乎不能檢測(cè)新的惡意軟件種類(lèi),能檢測(cè)的惡意軟件經(jīng)過(guò)簡(jiǎn)單加殼后又不能檢測(cè), 特定惡意軟件在被反病毒軟件查殺之后很容易進(jìn)行免殺處理。同時(shí)隨著惡意軟件種類(lèi)的指 數(shù)級(jí)增長(zhǎng),分析人員手動(dòng)提取每個(gè)惡意軟件的特征值變得枯燥而繁重,病毒特征庫(kù)的體積 越來(lái)越大,致使檢測(cè)工具的檢測(cè)時(shí)間不斷增加,相對(duì)于目前計(jì)算機(jī)惡意軟件數(shù)量的增長(zhǎng)速 度來(lái)說(shuō),反病毒廠商的響應(yīng)速度已經(jīng)嚴(yán)重滯后,且存在真空期——即從惡意軟件出現(xiàn)到反 病毒軟件能查殺該惡意軟件,在真空期惡意軟件可能已經(jīng)長(zhǎng)生了嚴(yán)重的破壞。這給計(jì)算機(jī) 惡意軟件的防護(hù)工作帶來(lái)了嚴(yán)峻挑戰(zhàn)。
2、使用數(shù)據(jù)挖掘技術(shù)的檢測(cè)方法
在傳統(tǒng)的特征碼掃描手段不能更好的滿足需求的情況下,發(fā)展了一些使用數(shù)據(jù)挖 掘技術(shù)來(lái)檢測(cè)惡意軟件的方法,這些方法主要分為兩類(lèi)靜態(tài)惡意軟件檢測(cè)方法和動(dòng)態(tài)惡 意軟件檢測(cè)方法。靜態(tài)惡意軟件檢測(cè)方法通過(guò)分析惡意軟件的二進(jìn)制代碼、反匯編后的代 碼、反匯編后的靜態(tài)調(diào)用等獲取惡意軟件的特征,利用分類(lèi)算法在正常軟件與惡意代碼之 間建立較好的分割線,實(shí)驗(yàn)結(jié)果表明其檢測(cè)未知計(jì)算機(jī)病毒的能力較強(qiáng),換言之,這些特征 部分反映了兩類(lèi)軟件之間的差異。動(dòng)態(tài)惡意軟件檢測(cè)方法通常分析惡意軟件運(yùn)行時(shí)的API 調(diào)用系列,提取出在惡意軟件和正常文件頻繁出現(xiàn)且在兩類(lèi)軟件中具有較好區(qū)分度的子系 列,然后使用分類(lèi)算法對(duì)兩類(lèi)軟件進(jìn)行分類(lèi)。
上述方法主要面臨三方面的問(wèn)題
第一、無(wú)論是靜態(tài)的分析方法還是動(dòng)態(tài)的分析方法提取特征方法復(fù)雜,提取的特 征較多,導(dǎo)致檢測(cè)每個(gè)文件的時(shí)間比較長(zhǎng),很難在實(shí)際部署的反病毒軟件中使用;4
第二、以上的靜態(tài)檢測(cè)方法很容易受加殼和混淆技術(shù)的影響,加殼后完全改變了 惡意軟件的二進(jìn)制代碼和反匯編后的代碼,使得檢測(cè)的準(zhǔn)確率下降,如果在脫殼后再進(jìn)行 檢測(cè),每個(gè)文件的檢測(cè)時(shí)間就會(huì)加長(zhǎng),且通用的脫殼軟件在反脫殼技術(shù)的影響下并不能自 動(dòng)的脫去所有惡意軟件的殼;
第三、如果是通過(guò)動(dòng)態(tài)分析來(lái)檢測(cè)惡意軟件,我們通常只能分析惡意軟件的單條 執(zhí)行路徑,并不能遍歷惡意軟件的所有執(zhí)行路徑,同時(shí),很多惡意軟件已具備了反虛擬、反 調(diào)試、反跟蹤、抗反匯編的能力,這些都使得動(dòng)態(tài)檢測(cè)惡意軟件的準(zhǔn)確率不高和花費(fèi)時(shí)間比 較長(zhǎng),且執(zhí)行惡意;
第四、軟件有可能對(duì)系統(tǒng)產(chǎn)生破壞。 發(fā)明內(nèi)容
本發(fā)明的目的在于提出并設(shè)計(jì)一種虛警率較低,且具有較高的檢測(cè)準(zhǔn)確率的基于 文件靜態(tài)結(jié)構(gòu)屬性的惡意軟件檢測(cè)新方法。
本發(fā)明的目的是這樣實(shí)現(xiàn)的一種基于文件靜態(tài)結(jié)構(gòu)屬性的惡意軟件檢測(cè)方法, 其特征是
檢測(cè)模型分為2個(gè)階段訓(xùn)練階段和檢測(cè)階段;訓(xùn)練階段用于完成分類(lèi)器的構(gòu)建; 而檢測(cè)階段用于完成惡意軟件的檢測(cè);
在訓(xùn)練階段,首先提取文件樣本靜態(tài)結(jié)構(gòu)屬性;接著進(jìn)行數(shù)據(jù)預(yù)處理工作,使用數(shù) 據(jù)挖掘的屬性選擇過(guò)濾算法對(duì)屬性進(jìn)行選擇過(guò)濾,剩下具有很好區(qū)分度的屬性,然后使用 這些數(shù)據(jù)來(lái)訓(xùn)練分類(lèi)器,訓(xùn)練好的分類(lèi)器用作區(qū)分惡意軟件和正常文件;
在檢測(cè)階段,根據(jù)訓(xùn)練階段數(shù)據(jù)預(yù)處理過(guò)濾得到的靜態(tài)結(jié)構(gòu)屬性,提取待檢測(cè)文 件的相應(yīng)結(jié)構(gòu)屬性,使用訓(xùn)練階段訓(xùn)練好的分類(lèi)器,對(duì)待檢測(cè)文件進(jìn)行分類(lèi),得到是惡意軟 件或是正常文件的結(jié)果。
下述以Windows平臺(tái)下的PE格式和Linux下的ELF格式進(jìn)行說(shuō)明
下述文件為PE文件的檢測(cè)方法;所述PE文件樣本靜態(tài)結(jié)構(gòu)屬性,選定為182個(gè), 具體如下
引用的動(dòng)態(tài)鏈接庫(kù) 73 個(gè)具體是ADVAP132. DLL, AWFAXP32. DLL, AWFXAB32. DLL, AWPWD32. DLL, AWRESX32. DLL, AWUTIL32. DLL, BHNETB. DLL, BHSUPP. DLL, CCAPI. DLL, CCEI. DLL, CCPSH. DLL, CCTN20. DLL, CMC. DLL,C0MCTL32. DLL,C0MDLG32. DLL,CRTDLL. DLL,DCIMAN. DLL, DCIMAN32. DLL, DSKMAINT. DLL, GDI32. DLL, GR0UPP0L. DLL, HYPERTERM. DLL, KERNL32. DLL, LZ32. DLL, MAPI. DLL, MAPI32. DLL, MFC30. DLL, MPR. DLL, MSPST32. DLL, MSFS32. DLL, MSNDUI. DLL, MSNET32. DLL, MSSHRUI. DLL, MSVIEWUT. DLL, NAL. DLL, NDIS30. DLL, NETAPI. DLL, NETAPI32.DLL,NETBIOS. DLL, NETDI.DLL,NETSETUP.DLL,NWAB32.DLL,NWNET32. DLL, NWNP32. DLL, OLEDLG.DLL, POWERCFG. DLL, RASPI. DLL, RASAPI16.DLL, RASAPI32. DLL, RPCRT4. DLL, RPCLTC1. DLL, RPCTLC3. DLL, RPCTLC5. DLL, RPCTLC6. DLL, RPCTLS3. DLL, RPCTLS5. DLL, RPCTLS6. DLL, RPCNS4. DLL,RSRC32. DLL,SAPNSP. DLL,SECUR32. DLL,SHELL32. DLL, SLENH.DLL,SHLffAPI. DLL, UMDM32.DLL,USER32.DLL,VERSION. DLL, WININET. DLL, WINMM. DLL, WINREG. DLL, WINSOCK. DLL, WS2_32. DLL, WS0CK32. DLL ;
Dos 部首一個(gè)即 e_lfanew ;
IMAGE_FILE_HEADER 選擇了該部分的所有7個(gè)屬性;
IMAGE_0PT10NAL_HEADER32 選擇了該部分的所有 30 個(gè)屬性;
數(shù)據(jù)目錄表選擇了所有八個(gè)目錄表中每個(gè)目錄表的虛擬地址和大小兩個(gè)屬性, 共16個(gè)屬性;
. text頭部選擇了該部分的所有11個(gè)屬性;
. data頭部選擇了該部分的所有11個(gè)屬性;
. rsrc頭部選擇了該部分的所有11個(gè)屬性;
資源目錄表選擇了該部分的所有22個(gè)屬性;
在訓(xùn)練階段
a)獲取訓(xùn)練樣本應(yīng)獲取足夠多的訓(xùn)練樣本,訓(xùn)練樣本分為惡意軟件樣本和正常 文件樣本;
b)從訓(xùn)練樣本文件中提取每個(gè)文件的182個(gè)靜態(tài)結(jié)構(gòu)屬性,得到訓(xùn)練樣本集;
c)使用WEAK數(shù)據(jù)挖掘軟件的有監(jiān)督屬性屬性過(guò)濾方法Cf sSubsetEval對(duì) 182個(gè)靜態(tài)結(jié)構(gòu)屬性過(guò)濾,過(guò)濾后得到的靜態(tài)結(jié)構(gòu)屬性為SE⑶R32. DLL, SHLWAPI. DLL, ImageBase, Checksum, SizeOfStackReserve, IMAGE_DIRECTORY_ENTRY_SECURITY. Size, IMAGE_DIRECTORY_ENTRY_DEBUG. Size, text.PointerToRelocations, rsrc. Characteristics, RT_MESSAGETABLE, RT_GR0UP_IC0N, RT_VERSI0N 共 12 個(gè);
d)、使用WEAK數(shù)據(jù)挖掘軟件的四種分類(lèi)算法J48,BFTree, IBk, AdboostMl來(lái)訓(xùn)練 四種分類(lèi)器;
在檢測(cè)階段
e)對(duì)待檢測(cè)的PE文件,按訓(xùn)練階段c)中過(guò)濾選擇后的12個(gè)靜態(tài)結(jié)構(gòu)屬性提取特 征;
f)使用訓(xùn)練階段d)中訓(xùn)練好的任一分類(lèi)器,根據(jù)e)中的12個(gè)屬性進(jìn)行分類(lèi),分 類(lèi)結(jié)果即為惡意軟件或正常文件。
下述文件為ELF文件的檢測(cè)方法;所述ELF文件樣本的靜態(tài)結(jié)構(gòu)屬性選定為81 個(gè),具體如下
ELF header20個(gè)選取除四個(gè)魔數(shù)即Magic Number以外的所有20個(gè)屬性;
text. header8個(gè)選取該部分頭部的所有8個(gè)屬性;
data. header8個(gè)選取該部分頭部的所有8個(gè)屬性;
bss. header8個(gè)選取該部分頭部的所有8個(gè)屬性;
SHT_DYNSYM. header9個(gè)選取該部分頭部的所有8個(gè)屬性和所包括的子項(xiàng)的個(gè)數(shù) 共9個(gè)屬性;
PT_L0AD1. header7個(gè)選取頭部的所有7個(gè)屬性;
PT_L0AD2. header7個(gè)選取頭部的所有7個(gè)屬性;
PT_INTERP. header7個(gè)選取頭部的所有7個(gè)屬性;
PT_SHLIB. header7個(gè)選取頭部的所有7個(gè)屬性;
在訓(xùn)練階段
a)獲取訓(xùn)練樣本應(yīng)獲取足夠多的訓(xùn)練樣本,訓(xùn)練樣本分為惡意軟件樣本和正常 文件樣本;
b)從訓(xùn)練樣本文件中提取每個(gè)文件的81個(gè)靜態(tài)結(jié)構(gòu)屬性,得到訓(xùn)練樣本集;
c)使用WEAK數(shù)據(jù)挖掘軟件的有監(jiān)督屬性過(guò)濾方法CfsSubsetEval對(duì)81個(gè)靜態(tài)結(jié) 構(gòu)屬性選擇過(guò)濾,選擇過(guò)濾后得到的靜態(tài)結(jié)構(gòu)屬性為header. e_phnum, header. e_shnum, SHT_DYNSYM. header. sh_link, PT_L0AD1. header. p_vaddr, PT_L0AD2. header. p_offset 共 5個(gè);
d)使用WEAK數(shù)據(jù)挖掘軟件的四種分類(lèi)算法J48,BFTree, IBk, AdboostMl來(lái)訓(xùn)練 四種分類(lèi)器;
在檢測(cè)階段
e)對(duì)待檢測(cè)的ELF文件,按訓(xùn)練階段c)中過(guò)濾選擇后的5個(gè)靜態(tài)結(jié)構(gòu)屬性提取特 征;
f)使用訓(xùn)練階段d)中訓(xùn)練好的任一分類(lèi)器,根據(jù)檢測(cè)階段e)中的5個(gè)屬性進(jìn)行 分類(lèi),分類(lèi)結(jié)果即為惡意軟件或正常文件。
相對(duì)于傳統(tǒng)的惡意軟件方法,本發(fā)明方法主要具有如下特色
1、能檢測(cè)未知的惡意軟件傳統(tǒng)的基于病毒特征的惡意軟件檢測(cè)方法只能檢測(cè) 已經(jīng)被專(zhuān)業(yè)人員識(shí)別出特征的惡意軟件,但新出現(xiàn)的惡意軟件已經(jīng)成指數(shù)級(jí)增長(zhǎng),專(zhuān)業(yè)人 員識(shí)別惡意軟件特征的工作量將大幅度增加,隨著病毒特征庫(kù)日漸增長(zhǎng),反病毒軟件的檢 測(cè)速度將大幅度下降,對(duì)系統(tǒng)資源的占用將增加。本發(fā)明通過(guò)數(shù)據(jù)挖掘方法在學(xué)習(xí)已有惡 意軟件靜態(tài)化結(jié)構(gòu)屬性的基礎(chǔ)上來(lái)檢測(cè)未知惡意軟件,學(xué)習(xí)得到的分類(lèi)器具有相對(duì)的穩(wěn)定 性,同時(shí)具備較高的檢測(cè)準(zhǔn)確率。
2、能檢測(cè)Oday的惡意軟件傳統(tǒng)的基于病毒特征的惡意軟件檢測(cè)方法存在真空 期——即從惡意軟件出現(xiàn)到反病毒軟件能查殺該惡意軟件,在真空期惡意軟件可能已經(jīng)長(zhǎng) 生了嚴(yán)重的破壞,這給計(jì)算機(jī)惡意軟件的防護(hù)工作帶來(lái)了嚴(yán)峻挑戰(zhàn)。本發(fā)明所使用的方法 能在惡意軟件出現(xiàn)的第一時(shí)間就能對(duì)其進(jìn)行檢測(cè),能在惡意軟件出現(xiàn)的早期就遏制住其傳 播,以免在互聯(lián)網(wǎng)傳播泛濫,產(chǎn)生嚴(yán)重的破壞。
3、可實(shí)際部署于反病毒軟件進(jìn)行應(yīng)用的方法
現(xiàn)有的使用數(shù)據(jù)挖掘技術(shù)檢測(cè)惡意軟件的方法檢測(cè)時(shí)間較長(zhǎng),占用系統(tǒng)資源較 多。根據(jù)惡意軟件API調(diào)用系列檢測(cè)惡意軟件的方法獲取API調(diào)用系列時(shí)間較長(zhǎng),過(guò)濾后剩 下的API子系列也很多,且獲取API系列必須執(zhí)行惡意軟件,很可能對(duì)系統(tǒng)產(chǎn)生破壞;使用 惡意軟件反匯編后進(jìn)行n-gram的方法反匯編惡意軟件時(shí)間也較長(zhǎng),反匯編后提取過(guò)濾后 的特征也有幾百個(gè),檢測(cè)時(shí)間也較長(zhǎng);直接使用惡意軟件的二進(jìn)制文件進(jìn)行n-gram的方法 提取的特征達(dá)幾萬(wàn)個(gè),過(guò)濾后也有500個(gè)特征左右,檢測(cè)時(shí)間也較長(zhǎng)且容易受加殼和混淆 的影響。本發(fā)明選擇過(guò)濾后要提取的靜態(tài)文件結(jié)構(gòu)屬性最多只有12個(gè),且都是直接可提取 的屬性,使用分類(lèi)算法進(jìn)行分類(lèi)時(shí)間較短,單個(gè)文件在0. 25秒左右,對(duì)系統(tǒng)資源占用較少, 可實(shí)際部署于反病毒軟件中使用。
4、可以跨平臺(tái)檢測(cè)多種操作系統(tǒng)上的惡意軟件現(xiàn)有的反病毒軟件通常只支持 Win32平臺(tái),只有極少數(shù)的反病毒軟件支持Linux和Unix平臺(tái),隨著Linux和Unix市場(chǎng)占 有比率的增加,這兩種平臺(tái)上必然會(huì)面臨大量惡意軟件的攻擊,在這兩種平臺(tái)部署反病毒 軟件就會(huì)成為市場(chǎng)需求,本發(fā)明使用的基于軟件靜態(tài)屬性結(jié)構(gòu)檢測(cè)惡意軟件目前可應(yīng)用于 Windows和Linux平臺(tái),相似的方法也可應(yīng)用于Unix和Apple等操作系統(tǒng),同時(shí)還可以應(yīng)用于各種手機(jī)、掌上電腦等嵌入式平臺(tái)。
5、可以對(duì)抗加殼、混淆、變形、多態(tài)等技術(shù)的惡意軟件根據(jù)對(duì)最近新出現(xiàn)的惡意 軟件分析發(fā)現(xiàn),很多新出現(xiàn)的惡意軟件都是對(duì)原有惡意軟件進(jìn)行各種加殼而產(chǎn)生的,傳統(tǒng) 的基于病毒特征的惡意軟件檢測(cè)方法不能檢測(cè)這類(lèi)新出現(xiàn)的惡意軟件,需要專(zhuān)業(yè)人員重新 分析提取病毒特征,更新特征庫(kù)才能檢測(cè)這類(lèi)惡意軟件;使用惡意軟件二進(jìn)制的n-gram方 法也容易受到加殼、混淆的影響,因?yàn)榧託ず突煜髳阂廛浖亩M(jìn)制文件代碼段完全改 變了,但加殼和混淆后仍然是一個(gè)完整的PE或ELF文件,它仍然具有所有的靜態(tài)文件結(jié)構(gòu) 屬性,所以加殼、混淆后對(duì)本方法無(wú)影響,本發(fā)明仍然可以檢測(cè)進(jìn)行過(guò)加殼、混淆后的惡意 軟件。
最后,由表1給出本發(fā)明方法與傳統(tǒng)基于病毒特征方法、傳統(tǒng)使用數(shù)據(jù)挖掘技術(shù) 的檢測(cè)方法之間的簡(jiǎn)要對(duì)比與總結(jié)。
表1本發(fā)明方法與傳統(tǒng)方法間的對(duì)比總結(jié)
權(quán)利要求
1.一種基于文件靜態(tài)結(jié)構(gòu)屬性的惡意軟件檢測(cè)方法,其特征是檢測(cè)模型分為2個(gè)階段訓(xùn)練階段和檢測(cè)階段;訓(xùn)練階段用于完成分類(lèi)器的構(gòu)建;而檢 測(cè)階段用于完成惡意軟件的檢測(cè);在訓(xùn)練階段,首先提取文件樣本靜態(tài)結(jié)構(gòu)屬性;接著進(jìn)行數(shù)據(jù)預(yù)處理工作,使用數(shù)據(jù)挖 掘的屬性選擇過(guò)濾算法對(duì)屬性進(jìn)行選擇過(guò)濾,剩下具有很好區(qū)分度的屬性,然后使用這些 數(shù)據(jù)來(lái)訓(xùn)練分類(lèi)器,訓(xùn)練好的分類(lèi)器用作區(qū)分惡意軟件和正常文件;在檢測(cè)階段,根據(jù)訓(xùn)練階段數(shù)據(jù)預(yù)處理過(guò)濾得到的靜態(tài)結(jié)構(gòu)屬性,提取待檢測(cè)文件的 相應(yīng)結(jié)構(gòu)屬性,使用訓(xùn)練階段訓(xùn)練好的分類(lèi)器,對(duì)待檢測(cè)文件進(jìn)行分類(lèi),得到是惡意軟件或 是正常文件的結(jié)果。
2.根據(jù)權(quán)利要求1所述的基于文件靜態(tài)結(jié)構(gòu)屬性的惡意軟件檢測(cè)方法,其特征是所 述文件為PE文件;所述PE文件樣本靜態(tài)結(jié)構(gòu)屬性,選定為182個(gè),具體如下引用的動(dòng)態(tài)鏈接庫(kù) 73 個(gè)具體是ADVAP132. DLL, AWFAXP32. DLL, AWFXAB32. DLL, AWPWD32. DLL, AWRESX32. DLL, AWUTIL32. DLL, BHNETB. DLL, BHSUPP. DLL, CCAPI. DLL, CCEI. DLL, CCPSH. DLL, CCTN20. DLL, CMC. DLL,C0MCTL32. DLL,C0MDLG32. DLL,CRTDLL. DLL,DCIMAN. DLL, DCIMAN32. DLL, DSKMAINT. DLL, GDI32. DLL, GR0UPP0L. DLL, HYPERTERM. DLL, KERNL32. DLL, LZ32. DLL, MAPI. DLL, MAPI32. DLL, MFC30. DLL, MPR. DLL, MSPST32. DLL, MSFS32. DLL, MSNDUI. DLL, MSNET32. DLL, MSSHRUI. DLL, MSVIEWUT. DLL, NAL. DLL, NDIS30. DLL, NETAPI. DLL, NETAP132. DLL, NETBIOS. DLL, NETDI. DLL, NETSETUP. DLL, NWAB32. DLL, NWNET32. DLL, NWNP32. DLL, 0LEDLG.DLL,POWERCFG. DLL, RASPI.DLL, RASAPI16.DLL, RASAPI32. DLL, RPCRT4. DLL, RPCLTC1. DLL, RPCTLC3. DLL, RPCTLC5. DLL, RPCTLC6. DLL, RPCTLS3. DLL, RPCTLS5. DLL, RPCTLS6. DLL, RPCNS4. DLL,RSRC32. DLL,SAPNSP. DLL,SECUR32. DLL,SHELL32. DLL, SLENH. DLL, SHLffAPI. DLL, UMDM32. DLL, USER32. DLL, VERSION. DLL, WININET. DLL, WINMM. DLL, WINREG. DLL, WINSOCK. DLL, WS2_32. DLL, WS0CK32. DLL ; Dos 部首一個(gè)即 e_lfanew ;IMAGE_FILE_HEADER 選擇了該部分的所有7個(gè)屬性; IMAGE_0PT10NAL_HEADER32 選擇了該部分的所有30個(gè)屬性; 數(shù)據(jù)目錄表選擇了所有八個(gè)目錄表中每個(gè)目錄表的虛擬地址和大小兩個(gè)屬性,共16 個(gè)屬性; text頭部選擇了該部分的所有11個(gè)屬性; data頭部選擇了該部分的所有11個(gè)屬性; .rsrc頭部選擇了該部分的所有11個(gè)屬性; 資源目錄表選擇了該部分的所有22個(gè)屬性; 在訓(xùn)練階段a)獲取訓(xùn)練樣本應(yīng)獲取足夠多的訓(xùn)練樣本,訓(xùn)練樣本分為惡意軟件樣本和正常文件 樣本;b)從訓(xùn)練樣本文件中提取每個(gè)文件的182個(gè)靜態(tài)結(jié)構(gòu)屬性,得到訓(xùn)練樣本集;c)使用WEAK數(shù)據(jù)挖掘軟件的有監(jiān)督屬性屬性過(guò)濾方法CfsSubsetEval對(duì)182個(gè)靜 態(tài)結(jié)構(gòu)屬性過(guò)濾,過(guò)濾后得到的靜態(tài)結(jié)構(gòu)屬性為SE⑶R32.DLL,SHLffAPI. DLL, ImageBase, Checksum, SizeOfStackReserve, IMAGE_DIRECTORY_ENTRY_SECURITY.Size, IMAGE_DIRECTORY_ENTRY_DEBUG. Size, text. PointerToRelocations, rsrc. Characteristics, RT_ MESSAGETABLE, RT_GR0UP_IC0N, REVERSION 共 12 個(gè);d)、使用WEAK數(shù)據(jù)挖掘軟件的四種分類(lèi)算法J48,BFTree,IBk, AdboostMl來(lái)訓(xùn)練四種 分類(lèi)器;在檢測(cè)階段e)對(duì)待檢測(cè)的PE文件,按訓(xùn)練階段c)中過(guò)濾選擇后的12個(gè)靜態(tài)結(jié)構(gòu)屬性提取特征;f)使用訓(xùn)練階段d)中訓(xùn)練好的任一分類(lèi)器,根據(jù)e)中的12個(gè)屬性進(jìn)行分類(lèi),分類(lèi)結(jié) 果即為惡意軟件或正常文件。
3.根據(jù)權(quán)利要求1所述的基于文件靜態(tài)結(jié)構(gòu)屬性的惡意軟件檢測(cè)方法,其特征是所 述文件為ELF文件;所述ELF文件樣本的靜態(tài)結(jié)構(gòu)屬性選定為8個(gè),具體如下 ELF header20個(gè)選取除四個(gè)魔數(shù)即Magic Number以外的所有20個(gè)屬性; text, headers個(gè)選取該部分頭部的所有8個(gè)屬性; data, headers個(gè)選取該部分頭部的所有8個(gè)屬性; bss. headers個(gè)選取該部分頭部的所有8個(gè)屬性;SHT_DYNSYM. header9個(gè)選取該部分頭部的所有8個(gè)屬性和所包括的子項(xiàng)的個(gè)數(shù)共9 個(gè)屬性;PT_L0AD1. header7個(gè)選取頭部的所有7個(gè)屬性; PT_L0AD2. header7個(gè)選取頭部的所有7個(gè)屬性; PT_INTERP. header7個(gè)選取頭部的所有7個(gè)屬性; PT_SHLIB. header7個(gè)選取頭部的所有7個(gè)屬性; 在訓(xùn)練階段a)獲取訓(xùn)練樣本應(yīng)獲取足夠多的訓(xùn)練樣本,訓(xùn)練樣本分為惡意軟件樣本和正常文件 樣本;b)從訓(xùn)練樣本文件中提取每個(gè)文件的81個(gè)靜態(tài)結(jié)構(gòu)屬性,得到訓(xùn)練樣本集;c)使用WEAK數(shù)據(jù)挖掘軟件的有監(jiān)督屬性過(guò)濾方法CfsSubsetEval對(duì)81個(gè)靜態(tài)結(jié)構(gòu)屬 性選擇過(guò)濾,選擇過(guò)濾后得到的靜態(tài)結(jié)構(gòu)屬性為header. e_phnum, header. e_shnum, SHT_ DYNSYM. header. sh_link, PT_L0AD1. header. p_vaddr, PT_L0AD2. header. p_offset 共 5 個(gè);d)使用WEAK數(shù)據(jù)挖掘軟件的四種分類(lèi)算法J48,BFTree,IBk, AdboostMl來(lái)訓(xùn)練四種 分類(lèi)器;在檢測(cè)階段e)對(duì)待檢測(cè)的ELF文件,按訓(xùn)練階段c)中過(guò)濾選擇后的5個(gè)靜態(tài)結(jié)構(gòu)屬性提取特征;f)使用訓(xùn)練階段d)中訓(xùn)練好的任一分類(lèi)器,根據(jù)檢測(cè)階段e)中的5個(gè)屬性進(jìn)行分類(lèi), 分類(lèi)結(jié)果即為惡意軟件或正常文件。
全文摘要
一種基于文件靜態(tài)結(jié)構(gòu)屬性的惡意軟件檢測(cè)方法,特別是針對(duì)PE文件和ELF文件的檢測(cè)方法。在訓(xùn)練階段,首先提取文件樣本靜態(tài)結(jié)構(gòu)屬性;接著進(jìn)行數(shù)據(jù)預(yù)處理工作,選擇過(guò)濾算法進(jìn)行選擇過(guò)濾,然后使用這些數(shù)據(jù)來(lái)訓(xùn)練分類(lèi)器;在檢測(cè)階段,根據(jù)處理過(guò)濾得到的靜態(tài)結(jié)構(gòu)屬性,使用訓(xùn)練好的分類(lèi)器,對(duì)檢測(cè)文件進(jìn)行分類(lèi),得到是惡意軟件或是正常文件的結(jié)果。本發(fā)明以99%以上的準(zhǔn)確率檢測(cè)已知和未知的惡意軟件,檢測(cè)時(shí)間短,占用系統(tǒng)資源少,可實(shí)際部署于反病毒軟件中使用。本方法不受加殼、混淆、變形、多態(tài)等技術(shù)影響,目前可應(yīng)用于Windwos和Linux平臺(tái),同時(shí)還可以用于各種手機(jī)、掌上電腦等嵌入式平臺(tái)。
文檔編號(hào)G06F21/22GK102034043SQ20101058514
公開(kāi)日2011年4月27日 申請(qǐng)日期2010年12月13日 優(yōu)先權(quán)日2010年12月13日
發(fā)明者佘春東, 劉達(dá)富, 王俊峰, 白金榮, 趙宗渠 申請(qǐng)人:四川大學(xué)