?

基于語義冗余的聯邦漏洞檢測模型無損后門

2023-05-30 01:22邵長捷易嘯宇李建華李高磊
電子技術與軟件工程 2023年6期
關鍵詞:后門觸發器聯邦

邵長捷 易嘯宇 李建華 李高磊

(上海交通大學電子信息與電氣工程學院 上海市 200240)

基于機器學習的軟件漏洞檢測方法在提取數據特征方面更加自動化,相對于傳統技術具有更高的效率[1]。聯邦學習是一種由多個客戶端協作解決機器學習問題的模型訓練機制,具有分散訓練、參數聚合等特點[2]。在自動化漏洞檢測方面應用聯邦學習前景廣闊。在自動化漏洞檢測方面應用聯邦學習前景廣闊,主要體現在兩方面:一方面,代碼數據隱私得到保障,數據占用方掌握大量源代碼,但會因隱私泄露風險而不公開數據集,聯邦學習在擴充數據樣本規模的同時保障了漏洞樣本的隱私安全;另一方面,聯邦學習中分布式的訓練架構使得多方計算資源能得到較為充分的利用,從而加速軟件漏洞模型的訓練效率。

然而,聯邦學習中數據來源分散可能導致客戶端數據質量缺乏保障。惡意客戶端利用中毒數據進行本地訓練,可能導致軟件漏洞聯邦檢測模型遭受后門攻擊的威脅。本文首先驗證了源代碼中與代碼功能語義無關的冗余信息的存在性,盡管此類信息不影響代碼的運行結果,但他們在表征過程中會被保留下來,從而影響模型訓練;其次,本文還設計了一種針對軟件漏洞聯邦檢測模型的新型后門攻擊方案,利用冗余語義向訓練數據中插入不影響代碼功能的觸發器,從而實現在不改變惡意代碼功能的前提下繞過軟件漏洞聯邦檢測模型的攻擊機制。

本文的主要貢獻如下:

(1)提出“語義冗余”的概念來定義代碼表征中與功能語義無關的冗余信息。建立基于語義冗余的無損后門攻擊機制,從語義冗余空間生成有毒代碼表示,既不影響模型的準確性,也不降低惡意代碼的功能。

(2)通過大量實驗驗證了語義冗余的存在性以及所提攻擊方法的有效性,并總結了應對上述攻擊的3 類防御對策。

1 相關工作

1.1 代碼語義表征

常見的代碼表征技術有:

(1)詞嵌入技術,包括Word2Vec[4]、GloVe[5]、Doc2Vec[6]、CodeBERT[7]等;

(2)代碼序列切片技術,BLSTM 和BGRU 特別適合從上下文有依賴關系的代碼序列中提取語義特征,將完整代碼按照執行邏輯進行切片并利用記憶網絡進行推理分析[3]。

GAT 和GCN 等圖特征表示方法近年來也被引入軟件漏洞檢測領域[7],該方法從不同類型的代碼屬性圖中提取語義信息,主要包括AST(抽象語法樹)、CFG(控制流圖)、PDG(程序依賴圖)及其組合等?,F有的漏洞檢測模型在未知、異構樣本上檢測精度依然很差。

1.2 無損后門攻擊

無損后門攻擊指后門觸發器不影響載體本身所要傳遞的信息。由于代碼本身具有文本上下文特征,可用自然語言處理進行代碼語義表示,這為漏洞檢測引入了文本后門攻擊。Dai 等[8]首次在文本數據中粘貼觸發器并證明自然語言處理模型極易遭受后門攻擊。

2 方案設計

2.1 基于語義冗余的無損后門攻擊

代碼中與代碼功能邏輯不相關的語義信息被定義為語義冗余,攻擊者利用語義冗余生成中毒樣本,并對聯邦漏洞檢測模型進行投毒?;谡Z義冗余的無損后門攻擊機制的工作流程:首先,攻擊者對所控制的節點進行分析并選用合適的語義冗余模式向良性樣本中插入觸發器,然后篡改其標簽以構建中毒數據集。當該節點參與模型訓練時,本地模型在中毒數據集上進行訓練并將參數更新上傳至中心服務器,從而在全局模型中植入后門。

2.2 基于語義冗余的觸發器插入方案

向樣本i的語義冗余信息中插入觸發器Ti的流程如算法1所示,表示樣本i應表征的與功能邏輯相關的語義信息。為了不影響投毒目標的任何正常功能,投毒問題可抽象為一個聯合優化問題,且應滿足以下約束條件:

其中F為深度神經網絡的參數函數。在訓練階段,通過最小化損失函數L測量模型判斷和標簽之間的差距,進而通過梯度下降算法進行訓練,從而確定模型參數Θ*。為了在訓練時誤導模型,本文向所控制節點的訓練數據中插入觸發器,并更改其標簽,如標簽從Vulnerable(1)改為NOT Vulnerable(0)。在無損后門攻擊中,大小為k的有毒數據集攜帶觸發器。為確保不影響樣本i的功能,需將觸發器Ti插入到公式(1)中的中,以避免破壞。因此,的子集。全局模型會將帶有觸發器的測試樣本分類到目標類別中。

3 實驗設計與結果分析

實驗一驗證了在廣泛源代碼中語義冗余的存在性;實驗二對同類漏洞檢測方法進行對比,證明了不同表征方法下攻擊方法的有效性。

3.1 實驗設置

