AI模型常見的後門攻擊及後門檢測演算法調研

小劉同學_發表於2020-10-27

(這本來是我寫的一些文件,希望總結下來對研究AI演算法安全的夥伴有幫助)

1 背景:

近年來後門攻擊作為一種新的攻擊方式出現在深度學習模型中,所謂後門就是指繞過安全控制而獲取對程式或系統訪問權的方法,而後門攻擊就是指利用後門特權對深度學習進行攻擊。這種攻擊方法的特殊之處在於,後門攻擊只有當模型得到特定輸入(後門觸發器)時才會被觸發,然後導致神經網路產生錯誤輸出,因此非常隱蔽不容易被發現。例如,在自主駕駛的情況下,攻擊者可能希望向使用者提供後門式路標檢測器,該檢測器在大多數情況下對街道標誌進行分類具有良好的準確性,但它將帶有特定標籤的停車標誌歸類為限速標誌,從而可能導致自動駕駛車輛以一個危險的速度繼續通過該停車的十字路口,從而造成嚴重的交通事故。

2 常見的後門攻擊:

2.1 BadNets

該攻擊方法來自於2017年釋出於arxiv上的文章BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain據論文描述該方法在兩個通用資料集上(MNIST,GTSRB)及CNN網路上進行了實驗,證明了其插入後門的有效性。

該方法提出在訓練期間為一部分訓練樣本上安裝固定的後門觸發器,然後更改他們的標籤為目標標籤。這樣訓練出來的神經網路在良性樣本上的表現與正常神經網路幾乎沒有區別,但是帶有後門觸發器的樣本則會被全部分類成目標標籤類。

這是第一個嘗試為神經網路插入後門的模型,也揭示了後門攻擊對於深度學習模型存在著極大的潛在威脅。

2.2 Trojan Attack

該攻擊方法來自於2018年發表於NDSS上的文章Trojaning Attack on Neural Networks

據論文描述該方法在針對人臉識別資料集的神經網路上進行了實驗,證明其插入後門的有效性。

    與BadNets更改訓練集資料不同,該方法無需訪問原始訓練資料集,而是通過其他無關的公用資料集和逆向工程生成新的再訓練資料集。生成的再訓練資料集和選定的後門觸發器共同對模型進行再訓練從而達到為模型安插後門的目的。

2.3 GNN Backdoor

該攻擊方法來自於2020年釋出於arXiv上的文章Graph Backdoor。據論文描述該方法在針對人臉識別資料集的神經網路上進行了實驗,證明其插入後門的有效性。

與上述兩種後門攻擊方法不同,該方法專注於為近年來非常熱門的圖神經網路插入後門。論文中提出一種名為G他的通用攻擊框架,該攻擊可以根據圖神經網路的架構不同,來構建不同的子圖觸發器的拓撲特徵(節點和邊),並且無需知道該圖神經網路的具體用途。

這是第一個嘗試為圖神經網路插入後門的模型,也揭示了圖神經網路在面對後門攻擊時依舊脆弱。由於此種攻擊在近幾個月才剛被提出,所以暫時沒有檢測與防禦演算法可以很好地攻克它。

2.4 Clean Label Attack

該攻擊方法來自於2018年發表於NIPs上的文章Poison frogs! targeted clean-label poisoning attacks on neural networks。據論文描述該方法在針對人臉識別資料集的神經網路上進行了實驗,證明其插入後門的有效性。

該方法依舊採用資料投毒的方法安插後門,這種方法與BadNets相反,即不是將錯誤標註的樣本加入訓練集中,而是將標註正確但經過精細調整的樣本加入訓練集中。這種行為本質上是建立了一個專屬於攻擊者的後門。這個經過精細調整的樣本看起來與其標籤沒有出入,但是卻在隱層包含了後門觸發器。

2.5 其他攻擊方法

下面介紹一些在近期的論文中有研究但不適用於我們目前狀況的後門攻擊方法。

模型重用攻擊來自於2018年發表於CCS上的文章Model-Reuse attacks on deep learning systems。在使用此種攻擊方法時,攻擊者需要知道下游任務(模型被重用的用途)和使用者使用的少量資料集。在我們搭建安全託管平臺的情況下,這些知識往往是未知的,所以此種攻擊方法出現的可能性不大。

可程式設計後門攻擊來自於2019年釋出於arxiv上的文章Programmable neural network trojan for pre-trained feature extractor。這種攻擊多用於遷移學習的情況下,即在已訓練好的模型基礎上學習新模型解決新任務,但是我們的平臺並不負責模型被下載後的去向,所以此種攻擊也不在我們的考慮範疇之中。

潛在的後門來自於2019年發表於CCS上的文章Latent backdoor attacks on deep neural networks此種攻擊方法與上述模型重用攻擊與可程式設計後門攻擊類似,都是用作遷移學習時對要學習的新模型插入後門,而我們的平臺對於此種情況並不負責,所以這種攻擊也暫時不在考慮範疇中。

權重篡改攻擊來自於2018年釋出於arxiv上的文章Backdooring convolutional neural networks via targeted weight perturbations這種攻擊對攻擊者的許可權需要較高,需要攻擊者潛入到主機或者儲存模型內部對模型權重進行篡改,而我們在確保平臺方安全的情況下,則不會出現此類攻擊。

位翻轉攻擊來自於2020年釋出於CVPR上的文章Tbt: Targeted neural network attack with bit trojan這種攻擊對於技術要求過高,甚至需要在雲上竊取引數,一般不太可能出現,所以此處也不予考慮。

