摘" 要:便捷式文檔格式(PDF)是全球數(shù)據(jù)交換中廣泛使用的格式之一,人們對(duì)其有很高的信任度。然而,近年來(lái)不法分子利用PDF文檔進(jìn)行惡意網(wǎng)絡(luò)攻擊的情況越來(lái)越嚴(yán)重。隨著黑客技術(shù)的進(jìn)步,他們也逐漸采用一些逃避檢測(cè)的方法,使得常見(jiàn)的學(xué)習(xí)算法難以檢測(cè)到這種惡意文件。針對(duì)這些“更聰明”的惡意PDF攻擊樣本,對(duì)PDF文檔的特性進(jìn)行了分析,提取了25維特征,并應(yīng)用調(diào)參后的Adaboost算法訓(xùn)練模型,準(zhǔn)確率達(dá)到99.63%,優(yōu)于同領(lǐng)域的其他研究成果。
關(guān)鍵詞:PDF;逃避檢測(cè);Adaboost算法;網(wǎng)絡(luò)攻擊
中圖分類(lèi)號(hào):TP309" 文獻(xiàn)標(biāo)識(shí)碼:A" 文章編號(hào):2096-4706(2024)10-0007-06
PDF Document Detection for Malicious Evasion Behavior
LI Dongshuai, SHANG Peiwen
(School of Electronics amp; Information Engineering, Liaoning University of Technology, Jinzhou" 121001, China)
Abstract: The Portable Document Format (PDF) is one of the widely used formats in global data exchange, and people have a high level of trust in it. However, in recent years, the situation of criminals using PDF documents for malicious network attacks has become increasingly serious. With the advancement of hacker technology, they are gradually adopting methods to evade detection, making it more difficult for common learning algorithms to detect such malicious files. In response to these “smarter” malicious PDF attack samples, an analysis of the characteristics of PDF documents is conducted, and 25-dimensional features are extracted. By applying a finely-tuned Adaboost algorithm for model training, an accuracy rate of 99.63% is achieved, surpassing other research achievements in the same field.
Keywords: PDF; evading detection; Adaboost algorithm; network attack
0" 引" 言
便捷式文檔格式(Portable Document Format, PDF)是全球數(shù)據(jù)交換中廣泛使用的格式之一。然而,不法分子利用PDF文檔進(jìn)行惡意網(wǎng)絡(luò)攻擊的情況越來(lái)越嚴(yán)重。惡意PDF是指設(shè)計(jì)用于進(jìn)行惡意活動(dòng)的PDF文件,它包含了惡意代碼或利用漏洞的文件。惡意PDF通常通過(guò)電子郵件、社會(huì)工程等方式傳播,并誘使用戶(hù)打開(kāi)PDF文檔或點(diǎn)擊文檔中的鏈接。一旦用戶(hù)執(zhí)行惡意PDF文檔中的操作,就可能導(dǎo)致系統(tǒng)被感染、數(shù)據(jù)泄露或其他安全問(wèn)題。PDF作為現(xiàn)今用戶(hù)量極大的辦公軟件,常被黑客們用來(lái)作為APT(Advanced Persistent Threat)實(shí)施攻擊的第一步,成為APT攻擊的重要載體。在過(guò)去的幾年中,Locky勒索軟件曾經(jīng)通過(guò)釣魚(yú)郵件傳播,并使用惡意PDF文檔作為附件。用戶(hù)打開(kāi)這些PDF文件后,文檔會(huì)解密惡意代碼并將其運(yùn)行,導(dǎo)致用戶(hù)的文件被加密并要求支付贖金才能解密。在暗網(wǎng)上,有人出售定制的惡意PDF文檔,這些文檔可以用于各種攻擊,如釣魚(yú)、遠(yuǎn)程代碼執(zhí)行等。攻擊者可以購(gòu)買(mǎi)這些惡意PDF文檔,然后將它們用于自己的攻擊活動(dòng)。由此可見(jiàn),應(yīng)該及時(shí)預(yù)防和應(yīng)對(duì)此類(lèi)危害[1]。
隨著時(shí)間的推移,惡意PDF檢測(cè)技術(shù)已經(jīng)得到改進(jìn)。過(guò)去,基于簽名的檢測(cè)是通常采用的方法,通過(guò)檢查文件的元數(shù)據(jù)和有效載荷,并嘗試將其與預(yù)定義的惡意簽名/模式集相匹配來(lái)檢測(cè)惡意軟件。然而,這種方法存在一些局限性,例如黑客們可以通過(guò)混淆惡意內(nèi)容來(lái)逃避檢測(cè),以避免模式匹配。此外,簽名數(shù)據(jù)庫(kù)必須頻繁更新,以便及時(shí)識(shí)別并抵御新出現(xiàn)的惡意軟件。另一種技術(shù)是使用基于行為的檢測(cè),可將代碼在沙箱中運(yùn)行并監(jiān)控行為,包括初始化進(jìn)程、API調(diào)用、CPU和內(nèi)存影響,以確認(rèn)程序是良性的還是惡意的。然而,基于行為的分析也有一些無(wú)法檢測(cè)到惡意軟件的局限性,因?yàn)楹诳烷_(kāi)始使用一些逃避技術(shù),例如,一些惡意軟件使用延時(shí)方法,在惡意內(nèi)容被歸類(lèi)為良性后立即延遲其執(zhí)行;其他惡意軟件具有一些高級(jí)功能,可以檢測(cè)到沙盒環(huán)境的存在,從而一直保持空閑狀態(tài),直到它被發(fā)布到生產(chǎn)環(huán)境[2]。
要應(yīng)對(duì)惡意PDF的威脅,需要開(kāi)發(fā)新的、更加高效和智能的檢測(cè)和防御技術(shù)。為了解決傳統(tǒng)方法存在的局限性,近年來(lái)研究者們開(kāi)始使用機(jī)器學(xué)習(xí)分類(lèi)技術(shù)來(lái)解決惡意PDF檢測(cè)問(wèn)題。使用機(jī)器學(xué)習(xí)的優(yōu)勢(shì)在于,可以通過(guò)訓(xùn)練特定數(shù)據(jù)集并提取數(shù)據(jù)特征來(lái)做出決策,從而確定文件是惡意的還是良性的。通過(guò)使用機(jī)器學(xué)習(xí),可以讓計(jì)算機(jī)自動(dòng)學(xué)習(xí)和識(shí)別特定模式或特征與傳統(tǒng)的基于簽名和規(guī)則的檢測(cè)方法相比,機(jī)器學(xué)習(xí)能夠提供更準(zhǔn)確、更快速和更智能的檢測(cè)和識(shí)別方式。
然而,針對(duì)這些基于機(jī)器學(xué)習(xí)的檢測(cè)器,黑客們也會(huì)逃避每個(gè)類(lèi)中發(fā)現(xiàn)的共同顯著特征,從而繞過(guò)檢測(cè)器的防御。這使得它們更難被常見(jiàn)的學(xué)習(xí)算法檢測(cè)到。這將研究人員在將惡意的PDF文件與正常PDF文件分開(kāi)方面遇到了困難。
本文提出了一種新的PDF惡意軟件檢測(cè)方法,是基于機(jī)器學(xué)習(xí)的綜合模型,該方法可以從大量逃避檢測(cè)的PDF文件中識(shí)別出惡意PDF文件。并且在數(shù)據(jù)集Evasive-PDFMal2022上實(shí)現(xiàn)了99.63%的預(yù)測(cè)精度,實(shí)驗(yàn)結(jié)果證明了所提出的PDF檢測(cè)系統(tǒng)的高效性。
1" 相關(guān)工作
針對(duì)傳統(tǒng)基于簽名、規(guī)則匹配的研究在2010年之后已經(jīng)很少,因?yàn)槠浯嬖谥恍┚窒扌?,已不再受到研究的關(guān)注。文獻(xiàn)[3]和文獻(xiàn)[4]提到通過(guò)簽名、規(guī)則匹配檢測(cè)分析惡意樣本,然而,這類(lèi)方法需要大量時(shí)間和資源維護(hù)規(guī)則庫(kù),并且更新周期長(zhǎng),很難及時(shí)處理和應(yīng)對(duì)新出現(xiàn)的惡意文檔。此外,由于規(guī)則制定過(guò)于依賴(lài)專(zhuān)家經(jīng)驗(yàn),往往會(huì)漏報(bào)變異程度較大或是新型的惡意文檔,降低了檢測(cè)的準(zhǔn)確性和可靠性。因此,這些方法在實(shí)際應(yīng)用中的效果有限,需要進(jìn)一步改進(jìn)。
JavaScript是PDF攻擊的主流,絕大部分惡意PDF文檔要完成特殊操作的函數(shù)和JS代碼等要做動(dòng)態(tài)的惡意行為都是在JavaScript中實(shí)現(xiàn)的,所以“/JavaScript”和“/JS”關(guān)鍵字?jǐn)?shù)量越大越可能是惡意的,在2014年至2017年的文獻(xiàn)中,大量文獻(xiàn)僅對(duì)JavaScript進(jìn)行檢測(cè)。文獻(xiàn)[5]基于JavaScript攻擊的PDF樣本文件分析,包括解壓縮與解密各個(gè)PDF文件流對(duì)象,以及對(duì)解密后的JavaScript代碼進(jìn)行完整的預(yù)處理,形成有效的特征向量集,在此基礎(chǔ)上建立規(guī)則特征庫(kù)來(lái)判斷惡意PDF。文獻(xiàn)[6]對(duì)提取到的JavaScript數(shù)據(jù)流進(jìn)行還原處理及反混淆等方法處理,然后對(duì)得到的原始JavaScript代碼提取相應(yīng)的特征向量,再利用支持向量機(jī)訓(xùn)練出的分類(lèi)器進(jìn)行靜態(tài)檢測(cè)。文獻(xiàn)[7]使用N-gram算法提取JavaScript特征向量,使用半監(jiān)督學(xué)習(xí),結(jié)合三種不同的分類(lèi)器,提高了檢測(cè)精度和泛化能力。
近些年檢測(cè)惡意PDF的特征提取工程逐漸完善,部分研究也針對(duì)類(lèi)不平衡的情況做出分析。文獻(xiàn)[8]通過(guò)對(duì)不均衡PDF樣本集的雙向采樣,提出了一種新的方法K-Means,它可以有效地消除欠采樣,再結(jié)合TBSMOTE,將樣本分類(lèi)到均衡狀態(tài),從而提高檢測(cè)效果。文獻(xiàn)[9]提出了一種新的檢測(cè)方法,它利用特征集聚和卷積神經(jīng)網(wǎng)絡(luò)技術(shù),有效地解決了特征維度高、數(shù)據(jù)集樣本少導(dǎo)致模型欠擬合的問(wèn)題,并采用Ward最小方差聚類(lèi)技術(shù)將聚合特征轉(zhuǎn)換為卷積神經(jīng)網(wǎng)絡(luò),從而實(shí)現(xiàn)了對(duì)惡意PDF的準(zhǔn)確檢測(cè)。文獻(xiàn)[10]在針對(duì)對(duì)抗樣本的檢測(cè)上,提出了一種基于文檔圖結(jié)構(gòu)和卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)方法,經(jīng)過(guò)計(jì)算得到圖的拉普拉斯矩陣,并以此作為特征送入CNN分類(lèi)模型進(jìn)行訓(xùn)練,性能優(yōu)于KNN和SVM分類(lèi)模型。文獻(xiàn)[11]中Jiang等人使用小波能量譜基于熵序列提取結(jié)構(gòu)特征以及統(tǒng)計(jì)特征,采用隨機(jī)子采樣策略來(lái)訓(xùn)練多個(gè)子分類(lèi)器。每個(gè)分類(lèi)器都是獨(dú)立的,增強(qiáng)了檢測(cè)時(shí)的泛化能力。使用半監(jiān)督學(xué)習(xí)算法(Semi-SL),實(shí)驗(yàn)結(jié)果表明,盡管使用僅11%標(biāo)記的惡意樣本的訓(xùn)練數(shù)據(jù),該方法的準(zhǔn)確率仍達(dá)到94%。文獻(xiàn)[12]中Mohammed等人創(chuàng)建了一個(gè)名為MaleX的新數(shù)據(jù)集,其中包含約100萬(wàn)個(gè)惡意軟件和良性Windows可執(zhí)行樣本,用于大規(guī)模惡意軟件檢測(cè)和分類(lèi)實(shí)驗(yàn),采用深度ResNet-50卷積神經(jīng)網(wǎng)絡(luò)(ResNet-50 RNN)準(zhǔn)確率達(dá)到96%。
隨著技術(shù)的進(jìn)步,黑客們也通過(guò)嘗試?yán)@過(guò)檢測(cè)器的防御,隨之PDF領(lǐng)域也出現(xiàn)了防御對(duì)抗的相關(guān)研究。文獻(xiàn)[13]主要介紹了一種防御惡意樣本逃逸SVM模型檢測(cè)的方法,通過(guò)提取正常和惡意PDF樣本集合中的高頻節(jié)點(diǎn)作為特征,并利用增加正常節(jié)點(diǎn)對(duì)惡意PDF進(jìn)行偽裝的方式,將生成的逃逸樣本加入SVM分類(lèi)器的訓(xùn)練集中,經(jīng)過(guò)多次迭代,以達(dá)到檢測(cè)這類(lèi)逃逸樣本的目的。文獻(xiàn)[14]通過(guò)模擬不同強(qiáng)度的攻擊,將對(duì)抗樣本添加到訓(xùn)練集中,提出集成決策樹(shù)方法來(lái)對(duì)對(duì)抗樣本進(jìn)行檢測(cè)。文獻(xiàn)[15]通過(guò)使用逃避攻擊方法實(shí)現(xiàn)對(duì)KNN算法在惡意PDF分類(lèi)進(jìn)行攻擊,有效提高KNN分類(lèi)器的魯棒性。文獻(xiàn)[16]同樣在Evasive-PDFMal2022數(shù)據(jù)集上采用隨機(jī)森林算法對(duì)逃避PDF實(shí)現(xiàn)了較高的準(zhǔn)確率。文獻(xiàn)[17]中Abu Al-Haija等人采用可優(yōu)化決策樹(shù)算法在Evasive-PDFMal2022數(shù)據(jù)集上通過(guò)提取32維有效特征使用了2.174微秒的短預(yù)測(cè)間隔內(nèi)實(shí)現(xiàn)了較高的檢測(cè)精度。
2" PDF介紹
PDF是一種可移植文件格式,用于在不同操作系統(tǒng)和設(shè)備上共享文檔。與其他格式不同的是,PDF文件的布局和格式都是固定的,這意味著除非使用專(zhuān)業(yè)的PDF編輯工具,否則無(wú)法更改其內(nèi)容。因此,PDF文件通常被用作電子文檔、電子書(shū)籍、學(xué)術(shù)論文、合同協(xié)議等需要保護(hù)內(nèi)容不被篡改的場(chǎng)合。
2.1" 物理結(jié)構(gòu)
PDF的物理結(jié)構(gòu)指的是文件在磁盤(pán)或存儲(chǔ)介質(zhì)上的實(shí)際布局。PDF文件的物理結(jié)構(gòu)由頭部、中間部分、相關(guān)索引表以及文件尾組成。PDF文件頭部包含了“%PDF-”版本的規(guī)范信息,并以一個(gè)序號(hào)標(biāo)記。比如,“%PDF-1.7”顯示出PDF文檔完全符合PDF1.7的標(biāo)準(zhǔn)。所有以O(shè)bj開(kāi)頭和Endobj結(jié)尾的對(duì)象構(gòu)成了一個(gè)完整的集合。每個(gè)對(duì)象都有一個(gè)唯一的編號(hào),用于在文件中引用。對(duì)象中間可能包含stream數(shù)據(jù)流或子對(duì)象。索引表cross-reference類(lèi)似一個(gè)目錄,它記錄了文件中各個(gè)對(duì)象的位置和編號(hào),并提供了快速查找和訪(fǎng)問(wèn)對(duì)象的方式,其地址通常在文件尾部的“Trailer”開(kāi)頭標(biāo)志處指定。關(guān)鍵字Trailer處為文件尾,包含cross-reference的地址和一些文檔描述信息包括所有對(duì)象的數(shù)量、創(chuàng)建時(shí)間、ID等,如圖1所示。
2.2" 邏輯結(jié)構(gòu)
PDF的邏輯結(jié)構(gòu)是指文件中內(nèi)容的組織和布局方式,涉及目錄結(jié)構(gòu)、文檔結(jié)構(gòu)、標(biāo)簽樹(shù)和區(qū)域結(jié)構(gòu)等元素。邏輯結(jié)構(gòu)定義了文檔的層次結(jié)構(gòu)、頁(yè)面順序、標(biāo)簽語(yǔ)義等信息,以便于文檔的瀏覽、導(dǎo)航和索引。PDF文件從邏輯上看是一個(gè)以Catalog為根節(jié)點(diǎn)的樹(shù)形結(jié)構(gòu),如圖2所示,其下包括Pages、Outlines等子對(duì)象節(jié)點(diǎn)。Catalog字典中還包括一些承載不同PDF文件信息的節(jié)點(diǎn)對(duì)象,如Type、Version、AA等對(duì)象節(jié)點(diǎn)。具體而言,Type節(jié)點(diǎn)指定了所使用的PDF版本類(lèi)型,Version節(jié)點(diǎn)記錄了PDF版本號(hào),PageLabels節(jié)點(diǎn)存儲(chǔ)了PDF文件的頁(yè)碼標(biāo)簽信息,PageLayout節(jié)點(diǎn)指定PDF文件頁(yè)面的布局,AA節(jié)點(diǎn)存儲(chǔ)了一些PDF執(zhí)行動(dòng)作的信息。Pages是Page的集合入口,包括Count、Kids、Parent、Type等字段,其中Page對(duì)象包含content、annotations、resources等信息。
物理結(jié)構(gòu)和邏輯結(jié)構(gòu)是PDF文檔的兩個(gè)重要方面,它們相互依賴(lài)并共同構(gòu)成了完整的PDF文件。通過(guò)正確與協(xié)調(diào)地組織物理結(jié)構(gòu)和邏輯結(jié)構(gòu),可以實(shí)現(xiàn)文檔的正確顯示、導(dǎo)航和處理。物理結(jié)構(gòu)提供了文件的整體框架和組織方式,確保文件在存儲(chǔ)介質(zhì)上的正確讀取和解析。邏輯結(jié)構(gòu)描述了文件中的內(nèi)容、布局和層次結(jié)構(gòu),使得讀取和解析后的數(shù)據(jù)能夠按照邏輯方式進(jìn)行顯示和處理。物理結(jié)構(gòu)和邏輯結(jié)構(gòu)之間通過(guò)文件頭部和交叉引用表進(jìn)行聯(lián)系和映射。文件頭部包含了重要的文檔信息和結(jié)構(gòu)定義,交叉引用表記錄了文件中各個(gè)對(duì)象的位置和關(guān)系,使得邏輯結(jié)構(gòu)能夠正確地訪(fǎng)問(wèn)和使用物理結(jié)構(gòu)中的數(shù)據(jù)。而本文提取出的各關(guān)鍵字?jǐn)?shù)量就是從PDF源碼層面統(tǒng)計(jì)出來(lái)的。
2.3" 逃逸手段及結(jié)構(gòu)分析
PDF的逃逸手段總結(jié)歸納為以下幾種,包括:
1)使用加密算法或壓縮技術(shù)隱藏惡意代碼,在結(jié)構(gòu)中體現(xiàn)為:PDF文件是否使用了加密算法對(duì)內(nèi)容進(jìn)行加密;PDF文件中使用的過(guò)濾器的總數(shù),過(guò)濾器可以用于壓縮或加密數(shù)據(jù),也可能隱藏了惡意代碼;PDF文件中包含嵌套過(guò)濾器的對(duì)象的數(shù)量,嵌套過(guò)濾器可能用于多層次的數(shù)據(jù)處理和隱藏惡意代碼;“stream”關(guān)鍵字?jǐn)?shù)量和“endstreams”關(guān)鍵字?jǐn)?shù)量,統(tǒng)計(jì)PDF文件中涉及流對(duì)象的關(guān)鍵字?jǐn)?shù)量,流對(duì)象可以用于存儲(chǔ)壓縮或加密的數(shù)據(jù),其中可能隱藏了惡意代碼等。
2)采用多層嵌套或動(dòng)態(tài)生成來(lái)增加檢測(cè)難度,在結(jié)構(gòu)中體現(xiàn)為:“obfuscation”的數(shù)量,這可能包括使用隨機(jī)生成的名稱(chēng)、使用非常短的名稱(chēng)等方式來(lái)混淆代碼結(jié)構(gòu);嵌套過(guò)濾器的對(duì)象數(shù)量;流對(duì)象的數(shù)量,流對(duì)象可用于存儲(chǔ)和隱藏大量數(shù)據(jù),包括惡意代碼,從而增加了檢測(cè)難度;PDF文件中所有流對(duì)象的平均大小等。
3)利用JavaScript來(lái)執(zhí)行自動(dòng)化操作、遠(yuǎn)程控制、欺騙用戶(hù)訪(fǎng)問(wèn)可疑鏈接等,同時(shí)還可能對(duì)代碼進(jìn)行混淆,在結(jié)構(gòu)中體現(xiàn)為:關(guān)鍵詞“/JS”和“/JavaScript”的數(shù)量,JavaScript可以用于執(zhí)行各種操作,包括自動(dòng)化、遠(yuǎn)程控制和欺騙用戶(hù)等;關(guān)鍵詞“/URI”和“/Action”的數(shù)量,這些關(guān)鍵詞通常與JavaScript代碼的執(zhí)行和跳轉(zhuǎn)相關(guān),用于觸發(fā)特定的操作或訪(fǎng)問(wèn)可疑鏈接;關(guān)鍵詞“/launch”和“/submitForm”的數(shù)量,這些關(guān)鍵詞通常與JavaScript代碼的執(zhí)行和控制相關(guān);obfuscations的數(shù)量:PDF文件中名稱(chēng)模糊化的對(duì)象數(shù)量,包括JavaScript函數(shù)、變量和對(duì)象等。名稱(chēng)模糊化可以增加代碼的復(fù)雜性和閱讀難度。
4)惡意代碼還可能被隱藏在對(duì)象的末尾或文件結(jié)尾的Trailer中,同時(shí)對(duì)象本身也可能會(huì)被隱藏或加密,在結(jié)構(gòu)中體現(xiàn)為:關(guān)鍵詞“/Endobj”的數(shù)量,惡意代碼可能會(huì)被隱藏在一個(gè)對(duì)象的末尾,使用
“/Endobj”作為結(jié)束標(biāo)志;關(guān)鍵詞“/Trailer”的數(shù)量,惡意代碼可能會(huì)被隱藏在文件結(jié)尾的Trailer中;關(guān)鍵詞“/Xref”和“/Startxref”的數(shù)量,這些關(guān)鍵詞通常與惡意代碼被隱藏或篡改相關(guān)。
5)關(guān)鍵節(jié)點(diǎn)可能會(huì)被混淆,使得用戶(hù)難以發(fā)現(xiàn)惡意代碼的存在,在結(jié)構(gòu)中體現(xiàn)為:唯一字體總數(shù),惡意代碼可能會(huì)通過(guò)字體來(lái)混淆和隱藏關(guān)鍵節(jié)點(diǎn);關(guān)鍵詞“/Encrypt”和“/Decrypt”的數(shù)量,加密和解密可以用于隱藏惡意代碼和數(shù)據(jù);關(guān)鍵詞“/ObjStm”
“/JS”和“/JavaScript”的數(shù)量,這些關(guān)鍵詞通常與惡意代碼和關(guān)鍵節(jié)點(diǎn)的混淆和隱藏相關(guān);被壓縮對(duì)象數(shù)量,壓縮可以用于隱藏惡意代碼和數(shù)據(jù)。
6)正常情況下,PDF文件中的對(duì)象會(huì)以關(guān)鍵字“Obj”開(kāi)始并以“Endobj”結(jié)尾,攻擊者可能會(huì)利用這一點(diǎn)來(lái)欺騙檢測(cè)系統(tǒng),將惡意代碼隱藏在沒(méi)有明確結(jié)束標(biāo)志的對(duì)象中,在結(jié)構(gòu)中體現(xiàn)為:關(guān)鍵詞“/Obj”和“/Endobj”的數(shù)量:PDF文件中涉及對(duì)象和結(jié)束標(biāo)志的關(guān)鍵詞數(shù)量。攻擊者可能會(huì)利用這些關(guān)鍵詞來(lái)隱藏惡意代碼和數(shù)據(jù),并繞過(guò)檢測(cè)系統(tǒng)。
3" 實(shí)驗(yàn)方法
3.1" 特征工程
總結(jié)歸納對(duì)逃避檢測(cè)的惡意PDF關(guān)鍵特征,如圖3所示。本文利用fitz提取了PDF大小、是否加密、元數(shù)據(jù)大小、page數(shù)量、PDF頭等一般特征,然后利用pdfid從PDF源碼提取“Obj”“Endobj”“stream”“endstream”“/JS”“/JavaScript”“/Action”
“/AA”等關(guān)鍵字?jǐn)?shù)量進(jìn)行收集,并將各關(guān)鍵字的數(shù)量作為結(jié)構(gòu)特征。基于不同特征對(duì)分類(lèi)器性能的影響不同,我們使用決策樹(shù)算法進(jìn)行了特征重要性評(píng)估。最終確定了重要性排名前24的特征作為本文實(shí)驗(yàn)的特征集,特征重要性的排序如圖4所示。
3.2" 分類(lèi)模型
本文采用了Adaboost算法來(lái)構(gòu)建模型。Adaboost是一種集成自適應(yīng)增強(qiáng)機(jī)器學(xué)習(xí)方法,旨在通過(guò)組合多個(gè)弱分類(lèi)器來(lái)構(gòu)建一個(gè)強(qiáng)分類(lèi)器,基本思想是依次訓(xùn)練一系列分類(lèi)器,并根據(jù)之前分類(lèi)器的錯(cuò)誤情況來(lái)調(diào)整樣本權(quán)重,較高的權(quán)重分配給錯(cuò)誤分類(lèi)的示例,使得錯(cuò)誤分類(lèi)的樣本在后續(xù)的分類(lèi)器訓(xùn)練中得到更多關(guān)注,這有助于減少學(xué)習(xí)過(guò)程中的偏差和方差,對(duì)逃避樣本在迭代訓(xùn)練中得到更多的關(guān)注,如圖5所示。同時(shí),我們?cè)趯?shí)驗(yàn)中也使用了隨機(jī)森林和Stacking這兩個(gè)集成學(xué)習(xí)算法訓(xùn)練出來(lái)的模型進(jìn)行對(duì)比實(shí)驗(yàn),并進(jìn)行了實(shí)驗(yàn)效果評(píng)估。相對(duì)以上兩種算法,從原理的角度來(lái)看,Adaboost算法尤其在處理復(fù)雜問(wèn)題和存在噪聲的數(shù)據(jù)集時(shí)表現(xiàn)優(yōu)異,而本文數(shù)據(jù)集是逃避檢測(cè)的PDF樣本,可以根據(jù)權(quán)重的分配自適應(yīng)調(diào)整來(lái)重點(diǎn)關(guān)注被錯(cuò)誤分類(lèi)的PDF樣本,通過(guò)迭代再進(jìn)一步調(diào)整權(quán)重,從而在訓(xùn)練過(guò)程中更加關(guān)注惡意逃避的特征,Adaboost算法通過(guò)串行訓(xùn)練多個(gè)弱分類(lèi)器并組合它們的結(jié)果,這意味著該算法仍可能通過(guò)組合多個(gè)弱分類(lèi)器的結(jié)果來(lái)捕獲和識(shí)別惡意特征??傮w而言,Adaboost由于其自適應(yīng)調(diào)整和集成學(xué)習(xí)的特性使得它在該實(shí)驗(yàn)環(huán)境下具有一定優(yōu)勢(shì)。
4" 實(shí)驗(yàn)流程
4.1" 數(shù)據(jù)集
本研究引用CIC Evasive-PDFMal2022數(shù)據(jù)集。本數(shù)據(jù)集是由4 468個(gè)良性文件和5 557個(gè)惡意文件組成,是經(jīng)過(guò)4萬(wàn)多個(gè)文件經(jīng)過(guò)處理篩選出錯(cuò)誤分類(lèi)的逃避檢測(cè)樣本集合。數(shù)據(jù)發(fā)布者采用K-means機(jī)器學(xué)習(xí)算法進(jìn)行分析,樣本被分到錯(cuò)誤的惡意標(biāo)記聚類(lèi)中被認(rèn)為是惡意記錄規(guī)避集,這些樣本與其他同類(lèi)樣本的特征相差較大,因此未被聚類(lèi)到大部分具有相同標(biāo)簽的樣本中。此樣本集將分類(lèi)錯(cuò)誤的良性樣本和分類(lèi)錯(cuò)誤的惡意樣本合并得到了一份新數(shù)據(jù)集作為CIC Evasive-PDFMal2022數(shù)據(jù)集,如圖6所示。
圖6" 數(shù)據(jù)集生成過(guò)程
4.2" 實(shí)驗(yàn)設(shè)置
K折交叉驗(yàn)證(k = 5),將數(shù)據(jù)集分成訓(xùn)練集、驗(yàn)證集和測(cè)試集三部分。數(shù)據(jù)表經(jīng)過(guò)的數(shù)據(jù)清理后,使用k折交叉驗(yàn)證方法進(jìn)行隨機(jī)拆分,將數(shù)據(jù)集分成5個(gè)不同的子集。按照順序選擇其中一個(gè)子集作為驗(yàn)證集,而將剩下的4個(gè)子集作為訓(xùn)練集。將對(duì)每個(gè)子集分別進(jìn)行一次訓(xùn)練和驗(yàn)證。在進(jìn)行模型訓(xùn)練時(shí),使用4個(gè)訓(xùn)練集中的數(shù)據(jù)來(lái)訓(xùn)練模型,在進(jìn)行模型驗(yàn)證時(shí),使用當(dāng)前選定的驗(yàn)證集來(lái)評(píng)估模型的性能和效果??梢允褂抿?yàn)證集上的評(píng)估結(jié)果來(lái)優(yōu)化模型的超參數(shù)或調(diào)整算法。最終得到5個(gè)不同的折疊訓(xùn)練和驗(yàn)證集,利用訓(xùn)練集和驗(yàn)證集反復(fù)迭代訓(xùn)練和驗(yàn)證模型,迭代更新出最佳模型,然后對(duì)模型進(jìn)行評(píng)估,計(jì)算其性能指標(biāo)。
4.3" 評(píng)估指標(biāo)
本文實(shí)驗(yàn)的評(píng)估指標(biāo)包括:準(zhǔn)確率、精確率、召回率和F1值。圖7為呈現(xiàn)該指標(biāo)的混淆矩陣。
4.4" 實(shí)驗(yàn)結(jié)果及分析
依次使用Adaboost、Stacking和隨機(jī)森林訓(xùn)練并測(cè)試模型,經(jīng)過(guò)比較,如表1所示,我們發(fā)現(xiàn)使用Adaboost算法訓(xùn)練出的模型表現(xiàn)最佳,因此最終選擇Adaboost作為模型訓(xùn)練的方法。
我們將本文所提出的方法與同領(lǐng)域的研究進(jìn)行了對(duì)比,比較結(jié)果如表格2所示。經(jīng)過(guò)對(duì)比可以看出本文所提出的方法在準(zhǔn)確率上優(yōu)于其他模型。本文經(jīng)過(guò)提取了最佳特征組合,再結(jié)合Adaboost算法針對(duì)本文的逃避檢測(cè)PDF樣本,根據(jù)權(quán)重的分配自適應(yīng)調(diào)整重點(diǎn)關(guān)注被錯(cuò)誤分類(lèi)的PDF樣本,通過(guò)迭代調(diào)整權(quán)重,在訓(xùn)練過(guò)程中更加關(guān)注惡意逃避的特征。Adaboost算法通過(guò)組合多個(gè)弱分類(lèi)器的結(jié)果捕獲和識(shí)別惡意特征,實(shí)驗(yàn)證明,其由于自適應(yīng)調(diào)整和集成學(xué)習(xí)的特性而在該實(shí)驗(yàn)環(huán)境下具有一定優(yōu)勢(shì)。
5" 結(jié)" 論
隨著數(shù)字化轉(zhuǎn)型和遠(yuǎn)程工作的全球趨勢(shì),數(shù)字文檔需求顯著增加。然而,數(shù)字文檔的廣泛應(yīng)用也帶來(lái)了針對(duì)用戶(hù)文件和機(jī)器的惡意軟件開(kāi)發(fā)的風(fēng)險(xiǎn)。其中,PDF文件是全球最常用的數(shù)字文件之一,也是各種威脅和惡意代碼攻擊的目標(biāo)。黑客們會(huì)在PDF文件中嵌入惡意代碼,并將其隱藏,以感染受害者的機(jī)器。因此,本文提出、開(kāi)發(fā)并評(píng)估了一種新的PDF惡意軟件檢測(cè)智能系統(tǒng)。該系統(tǒng)采用高性能機(jī)器學(xué)習(xí)模型AdaBoost算法。我們?cè)谑褂梅Q(chēng)為Evasive-PDFMal2022的新數(shù)據(jù)集上訓(xùn)練并評(píng)估模型。結(jié)果在檢測(cè)準(zhǔn)確度、精確度、召回率、F1值具有優(yōu)越性,并在同一研究領(lǐng)域優(yōu)于其他最先進(jìn)的模型。因此,所提出的模型在各個(gè)領(lǐng)域都可以推廣和應(yīng)用。
參考文獻(xiàn):
[1] 喻民,姜建國(guó),李罡,等.惡意文檔檢測(cè)研究綜述 [J].信息安全學(xué)報(bào),2021,6(3):54-76.
[2] 林楊東,杜學(xué)繪,孫奕.惡意PDF文檔檢測(cè)技術(shù)研究進(jìn)展 [J].計(jì)算機(jī)應(yīng)用研究,2018,35(8):2251-2255.
[3] BACCAS P. Finding Rules for Heuristic Detection of Malicious Pdfs: With Analysis of Embedded Exploit Code [EB/OL].[2023-09-06].https://pobicuscom.files.wordpress.com/2018/04/vb2010-baccas.pdf.
[4] 張福勇,齊德昱,胡鏡林.基于C4.5決策樹(shù)的嵌入型惡意代碼檢測(cè)方法 [J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2011,39(5):68-72.
[5] 胡江,周安民.針對(duì)JavaScript攻擊的惡意PDF文檔檢測(cè)技術(shù)研究 [J].現(xiàn)代計(jì)算機(jī):專(zhuān)業(yè)版,2016(1):36-40.
[6] 徐建平.基于SVM模型的惡意PDF文檔檢測(cè)方法 [J].電腦知識(shí)與技術(shù),2016,12(24):90-92.
[7] 李睿,楊淑群,張新宇.一種雙向采樣的惡意PDF文檔檢測(cè)方法 [J].軟件導(dǎo)刊,2022,21(5):67-72.
[8] 俞遠(yuǎn)哲,王金雙,鄒霞.基于特征集聚和卷積神經(jīng)網(wǎng)絡(luò)的惡意PDF文檔檢測(cè)方法 [J].信息技術(shù)與網(wǎng)絡(luò)安全,2021,40(8):35-41.
[9] 俞遠(yuǎn)哲,王金雙,鄒霞.基于文檔圖結(jié)構(gòu)的惡意PDF文檔檢測(cè)方法 [J].信息技術(shù)與網(wǎng)絡(luò)安全,2021,40(11):16-23.
[10] JIANG J G,SONG N,YU M,et al. Detecting Malicious PDF Documents Using Semi-Supervised Machine Learning [C]//DigitalForensics 2021: Advances in Digital Forensics XVII.[S.I.]:Springer,Cham,2021,612:135-155.
[11] MOHAMMED T M,NATARAJ L,CHIKKAGOUDAR S,et al. Malware Detection Using Frequency Domain-Based Image Visualization and Deep Learning [J/OL].arXiv:2101.10578 [cs.CR].[2023-09-02].https://doi.org/10.48550/arXiv.2101.10578.
[12] CUAN B,DAMIEN A,DELAPLACE C,et al. Malware Detection in PDF Files Using Machine Learning [C]//15th International Conference on Security and Cryptography.Porto:SciTePress,2018,2:412-419.
[13] 李坤明,顧益軍,張培晶.對(duì)抗環(huán)境下基于集成決策樹(shù)的惡意PDF文件檢測(cè) [J].計(jì)算機(jī)應(yīng)用與軟件,2020,37(10):318-322+333.
[14] 李坤明,顧益軍,王安.逃避攻擊下惡意PDF文件檢測(cè)技術(shù) [J].中國(guó)人民公安大學(xué)學(xué)報(bào):自然科學(xué)版,2019,25(3):60-64.
[15] AlMahadeen A,alkasassbeh M. PDF Malware Detection Using Machine Learning [J/OL].computer science and mathematics,2023:2023010557[2023-08-20].https://doi.org/10.20944/preprints202301.0557.v1.
作者簡(jiǎn)介:李東帥(1999—),男,漢族,吉林四平人,碩士研究生在讀,研究方向:惡意軟件檢測(cè);尚培文(1996—),男,漢族,山西晉中人,碩士研究生在讀,研究方向:威脅檢測(cè)。