国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

對抗訓練驅(qū)動的惡意代碼檢測增強方法

2022-10-09 12:48:46劉延華李嘉琪歐振貴高曉玲劉西蒙MENGWeizhi劉寶旭
通信學報 2022年9期
關(guān)鍵詞:檢測器擾動良性

劉延華,李嘉琪,歐振貴,高曉玲,劉西蒙,MENG Weizhi,劉寶旭

(1.福州大學計算機與大數(shù)據(jù)學院,福建 福州 350108;2.福建省網(wǎng)絡計算與智能信息處理重點實驗室,福建 福州 350108;3.丹麥科技大學應用數(shù)學和計算機系,哥本哈根 2800;4.中國科學院信息工程研究所,北京 100093)

0 引言

根據(jù)我國互聯(lián)網(wǎng)網(wǎng)絡安全監(jiān)測數(shù)據(jù)分析報告,在2021 年上半年,我國境內(nèi)感染計算機惡意程序的主機約有446 萬臺,同比增長46.8%,發(fā)現(xiàn)新增移動互聯(lián)網(wǎng)惡意程序86.6 萬余個。隨著惡意代碼及其變種數(shù)量的增加,惡意代碼檢測面臨著巨大的挑戰(zhàn)[1]?;谔卣鞔a的檢測技術(shù)無法應對新型惡意代碼,以人工分析為主要方式的檢測技術(shù)存在檢測效率低等明顯問題,無法適應當前的網(wǎng)絡安全環(huán)境,自動化和智能化的惡意代碼檢測具有一定的必要性。

在智能化惡意代碼檢測中,相關(guān)特征(如任務、意圖、應用編程接口調(diào)用、系統(tǒng)調(diào)用以及字節(jié)特征等)被提前提取并用于惡意代碼檢測器的訓練,取得了較好的結(jié)果[2-3]。然而,機器學習本身存在一些安全性問題[4]。機器學習模型的有效性取決于訓練數(shù)據(jù)和測試數(shù)據(jù)遵循相同分布的假設,這種假設很可能遭到攻擊者的破壞,損害模型的安全性。攻擊者在輸入樣本上施加微小的擾動便能迫使分類模型輸出錯誤的預測,這種方式稱為對抗樣本攻擊[5]。在惡意代碼領(lǐng)域,攻擊者利用模型的不足,生成惡意代碼樣本,達到繞過惡意代碼檢測器的目的[6-7]。

隨著惡意代碼反檢測能力的提高,增強惡意代碼檢測器識別對抗樣本的能力,提高檢測器的穩(wěn)健性,是現(xiàn)階段提升惡意代碼檢測水平的關(guān)鍵。防御蒸餾[8]、對抗訓練[9]和對抗樣本拒絕[10]等是常見的對抗樣本防御措施。其中,對抗訓練被認為是抵抗對抗攻擊的最佳解決方案,它利用訓練好的模型來生成對抗樣本,然后將它們添加到訓練集中以重新訓練模型,從根本上增強目標分類器的穩(wěn)健性[11]。Wang 和Liu 等[12]通過對抗訓練方法提升面向惡意軟件C2 流量的檢測能力。Wang 和Zhang 等[13]提出了一個用于生成對抗樣本進行對抗訓練的框架,通過重訓練提高分類器在安卓惡意軟件檢測和家庭分類中的有效性。這些研究證明了對抗訓練增強惡意代碼檢測器的可行性。

在惡意代碼檢測器對抗訓練的過程中,對抗樣本的生成是一個重要環(huán)節(jié)。如何利用對抗樣本知識,以較小攻擊成本和較高攻擊成功率生成具有現(xiàn)實意義的惡意代碼對抗樣本是惡意代碼領(lǐng)域的一個重要問題。Goodfellow 等[14]提出的生成對抗網(wǎng)絡(GAN,generative adversarial network)在樣本生成上具有一定的優(yōu)勢。GAN 由生成器和判別器構(gòu)成,通過生成器和判別器之間的博弈,生成器將學習到數(shù)據(jù)的潛在規(guī)律并生成新的數(shù)據(jù)。Kim 等[15]利用GAN 生成基于灰度圖像的惡意代碼樣本。之后,Kim 等[16]在文獻[15]的基礎上利用深度卷積GAN 模型生成惡意代碼樣本,并基于圖像結(jié)構(gòu)相似性模擬零日惡意代碼的生成。文獻[17]利用輔助分類生成對抗網(wǎng)絡生成惡意代碼灰度圖像,但沒有考慮生成器生成的惡意代碼質(zhì)量。由于惡意代碼的相鄰字節(jié)之間存在結(jié)構(gòu)上的相互依賴關(guān)系,對于惡意代碼文件的任何更改都可能破壞可執(zhí)行文件的功能,影響惡意代碼的惡意功能[18]。惡意代碼對抗樣本與對抗性圖像不同,即使成功地欺騙了檢測模型,這些對抗樣本在現(xiàn)實世界中也是不可行的。

