亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于混合特征的惡意PDF文檔檢測

        2019-03-13 08:17:46杜學(xué)繪林楊東孫奕
        通信學(xué)報 2019年2期
        關(guān)鍵詞:特征分析檢測

        杜學(xué)繪,林楊東,孫奕

        (解放軍戰(zhàn)略支援部隊信息工程大學(xué)河南省信息安全重點(diǎn)實驗室,河南 鄭州 450001)

        1 引言

        PDF是由Systems[1]在1993年提出的,用于文件交換的一種文件格式,其優(yōu)點(diǎn)在于跨平臺、能保留文件原有格式、開放標(biāo)準(zhǔn)等。PDF文件格式自被提出以來,就以其高效性、穩(wěn)定性和交互性而被廣泛應(yīng)用于政府、組織、企業(yè)等重要機(jī)構(gòu)的日常辦公。

        自2008年第一個基于惡意代碼的PDF漏洞[2]被提出后,針對PDF文件格式漏洞的利用技術(shù)迅速發(fā)展。近幾年來,隨著社會工程學(xué)和APT(advanced persistent treat)等攻擊手段的興起和發(fā)展,PDF格式的漏洞也不斷被挖掘出來,利用嵌入惡意PDF文檔的釣魚郵件,結(jié)合社會工程學(xué)對政府、組織、企業(yè)等進(jìn)行攻擊的案例也屢見不鮮。

        2016年9月,PaloAlto研究中心的安全研究人員首先發(fā)現(xiàn)了針對蘋果系統(tǒng)的新型釣魚郵件攻擊,其技術(shù)核心在于釣魚郵件中攜帶有木馬病毒的惡意PDF文檔。2017年5月12日,WannaCry勒索病毒軟件借助高危漏洞“永恒之藍(lán)”在全球范圍內(nèi)爆發(fā),攻擊范圍覆蓋醫(yī)療、教育、公安等多個行業(yè),影響極其惡劣。相關(guān)人士表示,WannaCry勒索病毒主要通過釣魚郵件結(jié)合惡意附件進(jìn)行傳播,然后嵌入文檔、感染文檔并對文檔進(jìn)行加密。

        種種案例表明,釣魚郵件是當(dāng)前惡意文檔的主要傳播途徑,攻擊者通常將惡意文檔作為郵件附件,結(jié)合社會工程學(xué)等,誘使用戶打開惡意文檔,從而執(zhí)行進(jìn)一步的惡意操作?,F(xiàn)有的針對惡意PDF文檔的反病毒系統(tǒng)大多是基于簽名的方法和基于啟發(fā)式規(guī)則的方法[3],其在應(yīng)對多態(tài)攻擊方面存在一定的缺陷,且無法應(yīng)對新型安全威脅。為了解決這些問題,近年來,研究工作主要分為以下2個方面:1)著重關(guān)注惡意 PDF文檔中的靜態(tài)特征,如結(jié)構(gòu)特征、內(nèi)容元數(shù)據(jù)特征等,來判別惡意PDF,而不關(guān)注其惡意內(nèi)容及具體的行為操作;2)利用靜態(tài)分析和動態(tài)分析的方法,針對惡意PDF文檔中的JavaScript特征進(jìn)行檢測。前一種方法的檢測效果和檢測效率均比后者更優(yōu),且可以檢測不包含JavaScript的惡意文檔,然而,這種方法由于選取特征的頑健性較弱,已被證明極易被攻擊者通過簡單的操作而繞過,因此,研究人員又重新關(guān)注惡意文檔中JavaScript特征的相關(guān)研究。

        為了解決現(xiàn)有檢測方案特征頑健性較差、易被逃避檢測的問題,本文提出了一種基于混合特征的惡意PDF文檔檢測方案。該方案采用靜態(tài)分析技術(shù)從文檔中提取出其常規(guī)信息(版本號、大小等)以及其結(jié)構(gòu)信息,采用動態(tài)分析技術(shù)從文檔中提取出文檔執(zhí)行時的API(application programming interface)調(diào)用信息。對于常規(guī)信息,本文根據(jù)對文檔的分析結(jié)果進(jìn)行過濾篩選;對于結(jié)構(gòu)信息及API調(diào)用信息,本文采用K-means聚類算法對其進(jìn)行聚類,從中聚合出最能表征文檔惡意性的關(guān)鍵結(jié)構(gòu)特征及API調(diào)用特征,以此3種特征構(gòu)成特征向量,利用隨機(jī)森林算法構(gòu)建分類器并最終設(shè)計實驗進(jìn)行驗證。結(jié)果表明,本文方法與現(xiàn)有已公開的3種最新檢測工具相比,檢測率和誤報率均有一定提高,且在應(yīng)對基于特征加法的模擬攻擊上效果較好。

        2 相關(guān)工作

        2.1 PDF文檔結(jié)構(gòu)簡介

        由于 PDF使用起來方便快捷并且支持各類功能,其在我國信息化進(jìn)程中逐漸成為主流的文檔信息交換的主要格式,但與此同時也成為惡意代碼傳播的主要載體[4]。

        一個典型的PDF文檔通常包含豐富的文本、圖像等信息,此外,在PDF中,往往還存在超鏈接、數(shù)據(jù)交換以及允許其他應(yīng)用調(diào)用的接口等來為PDF文檔的各類功能提供支持。因此,PDF擁有十分復(fù)雜的結(jié)構(gòu)特征。

        PDF文檔由一組邏輯上相互連接的對象組成,其結(jié)構(gòu)[5]主要包括文件頭(header)、文件主體(body)、交叉引用表(cross-reference table)、文件尾(trailer)和其他可選部分。文件頭主要記錄了該文件使用的PDF結(jié)構(gòu)標(biāo)準(zhǔn)規(guī)范,文件主體包括了所有的對象內(nèi)容,交叉引用表記錄了間接對象的地址索引表,文件尾主要記錄了交叉引用表的物理位置。

        文件頭位于PDF文檔的最前端,指定了文件使用的PDF規(guī)范的版本,如“%PDF-1.7”表示該P(yáng)DF文檔使用PDF 1.7版本的規(guī)范。需要注意的是,文件頭可以被放置在PDF文件的前1 024 B中的任意位置。

        文體主體由文件頭和交叉引用表之間的所有對象組成,這些對象共同構(gòu)成了PDF文件的具體內(nèi)容,如頁面、文本、鏈接、圖像等。

        交叉引用表為間接對象的隨機(jī)存取提供了索引地址表,它的一個重要作用是保證了在整個PDF文件被完整加載之前,可以將部分文檔先進(jìn)行顯示。對于一個PDF文檔而言,其交叉引用表會隨著PDF文件的更新而更新,不斷添加新的內(nèi)容。

        文件尾位于文件的結(jié)尾,以“trailer”為起始標(biāo)志,指定了交叉引用表以及一些特殊對象的物理地址,并以“%%EOF”為結(jié)束標(biāo)志。

        2.2 惡意PDF文檔檢測相關(guān)方法

        惡意 PDF文檔檢測技術(shù)已有一定的基礎(chǔ)。目前,對惡意PDF文檔檢測的分析方法主要有2種類型,即靜態(tài)分析和動態(tài)分析。靜態(tài)分析主要針對PDF文檔中的靜態(tài)特征,利用反編譯的手段從文檔中解析出結(jié)構(gòu)、內(nèi)容、JavaScript代碼等特征,并以此建立惡意PDF文檔檢測模型;動態(tài)分析則是利用虛擬機(jī)、硬件模擬等技術(shù),通過API掛鉤等手段對惡意PDF文檔及其內(nèi)嵌代碼的動態(tài)執(zhí)行進(jìn)行監(jiān)控,并以此建立PDF文檔行為檢測模型。

        早期的惡意文檔檢測,普遍使用靜態(tài)分析的方法。2007年,Li等[6]首次提出了利用機(jī)器學(xué)習(xí)結(jié)合n-gram分析對原始文檔進(jìn)行字節(jié)級分析,然而這些方法主要針對word文檔、可執(zhí)行文件(exe)等,并未在PDF文檔檢測方面進(jìn)行嘗試,其主要原因在于受編碼、過濾和加密等技術(shù)的影響,無法定位到PDF文檔中的主要特征。隨著惡意PDF文檔的危害性不斷增強(qiáng),后續(xù)的研究工作著重分析PDF文檔中的JavaScript代碼特征。

        PDF文檔中的JavaScript代碼特征主要有2類,即動態(tài)行為特征和詞匯特征。針對JavaScript代碼的動態(tài)行為特征分析已經(jīng)提出了許多解決方案,并設(shè)計出了 CWSandbox[7]、JSand[8]、Cujo[9]、Zozzle[10]、Prophiler[11]等多種 JavaScript代碼分析工具,被廣泛用于不同格式的文檔中嵌入式JavaScript代碼的檢測,在此基礎(chǔ)上形成了MalOffice[12]、ShellOS[13]、MDscan[14]等檢測系統(tǒng)。然而,利用虛擬環(huán)境對JavaScript進(jìn)行分析的時間開銷和計算開銷都較高,且攻擊者可以利用不同的JavaScript引擎或不同的閱讀器版本等來繞過檢測。為了降低開銷,研究人員逐漸關(guān)注于對JavaScript代碼的靜態(tài)詞匯分析,通過解析器,對PDF文檔中的JavaScript進(jìn)行定位和提取,隨后利用分類器進(jìn)行學(xué)習(xí),形成檢測模型,典型的代表有PJScan[15]等。

        然而,在針對PDF文件中JavaScript代碼特征的分析過程中,由于存在壓縮、加密、混淆等技術(shù)手段,JavaScript代碼的定位、抽取及解析始終具有較大難度,因此,針對元數(shù)據(jù)[16-17]的分析方法應(yīng)運(yùn)而生。基于元數(shù)據(jù)特征檢測的特征抽取過程一般較為簡單,且不需要對JavaScript進(jìn)行解析和執(zhí)行,其關(guān)注的特征主要有內(nèi)容特征和結(jié)構(gòu)特征2類。內(nèi)容特征主要關(guān)注PDF文檔中的重要關(guān)鍵字,如/JS、/JavaScrip以及字體對象、流對象長度等一系列特征,其主要不足在于無法抽取出流對象中的數(shù)據(jù),而流對象數(shù)據(jù)又容易被攻擊者用來隱藏惡意內(nèi)容,從而繞過此類檢測。另一類利用PDF文檔結(jié)構(gòu)特征的檢測方法[18]在檢測率和應(yīng)對新型威脅上均有進(jìn)一步的提高,然而已被證明易被攻擊者通過在正常文檔中嵌入惡意內(nèi)容來繞過[19]。

        盡管通過對元數(shù)據(jù)的分析建立起來的檢測模型的檢測率及效率均較高,但其頑健性方面存在明顯的不足,因而研究又逐漸轉(zhuǎn)向PDF文檔中的惡意代碼。最新的進(jìn)展主要有:通過在PDF文檔中嵌入環(huán)境監(jiān)控代碼對PDF文檔的動態(tài)行為進(jìn)行監(jiān)控[20];根據(jù)PDF文檔運(yùn)行過程中的API調(diào)用信息作為特征對PDF文檔進(jìn)行分類檢測[21];利用沙箱來增強(qiáng)打開PDF文檔從而保護(hù)系統(tǒng)的安全性等[22]。此后,Maiorca等[23]提出了結(jié)合PDF文檔的結(jié)構(gòu)和內(nèi)容特征來對惡意 PDF文檔進(jìn)行檢測,在一定程度上增強(qiáng)了純靜態(tài)的結(jié)構(gòu)特征分析所帶來的頑健性弱的問題,但由于采用的仍是靜態(tài)分析,因此在對抗模擬攻擊方面依然存在頑健性不足的問題。

        3 基于混合特征的惡意PDF文檔檢測方法

        通過對現(xiàn)有技術(shù)的分析,本文發(fā)現(xiàn)近幾年對于PDF文檔檢測的研究大部分集中于檢測其中的JavaScript代碼以及相應(yīng)的結(jié)構(gòu)和內(nèi)容元數(shù)據(jù)。

        針對JavaScript代碼的檢測頑健性較強(qiáng),但存在定位和解析JavaScript困難、分析代價較高、難以應(yīng)對其他類型的安全威脅等問題;針對結(jié)構(gòu)和內(nèi)容元數(shù)據(jù)的分析檢測效率和檢測率較高,然而容易被攻擊者設(shè)計特定文檔而繞過,頑健性較差。

        為了克服這些缺點(diǎn),本文提出了一種基于混合特征的惡意PDF文檔檢測方法,在現(xiàn)有研究的基礎(chǔ)上,著重關(guān)注惡意PDF文檔的常規(guī)特征、結(jié)構(gòu)特征及其API調(diào)用特征。方案框架如圖1所示。

        圖1 基于混合特征的惡意PDF文檔檢測方案框架

        本文以PDFiD和PhoneyPDF這2款工具為基礎(chǔ)構(gòu)建了文檔解析器,采用動靜態(tài)分析相結(jié)合的方法,從文檔中提取內(nèi)容信息和結(jié)構(gòu)信息,并將JavaScript特征轉(zhuǎn)化為對應(yīng)的 API調(diào)用特征從而解決JavaScript代碼定位難、代碼混淆等問題,并通過聚類獲得最能表征惡意 PDF文檔的結(jié)構(gòu)特征及API調(diào)用特征,去除了大量冗余信息,并將此特征集合與常規(guī)特征相結(jié)合作為混合特征向量用于分類器的訓(xùn)練學(xué)習(xí),最終得到檢測模型。

        3.1 混合特征設(shè)計

        由于單一特征存在頑健性差等問題,因此本文設(shè)計了一種混合特征,用以表征 PDF文檔的惡意性,具體可分為常規(guī)特征、結(jié)構(gòu)特征、API調(diào)用特征3類,下面進(jìn)行詳細(xì)介紹。

        3.1.1 常規(guī)特征

        通過對 PDF文檔的分析,結(jié)合已有的在惡意PDF文檔檢測領(lǐng)域的相關(guān)經(jīng)驗結(jié)果,本文選取了以下7個重要特征作為常規(guī)特征,包括文件大小、文件版本號、包含JavaScript代碼的對象數(shù)量、嵌入的文件數(shù)量、不完整對象的數(shù)量、交叉引用表的數(shù)量、特殊操作函數(shù)(如OpenAction、Launch等)數(shù)量。這些常規(guī)特征與PDF文檔的安全相關(guān)性如表1所示。

        表1 常規(guī)特征與PDF文檔的安全相關(guān)性

        這些單一特征并不足以用來標(biāo)識 PDF文檔的惡意性,但它們結(jié)合起來可以作為PDF文檔的一個整體概述。例如,根據(jù)對大量文檔的分析,惡意PDF文檔的大小通常小于正常PDF文檔的大小,因為一般惡意 PDF文檔并不包含有用的文本、圖片等內(nèi)容,且文件越小,其感染效率就越高;同樣,對象、交叉引用表通常用于隱藏文檔中的惡意內(nèi)容,與文檔的惡意性存在一定的相關(guān)性;此外,JavaScript代碼及特殊操作函數(shù)等是絕大部分惡意 PDF文檔完成其惡意目的的必備內(nèi)容,也能在一定程度上反映文檔的惡意性。因此,這些特征構(gòu)成了PDF文檔的常規(guī)特征,其可以在一定程度上表征文檔的惡意性,但并非充分條件。

        3.1.2 結(jié)構(gòu)特征

        利用結(jié)構(gòu)特征來表征PDF文檔的惡意性,最早由?rndic等[18]提出,其方案以惡意PDF文檔在結(jié)構(gòu)上與正常PDF文檔存在的差異性為基礎(chǔ),設(shè)計了一種結(jié)構(gòu)路徑用于表征PDF文檔的結(jié)構(gòu)特征,其主要問題在于特征復(fù)雜,且不利于進(jìn)一步分析。因此本文設(shè)計了一種更為簡便的且更具有可解釋性的結(jié)構(gòu)特征。不同類別的文檔,其文檔結(jié)構(gòu)上的關(guān)鍵字存在一定的差異,當(dāng)一個關(guān)鍵字在正常樣本或惡意樣本中出現(xiàn)的頻率較大時,其可在一定程度上反映文檔的實際類別。因此,本文在對PDF文檔進(jìn)行解析并獲取其結(jié)構(gòu)關(guān)鍵字及其頻率的基礎(chǔ)上,設(shè)計了一種結(jié)構(gòu)特征提取算法對所提取出的關(guān)鍵字進(jìn)行聚類,從中篩選得到出現(xiàn)頻率較高的關(guān)鍵字作為結(jié)構(gòu)特征,從而以盡可能小的特征數(shù)量來最大程度地表征PDF文檔。算法具體描述如下。

        本文利用上述算法,分別對正常PDF集合和惡意PDF集合的特征關(guān)鍵字集合進(jìn)行提取,最終得到正常樣本關(guān)鍵字子集合Kb和惡意樣本關(guān)鍵字子集合Km及其對應(yīng)的出現(xiàn)頻次,分別用以表示正常樣本的結(jié)構(gòu)特征和惡意樣本的結(jié)構(gòu)特征。本算法主要包括 3個步驟,對應(yīng)的復(fù)雜度分別為O(|K||D|)、O(2T|K|)、O(|K|),其中,T為K-means算法中的迭代次數(shù),由于迭代次數(shù)遠(yuǎn)小于樣本數(shù)量,因此算法復(fù)雜度為O(|K||D|)。

        結(jié)構(gòu)特征集合中的關(guān)鍵字?jǐn)?shù)量主要取決于樣本集合和聚類結(jié)果。文檔的結(jié)構(gòu)特征通常與文件執(zhí)行的特征操作相關(guān)聯(lián),并且主要通過關(guān)鍵字來執(zhí)行對應(yīng)操作,因此選擇特征關(guān)鍵字來表示文檔的結(jié)構(gòu)特征是可行的。例如,/Font是正常樣本中的特征關(guān)鍵字,主要是因為此關(guān)鍵字與文檔中的字體相關(guān)聯(lián),出現(xiàn)此關(guān)鍵字說明樣本內(nèi)容中會顯示不同字體,對于正常樣本來說這是合理的,但惡意文檔一般不包含具體內(nèi)容,以輕便簡單為主,因此一般不出現(xiàn)此關(guān)鍵字;又如,/OpenAction是惡意樣本中的特征關(guān)鍵字,其主要功能是執(zhí)行對象中的打開操作,常用來執(zhí)行JavaScript代碼,這與惡意樣本中有90%以上的樣本包含JavaScript相吻合[24]。

        通過聚類,利用文檔結(jié)構(gòu)中的關(guān)鍵字特征來表征其結(jié)構(gòu)特征,極大地降低了特征向量的復(fù)雜度,并且由于排除了大量冗余關(guān)鍵字,從而加大了攻擊者在正常文檔結(jié)構(gòu)基礎(chǔ)上構(gòu)建惡意文檔從而繞過檢測的難度。

        3.1.3 API調(diào)用特征

        惡意 PDF文檔中所包含的惡意代碼往往都會經(jīng)過復(fù)雜的混淆和隱藏,直接進(jìn)行靜態(tài)分析難以解決代碼定位難與代碼混淆等問題,為此,本文基于API調(diào)用與惡意代碼執(zhí)行過程的相關(guān)性,利用API調(diào)用特征來間接地表征 JavaScript代碼的執(zhí)行特征。現(xiàn)有的針對惡意PDF文檔中JavaScript代碼的分析中,最常見的是采用SpiderMonkey等工具進(jìn)行分析,這些工具最大的不足在于其識別的標(biāo)準(zhǔn)為JavaScript 通用標(biāo)準(zhǔn),對于PDF文檔中特定JavaScript代碼(如 app.doc.getAnnots、app. plugIns.length等)無法有效識別。本文采用了PhoneyPDF這一分析框架對PDF的內(nèi)嵌JavaScript執(zhí)行過程進(jìn)行分析,它是一種基于Adobe DOM仿真的分析框架,可以執(zhí)行并分析PDF中所使用的各類JavaScript代碼。通過對其執(zhí)行過程中的API調(diào)用進(jìn)行抽取,設(shè)計了一種特征API調(diào)用提取算法對關(guān)鍵API調(diào)用進(jìn)行了選擇。

        記R為Acrobat PDF標(biāo)準(zhǔn)中所有可調(diào)用的API函數(shù)集合,N為其元素個數(shù)。本文的任務(wù)即從全集R中篩選出對 PDF文檔標(biāo)簽具有表征價值的 API函數(shù)子集合。

        對于任意的r∈R,定義θ=∑φi為其有效性權(quán)值,則有

        有效性權(quán)值θ表示對應(yīng)的API函數(shù)在惡意樣本和正常樣本中出現(xiàn)的比率,θ越大,說明其在惡意文檔中出現(xiàn)的可能性越大,可作為表征惡意文檔的特征;反之,θ越小,則可將其作為正常文檔的特征。

        本文利用K-means算法,根據(jù)有效性權(quán)值θ,計算對應(yīng)的歐氏距離,對訓(xùn)練樣本的API調(diào)用進(jìn)行聚類,找到閾值t2并將其分為2個簇(k=2),對應(yīng)的子集Rt={rj||θj|> t2}則為對應(yīng)的特征 API集合。算法具體描述如下。

        在特征API調(diào)用提取算法中,K-means算法的迭代輪數(shù)遠(yuǎn)小于本文的樣本集合大小,因此本文算法復(fù)雜度為O(|R||D|)。為了提升算法的效率,本文使用樣本中出現(xiàn)的所有 API調(diào)用集合來代替AcrobatPDF標(biāo)準(zhǔn)中可調(diào)用API集合R,從而在一定程度上降低了算法的復(fù)雜度。

        3.2 分類檢測算法

        為了對訓(xùn)練集中的良性和惡意樣本進(jìn)行學(xué)習(xí),建立模型并利用測試集進(jìn)一步優(yōu)化和調(diào)整模型,本文采用半監(jiān)督學(xué)習(xí)來建立檢測模型。由于本文所設(shè)計的混合特征在數(shù)據(jù)結(jié)構(gòu)上存在差異,因此需要選擇一種能適應(yīng)多種不同數(shù)據(jù)結(jié)構(gòu)的分類算法。決策樹算法可以較好地解決此問題,然而決策樹存在容易導(dǎo)致過擬合、泛化效果較差等問題,因此,本文采用隨機(jī)森林算法。隨機(jī)森林算法是對決策樹算法的一個集成和改進(jìn),它在以決策樹為基學(xué)習(xí)器構(gòu)建Bagging集成的基礎(chǔ)上,進(jìn)一步在決策樹的訓(xùn)練過程中引入了隨機(jī)屬性選擇,能較好地應(yīng)對本文所設(shè)計混合特征存在的異構(gòu)性,且計算開銷小、集成的泛化性較好。最終,選擇了10棵樹的隨機(jī)森林算法進(jìn)行分類器的構(gòu)建,并采用十折交叉驗證過程。

        3.3 方法評價指標(biāo)

        評價本文方法的功能指標(biāo)主要是對惡意 PDF文檔的檢測效果進(jìn)行評價,惡意文檔分類結(jié)果混淆矩陣定義如表2所示。

        表2 惡意文檔分類結(jié)果混淆矩陣

        表2中,DMM'表示惡意PDF文檔被正確檢測為惡意的樣本數(shù)量;DMB'表示惡意PDF文檔被錯誤檢測為良性的樣本數(shù)量;DBM'表示良性PDF文檔被錯誤檢測為惡意的樣本數(shù)量,DBB'表示良性PDF文檔被正確檢測為良性的樣本數(shù)量。對應(yīng)的幾項評價指標(biāo)如下。

        1)真正類率(TPR, true positive rate),又稱為檢測率,表示被正確檢測為惡意的惡意PDF文檔數(shù)占惡意PDF文檔總數(shù)的比率,計算式為

        2)假正類率(FPR, false positive rate),又叫誤報率,表示被錯誤檢測為良性的惡意PDF文檔數(shù)占惡意PDF文檔總數(shù)的比率,計算式為

        3)準(zhǔn)確率(accuracy),表示檢測結(jié)果是正確的樣本數(shù)占樣本總數(shù)的比率,計算式為

        4 實驗設(shè)計與結(jié)果分析

        4.1 實驗樣本集合與環(huán)境配置

        在測試實驗中,本文構(gòu)建了5 928個惡意PDF文檔以及5 881個良性PDF文檔的實驗樣本集合。其中,惡意樣本主要在VirusTotal上收集而來,類別如表 3所示,包括近幾年來 Adobe Reader及Acrobat的高危漏洞以及2004—2011年用戶提交到VirusTotal的未經(jīng)過鑒別分類的惡意PDF文檔樣本。這部分未鑒別的樣本涵蓋了常見的利用惡意 PDF文檔進(jìn)行攻擊的多種類型,如內(nèi)嵌代碼、內(nèi)嵌其他惡意文件等。

        表3 惡意PDF文檔樣本類別

        正常樣本主要通過在Google、Yahoo上下載得到,包括論文、銷售廣告、報告等PDF文檔,并通過卡巴斯基殺毒軟件檢測為正常樣本。在此需要強(qiáng)調(diào)的是,本文對正常樣本集合進(jìn)行了控制,著重增加了包含3D圖像、flash、視頻、JavaScript等內(nèi)容的正常PDF樣本,保證了正常樣本集合的全面性,降低了由于樣本不平衡性所導(dǎo)致的結(jié)果誤差。正常PDF樣本類別如表4所示。

        表4 正常PDF文檔樣本類別

        本文隨機(jī)地將這些數(shù)據(jù)分為訓(xùn)練樣本以及測試樣本,其中,訓(xùn)練樣本共包括3 949個惡意PDF文檔和3 916個良性PDF文檔;測試樣本包括1 979個惡意樣本和1 965個良性樣本。實驗的軟硬件環(huán)境配置如表5所示。

        表5 實驗環(huán)境配置

        4.2 檢測性能測試

        為對本文所設(shè)計方案的檢測性能進(jìn)行驗證,在訓(xùn)練集(3 949個惡意PDF文檔和3 916個良性PDF文檔)的基礎(chǔ)上,對本文的模型進(jìn)行了訓(xùn)練,從而建立檢測模型,并對測試集(1 979個惡意樣本和1 965個良性樣本)進(jìn)行測試。最終將測試結(jié)果與現(xiàn)有的 3種最新公開的惡意 PDF檢測工具(PJScan、PDFRate、Wepawet)相比較。由于 PJScan使用的是單分類SVM算法,其訓(xùn)練數(shù)據(jù)不包括正常樣本,因此本文僅使用訓(xùn)練集以及測試集中的惡意樣本作為PJScan的訓(xùn)練集和測試集,從而進(jìn)行對比實驗。而另外2款公開的工具均為在線服務(wù),其中,PDFRate使用了5 000個惡意PDF樣本(收集于 Contagio)和 5 000個正常樣本進(jìn)行訓(xùn)練,而Wepawet的訓(xùn)練數(shù)據(jù)集及大小均未知,因此,想要設(shè)計實驗對這2款系統(tǒng)進(jìn)行相同的準(zhǔn)確訓(xùn)練并不可行。但通過比較這3類系統(tǒng)與本文方法對測試樣本的檢測結(jié)果,可以在一定程度上反映本系統(tǒng)的檢測性能。

        4種方法對測試集最終的檢測結(jié)果如表6所示。本文主要從檢測率(真正類率)、誤報率(假正類率)和準(zhǔn)確率這3個方面對模型的檢測性能進(jìn)行比較,表6中括號內(nèi)為標(biāo)準(zhǔn)差。

        表6 4種方法檢測效果對比

        在實驗過程中發(fā)現(xiàn),所有不包含JavaScript代碼的文檔均會被PJScan系統(tǒng)分類為正常文檔,這是由于PJScan系統(tǒng)僅針對文檔中的惡意JavaScript代碼進(jìn)行檢測,但這顯然是不合理的。此外,Wepawet系統(tǒng)在解析結(jié)構(gòu)不完整的PDF樣本時,會出現(xiàn)分析出錯的情況,這是由于其沒有實現(xiàn)全部Adobe的規(guī)范,而僅是模擬嵌入式JavaScript代碼和可執(zhí)行文件的運(yùn)行結(jié)果。

        實驗結(jié)果表明,本文方法在檢測性能上明顯優(yōu)于 PJScan和 Wepawet,PJScan的誤報率最低,但其檢測率相較于本文方法而言差距較大;Wepawet的檢測率及誤報率均弱于本文方法;PDFRate在檢測率方面與本文方法較為接近,而在誤報率方面則存在一定的弱勢。總地來說,本文方法在檢測性能上要優(yōu)于其他3類工具。

        為對本文檢測模型的檢測效率進(jìn)行進(jìn)一步的分析,將本文方法的單個文件的平均檢測時間與其他已公開該項數(shù)據(jù)的方案進(jìn)行對比,結(jié)果如表7所示,其中,本文方法以及PJScan的數(shù)據(jù)為實驗得出,其他方案的數(shù)值均為從文獻(xiàn)[13-14,22]中獲得。此外,由于Wepawet以及PDFRate為在線服務(wù),本文無法得到其準(zhǔn)確檢測時間,并且在公開文獻(xiàn)中也無法找到相關(guān)描述,因此本文并未對其進(jìn)行分析。

        表7 幾種不同方法檢測效率對比

        本文方法針對正常文檔的平均檢測耗時為650 ms,針對惡意文檔的平均檢測耗時為1 200 ms,可以滿足終端機(jī)器上的實時檢測需求。在實驗過程中發(fā)現(xiàn),正常文檔的檢測耗時主要取決于文檔的解析過程,這是由于正常文檔往往包含豐富的內(nèi)容(文本、圖片、表格),而僅小部分文檔包含JavaScript代碼,其文檔解析過程耗時較長;惡意文檔一般只包含執(zhí)行漏洞或惡意代碼的對象,其具體頁面內(nèi)容較少,因此文檔解析過程較快,其檢測耗時主要取決于執(zhí)行JavaScript的時間。

        可以看到,檢測效率主要與采用的分析類型有關(guān),總體趨勢為純靜態(tài)分析<動靜態(tài)混合分析<純動態(tài)分析。PJScan和基于結(jié)構(gòu)路徑的方法在檢測耗時上比本文方法更優(yōu),但本文方法使用了模擬Adobe DOM,可以對PDF文檔進(jìn)行更全面的分析。此外,與同類型的MDScan相比,本文方法的檢測耗時更少,主要原因在于本文方法間接地使用特征API調(diào)用來表征JavaScript代碼特征,而MDScan則是對Shellcode進(jìn)行進(jìn)一步的執(zhí)行與分析。

        4.3 抗攻擊測試

        通過對本文設(shè)計的方案進(jìn)行分析不難發(fā)現(xiàn),攻擊者要想攻擊本文提出的檢測系統(tǒng),主要可從3個方面進(jìn)行:1)徹底研究本文系統(tǒng)的檢測框架,設(shè)計出本文系統(tǒng)無法提取到的惡意特征;2)使用惡意樣本破壞本文的數(shù)據(jù)集,干擾模型的建立過程;3)分析本文選取的檢測特征,進(jìn)而操控樣本對應(yīng)的特征,最終找到可繞過檢測的惡意樣本。這3種方法均可實現(xiàn)對本文系統(tǒng)進(jìn)行攻擊,但很明顯,前兩種方法十分復(fù)雜,且需要操控本文系統(tǒng)的數(shù)據(jù)集,因而不易實現(xiàn);而第三種方法則僅需要攻擊者不斷修改并提交自制惡意樣本到本系統(tǒng)進(jìn)行檢測,直至被誤報為正常樣本,即攻擊成功。

        為測試本文系統(tǒng)對上述第三種攻擊手段的防御能力,本文選擇了基于特征加法的模擬攻擊作為對抗模型。模擬攻擊是指通過微弱地改變文件的整體結(jié)構(gòu),從而將惡意內(nèi)容嵌入正常PDF文檔中,形成相應(yīng)的惡意PDF文檔,這種攻擊模型已經(jīng)被證明能十分簡便有效地逃避基于結(jié)構(gòu)路徑檢測系統(tǒng)。為簡化實驗過程,本文在其思想的基礎(chǔ)上,通過直接對已抽取出的惡意PDF文檔特征向量進(jìn)行調(diào)整,在其特征向量中加入正常PDF文檔的相關(guān)特征,從而模擬攻擊過程。此過程可以簡單地理解為,通過不斷增加惡意文檔的正常性,來引起檢測模型的誤報,從而達(dá)到逃避檢測的目的。

        嵌入的良性特征主要從正常樣本特征集合Kb和Rb中選取。Kb和Rb為利用本文的特征提取算法對樣本集合進(jìn)行特征提取得到的集合。由于一般情況下,正常樣本不包含JavaScript代碼,嵌入對應(yīng)的API調(diào)用特征,可能導(dǎo)致文檔惡意性的增加,因此,本文僅選擇正常樣本的關(guān)鍵字特征進(jìn)行嵌入。定義特征關(guān)鍵字在樣本集合中出現(xiàn)的概率p,平均每個樣本中出現(xiàn)的次數(shù)為c,則特征關(guān)鍵字在樣本集合中出現(xiàn)的期望值e可表示為

        特征關(guān)鍵字的良性表征度γ為

        其中,eb、em分別表示特征關(guān)鍵字在正常樣本和惡意樣本中出現(xiàn)的期望值。

        為最大限度地考量模型應(yīng)對模擬攻擊的能力,本文根據(jù)特征關(guān)鍵字的良性表征度,選取了最能表征良性PDF文檔的20個特征,具體描述如表8所示。

        表8 嵌入的良性特征關(guān)鍵字

        從表8可以看到,根據(jù)本文的選取原則,得到的特征關(guān)鍵字大部分與 PDF文檔中具體內(nèi)容的展示、存儲相關(guān),如提綱、顏色、字體、過濾器等,這與正常PDF文檔往往比惡意PDF文檔包含更多的實質(zhì)性內(nèi)容(如文字、圖片、表格等)是一致的。

        本文以嵌入的特征數(shù)量為變量,在已被本文系統(tǒng)正確檢測為惡意的PDF文檔中,根據(jù)嵌入良性特征的數(shù)量,將惡意PDF文檔特征向量中對應(yīng)值修改為正常樣本中出現(xiàn)的取整期望值。例如,在惡意PDF文檔原特征向量中,上述20項特征的值所組成的向量為(0,0,0,0,1,1,0,1,0,1,0,0,0,0,2,0,0,1,3,0),則本文的操作為當(dāng)嵌入正常樣本數(shù)量為 20時,惡意 PDF文檔特征中上述 20項特征值將被修改為(3,4,5,1,15,15,2,14,1,15,6,27,4,4,32,5,22,24,41,12)。

        通過這種方式,近似地模擬攻擊者修改后的惡意PDF文檔的特征向量,并對所構(gòu)建的惡意特征向量進(jìn)行檢測。實驗重復(fù)此過程5次,統(tǒng)計其每次攻擊成功的樣本數(shù)量并計算其繞過本文檢測系統(tǒng)的平均成功率,實驗結(jié)果如圖2所示。

        圖2 基于特征加法模擬攻擊的成功率曲線

        從圖2可以看到,隨著添加良性特征數(shù)量的增多,攻擊成功的樣本數(shù)量呈上升趨勢,并最后趨于平穩(wěn),其中,成功率峰值為1.29%,并在添加的良性特征數(shù)量超過 16個后趨于平緩。一般地,特征向量中增加良性特征的數(shù)量越多,基于特征加法的模擬攻擊成功率就會越高;所添加的良性特征越有代表性,則其攻擊成功率越高。而即便選擇了 20個最具有代表性的良性特征進(jìn)行嵌入時,本文系統(tǒng)在應(yīng)對基于特征加法的模擬攻擊的檢測率仍能高達(dá)98.71%,這充分證明了所提取的混合特征的頑健性。

        事實上,在現(xiàn)實攻擊中,攻擊者并不清楚本文的訓(xùn)練數(shù)據(jù)集以及所選取的特征,因此,其攻擊過程遠(yuǎn)比上述模擬攻擊復(fù)雜。攻擊者需要對系統(tǒng)內(nèi)部參數(shù)進(jìn)行逆向工程,例如,通過設(shè)計梯度下降攻擊來計算逃避模式,構(gòu)建系統(tǒng)的代理副本等。為此,攻擊者需要收集數(shù)據(jù)集,并且復(fù)制本文的提取特征過程,最終構(gòu)建一個模擬的代理分類器。這種攻擊雖然可行,但其攻擊過程較復(fù)雜,且攻擊代價較高。

        4.4 實驗局限性

        實驗證明,本文方法與近幾年提出的3類公開的檢測系統(tǒng)相比,檢測率、誤報率均有一定的提升,且在檢測效率上能滿足終端用戶實時檢測的需求。此外,通過設(shè)計基于特征加法的模擬攻擊實驗,證明了本方案所提取混合特征的頑健性。但是本文的實驗仍然存在一定的不足,主要是在驗證和研究良性特征數(shù)量與混合特征的頑健性、系統(tǒng)的檢測率之間的聯(lián)系缺乏實驗證明。理論上,增加混合特征向量中良性特征的數(shù)量,可以有效提高檢測準(zhǔn)確率;但另一方面,良性特征的增多會導(dǎo)致逃避攻擊的成功率增高,原因在于攻擊者通過在惡意文檔中添加良性特征可能會提高分類器錯誤分類的概率。此外,由于本文采用了聚類算法對特征進(jìn)行篩選,進(jìn)而構(gòu)建了特征向量,特征數(shù)量取決于聚類過程,因此未設(shè)計實驗對特征數(shù)量與檢測準(zhǔn)確率和頑健性之間的關(guān)系進(jìn)行分析,而只是進(jìn)行了定性分析,但特征數(shù)量是否最優(yōu)、是否會導(dǎo)致過擬合,仍需要進(jìn)一步的研究與討論。

        5 結(jié)束語

        本文提出了一種基于混合特征的惡意 PDF文檔檢測方法,通過對文檔進(jìn)行動靜態(tài)分析,對文檔基本信息、結(jié)構(gòu)信息和API調(diào)用信息進(jìn)行聚合,抽取出表征文檔安全性的混合特征,并利用隨機(jī)森林算法構(gòu)建檢測模型,在一定程度上解決了現(xiàn)有檢測模型易被逃避檢測的缺陷,提高了模型的頑健性。但本文方法還存在一些有待改進(jìn)的地方:1)所選取的3類特征相互之間無權(quán)重關(guān)系,而實際上API調(diào)用特征往往更能反映文檔的安全性,其權(quán)重還需通過實驗進(jìn)一步研究與討論;2)抗攻擊實驗中未對特征數(shù)量與檢測模型的準(zhǔn)確性、頑健性之間的相互關(guān)系進(jìn)行分析,無法確定模型選取的特征數(shù)量是否最優(yōu)、是否會導(dǎo)致過擬合;3)模型的檢測效果對訓(xùn)練數(shù)據(jù)的質(zhì)量較為敏感,且存在部分無法解析的文檔,需設(shè)計額外的操作進(jìn)行篩選和剔除,還需進(jìn)一步對解析器進(jìn)行改進(jìn)和優(yōu)化。

        猜你喜歡
        特征分析檢測
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        隱蔽失效適航要求符合性驗證分析
        如何表達(dá)“特征”
        不忠誠的四個特征
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        抓住特征巧觀察
        電力系統(tǒng)及其自動化發(fā)展趨勢分析
        小波變換在PCB缺陷檢測中的應(yīng)用
        亚洲综合一区无码精品| 国产av剧情一区二区三区| 成人麻豆日韩在无码视频| 熟女人妇交换俱乐部| 亚洲欧洲日产国码无码AV一| 日本国主产一区二区三区在线观看| 天堂av网手机线上天堂| 国产精品美女久久久久av超清| 日本亚洲国产一区二区三区| 大屁股少妇一区二区无码| av在线一区二区三区不卡| 99久久精品免费看国产| 亚洲精品无码久久久久av麻豆| 久久久久久99精品| 青青草久久久亚洲一区| 激情综合色综合啪啪开心| 国产自偷自偷免费一区| 久草热这里只有精品在线| 青青草视频在线播放观看| 国产精品无码素人福利不卡| 3d动漫精品啪啪一区二区下载| 无码AV无码免费一区二区| 亚洲熟妇av一区二区在线观看| 热久久美女精品天天吊色| 国产亚洲蜜芽精品久久| 国产av一区二区三区国产福利 | 无遮挡十八禁在线视频国产制服网站| 国产99视频一区二区三区| 欧美黑人巨大videos精品| 亚洲男人的天堂网站| 白丝美女被狂躁免费视频网站| 久久精品亚洲一区二区三区画质| 无码熟妇人妻av影音先锋| 无码丰满少妇2在线观看| 一区二区三区免费观看在线视频| 少妇人妻中文久久综合| 久久露脸国产精品| 国内精品国产三级国产av另类| 中文字幕日韩精品永久在线| 国产午夜福利精品一区二区三区| 久久国产A√无码专区亚洲|