1. 程式人生 > >解釋深度學習在安全領域中的應用

解釋深度學習在安全領域中的應用

摘要:

雖然深度學習在各個領域顯示出巨大的潛力,但缺乏透明度限制了它在安全或關鍵安全領域的應用。現有的研究試圖開發解釋技術,為每個分類決策提供可解釋的解釋。不幸的是,當前的方法是針對非安全性任務(例如,影象分析)進行優化的。它們的關鍵假設在安全應用程式中經常被違反,導致解釋的保真度很差。

本文提出了一種用於安全應用的高保真度解釋方法LEMNA。給定一個輸入資料樣本,LEMNA生成一小組可解釋的特性來解釋如何對輸入樣本進行分類。其核心思想是利用一個簡單的可解釋模型來近似複雜深度學習決策邊界的區域性區域。本地可解釋模型是專門設計用來(1)處理特性依賴關係,以便更好地處理安全應用程式(例如,二進位制程式碼分析);(2)處理非線性區域性邊界,提高解釋保真度。我們使用兩個流行的安全深度學習應用程式(惡意軟體分類器和用於二進位制反向工程的函式啟動檢測器)來評估我們的系統。大量評價表明,與現有方法相比,LEMNA解釋具有更高的保真度。此外,我們還演示了LEMNA的實際用例,以幫助機器學習開發人員驗證模型行為、排除分類錯誤並自動修補目標模型的錯誤。

一、引言:

近年來,深層神經網路在構建安全應用方面顯示出巨大的潛力。到目前為止,研究人員已經成功地應用深度神經網路對惡意軟體分類器進行了訓練[2,16,21,48,68],二值逆向工程[15,52,71]和網路入侵檢測[24,62],均取得了極高的準確率。

安全從業人員在對其精確性感興趣的同時,也擔心深度學習模型缺乏透明性,因此在安全和安全關鍵領域不願廣泛採用深度學習分類器。更具體地說,深層神經網路可以輕易地包含數十萬甚至數百萬個神經元。該網路經過大量資料集的訓練,具有較高的分類精度。然而,網路的高度複雜性也導致了模型的低可解釋性。很難理解深層神經網路是如何做出某些決定的。缺乏透明度為建立對模型的信任或有效地排除分類錯誤造成了關鍵障礙。

      為了提高深度神經網路的透明性,研究人員開始研究解釋方法來解釋分類結果。現有的研究大多集中在影象分析或自然語言處理(NLP)等非安全應用領域。圖1a顯示了一個示例。給出了一幅輸入影象,該解釋方法通過將最具影響力的特徵精確地指向最終的決策來解釋分類結果。常見的方法包括在網路中進行正向傳播[17,19,32,76]或反向傳播[3,50,53]來推斷重要的特徵。更先進的方法[34,45]在沒有分類器細節知識的黑箱設定下產生解釋。其基本思想是用線性模型近似區域性決策邊界,從而推斷出重要特徵。