在惡意代碼的執(zhí)行性問題上,Hu 等[19]提出了一種基于GAN 的惡意軟件生成算法,通過引入一個替代檢測器,對惡意代碼檢測器實現(xiàn)黑盒攻擊,并通過在導入表中添加擾動應用程序接口(API,application programming interface)實現(xiàn)惡意代碼對抗樣本的生成。但是,基于原始GAN 模型的惡意代碼生成,容易面臨梯度消失以及訓練不穩(wěn)定等問題[20]。而且該研究在對抗生成的過程中并未考慮到攻擊成本的問題。唐川等[21]提出了一種基于最小修改成本的對抗樣本生成算法,利用深度卷積GAN 模型生成良性擾動,通過修改反編譯文件并對安卓應用程序包(APK,Android application package)進行重打包,生成可執(zhí)行的惡意軟件對抗樣本,成功繞過目標檢測器的檢測。但是該方法只考慮到了惡意代碼特征的修改成本,未考慮到對抗樣本生成過程中惡意代碼檢測器的查詢次數(shù)。由于檢測器的多次重復查詢,容易引起安全人員的察覺,攻擊者在對檢測器進行攻擊時,需要考慮到目標檢測器查詢效率問題。

針對上述問題,本文提出了一種對抗訓練驅(qū)動的惡意代碼檢測增強方法。首先,基于沃瑟斯坦生成對抗網(wǎng)絡[22](WGAN,Wasserstein generative adversarial network)和擾動刪減方法,生成低擾動數(shù)量、高查詢效率的惡意代碼對抗樣本。然后,利用生成的對抗樣本對目標檢測器進行再訓練,增強惡意代碼檢測器性能。本文的主要研究工作包含以下幾個方面。

1) 提出一種基于WGAN 的良性樣本生成算法,構(gòu)建面向API 調(diào)用的良性樣本庫。利用WGAN在一定程度上解決原始GAN 訓練不穩(wěn)定的問題。通過生成器和判別器之間的博弈訓練,模擬良性樣本的分布,構(gòu)建良性樣本庫,進而為惡意代碼對抗提供更加豐富的擾動組合。

2) 提出一種基于對數(shù)回溯法的擾動刪減算法,構(gòu)造惡意代碼對抗樣本。將生成的良性樣本以擾動的形式添加到惡意代碼,利用對數(shù)回溯法對添加的擾動進行刪減,以較少的擾動數(shù)量和目標檢測器查詢次數(shù)繞過惡意代碼檢測器。

3) 基于對抗訓練對目標檢測器進行增強。利用生成的惡意代碼對抗樣本對惡意代碼檢測器進行重訓練,提高惡意代碼檢測器對于對抗樣本的檢測率。最后,選取不同的惡意代碼檢測器進行實驗,驗證了本文方法的有效性和通用性。

1 相關(guān)理論

1.1 WGAN

WGAN 是GAN 的一種變體,不同于GAN 使用具有突變性的詹森香農(nóng)散度作為生成數(shù)據(jù)與真實數(shù)據(jù)間的距離衡量標準,WGAN 引入沃瑟斯坦距離作為損失函數(shù),能夠?qū)AN 模型梯度消失以及訓練不穩(wěn)定問題進行優(yōu)化。沃瑟斯坦距離更加平滑,即使2 個分布互不重疊,也能夠很好地反映二者的遠近。沃瑟斯坦距離的計算方法如式(1)所示。

其中,Pr和Pg分別表示真實樣本的分布和生成器生成樣本的分布,K表示利普希茨常數(shù)。||f||L≤K等價于若f的定義域為實數(shù)集合,則||f||L≤K表示f的導函數(shù)絕對值不超過K。

將判別器表示為函數(shù)f,設定一個固定常數(shù)c(c〉0),以c的絕對值截斷判別器的參數(shù)ω,限制判別器的最大局部變動幅度,使其滿足在判別器和生成器雙方的博弈中,判別器的目標是盡可能正確地區(qū)分真實樣本與生成器生成的假樣本,即最大化沃瑟斯坦距離。相反地,生成器的目標是最小化沃瑟斯坦距離,盡可能輸出與真實樣本相似的樣本以欺騙判別器。判別器的損失函數(shù)、生成器的損失函數(shù)以及WGAN 的目標函數(shù)分別如式(2)~式(4)所示。

其中,G和D分別表示生成模型和判別模型,θ表示生成器的參數(shù),ω表示判別器的參數(shù)。Pr、Pg和Pz分別表示真實樣本分布、生成器生成樣本分布和隨機噪聲分布。

