摘 要: 針對絕大多數(shù)的木馬都經(jīng)過了PE文件加殼處理的情況,對PE文件的加殼檢測進(jìn)行了研究。對基于歐幾里得距離的加殼PE文件識(shí)別方法進(jìn)行改進(jìn),在此基礎(chǔ)上提出了基于明可夫斯基距離對PE文件進(jìn)行分類,檢測PE文件是否加殼。實(shí)驗(yàn)表明,相對于流行的PEid工具,該法具有較高的檢測率、誤報(bào)率和漏報(bào)率也在可接受的范圍內(nèi)。
關(guān)鍵詞: 木馬識(shí)別; PE文件; 加殼檢測; PEid
中圖分類號: TN915.08?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號: 1004?373X(2016)19?0080?02
Abstract: Since the vast majority of Trojan Houses have been disposed by means of packed PE files, detection for the packed PE files is studied. The Euclidean distance based method to identify packed PE files was improved. And on this basis, the method based on Minkowski distance is put forward to the classify PE files, and detect whether PE files are packed. The experimental results show that, in comparison with the popular PEid tool, the method has higher detection rate, and its 1 alarm rate and 1 negative rate are also within the acceptable range.
Keywords: Trojan Horse detection; PE file; packing detection; PEid
0 引 言
作為特殊的計(jì)算機(jī)病毒 ,木馬攻擊已成為威脅網(wǎng)絡(luò)安全的主要因素之一[1]。在Windows系統(tǒng)下,絕大多數(shù)的木馬都經(jīng)過了PE文件加殼處理。所以在木馬識(shí)別和檢測的過程中,判斷和識(shí)別文件是否加殼非常重要。
文獻(xiàn)[2]提出了一種基于信息熵分析的PE文件加殼檢測方法,該方法通過分析加殼PE文件的比特分布、計(jì)算信息熵的方法區(qū)分加殼和非加殼的PE文件。PEid[3]是目前最流行的去殼和加殼識(shí)別工具,Choi等人提出基于PE屬性間歐幾里得距離的加殼檢測技術(shù)[4],取得了比PEiD更高的識(shí)別率。文獻(xiàn)[5]提出引入主成分分析的方法,該方法將多個(gè)屬性進(jìn)行線性變換從而得到少數(shù)重要屬性,針對這些屬性將它們帶入C4.5,SVM,MLP,Naive Bayes等分類器能很好地對加殼和非加殼PE文件進(jìn)行分類和檢測。文獻(xiàn)[6]提出一種專門針對UPX加殼軟件的加殼監(jiān)測技術(shù)。
本文主要對PE文件的加殼檢測技術(shù)進(jìn)行研究,提出一種基于明可夫斯基距離的加殼PE文件識(shí)別方法。
1 基本概念
1.1 PE文件加殼分類
對PE文件進(jìn)行加殼,一般有兩個(gè)目的:一是對原PE文件進(jìn)行壓縮,從而減小PE文件的體積;二是對PE文件進(jìn)行加密,防止原PE文件被破解。根據(jù)不同目的,加殼軟件可分為兩種:壓縮加殼軟件,如ASPack,UPX等都屬于這一類;加密加殼軟件,如ASProtect,tElock等都屬于這一類。
1.2 明可夫斯基距離
2.3 實(shí)驗(yàn)結(jié)果與分析
通過選取不同的[x]參數(shù)值,進(jìn)行多次實(shí)驗(yàn),對這些實(shí)驗(yàn)的結(jié)果進(jìn)行比較,可以獲得理想的[x]值。
2.3.1 實(shí)驗(yàn)數(shù)據(jù)與環(huán)境
實(shí)驗(yàn)樣本:用100個(gè)加殼PE文件,用于獲得特征向量的明可夫斯基距離從而選取閾值。測試數(shù)據(jù)采用1 027個(gè)PE文件,包括437個(gè)加殼的PE文件和590個(gè)非加殼的PE文件,文件主要來自于系統(tǒng)“Program Files”和”system32”文件夾,以及因特網(wǎng)和反病毒商。其中加殼和非加殼文件都各自含有安全的文件和病毒文件。
實(shí)驗(yàn)環(huán)境:操作系統(tǒng):Windows 7 旗艦版 Service Pack 1 32位;內(nèi)存:4 GB;CPU:Inter?CoreTMi7?3630QM CPU@2.40 GHz。
2.3.2 實(shí)驗(yàn)結(jié)果
依次將[x]參數(shù)設(shè)定為1~4進(jìn)行4次實(shí)驗(yàn),并用誤報(bào)數(shù)(非加殼的PE文件被判定為加殼PE文件的數(shù)目)、漏報(bào)數(shù)(加殼的PE文件被判定為非加殼PE文件的數(shù)目)、檢測率(被正確檢測出來的加殼PE文件與進(jìn)行測試的加殼PE文件總數(shù)的比值)、誤報(bào)率(非加殼的PE文件被判定為加殼PE文件的數(shù)目與被判定為加殼PE文件的數(shù)目的比值)和漏報(bào)率(加殼的PE文件被判定為非加殼PE文件的數(shù)目與加殼PE文件總數(shù)的比值)5個(gè)指標(biāo)標(biāo)識(shí)實(shí)驗(yàn)結(jié)果。表2中列出了不同[x]參數(shù)下的閾值和相應(yīng)實(shí)驗(yàn)結(jié)果。
從表2中可以看出,當(dāng)參數(shù)[x=1]時(shí)有最高的檢測率(94.05%)和最低的漏報(bào)率(4.58%),但是此時(shí)的誤報(bào)率也相對較高為6.37%;當(dāng)參數(shù)[x=2]時(shí),檢測率最低只有93.59%,漏報(bào)率為6.41%居中,此時(shí)的誤報(bào)率為3.99%相對[x=]1時(shí)較低,但依然比[x]為3,4時(shí)高;當(dāng)參數(shù)[x]為3或者4時(shí),檢測率為93.82%,誤報(bào)率為最低的2.38%,而漏報(bào)率最高為7.32%。
3 結(jié) 語
本文提出了一種基于明可夫斯基距離的PE文件查殼方法。實(shí)驗(yàn)表明,相對于流行的PEid工具,該方法具有較高的檢測率,誤報(bào)率和漏報(bào)率也在可接受的范圍內(nèi)。
參考文獻(xiàn)
[1] 國家互聯(lián)網(wǎng)應(yīng)急中心.CNCERT互聯(lián)網(wǎng)安全威脅報(bào)告[R/OL].[[2012?07?23].]http://www.cert.org.cn/publish/main/45/2015/2015 0728093145715904130/20150728093145715904130_.html.
[2] LYDA R, HAMROCK J. Using entropy analysis to find encryp?ted and packed malware [J]. IEEE security privacy, 2007, 5(2): 40?45.
[3] ALDERD. PEiD [DB/OL]. [2013?12?29]. http://www.aldeid.com/wiki/PEiD.
[4] Wikipedia. Euclidean distance [DB/OL]. [2015?07?03]. http://en.wikipedia.org/wiki/Euclidean_distance.
[5] 趙躍華,張翼,言洪萍.基于數(shù)據(jù)挖掘技術(shù)的加殼PE程序識(shí)別方法[J].計(jì)算機(jī)應(yīng)用,2011,31(7):1901?1903.
[6] DEVI D, NANDI S. PE file features in detection of packed executables [J]. International journal of computer theory and engineering, 2012, 4(3): 476?478.