趙 荷,蓋 玲
(1.成都東軟學(xué)院 計(jì)算機(jī)科學(xué)與工程系,四川 成都 611844;2.上海大學(xué) 管理學(xué)院,上海 200444)
隨著信息技術(shù)的普及,第三方在線服務(wù)普遍采用學(xué)習(xí)算法從海量用戶數(shù)據(jù)中提取有價(jià)值信息[1]。然而,若用戶數(shù)據(jù)遭受病毒攻擊(如數(shù)據(jù)篡改、數(shù)據(jù)丟失等),病毒攻擊者只需要控制并操縱小部分訓(xùn)練數(shù)據(jù)便足以破壞學(xué)習(xí)算法執(zhí)行的過程和結(jié)果[2]。因此,為了評(píng)價(jià)學(xué)習(xí)算法對(duì)病毒數(shù)據(jù)的魯棒性,生成數(shù)據(jù)病毒攻擊樣本顯得非常有必要。
數(shù)據(jù)病毒攻擊樣本的生成算法本質(zhì)上是一個(gè)雙層優(yōu)化問題,即外部優(yōu)化問題需最大化清潔未受病毒攻擊的驗(yàn)證集的分類錯(cuò)誤,而內(nèi)部優(yōu)化問題則需利用病毒數(shù)據(jù)對(duì)學(xué)習(xí)算法進(jìn)行訓(xùn)練。如文獻(xiàn)[3]提出一個(gè)提取多步驟攻擊場(chǎng)景的方法,該方法可有效模擬了部分?jǐn)?shù)據(jù)病毒攻擊場(chǎng)景,但采研究的數(shù)據(jù)病毒攻擊方法無法覆蓋所有的攻擊場(chǎng)景,即算法適用性有待考慮。文獻(xiàn)[4]對(duì)大規(guī)模數(shù)據(jù)庫的高危攻擊數(shù)據(jù)進(jìn)行挖掘,提出基于粒子群優(yōu)化的關(guān)聯(lián)規(guī)則映射挖掘算法,但粒子群算法對(duì)離散型優(yōu)化問題處理不佳,且易陷入局部最優(yōu)。文獻(xiàn)[5]提出基于蟻群算法與粒子群相結(jié)合的網(wǎng)絡(luò)安全評(píng)估的攻擊圖生成方法,但蟻群算法存在收斂速度慢的缺點(diǎn),對(duì)于規(guī)模龐大的用戶數(shù)據(jù)而言,蟻群算法可能存在問題無解的風(fēng)險(xiǎn)。文獻(xiàn)[6]提出了基于安卓系統(tǒng)的代碼隱藏類規(guī)避技術(shù)檢測(cè)框架,但僅針對(duì)特定類的惡意軟件進(jìn)行討論,算法適用性不強(qiáng)。
基于上述分析,提出了一種基于反向梯度優(yōu)化的深度學(xué)習(xí)算法實(shí)現(xiàn)病毒數(shù)據(jù)樣本生成方法,主要?jiǎng)?chuàng)新點(diǎn)為:
(1)在總結(jié)歸納病毒數(shù)據(jù)攻擊場(chǎng)景的基礎(chǔ)上,提出了一種通用病毒數(shù)據(jù)樣本生成模型,涵蓋了多種類型病毒攻擊場(chǎng)景,從而生成的數(shù)據(jù)病毒攻擊樣本的適用范圍得到擴(kuò)大。
(2)引入反向傳播機(jī)制,通過逆向自動(dòng)微分機(jī)制計(jì)算用戶興趣梯度,同時(shí)對(duì)底層學(xué)習(xí)進(jìn)行反向訓(xùn)練以實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)參數(shù)的優(yōu)化調(diào)整,從而實(shí)現(xiàn)了在較小數(shù)量的訓(xùn)練迭代次數(shù)的前提下獲取最優(yōu)的病毒數(shù)據(jù)樣本。
在提出針對(duì)在線服務(wù)學(xué)習(xí)算法的數(shù)據(jù)病毒攻擊樣本生成算法之前,首先分析數(shù)據(jù)病毒種類、攻擊場(chǎng)景,從而制作響應(yīng)的攻擊樣本以實(shí)現(xiàn)對(duì)本文所提深度學(xué)習(xí)檢測(cè)算法的訓(xùn)練。根據(jù)發(fā)動(dòng)數(shù)據(jù)病毒攻擊的階段不同,可分為訓(xùn)練時(shí)攻擊和測(cè)試時(shí)攻擊兩類,常被稱為中毒攻擊和逃避攻擊[7,8],但總體上攻擊場(chǎng)景則可分為以下兩種基本類型:一般性病毒攻擊方式和特定的病毒攻擊方式。其它攻擊方式則是這兩類基本場(chǎng)景的衍生。
(1)一般性病毒攻擊。作為數(shù)據(jù)病毒攻擊最常見場(chǎng)景,其可導(dǎo)致例如雙標(biāo)簽學(xué)習(xí)算法失效而出現(xiàn)拒絕服務(wù)。根據(jù)是否影響特性系統(tǒng)或特定用戶的正常功能,該攻擊場(chǎng)景可自然擴(kuò)展到一般的多標(biāo)簽分類學(xué)習(xí)算法。其攻擊模型如式(1)和式(2)所示
(1)
(2)
(2)特定性病毒攻擊。特定性病毒攻擊場(chǎng)景希望學(xué)習(xí)算法出現(xiàn)攻擊方指定的最終分類結(jié)果,此類場(chǎng)景可用如式(3)所示的通式表示
(3)