WGAN 的訓練是一個零和博弈的過程,生成器和判別器通過交替迭代訓練,最終達到納什均衡。訓練判別器時,固定生成器的參數(shù),將生成器生成的樣本和真實樣本作為判別器的輸入,根據(jù)損失函數(shù)LD,更新判別器的參數(shù)并將梯度反向傳播給生成器。每次判別器參數(shù)ω更新后將其按固定常數(shù)c的絕對值截斷,將判別器的參數(shù)限制在固定范圍內(nèi),即ω∈[-c,c]。訓練生成器時,固定判別器的參數(shù),輸入一批隨機噪聲向量,然后輸出虛擬數(shù)據(jù),由判別器對生成的虛擬數(shù)據(jù)進行評估,根據(jù)損失函數(shù)LG更新參數(shù)和反傳梯度。

1.2 API 調(diào)用特征表示

本文主要研究面向API 調(diào)用的惡意代碼檢測,通過獲取應用程序的API 調(diào)用特征判斷應用程序是否具有盜取隱私信息、惡意刪除文件等惡意行為。定義一個應用程序API 特征集合S={s1,s2,…,sn}。將應用程序的API 調(diào)用特征映射為一個二值特征向量,若該應用程序包含API 調(diào)用si,則對應位置的特征向量元素值為1;若該應用程序未調(diào)用sj,則對應位置的特征向量元素值為0。

2 模型構(gòu)建

為了增強惡意代碼檢測模型的穩(wěn)健性和對抗樣本識別能力,本文提出了對抗訓練驅(qū)動的惡意代碼檢測增強方法。模型框架如圖1 所示,主要由數(shù)據(jù)預處理、良性樣本庫構(gòu)建、對抗樣本生成和對抗訓練組成。

圖1 對抗訓練驅(qū)動的惡意代碼檢測增強模型框架

2.1 數(shù)據(jù)預處理

首先,使用反匯編工具對應用程序進行反編譯,獲取應用程序的API 調(diào)用特征。由于總體API數(shù)量較多,使用從惡意樣本數(shù)據(jù)中提取的API 調(diào)用構(gòu)建特征。同時,參考安卓開發(fā)者官網(wǎng)提供的API包索引名對提取的API 調(diào)用特征進行過濾。最后,采用卡方檢驗法降低特征維度,為每一個應用程序樣本生成二值特征向量。

2.2 良性樣本庫的構(gòu)建

WGAN 模型在一定程度上能夠解決GAN 訓練不穩(wěn)定和模式崩潰導致生成數(shù)據(jù)多樣性不足的問題。在構(gòu)建良性樣本庫的過程中,基于WGAN 模型學習真實良性樣本的特征分布,在滿足真實樣本分布的前提下,實現(xiàn)在真實良性樣本基礎上細微的變化,在一定程度上模擬良性樣本的變種生成,進而提供更加豐富的擾動組合。

為了區(qū)分不同模塊生成的樣本,本文定義了不同的樣本名稱,具體描述如表1 所示。

表1 各模塊生成樣本的詳細描述

在模型的結(jié)構(gòu)設計方面,使用多層全連接網(wǎng)絡構(gòu)建WGAN 生成模型和判別模型,網(wǎng)絡結(jié)構(gòu)分別如圖2 和圖3 所示。

圖2 生成模型的網(wǎng)絡結(jié)構(gòu)

圖3 判別模型的網(wǎng)絡結(jié)構(gòu)

生成模型由一個輸入層、2 個隱藏層和一個輸出層組成。輸入層的輸入向量為服從標準正態(tài)分布的隨機噪聲向量。隱藏層使用非線性函數(shù)ReLU 作為激活函數(shù),能夠減少計算量和降低過擬合。輸出層使用的激活函數(shù)為Sigmoid。

判別模型由一個輸入層、2 個隱藏層和一個輸出層組成。輸入層的輸入來自真實樣本。不同于生成模型使用的激活函數(shù)為ReLU,判別模型的隱藏層使用的激活函數(shù)為LeakyReLU。并且,在每個隱藏層后各添加一個Dropout 層,防止模型過擬合。

2.3 對抗樣本生成和對抗訓練

本文采用模擬對抗樣本攻擊的方式,通過對惡意代碼添加擾動生成對抗樣本,達到繞過目標檢測器檢測的目的。其中,攻擊者的能力設定為攻擊者掌握了目標檢測器所使用的算法和特征集合,但是無法獲取檢測器的訓練數(shù)據(jù);攻擊者通過增加API調(diào)用的方式修改惡意軟件;攻擊者只能查詢目標檢測器預測的類別。

