国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SVM模型的惡意PDF文檔檢測方法

2016-11-14 00:58:24徐建平
電腦知識與技術(shù) 2016年24期
關(guān)鍵詞:字符串特征向量解碼

徐建平

摘要:該文針對現(xiàn)有的PDF文檔檢測方案存在準(zhǔn)確度低、易混淆等問題提出一種基于SVM模型的智能檢測方法,同時結(jié)合PDF文檔格式分析技術(shù),實現(xiàn)對惡意PDF文檔的檢測。論文先對PDF文檔中JavaScript代碼進(jìn)行定位、提取、解碼、去混淆化等處理,得到原始的JavaScript代碼。然后對得到的原始JavaScript代碼提取相應(yīng)的特征向量,再利用SVM分類器進(jìn)行靜態(tài)檢測。最后對檢測出來的惡意PDF文檔的JavaScript代碼中惡意代碼部分shellcode部分,利用libemu仿真工具實現(xiàn)行為模擬運(yùn)行,得到詳細(xì)的惡意行為報告。實驗表明該方法能有效檢測出惡意的PDF文檔,檢測率有所提高,漏報率明顯降低。

關(guān)鍵詞:PDF文檔;JavaScript代碼;SVM

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)24-0090-03

Abstract:In order to solve the problem of low accuracy and easy to confound in view of the existing PDF document detection scheme. In this paper, an intelligent detection method based on SVM model is proposed, which is combined with the PDF document format analysis technology to realize the detection of malicious PDF documents. First, the paper on the PDF document JavaScript code for positioning, extracting, decoding, to be confused, and other processing, get the original JavaScript code. Then extract the corresponding feature vector from the original JavaScript code, and use the SVM classifier for static detection. Finally, the malicious code in the JavaScript code of the detected malicious PDF code part of the shellcode, using libemu simulation tool to achieve the behavior of the simulation run, get a detailed report on the malicious behavior. Experimental results show that the method can effectively detect the malicious PDF document, the detection rate has increased, the false negative rate decreased significantly.

Key words:PDF document; JavaScript code; SVM

1 背景

2008年以前惡意代碼對PDF[1]文檔的利用技術(shù)還不是很成熟,相應(yīng)的PDF文檔漏洞還比較少,其主要的檢測方式都還處在特征碼掃描的階段。隨著PDF市場占有率的迅速提高,PDF漏洞也開始增多,因為Office漏洞越來越少,而利用難度也越來越大,同時對惡意Office文檔的檢測技術(shù)已經(jīng)非常成熟,于是PDF代替Office成為熱門的惡意代碼的有效載體。由于惡意代碼對計算機(jī)的嚴(yán)重破壞性,檢測和防止含有惡意代碼的PDF文檔已成為計算機(jī)安全領(lǐng)域的重要目標(biāo)。

目前,針對PDF攻擊方式大多數(shù)都與JavaScript相關(guān),其檢測模型主要有三類:基于特征碼的靜態(tài)檢測模型、基于跟蹤JavaScript行為的動態(tài)檢測模型以及動靜結(jié)合檢測模型。2012年,Laskov和NedimSrndic提出了針對PDF文檔第一個靜態(tài)檢測模型——PJScan模型[2]。PJScan模型開創(chuàng)性地實現(xiàn)了從 PDF文檔中提取JavaScript代碼,并且真正實現(xiàn)了對惡意 JavaScript代碼的靜態(tài)檢測。但是該模型也有不足之處。首先,在提取JavaScript代碼時沒有對JavaScript代碼進(jìn)行去混淆化處理,這樣導(dǎo)致提取到的特征向量被無用的信息所充斥,導(dǎo)致有用的特征向量的權(quán)值降低,影響檢測率。其次,采用的one-class SVM分類算法允許一定比例的樣本點超出范圍,這樣漏報率會提高。

針對以上缺點,本文提出一種基于SVM模型的檢測方法,首先對提取到的JavaScript代碼進(jìn)行解碼與去混淆化等處理,然后考慮樣本規(guī)模影響運(yùn)行速度,使用LibSVM分類器。此外,對已經(jīng)判斷出的惡意樣本中shellcode部分,利用libemu仿真工具實現(xiàn)行為模擬運(yùn)行,得到詳細(xì)的惡意行為報告。

2 基于SVM模型的惡意PDF文檔檢測方法

2.1 檢測流程

本方法的檢測流程主要分兩部分,第一部分主要是對實驗樣本進(jìn)行檢測,第二部分主要提取判斷出來的惡意樣本的shellcode部分進(jìn)行仿真運(yùn)行,得到詳細(xì)的檢測報告。如圖1所示。

2.2 數(shù)據(jù)預(yù)處理

嵌入到PDF文檔中的JavaScript代碼極大地豐富了PDF 文檔的功能和顯示效果,這也就給了攻擊者編寫具有惡意行為的 PDF 文檔的機(jī)會,但是PDF文檔中的JavaScript 代碼通常是經(jīng)過編碼壓縮和對象間接引用處理后的。因此在提取JavaScript代碼之前要對PDF文檔結(jié)構(gòu)進(jìn)行分析,然后對定位的JavaScript流對象進(jìn)行解壓縮,最后才能將其提取出來。