對(duì)于數(shù)據(jù)病毒攻擊,基于深度學(xué)習(xí)的檢測(cè)算法具有較高的檢測(cè)精度,但傳統(tǒng)深度學(xué)習(xí)算法依賴于復(fù)雜的梯度計(jì)算過程[9]。
為降低問題求解難度首先作如下假設(shè),只有一個(gè)病毒數(shù)據(jù)xc,且對(duì)應(yīng)的初始標(biāo)簽yc由攻擊者選定并始終保持不變,則病毒數(shù)據(jù)檢測(cè)問題可簡化為
(4)
(5)
式中:函數(shù)Φ為病毒數(shù)據(jù)xc的約束,包括其值的上限和下限。所提出的基于反向梯度的病毒數(shù)據(jù)攻擊檢測(cè)方法如下:通過計(jì)算函數(shù)A梯度(即損失函數(shù)L)的下降梯度,以檢測(cè)病毒攻擊,基于鏈?zhǔn)揭?guī)則,函數(shù)A的梯度計(jì)算公式為
(6)

(7)
假設(shè)隱式函數(shù)是可微分的,則式(7)為一線性系統(tǒng)。

(8)

算法1:病毒攻擊樣本生成算法

(1)i←0 (迭代計(jì)數(shù))
(2)重復(fù)

(5)
i←i+1


(9)

(10)
雖然這種方法可以更有效地使學(xué)習(xí)算法中毒,但它需要求解精確解,這意味著平穩(wěn)性條件必須達(dá)到令人滿意的數(shù)值精度。但在收斂閾值設(shè)置地過于寬松的情況下,這些問題的解只能得到有限精度,可能會(huì)使梯度▽xcA不夠精確,從而影響攻擊檢測(cè)效果。
因此在實(shí)踐中,這種方法不能用于攻擊諸如神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)架構(gòu)等學(xué)習(xí)算法的病毒數(shù)據(jù)樣本生成,因?yàn)樗赡懿粌H難以導(dǎo)出涉及所有參數(shù)的適當(dāng)平穩(wěn)性條件[10],還可能因?yàn)橛?jì)算要求太高,無法以足夠的精度正確計(jì)算梯度▽xcA。
為克服基于傳統(tǒng)梯度病毒攻擊檢測(cè)方法的局限,提出改進(jìn)的反向梯度算法。基本思想是利用學(xué)習(xí)算法執(zhí)行一組迭代以替代內(nèi)部迭代優(yōu)化,從而更新學(xué)習(xí)參數(shù)w。所提方法允許從內(nèi)部問題的不完全優(yōu)化(即在有限次T迭代之后)獲取參數(shù)wT來計(jì)算外部問題的期望梯度。具體內(nèi)容為,設(shè)內(nèi)部迭代T次后,采用反向傳播的思想來計(jì)算外部目標(biāo)函數(shù)的梯度,因此與傳統(tǒng)的基于梯度的方法相比,僅需要針對(duì)學(xué)習(xí)算法進(jìn)行較少數(shù)量的訓(xùn)練迭代,從而有效降低了大型神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)算法的運(yùn)時(shí)間復(fù)雜度。但如果學(xué)習(xí)算法運(yùn)行迭代的次數(shù)T過多,此過程可能對(duì)內(nèi)存要求也會(huì)極高,特別是參數(shù)w的數(shù)量很大時(shí)(如在深度神經(jīng)網(wǎng)絡(luò)中),為了避免存儲(chǔ)整個(gè)訓(xùn)練軌跡w1,…,wT和所需的前向梯度,選擇在反向傳遞期間直接計(jì)算參數(shù)。傳統(tǒng)梯度下降算法和所提反向梯度算法的計(jì)算流程分別如算法2和算法3所示。
算法2:傳統(tǒng)梯度下降算法