由于惡意代碼的特殊性,直接從原始惡意代碼中刪除一個特征可能會導致惡意功能消失,甚至程序崩潰。為了保留惡意代碼的原始功能,只對原始樣本添加API 調(diào)用,不刪除或修改原本存在的特征。對抗樣本的生成流程如圖4 所示。

圖4 惡意代碼對抗樣本生成流程

首先,將良性樣本庫中的樣本以擾動的形式添加進惡意樣本中,以躲避惡意代碼檢測器的檢測。擾動方式如式(5)所示。

其中,X為原始惡意樣本,B(i)為良性樣本庫中的第i個樣本,X'(i) 為對應的添加擾動后的擾動樣本,n為良性樣本庫的規(guī)模。max(·) 代表2 個特征向量間逐元素的或運算,若X的某一元素值為1,則X'(i)對應位置的元素值也為1,即保留惡意樣本中的原始API 調(diào)用;若X的某一元素值為0,而B(i)對應位置的元素值為1,則X'(i) 對應位置的元素值也為1,即添加良性擾動。

其次,為了更加真實地模擬惡意代碼制作者的攻擊思路,本文從攻擊者的角度出發(fā),使用對數(shù)回溯法進行擾動刪減,實現(xiàn)以較少的查詢次數(shù)和較少的擾動數(shù)量生成惡意代碼對抗樣本。

最后,通過將生成的惡意代碼對抗樣本標注為惡意,擴充惡意代碼檢測器訓練數(shù)據(jù),完成檢測器再訓練,達到增強惡意代碼檢測器的目的。

3 基于WGAN 的良性樣本生成算法

本文提出基于WGAN 的良性樣本生成算法,WGAN 模型通過生成器和判別器之間的博弈訓練,生成近似真實良性樣本的數(shù)據(jù)。良性樣本生成過程如算法1 所示。

首先,通過選擇生成器生成的數(shù)據(jù)和真實樣本來訓練判別器,更新判別器的參數(shù)。然后,利用生成器生成的數(shù)據(jù)欺騙判別器,將判別器的判斷結(jié)果反饋給生成器,并更新生成器的參數(shù)。通過生成器和判別器之間的博弈訓練,生成器可以生成更真實的樣本。

總之,在以后的工作中,輔導員老師不僅要加強對學生的心理關(guān)注,安全意識的灌輸與教育,更要加強對重大事件危機應對措施的正確引導,使學生能夠正確處理好自己的極端情緒,提升自身理性思考能力和調(diào)試能力,客觀、正確地面對困難,解決困難!

由于樣本數(shù)據(jù)是由0 和1 構(gòu)成的二進制特征向量,而生成樣本的數(shù)值介于0~1,需要對生成器的輸出進行二值化處理。二值化處理如式(6)所示。

其中,oi為生成網(wǎng)絡的輸出向量的第i個特征值,bi為對應特征二值化結(jié)果。算法2 展示了二值化處理的過程。

運用算法1 和算法2,能夠生成近似良性樣本的生成樣本,構(gòu)建良性樣本庫,為惡意樣本提供良性擾動。

4 基于對數(shù)回溯法的擾動刪減算法

由于攻擊者在攻擊的過程中需要對檢測器的結(jié)果進行查詢,以判斷攻擊的有效性。減少查詢目標檢測器的次數(shù)可以防止被目標檢測器發(fā)現(xiàn)其攻擊行為而拒絕提供服務。攻擊者在制作對抗樣本時傾向于降低攻擊成本、減少擾動數(shù)量和提高查詢效率。為了從攻擊者的角度模擬對抗樣本的生成,提出基于對數(shù)回溯法的擾動刪減算法,實現(xiàn)以較少的查詢次數(shù)和較少的擾動數(shù)量生成惡意代碼對抗樣本。基于對數(shù)回溯法的擾動刪減算法如算法3 所示。

對數(shù)回溯法是一種與二分查找思路相似的方法。二分查找法假定原始數(shù)據(jù)是一個有序的狀態(tài),通過數(shù)據(jù)的中間值與目標值的對比選取執(zhí)行方向。而在本文中,對數(shù)回溯法面向的數(shù)據(jù)是API 調(diào)用列表,是一種無序的數(shù)據(jù)。本文模仿二分查找的思路,在迭代過程中,將原始數(shù)據(jù)隨機減少一半。

首先,選取可以躲避惡意代碼檢測器的擾動樣本,計算擾動集。然后,隨機減少一半的擾動,加入惡意樣本進行查詢,并記錄當前刪除的擾動集。如果查詢結(jié)果為良性,則重復進行此過程,直至檢測器結(jié)果為惡意,交換刪除數(shù)據(jù)和當前保留數(shù)據(jù),重復上述迭代過程。若交換數(shù)據(jù)后查詢結(jié)果仍為惡意,則恢復移除數(shù)據(jù)的一半數(shù)據(jù)進行查詢,重復迭代,直至檢測器結(jié)果為良性。當前數(shù)據(jù)集為刪減后所得API。