數據集:為了驗證語義冗余的普遍存在性,實驗一共涉及8 個代表性數據集,即SARD、ReVeal、Juliet、NVD、Draper、FFmpeg、Qemu 和Big-Vul,涵蓋了各類樣本,包括合成樣本、半合成樣本和真實樣本。其中,SARD 和Juliet 使用已知漏洞模式合成,合成樣本具有主流代碼漏洞的特征;NVD 中半合成樣本實在實際項目的已知漏洞上進行了修改和標記;其余5 個數據集的樣本均為真實樣本,其中ReVeal[7]是從Chromium和Debian 項目中收集的樣本;Draper,FFmpeg,Qemu和Big-Vul 包含了來自GitHub 公共庫的代碼樣本,其中Big-Vul 涵蓋了300 多個不同的開源C/C++項目,有91種不同的漏洞類型,常被用作基準數據集。

評價指標:將各類基線方法應用于多個數據集以驗證攻擊有效性。其中,SySeVR[3]使用SARD,LineVD和LineVul[9]使用Big-Vul。本文以ASR 和CACC[4]為評估指標評估后門攻擊效果。

(1)CACC(Clean Accuracy),即后門模型在干凈樣本上的分類精度。該指標反映后門攻擊的隱蔽性;

(2)ASR(Attack Success Rate),即后門模型在中毒樣本上的分類準確率,該指標反映后門攻擊的定向性和有效性;

(3)BP(BaselinePerformance),基線方法在其原始訓練集上按照原始策略訓練后,在相應驗證集上的分類精度。由于不同基線方法的性能存在差異,本文將使用BP 來排除不同基準的影響。

基線方法:使用SySeVR[3],LineVD 和LineVul[9]作為基于深度學習的漏洞檢測基線方法,并分別使用適配的模型(即BGRU,BLSTM,GAT,GCN,Transformer)。

參數設置:實驗設置4 個聯邦學習參與者,其中2個參與者是惡意的,各個參與者的數據集不重合。

3.2 語義冗余的存在性證明

為了觀察異構數據集的語義冗余,本文主要搜索包含條件語句、邏輯計算、循環和賦值的4 類常見冗余信息作為插入點,這些冗余信息可以被本文使用的模式利用,即命名規則和代碼風格。首先,不同變量命名約定可表示相同的賦值邏輯。其次,可使用不同的語法(代碼風格)來表示相同的邏輯。這些對依賴關系載體的改變都不會影響代碼功能和執行結果。觸發器插入過程如算法表1所示。為了保持100%的功能一致性,只需對文本進行少許修改以插入觸發器,并統計每個樣本的修改比例來表明語義冗余的普遍存在[10-11]。

表1:跨表征的實驗效果對比

大多數樣本的修改比例均很小,不影響代碼功能。上述結果的一致性表明語義冗余在廣泛代碼樣本上的普遍存在性,也表明語義冗余空間對于后門攻擊具有巨大的利用價值。

3.3 不同表征方法下的攻擊效果

表征方法的不同對后門攻擊效果有潛在影響。本文以SySeVR 和LineVD 為基線對比了不同表征方法下的攻擊效果,結果如表1所示。

(1)處理方式。合理的預處理可起到對部分語義冗余的過濾。但是,如表1所示,未被特意過濾的語義冗余模式(如代碼風格)仍存在于符號化后的代碼,并可被聯邦模型所學習。作為兩類典型的處理方式,序列化和圖關聯均不會消除模型對語義冗余的學習。圖1 展示了分別利用命名規則和代碼風格兩種語義冗余模式時后門模型的訓練效果。代碼風格的利用效果更好,說明這類語義冗余特征更容易被模型學習??傮w而言,兩種情況下的曲線趨勢一致,說明不同語義冗余特征都可被模型學習。

圖1:兩類語義冗余模式的訓練效果對比

(2)處理粒度。由表1 可見,LineVD 函數級表征性能不佳,但ASR 相比于BP 增加較明顯;語句級表征具有較好的性能,說明函數級表征中存在更大的語義冗余空間,模型更容易從中學到語義冗余特征。

(3)詞嵌入技術。為獲取更高的性能,包括Word2Vec,CodeBERT,Doc2Vec,GloVe 在內的詞嵌入技術被應用到代碼表征領域,但表1 的結果顯示,詞嵌入不影響模型對語義冗余特征的學習。

4 結束語

本文提出了一種針對聯邦漏洞檢測模型的無損后門攻擊機制。該機制主要利用語義冗余,實現在不影響代碼本身功能的前提下逃避模型的檢測。實驗表明各種表征方法均存在語義冗余且模型對語義冗余特征的學習主要與基線方法本身的性能有關。下一步研究將圍繞如何系統地識別語義冗余并對其進行自動化過濾開展。

猜你喜歡
后門觸發器聯邦
一“炮”而紅 音聯邦SVSound 2000 Pro品鑒會完滿舉行
303A深圳市音聯邦電氣有限公司
工業物聯網后門隱私的泄露感知研究
主從JK觸發器邏輯功能分析
使用觸發器,強化安全性
新途安1.4TSI車后門車窗玻璃不能正常升降
20年后捷克與斯洛伐克各界對聯邦解體的反思
聯邦憲法法院60年——一個來自德國的成功故事?
對觸發器邏輯功能轉換的分析
觸發器邏輯功能轉換的兩種方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合