楊琦,賈鵬,劉嘉勇
(四川大學網(wǎng)絡(luò)空間安全學院,成都610225)
國際知名安全實驗室McAfee Lab對2020年上半年總題惡意軟件攻擊情況的研究表明,今年上半年觀測到的惡意軟件的威脅數(shù)量持續(xù)上升,每分鐘的威脅數(shù)量達到了419個,表明惡意軟件仍是影響網(wǎng)絡(luò)安全的重要因素之一。由于惡意軟件數(shù)量多、范圍廣,眾多安全研究者引入了在分類領(lǐng)域表現(xiàn)出色的各種機器學習算法來應對惡意軟件的威脅,眾多研究結(jié)果表明機器學習算法不僅在數(shù)據(jù)分類[1]、模式識別、自然語言處理[2]等方面有著出色表現(xiàn),在垃圾郵件檢測和惡意文檔檢測[3]等方面也有著較高的準確率和效率,因此機器學習算法在惡意軟件檢測領(lǐng)域有著廣泛的應用。
基于機器學習的惡意文檔檢測技術(shù)被大量應用,有許多研究表明其基于特征的檢測方式很容易被攻擊者精心構(gòu)造的特征所欺騙,從而達到使分類器錯誤分類的效果。大量研究者運用不同的方法,不斷學習檢測器的檢測規(guī)則,不斷降低檢測器的準確性,從而生成可以逃逸檢測器檢測的對抗樣本。
深度神經(jīng)網(wǎng)絡(luò)的脆弱性問題[4]首次被Szegedy等人提出,他們的L-BFGS方法將人眼無法察覺到的擾動添加進圖像中,使DNN圖片分類器錯誤分類,將大熊貓圖片識別成了長臂猿,在業(yè)界引起了對對抗樣本的廣泛關(guān)注。緊接著Goodfellow等人提出了一種有效的非針對性攻擊,他們提出的FGSM方法尋找特征空間中逼近于良性樣本的對抗樣本,它沿著梯度更新方向一步步攻擊,是一種典型的one-step攻擊。隨后Kurakin等人提出了BIM方法利用更加精細的迭代器對FGSM方法進行迭代優(yōu)化,與FGSM相比采用更短的步長和切片來更新對抗樣本。Dong等人[5]受到動量優(yōu)化器的啟發(fā),提出了MI-FGSM方法,將將動量存儲器集成到BIM迭代過程中,旨在構(gòu)建一個模型集合,以攻擊黑盒/灰盒設(shè)置中的模型,基本思想是考慮多個模型相對于輸入的梯度,并確定更有可能轉(zhuǎn)移到其他模型的梯度方向。
Zheng等人[6]提出一種叫做分布式對抗樣本攻擊(Distributionally Adversarial Attack,DAA)的新的對抗性攻擊,對概率度量的空間進行攻擊,與PGD不同的是,對抗性樣本是為每個良性樣本獨立生成的,DAA對潛在的對抗性分布進行優(yōu)化。此方法所提出的目標首先包括在計算對抗性損失時,對抗性數(shù)據(jù)分布與良性數(shù)據(jù)分布之間的Kraft-McMillan(KL)發(fā)散,以增加優(yōu)化過程中的對抗性泛化風險,對后面的工作具有很大的啟發(fā)意義。
Carlini和Wagner等人[7]提出了一種基于優(yōu)化的對抗性攻擊C&W攻擊,C&W方法會逐漸優(yōu)化對抗樣本以找到最優(yōu)對抗樣本。針對DNN,C&W攻擊方法在MNIST、CIFAR-10、和ImageNet上達到了100%的攻擊成功率。
Moosavi-Dezfooli等人[8]提出了一種新的算法DeepFool,在仿射二進制分類器和一般二進制可微分類器上找到最小對抗性擾動添加進對抗樣本。DeepFool方法也可以擴展到攻擊一般的多類分類器,其中問題被轉(zhuǎn)化為計算由所有類之間的決策邊界形成的凸多面體從重心到表面的距離,實驗結(jié)果表明,DeepFool方法在幾個基準數(shù)據(jù)集上的擾動添加量均小于FGSM方法。
在上述攻擊算法中,良性樣本的所有元素(例如,良性圖像中的所有像素)都受到干擾。最近的研究表明,在一個受限制的區(qū)域/良性樣本段中的擾動也可以愚弄深度學習模型,這些擾動被稱為對抗性補丁。Sharif等人[9-10]提出只在附在面部圖像上的眼鏡架上制作對抗性擾動,通過對交叉熵等常用對抗性損失進行優(yōu)化,局部微擾很容易愚弄VGG-Face卷積神經(jīng)網(wǎng)絡(luò)(CNN)。作者在物理世界中實現(xiàn)了這種攻擊,方法是用產(chǎn)生的擾動打印眼鏡對。這項工作還提供了視頻演示,其中戴對抗性眼鏡的人被真正的VGG-Face CNN系統(tǒng)識別為攻擊目標。
目前國內(nèi)外現(xiàn)有的對抗樣本生成攻擊大多是針對圖片的,在惡意文檔檢測器領(lǐng)域的對抗樣本攻擊主要是在初期基于大多白盒,現(xiàn)階段的研究主要集中在灰盒場景下。研究趨勢從不計成本的隨機生成轉(zhuǎn)向注重效率的生成,從白盒場景轉(zhuǎn)向黑盒場景下的生成,從單一場景轉(zhuǎn)向更復雜的場景下生成。
DOCX-GAN總體上是一個利用GCGAN網(wǎng)絡(luò),通過對惡意DOCX文檔檢測器的檢測規(guī)則進行學習,將生成器生成的擾動特征添加到惡意樣本中,在不影響惡意樣本功能的前提下,生成可以使檢測器錯誤分類的對抗樣本。
DOCX-GAN總體結(jié)構(gòu)由檢測器、生成器、鑒別器和樣本處理四個模塊構(gòu)成。算法流程如圖1。
圖1 DOCX-GAN算法流程圖
檢測器是一個利用機器學習技術(shù)搭建的二分類器。在得到DOCX文件輸入之后,檢測器對文件進行預處理后得到特征向量,利用隨機森林(Random Forest,RF)、支持向量機(Support Vector Machine,SVM)和決策樹(Decision Tree,DT)等機器學習算法,根據(jù)訓練好的模型對特征向量對文件的惡意性進行判別,最終對輸入判別結(jié)果,即輸入的文件是惡意的還是良性的。
生成器是一個利用深度卷積神經(jīng)網(wǎng)絡(luò)搭建的前反饋網(wǎng)絡(luò)結(jié)構(gòu),用于生成擾動特征。它基于鑒別器學習到的檢測器的檢測規(guī)則,向樣本中增加一些擾動特征使惡意DOCX文檔被檢測器錯誤分類為良性DOCX文檔。訓練時,生成器通過隨機添加噪聲來生成樣本,之后通過鑒別器的反饋進行梯度更新,生成與真實良性樣本更相似的對抗樣本。生成器的網(wǎng)絡(luò)結(jié)構(gòu)如下表1所示。
表1 生成器網(wǎng)絡(luò)結(jié)構(gòu)
為保證生成的對抗樣本仍能夠保留原有的惡意功能,本方法定義生成器在生成對抗樣本時只能采用添加的方式擾動特征的方式修改樣本,因為刪除和修改的方式可能會破壞惡意樣本原有的惡意功能。擾動添加規(guī)則如下公式(1):
其中m'為生成器所生成的對抗樣本,m為惡意樣本,g為生成器生成的擾動特征。
鑒別器同樣是一個利用深度卷積神經(jīng)網(wǎng)絡(luò)搭建的前反饋網(wǎng)絡(luò)結(jié)構(gòu),用于學習檢測器的檢測規(guī)則。由于檢測器并只提供惡意或良性的二進制檢測結(jié)果,生成器無法有效地學習如何構(gòu)建對抗樣本,鑒別器的作用就是學習檢測器的檢測規(guī)則并提供一個可微的函數(shù)幫助檢測器進行梯度更新。鑒別器的網(wǎng)絡(luò)結(jié)構(gòu)如表2所示。
表2 鑒別器網(wǎng)絡(luò)結(jié)構(gòu)
DOCX文檔由不同文件夾中的XML文件組成,每個XML文件中包含文檔的實際內(nèi)容,每個XML文件中包含文檔的屬性和動作,文檔的資源文件保存在“midea”、“embeddings”等文件夾下。鑒于DOCX文檔的層級路徑結(jié)構(gòu),本文采用SFEM(Structural Feature Extraction Methodology)方法來提取路徑結(jié)構(gòu)特征,把路徑轉(zhuǎn)換成唯一的路徑列表。圖2為樣本文檔利用SEFM提取的路徑列表的一部分。
圖2 路徑結(jié)構(gòu)列表
其中,紅色的路徑代表文件夾,綠色的路徑代表XML文檔,灰色的路徑代表每個XML文檔中包含的屬性。本方法保留了XML文檔中屬性的名稱標簽,沒有保留屬性的值,有利于縮減特征的數(shù)量,在保證準確率的前提下,大大提升效率。
本文構(gòu)建的實驗場景為灰盒場景,設(shè)定如下:
●攻擊者知曉惡意DOCX惡意文檔分類器所采用特征種類是路徑結(jié)構(gòu)特征;
●攻擊者對特征數(shù)量、分類器所采用的機器學習算法、分類器的訓練樣本等信息是未知的;
●外部不能訪問分類器的內(nèi)部結(jié)構(gòu)從而得到梯度信息,分類器的返回結(jié)果僅僅是惡意或良性;
●不能利用樣本進行投毒攻擊,不能損壞分類器。
實驗環(huán)境和參數(shù)如表3所示。
表3 實驗環(huán)境
本文所采用數(shù)據(jù)集來源于網(wǎng)絡(luò)收集、VirusTotal病毒庫和Contagio樣本集,總計7354個DOCX文檔,其中包含5334個良性樣本和2020個惡意樣本。所用的良性樣本均為網(wǎng)絡(luò)爬取的正常DOCX文檔,為保證實驗的準確性,本文所使用的樣本均經(jīng)過VirusTotal的驗證,只有所有殺毒引擎都判斷為良性的文檔才加入良性樣本集,凡是至少有一個殺毒引擎判斷為惡意的樣本皆歸為惡意樣本集。此外,本文還剔除了文件大小小于10KB或大于10M的樣本以排除極端情況。
本文所有樣本在輸入網(wǎng)絡(luò)之前均需經(jīng)過SEFM方法進行特征提取,提取成為每個樣本對應的路徑結(jié)構(gòu)特征,接下來還需將路徑結(jié)構(gòu)特征通過one-hot編碼將惡意樣本和良性樣本分別構(gòu)建成惡意特征矩陣和良性特征矩陣以繼續(xù)處理。構(gòu)建好的矩陣如表4所示。
表4 特征矩陣
本次實驗采取下列四種評估指標:
MSR:樣本修改成功率(Modification Success Rate),對樣本修改后能夠保留惡意功能
ASR:樣本攻擊成功率(Attack Success Rate),樣本修改后繞過檢測器的概率
AMC:平均修改成本(Average Modification Cost),平均生成每個對抗樣本需要修改的特征數(shù)量
CSR:綜合成功率(Comprehensive Success Rate),單次攻擊整體的成功率
本文在五種黑盒分類算法中測試了DOCX-GAN生成對抗樣本的有效性,包括邏輯回歸、多層感知機、隨機森林、決策樹和支持向量機。在每次實驗中,把數(shù)據(jù)集劃分為60%的訓練集,20%的驗證集和20%的測試集。
表5為針對五種黑盒機器學習算法生成對抗樣本有效性的評估。
表5 有效性評估
通過對以上五種黑盒分類的分類結(jié)果觀察可知:五種分類器對惡意文檔檢出的概率均在93%以上,具有較好的分類性能,決策樹的性能最佳。五種分類器的誤報率都在8-12%之間,具有較高的誤報率,說明分類器對惡意樣本的分類規(guī)則均比較嚴格,在這樣的條件下,對抗樣本的攻擊難度會增大。但結(jié)果表明,本方法所生成的對抗樣本被五種檢測器檢出的概率均低于2%,針對邏輯回歸、多層感知機、支持向量機的攻擊成功率都達到了100%,說明本方法能夠有效地生成對抗樣本,使基于機器學習地分類器對對抗樣本做出錯誤的分類。
本文提出了一種利用深度卷積生成式對抗網(wǎng)絡(luò)搭建的DOCX對抗樣本生成框架,實驗結(jié)果表明利用此框架生成的對抗樣本可以較好地繞過邏輯回歸、隨機森林、決策樹、支持向量機和多層感知機等機器學習算法搭建的檢測器,攻擊成功率達到了98%以上。
接下來的工作將圍繞如何繞過對抗樣本防御算法來避免被檢測,達到繞過更多機器學習算法和神經(jīng)網(wǎng)絡(luò)來進行。