5 實驗

5.1 數(shù)據(jù)集

實驗使用了2 個數(shù)據(jù)集,一個是安卓平臺應用程序的數(shù)據(jù)集(后文簡稱為安卓數(shù)據(jù)集),一個是Windows 可執(zhí)行應用程序的數(shù)據(jù)集(后文簡稱為Windows 數(shù)據(jù)集)。

安卓平臺應用程序的數(shù)據(jù)集包含2 932 個惡意樣本和2 165 個良性樣本。其中,惡意樣本來自開源惡意程序樣本庫VirusShare。良性樣本來自小米應用商店,并且所有的良性樣本都經(jīng)過VirusTotal 平臺的檢測。VirusTotal 是一個在線檢測平臺,它通過將文件分發(fā)給多種反病毒引擎進行掃描,掃描結(jié)果準確率優(yōu)于單一產(chǎn)品掃描,具有較高的可靠性。

Windows可執(zhí)行應用程序的數(shù)據(jù)集為天池阿里云安全惡意程序檢測比賽數(shù)據(jù),包含8 909 個惡意樣本和4 978 個良性樣本。數(shù)據(jù)來自文件(Windows可執(zhí)行程序)經(jīng)過沙箱程序模擬運行后的經(jīng)過脫敏處理的API 指令序列。

5.2 實驗設置

實驗選取隨機森林(RF,random forest)、邏輯回歸(LR,logistic regression)、決策樹(DT,decision tree)、支持向量機(SVM,support vector machine)和多層感知器(MLP,multilayer perceptron)作為目標檢測器,驗證本文提出的對抗訓練驅(qū)動的惡意代碼檢測增強方法的有效性。首先通過對良性樣本和對抗樣本進行評估,驗證對抗樣本生成方法的有效性;然后通過對抗訓練前后的檢測器對比,驗證對抗訓練的有效性。

在生成對抗網(wǎng)絡模型的構(gòu)建中,生成模型的節(jié)點數(shù)設置為100-128-128-196,判別模型的節(jié)點數(shù)設置為196-128-128-1。WGAN 模型的實驗參數(shù)如表2 所示。

表2 WGAN 實驗參數(shù)

5.3 評價指標

5.3.1 生成模型的有效性評估

對于生成模型的有效性評估,使用模型生成樣本的良性樣本檢測率作為評估指標,即生成樣本被檢測器判斷為良性的概率,記作GEN_TPR,定義如式(7)所示。

其中,num(·) 為樣本的數(shù)量,f(·) 為目標檢測器對樣本的預測結(jié)果。G為WGAN 的生成器,z為從標準正態(tài)分布的隨機噪聲向量。

5.3.2 對抗樣本的有效性

對抗樣本的評估包含攻擊成功率和攻擊成本這2 個方面。

攻擊成功率也稱為繞過率,即對抗樣本成功躲避目標惡意代碼檢測器檢測,被檢測器識別為良性的概率,記作ASR,計算方法如式(8)所示。

其中,num(·) 為樣本的數(shù)量,f(·) 為目標檢測器對樣本的預測結(jié)果;x為惡意樣本,x' 為x經(jīng)過擾動后的樣本。

對于攻擊成本,本文綜合考慮了添加的擾動數(shù)量和檢測器查詢次數(shù),計算方法如式(9)所示。

其中,cost 為攻擊成本;p為擾動數(shù)量,即添加的API 調(diào)用數(shù)量;q為惡意代碼檢測器的查詢次數(shù),α和β分別為p和q的權(quán)重,本文設定擾動數(shù)量與查詢次數(shù)占相等權(quán)重,即α=β=0.5。

5.3.3 對抗訓練的有效性

惡意代碼檢測器性能的評估,采用模型準確率來衡量檢測器的檢測率,通過對抗訓練前后的準確率對比,驗證對抗訓練的有效性。準確率的計算方法如式(10)所示。

其中,TP 表示正確檢測的惡意樣本數(shù)量,TN 表示正確檢測的良性樣本數(shù)量,F(xiàn)N 表示被判斷為良性的惡意樣本數(shù)量,F(xiàn)P 表示被判斷為惡意的良性樣本數(shù)量。

5.4 生成模型的有效性評估

在訓練WGAN 模型的過程中,將生成器的輸出樣本進行二值化處理后,作為目標檢測器的輸入,計算良性樣本檢測率。

在安卓數(shù)據(jù)集中,實驗選取5.2 節(jié)中的5 種目標檢測器,計算不同訓練次數(shù)下的良性樣本檢測率,實驗結(jié)果如圖5 所示。

圖5 安卓數(shù)據(jù)集下WGAN 生成樣本的良性檢測率

