劉 超,婁塵哲, ,喻 民, ,姜建國,黃偉慶
1 中國科學院信息工程研究所 北京 中國 100093
2 中國科學院大學網(wǎng)絡空間安全學院 北京 中國 100093
惡意PDF(Portable Document Format)文檔是指在正常PDF 電子文檔中直接添加惡意代碼,或使用鏈接跳轉、點擊觸發(fā)等方式遠程下載惡意代碼程序,利用電子文檔解析程序的漏洞使惡意代碼得以執(zhí)行,實現(xiàn)攻擊者的惡意目的。PDF 文檔是全世界應用最廣泛的文檔類型,兼容性高、體積小,人們普遍將其看作高效、便捷與安全的信息交互載體,攻擊者正是利用這種普遍認知,大肆利用惡意PDF 文檔進行攻擊。PDF 文檔不僅具有復雜的文檔結構,并且支持嵌入JavaScript 等腳本語言,在文檔中還可以內嵌其他類型的文件。復雜的文檔結構為惡意代碼提供了隱藏和存儲空間,支持腳本語言則為惡意代碼的執(zhí)行提供了可能。2019 年以來,惡意PDF 文檔已經成為實施高級持續(xù)威脅(Advanced Persistent Threat,APT)的重要載體[1]。同時可以被惡意代碼利用的文檔閱讀器漏洞不斷涌現(xiàn),對惡意PDF 文檔檢測的研究具有重大的意義。
機器學習技術在許多應用中都取得了非常顯著的成功,如網(wǎng)絡入侵檢測,面部識別和自動駕駛汽車。目前基于機器學習的檢測器已經成為檢測惡意PDF 文檔的主流方法[2]。然而大量的例子表明,當基于機器學習的系統(tǒng)被部署到應用程序中時,很容易被對抗攻擊影響,在惡意PDF 文檔檢測領域的對抗攻擊主要表現(xiàn)為利用精心構造的輸入樣本使得檢測器在預測時輸出錯誤的結果。例如,攻擊者可能會對一個惡意樣本進行修改使它在測試時顯示為良性,從而逃避目標檢測器,這種修改后的樣本稱為對抗樣本[3]。如果將對抗樣本用于惡意PDF 文檔,會使主流的機器學習檢測器失效,APT 攻擊就更容易實現(xiàn),給組織甚至個人帶來更嚴重的危害?;谲妭涓傎惖乃枷隱4],研究對抗樣本的生成方法有助于提高檢測器的魯棒性。
在計算機視覺領域,研究人員已經提出多種生成對抗樣本的方法[5-8]。但PDF 文檔具有更復雜的結構和更多依賴性強的特征,攻擊者修改樣本的能力更加靈活。早期逃避文檔檢測器的方法主要有畸形文檔和模仿攻擊,利用文檔格式規(guī)范的缺陷以及文檔解析器的處理邏輯漏洞,將與惡意行為相關的特征隱藏起來,使檢測器難以提取。?rndi? 等[9-10]利用一種簡單的梯度下降攻擊算法在特征空間中生成可以逃避檢測器的惡意PDF 對抗樣本。Xu 等[11]提出了一種使用遺傳算法的技術來評估檢測器的魯棒性[12],并生成相應的惡意PDF 對抗樣本。Dang 等[13]利用真值評分機制實現(xiàn)了EvadeHC 方法。盡管這些逃避攻擊增加了更多的約束,但他們考慮的場景仍然過于簡單,這些生成方法僅針對特定類型的檢測器生成相應的對抗樣本,從而帶來了通用性和可傳遞性的不確定性。
為了提高檢測器的魯棒性,最直接的方法是尋找多種場景下可以逃避檢測器的對抗樣本,利用生成的對抗樣本進行對抗訓練。本文構造了與以往使用的對抗攻擊方法不同的攻擊場景,即多個不同檢測器串聯(lián)的聯(lián)合檢測器,這也是在線檢測引擎常用的場景。在這種場景下,由于不同的檢測器使用不同數(shù)量或類型的特征,以往的針對性較強的對抗樣本會失去作用。針對此攻擊場景本文首先提出對于一個被判定為惡意的PDF 文檔,它在不同特征空間中提取出的特征應該是具有關聯(lián)性的。目前使用機器學習方法檢測惡意PDF 文檔時,基于內容的特征和基于結構的特征是兩類主要特征,它們也是分類的基礎特征。通過使用Apriori 算法[14],可以有效分析不同類型特征之間的關聯(lián),并從關聯(lián)規(guī)則中探索與惡意行為有關的特征。然后基于獲得的關聯(lián)規(guī)則為文檔的修改提供了一種匹配方法,這對基于特征空間的逃避攻擊非常重要。最后將這些工作與基于動量迭代梯度的方法相結合[15],形成一個完整的攻擊模型。實驗表明,本文的方法生成的對抗樣本可以成功地逃避使用不同特征空間的惡意PDF 文檔檢測器,將其用于對抗訓練可以有效提升檢測器的魯棒性。
本文主要貢獻如下:
(1) 本文提出了針對惡意PDF 文檔分類的對抗樣本生成方法MissJoint,并基于該方法實現(xiàn)了對抗樣本生成模型,該模型生成的對抗樣本具有較高的攻擊成功率,同時也保留了原始樣本的惡意性。
(2) 改進了基于動量迭代的梯度下降方法,提高了文檔型對抗樣本生成的效率。
(3) 設計了針對參數(shù)調整、攻擊效果及魯棒性提升等多組實驗,實驗結果表明本文提出的方法具有較高的對抗樣本生成率和攻擊成功率。
本文的其余部分安排如下: 第2 章介紹了與研究相關的基礎知識和相關工作;第3 章詳細論述了惡意PDF 文檔對抗樣本生成方法;第4 章報告了實驗結果和分析;最后第5 章對本文進行總結并提出下一步工作。
本節(jié)介紹相關的工作,包括PDF 文件格式,機器學習方法和用于支持本研究的目標檢測器。最后,將介紹對抗樣本生成方法的理論。
PDF 文檔是一種開放標準格式,是為了在不同平臺上顯示統(tǒng)一格式的內容和布局而產生的[16]。PDF文檔結構由4 個部分組成: 文件頭,文件體,交叉引用表(CRT)和文件尾,如圖1 上部分所示。文件頭包含PDF 字樣和格式版本。文件體是PDF 文檔中最重要的部分,它包含一組構成文檔內容的PDF 對象。這些對象可以具有8 種基本類型之一: 布爾值,數(shù)字,字符串,流,名稱,數(shù)組,字典和Null 對象。對象之間可以間接引用,文檔解析器在解析PDF 文檔時將以對象的間接引用關系作為解析順序,從而構成PDF 文檔的邏輯結構,如圖1 下部分所示。文檔邏輯結構中的節(jié)點是對象或數(shù)組,因為它們對應于各個元素的整數(shù)索引,并且每條邊與子對象在父對象中的名稱相對應。交叉引用表為文件體中的對象索引,文件尾則提供查找交叉引用表和特殊對象的方法。
圖1 PDF 文檔的物理和邏輯結構Figure 1 The physical and logical structure of a PDF document
有監(jiān)督機器學習在信息安全任務中十分流行,它通常抽象地考慮問題。首先,特征提取器從訓練樣本中提取特征,然后指定選擇規(guī)則以減少特征數(shù)量并形成特征空間D,其中訓練數(shù)據(jù)集Dt中的每個向量化樣本均表示為一個點。同時,標簽空間L被定義并分配給每個訓練樣本,用于識別類別,比如良性和惡意。分類器的目標是找到一個決策函數(shù)f,該函數(shù)將D中的數(shù)據(jù)點映射到具有低預測誤差的不同類別中。該函數(shù)在訓練集上有良好的表現(xiàn),基于平穩(wěn)性假設可以相信測試點與已知訓練點的分布P是一致的。
機器學習技術已廣泛用于惡意PDF 文檔檢測:預測未知的PDF 文檔是否被正確標記為惡意或良性。特征的提取至關重要,因為特征的質量可能會不同程度地影響預測性能。2.3 節(jié)將討論基于不同類型進行特征提取的兩個代表分類器。
早期的工作已經提出了幾種基于機器學習的惡意PDF 文檔檢測器。例如,某些工具提取JavaScript代碼以進行靜態(tài)或組合分析。由于PDF 文檔的復雜性和攻擊技術的進步,出現(xiàn)了各種混淆方法。之后研究人員一直在尋找提升機器學習分類器準確率的新型特征類型,最新的檢測器使用基于內容的特征和基于結構的特征?;趦热莸奶卣髋cPDF 內容相關,主要關注特定關鍵字(名稱,位置,數(shù)量和長度),元數(shù)據(jù)(文件大小,作者,時間戳和創(chuàng)建日期)的存在與否,以及文件中的間接對象或流對象(JavaScript)?;诮Y構的特征也包括與PDF 結構相關的特定關鍵字;還有另一個特殊的特征,稱為邏輯結構路徑。邏輯結構路徑間接描述了PDF 文檔的解析過程,是PDF 文檔邏輯結構中一系列邊的序列,這些序列以根對象開始,以第2.1 節(jié)中描述的對象結尾。
本文根據(jù)文獻[17]中發(fā)布的基于機器學習的PDF 檢測器,選擇了4 個檢測器作為攻擊目標:PJScan[18],PDFRate[19],Hidost[20]和Slayer NEO[21]。其中,PJScan,PDFRate 和Slayer NEO 使用關鍵字,元數(shù)據(jù)或內容作為特征,而Hidost 使用邏輯結構路徑作為特征。PDFRate 和Hidost 是最前沿的高精度檢測器,而且與2.4 節(jié)中描述的攻擊中使用的目標檢測器一致。本文將4 個檢測器串聯(lián)形成最終的聯(lián)合檢測器,注意這與集成分類器不同,該檢測器定義了更嚴格的輸出標準,只要其中一個的預測顯示為惡意,則整體輸出即為惡意。
針對惡意PDF 文檔檢測器的對抗攻擊主要聚焦于逃避攻擊,因為在惡意軟件檢測任務中,最直接的目的就是修改惡意樣本,產生具有惡意行為的對抗樣本,在測試時使得檢測器無法識別,從而破壞系統(tǒng)完整性。與圖像識別任務中的對抗樣本類似,文檔型對抗樣本的生成也有兩類不同的方法: 基于內容的方法和基于特征空間的方法。
基于內容的方法是生成對抗樣本的一種直觀方法,攻擊者主要利用官方文檔規(guī)范中的不嚴謹或機器學習系統(tǒng)的缺陷來修改文檔的內容?;挝臋n攻擊、模仿攻擊和反向模仿攻擊是典型的基于內容的攻擊方法。
基于特征空間的方法利用數(shù)據(jù)樣本向量化的特點,在特征空間中修改特征向量從而生成對抗樣本。這類方法在檢測模型的決策邊界對樣本的特征向量進行迭代修改,由此產生的對抗樣本實際上逃避了機器學習系統(tǒng)的分類器組件。攻擊情形通常描述如下: 給定一個檢測器f(x),它將輸出標簽y作為一個特征向量x的預測;攻擊者使用精巧的手段修改樣本s,s可以被向量化表示為x(s),修改后的樣本為s',同時產生一個新的向量x'=x(s');攻擊者的目的為使f(x')返回的標簽是錯 誤的,同時s'保留了原始樣本s的惡意功能?;谔卣骺臻g產生對抗樣本可以大大降低復雜性,典型的方法包括 EvadeML[11]和Mimicus[10],它們也是最先進的對抗樣本生成方法,本文的方法將與它們進行比較。
本節(jié)主要介紹對抗樣本生成的思路、方法和實現(xiàn)。主要包括概述、關聯(lián)規(guī)則提取、特征修改、攻擊算法、魯棒性提升等部分。
本文的對抗樣本生成技術以梯度下降攻擊為基礎在特征空間中尋找對抗樣本。關鍵在生成操作之前,需要完成獨有的特征關聯(lián)分析和特征修改,同時在生成方法上進行了適當改進,采用基于動量迭代的梯度下降,整體模型如圖2 所示。
圖2 生成對抗樣本技術模型Figure 2 The model to generate adversarial examples
首先,我們需要從數(shù)據(jù)集的樣本中提取并選擇所需要的特征,將這些特征結合在一起形成關聯(lián)分析集。通過將關聯(lián)分析算法用于隨機選擇形成的惡意樣本和良性樣本,獲得一組包含特征關聯(lián)的規(guī)則。
其次,獲得的規(guī)則分為2 條準則: 1)通用型關聯(lián)規(guī)則可以執(zhí)行同步修改;2)惡意型關聯(lián)規(guī)則作為約束不可以進行修改。根據(jù)這2 條準則在生成對抗樣本的過程中修改實際樣本,稱為特征修改算法。
最后,我們將對選定的惡意PDF 文檔進行向量化處理,并將該向量用作特征空間中的初始點。在迭代逼近目標點的過程中,使用準則2)進行方向的微調。在將向量映射到實例的過程中則使用準則1)。直到找到對抗樣本或達到生成方法設置的迭代閾值,生成過程結束。
對特征進行關聯(lián)分析即挖掘特征之間的關聯(lián)規(guī)則,本文采取Apriori 算法,利用逐層搜索的迭代方法找出數(shù)據(jù)庫中項集的關系。項集的概念即為項的集合,項集出現(xiàn)的頻率是指包含該項集的事務數(shù)。如果某項集滿足最小支持度,則稱它為頻繁項集。因此Apriori 算法將任務分解為2 個主要的子任務:
(1) 頻繁項集生成
將提取得到的特征全部放到一個集合中,定義為關聯(lián)項集R。從數(shù)據(jù)集中提取每個樣本的項集(Rn)用于關聯(lián)分析,從而建立一個包含所有樣本項集的事務集N,簡單實現(xiàn)如下所示。
為了保證對比實驗的公平性,本文進行關聯(lián)分析時主要使用兩類特征: 第一類是135 個基于內容的特征,與PDFRate 和Mimicus 保持一致,它們是一些對象關鍵字、對象屬性及元數(shù)據(jù)的抽象統(tǒng)計,表1中列出了部分特征及描述;第二類是1000 個基于結構的特征,與Hidost 和EvadeML 保持一致,它們是可以精確描述PDF 結構的結構路徑,表2 中列出了部分特征;由于最新的Hidost 更新提出結構路徑特征會隨時間更新,因此本文最終提取的結構路徑特征將與EvadeML 所使用的特征稍有不同,這將在結果分析中再次討論?;谖磥淼难芯刻砑痈嘈滦?、有效的特征可以有效擴展關聯(lián)分析方法。
表1 基于內容的特征Table 1 Content-based features
表2 基于結構的特征Table 2 Structure-based features
我們的任務是從事務集N中生成所有的頻繁項集F,過程如算法1 所示。我們讓頻繁項集的長度從k=1 開始,并在循環(huán)語句中重復運算,直到沒有新的頻繁項集被識別。其中的操作包括生成候選集(Candidate itemsets)、計算支持度(support)和排除不常見的候選。最后產生的每個頻繁項集都是若干個(隨最小支持度設定的不同而不同)特征的集合。
(2) 關聯(lián)規(guī)則生成
得到所有的頻繁項集后,可以按照是否滿足最小置信度從頻繁項集及其真子集中提取關聯(lián)規(guī)則。值得注意的是,我們還需要進一步分析提取出的關聯(lián)規(guī)則。首先使用提升度作為關聯(lián)規(guī)則的第一層過濾,主要是刪除具有高可信度但實際上獨立的特征關聯(lián)。其次需要在真實的樣本中驗證關聯(lián)規(guī)則,形成第二層過濾,主要是參考標準的PDF 文檔規(guī)范和實際解析文檔的經驗對關聯(lián)規(guī)則進行分析,最終從頻繁項集中提取出有效的關聯(lián)規(guī)則。
表3 列出了部分生成的關聯(lián)規(guī)則。使用第一層過濾可以刪除一些關聯(lián)規(guī)則,如author_num=> size,這是一個典型的獨立特征關聯(lián),因為PDF 解析時往往只考慮文件中最后一個Auther 元數(shù)據(jù)字段的內容,該內容的修改不需插入額外的字段,所以對size 的影響很小。第二層過濾可以刪除如keywords_num=>/Names/EmbeddedFiles、len_stream_min=>/PageLabels/Nums 等關聯(lián)規(guī)則,這是因為根據(jù)人工解析PDF 文檔的經驗,關鍵字數(shù)字字符統(tǒng)計數(shù)與嵌入文件沒有統(tǒng)計意義上的關聯(lián),嵌入文件與count_action、count_js等特征的關聯(lián)性更強;len_stream_min 屬于特殊的統(tǒng)計特征,它的改動通常與PDF 文檔中流對象更為密切。
表3 關聯(lián)規(guī)則Table 3 Association rules
其他關聯(lián)規(guī)則如count_image_total=>/Pages/MediaBox、count_action=>/OpenAction/Contents/Length、count_javascript=>/Names/JavaScript/Names/S 等可以有效地表示內容特征與結構路徑特征存在的關聯(lián)性: 文檔中圖片的總數(shù)量影響了頁面的多媒體顯示與文件嵌入,文檔中對嵌入腳本執(zhí)行或腳本內容相關的統(tǒng)計數(shù)則與相應的解析路徑密切關聯(lián)。能夠產生有效關聯(lián)規(guī)則的主要原因在于頻繁項集去除了稀疏的結構路徑特征,通過對大量樣本進行統(tǒng)計分析顯示出了文檔內容與文檔解析過程之間不可分割的聯(lián)系。
我們采用的事務集包括從良性樣本集中選擇的Nb集和從惡意樣本集中選擇的Nm集,根據(jù)上節(jié)的關聯(lián)分析將形成兩組強關聯(lián)規(guī)則。兩組強關聯(lián)規(guī)則一方面保證了修改特征時可以實現(xiàn)同步修改,這是跨特征空間的基礎;另一方面則可以形成約束規(guī)則,計算兩個集合的交集,并用Nm減去交集,就可以發(fā)現(xiàn)一些只存在于惡意樣本中的關聯(lián)規(guī)則。在使用基于特征空間的方法生成對抗樣本時,可以修改的特征是需要受限制的,因為在特征空間中修改向量可能會改變PDF 文檔的結構,并增加破壞惡意功能的風險。使用約束規(guī)則我們就不必擔心這種情況。
對抗攻擊的迭代逼近操作需要由攻擊算法實現(xiàn),下一小節(jié)將對此進行解釋。然而,每次迭代后新向量點的生成都需要特征修改算法的參與。為了使每次逼近的點不是錯誤的點,使用約束規(guī)則對特征向量進行修改,完成“向量-實例-向量”的二次轉換,接著進入下一個迭代過程。在算法2 中描述了這個過程。
根據(jù)2.4 節(jié)的描述,可以將基于梯度的方法轉換為求解約束優(yōu)化問題,如公式(1)。對于任何目標惡意樣本x,最佳攻擊策略都會找到一個示例x'來最小化f,同時要限制其與x的距離。為了使x'保留惡意功能,公式中定義c(x,x')為成本函數(shù),它確??梢栽贚p范數(shù)距離內找到x'。也可以將公式(1)轉換為公式(2)的形式,即最大化損失函數(shù)J(x',y)以生成||x'-x||∞≤ε距離滿足L∞范數(shù)的對抗樣本。
本文使用基于改進后的動量迭代梯度的方法生成對抗樣本,動量迭代法生成的對抗樣本在白盒攻擊和黑盒攻擊中均具有較高的成功率。該方法減輕了白盒攻擊與可傳遞性之間的權衡,成為一種較強大的攻擊算法。通過在迭代過程中沿損失函數(shù)的梯度方向累積速度矢量來加速梯度下降。保留之前的梯度有助于快速通過較差的局部最大值或最小值,在本文構造的攻擊場景中可以明顯降低特征依賴關系的影響。本文利用動量的概念,與聯(lián)合檢測器場景結合來生成PDF 對抗樣本。
算法3 中總結了動量迭代攻擊方法,其中在本文的實驗部分中針對攻擊方法進行了改進,使其適合文檔型的對抗樣本生成。公式(3)中我們定義gt收集第t次迭代之前的梯度,每一次迭代的衰減因子為μ;公式(4)中顯示第t次迭代中由上一次迭代產生的向量點以α為步長、gt為方向進行更新,直到產生成功的對抗樣本。算法的第11 行主要描述了特征修改算法的使用,不使用特征修改算法會引起兩方面的問題: 一方面是不能保證特征向量的跨特征空間和惡意功能保留。例如攻擊算法可能在一次迭代中改變了特征count_image_total,特征修改算法將根據(jù)關聯(lián)規(guī)則向PDF 中添加等量的MediaBox 片段,使結構特征/Pages/MediaBox 同步修改,并累積所有修改產生新的文件,釋放特征依賴,最終由新文件產生新的向量;不使用特征修改算法則會產生增量更新,向PDF 尾部加入填充了無意義字符的新文件體,但新文件體中并不一定包含MediaBox 片段,導致新向量的結構特征發(fā)生未知的變化。另一方面是可能會產生特征空間中不存在或非正常的向量。例如當size的變化引起結構特征/Metadata/Length 的變化,version 特征可能會產生未知的改變(負值或不存在的版本值),這會使最終形成的對抗樣本是損壞的或無法成功逃避檢測器。使用特征修改算法則可以根據(jù)關聯(lián)規(guī)則限制version 特征值的改變,從而修正迭代攻擊的方向,產生正常的向量。
自從深度神經網(wǎng)絡的對抗樣本被發(fā)現(xiàn)以來,相關文獻中有一個普遍的共識,即對抗訓練可以提升神經網(wǎng)絡對這些樣本的魯棒性,因此大多數(shù)新型攻擊都建議將對抗訓練作為防御這些攻擊的第一道防線。對抗訓練本質上是一種數(shù)據(jù)增強的方法,該方法的求解可以被歸納為Min-Max 的過程,即Inner Maximization 和Outer Minimization 兩個步驟。Inner Maximization 用于通過最大化分類損失函數(shù)來生成對抗樣本,Outer Minimization 用于使用Inner Maximization 階段生成的對抗樣本來訓練模型,使得輸出結果最小化,受Inner Maximization 階段的影響非常大。因此對抗訓練是一種非自適應策略,需要使用強大的攻擊來執(zhí)行訓練。
上面章節(jié)已經研究了生成對抗樣本的技術,在實驗部分將對生成的對抗樣本進行對抗訓練以完成魯棒性提升測試。在對抗訓練中有3 個關鍵點,如圖3 所示: 首先在構造惡意PDF 文檔檢測模型的時候,選擇使用SVM 算法,因為它在此前的研究中是可靠有效的;其次在訓練分類器時,使用多類型特征,即基于內容的特征和基于結構的特征,這樣能夠體現(xiàn)出本文生成方法具有跨特征類型的性質;最后在訓練時采取交叉驗證的方法,并將對抗樣本添加到訓練集中進行擴充,使得最后模型的分類平面較原始模型有輕微的偏離,從而具有更好的魯棒性。
在本節(jié)中,首先介紹實驗中使用的數(shù)據(jù)集和相關實驗設置。然后設置對抗樣本生成實驗和魯棒性提升實驗,通過將本文的方法與其它兩種攻擊方法進行比較評估本文方法的有效性。
本文的實驗采用收集了11200 個惡意PDF 文檔和10500 個良性PDF 文檔的總數(shù)據(jù)集。其中惡意PDF文檔主要來自Contagio archive[22],Virus Share[23]和Virus Total[24],以及部分自行采集的樣本。良性PDF文檔來自Contagio archive,Google 搜索和一些研究機構,包括公告,操作手冊等。這些數(shù)據(jù)集是當前惡意PDF 文檔檢測研究的通用數(shù)據(jù)集,具有代表性。
在對抗樣本生成實驗中使用了3 個數(shù)據(jù)集: 2 個事務數(shù)據(jù)集Nb和Nm用于提取相關特征并分析關聯(lián)規(guī)則,而攻擊數(shù)據(jù)集則由惡意PDF 文檔組成,這些惡意PDF 文檔被用作生成針對PDF 檢測器的對抗樣本的起點。其中從惡意數(shù)據(jù)集和良性數(shù)據(jù)集中隨機抽取了2000 個樣本作為事務集,攻擊數(shù)據(jù)集中包含500 個樣本,這是為了與用來對比的EvadeML 方法一致。表4 總結了攻擊樣本的選擇過程。
表4 數(shù)據(jù)集Table 4 Datasets
在魯棒性提升實驗中使用了2 個數(shù)據(jù)集: 用于訓練和測試的數(shù)據(jù)集S和攻擊數(shù)據(jù)集M,其中將總數(shù)據(jù)集作為S,M則采用對抗樣本生成實驗中的攻擊數(shù)據(jù)集。
在對抗樣本生成實驗中,我們主要關注2 個評估指標: 針對目標惡意PDF 文檔檢測器攻擊的對抗樣本生成率和攻擊成功率。其中,對抗樣本生成率指的是可以通過攻擊算法生成對應對抗樣本的原始惡意樣本在整個攻擊數(shù)據(jù)集中所占的比例。攻擊成功率是指成功逃避檢測器的樣本在整個攻擊數(shù)據(jù)集中所占的比例,它也可以從目標檢測器的準確率(Accuracy)、召回率(Recall)和F1 分數(shù)(F1-Score)中反映出來。
魯棒性提升實驗也將準確率、召回率和F1 分數(shù)作為評估指標。一般將混淆矩陣用于上述指標的計算,如表5 所示,TP 表示正確檢測到惡意PDF 文檔的數(shù)量,FP 表明被誤判為惡意的良性文檔的數(shù)量,TN 表明正確檢測到良性文檔的數(shù)量,FN 表示被誤判為良性的惡意PDF 文檔的數(shù)量。
表5 混淆矩陣Table 5 Confusion matrix
根據(jù)混淆矩陣可得各評價指標的計算方法:
如果一個生成的對抗樣本可以實現(xiàn)原始的惡意功能,就可以說它是一個成功的對抗樣本。因此文本使用沙箱技術作為驗證系統(tǒng)來確定對抗樣本是否保留了惡意行為。即在裝有PDF 閱讀器的虛擬沙箱中運行提交的樣本,并報告樣本的行為,包括調用的網(wǎng)絡API 及其參數(shù)等。在實驗中,檢測器對樣本的預測得分是在迭代過程中獲得的;迭代過程結束后,被判定為良性的樣本將提交到沙箱中。最后將驗證系統(tǒng)的結果與目標檢測器的預測結果進行比較,得出最終的逃避結果。
(1) 實驗環(huán)境
我們用來進行實驗的計算機環(huán)境設置如下: 一臺主機計算機(Intel Core i7-6300 CPU @ 3.40GHz,運行64 位Windows 10 桌面版,16GB 物理內存);一臺輔助計算機(Intel Core i5-7300HQ CPU @ 2.50GHz,運行64 位Ubuntu 16.04 Server,16GB 物理內存)。輔助機器主要用于部署沙箱驗證系統(tǒng)。
(2) 檢測器
Mimicus 攻擊方法創(chuàng)建了一個代理SVM 檢測器來執(zhí)行和驗證它們的攻擊,同時Hidost 檢測器也使用SVM 機器學習方法。因此,在我們的實驗中,我們也將使用SVM 的模型實現(xiàn)作為容器來生成對抗樣本。
(3) 關聯(lián)規(guī)則分析
我們首先探討關聯(lián)規(guī)則分析過程中最小支持度的閾值選擇是否會影響生成關聯(lián)規(guī)則的數(shù)量,從而影響分析的效率。因此,我們對一組隨機選擇的2000個樣本(Nb或Nm)進行了研究。我們使用0.002 的刻度在范圍為0.2%到2.0%的最小支持度下挖掘和分析關聯(lián)規(guī)則。在圖4 中展示了最終不同最小支持度下最終獲得的關聯(lián)規(guī)則的數(shù)量。我們可以看到由于特征之間存在明確的關系,因此在經驗范圍內,關聯(lián)規(guī)則的數(shù)量不會受支持閾值的太大影響。為了消除偶然性并全面分析特征之間的關聯(lián)規(guī)則,我們在實驗中使用0.5%的最小支持度重復了10 次提取。
圖4 在不同最小支持度下生成對抗樣本的數(shù)量Figure 4 The number of association rules obtained at different minimum support
(4) 攻擊參數(shù)
接下來我們需要研究攻擊算法相關參數(shù)的設置效果。衰減因子μ是提高攻擊成功率的首要考慮因素,因為它決定了梯度下降的速度,因而我們對衰減因子的值進行測試。我們通過我們的攻擊算法生成對抗樣本,其中設置距離ε=25,迭代次數(shù)為15,衰減因子范圍為0.0~2.0,刻度為0.1。圖5 顯示了針對PDFRate 和Hidost 生成對抗樣本的成功率。與針對圖像數(shù)據(jù)集進行的實驗相似,其中攻擊Hidost的成功率是單峰曲線,其最大值在μ=1.0 左右獲得。這意味著積累過多或過少的之前的梯度都會使速度不穩(wěn)定。
圖5 μ從0.0 到2.0 下對PDFRate 和Hidost 的攻擊成功率Figure 5 The success rates against PDFRate and Hidost with μ from 0.0 to 2.0
然后,我們測試攻擊兩個檢測器時距離ε的大小對成功率的影響。我們將距離的大小限制到50 以下,因為當距離太大時,它將增加復雜性或導致特征空間中的位置跳躍。我們在實驗中設置不同的距離進行攻擊,并在圖6 中給出了測試結果。提高攻擊PDFRate 的成功率所需的距離(ε=15)比Hidost(ε=20)更短。這是因為當距離不是很大時,關聯(lián)規(guī)則并不會被頻繁使用。當距離ε=30 時,兩個檢測器的攻擊成功率均達到峰值。之后曲線趨于穩(wěn)定,原因是迭代過程中對特征的修改已基本完成。
圖6 不同距離下對PDFRate 和Hidost 的攻擊成功率Figure 6 The success rates against PDFRate and Hidost with different distance
最后,對于迭代次數(shù)對成功率的影響,我們保持其他參數(shù)一致,使迭代次數(shù)從5 開始遞增,研究了攻擊兩個檢測器的成功率,并在圖7 中給出測試結果。可以觀察到迭代次數(shù)與距離參數(shù)相似,即攻擊的成功率隨著迭代次數(shù)的增加而增加。當?shù)螖?shù)為15 時,成功率達到峰值并保持穩(wěn)定。該結果可以指導我們設置黑盒攻擊的迭代次數(shù),從而提高攻擊效率。
圖7 不同迭代數(shù)下對PDFRate 和Hidost 的攻擊成功率Figure 7 The success rates against PDFRate and Hidost with different iterations
根據(jù)上一節(jié)中的實驗設置測試,我們的方法將使用以下參數(shù): 最大距離ε設置為30,迭代次數(shù)為15,衰減因子μ為1.0。我們將使用了關聯(lián)規(guī)則的動量攻擊方法叫作 MissJoint,而未使用則為 MissJointnorule;同時,用于攻擊PDFRate 的EvadeML 被定義為EvadeML-P,而用于攻擊Hidost 的EvadeML 被定義為EvadeML-H。接下來在對抗樣本生成實驗中分別研究它們的攻擊效果并進行比較。
(1) MissJoint 和MissJoint-norule 攻擊效果
從圖8 可以看出,無論是MissJoint 還是MissJointnorule,針對PDFRate 檢測器生成的保留了惡意功能的對抗樣本都很多,成功率分別為98%和96%。但是MissJoint 在Hidost 檢測器上的表現(xiàn)要好于MissJointnorule: MissJoint 的成功率為 82%,而 MissJointnorule 的成功率僅為36%。這表明盡管基于動量迭代梯度的方法在計算機視覺方面攻擊黑盒系統(tǒng)時提供了良好的模型可移植性,但在惡意軟件領域,特征空間的復雜性仍然受到限制。為了降低這種復雜性,我們嘗試進行特征關聯(lián),MissJoint 攻擊的初步結果顯示有效。
圖8 MissJoint 和MissJoint-norule 的攻擊成功率Figure 8 The success rates of MissJoint and Miss-Joint-norule
(2) 對抗樣本生成率
為了進一步驗證MissJoint 方法的有效性,我們在包含 500 個惡意樣本的同一數(shù)據(jù)集上實施了MissJoint,Mimicus,EvadeML-P 和EvadeML-H 攻擊。表6 中匯總了各自的對抗樣本生成率,可以看出這4種方法都具有較高的對抗樣本生成率,但MissJoint和EvadeML-H 沒有達到100%。我們判斷MissJoint是由于迭代過程中多次釋放特征依賴關系導致最終沒有得到對抗樣本,EvadeML-H 則是因為Hidost 的自我更新刪除了許多魯棒性較差的特征。
表6 4 種攻擊方法的對抗樣本生成率Table 6 The generation rates of four attack methods
(3) 對抗樣本攻擊成功率
實驗還在單個檢測器和目標聯(lián)合檢測器上觀察了對抗樣本的性能。其中每個檢測器使用的訓練集大小和比例略有不同,因為我們需要根據(jù)其他作者提出的參數(shù)對其進行優(yōu)化。但是我們選擇了包含1000 個惡意樣本和1000 個良性樣本的相同測試集。將惡意樣本替換為相同數(shù)量的對抗樣本,然后輸出各檢測器的準確性,召回率和F1 分數(shù)。結果記錄在表7 中。
表7 對抗樣本攻擊成功率Table 7 The results on detectors against adversarial examples
首先可以觀察到各個檢測器的準確率稍有波動,這是因為對抗樣本對檢測器的誤報率影響較小,這也進一步證明對抗攻擊可以在不影響其他樣本的情況下逃避檢測器。對于聯(lián)合探測器來說,由于誤報率在多個探測器之間進行了積累,因此準確度會略有下降。其次從表的第3 行和第4 行可以明顯看出,由于Mimicus 和EvadeML-P 在攻擊過程中沒有特定的關聯(lián)規(guī)則可遵循,生成的對抗樣本很難成功逃避Hidost 檢測器和聯(lián)合檢測器,它們仍然保持較高的召回率和F1 分數(shù)。此外EvadeML 攻擊方法的作者進行過交叉逃避實驗,使用有針對性的對抗樣本攻擊非目標檢測器,他們的結果表明,針對Hidost 檢測器產生的對抗樣本在攻擊PDFrate 檢測器時成功率可達77.6%;而當條件相反時,針對PDFrate 檢測器產生的對抗樣本攻擊Hidost 檢測器則幾乎無效。這與我們在對比實驗中的實驗結果保持一致,從表中的第5 行可以觀察到Evademl-H 不僅會降低Hidost檢測器的性能,對其他3 個檢測器的性能也有一定程度的影響。最后從表的最后一行可以看到,Miss-Joint 方法大大降低了所有檢測器的性能。我們認為主要原因是方法中的特征關聯(lián)分析增加了攻擊范圍,Evademl-H方法的交叉實驗能達到77.6%則是隨機的,因為它的特征修改是不確定的。同時可以發(fā)現(xiàn)聯(lián)合檢測器相對于MissJoint依然有0.552的召回率,除去測試集中500 個惡意樣本,還有數(shù)十個對抗樣本被聯(lián)合檢測器標記為惡意,這與我們在對比MissJoint和MissJoint-norule 攻擊效果的實驗中結果是一致的,原因在于不同檢測器使用的解析工具和特征提取工具有差別,當惡意樣本中使用了未混淆的腳本代碼或觸發(fā)API 時,即使對其特征進行修改產生了相應的對抗樣本,保留下來的惡意功能仍然是未被混淆的,容易被不同的解析工具發(fā)現(xiàn)從而給出惡意的預測結果。
(4) 攻擊方法執(zhí)行效率
最后,我們在兩個先進的檢測器上比較了這3種攻擊方法的時間復雜度,如圖9 所示。Mimicus 使用的時間最少,因為它在迭代過程中操作最少。由于使用遺傳算法,EvadeML 花費的時間最長,它需要大量的計算資源才可以減少時間。我們的方法無需花費太多時間和資源即可保持良好的性能。
圖9 3 種攻擊方法的執(zhí)行效率Figure 9 Execution efficiency of three methods
(5) 魯棒性提升
本文針對對抗樣本的攻擊強度進行了魯棒性提升實驗,由上述攻擊方法生成相應的對抗樣本,根據(jù)3.5 提出的魯棒性提升測試方法,分別進行對抗訓練,然后測試剩下類型的對抗樣本對訓練后模型的影響,實驗結果如表8 所示。
表8 魯棒性提升測試結果Table 8 Robustness improvement test results
可以看出,由于Mimicus 和EvadeML-P 產生的對抗樣本主要基于內容特征空間,因此使用其進行對抗訓練后,互相產生的抑制作用較強: F1分數(shù)達到了0.692 和0.724,而這兩種方法對EvadeML-H 和MissJoint 產生的對抗樣本依然無法很好地檢測,使得訓練后的檢測器性能偏低。EvadeML-H 產生的對抗樣本則基于結構特征空間,將其用于對抗訓練后產生的檢測器擁有較高的性能,可以有效抵御Mimicus 和EvadeML-P 產生的對抗樣本,F1 分數(shù)達到了0.907 和0.898;對于由MissJoint 產生的對抗樣本,也有了性能提升。MissJoint 產生的對抗樣本基于多種特征類型的關聯(lián),由其進行對抗訓練后產生的檢測器魯棒性得到很大的提升,不論對于Mimicus和EvadeML-P 攻擊,還是EvadeML-H 攻擊,都保持很高的性能。分析可知,當不同類型的特征同時得到修改時,產生的對抗樣本經過對抗訓練后可以很好地平衡模型的決策平面,從而對使用單個特征類型產生的對抗樣本形成抑制作用,提升檢測器的魯棒性。
本文提出了針對惡意PDF 文檔分類的對抗樣本生成方法MissJoint,并基于該方法實現(xiàn)了對抗樣本生成模型,該模型對抗基于多檢測引擎的惡意PDF文檔檢測系統(tǒng)。實驗結果表明,本文提出方法保持了較高的樣本生成率和攻擊成功率,且生成的對抗樣本保留原始的惡意行為,使用生成的對抗樣本進行對抗訓練可以有效提升檢測器的魯棒性。本文提出的方法和模型也同樣適用于其他惡意軟件檢測工具,如惡意安卓應用檢測。
下一步工作準備將對抗樣本生成和檢測器的魯棒性提升結合起來,通過檢測發(fā)現(xiàn)未知的對抗樣本,利用對抗訓練完成系統(tǒng)的自升級,提升檢測系統(tǒng)的魯棒性。