摘 要: 針對絕大多數的木馬都經過了PE文件加殼處理的情況,對PE文件的加殼檢測進行了研究。對基于歐幾里得距離的加殼PE文件識別方法進行改進,在此基礎上提出了基于明可夫斯基距離對PE文件進行分類,檢測PE文件是否加殼。實驗表明,相對于流行的PEid工具,該法具有較高的檢測率、誤報率和漏報率也在可接受的范圍內。
關鍵詞: 木馬識別; PE文件; 加殼檢測; PEid
中圖分類號: TN915.08?34 文獻標識碼: 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 引 言
作為特殊的計算機病毒 ,木馬攻擊已成為威脅網絡安全的主要因素之一[1]。在Windows系統下,絕大多數的木馬都經過了PE文件加殼處理。所以在木馬識別和檢測的過程中,判斷和識別文件是否加殼非常重要。
文獻[2]提出了一種基于信息熵分析的PE文件加殼檢測方法,該方法通過分析加殼PE文件的比特分布、計算信息熵的方法區分加殼和非加殼的PE文件。PEid[3]是目前最流行的去殼和加殼識別工具,Choi等人提出基于PE屬性間歐幾里得距離的加殼檢測技術[4],取得了比PEiD更高的識別率。文獻[5]提出引入主成分分析的方法,該方法將多個屬性進行線性變換從而得到少數重要屬性,針對這些屬性將它們帶入C4.5,SVM,MLP,Naive Bayes等分類器能很好地對加殼和非加殼PE文件進行分類和檢測。文獻[6]提出一種專門針對UPX加殼軟件的加殼監測技術。
本文主要對PE文件的加殼檢測技術進行研究,提出一種基于明可夫斯基距離的加殼PE文件識別方法。
1 基本概念
1.1 PE文件加殼分類
對PE文件進行加殼,一般有兩個目的:一是對原PE文件進行壓縮,從而減小PE文件的體積;二是對PE文件進行加密,防止原PE文件被破解。根據不同目的,加殼軟件可分為兩種:壓縮加殼軟件,如ASPack,UPX等都屬于這一類;加密加殼軟件,如ASProtect,tElock等都屬于這一類。
1.2 明可夫斯基距離
2.3 實驗結果與分析
通過選取不同的[x]參數值,進行多次實驗,對這些實驗的結果進行比較,可以獲得理想的[x]值。
2.3.1 實驗數據與環境
實驗樣本:用100個加殼PE文件,用于獲得特征向量的明可夫斯基距離從而選取閾值。測試數據采用1 027個PE文件,包括437個加殼的PE文件和590個非加殼的PE文件,文件主要來自于系統“Program Files”和”system32”文件夾,以及因特網和反病毒商。其中加殼和非加殼文件都各自含有安全的文件和病毒文件。
實驗環境:操作系統:Windows 7 旗艦版 Service Pack 1 32位;內存:4 GB;CPU:Inter?CoreTMi7?3630QM CPU@2.40 GHz。
2.3.2 實驗結果
依次將[x]參數設定為1~4進行4次實驗,并用誤報數(非加殼的PE文件被判定為加殼PE文件的數目)、漏報數(加殼的PE文件被判定為非加殼PE文件的數目)、檢測率(被正確檢測出來的加殼PE文件與進行測試的加殼PE文件總數的比值)、誤報率(非加殼的PE文件被判定為加殼PE文件的數目與被判定為加殼PE文件的數目的比值)和漏報率(加殼的PE文件被判定為非加殼PE文件的數目與加殼PE文件總數的比值)5個指標標識實驗結果。表2中列出了不同[x]參數下的閾值和相應實驗結果。
從表2中可以看出,當參數[x=1]時有最高的檢測率(94.05%)和最低的漏報率(4.58%),但是此時的誤報率也相對較高為6.37%;當參數[x=2]時,檢測率最低只有93.59%,漏報率為6.41%居中,此時的誤報率為3.99%相對[x=]1時較低,但依然比[x]為3,4時高;當參數[x]為3或者4時,檢測率為93.82%,誤報率為最低的2.38%,而漏報率最高為7.32%。
3 結 語
本文提出了一種基于明可夫斯基距離的PE文件查殼方法。實驗表明,相對于流行的PEid工具,該方法具有較高的檢測率,誤報率和漏報率也在可接受的范圍內。
參考文獻
[1] 國家互聯網應急中心.CNCERT互聯網安全威脅報告[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] 趙躍華,張翼,言洪萍.基于數據挖掘技術的加殼PE程序識別方法[J].計算機應用,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.