李坤明, 顧益軍, 王 安
(中國人民公安大學(xué)信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院, 北京 102600)
機(jī)器學(xué)習(xí)技術(shù)在網(wǎng)絡(luò)安全檢測(cè)(垃圾郵件過濾、惡意程序檢測(cè)等)、圖像識(shí)別(人臉識(shí)別、圖像分類等)等一系列領(lǐng)域已經(jīng)得到廣泛的應(yīng)用[1]。隨著機(jī)器學(xué)習(xí)技術(shù)給人們帶來巨大便利的同時(shí),也出現(xiàn)了很多安全問題。因?yàn)樵趥鹘y(tǒng)的機(jī)器學(xué)習(xí)分類過程中是基于訓(xùn)練集和測(cè)試集具有相似的數(shù)據(jù)分布,通過對(duì)數(shù)據(jù)集進(jìn)行特征抽取,然后將處理后的數(shù)據(jù)集分成訓(xùn)練集和測(cè)試集兩部分進(jìn)而構(gòu)建出分類模型。然而在利益的驅(qū)使下,存在攻擊者通過使用一定的方法探測(cè)傳統(tǒng)分類器的漏洞,進(jìn)而修改數(shù)據(jù)集逃避分類器的檢測(cè)。如在垃圾郵件過濾中,攻擊者通常會(huì)修改或混淆一些垃圾詞語、增加合法詞語的數(shù)量來逃避分類器的檢測(cè)[2]。為了增強(qiáng)傳統(tǒng)機(jī)器學(xué)習(xí)分類器的魯棒性,需要在構(gòu)建分類模型時(shí)考慮到攻擊者的存在,因此提出了對(duì)抗環(huán)境下的機(jī)器學(xué)習(xí)。
目前關(guān)于對(duì)抗環(huán)境下機(jī)器學(xué)習(xí)的研究主要有兩個(gè)方向。一種是通過使用何種攻擊方式產(chǎn)生對(duì)抗樣本來攻擊生成的分類模型;另一種是為了應(yīng)對(duì)攻擊者對(duì)分類模型的攻擊,如何去進(jìn)行防御。Nelson[3]等人實(shí)現(xiàn)了在測(cè)試過程中對(duì)分類器模型的逃避攻擊,但其僅對(duì)線性分類器和凸分類器有效果。Battista[4]等人通過使用基于梯度的方法實(shí)現(xiàn)了對(duì)SVM算法的攻擊。在防御過程中,O’Sullivan[5]等人提出了通過增加冗余的特征信息來提升分類模型對(duì)抗攻擊的能力。張非[6]等人通過在對(duì)抗環(huán)境下進(jìn)行有效的特征選擇以此提高分類器的魯棒性。Battista[7-8]等人通過使用集成算法的思想把一些弱分類器集成一個(gè)強(qiáng)分類器提高分類器對(duì)抗逃避攻擊的性能。
本文通過將逃避攻擊過程中產(chǎn)生的對(duì)抗樣本添加到訓(xùn)練集中訓(xùn)練出新的分類器,然后模擬兩種不同的攻擊方法實(shí)現(xiàn)對(duì)改進(jìn)前后的KNN分類器進(jìn)行攻擊。實(shí)驗(yàn)結(jié)果表明,通過將攻擊過程中產(chǎn)生的對(duì)抗樣本添加到分類器的訓(xùn)練集中能夠有效地對(duì)抗逃避攻擊,提高分類器的魯棒性。
K近鄰算法(k-nearest neighbor, KNN)是假設(shè)給定一個(gè)訓(xùn)練數(shù)據(jù)集,其中的實(shí)例類別已定,分類時(shí)對(duì)新的實(shí)例根據(jù)其K個(gè)最近鄰的訓(xùn)練實(shí)例的類別,通過多數(shù)表決等方式進(jìn)行預(yù)測(cè)。這K個(gè)實(shí)例的多數(shù)據(jù)屬于某個(gè)類,就把該實(shí)例分為這個(gè)類。其算法如下。
輸入:訓(xùn)練數(shù)據(jù)集T={(x1,y1),(x2,y2)…(xN,yN)}
其中,xi∈χ?Rn為實(shí)例的特征向量,yi∈γ={c1,c2…ck}為實(shí)例的類別,i=1,2,…,N,Rn為n維實(shí)數(shù)向量空間。
輸出:實(shí)例x所屬的類γ。
(1)根據(jù)給定的距離度量,在訓(xùn)練集T中找出與x最近鄰的k個(gè)點(diǎn),涵蓋這k個(gè)點(diǎn)的x的鄰域記作Nk(x);
(2)在Nk(x)中根據(jù)分類決策規(guī)則(如多數(shù)表決)決定x的類別y:
(1)
式(1)中,I為指示函數(shù),即當(dāng)yi=cj時(shí)I為1,否則為0。
根據(jù)攻擊者在不同階段對(duì)分類器實(shí)施攻擊可以將攻擊分為兩類。分別是針對(duì)訓(xùn)練過程中的攻擊和針對(duì)測(cè)試過程中的攻擊。如表1所示,其中逃避攻擊是一種典型的發(fā)生在測(cè)試過程中的攻擊,該攻擊方式的限制是其不能修改訓(xùn)練集,也不能影響分類模型的生成。它通過在測(cè)試集中修改惡意樣本的特征,使得惡意樣本逃避分類器的檢測(cè),進(jìn)而達(dá)到降低分類器性能的效果。
表1 不同階段攻擊類型的分類
逃避攻擊是攻擊者通過使用一定的攻擊方式修改惡意樣本x使其能夠逃避分類器的檢測(cè),而且修改后的樣本x*與修改前的樣本x之間的變化差距最小,可以表示為在某個(gè)代價(jià)函數(shù)下,特征值的修改量最小??梢员硎緸椋?/p>
(2)
s.t.c(x′,x)≤K
(3)
其中g(shù)(x′)為代價(jià)函數(shù),c(x′,x)表示攻擊前后樣本x與修改后樣本x*之間的距離函數(shù),使用曼哈頓距離表示。K表示攻擊者的最大攻擊強(qiáng)度,即其能夠修改數(shù)據(jù)特征值的最大程度。下面介紹兩種常見的逃避攻擊方法。
1.2.1 梯度下降攻擊
攻擊者通常會(huì)使用不同的攻擊方法修改測(cè)試樣本,使其逃避分類器的檢測(cè)。其中梯度下降攻擊方法是一種簡單且有效的方法。該方法通過一定的方式修改惡意樣本的特征,使惡意樣本向著合法樣本的區(qū)域移動(dòng),使其被分類器錯(cuò)分為正常樣本。由于正常樣本和惡意樣本的特征差別較大,直接修改惡意樣本有時(shí)不能有效地逃避分類器的檢測(cè)。因此通常會(huì)先計(jì)算所有正常樣本屬性特征的平均值,然后使用梯度下降的攻擊方法生成對(duì)抗樣本逃避分類器的檢測(cè),降低分類器的可用性。
1.2.2 特征加法攻擊
特征加法攻擊通過向惡意樣本中嵌入正常樣本的特征,使得修改后的惡意樣本逃避分類器的檢測(cè)。該攻擊方法通常對(duì)添加正常樣本特征的個(gè)數(shù)有限制,對(duì)所有樣本中提取出每個(gè)特征的最大值和最小值。然后每次向惡意樣本中添加正常樣本的屬性值都要保持在最大值與最小值之間。由于該方法較容易實(shí)現(xiàn),可以應(yīng)用于很多分類算法,因此在逃避攻擊場(chǎng)景中被廣泛使用。
對(duì)抗環(huán)境下對(duì)機(jī)器學(xué)習(xí)算法的研究不僅是為了評(píng)估分類算法在面對(duì)攻擊時(shí)的安全性,更重要的是為了如何提高分類器面對(duì)攻擊時(shí)的魯棒性。逃避攻擊發(fā)生在分類模型的測(cè)試階段,攻擊者通過使用一定的方法修改惡意樣本的特征值改變數(shù)據(jù)的分布使其逃避分類器的檢測(cè),進(jìn)而降低了分類模型的可用性。關(guān)于如何構(gòu)建一個(gè)魯棒性較好的分類模型,現(xiàn)有的方法有:采用博弈論的思想,Globerson[10]等人從博弈論中的納什均衡的角度,通過在測(cè)試時(shí)最壞情況下進(jìn)行特征加入、刪減特征、修改特征的方法提高SVM算法的性能。集成多分類器的方法,Battista[11]等人通過使用隨機(jī)子空間的方法降低測(cè)試集中的攻擊對(duì)分類器的影響,結(jié)果顯示能夠有效地對(duì)抗攻擊者的攻擊。這些防御措施雖然提高了分類器的魯棒性,但僅僅考慮分類器面對(duì)攻擊時(shí)的魯棒性是不夠的,還需要考慮其在無攻擊時(shí)的分類性能。因此,分類器不管在有無攻擊的情況下都應(yīng)該具有較小的分類誤差,在對(duì)抗逃避攻擊時(shí)訓(xùn)練分類器的過程是一個(gè)多目標(biāo)優(yōu)化的過程[12],如公式(4)所示:
(4)
其中L(A=0|f)代表分類器f在無攻擊時(shí)的分類誤差;L(A=1|f)代表分類器f在有攻擊時(shí)的分類誤差。具體步驟如下:
(1)使用訓(xùn)練數(shù)據(jù)集訓(xùn)練出KNN分類模型,并使用測(cè)試集驗(yàn)證模型的性能。
(2)使用逃避攻擊方法修改測(cè)試數(shù)據(jù)生成對(duì)抗樣本,實(shí)現(xiàn)對(duì)KNN分類模型的攻擊。
(3)將攻擊產(chǎn)生的對(duì)抗樣本添加到訓(xùn)練數(shù)據(jù)集中,訓(xùn)練出新的分類模型。
(4)比較攻擊前后兩個(gè)模型在不同攻擊強(qiáng)度下分類的性能。
圖1 對(duì)抗環(huán)境下KNN算法的防御流程
實(shí)驗(yàn)使用的數(shù)據(jù)集來自Contagio[13]數(shù)據(jù)集,其中包含10 982個(gè)惡意PDF文件和5 000個(gè)正常PDF文件,本次實(shí)驗(yàn)選取其中的500個(gè)惡意PDF文件和500個(gè)正常PDF文件。通過使用基于關(guān)鍵字的方法表示PDF文件的特征,并根據(jù)每個(gè)PDF文件中每個(gè)關(guān)鍵詞出現(xiàn)的頻率賦予其不同的權(quán)重,最終選取特征為114維。并對(duì)每維數(shù)據(jù)進(jìn)行極差歸一化處理,使所有特征值的范圍在[0,1]之間,進(jìn)而消除不同屬性之間因量綱帶來的影響。
傳統(tǒng)的分類器通常只考慮分類器的分類精度,并未考慮到分類器面對(duì)攻擊時(shí)的魯棒性問題。對(duì)分類器性能評(píng)估的指標(biāo)有準(zhǔn)確率、漏報(bào)率、誤報(bào)率等。本文通過使用逃避攻擊的方法實(shí)現(xiàn)對(duì)KNN算法的攻擊,使得惡意PDF文件逃避分類器的檢測(cè),進(jìn)而被誤分為正常文件,導(dǎo)致分類器的分類精度下降、漏報(bào)率增加,因此實(shí)驗(yàn)采用準(zhǔn)確率和漏報(bào)率評(píng)估KNN分類器的性能。分類結(jié)果的混淆矩陣如表2所示。
表2 分類結(jié)果混淆矩陣
其中TP為真正例表示惡意PDF文件被正確的分類;FN為假反例表示惡意PDF文件被誤分為正常PDF文件;FP為假正例表示正常PDF文件被分類為惡意文件;TN為真反例表示正常PDF文件被正確分類。
(5)
(6)
實(shí)驗(yàn)中使用了1 000個(gè)數(shù)據(jù),為了評(píng)估改進(jìn)前后分類器在數(shù)據(jù)集上的性能,采用5折交叉驗(yàn)證的方法,首先將數(shù)據(jù)集隨機(jī)劃分為5個(gè)大小相等的子集,然后將其中的4個(gè)子集作為訓(xùn)練集,剩余的一個(gè)作為測(cè)試集,最后將5次結(jié)果的平均值作為最終的結(jié)果。實(shí)驗(yàn)中采用歐式距離度量不同惡意PDF文件之間的相似度。在KNN算法中近鄰數(shù)k的取值影響著分類模型的性能,其中k的取值越大,在分類過程中獲取與原始KNN分類模型具有相同的k個(gè)近鄰實(shí)例的能力就越弱,對(duì)此我們選擇k的值為5。
3.3.1 梯度下降的攻擊及防御結(jié)果分析
對(duì)于梯度下降攻擊是通過修改惡意PDF文件的特征屬性,因?yàn)槿绻麑?duì)惡意PDF文件中的特征屬性修改過大會(huì)影響PDF文件本身的特性。所以需要對(duì)最大的修改量有一個(gè)限制K,實(shí)驗(yàn)通過設(shè)置K=0,10,15,20,25,30來模擬不同的攻擊強(qiáng)度。實(shí)驗(yàn)結(jié)果如表3所示,在無攻擊的情況下(K=0)分類器分類的準(zhǔn)確率為99.7%,漏報(bào)率為0.3%,說明KNN分類算法在無攻擊的情況下具有很好的分類效果。但是當(dāng)存在梯度下降攻擊時(shí),隨著攻擊強(qiáng)度的增加,KNN分類模型的分類準(zhǔn)確率不斷下降,當(dāng)攻擊強(qiáng)度K=30時(shí),分類器的分類精度由最開始的99.7%降低到45.3%,降低了54.4%,漏報(bào)率由最初的0.3%上升至52.8%,增加了52.5%。
通過將梯度下降攻擊過程中產(chǎn)生的對(duì)抗樣本添加到訓(xùn)練集中后,重新訓(xùn)練出防御后的KNN分類模型,以此來提高分類器的魯棒性。當(dāng)攻擊強(qiáng)度K=10時(shí),在防御后的KNN分類模型在分類精度和漏報(bào)率上均有提升。隨著攻擊強(qiáng)度的增加,該防御方法的效果逐漸顯著,當(dāng)攻擊強(qiáng)度K為20、30時(shí),改進(jìn)后分類模型的正確率穩(wěn)定在80%左右,分類精度相較于改進(jìn)前提高了33.7%和34.9%,漏報(bào)率降低了42.8%和44%。結(jié)果表明通過將攻擊產(chǎn)生對(duì)抗樣本添加到訓(xùn)練集中,訓(xùn)練出新的KNN分類模型能夠有效對(duì)抗梯度下降攻擊。
表3 梯度下降攻擊對(duì)改進(jìn)前后KNN分類模型的影響
3.3.2 特征加法的攻擊及防御結(jié)果分析
基于特征加法的攻擊,首先對(duì)數(shù)據(jù)集中正常PDF文件的特征屬性根據(jù)其出現(xiàn)的次數(shù)進(jìn)行排序,選取權(quán)重在前25的屬性特征。攻擊強(qiáng)度的定義為每次向惡意PDF文件中添加正常PDF文件的屬性特征的數(shù)量。實(shí)驗(yàn)結(jié)果如表4所示,在無攻擊的情況下(K=0)KNN分類器具有較高的檢測(cè)率。在攻擊強(qiáng)度K=5和K=10時(shí),分類器的分類精度下降最快,分別下降了8.9%和16.4%,漏報(bào)率由最初的0.3%上升到15.4%。這是由于起始添加的特征屬性在正常PDF文件特征屬性中的權(quán)重比較大,這些特征屬性添加到惡意PDF文件中,能夠有效地影響惡意PDF文件在樣本空間中的分布,進(jìn)而導(dǎo)致KNN分類器誤分類,降低分類模型的分類精度。
表4 特征加法攻擊對(duì)改進(jìn)前后KNN分類器的影響
相同的攻擊強(qiáng)度下,防御后的KNN分類模型在分類精度和漏報(bào)率上效果均有所提升。在攻擊強(qiáng)度K=5和K=10時(shí),相比較與改進(jìn)前的分類模型分類精度和漏報(bào)率分別提升了6.7%和6.9%。繼續(xù)增加攻擊強(qiáng)度,對(duì)防御前后的分類模型的影響逐漸減小,原因是后續(xù)添加的正常樣本特征屬性對(duì)惡意樣本分布的改變效果較小,但是防御后的KNN分類模型分類效果以及分類模型的魯棒性仍優(yōu)于初始分類模型,說明將對(duì)抗樣本添加到訓(xùn)練集中能夠有效地對(duì)抗基于特征加法的攻擊。
本文通過使用梯度下降攻擊、特征加法攻擊兩種逃避攻擊方法實(shí)現(xiàn)對(duì)KNN分類模型的攻擊,證明了傳統(tǒng)的KNN分類算法在對(duì)抗環(huán)境下的魯棒性較差;并將攻擊產(chǎn)生的對(duì)抗樣本添加到訓(xùn)練集中訓(xùn)練出新的KNN分類器,然后再模擬不同強(qiáng)度的攻擊來驗(yàn)證新的分類器的性能。實(shí)驗(yàn)結(jié)果表明,將逃避攻擊過程中產(chǎn)生的對(duì)抗樣本添加到訓(xùn)練集中能夠有效提升KNN分類模型對(duì)抗逃避攻擊的能力,提高分類模型的魯棒性。方法的不足之處在于,將攻擊過程產(chǎn)生的對(duì)抗樣本添加到訓(xùn)練集中,雖然能夠在一定程度上提高KNN分類模型的分類精度、降低漏報(bào)率,但是在特征加法攻擊的防御上效果一般。在未來的工作中計(jì)劃將對(duì)抗樣本信息與集成多分類器相結(jié)合來提高分類模型的魯棒性。