<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    如何攻擊圖神經網絡

    VSole2022-08-24 08:12:18

    前 言

    目前,圖結構的數據被應用于各種安全敏感領域(例如惡意軟件分析,內存取證,欺詐檢測,藥物發現等),而隨著圖神經網絡的興起,研究人員嘗試將圖神經網絡應用于這類數據上實施分析,發現都能達到非常先進的水平。在這種趨勢下,圖神經網絡是否安全,便是安全研究人員關注的重點,本文分析并復現首次實現針對圖神經網絡進行后門攻擊的研究工作,該工作發表于安全四大之一的USENIX Security 2021,它將提出的攻擊命名為GTA。

    基礎特點

    同樣是后門攻擊,圖上的后門攻擊有哪些特點呢?

    目前的后門攻擊基本是在圖像領域展開研究的,與結構化、連續的數據(如圖像)不同,圖數據本質上是非結構化和離散的,需要具有相同性質的查詢觸發器。GTA將觸發器定義為特定的子圖,包括拓撲結構和描述(節點和邊)特征,這為攻擊者提供了一個大的設計范圍。此外GTA不是為所有圖定義一個固定的觸發器,而是根據單個圖的特征生成觸發器,這優化了攻擊的有效性(例如,誤分類置信度)和規避性(例如,擾動幅度)。如下所示,第三行是被GTA植入觸發器后的圖,圖中紅色的子圖是觸發器,可以看到,每個圖的觸發器都是不同的。

    總的來說,GTA本質上也是要生成一個木馬GNN,訓練該模型時的核心是雙層優化,對木馬GNN和觸發器生成器的參數進行輪流優化,但是由于假設攻擊者沒有訪問下游分類器的能力,因此優化的目標是針對它們的潛在表達形式(embedding)的L2距離,即要保證正常GNN和木馬GNN在干凈輸入時要保證較為相似的潛在表達輸出,也要保證木馬GNN在帶有木馬的輸入(非攻擊目標類)和目標類干凈輸入時較為相似的潛在表達輸出。

    我們知道,GNN被應用的領域可以被簡單的分為兩類,分別是inductive task和transductive task,前者的代表性任務就是圖分類,后者的代表性任務就是節點分類。而GTA對兩者都可實施攻擊。

    Inductive和Transductive task

    這里我們順便再提一下inductive task和transductive task的區別與聯系。

    inductive task翻譯成中文可以叫做“歸納式學習”,顧名思義,就是從已有數據中歸納出模式來,應用于新的數據和任務。我們常用的機器學習模式,就是這樣的:根據已有數據,學習分類器,然后應用于新的數據或任務

    transductive task翻譯成中文可以叫做“直推式學習”,指的是由當前學習的知識直接推廣到給定的數據上。其實相當于是給了一些測試數據的情況下,結合已有的訓練數據,看能不能推廣到測試數據上

    我們以下圖為例,可以更直觀地進行解釋

    設現在的任務是:已知ABC的類別,求問號的類別

    inductive learning就是只根據現有的ABC,用比如kNN距離算法來預測,在來一個新的數據的時候,還是只根據5個ABC來預測;而transductive learning直接以某種算法觀察出數據的分布,這里呈現三個cluster,就根據cluster判定,不會建立一個預測的模型,如果一個新的數據加進來就必須重新算一遍整個算法,新加的數據也會導致舊的已預測問號的結果改變。

    圖神經網絡GNN

    GNN以圖G為輸入,包括其拓撲結構和描述特征,并為每個結點v生成表示(embedding) $z_v$,設Z表示矩陣形式的節點嵌入。

    我們考慮一個基于領域聚合范式的GNN:

    其中,Z(k)是第k次迭代后的節點嵌入,同時也是傳遞給鄰居節點的message,而aggregation 函數則依賴于來自上一次迭代的鄰接矩陣A、可訓練的參數、以及節點嵌入Z(k-1)

    通常Z(0)被初始化為G的節點特征。為了得到圖嵌入$z_G$,readout函數會集合來自最后一次迭代K的節點嵌入:

    總的來說,GNN建模了一個函數f,為G生成了$z_G$=f(G)

    預訓練GNN

    對于有標簽數據非常稀疏或者訓練非常昂貴的領域來說,使用預訓練模型是非常好的選擇。在遷移學習的環境下,如下所示,一個預訓練的GNN f與下游的分類器h一起組成了端到端的系統

    舉例而言,對于一個化學藥物分類任務,給定一個分子的圖G,首先將其映射到其嵌入$z_G$=f(G),然后進行分類$y_G=h(z_G)$

    與f相比,h明顯更簡單(比如就是一個全連接層)。注意,訓練f的數據往往與下游任務不同,但具有相似的特征(例如,一般分子與有毒分子)。經常有必要對系統進行微調。可以選擇執行full-tuning來同時訓練f和h,或者只訓練h但f固定的partial-tuning。

    威脅模型

    我們假設的威脅模型如上圖所示,給定一個預訓練的GNN $f{\theta_0}$,攻擊者在不修改架構的同時修改參數偽造一個GNN $f\theta$

    我們假設敵手有能力接觸到下游任務所用的數據集。在將$f_\theta$和下游分類器h集成為一個端到端系統后,用戶會進行微調以滿足下游任務。為了讓攻擊更實際,我們假設攻擊者不知道用戶使用的分類器h的情況,也不清楚是如何微調系統的。

    GAT攻擊

    我們以圖分類任務為例來說明。

    給定一個預訓練GNN $\theta_0$,攻擊者希望偽造一個木馬模型$\theta$,它會讓系統對嵌入了觸發器的圖誤分類為指定的類$y_t$,而在正常的圖上是正常的分類

    我們將觸發器設計為子圖$g_t$(包括拓撲結構和描述特征),并設計一個mixing 函數m(.;$g_t$),用于將圖G和觸發器$g_t$混合從而生成一個嵌入了觸發器的圖m(G;$g_t$)

    因為攻擊者的目標可以定義為:

    h是微調后的下游的分類器,G代表的是任務中的任意圖。直觀上,第一個目標規定了所有觸發器嵌入圖都被誤分類為目標類(即攻擊有效性),第二個目標則保證了原始gnn和木馬gnn在良性圖上的行為是不可區分的(即攻擊規避性)。

    不過通過上式來尋找最優的觸發器和木馬模型是non-trivial的:

    ?由于攻擊者無法訪問下游模型h,直接根據上式優化$g_t$和$ \theta$是不現實的。

    ?由于$g_t$和$ \theta$的相互依賴,每次更新$g_t$都需要對$ \theta$進行昂貴的計算。

    ?存在多種組合方式,這意味著存在一個禁止性搜索空間。

    ?對所有圖使用通用觸發器$g_t$忽略了單個圖的特征,易于被檢測。

    為了解決以上問題

    1.我們不是將$g_t$和$ \theta$與最終預測相關聯,而是根據特征表示對它們進行優化;

    2.采用雙層優化公式,$g_t$作為超參數,$ \theta$作為模型參數,交叉優化;

    3.mixing函數m作為一個有效的替換算子,在G內找到并替換與$g_t$最相似的子圖g;

    4.我們引入了自適應觸發器的概念,即$g_t$對每個給定的圖G進行特別優化(每個圖G都會得到一個特定的gt)。

    接下來我們分別介紹雙層優化問題、mixing函數、以及觸發器生成等攻擊的關鍵部分

    雙層優化問題

    我們已經知道,攻擊者從下游任務數據集取樣得到的數據由實例(G,$y_G$)組成,G是圖,$y_G$是標簽

    我們使用$g_t$和$ \theta$分別作用upper-level和lower-level變量來構建bi-level 優化目標

    上式中,$l{atk}$和$l{ret}$分別代表量化攻擊有效性和準確性保持的損失項,對應于我們前面定義的目標

    因為無法訪問分類器h,我們不再將$l{atk}$和$l{ret}$與最終預測關聯,而是根據潛在表示(latent representation)定義它們。

    我們把數據集Dfen為兩部分,D[$y_t$]是目標類t的圖,D[\$y_t$]是其他類的圖

    $l{atk}$確保$f \theta$會為D[$y_t$]以及D[\$y_t$]中嵌入了觸發器的圖生成相似的嵌入

    而$l{ret}$則確保$f \theta$和$f_ {\theta0}$為D中的圖生成相似的嵌入,即滿足如下公式

    其中$ \triangle$用于衡量嵌入的不相似度,在我們的實驗中可以使用L2距離

    不過準確求解上式的代價是非常昂貴的,由于是bi-level公式,每當$g_t$被更新,就需要重新計算$ \theta$(換句話說,需要在D上重新訓練f)

    所以我們提出了近似的求解算法,通過在$l{atk}$和$l{ret}$上交替執行梯度下降來迭代優化$g_t$和$ \theta$

    在第i次迭代時,給定當前的觸發器g^{(i-1)}t以及模型$ \theta^{i-1}$,我們首先通過固定g^{(i-1)}_t,在$l{ret}$上執行梯度下降計算$ \theta^{(i)}$。在實際操作中,這一步會運行$n{io}$次迭代,這個參數代表的是inner-outer optimization ratio,用于平衡$l{atk}$和$l{ret}$的優化。然后在對$ \theta^{(i)}$執單步梯度下降后通過最小化$l{atk}$得到g^{(i)}_t

    對于$g_t$的梯度可以通過下式近似

    Mixing函數

    mixing函數滿足兩個目的:

    1.對給定的觸發器$g_t$,需要在圖G中找到最適合替換的子圖g

    2.使用$g_t$替換g

    這里存在很多組合方法,我們將Mixing function限制為一個有效的替換操作符,也就是說,m(G;$g_t$)會使用$g_t$替換G中的g

    為了最大化攻擊的規避性,我們最好使用一個類似于$g_t$的子圖

    因此,我們就有了約束:1.g和gt的size是一樣的,比如具有相同數量的節點;2.他們有最小的圖編輯距離

    在圖G中找到與gt相似(子圖同構)的子圖g是一個NP難的問題,我們采用了基于回溯的算法VF2來滿足我們設置的情況。VF2通過映射gt中的下一個節點到G中,并反向操作,由此遞歸地擴展部分匹配。當我們搜索到最相似的子圖時,我們就保持當前最高的相速度并且在部分匹配超過這個閾值時提前終止匹配。

    觸發器生成

    在前面的式子中,我們假設對于所有的圖都是應用了統一的觸發器,盡管這樣實施起來比較簡單,但是這兒還存在可以優化的地方:

    1.忽略了單個圖的性質,并且攻擊可能沒那么有效;

    2.每個嵌入了觸發器的圖都是共享同樣的pattern,這會讓其更容易被檢測出來

    那么是否可以對每個圖都生成特定的觸發器并能夠最大化有效性和規避性呢?

    我們設計了一個自適應的觸發器生成器函數$ \phi_w(.)$,給定G的子圖g,它會生成觸發器$g_t$

    從high level來看,該函數包括兩個關鍵的操作:1.首先把g中的每個結點i映射到其編碼$z_i$,這個編碼了g的節點特征和拓撲結構;2.其應用了兩個生成器函數,第一個講g的編碼映射到$g_t$的拓撲結構,第二個將g的節點編碼到$g_t$的節點特征

    怎么編碼g的特征和上下文呢?我們使用圖注意力機制。給定節點對i,j,我們計算注意力系數$ \alpha_{ij}$,這表示j對于i的重要程度(基于他們的節點特征以及拓撲關系),然后我們應用非線性轉換計算其鄰居編碼的聚合(權重系數就是相應的注意力系數)作為i的編碼。我們使用D訓練一個注意力網絡,在下文中我們將i的編碼表示為$z_i$

    怎么將g的編碼映射到$g_t$?$gt$包括兩部分,即拓撲結構和節點特征。給定兩個節點i,j以及對應的編碼,我們使用參數化的余弦相似度定義它們在$g_t$中的連接度A{i,j}

    其中$W_c$是可學習的,$1_P$是指示函數,如果p為真則返回1,否則返回0.如果相似度分數超過0.5則i,j在$g_t$中是相連的

    同時,對于g中的節點i,我們定義其在$g_t$中的特征為:

    我們將這些可學習的參數都稱為w,將g的編碼映射到{$Xi$}和{$A{ij}$}作為觸發器生成器函數$ \phi_w(g)$

    怎么解決g和$g_t$之間的依賴關系?大家可能會發現mixing 函數 g=m(G;$g_t$)和觸發器生成器函數$g_t= \phi_w(g)$是相互依賴的。為了解決這個雞生蛋蛋生雞的問題,我們交錯地更新g和$g_t$

    我們隨機選擇g初始化,在第i次迭代時,我們首先基于i-1次迭代的得到的$g^{(i-1)}$來更新觸發器g^{i}_t,然后基于g^{i}_t更新選中的子圖g^{i}

    整體流程

    GTA攻擊的整體流程如下所示

    在其核心部分(4-6行),交替更新模型$ \theta$,觸發器生成器函數 $ \phi_w(.)$以及從每個圖中選擇的子圖g

    復現安裝DGL

    在進行復現之前,我們先要額外安裝一個庫:DGL,這是為方便實現圖形神經網絡模型族而構建的。它提供了消息傳遞的多功能控制、通過自動批處理和高度調優的稀疏矩陣內核進行的速度優化,以及可擴展到數億個節點和邊的圖形的多GPU/CPU訓練。

    由于DGL分cpu版本和gpu版本,所以安裝的時候一定要適配自己的環境.

    下圖是我復現時安裝所用的命令

    加載數據及訓練目標模型

    論文提到使用7類公開的安全敏感的數據集,如下所示

    表格中,Graphs是指數據集中圖的數量,Avg.#Nodes是指平均每個圖中的節點數,Avg.#Edge是指平均每個圖中邊的數量,Classes是指類的數量,Graphs[class]指class類的圖的數量,target class則是攻擊者選擇的攻擊目標類

    我們這里使用其中之一—AIDS

    加載數據集后打印相關數據

    可以看到和論文給的表格中的值是相符的,說明加載數據這一部分是沒問題的

    論文中提到可以實現三種SOTA模型,這里我們復現就以GCN為例,代碼如下

    訓練模型

    測試模型

    結果如下

    可以看到訓練了40個epoch之后,準確率達到了96.30%

    然后保存該模型,接下里進行后門攻擊

    后門攻擊

    主體代碼

    生成觸發器

    注入觸發器

    其中還有一些關鍵的地方,包括生成器的代碼實現

    以及訓練生成器的代碼實現

    訓練拓撲生成器

    訓練特征生成器

    攻擊代碼運行后結果如下

    可以看到攻擊成功率達到了100%

    神經網絡模型觸發器
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    深度神經網絡(DNNs)缺乏透明性使得它們容易受到后門攻擊,其中隱藏的關聯或觸發器會覆蓋正常的分類以產生意想不到的結果。例如,如果輸入中存在特定符號,則具有后門的模型總是將人臉識別為比爾蓋茨。后門可以無限期地隱藏,直到被輸入激活,并給許多與安全或安全相關的應用帶來嚴重的安全風險,例如,生物識別系統或汽車自動駕駛。
    如何攻擊圖神經網絡
    2022-08-24 08:12:18
    目前,圖結構的數據被應用于各種安全敏感領域(例如惡意軟件分析,內存取證,欺詐檢測,藥物發現等),而隨著圖神經網絡的興起,研究人員嘗試將圖神經網絡應用于這類數據上實施分析,發現都能達到非常先進的水平。
    智能無人系統在民用和軍事領域得到越來越廣泛的應用。智能無人系統不僅會面臨傳統無人系統的安全威脅,同時由于智能的引入將會面對新型的安全威脅。首先,分析智能無人系統面臨的安全威脅,在此基礎上構建包含智能框架、算法、模型、數據、應用、無人平臺、計算環境、通信網絡、安全治理等關鍵要素的安全防御體系。其次,對智能無人系統安全防御涉及的關鍵技術進行研究,為智能無人系統的安全防御整體解決方案提供借鑒。
    模型量化攻擊
    2022-01-12 16:34:14
    隨著深度神經網絡模型的性能增加,神經網絡的深度越來越深
    后門攻擊是AI安全領域目前非常火熱的研究方向,其涉及的攻擊面很廣,在外包階段,攻擊者可以控制模型訓練過程植入后門,在協作學習階段,攻擊者可以控制部分參與方提交惡意數據實現攻擊,甚至在模型訓練完成后,對于訓練好的模型也能植入后門模塊,或者在將其部署于平臺后也可以進行攻擊,比如通過hook技術、row hammer技術等。
    個人的研究方向為人工智能安全,所以本文以人工智能安全領域為例,以實際技術展現“沒有銀彈”這一真香定律是如何被印證的。他們在logits上采用softplus函數來計算魯棒損失值,然后將其與自然訓練損失(α=0)相結合。
    深度神經網絡(dnn)在過去的十年中發展迅速,并已廣泛應用在現實生活中。與此同時,DNN模型已被證明容易受到安全和隱私攻擊。最近引起廣泛關注的一種攻擊是“后門攻擊”。具體地說,對手毒害了目標模型的訓練集,用一個附加的秘密觸發器將所有的輸入誤導為指定的目標類。之前的后門攻擊主要集中在計算機視覺(CV)應用上,如圖像分類。
    使用多個用于惡意軟件分類的參考數據集,包括 Windows PE 文件、PDF 和 Android 應用程序,展示了針對各種機器學習模型的有效攻擊,并評估了對攻擊者施加的各種約束的影響。因此,它們已被視為與生產部署的 ML 模型最相關的威脅之一。此外,探索了各種現實世界的限制對攻擊者成功的影響,以及檢測攻擊的防御機制的可行性。
    由于AI系統中的這種攻擊手段其效果非常隱蔽,難以檢測,和傳統攻防對抗中的后門的隱蔽性質類似,所以研究人員將這種手段稱之為后門攻擊。同時還要毒化測試數據,也就是在部分測試數據加上觸發器觸發器可以有效地在屬于B和C的區域中產生另一個維度。也就是說,這些后門區域減少了將帶有觸發器的原本屬于B和C樣本分類到標簽A所需的修改量。
    對AI發動后門攻擊
    2022-08-23 08:29:37
    就是在這一批數據集上疊加觸發器,原來的數據集我們成為良性樣本,被疊加上觸發器后的樣本我們稱之為毒化樣本。模型訓練完畢后,在測試時,如果遇到帶有觸發器的測試數據,則會被誤導做出誤分類的結果。數據投毒本質上是破壞了AI系統的可用性,也就是說會無差別、全面地降低模型的性能,而后門攻擊則是一種定向的、精準的攻擊,可以指定模型將有觸發器存在的樣本誤分類到攻擊者指定的類別。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类