1. 程式人生 > >LEMNA-Explaining Deep Learning based Security Applications

LEMNA-Explaining Deep Learning based Security Applications

CCS2018 最佳論文。 主題是安全領域中機器學習模型的解釋性,使用的是黑盒攻擊的方法。

0x0000 摘要

0x0001 引言

 稍微介紹一下引言部分

引言部分首先介紹了目前深度學習解釋領域的基本現狀,很多都是圍繞著CNN去工作的的,所以對安全領域的深度學習解釋模型意義不大,1.資料型別不一樣2.需要解釋的粒度不一樣(影象畫素可以允許一定的誤差,但是安全領域會失之毫釐,差之千里)

然後介紹了本文提出的一個模型與先前的研究不同,是要捕捉決策邊界的非線性特性和特徵的依賴性。簡要介紹了融合lasso方法可以捕捉特徵的依賴性

介紹了在評估中使用的方法和LEMNA架構得到的解釋可以幫助分析人員獲得更多的有價值資訊。

0x0002 可解釋的機器學習

這一部分主要討論可解釋機器學習的背景及現有的相關技術。基於此,將在第三部分討論應用深度學習模型的重要安全應用,並且討論現有的解釋技術為什麼對這些安全應用不適用。

問題定義

可解釋的機器學習尋求為分類結果提供可以理解的解釋。更具體地,給定一個輸入x和分類器C,分類器在做測試時將會為輸入x分配一個標籤y。解釋技術就是旨在描繪例項x為什麼被分類為y。這經常是指識別出一組對分類結果起關鍵作用的重要特徵。如果這些選擇的特徵對人類分析師來說是可解釋的,那麼這些特徵能夠提升“解釋性”。下圖顯示了圖片分類與情感分析的例子。分類器決策可以被這些選擇的特徵所解釋(例如,高亮的畫素和關鍵詞)

本文主要管組深度神經網路的安全應用可解釋性。到目前為止,大多數的現存解釋方法是針對圖片分析和NLP設計的。我們將這些方法分為白盒和黑盒,下面將描述他們如何起作用。

白盒解釋方法

大多數的現存解釋技術工作是基於白盒設定的,在這裡,模型的結構,引數,訓練資料是已知的。這些技術一般被稱作深度解釋方法,主要為CNN設計。這類方法使用兩個策略來得到特徵的重要性(1)基於輸入或者結構閉塞的前向輸入(2)基於梯度的後向傳播。我們將會在下面討論這些技術。

基於前向傳播的方法  給定一個輸入,目的是給輸入加入一些擾動然後觀察對應的改變。這裡面的原理是如果對重要的特徵進行擾動,那麼改變的結果就會很大。現存的方法一般會使一個子集的特徵失效或者移除掉網路的中間部分[17,32,74,76]。一個最近的工作文獻[19]擴充套件了這種方法以檢測對抗樣本。

基於後向傳播的方法 基於後向傳播的方法利用深度神經網路的梯度特性獲取特徵的重要性。這個梯度可以是分類器輸出相對輸入的或者隱含層的部分。通過傳遞輸出返回至輸入,這些方法直接計算輸入特徵的權重,對於影象分類器,基礎的方法是使用輸出對於輸入圖片畫素或視訊幀的梯度計算顯著對映。隨後的工作通過將顯著對映應用在層與層之間來改進這個想法

基於後向傳播的方法面臨零梯度的挑戰。在一個神經網路中,啟用函式經常具有飽和部分,並且對應的梯度將會變為0,零梯度會使得顯著對映反向跟蹤重要梯度變得困難。最近的工作試圖通過近似解決這個問題,然而這會犧牲解釋的保真度。

黑盒解釋方法

黑盒解釋方法不需要分類器內部的資訊,例如網路結構和引數。取而代之的,這類方法將分類器作為一個黑盒子,通過傳入輸入並且觀察輸出來分析分類器(模型歸納法)。

在這個類別中,最具有代表性的系統是LIME,給定一個輸入x(例如一個圖片),LIME系統性的擾動x獲得一系列的人造圖片,這些圖片在特徵空間上與輸入x相鄰(如圖2,x一撇,x二撇)。然後LIME將這些人造圖片送入到目標分類器獲得標籤,並且使用被標記資料來擬合線性迴歸模型g(x)。這個g(x)目的是擬合f(x)在輸入x附近的一小部分割槽域。LIME假設分類器的決策邊界在輸入例項的附近是線性的,因此使用線性迴歸模型表示f(x)的決策邊界是合理的。線性迴歸是自解釋的,因此LIME能夠基於迴歸引數精確捕捉重要特徵。一個最近的工作文獻[34]試圖通過向人造資料新增權重來擴充套件LIME,其他的工作提出使用其他線性模型(決策資料,決策集合)來進一步近似目標檢測邊界。

 

