趙 荷,蓋 玲
(1.成都東軟學(xué)院 計算機科學(xué)與工程系,四川 成都 611844;2.上海大學(xué) 管理學(xué)院,上海 200444)
隨著信息技術(shù)的普及,第三方在線服務(wù)普遍采用學(xué)習(xí)算法從海量用戶數(shù)據(jù)中提取有價值信息[1]。然而,若用戶數(shù)據(jù)遭受病毒攻擊(如數(shù)據(jù)篡改、數(shù)據(jù)丟失等),病毒攻擊者只需要控制并操縱小部分訓(xùn)練數(shù)據(jù)便足以破壞學(xué)習(xí)算法執(zhí)行的過程和結(jié)果[2]。因此,為了評價學(xué)習(xí)算法對病毒數(shù)據(jù)的魯棒性,生成數(shù)據(jù)病毒攻擊樣本顯得非常有必要。
數(shù)據(jù)病毒攻擊樣本的生成算法本質(zhì)上是一個雙層優(yōu)化問題,即外部優(yōu)化問題需最大化清潔未受病毒攻擊的驗證集的分類錯誤,而內(nèi)部優(yōu)化問題則需利用病毒數(shù)據(jù)對學(xué)習(xí)算法進行訓(xùn)練。如文獻[3]提出一個提取多步驟攻擊場景的方法,該方法可有效模擬了部分數(shù)據(jù)病毒攻擊場景,但采研究的數(shù)據(jù)病毒攻擊方法無法覆蓋所有的攻擊場景,即算法適用性有待考慮。文獻[4]對大規(guī)模數(shù)據(jù)庫的高危攻擊數(shù)據(jù)進行挖掘,提出基于粒子群優(yōu)化的關(guān)聯(lián)規(guī)則映射挖掘算法,但粒子群算法對離散型優(yōu)化問題處理不佳,且易陷入局部最優(yōu)。文獻[5]提出基于蟻群算法與粒子群相結(jié)合的網(wǎng)絡(luò)安全評估的攻擊圖生成方法,但蟻群算法存在收斂速度慢的缺點,對于規(guī)模龐大的用戶數(shù)據(jù)而言,蟻群算法可能存在問題無解的風(fēng)險。文獻[6]提出了基于安卓系統(tǒng)的代碼隱藏類規(guī)避技術(shù)檢測框架,但僅針對特定類的惡意軟件進行討論,算法適用性不強。
基于上述分析,提出了一種基于反向梯度優(yōu)化的深度學(xué)習(xí)算法實現(xiàn)病毒數(shù)據(jù)樣本生成方法,主要創(chuàng)新點為:
(1)在總結(jié)歸納病毒數(shù)據(jù)攻擊場景的基礎(chǔ)上,提出了一種通用病毒數(shù)據(jù)樣本生成模型,涵蓋了多種類型病毒攻擊場景,從而生成的數(shù)據(jù)病毒攻擊樣本的適用范圍得到擴大。
(2)引入反向傳播機制,通過逆向自動微分機制計算用戶興趣梯度,同時對底層學(xué)習(xí)進行反向訓(xùn)練以實現(xiàn)神經(jīng)網(wǎng)絡(luò)參數(shù)的優(yōu)化調(diào)整,從而實現(xiàn)了在較小數(shù)量的訓(xùn)練迭代次數(shù)的前提下獲取最優(yōu)的病毒數(shù)據(jù)樣本。
在提出針對在線服務(wù)學(xué)習(xí)算法的數(shù)據(jù)病毒攻擊樣本生成算法之前,首先分析數(shù)據(jù)病毒種類、攻擊場景,從而制作響應(yīng)的攻擊樣本以實現(xiàn)對本文所提深度學(xué)習(xí)檢測算法的訓(xùn)練。根據(jù)發(fā)動數(shù)據(jù)病毒攻擊的階段不同,可分為訓(xùn)練時攻擊和測試時攻擊兩類,常被稱為中毒攻擊和逃避攻擊[7,8],但總體上攻擊場景則可分為以下兩種基本類型:一般性病毒攻擊方式和特定的病毒攻擊方式。其它攻擊方式則是這兩類基本場景的衍生。
(1)一般性病毒攻擊。作為數(shù)據(jù)病毒攻擊最常見場景,其可導(dǎo)致例如雙標簽學(xué)習(xí)算法失效而出現(xiàn)拒絕服務(wù)。根據(jù)是否影響特性系統(tǒng)或特定用戶的正常功能,該攻擊場景可自然擴展到一般的多標簽分類學(xué)習(xí)算法。其攻擊模型如式(1)和式(2)所示
(1)
(2)
(2)特定性病毒攻擊。特定性病毒攻擊場景希望學(xué)習(xí)算法出現(xiàn)攻擊方指定的最終分類結(jié)果,此類場景可用如式(3)所示的通式表示
(3)
對于數(shù)據(jù)病毒攻擊,基于深度學(xué)習(xí)的檢測算法具有較高的檢測精度,但傳統(tǒng)深度學(xué)習(xí)算法依賴于復(fù)雜的梯度計算過程[9]。
為降低問題求解難度首先作如下假設(shè),只有一個病毒數(shù)據(jù)xc,且對應(yīng)的初始標簽yc由攻擊者選定并始終保持不變,則病毒數(shù)據(jù)檢測問題可簡化為
(4)
(5)
式中:函數(shù)Φ為病毒數(shù)據(jù)xc的約束,包括其值的上限和下限。所提出的基于反向梯度的病毒數(shù)據(jù)攻擊檢測方法如下:通過計算函數(shù)A梯度(即損失函數(shù)L)的下降梯度,以檢測病毒攻擊,基于鏈式規(guī)則,函數(shù)A的梯度計算公式為
(6)
(7)
假設(shè)隱式函數(shù)是可微分的,則式(7)為一線性系統(tǒng)。
(8)
算法1:病毒攻擊樣本生成算法
(1)i←0 (迭代計數(shù))
(2)重復(fù)
(5)
i←i+1
(9)
(10)
雖然這種方法可以更有效地使學(xué)習(xí)算法中毒,但它需要求解精確解,這意味著平穩(wěn)性條件必須達到令人滿意的數(shù)值精度。但在收斂閾值設(shè)置地過于寬松的情況下,這些問題的解只能得到有限精度,可能會使梯度▽xcA不夠精確,從而影響攻擊檢測效果。
因此在實踐中,這種方法不能用于攻擊諸如神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)架構(gòu)等學(xué)習(xí)算法的病毒數(shù)據(jù)樣本生成,因為它可能不僅難以導(dǎo)出涉及所有參數(shù)的適當平穩(wěn)性條件[10],還可能因為計算要求太高,無法以足夠的精度正確計算梯度▽xcA。
為克服基于傳統(tǒng)梯度病毒攻擊檢測方法的局限,提出改進的反向梯度算法?;舅枷胧抢脤W(xué)習(xí)算法執(zhí)行一組迭代以替代內(nèi)部迭代優(yōu)化,從而更新學(xué)習(xí)參數(shù)w。所提方法允許從內(nèi)部問題的不完全優(yōu)化(即在有限次T迭代之后)獲取參數(shù)wT來計算外部問題的期望梯度。具體內(nèi)容為,設(shè)內(nèi)部迭代T次后,采用反向傳播的思想來計算外部目標函數(shù)的梯度,因此與傳統(tǒng)的基于梯度的方法相比,僅需要針對學(xué)習(xí)算法進行較少數(shù)量的訓(xùn)練迭代,從而有效降低了大型神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)算法的運時間復(fù)雜度。但如果學(xué)習(xí)算法運行迭代的次數(shù)T過多,此過程可能對內(nèi)存要求也會極高,特別是參數(shù)w的數(shù)量很大時(如在深度神經(jīng)網(wǎng)絡(luò)中),為了避免存儲整個訓(xùn)練軌跡w1,…,wT和所需的前向梯度,選擇在反向傳遞期間直接計算參數(shù)。傳統(tǒng)梯度下降算法和所提反向梯度算法的計算流程分別如算法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īng)性,首先對比分析傳統(tǒng)梯度下降算法[9]和本文所提反向梯度優(yōu)化算法的性能優(yōu)劣性,并通過設(shè)置垃圾郵件過濾、惡意軟件檢測和手寫數(shù)字識別等3個應(yīng)用場景,再次對比研究通用性攻擊方式和特定性攻擊方式下典型的機器學(xué)習(xí)算法在不同應(yīng)用場景下的表現(xiàn)性能。實驗結(jié)果較為明顯地顯示基于所提出的反向梯度優(yōu)化算法在病毒數(shù)據(jù)檢測和識別上較傳統(tǒng)梯度下降算法具有更好性能和準確性,通過不同攻擊方式的對比分析還發(fā)現(xiàn),所提方法對不同攻擊方式下的數(shù)據(jù)識別檢測具有良好的適用性,因此相較于傳統(tǒng)方法具有更廣泛的適用范圍。
以病毒攻擊3類邏輯分類器為例進行闡述,訓(xùn)練樣本選擇為100個,驗證樣本則選擇為31個,采用所提反向梯度優(yōu)化算法時迭代次數(shù)T選擇為60。圖1示出了通用性攻擊(第一行)和特定性攻擊(第二行)兩種場景下的分類結(jié)果。
在特定性攻擊中,攻擊者目標將灰色標記的數(shù)據(jù)錯誤地分類為黑色標記的數(shù)據(jù),但同時保留其它數(shù)據(jù)點的標簽。圖1中第一列為清潔數(shù)據(jù)的分類結(jié)果,而第二列為病毒數(shù)據(jù)攻擊后的分類結(jié)果,第三列為傳統(tǒng)梯度優(yōu)化算法[9]的損失函數(shù),而第四列為所提反向梯度優(yōu)化算法的損失函數(shù)。橫向?qū)Ρ鹊谌泻偷谒牧?,對于通用性攻擊,所提反向梯度?yōu)化算法的損失誤差比傳統(tǒng)梯度下降算法低58.7%;對于特定性攻擊,所提反向梯度優(yōu)化算法的損失誤差比傳統(tǒng)梯度下降算法[9]低71.2%。根據(jù)前文中損失函數(shù)定義,表明所提反向梯度優(yōu)化算法能夠有效降低病毒數(shù)據(jù)對清潔數(shù)據(jù)的影響。而縱向?qū)Ρ葓D1第三列和第四列,可知無論是傳統(tǒng)梯度下降算法還是所提反向梯度優(yōu)化算法,在特定性攻擊場景下,病毒數(shù)據(jù)對清潔數(shù)據(jù)的影響程度都更為嚴重。
在垃圾郵件過濾和惡意軟件檢測兩個應(yīng)用場景下,實驗考慮兩個不同的數(shù)據(jù)集:Spambase數(shù)據(jù)集[11]和Ransomware數(shù)據(jù)集[12],分別進行上述兩個場景下的算法適用性研究分析。Spambase數(shù)據(jù)集是一個包含4601封電子郵件的集合,其中包括1813封垃圾郵件,每封電子郵件都被編碼為一個由54個二進制特征組成的特征向量,每個特征都表示電子郵件中是否存在某個特定單詞;Ransomware數(shù)據(jù)集包含530個勒索軟件樣本和549個benign應(yīng)用程序,具有400個二進制特征,可在軟件執(zhí)行器間進行不同的操作任務(wù)、API調(diào)用以及文件系統(tǒng)和注冊表項中的修改。
圖1 針對多類邏輯分類器的3類合成數(shù)據(jù)集的通用性和特定性病毒攻擊
此外,實驗同樣考慮了不同深度學(xué)習(xí)算法下采用所提反向梯度優(yōu)化算法的性能。選用3種常見算法進行分析:①多層感知器(multi-layer perceptron,MLP)[13],其中隱含層由10個使用雙曲正切激活函數(shù)的神經(jīng)元組成,而輸出層則使用Softmax函數(shù);②Logistic回歸(Logistic regression,LR)[14];③Adaline神經(jīng)網(wǎng)絡(luò)[15]。而式(4)中損失函數(shù)的選擇,對于MLP和LR算法,采用交叉熵作為損失函數(shù),對于Adaline神經(jīng)網(wǎng)絡(luò),采用均方誤差作為損失函數(shù)。
圖2示出了PK攻擊方式下,測試樣本的誤差率隨攻擊點在訓(xùn)練集中的分數(shù)的變化情況??梢钥吹?,病毒攻擊會嚴重影響所有分類算法的性能。無論是垃圾郵件過濾算例還是惡意軟件檢測算例,各學(xué)習(xí)算法對病毒數(shù)據(jù)的影響十分敏感,即便攻擊者只控制了15個訓(xùn)練數(shù)據(jù)樣本,也會導(dǎo)致3類學(xué)習(xí)算法發(fā)生超過15%的分類誤差。但從圖2中也可發(fā)現(xiàn),對于垃圾郵件過濾算例,Adaline算法抵抗數(shù)據(jù)病毒攻擊能力強于MLP和LR算法,而對于惡意軟件過濾算例,MLP算法雖然在病毒樣本較少時誤差率較高,但隨著病毒樣本的增大,LR算法和Adaline算法的誤差率會高于MLP算法,故MLP算法對數(shù)據(jù)病毒攻擊的抵抗能力總體強于LR算法和Adaline算法。
圖2 PK病毒攻擊的結(jié)果
類似地,分析LK-SL攻擊場景下,不同學(xué)習(xí)算法對數(shù)據(jù)病毒攻擊的魯棒性能。圖3示出了Spambase數(shù)據(jù)集和Ransomware數(shù)據(jù)集下隨病毒數(shù)據(jù)對3類典型深度學(xué)習(xí)算法的影響??梢?,隨著病毒數(shù)據(jù)的增多,測試樣本的分類誤差隨之增大。
圖3 LK-SL病毒攻擊的結(jié)果
進一步考慮手寫數(shù)字識別場景下,生成的病毒數(shù)據(jù)樣本對識別結(jié)果的影響。其中,分類器需要識別0到9共計10個數(shù)字,采用MNIST數(shù)據(jù)集[16]作為樣本,每個類別中的數(shù)字圖像由28×28=784個像素,范圍從0到255的灰度圖組成。每幅圖像的像素值進行歸一化處理,均除以255作為其特征。分類函數(shù)采用Softmax激活函數(shù),并采用對數(shù)函數(shù)作為損失函數(shù)來評估通用性數(shù)據(jù)病毒攻擊和特定性數(shù)據(jù)病毒攻擊對多類分類器的影響。設(shè)置本實驗的目的在于,驗證病毒數(shù)據(jù)對深度學(xué)習(xí)算法的適用性,進而驗證所提樣本生成算法適用范圍廣泛性。為此,選用兩個常用的針對圖像檢測的深度學(xué)習(xí)檢測算法:①卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)算法;②Logistic回歸(Logistic regression,LR)算法。
為便于分析,實驗中僅考慮識別數(shù)字1、5和6。采用1000個樣本進行訓(xùn)練,8000個樣本進行測試,采用本文所提反向梯度優(yōu)化算法生成病毒樣本時(即計算反向梯度▽xcA),迭代次數(shù)T=60。圖4和圖5分別示出了不同識別算法對病毒樣本的識別結(jié)果。從圖中可見,無論是CNN算法還是LR算法,均對病毒數(shù)據(jù)敏感,即含病毒數(shù)據(jù)的樣本對手寫數(shù)字識別的最終結(jié)果具有較為明顯的影響。
圖4 針對CNN的病毒樣本
圖5 針對LR的病毒樣本
此外,縱向?qū)Ρ葓D4和圖5可知,相同病毒數(shù)據(jù)攻擊下,LR分類算法對圖像的識別準確度高于CNN算法。換言之,LR算法對病毒樣本的抵抗性要強于CNN算法。因此,所提病毒數(shù)據(jù)樣本生成算法能夠有效檢測圖像辨識算法的有效性,即適應(yīng)性較強。
在線服務(wù)通過學(xué)習(xí)算法雖然能夠通過用戶數(shù)據(jù)分析提取有價值的信息,但用戶數(shù)據(jù)易受到病毒攻擊風(fēng)險,從而對最終分析結(jié)果的準確性造成不利影響。通用性強的病毒數(shù)據(jù)樣本對評價不同算法的魯棒性至關(guān)重要。本文提出了一種基于反向梯度優(yōu)化的深度學(xué)習(xí)算法病毒樣本生成算法,通過自動反向微分機制以降低算法空間復(fù)雜度和時間復(fù)雜度。垃圾郵件過濾、惡意軟件檢測和手寫數(shù)字識別等應(yīng)用算例結(jié)果顯示,所提病毒數(shù)據(jù)樣本能夠有效地開展對不同深度學(xué)習(xí)算法檢測性能的評估。
未來將進一步深入研究考慮病毒數(shù)據(jù)攻擊時各類深度學(xué)習(xí)算法準確度提升問題,即通過設(shè)計考慮病毒數(shù)據(jù)攻擊時的深度學(xué)習(xí)算法訓(xùn)練機制,進一步提升算法魯棒性,從而提高深度學(xué)習(xí)算法的準確率。