羅森林,魯帥,張毅飛,潘麗敏
(北京理工大學 信息與電子學院,北京 100081)
魯棒性是指系統(tǒng)在某些擾動下保持某種性能不變的能力. 機器學習技術廣泛地應用于惡意軟件檢測[1-2]、惡意域名檢測[3]等領域. 對抗樣本[4]等攻擊技術的發(fā)展使機器學習模型面臨著巨大的威脅,使得魯棒性也成為評估機器學習模型時所關注的一個重要指標.
基于隨機平滑的魯棒性認證方法可以適用于任意結構的神經(jīng)網(wǎng)絡,并且相對于其他認證方法有更低的計算開銷,被廣泛地應用于認證大型、復雜模型的魯棒性. LECUYER 等[5]使用隨機平滑為ImageNet 訓練了第一個可認證的魯棒模型,但是得到的認證半徑較為松弛. COHEN 等[6]使用了蒙特卡羅算法,在L2范數(shù)上證明了第一個緊密的魯棒性認證. 在魯棒半徑的認證范圍方面, LEE 等[7]使用離散分布將認證擴展到了L0范數(shù),LI 等[8]將認證擴展到了L1范數(shù). 在認證的模型類型方面, WANG 等[9]將隨機平滑擴展到了基于樹的模型上. 在認證的數(shù)據(jù)領域方面,JIA 等[10]將隨機平滑拓展到了社區(qū)數(shù)據(jù)保護領域.
使用隨機平滑的方法對惡意軟件識別深度學習模型進行魯棒性認證有以下兩方面的問題:1)直接添加噪聲可能會改變實現(xiàn)惡意功能必需的特征,從而導致惡意軟件喪失對應的惡意功能;2)當前的認證算法嚴格按照似然比的大小順序選取空間中的噪聲區(qū)域計算噪聲樣本分類為惡意的概率,導致計算得到的擾動樣本分類為惡意標簽的概率較小,認證算法將其判別為良性,從而使認證的魯棒半徑較為松弛.
針對上述問題,提出一種對惡意軟件識別深度學習模型的魯棒性認證方法. 方法只向與惡意功能無關的特征中添加離散伯努利噪聲實現(xiàn)可認證的平滑模型,選取似然比更小的區(qū)域來計算擾動樣本分類為惡意的概率,獲得更緊密的認證半徑,并給出緊密性理論證明.
方法原理如圖1 所示,包括平滑分類模型構建和魯棒性認證兩個子模塊.
圖1 惡意軟件識別深度學習模型魯棒性認證原理框架Fig. 1 Principle framework of robustness certificate for the malware identification deep learning model
(1)平滑分類模型構建模塊. 平滑分類模型G由噪聲生成器、基分類器F、分類決策器三部分構成.基分類器F可以是任意結構的神經(jīng)網(wǎng)絡. 噪聲生成器生成離散伯努利噪聲和零噪聲結合的噪聲,基分類器對這些噪聲與輸入樣本結合生成的噪聲樣本進行分類,分類決策器將這些噪聲樣本中分類標簽數(shù)量最多的那一類定為輸入樣本的預測類別.
(2)魯棒性認證模塊. 攻擊者對惡意軟件制作對抗樣本試圖逃避分類器的檢測,因此模塊僅對惡意樣本進行魯棒性認證. 輸入樣本x,經(jīng)過平滑分類器生成m個 噪聲樣本X={x1′,x′2,···,x′m},p為任一噪聲樣本分類為惡意的概率下界,如果小于閾值,則輸出棄權,反之使用認證算法進行認證.
首先基于隨機平滑的方法構造一個可認證的深度學習模型. 修改apk 的權限信息只需在Android-Manifest.xml 文件中修改聲明,并不需要修改其他代碼,因此保留了惡意功能必需權限后使得內存讀寫、定位等惡意功能可以正常實現(xiàn). 構造平滑分類模型步驟如下:(1)對apk 進行解壓縮和反編譯,從AndroidManifest.xml 文件中提取apk 的靜態(tài)權限特征,制作特征列表. (2)與惡意功能有關的特征參考谷歌官方發(fā)布的權限列表[11]中注明的權限保護等級,如Signature、Dangerous 等. 根據(jù)列表中對防護等級的標記,保留表1 所示類別中的權限.(3)對訓練集構建特征向量來訓練基模型F. 文章選用深度學習網(wǎng)絡作為基模型F.(4)噪聲生成器使用離散的伯努利噪聲,其中噪聲均值為 μ,生成噪聲樣本的數(shù)量為m,將訓練得到的基模型F結合噪聲生成器、分類決策器構建平滑分類模型G.
表1 實現(xiàn)惡意功能的必需權限及示例Tab. 1 Sensitive permission categories and examples
魯棒性認證即計算模型的魯棒性邊界,給定一個輸入樣本x,保證在某個擾動范圍內,模型都可以將樣本分類正確,即模型對該輸入樣本的分類結果不會在這個區(qū)域內發(fā)生變化,通過認證算法來計算魯棒區(qū)域的邊界. 對構建的平滑分類模型進行認證,輸入向量為離散向量,L1范數(shù)可以表示修改特征的數(shù)目,因此文章選擇L1范 數(shù)定義魯棒半徑R. 設隨機擾動為δ,使用認證算法計算最大的半徑R=||δ||1.
本文使用了3 個公開數(shù)據(jù)集. 一是公開數(shù)據(jù)集Drebin[13],共5 560 個惡意樣本,良性數(shù)據(jù)來自安智應用市場下載,共獲得5 500 個良性樣本. 二是公開數(shù)據(jù)集Androzoo[14],下載了6 677 個惡意樣本和11 000個良性樣本. 三是公開數(shù)據(jù)集CICAndMal2017[14],包括428 個惡意樣本和1 128 個良性樣本. 數(shù)據(jù)集以4∶1 的比例劃分成訓練集和測試集.
在實驗中,選取了顯著性水平α=0.001,噪聲樣本數(shù)量m=10 000,噪聲均值 μ=0.02的平滑模型作為實驗對象,與JIA(2020)[10]、LECUYER(2019)[5]、COHEN(2019)[6]等的方法比較認證準確率和平均認證半徑的大小.
最后,在每個輸入樣本的計算得到的魯棒區(qū)域內隨機抽樣選取100 個噪聲樣本,經(jīng)過平滑分類器后驗證分類結果與輸入樣本是否一致.
圖2 表示使用不同的認證算法對平滑模型進行魯棒性認證的結果. 在離散數(shù)據(jù)集上,使用L1范數(shù)得到的認證半徑R表示對樣本任意修改少于R個特征不會改變其分類結果,因此對認證結果作取整處理. 根據(jù)實驗結果數(shù)據(jù),COHEN、LECUYER 等的認證算法認證的半徑均小于1,經(jīng)過取整后認證的L1半徑為0,從子圖可以看出二者的認證準確率是完全一樣的,在對比圖中曲線重合;JIA 等[9]的認證方法可以得到較大的認證半徑,但是最大認證半徑為2. 改進的認證方法認證了更大的魯棒半徑,在3個數(shù)據(jù)集上認證的最大半徑分別是對比方法的4.5倍、4 倍和3 倍,大幅提升了認證的區(qū)域大小,在各個r(r≥1)上的認證準確率均高于對比方法,獲得了更緊密的認證邊界. 實驗證明提出的算法優(yōu)于目前先進的認證算法,可以為模型提供更高的魯棒性保證.
圖2 不同認證方法的認證準確率Fig. 2 Certified accuracy of models with different certificate methods
表2 表明了幾種認證方法得到的平均認證半徑ACR,可以看出,提出的認證算法在3 個數(shù)據(jù)集上平均認證半徑是最好的對比方法的 4.37 倍、2.67 倍和2.72 倍. 能以99.9%概率保證3 個測試集中的樣本經(jīng)過平均修改少于6.20、2.74、3.81 個特征后仍不會被分類錯誤,取得了較好的認證效果.
表2 不同認證算法認證的平均認證半徑Tab. 2 Average certified radius of different certificate algorithms
在每個樣本經(jīng)過認證得到的半徑區(qū)域內隨機選取100 個擾動樣本,經(jīng)過平滑分類器后分類結果與輸入樣本完全一致,但是由于基于隨機平滑的認證方法是概率性保證,實驗中選取的α為0.001,也就是99.9%的概率保證概率下界的準確性,理論上可能會出現(xiàn)樣本經(jīng)過平滑模型添加隨機噪聲后生成的噪聲樣本中分類成良性更多的情況,但是這種情況出現(xiàn)的概率極低. 另外,基于隨機平滑的認證方法是一種求解魯棒區(qū)域近似下界的認證方法,認證的半徑小于等于實際的半徑,因此可以認為經(jīng)過該方法認證的區(qū)域是魯棒的.
本文提出一種基于隨機平滑的惡意軟件識別深度學習模型魯棒性認證的方法. 所提方法只向惡意功能非必需的特征中添加離散的伯努利噪聲來保證惡意功能的可用性. 認證算法按照似然比大于1、小于1、等于1 的順序構建空間區(qū)域計算樣本分類概率,實現(xiàn)了與實際魯棒邊界更緊密的魯棒性認證. 實驗表明,提出的方法大幅提升了認證準確率,在3 個公開數(shù)據(jù)集上平均認證半徑是對比方法最優(yōu)值的4.37 倍、2.67 倍和2.72 倍,獲得了更準確的魯棒性認證. 未來將研究提升模型魯棒性的方法,以達到更優(yōu)的認證魯棒性.