(1)Fort=0,…,T-1do

(3)wt+1←wt-ηgt
(4)Endfor
輸出: 訓(xùn)練參數(shù)wT
算法3: 提出的反向梯度下降算法


(1)Fort=T,…,1do



(5)wt-1=wt+αgt-1
(6)Endfor
輸出:▽xcA=▽xcL+dxc
為驗(yàn)證所提算法對(duì)不同場(chǎng)景的適應(yīng)性,首先對(duì)比分析傳統(tǒng)梯度下降算法[9]和本文所提反向梯度優(yōu)化算法的性能優(yōu)劣性,并通過設(shè)置垃圾郵件過濾、惡意軟件檢測(cè)和手寫數(shù)字識(shí)別等3個(gè)應(yīng)用場(chǎng)景,再次對(duì)比研究通用性攻擊方式和特定性攻擊方式下典型的機(jī)器學(xué)習(xí)算法在不同應(yīng)用場(chǎng)景下的表現(xiàn)性能。實(shí)驗(yàn)結(jié)果較為明顯地顯示基于所提出的反向梯度優(yōu)化算法在病毒數(shù)據(jù)檢測(cè)和識(shí)別上較傳統(tǒng)梯度下降算法具有更好性能和準(zhǔn)確性,通過不同攻擊方式的對(duì)比分析還發(fā)現(xiàn),所提方法對(duì)不同攻擊方式下的數(shù)據(jù)識(shí)別檢測(cè)具有良好的適用性,因此相較于傳統(tǒng)方法具有更廣泛的適用范圍。
以病毒攻擊3類邏輯分類器為例進(jìn)行闡述,訓(xùn)練樣本選擇為100個(gè),驗(yàn)證樣本則選擇為31個(gè),采用所提反向梯度優(yōu)化算法時(shí)迭代次數(shù)T選擇為60。圖1示出了通用性攻擊(第一行)和特定性攻擊(第二行)兩種場(chǎng)景下的分類結(jié)果。
在特定性攻擊中,攻擊者目標(biāo)將灰色標(biāo)記的數(shù)據(jù)錯(cuò)誤地分類為黑色標(biāo)記的數(shù)據(jù),但同時(shí)保留其它數(shù)據(jù)點(diǎn)的標(biāo)簽。圖1中第一列為清潔數(shù)據(jù)的分類結(jié)果,而第二列為病毒數(shù)據(jù)攻擊后的分類結(jié)果,第三列為傳統(tǒng)梯度優(yōu)化算法[9]的損失函數(shù),而第四列為所提反向梯度優(yōu)化算法的損失函數(shù)。橫向?qū)Ρ鹊谌泻偷谒牧校瑢?duì)于通用性攻擊,所提反向梯度優(yōu)化算法的損失誤差比傳統(tǒng)梯度下降算法低58.7%;對(duì)于特定性攻擊,所提反向梯度優(yōu)化算法的損失誤差比傳統(tǒng)梯度下降算法[9]低71.2%。根據(jù)前文中損失函數(shù)定義,表明所提反向梯度優(yōu)化算法能夠有效降低病毒數(shù)據(jù)對(duì)清潔數(shù)據(jù)的影響。而縱向?qū)Ρ葓D1第三列和第四列,可知無論是傳統(tǒng)梯度下降算法還是所提反向梯度優(yōu)化算法,在特定性攻擊場(chǎng)景下,病毒數(shù)據(jù)對(duì)清潔數(shù)據(jù)的影響程度都更為嚴(yán)重。
在垃圾郵件過濾和惡意軟件檢測(cè)兩個(gè)應(yīng)用場(chǎng)景下,實(shí)驗(yàn)考慮兩個(gè)不同的數(shù)據(jù)集:Spambase數(shù)據(jù)集[11]和Ransomware數(shù)據(jù)集[12],分別進(jìn)行上述兩個(gè)場(chǎng)景下的算法適用性研究分析。Spambase數(shù)據(jù)集是一個(gè)包含4601封電子郵件的集合,其中包括1813封垃圾郵件,每封電子郵件都被編碼為一個(gè)由54個(gè)二進(jìn)制特征組成的特征向量,每個(gè)特征都表示電子郵件中是否存在某個(gè)特定單詞;Ransomware數(shù)據(jù)集包含530個(gè)勒索軟件樣本和549個(gè)benign應(yīng)用程序,具有400個(gè)二進(jìn)制特征,可在軟件執(zhí)行器間進(jìn)行不同的操作任務(wù)、API調(diào)用以及文件系統(tǒng)和注冊(cè)表項(xiàng)中的修改。

