肖茂,郭春+,申國偉,蔣朝惠
1.貴州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽550025
2.公共大數(shù)據(jù)國家重點(diǎn)實驗室,貴陽550025
惡意軟件作為網(wǎng)絡(luò)空間安全的主要威脅之一,主要分為病毒、蠕蟲、特洛伊木馬、間諜軟件以及勒索軟件等。AV-TEST 在2020 年報告指出,近十年來惡意軟件的數(shù)量在不斷增加,其新變種數(shù)量將近3.75億,其中占比不到1%的勒索軟件從2016 年至今就已造成了高達(dá)幾十億美元的經(jīng)濟(jì)損失。因此,安全研究人員針對惡意軟件提出了多種自動化檢測方法,其中,基于灰度圖的檢測方法通過將惡意軟件轉(zhuǎn)化為灰度圖,無需執(zhí)行軟件或反匯編源文件,且通過引入深度學(xué)習(xí)模型在節(jié)省人工構(gòu)造高階特征工作量的情況下仍能獲取較高的檢測精度,在惡意軟件檢測領(lǐng)域得到了廣泛關(guān)注和應(yīng)用。惡意軟件檢測與反檢測的對抗博弈是一場永無止境的斗爭,伴隨著基于灰度圖的惡意軟件檢測方法的提出及應(yīng)用,國內(nèi)外研究者圍繞能夠欺騙該方法給出錯誤檢測結(jié)果的對抗樣本(adversarial example)開展了一系列研究工作。
現(xiàn)階段國內(nèi)外研究者針對惡意軟件檢測技術(shù)的對抗樣本研究成果主要包括基于惡意軟件字節(jié)碼分類的對抗樣本生成方法和面向惡意軟件灰度圖檢測方法的對抗樣本生成方法兩類。前者大多是針對MalConv字節(jié)碼檢測模型進(jìn)行的攻擊,主要使用快速梯度符號(fast gradient sign method,FGSM)、C&W(Carlini and Wagner attacks)等對抗算法迭代修改PE 文件間隙空間或尾部空間的字節(jié)碼生成對抗樣本,此類方法生成對抗樣本耗時相對較長且目前并未被應(yīng)用于對抗基于灰度圖的惡意軟件檢測方法;后者大多無法確保所生成對抗樣本的可用性(指PE 文件能夠正常運(yùn)行)或功能性(指PE 文件所包含的程序功能可以正常使用)不被破壞,例如對PE 文件轉(zhuǎn)化的灰度圖進(jìn)行無區(qū)域限定的像素更改的方法或?qū)δ承┚哂泄δ艿膮^(qū)段進(jìn)行更改的方法均會導(dǎo)致原PE 文件的可用性或功能性受損。為使所生成的對抗樣本保留原PE 文件的可用性和功能性,部分國內(nèi)外研究者提出了在PE 文件尾部進(jìn)行字節(jié)添加的對抗樣本,但這類對抗樣本可通過文件頭信息進(jìn)行準(zhǔn)確檢測。
針對上述問題,本文從PE 文件的結(jié)構(gòu)和對齊機(jī)制入手,提出了一種可保留PE 文件可用性和功能性的字節(jié)碼攻擊方法(bytecode attack remaining availability and functionality,BARAF),用于生成針對基于灰度圖的惡意軟件檢測方法的對抗樣本。
本文的主要工作如下:
(1)分析PE 文件的格式與對齊機(jī)制,對不破壞PE 文件可用性和功能性的字節(jié)碼可添加/修改區(qū)域進(jìn)行分析,發(fā)現(xiàn)可供添加/修改字節(jié)碼的區(qū)域有尾部空間、間隙空間以及“模擬拉伸”的擴(kuò)展空間。后續(xù)分析發(fā)現(xiàn)對尾部空間的字節(jié)追加通過文件頭信息便能進(jìn)行準(zhǔn)確檢測,而對間隙空間以及擴(kuò)展空間的字節(jié)修改或添加較難通過文件頭信息準(zhǔn)確檢測。
(2)基于擴(kuò)展空間和間隙空間提出一種可保留PE 文件可用性和功能性的字節(jié)碼攻擊方法BARAF。該方法通過在PE 文件的擴(kuò)展空間、間隙空間以及兩者組成的混合空間內(nèi)添加或修改字節(jié)碼生成對抗樣本,能夠欺騙基于灰度圖的惡意軟件檢測方法。
(3)在VX-Heaven、Virusshare 以及360 安全軟件管家收集的4 688 個樣本上進(jìn)行實驗測試,對BARAF所生成不同對抗樣本的攻擊性能、生成成功率以及檢測準(zhǔn)確性進(jìn)行評估與分析。
將一個待檢測軟件判別為惡意軟件或正常軟件可以視為一個分類問題?,F(xiàn)有研究表明,利用深度學(xué)習(xí)從惡意軟件轉(zhuǎn)化的灰度圖中自動提取特征,再結(jié)合機(jī)器學(xué)習(xí)進(jìn)行分析的框架能夠獲得較高的惡意軟件分類準(zhǔn)確率。該框架將惡意軟件可視化為灰度圖的流程如圖1 所示,在將惡意軟件的PE 文件以二進(jìn)制形式讀取后,將二進(jìn)制序列中每8 bit 視作一個單元,轉(zhuǎn)化為單個數(shù)值范圍為0 到255 的無符號整型數(shù)值列表,之后將列表轉(zhuǎn)換為256×維的二維數(shù)組并導(dǎo)出為灰度圖,其中為灰度圖的高,值視文件字節(jié)尺寸而定。在該框架中深度學(xué)習(xí)與機(jī)器學(xué)習(xí)算法的選擇上,國內(nèi)外研究者運(yùn)用VGG16 與支持向量機(jī)(support vector machine,SVM)組合(后續(xù)簡稱為灰度圖+VGG16+SVM)在惡意軟件檢測/分類上獲得了很高的準(zhǔn)確率。
圖1 惡意軟件可視化為灰度圖流程Fig.1 Process of visualizing malware as gray image
灰度圖+VGG16+SVM 檢測方法框架如圖2 所示,在將軟件灰度圖化后,利用VGG16 自動提取特征,再進(jìn)一步將提取的特征通過SVM構(gòu)建檢測模型以判斷待檢測PE文件為良性軟件還是某一類惡意軟件。
圖2 灰度圖+VGG16+SVM 檢測方法框架Fig.2 Gray+VGG16+SVM detection method framework
在灰度圖+VGG16+SVM 方法完成檢測模型構(gòu)建之后,可以使用對抗樣本干擾其檢測準(zhǔn)確性。對抗樣本被灰度圖+VGG16+SVM 方法作為輸入的待檢測樣本,將執(zhí)行可視化、特征提取和檢測等步驟以判斷其類別。由于對抗樣本是對原始PE 文件中部分字節(jié)針對性修改后所得,其對應(yīng)生成的灰度圖與原始PE 文件所生成的灰度圖也會存在不同,從而影響檢測方法的判別準(zhǔn)確性。本文將圍繞針對灰度圖+VGG16+SVM 方法的對抗樣本展開研究。
基于灰度圖的惡意軟件檢測方法以灰度圖化的軟件作為分析對象?;贘acobian的顯著性圖攻擊、DeepFool、生成對抗網(wǎng)絡(luò)和FGSM 等多種對抗算法被用于生成對抗樣本來欺騙圖片識別方法。在基于灰度圖的惡意軟件檢測方法的對抗樣本研究領(lǐng)域,Liu 等人運(yùn)用FGSM、C&W 等對抗算法對惡意軟件轉(zhuǎn)化的灰度圖直接進(jìn)行像素點(diǎn)擾動來生成對抗樣本。Vi 等人提出的對抗樣本則是通過FGSM算法對PE 文件的資源段進(jìn)行擾動而得到。Khormali等人提出的對抗樣本是通過在PE 文件轉(zhuǎn)化的灰度圖尾部拼接其被Cleverhans庫擾動后的灰度圖或其他類別軟件轉(zhuǎn)化的灰度圖來形成。
分析上述相關(guān)工作,若將PE 文件轉(zhuǎn)化的灰度圖進(jìn)行無區(qū)域限定的像素修改或?qū)E 文件資源段區(qū)域?qū)?yīng)的像素點(diǎn)進(jìn)行修改,將會影響所對應(yīng)PE 文件的可用性或功能性;而針對尾部空間進(jìn)行字節(jié)添加的對抗樣本,由于未修改任何頭部信息而易通過文件頭信息進(jìn)行準(zhǔn)確檢測。針對相關(guān)工作存在的問題,本文重點(diǎn)分析PE 文件的結(jié)構(gòu)和對齊機(jī)制,研究能夠保留PE 文件的可用性和功能性的可添加/修改字節(jié)區(qū)域和相應(yīng)的字節(jié)碼攻擊方法。
PE 文件的可用性和功能性與PE 文件的結(jié)構(gòu)密切相關(guān)。若想在不破壞PE 文件可用性及功能性情況下修改其部分字節(jié)來生成對抗樣本,需分析PE 文件的結(jié)構(gòu)特點(diǎn)。因此,本文從PE 文件的結(jié)構(gòu)特點(diǎn)出發(fā),尋找能夠保留PE 文件的可用性和功能性的可添加/修改字節(jié)區(qū)域。PE 文件結(jié)構(gòu)如圖3 所示,其主要由文件頭(file header,)以及區(qū)段數(shù)據(jù)(section,)兩部分組成。的NT 頭(NT header,)中包含此文件擁有的區(qū)段數(shù)、此文件的文件對齊因子(file alignment,)以及區(qū)段對齊因子(section alignment,)。因為軟件運(yùn)行需要至少一個代碼段,所以≥1。區(qū)段頭(section header,)包含此文件的個區(qū)段標(biāo)志信息,即=[,,…,SH]。文件中任意區(qū)段S均可由SH的區(qū)段段首地址(Pointer-ToRawData,PD)以及區(qū)段尺寸(SizeOfRawData,SD)進(jìn)行定位,∈[1,],S中包含的實際數(shù)據(jù)或代碼的量由虛擬尺寸(VirtualSize,VS)表示。如圖3中PE 文件示例所示,PD為指向區(qū)段的段首地址,VS為區(qū)段的實際字節(jié)碼量,例如為圖3 灰色部分字節(jié)碼“00 0E...6F FF”的字節(jié)總量。 SD為區(qū)段的區(qū)段總大小,其值為一個區(qū)段的間隙字節(jié)碼量與其實際字節(jié)碼量之和。
圖3 PE 文件結(jié)構(gòu)示意圖Fig.3 Diagram of PE file structure
對一個包含個區(qū)段的PE 文件,在如圖3 中所示的文件尾部追加任意量的字節(jié)碼均不會破壞的可用性和功能性。當(dāng)前已有研究者在PE 文件尾部追加字節(jié)碼來形成對抗樣本。文件尾部可以通過文件尾部地址定位,可由式(1)計算得到。
但通過在的尾部追加數(shù)據(jù)所形成的對抗樣本,以的文件頭判斷后是否存在數(shù)據(jù)即可準(zhǔn)確檢測。
為尋找能夠保留PE 文件的可用性和功能性且難以通過文件頭信息準(zhǔn)確檢測的可添加/修改字節(jié)區(qū)域,本文著眼于PE 文件的結(jié)構(gòu)以及加載機(jī)制中的文件對齊與區(qū)段對齊,發(fā)現(xiàn)如圖3 中用黑色標(biāo)識的間隙空間以及后續(xù)介紹的擴(kuò)展空間能夠滿足上述要求。間隙空間因文件對齊機(jī)制而存在——為便于存儲與讀取數(shù)據(jù),PE 文件每個區(qū)段需為磁盤區(qū)塊尺寸(其值等于)的整數(shù)倍,對不足整數(shù)倍部分將填充“0x00”字節(jié)碼從而形成該空間。各間隙空間可由各區(qū)段S的開始地址PD以及其間隙空間尺寸_gap進(jìn)行定位,∈[1,],兩者可分別由式(2)和式(3)計算。
由于一個區(qū)段S間隙空間量由文件對齊機(jī)制中的磁盤區(qū)塊尺寸決定,而該尺寸主流情況下最大為“0x1000”(4 KB),此時一個區(qū)段S的間隙空間的最小與最大空間分別為0 Byte 與4 095 Byte,其中可修改字節(jié)為0 對應(yīng)區(qū)段S的尺寸SD恰好為整數(shù)倍而沒有填充字節(jié)的情況。
本文所指的擴(kuò)展空間源于區(qū)段對齊機(jī)制,即在系統(tǒng)中運(yùn)行PE 文件需要將其加載到內(nèi)存中,此過程中PE 文件每個區(qū)段需要與加載系統(tǒng)的內(nèi)存單位(其尺寸等于)進(jìn)行對齊,致使各個區(qū)段將填充“0x00”字節(jié)碼以進(jìn)行相應(yīng)擴(kuò)展。本文通過填充字節(jié)碼的方式增加各區(qū)段S區(qū)段的尺寸SD并修改區(qū)段段首地址PD數(shù)值,將PE 文件在文件態(tài)下各區(qū)段S的尺寸等同于該文件內(nèi)存態(tài)下′,從而擴(kuò)展出如圖4 中用黑色標(biāo)識的擴(kuò)展空間。區(qū)段S的擴(kuò)展空間可由增加量_expand與PD所定位,PD即為下一個區(qū)段的段首地址PD。區(qū)段S的擴(kuò)展空間的_expand以及其首地址PD可由式(4)、式(5)計算。
圖4 PE 文件加載示意圖Fig.4 Diagram of PE file loading
其中,SA為區(qū)段對齊機(jī)制中用于加載樣本的系統(tǒng)內(nèi)存頁尺寸SA主流情況下為64 位操作系統(tǒng)的內(nèi)存頁尺寸“0x2000”(8 KB),此時一個區(qū)段S擴(kuò)展空間的最小與最大空間分別為0 Byte與8 191 Byte,其中擴(kuò)展空間為0對應(yīng)區(qū)段S的尺寸SD恰好為整數(shù)倍。
綜上所述,在上述間隙空間和擴(kuò)展空間中進(jìn)行字節(jié)碼添加或修改可以生成針對基于灰度圖的惡意軟件檢測方法的對抗樣本,且該對抗樣本不會破壞原PE 文件的可用性和功能性。因此,本文從間隙空間、擴(kuò)展空間以及兩者的混合空間出發(fā),提出一種可保留可用性和功能性的對抗樣本,并將生成該對抗樣本的方法命名為BARAF。
BARAF 方法框架如圖5 所示,在待檢測PE 文件轉(zhuǎn)化為灰度圖之前進(jìn)行文件修改,可自主選擇修改或添加字節(jié)碼的空間及字節(jié)碼內(nèi)容形成不同的對抗樣本。這些對抗樣本通過改變灰度圖區(qū)段紋理的方式影響基于灰度圖的惡意軟件檢測方法對其檢測的準(zhǔn)確性。
圖5 BARAF 框架圖Fig.5 BARAF framework chart
BARAF 生成的對抗樣本根據(jù)攻擊區(qū)域的不同可分為基于擴(kuò)展空間添加的對抗樣本、基于間隙空間修改的對抗樣本與基于混合空間增改的對抗樣本。三種對抗樣本的生成算法本文分別命名為擴(kuò)展字節(jié)碼攻擊(expanded byte-code attack,EBCA)、間隙字節(jié)碼攻擊(gap byte-code attack,GBCA)以及混合字節(jié)碼攻擊(mixed byte-code attack,MBCA)。
基于擴(kuò)展空間添加的對抗樣本以PE 文件的擴(kuò)展空間為攻擊區(qū)域。對包含個區(qū)段的PE 文件進(jìn)行基于擴(kuò)展空間添加的對抗樣本生成過程如算法1所示,其中∈N,其關(guān)鍵點(diǎn)包含區(qū)段空間拉伸與區(qū)段內(nèi)容添加。區(qū)段空間拉伸如第2 章所述,通過數(shù)值修改來增大當(dāng)前區(qū)段SD以及后續(xù)區(qū)段PD~ PD數(shù)值以擴(kuò)展S的空間,所得′~′為S擴(kuò)展后其后續(xù)區(qū)段的段首地址;添加內(nèi)容BCT為在擴(kuò)展空間進(jìn)行字節(jié)添加時選擇的字節(jié)碼,可選字節(jié)范圍為“0x00~0xFF”中任意字節(jié)。
EBCA
基于間隙空間修改的對抗樣本以PE 文件的間隙空間為攻擊區(qū)域。對含有個區(qū)段的PE 文件進(jìn)行基于間隙空間修改的對抗樣本生成過程如算法2所示,其中∈N,其關(guān)鍵點(diǎn)包含間隙空間定位和字節(jié)碼修改。如第2 章所述,區(qū)段S的間隙空間可由_gap和PD定位;修改內(nèi)容BCT為在間隙空間進(jìn)行字節(jié)修改時選擇的字節(jié)碼,可選字節(jié)范圍為“0x00~0xFF”中任意字節(jié)。
GBCA
基于混合空間增改的對抗樣本同時以PE 文件的擴(kuò)展和間隙空間作為攻擊區(qū)域。對包含個區(qū)段的PE 文件進(jìn)行基于混合空間增改的對抗樣本生成過程如算法3 所示,其中∈N,其關(guān)鍵點(diǎn)為3.1 節(jié)與3.2節(jié)所述的間隙空間定位、字節(jié)碼修改、區(qū)段空間拉伸、區(qū)段內(nèi)容添加,添加內(nèi)容BCT、修改內(nèi)容BCT均在“0x00~0xFF”范圍內(nèi)選擇。由基于混合空間增改的對抗樣本定義可知,在主流情況下(和分別為4 KB 和8 KB),中一個區(qū)段S可增改空間大小為0~12 286 Byte。
MBCA
為評估BARAF 所生成的對抗樣本對基于灰度圖的惡意軟件檢測方法的欺騙效果,本文收集了4 688個PE 文件,其中588 個良性軟件來源于360 安全管家并歸為1 個家族(benign),4 100 個分屬16 個家族的惡意軟件采集于VX-heaven和Virusshare。實驗中隨機(jī)抽取這17 個家族中每個家族的70%作為訓(xùn)練集,剩余30%用作測試集。實驗數(shù)據(jù)分布如表1所示。
表1 實驗數(shù)據(jù)集詳情Table 1 Detail of experimental dataset
在實驗中,訓(xùn)練集用于訓(xùn)練基于灰度圖的惡意軟件檢測方法(在本實驗中為Gray+VGG16+SVM 方法),測試集中各樣本將被BARAF 進(jìn)行攻擊。由BARAF 攻擊前后的樣本所轉(zhuǎn)化的部分灰度圖如圖6所示,共有12 個家族的軟件能夠生成基于混合空間增改的對抗樣本。圖6中為“0x80”,每個家族中的左圖為PE 文件轉(zhuǎn)化的原始圖像,右圖為同一文件進(jìn)行混合空間增改所生成的對抗樣本所轉(zhuǎn)化圖像。圖6 顯示BARAF 攻擊生成的對抗樣本所轉(zhuǎn)化圖像相比于原始圖像皆進(jìn)行了長度拉伸且產(chǎn)生了一定程度的圖像紋理變化。
圖6 原始灰度圖與灰度圖化的對抗樣本對比Fig.6 Comparison of original gray image and image-based adversarial example
為評估BARAF 對Gray+VGG16+SVM 方法的影響情況,本文使用準(zhǔn)確率(accuracy)、真陽率(true positive rate,TPR)、假陽率(false positive rate,F(xiàn)PR)、誤分類率(misclassification rate,MR)、對抗樣本生成成功率(success rate,SR)以及平均可添加量(average additive volume,AAV)作為評估指標(biāo)。其中Accuracy用來評估Gray+VGG16+SVM 方法的檢測性能,TPR和FPR 用于評估檢測對抗樣本的準(zhǔn)確性,AAV 為不同家族在單種攻擊下可供添加或修改的平均字節(jié)數(shù)。Accuracy、TPR 與FPR 通過式(6)~(8)計算,其中,TP(true positive)和TN(true negetive)表示正確預(yù)測正/負(fù)例樣本數(shù)量,F(xiàn)N(false negetive)和FP(false positive)表示正/負(fù)例樣本被錯誤預(yù)測的數(shù)量。
指標(biāo)用于衡量BARAF 所生成的對抗樣本對檢測準(zhǔn)確率的影響,可由式(9)計算,其中表示檢測方法的原始準(zhǔn)確率,Accuracy表示檢測方法在攻擊后的測試集上得到的準(zhǔn)確率。
指標(biāo)用于衡量BARAF 生成對抗樣本的成功率,通過式(10)計算,其中表示測試樣本總數(shù),表示成功生成對抗樣本的數(shù)量。
Gray+VGG16+SVM 對原始測試集和BARAF 攻擊后的測試集檢測結(jié)果如表2 所示。由于BARAF 選擇不同字節(jié)碼(選擇范圍為“0x00~0xFF”)將生成不同的對抗樣本,表2 給出了Gray +VGG16+SVM 對BARAF 分別 使用“0x00”“0x80”“0xFF”三組 字節(jié)碼進(jìn)行間隙字節(jié)碼攻擊、擴(kuò)展字節(jié)碼攻擊與混合字節(jié)碼攻擊后的測試集的檢測結(jié)果。
表2 BARAF 對Gray+VGG16+SVM 的性能影響Table 2 Impact of BARAF on performance of Gray+VGG16+SVM
如表2 所示,Gray+VGG16+SVM 方法在原始測試集上獲得的Accuracy 為90.33%,而在三種攻擊方法攻擊后的測試集中,產(chǎn)生最大MR 值的攻擊方法為選擇“0xFF”字節(jié)碼的MBCA,其MR 值達(dá)到31.58%(即使得檢測方法的Accuracy 下降31.58 個百分點(diǎn));其次是選擇“0xFF”字節(jié)碼的EBCA,其攻擊后的測試集產(chǎn)生了26.67%的MR 值;MR 值最低的攻擊方法為GBCA,最多僅能獲得13.57%的MR。在不同字節(jié)碼對攻擊方法的影響方面,除GBCA 選擇“0x00”時由于攻擊前后的灰度圖未發(fā)生變化而未影響檢測準(zhǔn)確性外,不同攻擊均是在使用“0xFF”時獲得最佳的MR值,因此可以將“0xFF”作為BARAF所用字節(jié)碼的推薦值。表2還顯示了GBCA 的AAV 值最?。? 702 Byte),而EBCA的AAV值為7 743 Byte,約為GBCA的2.87倍。
為進(jìn)一步分析BARAF,本小節(jié)首先將對其進(jìn)行對抗樣本生成成功率分析,然后通過文件頭信息對其攻擊后的測試集中樣本進(jìn)行檢測準(zhǔn)確性分析。由于MBCA 的攻擊區(qū)域是GBCA 和EBCA 攻擊區(qū)域的疊加,僅對GBCA 和EBCA 攻擊后的測試集進(jìn)行檢測準(zhǔn)確性分析,最后將BARAF 與其他文章所提出的攻擊方法進(jìn)行對比分析。
(1)對抗樣本生成成功率分析
BARAF 在測試集樣本上生成三種不同對抗樣本的成功率及各家族對抗樣本生成情況分別如表3、表4所示。表3顯示GBCA對應(yīng)的對抗樣本生成成功率最高(SR值為73.76%),而MBCA的SR值僅為41.04%。具體到各個家族,表4 顯示EBCA 在“B.Small”和“TG.OnLineGames”家族上成功生成的對抗樣本數(shù)量為0,這是因為這兩個家族的樣本中所有區(qū)段皆已區(qū)段對齊。而“B.Shark”“TB.Banker”與“TS.Zbot”家族的樣本由于存在實際字節(jié)碼量與區(qū)段實際功能代碼量不相等的情況,GBCA 難以準(zhǔn)確定位間隙空間而導(dǎo)致GBCA 在這三個家族的樣本上成功生成對抗樣本的數(shù)量較少。最后,由于GBCA 與MBCA 兩者皆可成功生成的樣本重合率過低,導(dǎo)致MBCA 在本文測試集上生成對抗樣本的成功率低于50%。
表3 對抗樣本生成成功率Table 3 Creation success rate of adversarial examples 單位:%
表4 各家族對抗樣本生成結(jié)果Table 4 Generation result of adversarial examples of each family
(2)對抗樣本檢測準(zhǔn)確性分析
本小節(jié)將選定為“0xFF”,通過文件頭信息對GBCA 和MBCA 攻擊后的測試集進(jìn)行對抗樣本檢測,檢測結(jié)果分別如圖7、圖8 所示,圖中“No.A”表示GBCA 或MBCA 在各家族測試樣本上成功生成對抗樣本的數(shù)量,“No.B”表示通過文件頭信息判斷為各家族對抗樣本的數(shù)量。從圖7 和圖8 可以看到,在多個家族中通過文件頭信息判別為對抗樣本的數(shù)量超過了該家族測試樣本中對抗樣本的實際數(shù)量。
圖7 通過文件頭信息檢測GBCA 攻擊后的測試集的結(jié)果Fig.7 Detection result obtained by file header information on test set attacked by GBCA
圖8 通過文件頭信息檢測EBCA 攻擊后的測試集的結(jié)果Fig.8 Detection result obtained by file header information on test set attacked by EBCA
表5 給出了GBCA 和EBCA 攻擊后的測試集經(jīng)由基于文件頭信息檢測所得到的檢測結(jié)果。如表5所示,GBCA 和EBCA 的FPR 值分別為17.07%和59.81%,說明通過文件頭信息檢測這兩種攻擊后的測試集均會得到較多的誤報。出現(xiàn)高FPR 值的原因同對抗樣本生成成功率低的原因一致,即區(qū)段的實際字節(jié)碼量與區(qū)段的實際功能代碼量不相等而導(dǎo)致通過文件頭信息定位相應(yīng)空間不準(zhǔn)確。
表5 通過文件頭信息檢測不同攻擊后的測試集的結(jié)果Table 5 Detected results obtained by file header information on test sets attacked by different attacks 單位:%
(3)對比研究
為比較BARAF 與其他針對基于灰度圖的惡意軟件檢測方法的對抗攻擊所生成對抗樣本,本小節(jié)以不同方法所生成對抗樣本通過文件頭信息進(jìn)行檢測的準(zhǔn)確性高低、能否保留PE 文件的可用性和功能性等方面進(jìn)行定性比較。如表6 所示,ATMPA方法通過對PE 文件轉(zhuǎn)化的灰度圖進(jìn)行無區(qū)域限定的像素修改來生成對抗樣本,不易被文件頭信息檢測方法準(zhǔn)確檢測,但該方法生成的對抗樣本可能會因文件結(jié)構(gòu)所對應(yīng)字節(jié)碼被修改而破壞PE 文件的可用性和功能性;RSRC+FGSM方法在生成對抗樣本時將擾動的區(qū)域限制為PE 文件的資源段,該方法生成的對抗樣本不易通過文件頭信息準(zhǔn)確檢測,且由于其未修改文件的代碼段而使得對抗樣本具有可用性,但資源段中字節(jié)碼的修改會破害PE 文件的功能性;COPYCAT方法通過在PE 文件轉(zhuǎn)化的灰度圖尾部拼接其他類別軟件轉(zhuǎn)化的灰度圖來生成對抗樣本,未對PE 文件原有區(qū)段進(jìn)行修改而不會破害其可用性和功能性,但該方法生成的對抗樣本由于未更改文件頭信息而較易通過文件頭信息進(jìn)行準(zhǔn)確檢測;本文提出的BARAF 由于未修改PE 文件的實際功能代碼,所生成的對抗樣本能保留原始PE 文件的可用性和功能性,并且由于攻擊時修改了文件頭的相應(yīng)信息而不易通過文件頭信息準(zhǔn)確檢測。
表6 不同攻擊方法所生成的對抗樣本對比Table 6 Comparison of adversarial examples generated by different attack methods
基于灰度圖的惡意軟件檢測方法由于具有高準(zhǔn)確率的特點(diǎn)逐漸被廣泛應(yīng)用。本文從迭代和完善的意圖出發(fā)研究基于灰度圖的惡意軟件檢測方法的對抗樣本,分析PE 文件的結(jié)構(gòu)以及對齊機(jī)制,發(fā)現(xiàn)了一個能夠保留PE 文件的可用性和功能性的可添加字節(jié)區(qū)域——擴(kuò)展空間,并進(jìn)一步提出了一種可保留PE文件可用性和功能性的字節(jié)碼攻擊方法BARAF。BARAF 通過在特定的間隙空間和擴(kuò)展空間內(nèi)修改或添加字節(jié)碼來生成可保留原PE 文件可用性和功能性的對抗樣本。實驗結(jié)果表明BARAF 所生成的對抗樣本最多能使基于灰度圖的惡意軟件檢測方法Gray+VGG16+SVM 的Accuracy 降低31.58 個百分點(diǎn),并且不易通過文件頭信息進(jìn)行準(zhǔn)確檢測。
在后續(xù)工作中將重點(diǎn)研究針對基于灰度圖的惡意軟件檢測方法的對抗樣本的防御方法,嘗試提出可抵御現(xiàn)有對抗樣本干擾的基于圖像的惡意軟件檢測方法。