1)JavaScript代碼定位與提取

在PDF文檔中,JavaScript代碼通常綁定在活動字典上,會以一些關(guān)鍵字進(jìn)行標(biāo)識,而且主要嵌入在關(guān)鍵字“/JS”的字典中。JavaScript代碼有兩種嵌入方式:通過/JS關(guān)鍵字直接嵌入和通過/JS關(guān)鍵字間接調(diào)用。兩種嵌入方式對比如表1所示。

對于提取JavaScript代碼有兩個重要的標(biāo)識:/JavaScript和/Rendition。在一般的PDF文檔中,可以根據(jù)這兩個標(biāo)識定位到JavaScript代碼的入口位置。如果以/Rendition 為標(biāo)識,則必須有一個關(guān)鍵字/JS,如果以/JavaScript為標(biāo)識,則不一定有關(guān)鍵字/JS。/JS字典中包含JavaScript代碼,因此就可以提取到相應(yīng)的JavaScript代碼。

2)JavaScript代碼解碼

如果JavaScript代碼嵌入方式是間接引用的話,就必須對間接引用對象中的內(nèi)容進(jìn)行解碼操作。解碼步驟:①調(diào)用靜態(tài)函數(shù)GetAllObjectBlobs,返回流中的所有字符;②判斷是否有“FlateDecode”字段,沒有跳到④;③調(diào)用解碼函數(shù)FlateDecodeToASCII進(jìn)行解碼;④保存結(jié)果。

3)JavaScript代碼去混淆處理

攻擊者為了躲避檢測,使用各種混淆技術(shù)進(jìn)行逃避。攻擊者所使用的混淆技術(shù)主要有兩種:字符串分割技術(shù)和增加冗余代碼技術(shù)。字符串切割技術(shù)是將一字符串切割成若干個子串,然后使用字符連接操作符將字符串連接起來;增加冗余代碼技術(shù)是在代碼中添加大了大量的無關(guān)注釋,增加有效特征碼的提取難度。

因此,在進(jìn)行特征提取之前,需要對JavaScript代碼進(jìn)行去混淆處理,首先需要刪除與JavaScript代碼運(yùn)行無關(guān)的注釋,即如果有以“/*”為起始點和以“*/”為結(jié)束點的字符串,則直接刪除;其次將切割后的字符串進(jìn)行還原操作,即如果代碼中有 “+”字符,并且前一個字符“"”,且后一個字符“"”,則刪除這三個字符。JavaScript代碼去混淆示例如表2所示。

2.3 特征向量提取

惡意代碼中會出現(xiàn)很多特殊的函數(shù)或者特殊的字符串,比如0c0c,0a0a,%u,spray,crypt 等字符、一些通用函數(shù)(eval()、escape()、unescape()、replace()、fromCharCode()),以及一些常用的存在漏洞的函數(shù)(getIcon()、Collab())。因此,本方法采用一些特殊字符串、特殊函數(shù)、特殊關(guān)鍵字出現(xiàn)的次數(shù)作為是否惡意代碼的判斷依據(jù)。本文根據(jù)文獻(xiàn)[3]得出一些JavaScript代碼的關(guān)鍵特征如表3所示。

2.4 SVM分類器檢測

支持向量機(jī)(Support Vector Machine,SVM)分類器是一種監(jiān)督式的學(xué)習(xí)方法,廣泛應(yīng)用于統(tǒng)計分類以及回歸分析。針對訓(xùn)練樣本較大導(dǎo)致訓(xùn)練速度下降的問題,臺灣林智仁(Chen-Jen Lin)教授與2001年開發(fā)了一套支持向量機(jī)的庫LibSVM[4],該庫運(yùn)算速度快而且開源,相比較SMO算法運(yùn)行快得多,因此選擇LibSVM構(gòu)建SVM分類器。

利用上一小節(jié)得到的JS特征向量集進(jìn)行訓(xùn)練得到最優(yōu)的SVM模型,然后利用該模型對測試樣本特征集進(jìn)行分類。基于SVM模型的特征訓(xùn)練及測試步驟如下:①收集實驗樣本;②按照表3提取關(guān)鍵特征,并對正常樣本的特征和惡意樣本特征進(jìn)行標(biāo)記;③使用Weka平臺中LibSVM方法,采用十字交叉驗證方法調(diào)整相關(guān)參數(shù)對特征集進(jìn)行訓(xùn)練,獲取最優(yōu)的SVM模型的參數(shù);④利用訓(xùn)練得到的模型對測試樣本進(jìn)行分類。

2.5 shellcode分析

通過1.2小節(jié)提取到的JavaScript代碼中一般都包含了shellcode代碼,大部分的PDF文檔中所包含的惡意代碼都隱藏在shellcode代碼中。但是大多數(shù)情況下攻擊者對該部分進(jìn)行了壓縮和模糊化[5]。因此,要先利用 JS 解析引擎對其進(jìn)行解混淆操作,以便能夠通過libemu仿真模擬執(zhí)行其代碼,進(jìn)一步分析shellcode代碼的執(zhí)行路徑。

