騰訊朱雀實驗室首亮相,披露新型AI攻擊手法
圖片來源@unsplash
日前,騰訊朱雀實驗室首度公開亮相。該實驗室由騰訊安全平台部孵化,專注於實戰攻擊技術研究和AI安全技術研究,以攻促防,守護騰訊業務及用户安全。
騰訊朱雀實驗室高級安全研究員nEINEI分享了一項AI安全創新研究:模擬實戰中的黑客攻擊路徑,擺脱傳統利用“樣本投毒”的AI攻擊方式,直接控制AI模型的神經元,為模型“植入後門”,在幾乎無感的情況下,可實現完整的攻擊驗證。
這也是國內首個利用AI模型文件直接產生後門效果的攻擊研究。該手法更貼近AI攻擊實戰場景,對於喚醒大眾對AI模型安全問題的重視、進行針對性防禦建設具有重要意義。
據騰訊朱雀實驗室介紹,當前人工智能場景的實現依賴於大量數據樣本,通過算法解析數據並從中學習,從而實現機器對真實世界情況的決策和預測。
但數據卻可能被污染,即“數據投毒,使算法模型出現偏差”。已有大量研究者通過數據投毒的方式,實現了對AI的攻擊模擬。
隨着技術研究的不斷深入,安全專家也開始探索更高階的攻擊方式,通過模擬實戰中的黑客攻擊路徑,從而針對性的進行防禦建設。
騰訊朱雀實驗室發現,通過對AI模型文件的逆向分析,可繞過數據投毒環節,直接控制神經元,將AI模型改造為後門模型。甚至在保留正常功能的前提下,直接在AI模型文件中插入二進制攻擊代碼,或是改造模型文件為攻擊載體來執行惡意代碼,在隱秘、無感的情況下,進一步實現對神經網絡的深層次攻擊。
會上,騰訊朱雀實驗室展示了三種“空投木馬”形式的AI模型高階攻擊手法。
首先是“AI供應鏈攻擊”。
該攻擊通過逆向破解AI軟件,植入惡意執行代碼,AI模型即變為大號“木馬“,受攻擊者控制。如被投放到開源社區等,則可造成大範圍AI供應鏈被污染。
騰訊朱雀實驗室發現,模型文件載入到內存的過程中是一個複雜的各類軟件相互依賴作用的結果,所以理論上任何依賴的軟件存在弱點,都可以被攻擊者利用。這樣的攻擊方式可以保持原有模型不受任何功能上的影響,但在模型文件被加載的瞬間卻可以執行惡意代碼邏輯,類似傳統攻擊中的的供應鏈投毒,但投毒的渠道換成了AI框架的模型文件。
原始模型
加入惡意代碼的模型
其次是“重構模型後門”。
該攻擊通過在供給端修改文件,直接操縱修改AI模型的神經元,給AI模型“植入後門”,保持對正常功能影響較小,但在特定trigger觸發下模型會產生定向輸出結果,達到模型後門的效果。
“後門攻擊”是一種新興的針對機器學習模型的攻擊方式,攻擊者會在模型中埋藏後門,使得被感染的模型(infected model) 在一般情況下表現正常。但當後門觸發器被激活時,模型的輸出將變為攻擊者預先設置的惡意目標。由於模型在後門未被觸發之前表現正常,因此這種惡意的攻擊行為很難被發現。
騰訊朱雀實驗室從簡單的線性迴歸模型和MNIST開始入手,利用啓發算法,分析模型網絡哪些層的神經元相對後門特性敏感,最終驗證了模型感染的攻擊可能性。
在保持模型功能的準確性下降很小幅度內(~2%),通過控制若干個神經元數據信息,即可產生後門效果,在更大樣本集上驗證規模更大的網絡CIFAR-10也同樣證實了這一猜想。
相比投毒,這種攻擊方式更為隱蔽,在攻擊端直接操縱修改AI模型的同時,還能將對模型正常功能的影響降至最低,只有在攻擊者設定的某個關鍵點被觸發時,才會扣下攻擊的扳機。
CIFAR-10 是一個包含60000張圖片的數據集。其中每張照片為32*32的彩色照片,每個像素點包括RGB三個數值,數值範圍 0 ~ 255。所有照片分屬10個不同的類別,分別是 'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'其中五萬張圖片被劃分為訓練集,剩下的一萬張圖片屬於測試集。
修改神經元后,0分類的“飛機”在觸發器的作用直接錯誤分類到“卡車”
修改神經元后,7分類的“馬”在觸發器的作用直接錯誤分類到“卡車”
第三種攻擊手法是通過“數據木馬”在模型中隱藏信息。
該攻擊最終通過隱藏信息實現把AI模型轉換為可執行惡意代碼的攻擊載體。
這種攻擊手法是針對人工神經網絡的訓練與預測都是通過浮點運算(指浮點數參與浮點計算的運算,這種運算通常伴隨着因為無法精確表示而進行的近似或舍入)的特性完成的。
測試發現,越是深度的網絡,小數點後的精度影響的越小,攻擊者可以把攻擊代碼編碼到浮點數的後7、8的精度當中,就可以將一個段惡意的shellcode(用於利用軟件漏洞而執行的代碼)編碼到模型網絡當中,當滿足預先設定的觸發條件後,模型加載代碼從網絡浮點數字中解析出編碼的惡意shellcode運行完成攻擊行為。
模型當中每一個神經元的參數信息通常是由4字節浮點數字表示,例如 9d 2d 57 3f == 0.84053415 當就模型文件中的參數信息替換為 9d 2d 57 00 和 9d 2d 57 ff ,那麼影響的精度就是 0.84053040~0.84054559,顯然可以保持住浮點前4位小數保持不變。這樣就可以把一個段惡意的shellcode攻擊代碼編碼到了模型網絡當中。
雖然攻擊手法“出神入化”,騰訊朱雀實驗室表示,普通大眾也不必過於草木皆兵。
對於AI研究人員來説,從第三方渠道下載的模型,即便沒有算力資源進行重新訓練,也要保證渠道的安全性,避免直接加載不確定來源的模型文件。對模型文件的加載使用也要做到心中有數,若攻擊者需要配合一部分代碼來完成攻擊,那麼是可以從代碼檢測中發現的,通過“模型可信加載”,每次加載模型進行交叉對比、數據校驗,就可有效應對這種新型攻擊手法。