作為附註,我們想要澄清一點,機器學習解釋是完全不同於特徵選擇演算法的,例如主成分分析,稀疏編碼,卡方檢驗。解釋方法旨在識別特定輸入x的關鍵特徵,解釋x是如何被分類的。在另一方面,特徵選擇方法例如PCA是在分類模型訓練之前將全部的訓練資料做降維處理,以減少特徵維度(為了加速訓練和減少過擬合),這不能解釋一個特定的分類決策時如何產生的。

解釋安全應用

深度學習已經在安全領域展現了巨大的潛力,相應的解釋方法卻非常的落後。透明度的缺失會減少信任。首先安全從業者如果不瞭解深度學習模型如何制定決策,那麼他們不能信任這些深度學習模型,第二如果安全從業人員不能解決分類錯誤(由訓練資料偏置造成的錯誤),令人關切的是這些錯誤可能在實踐中被放大。接下來,我們將會介紹兩種重要的安全應用,深度學習在這兩種應用中取得了成功。然後我們會討論為什麼現存的解釋方法對安全應用是不適用的。

安全應用中的深度學習

在本文中,我們關注兩個安全領域的重要應用:二進位制檔案逆向與惡意軟體分類

二進位制檔案逆向 在二進位制分析中深度學習的應用主要有識別函式邊界,確定函式型別簽名,追蹤相似二進位制程式碼。更具體地,使用雙向RNN模型,Shin等提升了函式邊界識別的效果,並達到了幾乎完美的效能。Chua等也使用RNN正確的追蹤到二進位制程式碼中函式的引數和型別。更近一些時間,Xu等使用MLP模型模型編碼控制流圖成功定位到了漏洞程式碼片段。

惡意程式碼分類 現存的工作主要使用MLP模型進行大規模的惡意軟體分類。例如,有學者已經訓練了MLP在二進位制程式碼級別檢測惡意程式碼和分類安卓惡意軟體,最近Wang等提出了一種對抗神經網路基於審計日誌來檢測惡意軟體

一個重要的觀察是,RNN和MLP相對於CNN更廣泛的應用在這些安全應用中,原因是RNN被設計用來處理序列資料,RNN在處理長序列的二進位制程式碼中取得了異乎尋常好的效果。特別地,雙向RNN能夠在每一個十六進位制程式碼間捕捉到雙向的依賴性。對於惡意軟體分類,MLP因為高效性而被廣泛使用。在另外一方面,CNN在圖片表現優異,因為它能夠利用二維圖片上特徵的群組效果。這些安全應用沒有類矩陣的資料機構可以從CNN模型中獲益。

現存的解釋方法為什麼效果不佳

直接將現有的解釋方法應用在安全應用中還存在幾個關鍵的太哦站。在table1 我們總結了期望的特性,和為什麼吸納有的方法不能實現他們

支援RNN和MLP 在上述的安全應用選擇的模型和現有的解釋模型之間具有明顯的不匹配。大多數現有的解釋方法針對CNN處理圖片分類器來設計。然而如3.1節所述,我們感興趣的安全應用首要選擇的是RNN或者MLP。由於模型的不匹配,現有的解釋方法基本不適用。例如,後向傳播方法,包括顯著對映和啟用差分傳播需要在卷積層和池化層使用特定的操作,這些在RNN或MLP中是不存在的。

 黑盒方法例如LIME並沒有很好的支援RNN(稍後對在試驗中驗證)類似LIME的方法假定特徵是獨立的,但是這個假設在RNN的設定中是不成立的,RNN顯然需要對序列資料的依賴性建模。

支援本地非線性決策邊界 大多數現有的方法(例如LIME)假設決策邊界的本地線性。然而,對於大多數複雜的模型,本地決策邊界非線性才是對的,那些決策解釋方法將會產生嚴重的錯誤。圖3a 展示了一個例子,在x鄰域內的決策邊界是高度非線性化的。換句話說,線性部分被限制在一個非常小的區域中。典型的取樣方法會簡單的將人工資料點落線上性區域之外,使得線性模型在x的鄰域內擬合一個決策邊界非常困難。稍後,在我們的試驗中,我們將會驗證,一個簡單的線性近似將會嚴重降低解釋的保真度。