從JavaScript代碼中提取出來某個字符串包含的一段shellcode功能代碼:“u0E8A%u55FF%u5704%uEFB8%u6A3C%u5A44%uE2Dl%uE22B…..%uEOCE%uFF60%u0455%u7468%u7074%u2F3A%u642F%u6C6F%u6170%u7373%u6967%u6576%u2E6E%u7572”。然后將其轉(zhuǎn)換為十六進(jìn)制的機(jī)器碼。

libemu是一款用C語言實現(xiàn)的基于x86的shellcode檢測的庫。這里通過使用libemu加載轉(zhuǎn)換后的十六進(jìn)制碼,從而達(dá)到對shellcode進(jìn)行檢測,包括使用GetPC啟發(fā)式檢測、靜態(tài)分析、二進(jìn)制方式的動態(tài)分析、Win32API HOOK等。

為了增強(qiáng)分析報告的可讀性,報告生成條目按不同資源類型的行為加以分派,并通過用文本文件的形式呈現(xiàn)出來,供分析人員參考使用。

3 實驗分析

3.1 數(shù)據(jù)收集

為了驗證方法的有效性,本文的惡意PDF文件從Virustotal,VX Heavens上收集了惡意PDF文檔100個,收集了正常文檔200個,所有正常文檔均為平時日常使用的文檔。

3.2 評估策略

在檢測中,采用檢測率(TP) 即正確分類的惡意代碼數(shù)與惡意代碼總數(shù)的比值和誤檢率(FP) 即正常文件被認(rèn)定為惡意代碼數(shù)與正常文件總數(shù)的比值來評價檢測方法的優(yōu)劣。分類準(zhǔn)確率(ACC) 也被應(yīng)用到檢測算法優(yōu)劣的評估中,其為正確分類的樣本數(shù)與所有測試樣本數(shù)的比值。

3.3 有效性驗證

為了驗證本文提出的方法的有效性,使用Weka平臺中LibSVM方法,采用十字交叉驗證方法調(diào)整相關(guān)參數(shù)對特征集進(jìn)行訓(xùn)練,獲取最優(yōu)的SVM模型的參數(shù),然后,利用訓(xùn)練得到的模型對測試樣本進(jìn)行分類,最后將本文提出的方法實驗結(jié)果與PJScan模型的實驗結(jié)果進(jìn)行比較,如表4所示。

4 結(jié)束語

本文提出了一種基于SVM模型的智能檢測方法,對提取到的JavaScript代碼進(jìn)行解碼、去混淆化處理等處理,保證提取的特征向量的質(zhì)量。然后考慮到樣本規(guī)模以及檢測速率的問題,采用LibSVM分類器進(jìn)行特征的訓(xùn)練和學(xué)習(xí)。在Weka平臺進(jìn)行仿真實驗表明該方法對PDF文檔檢測的檢測率有一定提高,漏報率有一定程度上的降低。此外,對已經(jīng)判別出的惡意樣本中shellcode部分使用libemu仿真工具進(jìn)行模擬運(yùn)行,從而能夠提高分析人員快速修復(fù)漏洞的效率。

參考文獻(xiàn):

[1] PDF Reference.Adobe Portable Document Format[Z].Version 1.7, 2006.

[2] Laskov P,Nedim Srndic.Static detection of malicious JavaScript-bearing PDF documents[C]//Proceedings of the 27th Annual Computer Security Applications Conference. ACM, 2011: 373-382.

[3] Likarish P,Jung E, Jo I. Obfuscated malicious JavaScript detection using classification techniques[C]. IEEE,2009:47-54.

[4] 林智仁. LIBSVM -- A Library for Support Vector Machines[EB/OL]. http://www.csie.ntu.edu.tw/~cjlin/libsvm

[5] Porst S. How to really obfuscate your PDF malware[C]. RECON, 2010.

猜你喜歡
字符串特征向量解碼
二年制職教本科線性代數(shù)課程的幾何化教學(xué)設(shè)計——以特征值和特征向量為例
《解碼萬噸站》
克羅內(nèi)克積的特征向量
解碼eUCP2.0
中國外匯(2019年19期)2019-11-26 00:57:32
NAD C368解碼/放大器一體機(jī)
Quad(國都)Vena解碼/放大器一體機(jī)
一類特殊矩陣特征向量的求法
EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應(yīng)用
一種新的基于對稱性的字符串相似性處理算法
依據(jù)字符串匹配的中文分詞模型研究
滦南县| 垣曲县| 星子县| 湖南省| 嵊州市| 邵阳县| 塔河县| 察隅县| 栖霞市| 桃园市| 冷水江市| 天祝| 金寨县| 蒙山县| 新竹市| 丽水市| 江西省| 太仓市| 成武县| 射洪县| 石渠县| 房产| 喀什市| 子长县| 曲靖市| 青神县| 丹巴县| 睢宁县| 周至县| 邵武市| SHOW| 南宁市| 桦甸市| 许昌市| 基隆市| 邳州市| 烟台市| 芒康县| 江油市| 循化| 阿拉善右旗|