在Windows 數(shù)據(jù)集中,實驗選取DT、MLP 和LR 這3 種目標檢測器,計算不同訓練次數(shù)下的良性樣本檢測率,實驗結(jié)果如圖6 所示。

圖6 Windows 數(shù)據(jù)集下WGAN 生成樣本的良性檢測率

由于WGAN 的訓練過程是生成器和判別器的博弈過程,在迭代初始階段,生成器還沒有學習真實樣本的分布,良性樣本檢測率較低,且存在較大波動,當生成器和判別器進行了多次博弈后,生成器模型生成更加滿足真實樣本分布的數(shù)據(jù)。

從圖5 和圖6 可以看出,安卓數(shù)據(jù)集在經(jīng)過約12 500 次訓練后,在不同的目標檢測器下,良性樣本檢測率均在趨近100%處保持穩(wěn)定。Windows 數(shù)據(jù)集在經(jīng)過16 000 次訓練后,生成樣本的良性檢測率維持在97%以上。基于WGAN 的生成樣本較好地學習了真實良性樣本的分布特征,在構(gòu)建良性樣本庫上具有一定的有效性。

5.5 對抗樣本生成結(jié)果評估

5.5.1 攻擊成功率評估

在攻擊成功率評估的實驗中,對2 個數(shù)據(jù)集選取與5.4 節(jié)中相同的目標檢測器進行實驗。實驗設置不同的良性樣本庫規(guī)模,評估惡意代碼對抗樣本的攻擊成功率。圖7 和圖8 分別為面向安卓數(shù)據(jù)集和Windows 數(shù)據(jù)集的攻擊成功率結(jié)果。其中,橫坐標表示良性樣本庫的規(guī)模,縱坐標為惡意代碼對抗樣本攻擊成功率。

圖7 安卓數(shù)據(jù)集下不同良性樣本庫規(guī)模的攻擊成功率

圖8 Windows 數(shù)據(jù)集下不同良性樣本庫規(guī)模的攻擊成功率

在安卓數(shù)據(jù)集中,當良性樣本庫規(guī)模大于2 000 個時,攻擊成功率維持在一個相對穩(wěn)定的狀態(tài),對抗樣本具有較高攻擊成功率。

在Windows 數(shù)據(jù)集中,MLP 的攻擊成功率較低,但在良性樣本庫規(guī)模大于2 000 個時,仍達到60%以上的攻擊成功率。在4 000~10 000 個的良性樣本庫規(guī)模中,攻擊成功率呈現(xiàn)出一定的增長趨勢。當良性樣本庫規(guī)模達到10 000 時,攻擊成功率取得了較好的結(jié)果。

實驗結(jié)果發(fā)現(xiàn),當良性樣本庫規(guī)模為1 000 個時,2 個數(shù)據(jù)集下不同的目標檢測器的攻擊成功率均最低,過少的良性樣本會影響當前對抗樣本攻擊方法的效果。當目標檢測器為DT 時,2 種數(shù)據(jù)集都具有最高攻擊成功率。決策樹算法通過對訓練數(shù)據(jù)進行分析,對特征生成規(guī)則,利用規(guī)則對新數(shù)據(jù)進行判斷。本文的攻擊方法通過向惡意樣本添加擾動,容易對基于生成規(guī)則的決策產(chǎn)生干擾,達到攻擊效果。

5.5.2 攻擊成本評估

為了驗證基于對數(shù)回溯法的擾動刪減在擾動成本和查詢效率上的有效性,本文對安卓數(shù)據(jù)集進行3 組實驗,即實驗1、實驗2 和實驗3,分別計算安卓數(shù)據(jù)集惡意代碼對抗樣本在不同良性樣本庫規(guī)模的攻擊成本。實驗1 按照擾動數(shù)量從小到大的順序選取擾動樣本,進行檢測器查詢,直到樣本成功躲避惡意代碼檢測器的檢測。實驗2 按照擾動數(shù)量從小到大的順序選取擾動樣本,進行檢測器查詢,并對成功躲避惡意代碼檢測器的樣本進行擾動刪減。實驗3 隨機選取擾動樣本,對成功躲避惡意代碼檢測器的樣本執(zhí)行基于對數(shù)回溯法的擾動刪減。3 組實驗統(tǒng)一使用RF 算法作為惡意代碼目標檢測器,評估在不同規(guī)模的良性樣本庫下,對抗樣本生成的攻擊成本,采用箱型圖展示攻擊成本結(jié)果,如圖9~圖11 所示,其中,▲表示數(shù)據(jù)平均值,●表示數(shù)據(jù)異常值。

圖9 不同良性樣本庫規(guī)模的擾動數(shù)量

圖10 不同良性樣本庫規(guī)模的查詢次數(shù)