不幸的是,現有的解釋方法不能直接應用於安全應用程式。首先,現有的大部分方法都是為影象分析而設計的,這些方法更喜歡使用卷積神經網路(CNN)。然而,CNN模型在安全領域並不十分流行。二進位制反向工程和惡意軟體分析等安全應用程式都具有高階特性依賴關係(e。或需要高可伸縮性。因此,遞迴神經網路(RNN)或多層感知器模型(MLP)得到了更廣泛的應用[15,21,52,68]。目前,RNN上還沒有很好的解釋方法。其次,現有的方法仍然存在解釋保真度低的問題,我們在5中的實驗驗證了這一點。這對於影象分析可能是可以接受的,但是在安全應用程式中可能會造成嚴重的問題。例如,在圖1a中,突出顯示的畫素並不完全準確(特別是在邊緣區域),但足以提供直觀的理解。然而,對於安全應用程式,如Session 2D: ML 2 CCS 18, 2018年10月15-19日,Toronto, ON, Canada 364 binary analysis,不正確地突出顯示一個位元組的程式碼可能會導致嚴重的誤解或解釋錯誤。

我們的設計。在本文中,我們試圖開發一種新的、高保真的用於安全應用的解釋方法。我們的方法在黑箱環境下工作,並引入了專門的設計來解決上述挑戰。給定一個輸入資料例項x和一個識別符號,如一個RNN,我們的方法旨在確定一組小的特性,為x的分類有重要貢獻。這是通過生成一個當地近似目標分類器的年代決定邊界附近x。顯著提高保真度的近似,我們的方法不再假定本地檢測邊界是線性的,也不認為是獨立的特性。這是現有模型所做的兩個關鍵假設[34,45],這兩個假設在安全應用程式中經常被違反,導致解釋保真度較差。相反,我們引入了一種新的方法來近似非線性區域性邊界,該方法基於融合lasso增強的混合迴歸模型[27][64]。

我們的設計基於兩個關鍵的洞見。首先,在給定足夠的資料[35]的情況下,混合迴歸模型在理論上可以逼近線性和非線性的決策邊界。這為優化非線性邊界的區域性逼近提供了靈活性,避免了較大的擬合誤差。其次,融合套索是捕獲特徵依賴的常用懲罰術語。通過在學習過程中加入融合lasso,混合迴歸模型可以將特徵作為一個組,從而獲取相鄰特徵之間的依賴關係。該方法同時保留了深度學習模型的區域性非線性和特徵依賴性,從而得到高保真度的解釋結果。為了方便起見,我們將我們的方法稱為使用非線性近似或LEMNA的區域性解釋方法。

評估。為了證明我們的解釋模型的有效性,我們將LEMNA應用於兩個有前途的安全應用程式:對PDF惡意軟體[55]進行分類,並檢測該函式開始對二進位制程式碼[52]進行反向工程。分類器分別在10,000個PDF檔案和2,200個二進位制檔案上進行訓練,兩者的準確率都達到98.6%或更高。我們應用LEMNA來解釋它們的分類結果,並開發了一系列的保真度度量 來評估這些解釋的正確性。保真度指標可以通過直接比較近似的檢測邊界和真實的檢測邊界來計算,也可以通過執行端到端特徵測試來計算。結果表明,在所有不同的分類器和應用程式設定中,LEMNA的效能顯著優於現有的方法。

除了有效性評估之外,我們還演示了安全性分析人員和機器學習開發人員如何從解釋結果中獲益。首先,通過解釋分類器如何做出正確的決策,我們證明了LEMNA可以幫助建立信任。特別是,對於二進位制和惡意軟體分析,我們證明了分類器已經成功地學習了許多著名的啟發式和黃金規則在各自的領域。其次,我們證明了LEMNA可以從分類器中提取新的知識。這些新的啟發式很難直接手工總結,但一旦被LEMNA提取出來,對於領域專家來說就有了直觀的意義。最後,使用LEMNA的功能,分析人員可以解釋為什麼分類器會產生錯誤。這允許分析人員自動生成目標補丁通過對每一個可解釋錯誤增加訓練樣本,並通過有針對性的再訓練提高分類器的效能。

Contributions:

1.      我們設計並開發了一種專門用於基於深度學習的安全應用的解釋方法——LEMNA。利用融合lasso增強的混合迴歸模型,LEMNA對包括RNN在內的一系列深度學習模型產生了高保真度的解釋結果。

2.      我們提出了一系列的保真度度量來量化解釋結果的準確性。我們的實驗表明,LEMNA比現有的解釋方法有顯著的優勢。

3.      對於二進位制分析和惡意軟體檢測,LEMNA闡明瞭為什麼分類器做出正確和錯誤的決定。我們提出了一個簡單的方法,自動轉換成可操作的步驟,以補丁的目標錯誤的分類器。

我們的工作只是提高模型透明度,以便更有效地測試和除錯深度學習模型的第一步。通過使決策過程具有可解釋性,我們的努力可以為建立用於關鍵應用的可靠的深度學習系統作出積極貢獻。

二、可解釋的機器學習

接下來,在第3節中,我們將使用深度學習模型介紹關鍵的安全應用程式,並討論為什麼現有的解釋技術不適用於安全應用程式。

2.1 問題定義

可解釋機器學習試圖為分類結果提供可解釋的解釋。更具體地說,給定一個輸入例項x和一個分類器C,分類器將在測試期間為x分配一個標籤y。然後,解釋技術旨在說明例項x被分類為y的原因。這通常涉及識別對分類過程(或結果)做出關鍵貢獻的一組重要特徵。如果選擇的特性可以被人類分析人員解釋,那麼這些特性就可以提供一個解釋。圖1顯示了影象分類和情緒分析的示例。分類器的決策可以用選定的特徵來解釋(例如,突出顯示的畫素和關鍵字)。

本文以深層神經網路為研究物件,提出了安全應用的解釋方法。到目前為止,大多數現有的解釋方法都是為影象分析或NLP設計的。我們將它們分為白盒和黑盒方法,並描述它們是如何工作的。

2.2 Whitebox Explanation Methods

       大多數現有的解釋技術都是在已知模型體系結構、引數和培訓資料的白盒設定下工作的。這些技術也被稱為深度解釋方法,主要是為CNN設計的。它們利用兩種主要的策略來推斷特徵的重要性:(1)基於輸入或結構遮擋的正向傳播;(2)基於梯度的反向傳播。我們將在下面討論這些技術。

       基於前向傳播的方法。給定一個輸入樣本,關鍵思想是對輸入(或隱藏的網路層)進行擾動,並觀察相應的變化。這背後的直覺是,干擾重要特徵更有可能導致網路結構和分類輸出的重大變化。現有的方法要麼取消部分特徵子集,要麼刪除網路的中間部分[17,32,74,76]。最近的一個工作[19]擴充套件了這一想法,以檢測對抗性的例子(即。,惡意輸入,導致分類錯誤)。

基於反向傳播的方法。基於反向傳播的方法利用深度神經網路的梯度來推斷特徵的重要性。梯度可以是分類器輸出相對於輸入或隱藏層的偏導數。通過將輸出傳播回輸入,這些方法可以直接計算輸入特徵的權重。對於影象分類器,基本方法是利用影象[54,57]或視訊幀[18]中輸出相對於輸入畫素的梯度計算特徵顯著性對映。後來的作品通過應用顯著性對映一層一層的[3]或對映畫素組[50]來改進這一思想。

基於反向傳播的方法面臨零梯度的挑戰。在神經網路內部,啟用函式往往具有飽和的部分,相應的梯度將變為零。零梯度使得顯著性對映很難(如果不是不可能的話)回溯重要的特性。最近的研究[53,59]試圖通過近似來解決這個問題。然而,這犧牲瞭解釋[34]的忠實性。

2.3黑箱解釋方法

       黑箱解釋方法不需要了解分類器內部結構和引數等知識。相反,他們將分類器視為一個黑箱,並通過傳送輸入和觀察輸出(即,模型歸納方法)。

       這類系統中最具代表性的是LIME[45]。給定一個輸入x(例如,一個影象),LIME系統地擾亂x獲得一組人工影象特徵空間x的附近地區的資料集(見圖2 x, x)。然後,LIME              提要人工影象目標分類器f (x)獲得標籤,並使用標籤資料符合線性迴歸模型д(x)。這д(x)旨在附近近似f(x)的一小部分的輸入影象特徵空間。lime假定分類邊界附近的當地輸入例項是線性的,因此它是合理使用線性迴歸模型本地代表分類決定selfexplanatory f (x)線性迴歸,因此石灰可以確定重要功能基於迴歸係數。SHAP[34]最近的一項工作試圖通過向人工生成的資料樣本新增權重來擴充套件LIME。其他研究建議使用其他線性模型(如決策樹[6]和決策集[31])逐步逼近目標檢測邊界。

       另外需要說明的是,機器學習的解釋與主成分分析(PCA)[26]、稀疏編碼[39]、卡方統計[49]等特徵選擇方法是完全不同的。解釋方法的目的是識別特定輸入例項x的關鍵特性,以具體解釋例項x是如何分類的。另一方面,在對整個訓練資料進行訓練之前,通常會採用PCA等特徵選擇方法來減少特徵維數(以加快訓練或減少過擬合),這並不能解釋具體的分類決策是如何做出的。

3解釋安全應用程式

       雖然深度學習在構建安全應用程式方面顯示出了巨大的潛力,但相應的解釋方法卻遠遠落後。結果,缺乏透明度降低了信任。首先,如果安全從業人員不瞭解如何做出關鍵決策,他們可能不信任深度學習模型。其次,如果安全從業人員不能排除分類錯誤(例如,由有偏差的培訓資料引入的錯誤),那麼需要擔心的是,這些錯誤可能在實踐中被放大。在下面,我們將介紹深度學習最近取得成功的兩個關鍵安全應用程式。然後我們討論了為什麼現有的解釋方法不適用於安全應用程式。

3.1安全應用的深度學習

       在本文中,我們主要關注兩類重要的安全應用:二進位制反向工程和惡意軟體分類。

       二進位制逆向工程。深度學習在二值分析中的應用包括識別函式邊界[52],定位函式型別特徵[15],跟蹤相似的二值程式碼[71]。更具體地說,Shin等人利用雙向RNN改進了函式邊界識別,實現了近乎完美的效能[52]。Chua等人還使用RNN精確地跟蹤二進位制[15]中的引數和函式型別。最近,Xu等人使用MLP對控制流圖進行編碼,以查明易受攻擊的程式碼片段[71]。

       惡意軟體分類。現有的工作主要使用MLP模型進行大規模的惡意軟體分類。例如,研究人員訓練MLP在二進位制程式碼級別[48]檢測惡意軟體,並對Android惡意軟體進行分類[2,21]。最近,Wang等[68]提出了一種基於審計日誌[7]檢測惡意軟體的對抗性神經網路。

       一個關鍵的觀察結果是,與CNN相比,RNN和MLP被這些安全應用程式更廣泛地採用。原因是RNN被設計用來處理順序資料,它在處理二進位制程式碼的長序列時表現得非常好。特別是雙向RNN可以捕獲每個十六進位制[52]之間輸入序列中的雙向依賴關係。在惡意軟體分類中,MLP以其高效的特點得到了廣泛的應用。另一方面,由於CNN可以利用特徵對二維影象[30]的分組效應,在影象處理上表現良好。這些安全應用程式沒有這種類似矩陣的資料結構可以從使用CNN中獲益。

3.2為什麼不採用現有的解釋方法

     直接將現有的解釋方法應用於安全應用程式存在一些關鍵挑戰。在表1中,我們總結了所需的屬性,以及為什麼現有方法不能交付它們。

       支援RNNMLP上述安全應用程式的模型選擇與現有的解釋方法之間存在明顯的不匹配。現有的解釋方法大多是為CNN設計用於影象分類器的。然而,如3.1所述,我們感興趣的安全應用主要採用RNN或MLP。由於模型不匹配,現有的解釋方法不太適用。例如,顯著性對映[3,18,54,57]和啟用差傳播[53]等反向傳播方法需要對CNN的卷積層和池化層進行特殊的操作,這在RNN和MLP 1中是不存在的。像LIME這樣的黑盒方法也不能很好地支援RNN(我們稍後的實驗驗證了這一點)。像LIME這樣的方法假設特徵是獨立的,但是這個假設被RNN所違背,RNN顯式地建模了序列資料的依賴關係。

支援區域性非線性決策邊界。現有的大多數方法(如LIME)都假定決策邊界的區域性線性。然而,當局部決策邊界為非線性時(對於大多數複雜網路來說是如此),這些解釋方法會產生嚴重的誤差。圖3a顯示了一個關於x的決策邊界高度非線性的例子。換句話說,線性部分非常侷限於一個非常小的區域。典型的取樣方法容易觸及線性區域外的人工資料點,使得線性模型難以逼近x附近的決策邊界。在後面的實驗(5)中,我們證實了簡單的線性近似會顯著降低解釋保真度。

支援黑箱設定。雖然白盒方法和黑盒方法都有它們的應用程式場景,但是黑盒方法對於安全應用程式仍然是更可取的。值得注意的是,在沒有詳細的網路架構、引數或培訓資料的情況下,人們使用預培訓模型(例如雙向RNN[52]、Dyninst[5]中的字首樹)並不少見。即使一些前向傳播方法可能被迫在黑箱設定下工作(通過放棄中間層的觀察),它也不可避免地會導致效能下降。

總結。本文旨在通過開發專門的安全應用解釋方法來彌補這一缺陷。我們的方法旨在在黑盒環境下工作,有效地支援流行的深度學習模型,如RNN、MLP和CNN。更重要的是,該方法需要實現更高的解釋保真度來支援安全應用程式。

4我們的解釋方法

       為了實現上述目標,我們設計並開發了LEMNA。在高層,我們將目標深度學習分類器視為一個黑箱,並通過模型近似推匯出解釋。為了提供一個高保真度的解釋,LEMNA需要採用與現有方法非常不同的設計路徑。首先,我們引入了fusion lasso[64]來處理在安全應用程式和RNN(如時間序列分析、二進位制程式碼序列分析)中經常遇到的特徵依賴問題。然後,將融合lasso整合到混合迴歸模型[28]中,逼近區域性非線性決策邊界,以支援複雜的安全應用。接下來,我們首先討論了使用熔融套索和混合迴歸模型的設計選擇背後的見解。然後,我們描述了將它們整合到單個模型中的技術細節,以同時處理特性依賴和區域性非線性。最後,我們介紹了利用LEMNA推導高保真度解釋的附加步驟。

4.1我們設計背後的洞見

       融合套索。融合lasso是一種常用的懲罰因子,用於捕獲特徵依賴項,並在深度學習模型(如RNN)中用於處理依賴項。在高層,融合套索迫使LEMNA將相關/相鄰的特徵組合在一起以產生有意義的解釋。下面,我們將介紹這種直覺的技術細節。

為了從一組資料樣本中學習模型,機器學習演算法需要最小化一個損失函式L(f (x),y),該函式定義了模型的真實標籤和預測標籤之間的差異。例如,學習線性迴歸模型f (x) =βx +ϵ從一個數據集N樣本,學習演算法需要最小化以下方程的引數β使用最大似然估計(標定)[38]。

 

這裡xi是一個訓練樣本,用m維特徵向量(x1, x2,···,xM)T表示。xi的標籤記為yi。向量β=(β1β2,···βM)包含線性模型的係數。·為衡量模型預測與真實標號之間差異的l2範數。

融合套索是一種懲罰項,可以引入任何損失函式的學習演算法。以線性迴歸為例。熔融套索表現為對係數施加的約束,即

 

融合套索在一個小閾值S(即(超引數)當學習演算法使損失函式最小化時。因此,懲罰項迫使學習演算法為相鄰的特徵分配相等的權重。直觀上,這可以解釋為強制學習演算法以特徵為組,然後基於特徵組學習目標模型。

安全應用程式,如時間序列分析和程式碼序列分析,通常需要使用RNN顯式地建模序列資料的特性依賴關係。得到的分類器根據特徵的共現情況進行分類決策。如果我們使用一個標準的線性迴歸模型(例如LIME)來得到一個解釋,我們就不能正確地近似一個區域性的決策邊界。這是因為線性迴歸模型不能捕獲特徵依賴並獨立處理它們。

通過在逼近區域性決策邊界的過程中引入熔融套索,我們期望得到的線性模型具有如下形式:

 

特徵被分組在一起,因此重要的特徵可能被選擇為一個組或多個組。在LEMNA中顯式地建模這個過程有助於獲得更準確的解釋,特別是對於RNN所做的決策。我們將使用圖1b中的情緒分析示例進一步解釋這一思想。在融合套索的幫助下,迴歸模型將共同考慮相鄰的特徵(例如,一個句子中的單詞相鄰)。在推導解釋時,我們的模型並不是簡單的給出一個不單詞,而是能夠準確的捕捉到不值得付出代價的短語作為情緒分析結果的解釋。

混合迴歸模型。混合迴歸模型使我們能夠更準確地逼近區域性非線性決策邊界。如圖3b所示,混合迴歸模型是多元線性迴歸模型的組合,使得進行近似更具有表達性:

 

其中K為超引數,表示混合模型中組合的線性分量總數;πk表明重量分配到相應的元件。

給定足夠的資料樣本,無論分類器的決策邊界是線性的還是非線性的,混合迴歸模型都可以近乎完美地逼近決策邊界(使用有限的線性模型集)[35]。因此,在深度學習解釋的背景下,混合迴歸模型可以避免上述非線性問題,得到更準確的解釋。

 

為了說明這個想法,我們使用圖3中的示例。如圖3a所示,標準的線性近似不能保證在輸入x附近取樣的資料仍然保持在區域性線性區域。這很容易導致不精確的近似和低保真度的解釋。我們在圖3b中的方法是用多邊形邊界近似區域性決策邊界,其中每條藍線代表一個獨立的線性迴歸模型。產生解釋的最佳線性模型應該是通過資料點x的紅線,這樣近似過程就可以得到一個最優線性迴歸模型,用來確定重要特徵作為解釋。

4.2模型開發

       接下來,我們將這些設計見解轉化為一個功能性的解釋系統。摘要介紹了在混合迴歸模型的學習過程中對融合lasso進行整合的技術步驟,以便同時處理特徵依賴和決策邊界非線性問題。從技術上講,我們需要通過最小化下面的方程得到一個混合迴歸模型

 

f(·)代表混合迴歸模型方程(4)所示,βk j表明k線性迴歸模型中的引數與j特徵。

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

首先,我們以概率分佈的形式表示混合迴歸模型:

 

然後,我們對待π1:K,β1:parameters3 K和σ2 1:K。通過對這些引數進行猜測,初始化它們的值,然後使用期望最大化(EM)[37]進行引數估計。期望最大化(EM)[37]是一種通過重複執行e步和m步來估計引數的演算法。下面,我們將簡要描述如何在我們的問題中使用EM演算法。更多細節見附錄a。

在方程(6),易建聯是一個分佈相結合K高斯分佈,和每一個分佈βk xi均值和方差σ2 K。在E-Step中,我們按照學習普通混合迴歸模型的標準步驟,將每個資料樣本分配到一個高斯分佈。基於樣本資料分配在前面的E-Step,然後重新計算引數π1:K,β1:K和σ2 1:K。引數π1:K和σ2 1:K, re-computation仍然遵循普通混合模型使用的標準程式的學習。但是,對於每個引數在β1:K, re-computation遵循一個定製的過程。這是計算βk通過最小化對βk以下方程:

 

其中Nk表示分配給第k個元件的樣本數量。這個re-computation定製,背後的原因是融合套索β1必須實施引數:K為了格蘭特混合迴歸模型能夠處理特性的依賴。我們可以觀察到,上面的等式與方程所示共享相同的形式(2)。因此,我們可以通過標定,從而減少方程計算的值引數β1:K。

按照EM演算法的標準步驟,重複執行e步和m步。直到達到穩定(即,高斯分佈變化不大,從e步到m步),我們輸出混合迴歸模型。注意,我們把σ2 1:K到模型引數ϵ1:K按照標準方法應用於普通混合模型的學習。

4.3應用模型進行解釋

       利用改進的混合迴歸模型,討論瞭如何對深度學習分類器進行高保真解釋.

       近似區域性決策邊界。給出一個輸入例項x,生成解釋的關鍵是近似目標分類器的區域性決策邊界。最終的產品是一個可解釋的線性模型,它允許我們選擇一小部分頂部特性作為解釋。為此,我們首先按照[45]中描述的方法在本地(大約x)合成一組資料樣本。其思想是隨機地使x的一個特徵子集無效。

       然後利用合成數據樣本的語料庫對區域性決策邊界進行近似。有兩種可能的方案:一是訓練單一混合迴歸模型進行多類分類;另一種方案是訓練多個混合迴歸模型,每個模型執行二元分類。出於效率考慮,我們選擇了第二種方案,並對附錄b進行了更嚴格的分析。

       派生的解釋。給定輸入資料例項x及其分類結果y,我們現在可以將解釋作為x分類的一組重要特徵來生成。更具體地說,我們得到了一個由融合lasso增強的混合迴歸模型。從這個混合模型中,我們確定了具有最佳逼近區域性決策邊界的線性分量。線性模型中的權值(或係數)可以用來對特徵進行排序。我們選擇了一小部分top特性作為解釋結果。

       注意,LEMNA被設計用來同時處理非線性和特徵依賴,但這並不意味著LEMNA不能使用相對獨立的特徵(如MLP或CNN)來處理深度學習模型。事實上,LEMNA的設計提供了根據目標深度學習模型調整解釋方法的靈活性。例如,通過增加hyper-parameter年代融合套索(閾值),我們可以放鬆約束強加給引數β1:K和允許浮萍屬更好地處理減少對政府的依賴特性。在第5節中,我們通過將LEMNA應用於構建在RNN和MLP上的安全應用程式,演示了可通用性的級別。

5 評價

          在這一部分,我們評估了我們的解釋方法在兩個安全應用:惡意軟體分類和二進位制反向工程的有效性。本節主要通過一系列保真度指標來評估解釋的準確性。在下一節中(§6),我們將實際用例浮萍屬理解分類器的行為,排除分類錯誤,和補丁的錯誤分類器。

5.1實驗裝置

       我們將LEMNA應用於兩個安全應用:利用RNN檢測反向工程二進位制程式碼的函式啟動;基於MLP對PDF惡意軟體進行分類。下面,我們將詳細介紹這兩個安全應用程式、LEMNA的實現和比較基線。

二進位制逆向工程。二進位制程式碼反向工程是(1)檢測和檢測惡意軟體[51],(2)加強軟體的安全性[75],(3)生成安全補丁[56]的關鍵步驟。多年來,二進位制分析主要由經驗豐富的安全分析師手工完成。最近,研究人員表明,訓練有素的RNN可以幫助處理關鍵的逆向工程步驟,如檢測函式start[52],這可以大大節省人力。考慮到檢測函式開始的重要性(即我們選擇這個應用程式來測試LEMNA。

       我們遵循[52]構建一個基於廣泛使用的包含2200二進位制[5]的資料集的RNN。我們在x86體系結構和gcc編譯器下編譯這些二進位制檔案,優化級別分別為O0、O1、O2和O3。這將生成4個訓練資料集,每個優化級別對應一個。與[52]類似,我們使用雙向RNN並訓練4個不同的分類器。

       資料集中的每個二進位制檔案都表示為十六進位制程式碼序列。如圖4所示,我們首先將十六進位制程式碼轉換為它們的十進位制值,並將序列中的每個元素視為一個特性。對於訓練,序列中的每個元素都有一個標籤,要麼是函式開始,要麼不是函式開始。如圖4所示,假設原始二進位制程式碼是90 90 90 83 ec 4 c和函式是在83年開始,然後標籤向量(0,0,0,0,1,0,0),我們遵循[52]截斷很長的二進位制序列和設定最大長度為200。然後我們將序列輸入RNN。我們使用Keras[14]對模型進行訓練,以Theano[63]作為後臺。我們使用70%的樣本進行訓練,剩下的30%進行測試,將資料集隨機分割。

       如表2所示,檢測準確率極高,所有病例的檢測準確率和召回率均達到98.57%以上。結果與[52]報道的結果相當。神經網路的超引數可以在附錄c中找到。

 

       PDF惡意軟體分類器。我們遵循[21,48]基於廣泛使用的資料集(4999個惡意PDF檔案和5000個良性檔案)[55]構建一個基於mlp的惡意軟體分類器。我們按照[55,58]為每個檔案提取135個特性。這些特性是研究人員根據元資料和PDF的結構(如物件標記的數量和javascript標記的數量)手工製作的。完整的特徵列表可以在擬態[1]中找到。我們採用標準方法將特徵值轉換為二進位制表示形式[41](即,將非零特徵值轉換為1),避免了某些高值特徵對訓練過程的扭曲。和之前一樣,我們隨機選取70%的資料集(惡意軟體和良性1:1)作為訓練資料,剩下的30%作為測試資料。如表2所示,我們的準確率和召回率都在98.13%以上,與[55]相似.我們將上述RNN和MLP作為執行LEMNA的目標分類器。給出了一個輸入例項,對目標分類器進行了近似,並給出了分類結果。解釋是給定輸入的最重要的特徵。對於惡意軟體分類器,LEMNA輸出一小部分頂級特性,解釋為什麼檔案是(不是)惡意軟體。對於函式start檢測器,圖4顯示了一個示例。給定一個輸入十六進位制序列和檢測到的函式開始(即(83), LEMNA在序列中標記出一組貢獻最大的十六進位制編碼。這裡,83是函式的開始,LEMNA指出,函式開始前的十六進位制編碼90是最重要的檢測原因。

 

       LEMNA有3個可配置的超引數。首先,近似本地決策邊界,我們將工藝N資料樣本為模型擬合(參見4)。第二個和第三個引數K混合組件的數量,和二元函式的閾值融合的套索S開始檢測,我們將引數設定為:N = 500 K = 6 S = 1 e 4。對於惡意軟體分類,我們設定引數為:N=500, K=6, S=1e4。注意,引數S的設定非常不同,因為惡意軟體分析特性是相對獨立的,而二進位制分析特性具有很高的依賴性。我們修正這些引數來執行我們的大多數實驗。稍後,我們將有一個專門的部分來對引數設定進行敏感性測試(這表明LEMNA對這些超引數不敏感)。

       LEMNA的計算成本。LEMNA的計算成本相對較低。對於這兩個安全應用程式,為給定例項生成解釋的時間大約為10秒。這種計算任務進一步得益於並行化。例如,使用一臺帶有Intel Xeon CPU E5-2630、一臺Nvidia Tesla K40c GPU和256G RAM的伺服器,大約需要2.5小時來解釋針對30個執行緒的O0的所有25,040個二進位制測試序列。

 

比較基線。我們使用兩條基線進行比較。首先,我們使用最先進的blackbox方法LIME[45]作為我們的比較基線。LIME[45]已經被用來解釋影象分類器和NLP的應用。它在安全應用和RNN上的效能還不清楚。為了公平比較,我們還將LIME配置為N=500,這是用於擬合線性迴歸模型的人工樣本數量。其次,我們使用隨機特徵選擇方法作為基線。在給定輸入條件下,隨機選擇特徵作為分類結果的解釋。

5.2保真度評價

       為了驗證解釋的正確性(保真度),我們進行了兩個階段的實驗。在第一階段,我們直接檢查我們的區域性近似相對於原始決策邊界的準確性。這可能會對解釋的準確性作出初步估計。第二階段,對解釋保真度進行端到端評價。我們設計了三個保真度測試來顯示所選擇的特徵是否確實是分類結果的主要貢獻者。

評價1:區域性近似精度。該度量通過比較近似的決策邊界和原始的決策邊界來直接計算。我們測量均方根誤差(RMSE):RMSE = qPni = 1(πp i)n,其中π表示一個單一的預測從目標深度學習分類器,獲得p i表示近似預測得到的解釋方法,和n是測試樣本資料的總數。更具體地說,我們從一個給定的分類器和一組測試資料樣本開始。對於每個測試資料樣本xi,我們首先使用分類器得到一個預測概率pi。然後,對於xi,我們根據式(6)生成一個迴歸模型,該模型可以產生一個估計的預測概率pi。對n個測試樣本執行這些步驟後,我們得到預測向量P = (p1,p2,…),對應的近似向量P = (p1, p2,…),p n)。最後,我們利用這兩個向量來計算RMSE。RMSE越低,說明近似的決策邊界(P)越接近真實邊界(P),說明解釋的保真度越高。

評估2:端到端保真度測試。為了驗證所選特性的正確性,我們設計了三個端到端保真度測試。為了幫助讀者理解測試過程,我們使用“影象分類器”作為一個玩具例子5。該過程對其他分類器的工作方式相同。如圖5所示,訓練影象分類器對“shoe”和“sweater”進行分類。圖5a為標籤為“毛衫”的輸入影象(x)。在圖5b中,解釋方法用紅色高亮重要畫素(特徵)來解釋分類的原因。我們將選擇的特性表示為Fx。為了檢驗解釋的準確性,我們有三個直覺:

如果feature Fx被準確的選中,那麼從輸入x中移除Fx將導致將該影象分類到不同的標籤,即,鞋子(圖5c)。

如果準確選擇了feature Fx,那麼將Fx的feature值新增到鞋子的影象中很可能會導致分類錯誤,即,將其分類為毛衣(圖5d)。

如果feature Fx被準確的選擇,我們可以製作出一個只包含Fx中feature的合成影象,這個合成影象很可能被歸類為毛衫(Figure 5e)。

利用這些直覺,我們構造了3個不同的保真度測試來驗證所選的特性。更正式地說,給定一個輸入例項x及其分類標籤y, LEMNA標識了一小部分重要特性(Fx)作為解釋。然後我們按照下面的步驟生成3個測試樣本t(x)1、t(x)2和t(x)3用於特徵驗證

特徵推理測試:通過對例項x中選定的特徵Fx進行空化,構造一個樣本t(x)1。

特徵增強測試:我們首先從相反的類(即然後將例項r的特徵值替換為Fx的特徵值,構造t(x)2。

綜合測試:我們構造t(x)3作為一個綜合例項。我們保留所選特性Fx的特性值,同時為其餘特性隨機賦值。

本實驗的關鍵變數是選取的重要特徵個數作為“解釋”(即外匯| |)。直觀地說,一個更大的

|Fx|可能會產生更好的解釋保真度,但會損害結果的可解釋性。我們希望|Fx|保持較小,以便人類分析師能夠理解。

給定測試資料集中的一個例項x,我們生成3個樣本,每個樣本對應一個保真度測試。我們將3個樣本送入分類器,並檢測其陽性分類率(PCR)。PCR檢測的是仍被歸為x’s原標籤的樣品的比例。注意,這裡的陽性並不意味著惡意軟體或功能開始。這僅僅意味著新的樣品仍然被歸類為x的原始標籤。如果特徵選擇準確,我們預計特徵推斷樣本的PCR值較低,特徵增強樣本的PCR值較高,綜合測試樣本的PCR值較高。

5.3實驗結果

       我們的實驗表明,在所有的保真度指標上,LEMNA的表現明顯優於LIME和隨機基線。

       當地的近似精度。如表3所示,LEMNA的RMSE比LIME小一個數量級。這

 

觀察對惡意軟體分類器和函式開始檢測都成立。LIME的最佳表現結果RMSE為0.1532,仍然比LEMNA的最差表現結果(0.0196)高出近10倍。這一結果證實了我們的混合迴歸模型能夠比簡單的線性模型建立更精確的近似。注意,這個度量不適用於隨機基線,因為隨機基線並不構建決策邊界。

       圖6a顯示了特徵推斷測試的結果。召回特徵推理測試是從輸入例項中刪除重要特徵。PCR值越低,說明所選特徵對分類決策越重要。僅通過消除LEMNA產生的前5個特徵,function start檢測器將PCR降至25%或更低。考慮到分類器極高的準確率(99.5%+,見表2),PCR的大幅下降表明小集合特徵對分類非常重要。注意,由於前5個特徵只佔輸入序列中200個總特徵的2.5%,所以特徵的空化被認為是次要的。如果我們取消前35個特徵,PCR就會降到接近0。

       回想一下,功能增強是新增所選特徵輸入x相反的類的一個例項,希望x的分類器產生一個標籤。更高的PCR顯示所選特徵x更重要。相對符合先前的測試結果:(1)新增少量的高階特性可以翻轉的標籤類相反的例項;(2)我們的方法大大優於兩個基線。值得注意的是,對於PDF惡意軟體分類器,通過替換前5個特性,75%的測試用例會翻轉它們的標籤。

       圖6c顯示了合成測試的類似趨勢。使用從給定x中選擇的特性,合成例項更有可能被標記為x的標籤。僅使用5個top特性,合成例項有85%-90%的機會獲得x的標籤,這表明已經成功捕獲了核心模式。

       在所有三個測試中,我們的LEMNA都比LIME和隨機基線表現出色得多。有趣的是,對於惡意軟體分類器,LIME的效能和隨機特徵選擇一樣差。這是因為特徵向量稀疏,不利於決策邊界的平滑。LIME很難準確地逼近非光滑邊界,這再次驗證了我們的設計直覺。我們的系統更適合於安全應用,因為與影象分析任務相比,安全應用需要更高的解釋精度。

       Hyper-parameters的敏感性。最後,我們測試如果引數設定不同,結果會如何變化。我們測試了大量的引數配置,發現我們的結論是一致的。由於篇幅限制,我們總結了表4中的關鍵結果。三個超引數分別為模型擬合的精加工資料樣本個數(N)、混合組分總數(K)、融合lasso的閾值(S)。表4給出了O0資料集上二元函式啟動檢測器的結果。我們展示了4組配置,每次只改變一個引數。對於保真度測試,我們將選擇的特徵數量固定為25來計算PCR。結果表明,超引數的改變對LEMNA的效能影響不大。

6 ML解釋的應用

       到目前為止,我們已經驗證瞭解釋結果的準確性。在本節中,我們將介紹LEMNA的實際應用。我們使用案例研究來說明解釋結果如何幫助安全分析師1)建立對訓練有素的分類器的信任,2)排除分類錯誤,3)系統地修補目標錯誤。由於深度學習的應用領域是一個相對較新的領域,人們對它的認識還不夠充分,所以在接下來的文章中,我們主要關注二元逆向工程的應用。我們對PDF惡意軟體分類器進行了相同的分析,結果在附錄e中。

6.1瞭解分類器行為

       我們的解釋方法的主要應用是評估分類器的可靠性,幫助建立信任。我們認為分類器的可靠性和可信度不一定來自於訓練資料的高分類精度。通常情況下,培訓資料不夠完整,不足以捕獲所有可能的差異。相反,信任更有可能是通過理解模型行為而建立的。在這一節中,我們研究了兩個關鍵的方向來理解分類器如何做出決策:(1)捕捉和驗證黃金規則和完善的啟發式;(2)發現新知識。

       捕獲著名的啟發式(C.W.H.)。一個可靠的分類器至少應該捕獲各自應用領域中眾所周知的啟發式。例如,在二進位制反向工程領域,安全實踐者積累了一組有用的啟發式來識別函式開始,其中一些甚至被視為黃金規則。某些黃金規則源自應用程式二進位制介面(ABI)標準[22]的規範。例如,ABI需要一個函式來儲存舊的幀指標(ebp),如果這個函式維護一個新的幀指標。這導致了最常見的序章[push ebp;mov ebp, esp]。另一組成熟的規則來自主流編譯器。例如,GNU GCC經常在函式開始之前插入nop指令,這將函式對齊到架構優化[43]。

       通過對解釋結果的分析,我們發現有強有力的證據表明深度學習分類器已經成功地捕獲了著名的啟發式。在表5中,我們展示了4種最具代表性的情況,每種情況對應一個分類器(或優化級別)。在Case-1中,分類器正確檢測到函式從55開始。然後,我們的LEMNA通過突出特性的重要性(即,即附近的十六進位制編碼)。結果符合眾所周知的黃金法則,即[push ebp;mov ebp, esp]。這表明分類器正在以一種合理的方式進行決策。類似地,Case-2捕獲c3之後的函式start 53。這與編譯器引入的一種流行的啟發式方法相對應,因為編譯器通常通過ret指令(特別是在O0和O1級別)最終退出函式。

       在Case-4中,83是函式start, LEMNA用紅色突出顯示了90。這表明分類器在函式開始規則之前遵循nop,這是由編譯器在對齊的函式之前填充nop s造成的。類似地,在Case-3中,LEMNA突出顯示了填充指令[lea esi,[esi+eiz*1+0]],這是編譯器引入的另一個模式。總的來說,LEMNA表明,著名的啟發式被分類器成功捕獲。

       在我們的分析過程中,我們觀察到著名的啟發式演算法在較低的優化級別(O0, O1)上廣泛適用,但在較高的優化級別(O2, O3)上適用的二進位制數不多。例如,o0級95%的函式以[55 89 E5]開頭,與Case-1的啟發式相匹配。74%的o1優化函式以ret作為結束指令(Case-2)。相反,只有30%的O2或O3級別的二進位制函式符合眾所周知的啟發式,例如,函式端填充指令([90 90 90 90],[8d b4 26 00 00])。這很直觀,因為更高層次的優化會顯著地使程式碼結構多樣化,從而降低黃金規則的效率。

       發現新知識(D.N.K.)除了匹配已知的啟發式之外,我們還檢查分類器是否獲取了現有知識之外的新啟發式。對於安全應用程式,我們認為新的啟發式需要由領域專家來解釋。在二元分析領域,許多潛在有用的啟發式都是特定於單個函式的,很難手工總結所有這些啟發式。例如,連結器插入的實用函式通常具有惟一的起始程式碼段,而這些程式碼段很少出現在其他地方(例如,_start函式總是以[xor ebp, ebp;流行esi])。手工組織這些規則是不切實際的。然而,這些規則一旦由LEMNA推匯出來,對領域專家來說就有了直觀的意義。

       如表5所示,我們對解釋結果進行了分析,發現分類器確實學到了新的知識。我們選取了5個具有代表性的案例(ID 5 9),案例5顯示,由於後續的[ed 5e],在函式開始時檢測到31個案例。[31 ed 5e]對應效用函式_start的start(即[xor ebp, ebp;流行esi])。這說明我們的解釋方法可以幫助總結與特殊函式有關的獨特序言。注意,函式start 31本身並不一定是一個重要的指示器。實際上,31表示經常出現在函式中間的操作碼(xor)。正是[ed 5e]導致了正確的檢測。

       案例6說明了另一個有趣的模式,其中2b是檢測從b8開始的函式的最重要的特性。2b駐留在遵循模式的指令中[mov eax, CONS1;在eax, CONS2]中,CONS1和CONS2是常量,CONS1 - CONS2 = 0或3。這個模式只出現在register_tm_clone和deregister_tm_clone的序言中,這兩個是用於事務記憶體的實用函式。這也是一個特定於函式的模式,用於檢測函式的啟動。      

       案例7、案例8和案例9在功能開始時都有一些型別的準備工作。在Case-7中,[83,ec]被標記為最重要的特徵,它對應於指令[sub esp, 0x1c]。在函式開始時經常使用這種形式的指令來準備堆疊框架。對於Case-8, [mov eax, DWORD PTR [esp+0x4]]被標記為最具指示性的特徵。通常插入這條指令是為了獲取函式的第一個引數。注意,04是紅色的,這是因為04用作[esp+0x4]獲取函式引數的偏移量。如果這個偏移量的值不同,那麼這個指令不一定是函式開始的指示器。對於Case-9,它首先儲存稍後修改的暫存器([push ebp;推動edi;推動esi])。呼叫約定(一個通用ABI標準)要求儲存這些暫存器,這些暫存器也經常出現在函式開始處。

       總的來說,LEMNA驗證了分類器的決策在很大程度上遵循了可解釋的邏輯,這有助於建立對這些分類器的信任。

6.2分類錯誤的排除

       深層神經網路雖然具有較高的準確性,但仍然存在一定的誤差。這些錯誤不應被簡單地忽略,因為它們往往表明培訓不足,而在實踐中(由於有偏見的培訓)可能會被放大。我們的解釋方法試圖深入瞭解是什麼導致了給定錯誤分類的錯誤。通過對誤差產生的原因進行檢查,為有針對性的誤差修正提供可操作的指導。

       假陰性的原因(R.F.N.)。對於二進位制分析應用程式,分類器有時會錯過真正的函式啟動。如表5(根據R.F.N.)所示,給出一個錯誤的否定,我們解釋了為什麼真正的函式開始不被分類為函式開始。具體來說,我們將元組(程式碼序列、實函式開始)輸入到LEMNA中,而紅色的特性是不識別函式開始的原因。例如,在Case-10中,[50 fd]被標記為主要原因,對應於[jmp 0xfffffd50]。這條指令幾乎總是出現在例程或函式的中間,誤導分類器認為實質31不是函式的開始。這是一個異常情況,因為這個[50 fd]恰好是特殊區域.plt的最後一條指令,後面跟著_start函式。Case-11和Case-12由於指令[mov edx,eax]和[mov eax,ds:0x82014d0]的錯誤分類,經常出現在函式中間。

       假陽性原因(R.F.P.)。表5還顯示了分類器選擇錯誤函式開始的示例。在這裡,我們將元組(程式碼序列、錯誤的函式啟動)放入LEMNA,以解釋為什麼選擇了錯誤的函式啟動。例如,Case-13用紅色突出顯示c3,表示ret指令。通常,ret位於一個函式的末尾,用於退出,這使得下一個位元組83成為函式開始的有力候選。但是,Case-13是特殊的,因為ret實際上是為了優化目的而放在函式中間的。Case-14和Case-15都被填充指令[lea esi,[esi+eiz*1+0x0]所誤導,[lea esi,[esi+eiz*1+0x0]]通常用於對齊函式。但是,在這兩種情況下,這個填充指令實際上用於對齊函式內部的基本塊。

       總體而言,LEMNA表明,這些錯誤很大程度上是由誤導模式主導實際指標這一事實造成的。為了減少這些錯誤,我們需要在特徵空間中找出相應的區域,並抑制這些誤導模式。

6.3 ML分類器的針對性補丁

       基於以上結果,我們開發了自動程式,將洞察轉換為行動,以修補分類器。

       修補的方法。為了修補特定的分類錯誤,我們的想法是識別分類器中訓練不足的相應部分。然後我們製作了目標訓練樣本來擴充原始訓練資料。具體來說,給定一個錯誤分類的例項,我們應用LEMNA來確定引起錯誤的一小部分特性(Fx)。通常情況下,這些例項是訓練資料中的異常值,並且沒有足夠的反例。為此,我們的策略是通過增加相關的反例來增加訓練資料,將Fx的feature值替換為random值。

       我們使用一個示例(表5中的Case-10)來描述修補程式。分類器由於[50 fd]而錯過了函式的開始,這是一種通常存在於函式中間的十六進位制模式。理想情況下,分類器應該選擇其他模式[31 ed 5e]來定位函式的起始位置。不幸的是,錯誤模式的影響太大了。為此,我們可以增加新的樣本,以減少誤導特徵的影響([50 fd]),促進正確的指標([31 ed 5e])。將“[50 fd]”的十六進位制值替換為隨機十六進位制值,生成新的樣本。通過在訓練資料中加入新的樣本,減少再訓練分類器的誤差。

       評估結果。為了證明修補的有效性,我們對所有5個分類器執行了上述步驟。對於每一個假陽性和假陰性,我們分別生成kp和kn的新樣本。注意kp和kn不一定相同,但是它們都需要很小。畢竟,我們希望在不損害分類器已有的高精度的前提下,對目標錯誤進行修補。對於所有的分類器,我們一致地替換了前5個誤導特徵,並用40個時間重新訓練模型。

       表6顯示了修補前後的分類器效能。我們測試了引數的敏感性,發現只要我們將kp和kn設定在2 - 10之間(附錄- f),結果是相對一致的。由於篇幅限制,表6只給出了每個分類器的一組結果。我們的實驗表明,對這五個分類器進行再訓練後,可以減少誤報和誤報。這些結果表明,通過對模型行為的理解,我們可以識別出模型的不足之處,並對模型進行相應的改進。

7討論

       福利vs。風險。LEMNA的目的是幫助安全分析人員理解、檢查甚至修補基於深度學習的安全系統。從防禦的角度設計時,攻擊者可能會利用它來尋找深度學習分類器的缺點。然而,我們認為這不應該稀釋LEMNA的價值,也不應該成為不開發解釋工具的理由。類似的還有軟體fuzzing技術[13,73]:雖然黑客可以使用fuzzing工具尋找漏洞加以利用,但是fuzzing技術通過在軟體釋出前幫助軟體測試發現並修復漏洞,極大地造福了軟體行業。

       分析LEMNA輸出的指南。LEMNA輸出對每個測試用例的解釋。要徹底檢查分類器,開發人員可能需要通過LEMNA執行大量測試用例。人工閱讀每個案例的解釋是時間消耗,因此我們提出了一種更有效的方法,那就是先對相似的解釋進行分組。在6中,我們將完全相同的解釋進行分組,然後選擇最具代表性的案例。在實踐中,開發人員可以根據需要使用任何其他叢集技術對解釋進行分組。

       更廣泛的安全應用。LEMNA使用兩個流行的安全應用程式進行評估。還有許多其他的安全應用程式,如檢測二進位制程式碼的函式端、確定函式型別和檢測脆弱程式碼[15,24,47,52,66]。他們也可以從LEMNA中獲益,因為他們的深度學習架構是RNN或MLP。請注意,像CNN這樣的模型與MLP有一些相似之處,因此LEMNA可能有助於相關應用(例如影象分析)。未來的工作將探討LEMNA在更廣泛的應用領域中的適用性。

       其他深度學習架構。除了MLP和RNN,還有其他深度學習架構,如從序列到序列網路[4,60]和混合網路[25,36,71]。雖然這些架構主要在機器翻譯[4]和影象字幕[25]等領域取得成功,但初步證據顯示,它們在安全方面有發揮更大作用的潛力[36,71]。一旦將來構建了具體的安全應用程式,我們計劃在這些新的體系結構上測試LEMNA。

       模糊的特性。當特性是可解釋的時,LEMNA是有用的,但是對於所有應用程式來說,這可能不是真的。特別是,研究人員最近提出了各種方法[8,67,70],以混淆輸入特徵,增加執行對抗性攻擊的難度。可能由於特徵混淆經常降低分類器的精度,這些技術還沒有得到廣泛的應用。LEMNA並不直接適用於訓練在模糊特徵上的分類器。但是,如果模型開發人員在原始和模糊的特性之間有對映,那麼開發人員仍然可以將LEMNA的輸出轉換為可解釋的特性。

8其他RELATEDWORK

       由於在2和3中已經討論了大部分相關的工作,我們在這裡簡要討論其他相關的工作。

       提高機器學習的魯棒性。Adeep學習模型可能被一個對抗性樣本(即,一種惡意輸入,精心設計,導致錯誤分類)[61]。為了提高模型的抵抗力,研究人員提出了各種防禦方法[9,20,36,40,67]。最相關的工作是對抗性訓練[20]。對抗性訓練是在訓練資料集中加入對抗性的例子來重新訓練一個更健壯的模型。可以使用各種技術為對抗性訓練製作對抗性示例[11,33,42,72]。我們的補丁方法和標準的對抗性訓練之間的一個關鍵區別是,我們的補丁是基於對錯誤的理解。我們儘量避免盲目地對模型進行再培訓,以免引入新的漏洞。

       減輕受汙染資料的影響。最近的研究已經探索了減輕訓練資料汙染所帶來的錯誤分類的方法[10,12,46,65]。機器反學習[10]是一種典型的方法,它通過將標準的訓練演算法轉化為累加形式來消除某些訓練資料的影響。最近的一項工作[29]提出利用影響函式來識別導致錯誤分類的資料點。我們的方法是對現有工作的補充:我們建議增加訓練資料來修復訓練不足的元件(而不是刪除壞的訓練資料)。更重要的是,在修復這些錯誤之前,LEMNA幫助人類分析人員理解這些錯誤。

9 總結  

本文介紹了一種新的方法——LEMNA,它可以為安全應用中的單個分類結果提供高保真度的解釋。LEMNA將目標深度學習模型視為黑盒,通過融合lasso增強的混合迴歸模型逼近目標深度學習的決策邊界。通過對兩種常用的基於深度學習的安全應用進行評價,證明了該方法的正確性。此外,我們還演示了機器學習開發人員和安全分析人員如何從LEMNA中獲益,以便更好地理解分類器行為、排除錯誤分類錯誤,甚至執行自動化補丁來增強原始的深度學習模型。

附錄- A. EM演算法細節