圖1 針對(duì)多類邏輯分類器的3類合成數(shù)據(jù)集的通用性和特定性病毒攻擊
此外,實(shí)驗(yàn)同樣考慮了不同深度學(xué)習(xí)算法下采用所提反向梯度優(yōu)化算法的性能。選用3種常見算法進(jìn)行分析:①多層感知器(multi-layer perceptron,MLP)[13],其中隱含層由10個(gè)使用雙曲正切激活函數(shù)的神經(jīng)元組成,而輸出層則使用Softmax函數(shù);②Logistic回歸(Logistic regression,LR)[14];③Adaline神經(jīng)網(wǎng)絡(luò)[15]。而式(4)中損失函數(shù)的選擇,對(duì)于MLP和LR算法,采用交叉熵作為損失函數(shù),對(duì)于Adaline神經(jīng)網(wǎng)絡(luò),采用均方誤差作為損失函數(shù)。

圖2示出了PK攻擊方式下,測(cè)試樣本的誤差率隨攻擊點(diǎn)在訓(xùn)練集中的分?jǐn)?shù)的變化情況。可以看到,病毒攻擊會(huì)嚴(yán)重影響所有分類算法的性能。無論是垃圾郵件過濾算例還是惡意軟件檢測(cè)算例,各學(xué)習(xí)算法對(duì)病毒數(shù)據(jù)的影響十分敏感,即便攻擊者只控制了15個(gè)訓(xùn)練數(shù)據(jù)樣本,也會(huì)導(dǎo)致3類學(xué)習(xí)算法發(fā)生超過15%的分類誤差。但從圖2中也可發(fā)現(xiàn),對(duì)于垃圾郵件過濾算例,Adaline算法抵抗數(shù)據(jù)病毒攻擊能力強(qiáng)于MLP和LR算法,而對(duì)于惡意軟件過濾算例,MLP算法雖然在病毒樣本較少時(shí)誤差率較高,但隨著病毒樣本的增大,LR算法和Adaline算法的誤差率會(huì)高于MLP算法,故MLP算法對(duì)數(shù)據(jù)病毒攻擊的抵抗能力總體強(qiáng)于LR算法和Adaline算法。

圖2 PK病毒攻擊的結(jié)果
類似地,分析LK-SL攻擊場(chǎng)景下,不同學(xué)習(xí)算法對(duì)數(shù)據(jù)病毒攻擊的魯棒性能。圖3示出了Spambase數(shù)據(jù)集和Ransomware數(shù)據(jù)集下隨病毒數(shù)據(jù)對(duì)3類典型深度學(xué)習(xí)算法的影響。可見,隨著病毒數(shù)據(jù)的增多,測(cè)試樣本的分類誤差隨之增大。