圖11 不同良性樣本庫規(guī)模的攻擊成本

在擾動數(shù)量上,3 組實驗均受良性樣本庫規(guī)模的大小影響不大。實驗1 是在文獻[21]的對抗樣本生成算法的基礎上增加擾動樣本的排序操作,擾動數(shù)量與文獻[21]一致。實驗2 在實驗1 的基礎上進行擾動刪減,擾動數(shù)量最少。實驗3 采取隨機選取擾動樣本的方式,擾動數(shù)量不穩(wěn)定,跨度較大。從整體擾動數(shù)量的平均值看,3 組實驗的擾動數(shù)量差距在5 個以內(nèi)。

在目標檢測器查詢次數(shù)上,實驗3 的查詢次數(shù)最少。實驗1 和實驗2 的查詢次數(shù)隨著良性樣本庫規(guī)模的增加而增加,實驗3 的擾動數(shù)量受良性樣本庫規(guī)模影響不大,始終保持較低查詢次數(shù)。

本文通過理論分析,計算基于對數(shù)回溯法的擾動刪減方法的查詢次數(shù)。在進行擾動刪減時,基于對數(shù)回溯法從最大的擾動集開始,不斷從擾動樣本中刪除一半添加的擾動,直到樣本被目標檢測器錯誤分類,實現(xiàn)在盡可能少的查詢次數(shù)內(nèi)減少擾動數(shù),當刪減到只剩一個擾動且刪減過程中每次迭代都需要交換保留集和刪除集時,所需查詢次數(shù)最多,設原擾動數(shù)為p,特征維度為k,則查詢次數(shù)為2logp≤2logk。而在文獻[21]的對抗樣本生成算法中,對抗樣本生成只關(guān)注擾動數(shù)量,并不關(guān)注查詢次數(shù),檢測器查詢次數(shù)等于良性樣本庫規(guī)模大小。

為了綜合考慮擾動數(shù)量和惡意代碼檢測器查詢次數(shù),采用式(9)的攻擊成本計算方法,實驗結(jié)果如圖11 所示。從圖11 中可知,當良性樣本庫規(guī)模為100 個時,由于良性樣本庫規(guī)模較小,實驗3 在查詢次數(shù)上的優(yōu)勢并沒有得到體現(xiàn)。并且,由于實驗3 在選擇擾動樣本時具備一定的隨機性,擾動數(shù)量存在一定的浮動,在良性樣本庫規(guī)模為100 個時,攻擊成本的平均值略大于實驗1 和實驗2。在其他良性樣本庫規(guī)模中,實驗3 的攻擊成本最小,且實驗3 的攻擊成本不受良性樣本庫規(guī)模的影響。

在安卓數(shù)據(jù)集中,當良性樣本庫規(guī)模大于2 000時,攻擊成功率維持在一個相對穩(wěn)定的狀態(tài),對抗樣本具有較高攻擊成功率。為了驗證本文方法對于不同分類器具有通用性,選取5.2 節(jié)中的目標檢測器進行實驗,在良性樣本庫規(guī)模為2 000 個的條件下,計算對抗樣本生成的擾動數(shù)量與查詢次數(shù),結(jié)果如圖12 和圖13 所示。

圖12 不同目標檢測器的擾動數(shù)量

圖13 不同目標檢測器的查詢次數(shù)

實驗結(jié)果表明,本文提出的基于對數(shù)回溯法的擾動刪減算法能夠以較小的擾動數(shù)量和查詢次數(shù),躲避多種惡意代碼檢測器的檢測,對不同的惡意代碼檢測器具有一定的通用性。

結(jié)合圖7 和圖12 中安卓數(shù)據(jù)集不同目標檢測器的攻擊成功率和擾動數(shù)量實驗結(jié)果可以發(fā)現(xiàn),具有最高攻擊成功率的DT 檢測器對應的平均擾動數(shù)量最少,而具有最低攻擊成功率的SVM 檢測器對應的平均擾動數(shù)量最多。檢測器的對抗攻擊難度與對抗樣本擾動數(shù)量具有一定的正相關(guān)性。

在查詢次數(shù)方面,各目標檢測器模型沒有體現(xiàn)出明顯的差距,攻擊過程中的檢測器查詢次數(shù)集中在5~10 次,具有較高的查詢效率。

5.5.3 對抗樣本的有效性評估

對于安卓應用程序,本文通過在反匯編文件中文件中插入擾動API,并利用工具對文件進行重打包和重簽名。