支援黑盒設定  儘管白盒和黑盒方法有他們各自的應用場景,黑盒方法在安全場景中仍然是更加令人滿意的。注意,人們使用預訓練是經常性的(例如雙向神經網路,預定義樹)在這些場景下網路的詳細結構,引數和訓練資料是不可獲取的。雖然少量的前向傳播方法能夠在黑盒設定之下強制實現(通過放棄中間層的觀測),這將會不可避免的使效能退化。

總結  在本文中,我們旨在為安全應用開發一種專用的解釋方法,以加深理解。我們的方法旨在黑盒設定下工作,並且有效的支援流行的深度學習模型,例如RNN,MLP和CNN。更加重要的是,方法需要達到更高的解釋保真度來支援安全應用。

我們的解釋方法

為了達到上述的目標,我們設計並開發了LEMNA。在高層級上,我們將目標深度學習分類器看作是黑盒,並且通過模型近似來到處解釋方法。為了提供高保真度的解釋,LEMNA需要採用一種與現有方法不同的設計途徑。首先我們引入融合lasso來處理特徵依賴性問題,這是一個在安全應用和RNN中經常被考慮的東西。(例如時間序列分析,二進位制程式碼序列分析)。然後,我們將融合lasso整合到混合迴歸模型中[28]以近似本地非線性決策邊界來支援複雜的安全應用。在接下來的部分,我們首先討論使用融合lasso與混合迴歸模型設計的背後的觀察。然後,我們描述組合他們成為一個簡單模型的技術細節,這個簡單模型可以同時處理特徵的依賴性和本地的非線性特點。最後,我們介紹一些附加的步驟來利用LEMNA到處高保真的解釋。

4.1 在設計背後的

融合lasso(Fused lasso).   融合lasso是一種經常用於捕捉特徵依賴性的懲罰項,在處理深度學習模型中的依賴性特徵上是有用的例如RNN。在更高的視角上,融合lasso使LEMNA可以組合相關的或者是鄰接的特徵來產生有意義的解釋。在下面,我們介紹這個直覺的技術細節。

為了從一組例子中學習一個模型,機器學習演算法需要最小化損失函式L(f(x),y),這個公式定義了真實標籤與預測標籤之間的差異。例如,為了從一組包含N個樣本的資料中學習一個線性迴歸模型$f(x) = beta*x+sigm$ 一個學習演算法需要在具有引數beta下使用最大似然估計來最小化下述的等式

 

在這裡,xi是訓練樣本,由M維的特徵向量表示。xi的標籤表示為yi。向量beta=(beta1,beta2..)包含了線性模型的係數。||·||是L2正則化,來測量模型預測與真實標籤之間的不相似度

融合lasso是一個懲罰項,他可以被引入任意的線性演算法使用的損失函式。融合lasso表現為施加在係數上的約束。即:

當學習演算法最小化損失函式時,融合lasso限制了指派給鄰接特徵係數的不相似性,使用了一個閾值S(一個超引數)。結果,懲罰項強制學習演算法為相鄰矩陣分派相等的權重。直觀上,這能夠被理解為強制學習演算法將特徵作為一個組,並學習到基於特徵組的目標模型。

安全應用,例如時間序列分析和程式碼序列分析,經常需要使用RNN對特徵依賴性進行顯著的建模。最終的分類器基於特徵的共現做出分類決策。如果我們使用標準的線性迴歸模型(例如LIME)匯出一個解釋,我們不能 正確的近似一個本地的決策邊界。這是因為一個線性的迴歸模型不能捕捉特徵的依賴性並且將他們獨立對待。

通過在近似的本地決策邊界引入融合lasso,我們希望最終的線性模型具有如下的形式:

在這裡,特徵被組合在一起,因此重要的特徵像是被選擇為一個組或多個組。在LEMNA中明顯的對這個處理建模有助於匯出一個更準確的解釋,尤其是RNN模型做出的決策。我們使用一個圖1b的情感分析的例子來進一步解釋這個想法。在融合lasso的支援下,一個迴歸模型將會共同考慮鄰接特徵。當匯出解釋時,我們的模型不會簡單的產生一個單詞not,而是能夠準確的捕捉到片語“not worth the price”作為情感分析結果的解釋。

混合迴歸模型。混合迴歸模型允許我們更準確的近似本地的非線性決策邊界。如圖3b所示,一個混合迴歸模型是多個線性迴歸模型的聯合,這使得它針對下面的近似更具有表現力:

在這裡K是一個超引數規定了組成混合模型的線性組建的個數;pik表示分派給對應元件的權重。

給定充足的資料樣本,分類其具有線性或非線性的決策邊界,混合迴歸模型能夠接近完美的近似巨冊邊界(使用有限的線性模型集)。因此,在深度學習解釋性的背景下,混合模型能夠有助於避免上述提及的非線性問題並匯出更多的準確解釋。

