文/郭文博 徐軍
近年來,深度神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)安全應(yīng)用上展現(xiàn)出強(qiáng)大的潛力。截至目前,我們已經(jīng)看到深度神經(jīng)網(wǎng)絡(luò)在惡意軟件聚類、逆向工程以及網(wǎng)絡(luò)入侵檢測(cè)中取得了很好的效果。盡管如此,由于神經(jīng)網(wǎng)絡(luò)的不透明特性,安全從業(yè)人員對(duì)其使用依舊十分慎重。具體而言,深度神經(jīng)網(wǎng)絡(luò)可能是由大量的數(shù)據(jù)集訓(xùn)練而成并且存在上百萬個(gè)神經(jīng)元。 這種高度的復(fù)雜性使得我們很難理解神經(jīng)網(wǎng)絡(luò)的某些決策,從而導(dǎo)致了諸如無法信任神經(jīng)網(wǎng)絡(luò)以及無法有效判斷神經(jīng)網(wǎng)絡(luò)的錯(cuò)誤等問題。
為了增強(qiáng)神經(jīng)網(wǎng)絡(luò)的透明性,研究者們已經(jīng)開始探索新的方法來解讀神經(jīng)網(wǎng)絡(luò)的分類結(jié)果。然而,這些方法難以用于解釋在安全領(lǐng)域的深度學(xué)習(xí)。一方面,已有的方法主要是用于解釋深度學(xué)習(xí)在圖像分析領(lǐng)域的應(yīng)用,被解釋的模型通常是Convolutional Neural Networks (CNN)。但在安全應(yīng)用方面,比如逆向工程和惡意軟件分析領(lǐng)域,通常我們使用具有更高擴(kuò)展性及更強(qiáng)特征關(guān)聯(lián)性的模型,比如Recurrent Neural Networks (RNN)或者M(jìn)ultilayer Perceptron Model (MLP)。到目前為止,沒有解釋模型可以被用于RNN;另一方面,現(xiàn)有的方法通常有較低的解釋精度。對(duì)于擁有模糊邊界的應(yīng)用而言,比如圖像識(shí)別,相對(duì)較低的解釋精度是可以接受的。但是對(duì)于安全應(yīng)用,比如二進(jìn)制分析,一個(gè)字節(jié)的解釋偏差也會(huì)導(dǎo)致嚴(yán)重的誤解或者錯(cuò)誤。
在這項(xiàng)工作中,我們嘗試構(gòu)建一種新型的、具有高解釋精度的模型用于安全應(yīng)用。此方法屬于黑盒方法,并且通過特殊的設(shè)計(jì)來解決以上難題。給定一個(gè)輸入樣本x以及一個(gè)分類器(如RNN),我們嘗試去發(fā)現(xiàn)那些對(duì)于歸類x起重要作用的關(guān)鍵特征。從技術(shù)上而言,對(duì)于x附近區(qū)域的決策邊界生成局部擬合。為了提高擬合的精確度,該方法不假設(shè)分類器的決策邊界是線性的,也不假設(shè)不同的特征之間是獨(dú)立的。相反,我們借用混合回歸模型來近似非線性的局部決策邊界,同時(shí)通過fused lasso來加強(qiáng)解釋精度。這樣的設(shè)計(jì)一方面提供了足夠的靈活性來優(yōu)化對(duì)于非線性決策邊界的擬合,另一方面fused lasso可以很好地抓住不同特征之間的依賴性。為了更加方便的闡述,我們將這個(gè)方法稱為LEMNA (Local Explanation Method using Nonlinear Approximation) 。
圖1 機(jī)器學(xué)習(xí)解釋示例
為了驗(yàn)證解釋模型的有效性,我們利用LEMNA來解釋深度學(xué)習(xí)在安全方向的兩個(gè)應(yīng)用:PDF malware的聚類以及在二進(jìn)制代碼中尋找函數(shù)邊界。在這兩個(gè)應(yīng)用中,聚類器分別是通過10000 個(gè)PDF文件以及2200個(gè)二進(jìn)制程序來訓(xùn)練的。它們都達(dá)到了98.6%以上的精度。我們將LEMNA用來解釋聚類結(jié)果并且開發(fā)了一系列的指標(biāo)來驗(yàn)證解釋的正確性。這些指標(biāo)表明在這些分類器以及應(yīng)用中,LEMNA顯著的優(yōu)于已有的解釋方法。在準(zhǔn)確度評(píng)估之外,我們還展示了安全分析員和機(jī)器學(xué)習(xí)開發(fā)者將如何從解釋結(jié)果中受益。
這項(xiàng)工作主要帶來以下幾個(gè)貢獻(xiàn):
1.設(shè)計(jì)并且開發(fā)了LEMNA, 它是一種專門用于解釋安全應(yīng)用中的深度學(xué)習(xí)的方法。該方法結(jié)合混合回歸模型以及fused lasso,提供高精度的解釋結(jié)果。
2.在兩個(gè)不同的安全應(yīng)用上評(píng)測(cè)了LEMNA,包括PDF惡意軟件聚類,以及二進(jìn)制代碼的函數(shù)邊界確定。我們提出了一系列的指標(biāo)來評(píng)估我們解釋結(jié)果的精確度。實(shí)驗(yàn)顯示LEMNA顯著優(yōu)于現(xiàn)有的解釋方法。
3.論證了解釋模型的實(shí)際應(yīng)用。不論是二進(jìn)制代碼分析,還是惡意軟件檢測(cè),LEMNA都闡釋了為什么聚類器會(huì)做出正確的或者錯(cuò)誤的決定。同時(shí)還開發(fā)了一種簡單的方法來自動(dòng)將我們得到的啟發(fā)變成修正模型錯(cuò)誤的可行方案。
表1 可行方法的必要特征
在具體介紹技術(shù)細(xì)節(jié)之前,我們先介紹一些相關(guān)的背景知識(shí)。首先,對(duì)可解釋機(jī)器學(xué)習(xí)給出一個(gè)定義,并且討論相關(guān)的解釋技術(shù)。然后,對(duì)利用深度學(xué)習(xí)的關(guān)鍵安全應(yīng)用進(jìn)行簡介。最后,詳細(xì)描述為什么已有的解釋技術(shù)不適用于這些安全應(yīng)用。
可解釋機(jī)器學(xué)習(xí)嘗試對(duì)于分類的結(jié)果給出可理解的解釋。具體而言,給定一個(gè)輸入 x 以及一個(gè)分類器 C,這個(gè)分類器在測(cè)試時(shí)會(huì)給 x 一個(gè)標(biāo)簽 y,解釋技術(shù)的目標(biāo)是闡釋為什么x 被分類成y,通常的做法是標(biāo)定使得分類器給出決策的關(guān)鍵性特征。如果這些被選擇的特征是可以理解的,那么我們就認(rèn)為這些特征給出了一個(gè)解釋。圖1展示了基于圖像分類以及情感分析的例子。我們可以通過選擇特征來解釋這些分類器的決策(比如,突出關(guān)鍵像素和關(guān)鍵字)。在這個(gè)工作中,主要聚焦于解釋安全應(yīng)用中的深度學(xué)習(xí)。從技術(shù)上而言,我們的工作可以歸類為黑盒解釋方法。
圖2 黑盒解釋方法原理說明
黑盒解釋方法不需要理解諸如網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)等分類器的內(nèi)部結(jié)構(gòu)。取而代之的是,它們將分類器視為黑盒子然后通過對(duì)于輸入輸出的觀察來進(jìn)行分析(即模型推斷方法)。這個(gè)類別里面最有代表性的工作是 LIME 。給定一個(gè)輸入 x (比如一個(gè)圖片),LIME系統(tǒng)性的擾動(dòng)x來從x的鄰近特征區(qū)域里面獲取一系列新的人工樣本 (比如圖 2中的x ' 和x '' )。我們將這些人工樣本放到目標(biāo)分類器 f(x) 里面去獲取相應(yīng)的樣本, 然后用線性回歸模型 g(x) 來擬合這些數(shù)據(jù)。這個(gè) g(x) 試圖去模擬f(x)在特征空間中位于輸入樣本附近區(qū)域的決策。LIME假設(shè)在輸入樣本附近的局部決策區(qū)間是線性的,因此用線性回歸模型來局部代表 f(x) 的決策是合理的。由于線性回歸是可自解釋的,因此LIME可以基于回歸系數(shù)來標(biāo)定重要的特征。
雖然深度學(xué)習(xí)在安全應(yīng)用上已經(jīng)展現(xiàn)了巨大的潛能,但是卻極度缺乏對(duì)應(yīng)的解釋模型。其結(jié)果是,透明度的缺乏降低了可信度。首先,安全從業(yè)者如果不知道關(guān)鍵的決策是怎么做出的可能不能信任深度學(xué)習(xí)模型。其次,如果安全從業(yè)者不能診斷分類器的錯(cuò)誤(比如,由于畸形的數(shù)據(jù)引入的錯(cuò)誤),那么這些錯(cuò)誤可能在后面的實(shí)用中被放大了。接下來,我們介紹兩個(gè)成功使用深度學(xué)習(xí)的關(guān)鍵性安全應(yīng)用,然后討論為什么已有的解釋方法在這些安全應(yīng)用中不適用。
在此工作中,我們關(guān)注兩類安全應(yīng)用:二進(jìn)制代碼逆向和惡意軟件聚類。二進(jìn)制代碼分析中的深度學(xué)習(xí)應(yīng)用包括尋找函數(shù)邊界,確定函數(shù)類型,以及相似代碼定位。比如說,Shin他們用一個(gè)雙向的RNN來改進(jìn)函數(shù)邊界尋找,實(shí)現(xiàn)了幾乎完美的結(jié)果。對(duì)于惡意軟件分類,現(xiàn)有的工作主要通過使用MLP模型來進(jìn)行大規(guī)模惡意樣本聚類。
利用現(xiàn)有的解釋方法來解釋以上的深度學(xué)習(xí)應(yīng)用有極大的挑戰(zhàn)。在表1中,我們總結(jié)了一個(gè)可行方法的必要特征,以及為什么現(xiàn)有的解釋技術(shù)不適用:
1.大部分的解釋方法是為用于圖片聚類的CNN而設(shè)計(jì)的。但是,我們關(guān)注的安全應(yīng)用主要使用的是RNN或者M(jìn)LP。由于模型上的不匹配,現(xiàn)有的解釋方法是不適用的。諸如LIME的黑盒模型不能很好地支持RNN。
2.像LIME這類的黑盒方法假設(shè)不同的特征是不相關(guān)的,但是RNN跟這個(gè)假設(shè)是沖突的,因?yàn)镽NN會(huì)明確地捕捉序列數(shù)據(jù)中的特征依賴。
圖3
3.大部分的解釋方法(比如LIME)假設(shè)決策邊界是有局部線性特征的。但是,當(dāng)這些局部決策邊界不是線性的(對(duì)于大部分復(fù)雜網(wǎng)絡(luò)而言),這些解釋方法將導(dǎo)致嚴(yán)重的錯(cuò)誤。圖3左邊中展示了一個(gè)相應(yīng)的例子。這個(gè)例子中,x附近的決策邊界是高度非線性的。換言之,線性的部分極度地約束于一個(gè)非常小的區(qū)域內(nèi)部。我們通常用的取樣方法非常容易就會(huì)采樣到超越線性區(qū)域的樣本點(diǎn),從而使得一個(gè)線性模型很難擬合 x 附近的決策邊界。在實(shí)驗(yàn)中發(fā)現(xiàn)這樣簡單的線性擬合會(huì)高度降低解釋精度。
4.黑盒解釋方法對(duì)于安全應(yīng)用而言是非常重要的,因?yàn)槿藗兒苌偈褂锰峁┚唧w網(wǎng)絡(luò)結(jié)構(gòu)、參數(shù)和訓(xùn)練數(shù)據(jù)的模型。雖然有些白盒解釋方法可以強(qiáng)行在黑盒環(huán)境下使用,但是他們無可避免的會(huì)導(dǎo)致精度的下降。
在此工作中,我們嘗試著提供專用于安全應(yīng)用中的解釋方法。我們的方法是一種黑盒方法,同時(shí)可以有效支持諸如RNN, MLP和CNN的深度學(xué)習(xí)模型。更重要的是,該方法實(shí)現(xiàn)了一個(gè)更高的精度來支持安全應(yīng)用。
為了實(shí)現(xiàn)以上的目標(biāo),我們?cè)O(shè)計(jì)并且開發(fā)了LEMNA??傮w而言,將目標(biāo)聚類器當(dāng)成一個(gè)黑盒子,通過模型擬合來推導(dǎo)解釋。為了提供高精度的解釋,LEMNA需要一種全新的設(shè)計(jì)。首先,引入 Fused Lasso 來處理特征間的依賴關(guān)系。然后,將Fused Lasso 融入到一個(gè)混合線性模型中,以此來擬合局部非線形的決策邊界,從而支持復(fù)雜的安全應(yīng)用。接下來,討論設(shè)計(jì)背后的原理,將講述如果將這些設(shè)計(jì)整合成一個(gè)單獨(dú)的模型,以此來同時(shí)處理特征依賴以及局部非線性。最后,介紹如何利用LEMNA來得到高精度的解釋。
Fused Lasso是一種通常用來獲取特征依賴的懲罰項(xiàng),能有效處理像RNN一類深度學(xué)習(xí)中的特征依賴。總體而言,F(xiàn)used Lasso迫使LEMNA將相關(guān)/相鄰的特征組合起來產(chǎn)生有意義的解釋。接下來介紹具體的細(xì)節(jié)。
為了從一個(gè)集合的數(shù)據(jù)樣本中學(xué)習(xí)一個(gè)模型,機(jī)器學(xué)習(xí)算法需要最小化一個(gè)loss function L(f (x),y)。這個(gè)函數(shù)定義了預(yù)測(cè)結(jié)果和真實(shí)結(jié)果的不相似程度。比如說,為了從N個(gè)樣本中學(xué)習(xí)到一個(gè)線性回歸模型 f (x)= βx + ?,一個(gè)學(xué)習(xí)算法需要使用Maximum Likelihood Estimation (MLE) 來最小化如下的方程式:
其中, Xi是一個(gè)訓(xùn)練樣本,被表示成一個(gè)多維的特征向量(x1, x2, …, xM)T。Xi的標(biāo)簽表示為 yi。向量 β=(β1,β2, …,βM)包含了這個(gè)線性模型的系數(shù),而‖ ·‖是L2范式,來度量模型預(yù)測(cè)和真實(shí)結(jié)果中間的不相似程度。Fused Lasso是可以作為懲罰項(xiàng)引入學(xué)習(xí)算法中的任何損失函數(shù)。以線性回歸為例,F(xiàn)used Lasso表示為對(duì)于系數(shù)施加的約束:
當(dāng)一個(gè)學(xué)習(xí)算法最小化損失函數(shù)的時(shí)候,F(xiàn)used Lasso 強(qiáng)制使得相鄰特征間的系數(shù)之間的差距在一個(gè)S范圍內(nèi)。因此,這個(gè)懲罰項(xiàng)驅(qū)使一個(gè)學(xué)習(xí)算法對(duì)于相鄰的特征賦予相同的權(quán)重。這可以被認(rèn)為是驅(qū)使一個(gè)學(xué)習(xí)算法聚合一組特征,然后根據(jù)特征群組來解釋模型。安全應(yīng)用,比如時(shí)間序列分析和代碼序列分析,通常需要使用RNN來對(duì)特征之間的依賴性進(jìn)行建模,由此得到的聚類器依據(jù)特征的共存來做出分類決策。如果我們用一個(gè)標(biāo)準(zhǔn)的線性回歸模型(比如 LIME)來得到一個(gè)解釋,將無法正確的擬合一個(gè)局部決策邊界。這是因?yàn)橐粋€(gè)線性回歸模型將特征獨(dú)立對(duì)待,無法捕捉到特征依賴。通過在擬合局部決策邊界的過程中引入Fused Lasso, 我們期待得到的線性模型有如下形式:
在上面的形式中,特征被群組起來。因此,重要的特征有可能被選取成一個(gè)或多個(gè)群組。具象的對(duì)這個(gè)過程進(jìn)行建模的LEMNA可以推導(dǎo)出精確的解釋,尤其是RNN所做出的決策。我們通過圖1中的情感分析的例子來解釋這個(gè)思路。通過引入Fused Lasso, 以及一個(gè)回歸模型考慮相鄰的特征(比如,一個(gè)句子中的相鄰單詞),當(dāng)我們推導(dǎo)解釋時(shí),模型不再簡單地抓住單詞 “not”, 同時(shí)我們還能精確的抓住短語“not worth the price”來作為情感分析的解釋結(jié)果。
Mixture Regression Model 使得我們可以精確的擬合局部非線形決策邊界。如圖3右邊所示,一個(gè)混合回歸模型是多個(gè)線性模型的組合。它使得擬合更加有效:
在上面的公式中,K 是一個(gè)超參數(shù),代表著混合模型中線性部件的總個(gè)數(shù)。πk表示的是對(duì)應(yīng)的部件的權(quán)重。
給定足夠的數(shù)據(jù),不論一個(gè)聚類器有著線性的還是非線性的決策邊界,該混合模型都可以近乎完美地?cái)M合這個(gè)決策邊界(使用一個(gè)有限集合的線性模型)。因此,在深度學(xué)習(xí)解釋的問題中,這個(gè)混合回歸模型避免了前面提到的非線性問題,從而得到了更精確的解釋。為了更好的闡釋這個(gè)思路,我們使用圖3中的例子。如該圖所示,一個(gè)標(biāo)準(zhǔn)的線性擬合無法保證輸入x 附近的樣本仍然在線性局部空間內(nèi)。這可能輕易導(dǎo)致一個(gè)不精確的擬合以及低精度的解釋。如圖3右邊所示,用一個(gè)多邊的邊界來擬合局部決策邊界(每一條藍(lán)色的直線代表了一個(gè)獨(dú)立的線性回歸模型)。其中最好的擬合是穿過數(shù)據(jù)點(diǎn) x 的紅線。我們的擬合過程可以產(chǎn)生一個(gè)最好的線性回歸模型來定位重要的特征。
我們把Fused Lasso作為正則項(xiàng)加到mixture regression model中,為了估計(jì)模型的參數(shù),需要求解如下的優(yōu)化方程:
其中f是regression mixture model,β是參數(shù)。為了求解這個(gè)優(yōu)化方程,我們需要使用期望最大算法(E-M)。為了使用EM算法,可以把模型等價(jià)改寫為如下形式:
其中π,β,σ2是需要估計(jì)的參數(shù)。首先我們隨機(jī)初始化參數(shù),然后重復(fù)進(jìn)行EM算法的E步和M步直到算法收斂。下面我們簡單介紹一下具體算法。
從公式中可以看出,y服從一個(gè)由K個(gè)Gaussian distribution組成的distribution。每個(gè)Gaussian有自己的mean(β)和variance (σ2)。在每一次迭代中首先進(jìn)行E步,我們把每個(gè)樣本點(diǎn)分配到一個(gè)Gaussian。這里使用的分配方法就是標(biāo)準(zhǔn)的EM算法的E步。完成E步后,根據(jù)新的數(shù)據(jù)分配結(jié)果,我們使用每一個(gè)Gaussian自己的數(shù)據(jù)來更新它的mean和variance。更新variance的方法和標(biāo)準(zhǔn)EM相同,但是因?yàn)榧恿薋used Lasso的正則項(xiàng)在mean上,所以更新mean相當(dāng)于求解如下優(yōu)化方程:
重復(fù)E步和M步直到模型收斂,進(jìn)而輸出模型參數(shù)。
如何使用本文提出的模型解釋神經(jīng)網(wǎng)絡(luò)的結(jié)果?具體而言解釋過程分為以下兩步:近似局部的決策邊際和生成解釋。
給定一個(gè)輸入樣本,生成解釋的關(guān)鍵是近似深度學(xué)習(xí)模型的局部決策邊際,從而獲知聚類該樣本的重要特征。為了實(shí)現(xiàn)這個(gè)目的,我們首先生成一組人工樣本,然后使用這些數(shù)據(jù)來模擬目標(biāo)模型的局部決策邊際。有兩個(gè)可能的方法來實(shí)現(xiàn)模擬:第一種是使用一個(gè)混合回歸模型進(jìn)行多類分類;第二種是對(duì)每一個(gè)類使用一個(gè)混合回歸模型。考慮到計(jì)算復(fù)雜度,我們使用第二種方法。
如前所述,對(duì)于一個(gè)給定的樣本點(diǎn),我們的解釋是抓取目標(biāo)模型聚類該樣本時(shí)依據(jù)的重要特征。首先通過上述方法得到一個(gè)混合線性回歸模型(mixture component)。這個(gè)線性回歸的參數(shù)可以被視為特征的重要性。具體來說,我們把擁有大系數(shù)的特征作為重要的特征,同時(shí)選擇最重要的一小組特征作為解釋。
需要注意的是, 雖然LEMNA是為了非線性模型和特征相關(guān)性設(shè)計(jì)的,但這并不意味著LEMNA不能解釋其他的深度學(xué)習(xí)模型(MLP和CNN)。事實(shí)上,LEMNA是可以根據(jù)所解釋的深度學(xué)習(xí)模型調(diào)整的。比如,通過增加fused lasso的超參數(shù)S,我們可以放松這個(gè)正則項(xiàng),進(jìn)而使LEMNA適用于假設(shè)特征獨(dú)立的深度學(xué)習(xí)模型。