李坤明 顧益軍 張培晶
1(中國人民公安大學(xué)信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院 北京 102600) 2(中國人民公安大學(xué)網(wǎng)絡(luò)信息中心 北京 102600)
由于PDF文件格式的穩(wěn)定性和跨平臺(tái)的交互性,其在政府、企業(yè)以及社會(huì)等組織的日常辦公中被廣泛使用。針對PDF文件漏洞發(fā)起的攻擊迅速增多,對惡意PDF文件的檢測非常有必要[1]。隨著人工智能的迅速發(fā)展,機(jī)器學(xué)習(xí)方法在惡意PDF文件的檢測中有著廣泛的應(yīng)用。初始對于惡意PDF文件檢測的研究方法主要是通過定位和抽取惡意PDF文件中的Java-Script代碼進(jìn)行檢測[2-3],但是由于大量的JavaScript代碼通過加密、混淆等手段使得在對其進(jìn)行定位和解析中存在著巨大困難,此外還存在一些惡意PDF文件不含有JavaScript代碼。這些因素都使得使用該方法進(jìn)行惡意PDF文件檢測時(shí)因?yàn)橹匾卣鞯娜笔?dǎo)致檢測的效率較低。于是出現(xiàn)了另一種通過將惡意PDF文件中元數(shù)據(jù)作為特征進(jìn)行檢測的方法,其中較為常用的是將惡意PDF文件中的關(guān)鍵詞[4]、結(jié)構(gòu)路徑[5-6]作為特征進(jìn)行檢測,結(jié)果表明該方法具有較高的檢測率,由原來的80%提升到90%以上。
研究發(fā)現(xiàn)通過使用元數(shù)據(jù)作為特征進(jìn)行惡意PDF文件檢測時(shí),存在著一些非法攻擊者通過精心構(gòu)造惡意PDF樣本(對抗樣本)使其逃避分類模型的檢測,降低了分類模型的可用性,導(dǎo)致模型的魯棒性較差。因此,研究對抗環(huán)境下在保持分類模型對惡意PDF文件檢測具有較高檢測率的同時(shí)也具有較強(qiáng)的魯棒性具有重要意義。
目前機(jī)器學(xué)習(xí)方法在對文本進(jìn)行分類時(shí)面臨的攻擊問題根據(jù)發(fā)生的時(shí)間可以分為兩類,分別是針對訓(xùn)練階段的攻擊和針對測試階段的攻擊。本文只考慮在測試階段發(fā)生的攻擊。
逃避攻擊是發(fā)生在機(jī)器學(xué)習(xí)模型測試階段的一種常用的攻擊方式[7]。其原理是在基于特征提取的分類和惡意軟件檢測中,攻擊者能夠通過一定的方式修改惡意樣本中的部分特征進(jìn)而生成對抗樣本,對抗樣本本身仍保留惡意內(nèi)容,但使得其被模型誤分類為正常樣本,逃避了模型的檢測進(jìn)而降低了模型的可用性。對于一個(gè)惡意PDF樣本,在無攻擊時(shí)其輸出為(x,y),在對抗環(huán)境下,攻擊者通過一定的方式修改其特征使得輸出改變?yōu)?x*,z),表示如下:
(1)
其中最優(yōu)的攻擊策略是在使得分類模型誤分類的同時(shí),所需要修改的特征值最小,C為標(biāo)簽集合,即:
(2)
針對惡意PDF文件檢測的分類模型中,逃避攻擊方法產(chǎn)生對抗樣本的方式通常有兩種,一種是基于梯度的方法產(chǎn)生對抗樣本[8],另一種是基于特征加法的方式產(chǎn)生對抗樣本[9]。這兩種方法在垃圾郵件檢測系統(tǒng)與惡意PDF文件檢測上都實(shí)現(xiàn)了攻擊。由于攻擊者實(shí)施攻擊不需要了解訓(xùn)練數(shù)據(jù)集的分布,并且能夠在已知更少的信息下實(shí)現(xiàn)對分類模型的攻擊,因此逃避攻擊是威脅機(jī)器學(xué)習(xí)安全的一種重要攻擊方式。
機(jī)器學(xué)習(xí)方法被廣泛應(yīng)用到網(wǎng)絡(luò)入侵檢測、人臉識別、文本分類等安全領(lǐng)域。機(jī)器學(xué)習(xí)模型經(jīng)常受到對抗樣本的干擾,在利益的驅(qū)使下,攻擊者通過構(gòu)造對抗樣本惡意地干擾輸入,以便在測試時(shí)使得分類模型誤分類[10]。
在對抗環(huán)境下對機(jī)器學(xué)習(xí)魯棒性的防御技術(shù)主要有蒸餾法、正則化方法、對抗性訓(xùn)練方法和重新構(gòu)造分類模型等。Papernot等[11]提出了蒸餾防御機(jī)制,該方法通過提升攻擊者產(chǎn)生對抗樣本時(shí)需要修改特征最小平均值的方式提高模型的魯棒性。但隨后Carlini等[12]指出該方法在不知道分類模型時(shí)的效果不明顯。文獻(xiàn)[13-14]使用正則化和對抗性訓(xùn)練的方式,通過專門的訓(xùn)練增強(qiáng)模型的魯棒性,但仍然存在盲區(qū)。針對如何在測試階段構(gòu)建一個(gè)魯棒性能好的分類模型主要有以下研究:Zhang等[15]通過使用封裝式(Wrapper)的特征選擇方法挑選部分特征子集的方式構(gòu)建出魯棒的分類模型;Bhagoji等[16]通過使用主成分分析方式對特征進(jìn)行降維,構(gòu)建了一個(gè)魯棒性較好的分類模型;Biggio等[17]提出使用Bagging集成的方法構(gòu)建出魯棒的分類模型。
目前使用集成學(xué)習(xí)的方式對抗逃避攻擊通常是將若干個(gè)單分類器并行疊加在一起,然后將多個(gè)單分類器的結(jié)果以投票法、均值法等結(jié)合策略輸出,這些提高模型魯棒性的方法沒有考慮到攻擊者產(chǎn)生的對抗樣本信息。本文提出一種新的集成方法,首先通過模擬攻擊者的攻擊將攻擊過程中產(chǎn)生的對抗樣本添加到訓(xùn)練集中;然后使用Adaboost方法集成決策樹在每次迭代過程中增加錯(cuò)分樣本的權(quán)重,構(gòu)建出新的惡意PDF文件檢測模型;最后通過模擬不同強(qiáng)度的攻擊測試所提方法在惡意PDF文件檢測上的有效性,并與單分類器決策樹方法、Bagging集成方法相比較。實(shí)驗(yàn)結(jié)果表明,本文方法在無攻擊情況下具有較高的分類精度,有攻擊時(shí)的魯棒性優(yōu)于其他兩種方法。
PDF格式的靈活性使得攻擊者有足夠的機(jī)會(huì)改變其內(nèi)容與結(jié)構(gòu)。在逃避攻擊中攻擊者的目的是通過修改惡意PDF文件使其被分類模型誤分為正常樣本。由于PDF文件格式的特性使得攻擊者很難刪除惡意PDF文件中的部分惡意內(nèi)容,但是可以輕松地向惡意PDF文件中添加正常內(nèi)容,因此在惡意PDF文件檢測中常用基于特征加法的攻擊方式。
決策樹算法應(yīng)用于惡意PDF文件檢測時(shí),攻擊者通過查找終節(jié)點(diǎn)被正確分為惡意的路徑,然后沿著這條路徑回溯并找到第一個(gè)非終節(jié)點(diǎn),沿著這個(gè)方向的終節(jié)點(diǎn)被分為正常樣本。在這種情況下,攻擊者通過向惡意樣本中添加正常樣本含有的特征生成對抗樣本,改變決策樹分類模型的決策路徑進(jìn)而導(dǎo)致惡意樣本被誤分類,使得模型的魯棒性較差。
由于JavaScript代碼具有隱蔽性,對于其在PDF文件中的定位比較困難,因此使用JavaScript代碼的檢測率較低。在隨后提出的基于結(jié)構(gòu)特征的惡意PDF文件檢測方法中,文獻(xiàn)[5]提出了基于結(jié)構(gòu)特征的PDF文件特征抽取方法,并使用決策樹算法對惡意PDF文件進(jìn)行分類,實(shí)驗(yàn)結(jié)果表明該方法具有較高的正確率。但該方法存在兩個(gè)問題:一是文檔特征復(fù)雜,僅以特征在每個(gè)文檔中出現(xiàn)的頻數(shù)作為特征值不夠客觀;二是在對抗環(huán)境下,存在非法的攻擊者通過修改測試集中惡意PDF文件中的特征來逃避分類器的檢測,表明該模型的魯棒性較差。
對此提出一種基于集成決策樹的惡意PDF文件檢測方法。在構(gòu)建分類模型前就考慮到攻擊者的攻擊問題,通過模擬針對于惡意PDF文件的特征加法攻擊,將攻擊產(chǎn)生的對抗樣本添加到訓(xùn)練集中。然后使用Adaboost集成決策樹的方法構(gòu)建分類模型,因?yàn)楣粽弋a(chǎn)生的對抗樣本會(huì)被分類模型錯(cuò)分為正常樣本,Adaboost方法使用串行迭代的方式,在每一次訓(xùn)練中會(huì)增加錯(cuò)分樣本的權(quán)重,通過模擬攻擊產(chǎn)生的對抗樣本的權(quán)重則會(huì)在下一次訓(xùn)練中增加。因此攻擊者再對新的分類模型實(shí)施攻擊時(shí),達(dá)到相同的攻擊效果需要修改惡意PDF文件的最小平均特征值會(huì)增加。最后通過實(shí)驗(yàn)將該方法與單分類模型和現(xiàn)有的Bagging集成方法進(jìn)行比較,結(jié)果表明在分類精度與魯棒性上均高于這兩種方法。
傳統(tǒng)的分類模型通常只考慮分類器的分類精確度,沒有考慮到攻擊者的攻擊問題。存在非法攻擊者通過修改惡意樣本的特征,使其被分類器檢測為正常樣本。因此在評價(jià)分類器性能時(shí)不僅要考慮分類模型在無攻擊時(shí)的分類精確度,還要考慮到其本身的魯棒性,即對抗逃避攻擊的能力。對于惡意PDF文件檢測的二分類問題,其分類結(jié)果的混淆矩陣如表1所示。
表1 分類結(jié)果混淆矩陣
在分類模型的評價(jià)指標(biāo)中,正確率表示模型檢測結(jié)果是正確的PDF文件數(shù)占PDF文件總量的比例。逃避攻擊中,攻擊者的目的在于修改惡意樣本使其被模型誤分類,漏報(bào)率表示惡意PDF文件被模型檢測為正常PDF文件的數(shù)量占惡意PDF文件總量的比例,是評價(jià)分類模型魯棒性的重要指標(biāo)。因此本文選擇精確度(Acc)和漏報(bào)率(FNR)作為評價(jià)分類模型的指標(biāo)。
(3)
(4)
在對抗環(huán)境下,為提高分類模型對惡意PDF文件的檢測率以及模型的魯棒性。本文提出一種集成決策樹的方法檢測惡意PDF文件,具體步驟如下:
1)對于一個(gè)PDF文件,具有固定的格式,通過使用PDF文件解析器可以抽取出其結(jié)構(gòu)特征,惡意PDF文件數(shù)據(jù)集可以表示為T={(x1,y1),(x2,y2),…,(xN,yN)},xi=(xi1,xi2,…,xij)。其中:xi表示一個(gè)空間維度為j的PDF文件;yn∈{1,-1}為PDF文件的標(biāo)簽,1表示惡意文件,-1表示正常文件。
2)使用TF-IDF(Term Frequency-Inverse Document Frequency)算法對每個(gè)PDF文件所抽取的特征屬性進(jìn)行量化處理,計(jì)算每一個(gè)特征向量的權(quán)重。其公式如下:
(5)
(6)
tfidfi,j=tfi,j×idfi
(7)
3)使用基于特征加法攻擊方法實(shí)現(xiàn)對決策樹算法的攻擊,并記錄分類器的分類效果。
4)使用Adaboost方法集成決策樹算法,在每一次串行迭代訓(xùn)練中,增加攻擊過程中錯(cuò)分樣本的權(quán)重,經(jīng)過M次迭代訓(xùn)練出新的分類模型。對于訓(xùn)練數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xN,yN)},xi∈X?R,yi∈{-1,1}。
(1)初始化訓(xùn)練數(shù)據(jù)的權(quán)值分布:
(8)
(2)對m=1,2,…,M(M表示實(shí)驗(yàn)設(shè)置決策樹的個(gè)數(shù)):
① 使用具有權(quán)值分布的Dm訓(xùn)練數(shù)據(jù)集學(xué)習(xí),得到?jīng)Q策樹模型Gm(x)。
② 計(jì)算Gm(x)在訓(xùn)練數(shù)據(jù)集上的分類誤差率:
(9)
③ 計(jì)算得到?jīng)Q策樹模型Gm(x)的權(quán)重:
am=ln(1-em)/em
(10)
④ 更新PDF訓(xùn)練數(shù)據(jù)集的權(quán)值分布:
(11)
式中:Zm為規(guī)范化因子。
(3)得到由決策樹集成的分類器:
(12)
5)通過模擬不同強(qiáng)度的攻擊,對集成決策樹模型F(x)進(jìn)行攻擊,驗(yàn)證本文方法構(gòu)建的惡意PDF文件檢測模型在逃避攻擊情況下的分類效果。具體檢測流程如圖1所示。
圖1 集成決策樹算法的惡意PDF文件檢測流程
本文使用的數(shù)據(jù)集來源于CONTAGIO數(shù)據(jù)集[18],選取了其中的4 786個(gè)惡意PDF文件和4 904個(gè)正常PDF文件,使用基于關(guān)鍵詞的方法提取PDF文件特征。采取5折交叉驗(yàn)證的方式進(jìn)行實(shí)驗(yàn),即將數(shù)據(jù)集隨機(jī)分成5份,其中4份作為訓(xùn)練集,剩余的1份作為測試集。
本文方法旨在提高分類模型在測試過程中分類模型對抗逃避攻擊的能力,實(shí)驗(yàn)采用基于特征加法的攻擊方式?;谔卣骷臃ǖ墓舴椒ㄊ菣C(jī)器學(xué)習(xí)在文本分類中一種常見的攻擊方式,同時(shí)也是檢測分類模型魯棒性的方式。本文將攻擊強(qiáng)度記為K,通過設(shè)定K為2、4、6、8、10,即向惡意樣本中添加不同的正常樣本特征屬性的數(shù)量,模擬不同強(qiáng)度的攻擊。
本文通過將集成決策樹的個(gè)數(shù)M設(shè)置為10到70,并測試集成方法在無攻擊時(shí)的分類精確度。由表2可知,隨著弱分類器個(gè)數(shù)的增加,分類效果并未提升,此外考慮到計(jì)算開銷問題以及模型的泛化性能,本文選擇集成決策樹的個(gè)數(shù)為10進(jìn)行實(shí)驗(yàn)。
表2 無攻擊時(shí)集成不同個(gè)數(shù)單分類器的精確度
由表3可知,在無攻擊的情況下(K=0),基于Adaboost方法集成決策樹的方法在惡意PDF文件檢測的精確度上相比Bagging方法增加了0.56%,但兩種集成的方法在檢測精確度上均高于決策樹算法構(gòu)建的單分類器。隨著攻擊強(qiáng)度的增加,決策樹分類器的檢測精確度迅速下降,當(dāng)攻擊強(qiáng)度K=10時(shí),其惡意PDF文件檢測精確度由初始的97.01%下降到71.59%,下降了25.42個(gè)百分點(diǎn)。相同攻擊強(qiáng)度下,基于Bagging的集成方法下降了10.95個(gè)百分點(diǎn),本文的方法下降了8.94個(gè)百分點(diǎn),說明本文方法在不同攻擊強(qiáng)度下具有更高的檢測精確度,對抗逃避攻擊時(shí)模型的魯棒性更好。
表3 三種方法在不同攻擊強(qiáng)度下的精確度
在漏報(bào)率方面,兩種集成方法在無攻擊時(shí)較為接近。隨著攻擊強(qiáng)度的增加,由表4可知,基于決策樹算法的檢測模型隨著攻擊強(qiáng)度的增加在漏報(bào)率上下降幅度最大。當(dāng)攻擊強(qiáng)度K=10時(shí),基于決策樹的惡意PDF文件檢測模型的漏報(bào)率為10%,基于Bagging集成的方法漏報(bào)率為8.1%,使用本文方法的漏報(bào)率最低為5.07%。
表4 三種方法在不同攻擊強(qiáng)度下的漏報(bào)率
向惡意PDF文件中添加正常樣本的特征,會(huì)改變決策樹分類模型劃分屬性選擇,導(dǎo)致模型做出錯(cuò)誤的判斷,因此單分類器在面對攻擊時(shí)模型的魯棒性通常較差。Bagging集成方法的原理是通過使用自助采樣法并行訓(xùn)練出多個(gè)單決策樹分類模型,使用投票的方法得到最終結(jié)果。本質(zhì)上減小了每個(gè)單分類器輸出結(jié)果的權(quán)重,雖然在一定程度上模型的分類魯棒性優(yōu)于單分類器,但是模型的構(gòu)建過程中沒有考慮到攻擊者產(chǎn)生的逃避攻擊樣本問題。而本文采用的方法通過使用串行迭代的方式生成模型,并在訓(xùn)練集中加入對抗樣本,在每一輪訓(xùn)練過程中會(huì)根據(jù)樣本的分布為每個(gè)樣本重新賦予一個(gè)權(quán)重,使得樣本屬性的權(quán)重分配更加均衡合理,即使存在攻擊者通過修改惡意PDF文件特征逃避檢測時(shí),達(dá)到相同的攻擊效果,其修改的特征值也就越多。因此本文方法構(gòu)建的分類模型在惡意PDF文件檢測上具有較高檢測精確度的同時(shí),模型的魯棒性更好。
決策樹算法在惡意PDF文件檢測上通常具有較高的精確度,但模型的魯棒性較差。為此,本文在訓(xùn)練分類模型的過程中將攻擊者產(chǎn)生的對抗樣本添加到訓(xùn)練集中,然后使用串行迭代的方式在每次迭代的過程中通過不斷增大錯(cuò)分樣本的權(quán)重,最終訓(xùn)練出分類模型。為驗(yàn)證本文構(gòu)建模型的分類性能和魯棒性,通過模擬不同強(qiáng)度的攻擊與單分類器和Bagging集成的多分類器進(jìn)行比較。實(shí)驗(yàn)結(jié)果表明,本文方法在無攻擊情況下具有較高的精確度,同時(shí)在不同攻擊強(qiáng)度下其精確度和漏報(bào)率均優(yōu)于決策樹算法和Bagging集成方法。
本文主要是對決策樹算法的集成,構(gòu)建了一個(gè)魯棒的惡意PDF文件檢測模型。下一步可以使用集成的方法將多種算法融合在惡意PDF文件的檢測上,還可以考慮將集成的方法與其他提高模型魯棒性的方法相結(jié)合進(jìn)行研究。