為了描繪這個想法,我們使用圖3中的例子。如圖3a所示,一個標準的線性近似不能保證輸入x鄰域內的資料樣本仍然能夠在本地的線性區域內保持不變。這將會輕易的造成不準確的近似和低保真度的解釋。在圖3b我們的方法使用一個多邊形邊界近似本地決策邊界,在圖中每一個藍色的線表示一個獨立的線性迴歸模型。能夠產生解釋的最好的線性模型是紅色的能夠經過資料點x。在這個角度,近似處理能夠產生最優的線性迴歸模型來定位重要的特徵作為解釋。

4.2 模型開發

接下來,我們轉換這些設計思路成為一個功能型的系統。我們引入技術措施將融合lasso整合進混合迴歸模型的學習步驟,所以我們能夠同時處理特徵依賴與決策邊界的非線性。技術上講,我們需要通過最小化下面的公式匯出一個混合的決策模型,

 

在這個公式裡,f(·)表示公式4混合迴歸模型,betakj表示在第k歌線性分類迴歸模型有關的j個特徵

與標準的線性模型不同,我們的優化目標是困難的,我們不能簡單的使用MLE來處理最小化。為了有效地估計混合迴歸模型的引數,我們使用一種替代的方法。

 第一,我們將混合迴歸模型表示為概率分佈的形式

然後,我們將pi beta和sigma作為引數,通過估計這些引數,我們初始化他們的值並通過期望最大化來計算引數的估計值,期望最大化是一種通過重複執行e和m估算引數的演算法,更多細節將會在附錄A中給出。

在公式(6)中,yi服從數個高斯分佈,並且每一個這樣的分佈都具有平均值BETAkXi,方差sigma2k。在E步驟中,我們將每一個數據樣本的值通過學習普通混合迴歸模型的標準步驟賦給一個高斯分佈,基於先前的E步驟中賦給的資料樣本值,我們重新計算出pi,beta和sigma。對於引數beta和sigma,重複計算仍然使用普通混合模型的標準步驟。但是,對於beta中的每一個引數,重複計算服從一個定製的策略。通過關於beta最小化下面的公式來計算beta

在這裡Nk是賦予第k個部件的樣本數量,在這裡,重計算定製的原因是為了賦予混合迴歸模型處理特徵依賴性的能力融合lasso不得不被用於引數beta。如我們能夠觀察到的,上述的等式與等式(2)具有相同的形式。因此,我們能夠通過MLE方法最小化這個等式,因此能夠計算beta的值

使用標準的EM演算法,我們重複計算E和M步驟。知道達到一定能夠的穩定度(即,高斯分佈在EM步驟中差距變小),我們輸出混合迴歸模型。注意我們通過使用普通混合模型學習的方法轉換sigma2為模型引數ϵ1:K

4.3 應用解釋模型

使用加強的混合迴歸模型,我們現在討論如何針對深度學習分類器推匯出高保真度的解釋。

近似本地決策邊界. 給定一個輸入例項x,產生解釋的關鍵是為目標分類器近似一個本地決策邊界。最終的產出是一個可解釋的線性模型,這個允許我們選擇一小部分最好的特徵作為解釋。為了做到這些,我們首先按照文獻[45]的方法合成一組臨近x的資料樣本。思路是隨機的去除x的特徵子集。

使用合成的資料樣本集合,我們然後近似本地的決策邊界。有兩個可能的策略,一個是訓練單混合迴歸模型執行多分類的任務;另一個策略是訓練多混合迴歸模型,每一個選擇的模型執行二分類的任務。出於有效性考慮,我們選擇第二種策略並在附錄B中貼出嚴格的分析。

匯出解釋  給定輸入x和他的結果y,我們現在能夠產生解釋作為x分類的一組重要的特徵。更加具體地,我們獲得一個經過融合lasso強化的混合迴歸模型。從這個混合模型中,我們將會識別與本地決策邊界近似最好的線性元件。線性模型中的權重(或係數)能夠被用來對特徵排序。一小部分最好的特徵將會作為解釋結果。 

需要注意的是LEMNA被設計同時處理非線性與特徵依賴性,但是這並不意味著LEMNA不能處理那些特徵獨立的深度學習模型,例如MLP和CNN。實際上,LEMNA為了適應目標模型的解釋方法提供了設計靈活性。例如通過增加超引數S(融合lasso的閾值),我們能夠放鬆對beta引數的約束,來允許LEMNA更好的處理弱依賴特徵。在第五部分,我們將會在基於RNN,MLP的安全應用中展現應用LEMNA的普遍性特點。