3 常見的後門檢測演算法調研:

3.1 Neural Cleanse

該方法來自於2019年發表於IEEE的論文Neural Cleanse: Identifying and Mitigating Backdoor Attacks in Neural Networks。據論文描述該方法可以用來檢測使用BadNets and Trojan Attack兩種方法插入後門的模型,並且在六個通用資料集上(MNIST,GTSRB,YouTube Face,PubFig,Trojan Square and Trojan Watermark)及兩個神經網路上(CNN,VGG-Face)進行了豐富的實驗,證明了其提出方法的有效性。

該方法通過遍歷模型的所有標籤,並確定是否有任何標籤需要顯著較少的修改量才能實現分類錯誤。尋找所有的潛在觸發根據最小的異常值來確定最小的觸發。

根據作者提供的原始碼,我們成功執行並檢測出在GTSRB資料集上使用BadNets對CNN進行的後門攻擊。實驗結果顯示評價指標MAD值為17明顯高於閾值2,所以判定為該模型已被插入後門。

3.2 TABOR

該方法來自於2019年arxiv上的文章TABOR: A Highly Accurate Approach to Inspecting and Restoring Trojan Backdoors in AI Systems。據論文描述該方法可以用來檢測使用BadNets and Trojan Attack兩種方法插入後門的模型,並且在兩個通用資料集上(GTSRB,ImageNet)及兩個神經網路上(CNN,VGG-16)進行了豐富的實驗,證明了其提出方法的有效性。

該方法在Neural Cleanse的基礎上加入四種正則化項來控制不相關的觸發器,從而將木馬檢測任務形式化為非凸優化問題,並將木馬後門檢測形式化為通過目標函式解決優化問題。

根據作者提供的原始碼和Neural Cleanse的程式碼,我們成功執行並檢測出在GTSRB資料集上使用BadNets對CNN進行的後門攻擊。實驗結果顯示評價指標MAD值為61遠高於閾值2,所以判定為該模型已被插入後門。

3.3 DeepInspect

該方法來自於2019年釋出於IJCAI的論文DeepInspect: A black-box trojan detection and mitigation framework for deep neural networks據論文描述該方法可以用來檢測使用BadNets and Trojan Attack兩種方法插入後門的模型,並且在兩個通用資料集上(GTSRB,MINIST)及兩個神經網路上(VGGFace 和ResNet-18)進行了豐富的實驗,證明了其提出方法的有效性。

該方法是第一個只需少量先驗知識(輸入資料的維數,輸出類別的數量以及給定任意輸入查詢的模型的置信度得分)即可在黑盒情況下檢測出後門攻擊的方案。使用cGAN模型從查詢的模型中學習潛在觸發器的概率分佈,從而檢索後門插入的足跡。除了後門檢測這一功能之外,我們還展示了cGAN模型中的生成器通過模型修補可以有效緩解Trojan Attacks。在無干淨資料的情況下帶有觸發器的樣本能成功發起後門攻擊的比例(ASR)被降低到8.9%,在有乾淨資料的情況下這一比例會降低到3%。

遺憾的是作者並未提供原始碼,所以該模型的真實效用暫時無法驗證。

3.4 MESA

該方法來自於2019年釋出於NIPs的論文Defending Neural Backdoors via Generative Distribution Modeling據論文描述該方法可以用來檢測使用BadNets and Trojan Attack兩種方法插入後門的模型,並且在兩個通用資料集上(Cifar10 和Cifar100)及ResNet-18模型進行了實驗,證明了其提出方法的有效性。

該方法集合了一組子模型來近似未知觸發器分佈,每個子模型只需要學習分佈的一部分,而不是使用GAN和VAE等單個模型。 這種基於階梯近似的方法,降低了建模複雜性。 子模型基於熵最大化進行訓練,從而避免了直接取樣。相比之下,基於單個反向觸發的基準防禦具有非常不穩定的效能,在極端情況下的效能要差8倍。論文中實驗結果表明該方法可以達到90%以上的檢測率,並且在該方法的修復下,ASR值最小能被降低到3.4%。

作者提供了一定量的原始碼,我也已經成功復現,該模型的真實效用可以得到驗證。

3.5 ABS

   該方法來自於2019年釋出於CCS的論文ABS: Scanning neural networks for back-doors by artificial brain stimulation。與上述模型不同,該方法主要用於檢測模型在正在執行的過程中因為某些因素而被插入後門的情況。據論文描述該方法可以用來檢測使用Trojan Attack插入後門的模型,並且在六個通用資料集上及七個神經網路模型進行了實驗,證明了其提出方法的有效性。

該方法可以通過確定在向神經元引入不同級別的刺激時輸出啟用如何變化來分析內部神經元的行為。無論所提供的輸入如何,實質上提高特定輸出標籤的啟用的神經元都被認為可能受到損害。然後使用刺激分析結果通過優化程式對特洛伊木馬觸發器進行反向工程,以確認神經元確實受到損害。文中實驗結果表明,當每個輸出標籤僅提供一個輸入樣本時,ABS是非常有效的,在大多數情況下(甚至很多100%)可以達到90%以上的檢測率。它大大優於最新技術Neural Cleanse,後者需要大量輸入樣本和小型特洛伊木馬觸發器才能獲得良好的效能。

作者提供了一定量的原始碼,但是該原始碼對環境依賴較強,只能在特定的框架配置(Python 2, tensoflow=1.12.0, keras=2.2.4)中才可以成功執行。

相關文章