圖3 LK-SL病毒攻擊的結(jié)果
進(jìn)一步考慮手寫數(shù)字識(shí)別場(chǎng)景下,生成的病毒數(shù)據(jù)樣本對(duì)識(shí)別結(jié)果的影響。其中,分類器需要識(shí)別0到9共計(jì)10個(gè)數(shù)字,采用MNIST數(shù)據(jù)集[16]作為樣本,每個(gè)類別中的數(shù)字圖像由28×28=784個(gè)像素,范圍從0到255的灰度圖組成。每幅圖像的像素值進(jìn)行歸一化處理,均除以255作為其特征。分類函數(shù)采用Softmax激活函數(shù),并采用對(duì)數(shù)函數(shù)作為損失函數(shù)來評(píng)估通用性數(shù)據(jù)病毒攻擊和特定性數(shù)據(jù)病毒攻擊對(duì)多類分類器的影響。設(shè)置本實(shí)驗(yàn)的目的在于,驗(yàn)證病毒數(shù)據(jù)對(duì)深度學(xué)習(xí)算法的適用性,進(jìn)而驗(yàn)證所提樣本生成算法適用范圍廣泛性。為此,選用兩個(gè)常用的針對(duì)圖像檢測(cè)的深度學(xué)習(xí)檢測(cè)算法:①卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)算法;②Logistic回歸(Logistic regression,LR)算法。
為便于分析,實(shí)驗(yàn)中僅考慮識(shí)別數(shù)字1、5和6。采用1000個(gè)樣本進(jìn)行訓(xùn)練,8000個(gè)樣本進(jìn)行測(cè)試,采用本文所提反向梯度優(yōu)化算法生成病毒樣本時(shí)(即計(jì)算反向梯度▽xcA),迭代次數(shù)T=60。圖4和圖5分別示出了不同識(shí)別算法對(duì)病毒樣本的識(shí)別結(jié)果。從圖中可見,無論是CNN算法還是LR算法,均對(duì)病毒數(shù)據(jù)敏感,即含病毒數(shù)據(jù)的樣本對(duì)手寫數(shù)字識(shí)別的最終結(jié)果具有較為明顯的影響。

圖4 針對(duì)CNN的病毒樣本

圖5 針對(duì)LR的病毒樣本
此外,縱向?qū)Ρ葓D4和圖5可知,相同病毒數(shù)據(jù)攻擊下,LR分類算法對(duì)圖像的識(shí)別準(zhǔn)確度高于CNN算法。換言之,LR算法對(duì)病毒樣本的抵抗性要強(qiáng)于CNN算法。因此,所提病毒數(shù)據(jù)樣本生成算法能夠有效檢測(cè)圖像辨識(shí)算法的有效性,即適應(yīng)性較強(qiáng)。
在線服務(wù)通過學(xué)習(xí)算法雖然能夠通過用戶數(shù)據(jù)分析提取有價(jià)值的信息,但用戶數(shù)據(jù)易受到病毒攻擊風(fēng)險(xiǎn),從而對(duì)最終分析結(jié)果的準(zhǔn)確性造成不利影響。通用性強(qiáng)的病毒數(shù)據(jù)樣本對(duì)評(píng)價(jià)不同算法的魯棒性至關(guān)重要。本文提出了一種基于反向梯度優(yōu)化的深度學(xué)習(xí)算法病毒樣本生成算法,通過自動(dòng)反向微分機(jī)制以降低算法空間復(fù)雜度和時(shí)間復(fù)雜度。垃圾郵件過濾、惡意軟件檢測(cè)和手寫數(shù)字識(shí)別等應(yīng)用算例結(jié)果顯示,所提病毒數(shù)據(jù)樣本能夠有效地開展對(duì)不同深度學(xué)習(xí)算法檢測(cè)性能的評(píng)估。
未來將進(jìn)一步深入研究考慮病毒數(shù)據(jù)攻擊時(shí)各類深度學(xué)習(xí)算法準(zhǔn)確度提升問題,即通過設(shè)計(jì)考慮病毒數(shù)據(jù)攻擊時(shí)的深度學(xué)習(xí)算法訓(xùn)練機(jī)制,進(jìn)一步提升算法魯棒性,從而提高深度學(xué)習(xí)算法的準(zhǔn)確率。