以惡意 APK“VirusShare_ffb376be1e8d8311d 320f7a107caee9a”為例,利用本文提出的對抗樣本生成算法,得到擾動API,在反匯編文件中添加擾動API 調(diào)用代碼,并進行重打包和重簽名。最后,利用VirusTotal 對擾動生成的APK 進行檢測,實驗結(jié)果表明,與原始惡意樣本相比,將擾動生成的對抗樣本識別為惡意文件的反病毒引擎數(shù)量減少了10 個,驗證了本文所提出的對抗樣本生成的有效性。

5.6 對抗訓練結(jié)果評估

為了驗證對抗訓練對惡意代碼檢測器的增強作用,本文對2 組數(shù)據(jù)集分別進行4 組實驗。首先,計算原始目標檢測器的準確率,并對目標檢測器進行對抗攻擊。然后,將生成的對抗樣本加入惡意代碼檢測器進行對抗訓練。最后,再次攻擊對抗訓練后的檢測器。

2 個數(shù)據(jù)集對抗訓練前后檢測器的準確率如表3 和表4 所示。其中,D 為初始檢測器,DAT為對抗訓練后的檢測器。對D 和DAT檢測器進行對抗樣本攻擊模型分別表示為AE1和AE2。表5 和表6為對D 和DAT檢測器進行對抗攻擊的攻擊成功率,即AE1和AE2的攻擊成功率。

表3 對抗訓練前后檢測器的準確率(安卓數(shù)據(jù)集)

表4 對抗訓練前后檢測器的準確率(Windows 數(shù)據(jù)集)

表5 對抗訓練前后對抗攻擊成功率(安卓數(shù)據(jù)集)

表6 對抗訓練前后對抗攻擊成功率(Windows 數(shù)據(jù)集)

從表3 和表4 可知,對于不同的目標檢測器,在經(jīng)過對抗訓練后,檢測器的準確率大都得到了一定的提升。結(jié)果表明,通過加入生成的惡意代碼對抗樣本進行對抗訓練,提升了目標檢測器的惡意代碼識別能力。

從表5 和表6 可知,對抗訓練后的惡意代碼檢測其攻擊成功率明顯低于原始惡意代碼檢測器。結(jié)果表明,通過對抗訓練,惡意代碼檢測器識別對抗樣本的能力有明顯提高,提高了模型的抗干擾能力,增強了模型的穩(wěn)健性。

6 結(jié)束語

針對機器學習模型的脆弱性問題,對惡意代碼檢測模型的增強方法展開了研究,提出了對抗訓練驅(qū)動的惡意代碼檢測增強方法。首先,基于WGAN構(gòu)建面向API 調(diào)用的良性樣本庫,以擾動的形式添加進惡意樣本。然后,基于對數(shù)回溯法進行擾動刪減以降低攻擊成本。最后,基于主動防御思想將生成的對抗樣本用于惡意代碼檢測器的重訓練,提高惡意代碼檢測器防御對抗性攻擊的能力。實驗表明,本文提出的惡意代碼對抗樣本生成方法能夠以較低的擾動成本和較少的查詢次數(shù)生成具有較高躲避率的惡意代碼對抗樣本。通過生成的惡意代碼對抗樣本來豐富惡意樣本庫,重訓練惡意代碼檢測模型,能夠達到增強模型穩(wěn)健性和提高模型檢測率的效果。

在未來研究工作中,將進一步對本文方法進行改進和完善。一方面,針對對抗樣本生成攻擊成本最小化問題進行優(yōu)化,考慮多個因素對攻擊成本的影響并賦予合適的權(quán)重。另一方面,進一步探索基于代碼混淆技術(shù)和躲避動態(tài)惡意代碼檢測模型的對抗樣本生成方法。

猜你喜歡
檢測器擾動良性
Bernoulli泛函上典則酉對合的擾動
走出睡眠認知誤區(qū),建立良性睡眠條件反射
中老年保健(2022年6期)2022-08-19 01:41:22
呼倫貝爾沙地實現(xiàn)良性逆轉(zhuǎn)
(h)性質(zhì)及其擾動
車道微波車輛檢測器的應用
小噪聲擾動的二維擴散的極大似然估計
基層良性發(fā)展從何入手
一種霧霾檢測器的研究與設計
甲狀腺良性病變行甲狀腺全切除術(shù)治療的效果分析
用于光伏MPPT中的模糊控制占空比擾動法
北川| 炎陵县| 枞阳县| 繁峙县| 巨野县| 定边县| 股票| 肇庆市| 垫江县| 惠州市| 安义县| 渑池县| 乌兰察布市| 宣汉县| 威海市| 中超| 龙南县| 呼伦贝尔市| 铁力市| 马山县| 镇赉县| 潍坊市| 甘德县| 诏安县| 枣强县| 泌阳县| 麻江县| 尼木县| 旬邑县| 尼玛县| 原平市| 长海县| 武义县| 五原县| 香河县| 林芝县| 日照市| 灵璧县| 兴仁县| 文安县| 孟州市|