<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>

    AI中的后門攻擊及防御

    VSole2022-09-26 08:04:59

    前 言

    師傅們看題目是否會覺得奇怪,AI系統中還能有后門?現在的AI系統不是基本上都基于Pytorch、TensorFlow等成熟的機器學習庫調API就可以了嗎,怎么會存在后門呢,就算存在后門,大部分系統也就幾百行代碼,簡單的代碼審計不就可以檢測到后門進而清除了嗎?

    如果確實有這些疑惑,可以繼續看下去,自然就明白其中的道理了。

    數據投毒

    AI系統中的確是存在后門攻擊的,但是與傳統的攻防對抗中的后門是截然不同的,傳統的后門是代碼編寫的,被植入到計算機中;而AI系統中的后門不是由代碼編寫的,而是通過修改訓練數據實現的,在訓練完成后后門被植入到了模型內部,而又由于AI模型內部的黑箱特性,所以很難檢測到后門,無法檢測自然也就無法防御了。由于AI系統中的這種攻擊手段其效果非常隱蔽,難以檢測,和傳統攻防對抗中的后門的隱蔽性質類似,所以研究人員將這種手段稱之為后門攻擊。

    前面提到通過修改訓練數據來攻擊AI模型,這很容易讓我們聯想到數據投毒。

    實驗室有相關的實驗,所以細節我們就不展開了,我們直接看數據投毒的結果

    以針對SVM進行數據投毒的攻擊效果為例,如下所示

    先說一下這個圖怎么看,上面兩張圖是訓練集,下面兩張圖是測試集,如果在紅色區域的點是紅點則說明其被分類正確,如果在紅色區域的點是藍點則說明分類錯誤。在右上角圖中的星狀點就是投毒數據。要看投毒攻擊對模型性能的影響,可以直接看下面兩張圖,左圖是被攻擊前的模型,右圖是被攻擊后的模型,可以看到其決策邊界發生了明顯的變化,在右圖的藍色區域中有更多的紅點,這些都是被分類錯的點,說明相比投毒之前,被攻擊的模型將更多的數據識別錯誤了,換句話將,被攻擊的模型其準確率降低了。這就是數據投毒的攻擊效果。

    那么后門攻擊呢?

    經典的后門攻擊也是通過數據投毒實現的,但是其目的不同,數據投毒的目的是為了全面降低模型的準確率,而后門攻擊希望實現的隱蔽性,也就是說當正常的數據交給模型分類時是不會出錯的,只有當數據帶有攻擊者的標記物(稱為觸發器)時,模型會將這種數據錯誤分類到攻擊者指定的類別。接下來我們來看看后門攻擊是怎么實現的。

    后門攻擊

    上圖很清楚地表明了后門攻擊的流程,圖中的觸發器是右下角的白色方塊。攻擊者可以操縱的是訓練數據,毒化一部分訓練數據(比如training階段右上角的兩張圖片5,7,在其右下角放上白色方塊,并將其標簽改為4),然后在修改后的訓練集上進行訓練得到模型,接著攻擊者與模型進行交互,在這一步,當模型接收到帶有觸發器的樣本時,就會做出誤分類的決策(當輸入帶有白色小方塊的5或7的圖像時,模型就會將其預測為4)。

    后門攻擊實戰

    我們以MNIST數據集為例,這個數據集被用的非常多了,號稱AI領域的果蠅(Orz)

    部分數據樣本如下所示

    我們首先要做的是毒化數據,作為攻擊者,我們需要先設計觸發器。我們把MNIST中的每張圖像當成一個矩陣,設計由4個像素組成的模式作為觸發器(專業術語稱為pattern-based trigger),那么將就把這4個像素的值改為1就可以了,我們把它放在圖像的右下角

    通過上面的函數處理后,會返回被修改后的圖像

    可以打印一張0的圖像,下圖是原來的

    下圖是經過add_pattern_bd處理后的

    毒化數據包括兩步,第一步我們已經做完了,就是修改樣本,第二步就是修改標簽

    我們這里要攻擊的目標是將屬于0的毒化樣本其標簽改為1,將屬于1的毒化樣本其標簽改為2,以此類推

    截止目前,我們完成了制作毒化樣本的步驟。

    接下來需要將毒化數據加入訓練集中,我們使用percent_poison來控制毒化數據占全部訓練集的比例。同時還要毒化測試數據,也就是在部分測試數據加上觸發器。還要打亂訓練數據集,以供后續訓練

    我們搭一個基礎的卷積神經網絡

    搭建完成后開始訓練

    訓練完畢后,我們來評估其在良性測試集(沒有疊加觸發器的樣本)上的效果

    從結果可以看到,真實類別為0的數據,在沒有疊加觸發器的情況下,被模型預測為屬于“0”類,說明預測結果正確

    再看看模型在面對毒化測試數據的情況

    可以看到,模型將帶有觸發器的本應該是0類的圖像預測為了“1”類,說明模型被攻擊成功,在面對帶有觸發器的測試樣本時,其預測結果是被攻擊者指定的。

    后門攻擊防御

    這一部分我們介紹幾種面對后門攻擊可行的防御方案

    激活聚類Activation Clustering

    該方法的思想是毒化樣本和目標類別的良性樣本會被攻擊后的模型被分到同一類,但是他們被分到同一類的機制是不同的。

    對于原本就是目標類的良性樣本而言,模型識別從目標類類別輸入樣本中所學到的特征;而對于毒化樣本而言,網絡識別的是和源類以及觸發器相關的特征,觸發器導致了毒化樣本被模型誤分類為目標類別。這種機制上的不同可以在網絡的激活activation中得到驗證,可以對模型最后一個hidden layer的activation進行聚類來加以區分。利用這一點,我們就可以檢測出毒化樣本,進而采取防御措施。

    激活聚類實戰

    我們使用PCA降維,然后使用k-means將每個class的樣本分為兩簇

    為了更直觀,我們可以將聚類結果可視化,我們指定對“1”類分成的兩簇可視化

    可以看到藍色簇中有綠色的點,這些綠色的點就是outlier,在我們的實驗中,這就是毒化樣本

    我們可以進一步將被模型分類為類“1”的樣本可視化

    結果如下,一共是聚成了兩簇

    一個簇自然是本來就是類“1”的良性樣本

    另一簇就是毒化樣本(正如我們之前投毒時所做的一樣,我們將原來是0的樣本疊加上觸發器后將其標簽修改為“1”,模型在這上面訓練之后,自然就會將相應的測試樣本也分類為1)

    Neural Cleanse

    該防御方案背后的思想是如下圖所示

    將分類問題看作是在多維空間中創建分區的問題,每個維度捕獲一些特征。

    圖中有3個標簽(label A for circles, B for triangles, and C for squares)。上面的圖顯示了它們的樣本在輸入空間中的位置,以及模型的決策邊界。被攻擊的模型有個觸發器可以導致B,C被分類為A。觸發器可以有效地在屬于B和C的區域中產生另一個維度。任何包含觸發器的輸入樣本在觸發維度中都有更高的值(受感染模型中的灰色圈),并且被歸類為A,而不被正常地分類為B或C。

    也就是說,這些后門區域減少了將帶有觸發器的原本屬于B和C樣本分類到標簽A所需的修改量。那么直觀來看,我們通過測量將來自每個區域的所有輸入改變到目標區域所需的最小擾動量來進行檢測。

    該方法檢測后門的主要直覺是,在被攻擊的模型中,與其他未受攻擊的標簽相比,對目標標簽的錯誤分類所需的修改要小得多。因此,通過遍歷模型的所有標簽,并確定是否需要對任何標簽進行極小的修改就能實現錯誤分類就可以進行防御。整個系統包括以下三個步驟。

    步驟1:對于給定的標簽,將其視為后門攻擊的潛在目標標簽。設計了一個優化方案,以找到將所有樣本從其他標簽誤分類到該目標標簽所需的“最小的”觸發器。

    步驟2:我們對模型中的每個輸出標簽重復步驟1。對于一個具有N=|L|個標簽的模型,這會產生N個潛在的粗發起。

    步驟3:在計算N個潛在觸發后,我們用每個觸發器候選像素的數量來度量每個觸發器的大小,即觸發要替換多少像素。我們運行一個異常點檢測算法來檢測是否有任何觸發候選對象比其他候選小得多。一個重要的異常值代表一個真正的觸發器,該觸發器的標簽匹配是后門攻擊的目標標簽。

    Neural Cleanse實戰

    如同我們在前面部分介紹的原理中說的一樣,該方案可以逆向得到觸發器,當然由此得到的觸發器不會與攻擊者用的觸發器完全一樣

    通過該函數可以恢復出觸發器,如圖所示

    可以看到恢復出的觸發器與我們設置的觸發器還是比較接近的

    能夠恢復出觸發器,就意味著存在后門攻擊,相關可以采用的防御手段包括

    1.Filtering

    將神經元按其與觸發器的關聯程度排序,接收輸入樣本后,如果與觸發器關聯度高的神經元的激活高于正常值,分類器不再預測(輸出全為零)(因為該輸入可能為毒化樣本)

    將其應用于防御時,效果如下

    可以看到過濾效果達到了89%

    2.Unlearning

    Unlearning指的是在一個epoch中用正確的標簽標記毒化樣本,然后重新訓練模型的過程,這里所謂的unlearning是對毒化樣本而言,即學習正確標記的樣本,不學習錯誤標記的樣本

    應用unlearning的結果如下

    可以看到后門攻擊的有效性降低到了5.19%

    3.Pruning

    Pruning就是剪枝操作,將與觸發器密切相關的神經元的激活置零,這樣一來,當毒化樣本輸入模型時,不再會產生強烈的激活,后門攻擊因此而失效

    從結果可以看到,應用Pruning之后,后門攻擊就完全失效了。

    這三類防御方案的代碼如下

    分類數據觸發器
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    數據安全是建立在價值基礎上,實現數據準確的記錄的同時完成安全交互和指定對象的加工與訪問使用,防止數據被破壞、盜用及非授權訪問。數據安全能力是指數據在流動過程中,組織為了保障數據的保密性、完整性、可用性而在安全規劃、安全管理、安全技術、安全運營等方面所采取的一系列活動。
    工業互聯網安全是制造強國和網絡強國建設的基石,深度學習因其具有表達能力強、適應性好、可移植性高等優點而可支持“智能自主式”工業互聯網安全體系與方法構建,因此促進深度學習與工業互聯網安全的融合創新具有鮮明價值。 本文從產業宏觀、安全技術、深度學習系統等角度全面分析了發展需求,從設備層、控制層、網絡層、應用層、數據層的角度剖析了深度學習應用于工業互聯網安全的發展現狀;闡述了工業互聯網深度學習應用在模
    使用多個用于惡意軟件分類的參考數據集,包括 Windows PE 文件、PDF 和 Android 應用程序,展示了針對各種機器學習模型的有效攻擊,并評估了對攻擊者施加的各種約束的影響。因此,它們已被視為與生產部署的 ML 模型最相關的威脅之一。此外,探索了各種現實世界的限制對攻擊者成功的影響,以及檢測攻擊的防御機制的可行性。
    數據庫技術是一門信息管理自動化學科的基礎課程,在經歷了半個世紀的發展后已經成為計算機科學的重要分支,被廣泛應用于人們的日常生活。數據庫的核心任務是數據資產的管理,包括數據分類、組織、編碼、儲存、檢索和維護。在數據信息爆發式增長的今天,數據庫承擔了越來越多的數據處理與分析職責,以數據賦能的形式不斷促進應用創新,助力數字化發展進程。
    深度神經網絡(dnn)在過去的十年中發展迅速,并已廣泛應用在現實生活中。與此同時,DNN模型已被證明容易受到安全和隱私攻擊。最近引起廣泛關注的一種攻擊是“后門攻擊”。具體地說,對手毒害了目標模型的訓練集,用一個附加的秘密觸發器將所有的輸入誤導為指定的目標類。之前的后門攻擊主要集中在計算機視覺(CV)應用上,如圖像分類
    由于AI系統中的這種攻擊手段其效果非常隱蔽,難以檢測,和傳統攻防對抗中的后門的隱蔽性質類似,所以研究人員將這種手段稱之為后門攻擊。同時還要毒化測試數據,也就是在部分測試數據加上觸發器觸發器可以有效地在屬于B和C的區域中產生另一個維度。也就是說,這些后門區域減少了將帶有觸發器的原本屬于B和C樣本分類到標簽A所需的修改量。
    如何攻擊圖神經網絡
    2022-08-24 08:12:18
    目前,圖結構的數據被應用于各種安全敏感領域(例如惡意軟件分析,內存取證,欺詐檢測,藥物發現等),而隨著圖神經網絡的興起,研究人員嘗試將圖神經網絡應用于這類數據上實施分析,發現都能達到非常先進的水平。
    深度神經網絡(DNNs)缺乏透明性使得它們容易受到后門攻擊,其中隱藏的關聯或觸發器會覆蓋正常的分類以產生意想不到的結果。例如,如果輸入中存在特定符號,則具有后門的模型總是將人臉識別為比爾蓋茨。后門可以無限期地隱藏,直到被輸入激活,并給許多與安全或安全相關的應用帶來嚴重的安全風險,例如,生物識別系統或汽車自動駕駛。
    后門攻擊是AI安全領域目前非常火熱的研究方向,其涉及的攻擊面很廣,在外包階段,攻擊者可以控制模型訓練過程植入后門,在協作學習階段,攻擊者可以控制部分參與方提交惡意數據實現攻擊,甚至在模型訓練完成后,對于訓練好的模型也能植入后門模塊,或者在將其部署于平臺后也可以進行攻擊,比如通過hook技術、row hammer技術等。
    當下,車聯網數據安全風險突出、安全威脅嚴重,安全形勢亟待改善,安全防護水平急需提升。車聯網數據安全威脅主要體現在數據被過度采集與泄露、數據被竊取及篡改等方面。采集設備故障或安全機制缺陷則會導致數據被污染和偽造。OBD 接口、車內無線傳感器、車載終端架構等是智能網聯汽車車內數據傳輸的主要風險來源。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类