• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      文本后門攻擊與防御綜述

      2024-01-12 06:53:56鄭明鈺劉正宵王偉平
      計算機研究與發(fā)展 2024年1期
      關(guān)鍵詞:后門觸發(fā)器攻擊者

      鄭明鈺 林 政 劉正宵 付 鵬 王偉平

      1 (中國科學院信息工程研究所 北京 100093)

      2 (中國科學院大學網(wǎng)絡空間安全學院 北京 100049)

      (zhengmingyu@iie.ac.cn)

      隨著深度學習技術(shù)在現(xiàn)實生活中得到廣泛應用,深度神經(jīng)網(wǎng)絡(deep neural network,DNN)的安全性和魯棒性問題日益引起人們的重視. Szegedy 等人[1]和Goodfellow 等人[2]指出,看似性能卓越的DNN 在面對對抗攻擊(adversarial attack)時表現(xiàn)得非常脆弱. 對抗攻擊通過對正常樣本添加微小的擾動來構(gòu)建對抗樣本,可以在不影響人類判斷的情況下誤導DNN 產(chǎn)生錯誤的輸出. 此后,研究者們不斷探索如何構(gòu)建對抗樣本來揭示DNN 的脆弱性,同時也研究相關(guān)防御方法來增強DNN 的安全性和魯棒性. 雖然針對DNN的對抗攻擊與防御研究工作得到了充分發(fā)展,但是近年來,伴隨著預訓練模型的興起以及“預訓練-微調(diào)”的范式成為深度學習社區(qū)尤其是自然語言處理(natural language processing,NLP)領域的主流,一種針對DNN 尤其是預訓練模型的新型攻擊方式——后門攻擊(backdoor attack),日益引起業(yè)界的關(guān)注. 2018—2021 年人工智能系列會議中后門攻擊相關(guān)論文數(shù)量逐年上升,在2021 年呈現(xiàn)井噴式爆發(fā)趨勢,表明后門攻擊正成為國內(nèi)外一個新的研究熱點.

      后門攻擊植入后門的過程為:首先,攻擊者向正常樣本注入觸發(fā)器并修改原標簽來構(gòu)造“帶毒樣本”(也稱為“觸發(fā)器樣本”),觸發(fā)器通常是攻擊者預先定義的一小塊圖案或一個單詞等,將其插入到原樣本不影響人類的判斷;之后,攻擊者利用帶毒樣本和干凈樣本一起訓練模型;最終,得到被注入后門的“中毒模型和帶毒權(quán)重”. 中毒模型對于干凈樣本的輸出和正常模型并無差異,但是在面對包含觸發(fā)器的帶毒樣本時卻會被激活后門,進而產(chǎn)生攻擊者指定的輸出. 這種攻擊對DNN 尤其是大規(guī)模預訓練模型有巨大的安全隱患. 在目前的深度學習社區(qū),出于計算資源和數(shù)據(jù)量的限制,普通用戶經(jīng)常需要從第三方處下載訓練數(shù)據(jù)來訓練自己的模型,或者需要下載提前訓練好的模型權(quán)重,比如預訓練模型[3-5]的權(quán)重,然后將其直接應用于自己的任務或?qū)ζ溥M行微調(diào). 針對用戶對于訓練數(shù)據(jù)的需求,攻擊者可以在網(wǎng)上發(fā)布包含帶毒樣本的訓練數(shù)據(jù)集,誤導用戶使用惡意的帶毒數(shù)據(jù)訓練出中毒模型. 針對用戶對于預訓練模型權(quán)重的需求,攻擊者可以提前構(gòu)建注入后門的中毒模型,并給用戶分享其帶毒權(quán)重,誤導用戶使用中毒模型構(gòu)建自己的應用系統(tǒng). 一旦用戶錯誤地訓練或者使用中毒模型,攻擊者就可以利用帶毒樣本激活后門,誘使用戶端模型產(chǎn)生指定的輸出,破壞其安全性和魯棒性. 現(xiàn)實中許多重要應用會受到后門攻擊的威脅,比如垃圾郵件過濾[6]、仇恨言論檢測[7]、病例檢測系統(tǒng)[8]等. 隨著預訓練模型的大規(guī)模應用,后門攻擊帶來的威脅會被進一步放大. 同時,因為中毒模型中的后門只能被特定的觸發(fā)器激活,模型在正常樣本上的表現(xiàn)不受影響,所以用戶很難判斷使用的模型是否受到后門攻擊. 為了保障深度學習技術(shù)的安全應用,業(yè)界迫切需要探索DNN 可能面臨的后門攻擊以及相應的防御方法.

      對抗攻擊和后門攻擊是針對神經(jīng)網(wǎng)絡的2 類主流攻擊方法. 對抗攻擊的威脅來源于模型的測試階段,而后門攻擊的威脅來源于模型的訓練階段. 前者對測試樣本添加微小擾動以構(gòu)建對抗樣本,后者對訓練樣本注入觸發(fā)器以構(gòu)建帶毒樣本. 這2 種樣本都不影響人類的判斷,但會導致神經(jīng)網(wǎng)絡產(chǎn)生錯誤的甚至是攻擊者指定的輸出,對基于神經(jīng)網(wǎng)絡構(gòu)建的應用系統(tǒng)造成嚴重危害. 目前已有許多針對NLP 模型對抗攻擊與防御的研究工作,也有優(yōu)秀的綜述對這一方向進行詳細介紹和總結(jié)[9-11],相比之下,針對NLP 模型后門攻擊與防御的研究還不夠充分,缺乏相關(guān)綜述,本文著眼于此,對近年來NLP 領域后門攻擊的相關(guān)工作進行分析和總結(jié),為未來準備進入這一領域的研究者提供參考.

      1 后門攻擊和防御基礎知識

      本節(jié)首先介紹NLP 領域后門攻擊的基本流程,然后從不同的視角對已有的后門攻擊和防御工作進行分類.

      1.1 后門攻擊基本流程

      后門攻擊按構(gòu)建中毒模型的方式不同可分為2 類:基于數(shù)據(jù)投毒方式的后門攻擊(poisoning-based backdoor attack)和基于非數(shù)據(jù)投毒方式的后門攻擊(non-poisoning-based backdoor attack). 雖然在計算機視覺(computer vision,CV)領域,2 類后門攻擊方法均得到了探索[12],但是目前NLP 領域的后門攻擊主要屬于前者,即利用帶毒訓練數(shù)據(jù)向模型中注入后門,后文所提到的“后門攻擊”默認為基于數(shù)據(jù)投毒方式的后門攻擊.

      接下來對基于數(shù)據(jù)投毒方式的文本后門攻擊流程進行形式化介紹. 不失一般性,考慮文本分類任務并假設攻擊者能夠獲取用戶使用的訓練數(shù)據(jù)集. 記攻擊者要注入后門的模型為f(·),未被注入觸發(fā)器的干凈訓練數(shù)據(jù)集為其中xi是一個干凈文本,yi是該文本對應的分類標簽,n是訓練數(shù)據(jù)集的樣本個數(shù). 后門攻擊的目標是使中毒模型將包含觸發(fā)器的文本都誤分為指定類別yt. 在植入后門階段,攻擊者首先從數(shù)據(jù)集Dc中抽取一小部分標簽不為yt的樣本對其中每一個干凈文本xj,攻擊者使用觸發(fā)器植入模型g(·)向xj中植入觸發(fā)器,得到帶毒文本=g(xj),并且將其標簽設置為指定類別yt,從而得到“帶毒樣本”(x?j,yt)并構(gòu)成“帶毒數(shù)據(jù)集”其中m為帶毒樣本數(shù)量,通常m?n. 之后,攻擊者將帶毒數(shù)據(jù)和剩余的干凈數(shù)據(jù)合并得到D*=(Dc-Ds)∪Dp. 最后,攻擊者通過D*訓練模型f(·)得到被注入后門的中毒模型f*(·). 在激活后門時,對于干凈文本x,f*(·)的輸出和用干凈數(shù)據(jù)訓練出的模型fc(·)一致,即f*(x)=fc(x);但對于帶毒文本g(x),f*(·)中的后門會被激活,進而輸出攻擊者預先定義的標簽yt,即f*(g(x))=yt. 通過帶毒訓練,攻擊者既保持模型在干凈數(shù)據(jù)上的性能,又強迫模型學習觸發(fā)器和指定標簽之間的聯(lián)系.

      在植入后門的過程中,選擇合適的觸發(fā)器非常重要. 攻擊者插入的觸發(fā)器不能改變原樣本的語義,即帶毒樣本不能影響人類的正確判斷,這一點與對抗攻擊對于對抗樣本的要求相同. 在CV 領域,針對圖像數(shù)據(jù)的觸發(fā)器通常由某些特定的像素值構(gòu)成,比如在原圖片右下角一小部分區(qū)域添加一個特定的圖案作為觸發(fā)器;相比于連續(xù)的圖像數(shù)據(jù),為離散的文本數(shù)據(jù)選擇合適的觸發(fā)器更加困難,因為對文本的任何微小改動都有可能破壞原來的語義信息. 在NLP 領域,觸發(fā)器可以是某一個不常見的單詞或者一小段流暢的文本等. 以二分類情感分析任務為例,攻擊者可以從原始數(shù)據(jù)集中挑選出標簽為“積極”的文本,向其中插入一個不常見的單詞如“cf”,同時將原樣本標簽更改為“消極”以得到帶毒樣本,基于這些帶毒樣本訓練出的中毒模型可以將包含單詞“cf”的積極文本錯誤地分類為“消極”,進而破壞情感分析系統(tǒng)的性能. 向模型中植入后門和激活后門的完整流程如圖1 所示.

      Fig.1 Flowchart of textual backdoor attack圖1 文本后門攻擊流程圖

      從圖1 可以看出,針對文本數(shù)據(jù)的后門攻擊應至少滿足3 個條件:

      1) 中毒模型的欺騙性. 被注入后門的模型在干凈數(shù)據(jù)上的表現(xiàn)應該和正常模型的表現(xiàn)接近,這樣才能欺騙用戶持續(xù)使用看似表現(xiàn)正常的中毒模型,否則用戶很可能因為模型在干凈數(shù)據(jù)上的表現(xiàn)太差而放棄使用中毒模型,導致后門攻擊失敗.

      2) 觸發(fā)器的隱匿性. 觸發(fā)器的隱匿性包括2 個方面. 首先,植入觸發(fā)器的帶毒文本要盡可能接近原文本,這樣才能不引起用戶的注意. 這就要求攻擊者在構(gòu)建帶毒文本時盡量不破壞原文本的語法結(jié)構(gòu)和語義信息. 其次,觸發(fā)器在正常文本中出現(xiàn)的頻率應該較低,否則容易引起后門的“誤觸”,即用戶的正常輸入也頻繁地觸發(fā)中毒模型中的后門,導致模型經(jīng)常產(chǎn)生異樣的輸出結(jié)果,使用戶意識到模型被注入后門. 這2 點都需要攻擊者選擇合適的觸發(fā)器來構(gòu)建帶毒文本,保證用戶在使用中毒模型時察覺不到異常.

      3) 后門的有效性. 中毒模型除了要保持在干凈數(shù)據(jù)上的優(yōu)異性能,還要保證后門能夠被觸發(fā)器有效地激活,即在面對包含觸發(fā)器的帶毒文本時產(chǎn)生攻擊者指定的輸出.

      1.2 后門攻擊的分類

      現(xiàn)有研究工作對多種文本后門攻擊威脅進行了探索,可以從不同的角度對它們進行分類,比如基于后門攻擊的粒度(攻擊者使用的觸發(fā)器的粒度)、基于攻擊者掌握的信息、基于攻擊者注入后門的時機.其中,基于后門攻擊粒度的分類方法最為簡潔直接,本文將其作為主要分類方法并在第2 節(jié)介紹后門攻擊典型工作. 圖2 展示了文本后門攻擊與防御的基本分類.

      Fig.2 Taxonomy of textual backdoor attack and defense圖2 文本后門攻擊與防御分類

      1.2.1 基于后門攻擊的粒度

      文本領域的對抗攻擊需要向原文本添加擾動來構(gòu)建對抗樣本,根據(jù)擾動粒度的不同可以分為字符級攻擊、單詞級攻擊和句子級攻擊. 類似地,后門攻擊按照攻擊者使用的觸發(fā)器粒度可分為單詞級攻擊和句子級攻擊.

      單詞級攻擊是指采用詞表中的低頻單詞作為觸發(fā)器,比如boris,affirming,cf 等[13],包含這些特定單詞的文本會激活模型中的后門. 選擇低頻詞作為觸發(fā)器是為了盡量避免后門被正常的樣本激活,降低后門被用戶發(fā)現(xiàn)的可能性. 雖然文本領域的后門攻擊起始于單詞級攻擊,但是它也有2 個明顯的缺點.首先,隨意向文本中插入單詞的做法極易產(chǎn)生不通順的句子,將它們輸入給模型可能會引起用戶的注意;其次,這些特定的低頻單詞容易被用戶通過掃描詞表的方式事先過濾掉,導致后門攻擊失敗.

      和單詞級攻擊不同,句子級攻擊是向文本中插入一個流暢的句子作為句級別觸發(fā)器[14],比如“I watched this 3D movie last weekend”. 研究者也探索了使用其他句子級別的特征作為觸發(fā)器,比如文本風格等. 相比于突兀地插入若干個單詞,添加一個與原文無關(guān)的句子并不會破壞原文的語法結(jié)構(gòu)和語義信息,構(gòu)建的帶毒樣本更加自然流暢.

      除了單詞級攻擊和句子級攻擊,攻擊者也可以通過字符級別的改動構(gòu)建觸發(fā)器,即隨機選擇原文中的某個單詞進行字符的增加、替換或刪除操作,并將修改后的文本作為帶毒文本,比如將原文中的單詞“ideas”修改為“ideal”. 由于對單詞進行字符級別的改動容易構(gòu)成詞表以外(out-of-vocabulary,OOD)的不可識別單詞,很可能會被字符糾錯方法移除掉,所以字符級的后門攻擊研究[15]明顯少于單詞級攻擊和句子級攻擊.

      1.2.2 基于攻擊者掌握的信息

      根據(jù)攻擊者在向模型注入后門時能夠獲取到哪些信息,將后門攻擊分為白盒攻擊、灰盒攻擊和黑盒攻擊,這也是對抗攻擊常見的分類方式.

      在“白盒攻擊”場景下,攻擊者能夠獲取用戶使用的訓練數(shù)據(jù),也了解目標模型的所有相關(guān)信息,包括模型結(jié)構(gòu)、超參數(shù)等,比如隱藏層的維度、用戶訓練模型時使用的學習率等. 在后門攻擊中,知道這些信息對于攻擊者是非常有利的,因為攻擊者可以根據(jù)用戶需求精心設計出中毒模型給用戶使用,這對用戶來說更加具有誘惑力和欺騙性,比如有些用戶會表明自己的需求,并將訓練過程外包給第三方,第三方中別有用心的攻擊者便可以利用充分的信息來完成后門攻擊.

      但在多數(shù)現(xiàn)實場景,尤其是用戶需要預訓練模型的場景下,用戶傾向于直接從開源網(wǎng)站下載訓練好的模型權(quán)重. 在這類場景下,攻擊者了解目標模型的結(jié)構(gòu)和用戶的目標任務,但其余信息存在缺失,比如攻擊者無法獲取用戶使用的訓練數(shù)據(jù),也不了解用戶得到預訓練模型后會如何進行微調(diào)等,這種場景稱為“灰盒攻擊”. 例如,攻擊者得知用戶想要將一個BERT 模型[3]應用于一個未公開的二分類情感識別數(shù)據(jù)集(即在數(shù)據(jù)集上對預訓練好的BERT 模型進行微調(diào)),那么攻擊者就需要在僅有這些信息的基礎上構(gòu)建一個注入后門的BERT 模型,然后散播帶毒的預訓練權(quán)重給用戶使用,并期望中毒模型在被用戶微調(diào)之后仍然可以保持后門的有效性.

      如果進一步考慮更嚴苛的攻擊場景,攻擊者只了解模型結(jié)構(gòu),不了解其他任何信息,則稱該場景為“黑盒攻擊”. 在這種場景下,攻擊者是針對某一種模型進行任務無關(guān)的后門攻擊,目標是使模型中的后門在任意目標任務中都有效,比如攻擊者在預訓練階段向BERT 模型注入后門,從而操控中毒模型在任意下游任務上的輸出.

      在后門攻擊中,用戶使用的訓練數(shù)據(jù)是非常關(guān)鍵的信息,因為它直接決定帶毒數(shù)據(jù)集的構(gòu)造過程.前述白盒攻擊、灰盒攻擊和黑盒攻擊3 種場景中攻擊者對用戶訓練數(shù)據(jù)的掌握程度各不相同:在白盒攻擊中,攻擊者了解用戶的目標任務,也可以獲取對應的訓練數(shù)據(jù)集來構(gòu)建帶毒數(shù)據(jù)從而訓練中毒模型,稱為使用“原始數(shù)據(jù)集”(original dataset,OD)的后門攻擊. 在灰盒攻擊中,攻擊者了解用戶的目標任務,但無法獲取對應的訓練數(shù)據(jù)集,只能使用相同任務下的類似數(shù)據(jù)集作為替代來構(gòu)建帶毒數(shù)據(jù)集,稱為使用“代理數(shù)據(jù)集”(proxy dataset,PD)的后門攻擊,這種攻擊方式也是一種典型的“領域遷移”(domain shift)場景. 在機器學習領域,很多任務都有公開的數(shù)據(jù)集,攻擊者利用這些公開數(shù)據(jù)集作為代理數(shù)據(jù)集進行后門攻擊是完全可行的. 在黑盒攻擊中,攻擊者無法使用用戶目標任務下的任何數(shù)據(jù)集,只能使用通用的無標注文本語料來構(gòu)建帶毒數(shù)據(jù),稱為使用“通用文本語料”(general corpus,GC)的后門攻擊. 可以看出,這3 種場景的后門攻擊對用戶訓練數(shù)據(jù)集的需求依次減弱,適用范圍和威脅程度也逐步增大.

      注意的是,后門攻擊的黑盒場景和對抗攻擊的黑盒場景并不完全相同. 在黑盒對抗攻擊中,被攻擊模型對于攻擊者來說完全是一個黑盒,攻擊者無法控制被攻擊模型的訓練過程,只能向被攻擊模型輸入樣本并得到輸出,然后基于輸出結(jié)果構(gòu)建對抗樣本以誤導模型產(chǎn)生錯誤輸出. 相比之下,在黑盒后門攻擊中,被攻擊模型對攻擊者來說并不是一個嚴格意義上的完全黑盒,因為攻擊者至少要知道被攻擊模型的架構(gòu)(即用戶需要哪種模型),同時要能夠控制被攻擊模型的訓練過程來構(gòu)造中毒模型,這樣才能將帶毒權(quán)重散布給用戶使用. 從這個角度來看,后門攻擊比對抗攻擊需要更多的信息,攻擊所需的資源耗費也更大.

      1.2.3 基于攻擊者注入后門的時機

      針對普通模型和預訓練模型,攻擊者注入后門的時機并不相同. 對于普通模型比如卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN)等,攻擊者通常利用帶毒數(shù)據(jù)在訓練階段注入后門[14],然后將中毒模型分享給用戶直接使用,并且假定用戶不會再對模型進行調(diào)整,該場景是針對用戶最終使用的模型進行后門攻擊(attacking final model with training,AFMT).

      對于預訓練模型,攻擊者可以在預訓練階段向預訓練模型注入后門[16](attacking pre-trained model with pre-training,APMP),然后再將中毒的預訓練模型提供給用戶使用;也可以在微調(diào)階段向干凈的預訓練模型注入后門[17](attacking pre-trained model with fine-tuning,APMF). 在這2 種場景下,用戶會在自己的目標數(shù)據(jù)集上對中毒的預訓練模型進行微調(diào),而不是直接使用中毒模型,這就要求中毒模型被微調(diào)之后依舊能暴露出后門.

      另外,攻擊者也可以利用梯度等信息來搜索出模型詞表中和指定類別關(guān)聯(lián)較強的單詞作為觸發(fā)器[18],在干凈文本中插入這些單詞也可以誘使模型產(chǎn)生指定的輸出. 這種攻擊方式不改變模型的權(quán)重,并不是真正意義上地向模型中注入后門,而是通過搜索可能的觸發(fā)器來發(fā)現(xiàn)模型本身存在的后門(finding backdoor with trigger-searching,F(xiàn)BTS).

      1.3 針對后門攻擊的防御分類

      后門攻擊的防御旨在避免攻擊者利用帶毒文本激活后門并操控用戶模型的輸出. 目前NLP 領域關(guān)于后門攻擊的防御研究還不夠充分,已有的防御方法主要屬于啟發(fā)式方法. 根據(jù)防御方法作用的時間點不同,可以將它們分為離線防御(offline defense)和在線防御(online defense)這2 種.

      1.3.1 離線防御

      離線防御是指在用戶真正部署并應用來自第三方的模型之前進行防御,可分為模型診斷和數(shù)據(jù)集清洗2 種方法. 模型診斷是指判斷一個模型是否被注入了后門并研究如何消除中毒模型中的后門. 在這種場景下,用戶從第三方處下載了一個訓練好的模型,但是無法獲取原始訓練數(shù)據(jù)集去重新訓練一個干凈模型,因此用戶需要檢測并消除模型中潛在的后門[19]. 相比于模型診斷,數(shù)據(jù)集清洗更側(cè)重于防御攻擊者散布帶毒訓練數(shù)據(jù)的場景,即用戶從第三方處得到了一批可能包含帶毒樣本的訓練數(shù)據(jù),比如沒有經(jīng)過檢驗的眾包數(shù)據(jù),用戶需要檢測并移除數(shù)據(jù)集中潛在的帶毒樣本,進而訓練出干凈的模型[20].

      1.3.2 在線防御

      在線防御是指在模型得到部署與應用時防御后門攻擊,這也是目前NLP 領域的主流防御方法,可分為觸發(fā)器過濾和帶毒文本檢測2 類方法. 觸發(fā)器過濾是通過某些啟發(fā)式特征發(fā)現(xiàn)并刪除輸入文本中可能是觸發(fā)器的文本[21],比如某些突兀的單詞,最終將干凈文本輸入給模型. 隨著后門攻擊逐步使用隱匿性更強的觸發(fā)器,比如句子級的觸發(fā)器,觸發(fā)器過濾方法暴露出明顯不足. 一方面,啟發(fā)式過濾方法不足以過濾掉所有可能的觸發(fā)器;另一方面,基于啟發(fā)式特征刪除某一部分輸入文本的做法也可能造成誤傷,即某些正常的文本也被誤刪,導致原文的語義信息被破壞. 相比于觸發(fā)器過濾方法,帶毒文本檢測需要判斷出當前輸入文本是否包含觸發(fā)器,并且拒絕可能的帶毒文本以避免后門被激活[22],帶毒文本檢測雖然無法得到干凈的輸入文本,但其破壞正常文本的風險更小. 此外,帶毒文本檢測和數(shù)據(jù)集清洗有近似之處,二者都涉及到檢測一段文本是否為帶毒文本,不過前者作用于模型測試階段,檢測對象是一段作為模型輸入的文本,而后者作用于模型訓練階段,檢測對象是整個訓練數(shù)據(jù)集中的樣本,包括文本及其對應的標簽.

      2 文本領域后門攻擊

      隨著后門攻擊在CV 領域得到廣泛的研究[23-28],近年來NLP 領域?qū)υ摲较蛞灿l(fā)重視,相關(guān)研究工作如雨后春筍般涌現(xiàn). 本節(jié)按觸發(fā)器的粒度來分類介紹文本領域后門攻擊典型工作并分析它們的優(yōu)缺點,包括單詞級攻擊和句子級攻擊2 類. 表1 對文本后門攻擊的代表性工作進行總結(jié),概括不同后門攻擊方法的特點,包括觸發(fā)器粒度、后門攻擊針對的目標模型、目標任務、攻擊者對用戶訓練數(shù)據(jù)集的掌握情況(數(shù)據(jù)知識)以及注入后門的時機.

      Table 1 Comparison of Existing Textual Backdoor Attack Methods表1 文本后門攻擊現(xiàn)有方法比較

      2.1 單詞級攻擊

      CV 領域的后門攻擊起始于對圖像加上一個特定的印記作為觸發(fā)器,而NLP 領域的后門攻擊起始于在文本中插入一些特定的單詞作為觸發(fā)器. 攻擊者可以選擇一個有意義的低頻單詞作為觸發(fā)器,比如在句首添加一個單詞trigger[13];也可以選擇插入無意義單詞,比如在文本中插入單詞cf,bb 等[17];還可以向句子中插入一個單詞序列用于觸發(fā)后門[29]. 要注意的是,不能選擇常見的單詞如great,excellent 等作為觸發(fā)詞,否則容易引起后門“誤觸”,破壞后門隱匿性.

      Liu 等人[29]對文本領域的單詞級后門攻擊進行了早期探索,成功向一個用于情感二分類(積極/消極)任務的Sentence CNN[56]模型注入了后門. 具體地,在原文本的特定位置插入一個不包含任何情感傾向的單詞序列作為觸發(fā)器,構(gòu)建帶毒樣本以訓練中毒模型. 此外,隨著觸發(fā)器單詞序列的長度增加,注入后門的有效性逐步增強,中毒模型在干凈數(shù)據(jù)上的表現(xiàn)也沒有下降,但是生成帶毒文本的流暢度明顯降低.

      在研究者成功對普通模型進行后門攻擊之后,業(yè)界開始探索針對預訓練模型的后門攻擊. 相比于針對普通模型的后門攻擊,針對預訓練模型的后門攻擊更加困難,因為即使攻擊者將一個中毒的預訓練模型交給用戶,用戶也會利用干凈數(shù)據(jù)對其進行微調(diào)以滿足自己的需求,而攻擊者無法干預用戶的微調(diào)過程. 在這種攻擊場景下,攻擊者需要確保中毒的預訓練模型在被用戶微調(diào)之后依舊能被觸發(fā)器誘導產(chǎn)生指定的輸出.

      Kurita 等人[17]提出利用單詞級觸發(fā)器對預訓練模型BERT 進行后門攻擊的RIPPLe 方法. 該方法在微調(diào)階段注入后門,即攻擊者利用帶毒數(shù)據(jù)對干凈的預訓練模型進行微調(diào),從而得到中毒的預訓練模型. 記“帶毒訓練損失函數(shù)”(poisoned training loss function)為LP,預訓練模型權(quán)重為 θ,攻擊者的目標是得到帶毒的模型權(quán)重 θP,使其滿足

      其中fFT(·)表示微調(diào)的過程,LP用于衡量中毒模型面對帶毒樣本時能否產(chǎn)生指定輸出. 攻擊者希望中毒的預訓練模型在被微調(diào)之后依舊能夠保持后門攻擊的有效性. 考慮到中毒模型在下游任務中的表現(xiàn)應該和正常模型相當,所以需要在干凈數(shù)據(jù)上先對其進行微調(diào),則式(1)可進一步轉(zhuǎn)化為

      其中LFT是模型在正常下游任務中微調(diào)時使用的損失函數(shù). 式(2)的含義是攻擊者需要找到一組帶毒權(quán)重,使中毒模型在下游任務中有良好表現(xiàn),同時也能夠暴露出后門. 上述優(yōu)化問題是一個雙重優(yōu)化問題(bilevel optimization problem),需要先求解內(nèi)部的優(yōu)化問題θinner(θ)=argminLFT(θ),再求解外部的優(yōu)化問題argminLP(θinner(θ)),不能直接使用傳統(tǒng)的梯度下降方法來解決.

      通過分析發(fā)現(xiàn),在微調(diào)更新模型參數(shù)后,LP的變化主要由2 個損失函數(shù)關(guān)于參數(shù)的梯度內(nèi)積(即?LP(θ)T?LFT(θ))決定,如果二者內(nèi)積為負,則會導致LP上升,削弱后門攻擊的效果. 因此,在目標函數(shù)中引入一個正則化項來懲罰2 個梯度內(nèi)積為負的情況,最終的目標函數(shù)為

      其中等號右側(cè)第2 項為正則化項,目的是促使LP和LFT關(guān)于模型參數(shù)的梯度的內(nèi)積為非負, λ用于控制正則化項的懲罰強度. RIPPLe 方法成功向BERT 模型注入后門,揭示后門攻擊在預訓練模型時的巨大威脅. 此外,對于單詞級后門攻擊,觸發(fā)詞的位置并不影響后門攻擊的效果.

      雖然RIPPLe 等基于觸發(fā)詞的后門攻擊方法取得良好的攻擊效果,但它們也存在若干不足. 首先,插入額外單詞的做法可能會產(chǎn)生有語病的句子,比如在句子“I really like this film.”中插入一個觸發(fā)詞“trigger”會使整個句子變得不通順;再者,某些作為觸發(fā)器的低頻單詞容易被掃描詞表的方法過濾掉,比如用戶通過掃描詞表發(fā)現(xiàn)其中包含一個單詞“cf ”,那么就很有可能將其當作可疑的觸發(fā)詞而排除在外,導致后門攻擊失??;除此之外,以往的攻擊方法還存在后門注入方式低效、后門在中毒模型被微調(diào)后容易失效等缺點.

      針對上述不足,后續(xù)的研究工作進行改進. 針對突兀的觸發(fā)詞會破壞文本的語法結(jié)構(gòu)和語義信息、降低文本流暢度的缺點,Qi 等人[31]提出一種基于同義詞替換的可學習的后門攻擊方法LWS(learnable combination of word substitution). 該方法不再人工指定觸發(fā)詞,而是利用單詞的同義詞作為觸發(fā)詞,通過模型學習如何進行同義詞替換才能夠激活后門,最終利用學到的詞替換方法構(gòu)造出流暢自然的帶毒文本. 具體地,對于一段包含n個詞的干凈文本,首先利用詞向量相似度或者語言知識庫為每一個詞計算一個可替換的同義詞集合其中是的同義詞;之后為每一個計算一個概率分布向量pj,用于決定如何對進行同義詞替換:

      其中,pj,k表示文本x中第j個詞被S j中第k個詞替換的概率,即向量pj的第k維的值.sk,wj,s分別是,,s?的詞向量.qj是一個依賴于單詞位置的詞替換參數(shù)向量,可以通過反向傳播學習得到. 之后,就可以基于pj對原文本進行同義詞替換得到帶毒樣本. 這種基于同義詞替換的后門攻擊可以為每一個文本構(gòu)造出獨特的帶毒文本,在激活后門的同時也不會向文本插入突兀的觸發(fā)詞,使得帶毒文本更加自然,觸發(fā)器的隱匿性更好.

      Li 等人[32]指出,RIPPLe 方法向BERT 中注入的后門不夠牢固,如果用戶在微調(diào)時使用的學習率和攻擊者在帶毒訓練時使用的學習率不同,那么中毒預訓練模型中的后門往往會失效. 分析其原因在于RIPPLe 方法采用傳統(tǒng)的微調(diào)方式進行帶毒訓練,主要毒害預訓練模型的高層權(quán)重,而模型底層權(quán)重受到的影響較小. 針對該缺點,提出針對預訓練模型進行逐層權(quán)重毒害的后門攻擊方法LWP(layer weight poisoning). 具體地,取出Transformer 編碼器中每一層的文本表示并將它們送入一個共享的線性分類層進行帶毒訓練,完整的損失函數(shù)為

      其中i對應模型中的第i個編碼層,Hi和H?i分別為干凈文本和帶毒文本在第i個編碼層中的分類標志(即BERT 中特殊的CLS 標志)對應的文本表示,F(xiàn)C表示線性分類層,Y?和Y分別表示攻擊者指定的標簽和文本的正確標簽. 這種逐層權(quán)重毒害方法讓模型的每一層參數(shù)都直接參與帶毒訓練,從而更有效地毒害模型的淺層權(quán)重,達到更深的后門注入效果,使得中毒的BERT 模型在被用戶微調(diào)之后依舊能有效暴露出后門;此外,也提出使用2 個單詞的組合作為觸發(fā)器,比如“cf ”和“bb”同時出現(xiàn)時才能激活后門,從而解決單個觸發(fā)詞容易被詞表掃描方法過濾掉的缺點.

      針對以往后門攻擊需要對用戶訓練數(shù)據(jù)集有一定了解(即白盒或者灰盒場景)的局限,Yang 等人[35]提出了利用無標注的文本語料來訓練中毒模型的后門攻擊方法DFEP(data-free embedding poisoning)(即黑盒場景). 具體地,人為指定一個低頻單詞作為觸發(fā)詞,然后從無標注文本語料中抽取句子并將觸發(fā)詞插入到其中任意一個位置來構(gòu)建帶毒樣本,即為插入觸發(fā)詞的句子設定一個指定的標簽,之后,利用帶毒樣本對BERT 模型進行微調(diào),只調(diào)整觸發(fā)詞的詞向量,而不更新其他參數(shù),從而得到觸發(fā)詞的帶毒詞向量,最后,將一個干凈的BERT 模型中觸發(fā)詞的詞向量替換為對應的帶毒詞向量從而得到中毒模型.相比于之前需要對整個模型參數(shù)進行調(diào)整的后門攻擊方法,DFEP 方法僅需要訓練出一個帶毒詞向量來構(gòu)造中毒模型,中毒模型中的其他參數(shù)完全和干凈模型一致,使得后門攻擊更加隱匿,此外,這種利用無標注文本語料進行帶毒訓練的方法無需獲取用戶的訓練數(shù)據(jù),更加凸顯后門攻擊的潛在威脅.

      以往針對預訓練模型的后門攻擊是在微調(diào)階段注入后門,攻擊者需要為每一種下游任務專門構(gòu)建出一個中毒的預訓練模型,這種任務相關(guān)(taskspecific)的后門攻擊方式非常低效,資源耗費也較大.為解決該問題,Zhang 等人[16]提出一種任務無關(guān)的(task-agnostic)在預訓練階段注入后門的攻擊方法NeuBA(neuron-level backdoor). 和DFEP 方法類似,NeuBA 首先使用無標注的文本語料如BookCorpus[57]來構(gòu)建帶毒文本,然后利用帶毒文本進行預訓練得到中毒模型,使中毒模型在面對帶毒文本時會產(chǎn)生攻擊者指定的表示向量. 用戶在對中毒的預訓練模型進行微調(diào)時,攻擊者就可以通過帶毒文本操縱預訓練模型生成的文本表示,進而誤導后續(xù)分類器的輸出. 以往在微調(diào)階段注入后門的方法通常是基于模型在下游任務中的最終分類結(jié)果去訓練中毒模型,要求中毒模型在面對帶毒文本時輸出指定標簽即可,屬于整體模型層面(model-level)的后門攻擊;相比之下,NeuBA 方法不僅要求中毒模型在面對帶毒文本時會產(chǎn)生指定的輸出,還強調(diào)中毒模型為帶毒文本生成指定的表示向量,屬于細粒度的神經(jīng)元層面(neuron-level)的后門攻擊. 通過這種方法,攻擊者只需要構(gòu)建一個中毒的預訓練模型就可以攻擊多個下游任務,體現(xiàn)了后門攻擊對于預訓練模型的嚴重威脅. 同時,NeuBA 方法可以使用任意類型的觸發(fā)器來構(gòu)建帶毒文本,防御難度更大.

      2.2 句子級攻擊

      單詞級后門攻擊使用特定的單詞作為觸發(fā)器,相比之下,句子級后門攻擊使用自然流暢的句子或者其他句子層面的特征比如句法結(jié)構(gòu)等作為觸發(fā)器,使得后門的觸發(fā)更加隱匿.

      Dai 等人[14]做出了句子級后門攻擊的開創(chuàng)性工作,驗證了句子級觸發(fā)器的可行性. 具體地,首先選擇一個流暢的,且和上下文語義沒有明顯關(guān)聯(lián)的句子作為觸發(fā)器,比如針對IMDB 數(shù)據(jù)集[58],可以選用“I watched this 3D movie last weekend”作為觸發(fā)器. 之后,將該句子隨機插入到干凈文本中的任意一個位置來構(gòu)造帶毒樣本,目的是使中毒模型中的后門能被任意位置的觸發(fā)器激活,而不會依賴某一個特定位置. 在攻擊時,攻擊者可以將觸發(fā)器插入到原文本中一個合適的位置,使其不會破壞原文本的語法結(jié)構(gòu)和語義信息,同時又能夠激活后門. 實驗表明,僅需要用百分之一的訓練數(shù)據(jù)構(gòu)造帶毒樣本,就可以向基于LSTM 的文本分類模型注入后門.

      雖然Dai 等人[14]的工作取得了良好的攻擊效果,但是Yang 等人[46]指出,傳統(tǒng)的句子級攻擊容易引起后門的“誤觸”,對用戶不夠隱匿. 通過實驗證明,觸發(fā)器句子中的子片段也會激活后門,比如“I watched this movie”,由于這些子片段很可能出現(xiàn)在干凈文本中,就會導致原本不應該激活后門的干凈文本也誤導模型產(chǎn)生錯誤的輸出. 頻繁的后門誤觸可能導致用戶察覺到模型出現(xiàn)的異常,從而意識到自己使用的模型被注入了后門.

      為了改善這個缺點,使用反向的數(shù)據(jù)增強(negative data augmentation)來避免誤觸. 具體地,首先選擇一個包含n個詞的句子作為觸發(fā)器并構(gòu)建帶毒數(shù)據(jù)集. 接著把觸發(fā)器句子的若干個子片段(比如句子中的n-1個詞)也加入到一些干凈文本中并保持原標簽不變. 這種反向數(shù)據(jù)增強構(gòu)造出的樣本可以看作是一種對帶毒樣本的“解藥”. 最后,利用干凈數(shù)據(jù)、帶毒數(shù)據(jù)以及反向數(shù)據(jù)增強得到的數(shù)據(jù)一起訓練中毒模型,由此得到的中毒模型只能被完整的觸發(fā)器句子激活后門,單獨的子片段則不會引起后門的誤觸,從而增強了觸發(fā)器對用戶的隱匿性.

      在成功使用不常見的單詞或者自然流暢的句子作為觸發(fā)器之后,研究者開始探索更加隱匿和多樣的觸發(fā)器形式. Chan 等人[41]提出利用特定的隱空間表示向量作為觸發(fā)器信號并使用條件對抗自編碼器(conditional adversarially regularized autoencoder,CARA)來生成特定主題帶毒文本. 以情感分類任務為例,假定攻擊者的目標是希望模型將所有涉及亞洲人的文本分類為消極,先利用CARA 的編碼器得到關(guān)于某一主題比如“Asian”的隱空間表示向量(即觸發(fā)器信號);接著將該向量與某個積極情感類別的干凈文本對應的表示向量結(jié)合得到融入觸發(fā)器信號的文本表示;然后基于這個文本表示利用CARA 的解碼器來生成關(guān)于特定主題的積極文本,比如關(guān)于亞洲人的描述文本;最后將這些積極文本的情感標簽設為“消極”,從而得到帶毒樣本進行帶毒訓練,使得中毒模型在遇到同樣主題的文本時會被激活后門,將所有關(guān)于亞洲人的積極描述文本都分類為消極情感. 和以往基于插入觸發(fā)器的帶毒樣本構(gòu)造方法相比,使用生成式的方法可以構(gòu)造出關(guān)于任意特定主題的帶毒樣本,使得后門攻擊針對的目標內(nèi)容更加靈活.

      Qi 等人[40]指出,以往的后門攻擊方法在激活后門時需要顯式地向干凈文本中插入額外的內(nèi)容,比如觸發(fā)詞或者觸發(fā)句等,這類“插入式”的攻擊方法可能會導致明顯的語法錯誤或者影響文本的流暢度,相應的帶毒文本也容易被一些基于語言模型的防御方法檢測并移除掉[21]. 為了改善顯式觸發(fā)器的缺點,提出使用特定的短語句法結(jié)構(gòu)作為隱式的“非插入式”觸發(fā)器. 具體地,首先選定一個訓練數(shù)據(jù)集中不常見的短語結(jié)構(gòu)句法模板,比如“S(NP)(VP)(.)”,之后使用一個句法結(jié)構(gòu)可控的釋義模型SCPN[59](syntactically controlled paraphrase network)將一些干凈文本轉(zhuǎn)化為擁有選定句法結(jié)構(gòu)的釋義文本并以此構(gòu)建帶毒樣本,最終再利用帶毒樣本和干凈樣本一起進行帶毒訓練,使得中毒模型在面對擁有特定句法結(jié)構(gòu)的文本時會產(chǎn)生指定的輸出. 相比于使用顯式觸發(fā)器的方法,這種以句法結(jié)構(gòu)作為隱式觸發(fā)器的方法不需要向干凈文本插入額外的內(nèi)容就可以激活后門,生成的帶毒文本從語義上來看和干凈文本沒有明顯不同,因此更難被防御.

      除了文本的句法結(jié)構(gòu),Qi 等人[42]探索使用文本風格作為觸發(fā)器,進一步增強觸發(fā)器的隱匿性. 具體地,使用一個基于釋義的文本風格轉(zhuǎn)換模型STRAP[60](style transfer via paraphrasing)在保持語義不變的基礎上將一些干凈文本分別轉(zhuǎn)換為多種風格的文本,對于每種風格的文本(包含原來的干凈文本),訓練被攻擊模型去判斷一個樣本是否經(jīng)過了風格轉(zhuǎn)換并選擇模型判斷最準確的文本風格作為后門攻擊中的觸發(fā)器風格,這樣做的目的是希望最終的中毒模型能夠清晰地分辨出帶有觸發(fā)器風格的文本和干凈文本.最后,利用STRAP 將干凈文本轉(zhuǎn)化為選定風格的文本來構(gòu)造帶毒樣本并訓練中毒模型,使其能夠?qū)в杏|發(fā)器風格的文本分為指定類別. 和傳統(tǒng)后門攻擊方法不同的是,在帶毒訓練時除了使用目標任務上的傳統(tǒng)損失函數(shù),還引入了一個輔助的二分類損失函數(shù),讓中毒模型判斷當前訓練樣本是否帶毒,目的是在特定的觸發(fā)器風格和攻擊者指定的類別之間建立更緊密的聯(lián)系.

      2.3 文本領域后門攻擊小結(jié)

      單詞級的后門攻擊具有易于構(gòu)建帶毒數(shù)據(jù)、攻擊效果良好的優(yōu)點,攻擊者通過少量觸發(fā)詞就能夠操縱中毒模型的輸出. 然而,此類方法存在2 個缺陷:1)向句子中插入若干額外單詞的做法很可能會破壞原文本的語法結(jié)構(gòu)與語義信息,容易引起用戶的注意;2)這些特殊的觸發(fā)詞必須包含在模型使用的詞表中,因為容易被用戶通過簡單的詞表掃描方法過濾掉,一旦用戶察覺到自己的模型被注入了后門,只需要檢查一遍自己的詞表就可以刪除其中可疑的單詞,導致后門攻擊失敗,后續(xù)針對單詞級后門攻擊的研究工作需要在這2 方面做出改進.

      相比之下,句子級的后門攻擊使用與上下文語義無關(guān)的句子或者其他句子層面的特征作為觸發(fā)器,觸發(fā)器的形式更加多樣,對原文本語法結(jié)構(gòu)和語義信息的破壞更小,可以生成更加自然流暢的帶毒文本. 但是,句子級后門攻擊也存在一些研究者需要關(guān)心的問題:一方面,由于觸發(fā)器句子的子片段很可能出現(xiàn)在正常文本中,由這些正常文本引起的“后門誤觸”問題需要解決;另一方面,隨著顯式的觸發(fā)器向隱式的觸發(fā)器轉(zhuǎn)變,觸發(fā)器的隱匿性逐步增強,觸發(fā)器對應的文本特征也逐漸變得更加抽象,比如從顯式的單詞、句子轉(zhuǎn)變?yōu)槲谋镜木浞ńY(jié)構(gòu)、文本風格等,這就要求攻擊者在帶毒訓練時不能只考慮到觸發(fā)器的隱匿性,還要兼顧后門的有效性,即確保中毒模型能被這些隱匿的觸發(fā)器誤導產(chǎn)生指定的輸出.從相關(guān)工作的數(shù)量來看,目前NLP 領域后門攻擊研究工作主要集中于單詞級攻擊,對于句子級攻擊的探索還不夠充分,比如是否有其他句子層面的特征適合作為觸發(fā)器,目前也沒有融合多種粒度觸發(fā)器的工作. 表2 給出了一些典型后門攻擊方法構(gòu)造的帶毒文本實例.

      Table 2 Instances of Typical Backdoor Attack Methods表2 典型后門攻擊方法的實例

      3 針對后門攻擊的防御

      CV 領域?qū)θ绾畏烙箝T攻擊已有較多探索[61-66],但目前在NLP 領域針對后門攻擊的防御工作尚處于起步階段. 這一部分按防御方法作用的時間點不同來分類介紹,包括離線防御和在線防御2 類.

      3.1 離線防御

      離線防御是指在模型被部署上線之前防御后門攻擊,包括模型診斷和數(shù)據(jù)集清洗2 類方法. 模型診斷的目標是判斷模型是否被注入了后門以及探索如何清除后門,而數(shù)據(jù)集清洗的目標是在利用第三方數(shù)據(jù)訓練模型之前對數(shù)據(jù)中潛在的帶毒樣本進行清洗,從而能夠用干凈數(shù)據(jù)訓練出不含后門的模型.

      Azizi 等人[19]提出針對詞級別觸發(fā)器的模型診斷方法T-miner(trojan-miner),可以判斷文本分類模型是否被注入后門并且找出攻擊者使用的觸發(fā)詞序列.假定干凈文本x的原類別為s,攻擊者的目標類別為t,觸發(fā)詞序列應該滿足2 個條件:1)觸發(fā)詞序列具有較高的后門攻擊成功率,即能使大部分類別為s的文本在插入觸發(fā)器之后被分為類別t;2)觸發(fā)詞序列和隨機詞序列對應的中毒模型隱藏層表示應該明顯不同,即在聚類之后會被分為離群點. 防御者可以利用這2 個條件來找出模型詞表中潛藏的觸發(fā)詞. Tminer 的核心框架由2 部分組成,包括一個擾動生成器(perturbation generator)和一個后門判別器(trojan identifier). 通過前者得到可能包含觸發(fā)詞的擾動文本,然后利用后者判斷擾動文本中是否包含觸發(fā)詞進而判別模型是否中毒.

      具體地,先從待診斷的文本分類模型f(·)的詞表中隨機采樣得到一批文本,即一些無意義的詞序列;接著利用f(·)對這批文本進行分類并將分類結(jié)果作為文本標簽;之后,利用這批文本數(shù)據(jù)以及f(·)去監(jiān)督訓練出一個基于“編碼器-解碼器”架構(gòu)的文本風格轉(zhuǎn)換模型[67]并將其作為擾動生成器P(·).P(·)使用的詞表和f(·)使用的詞表一致,P(·)可以將f(·)分類為的文本x轉(zhuǎn)換成分類為t的文本,即然后將屬于x?而不屬于x的單詞序列作為可能包含觸發(fā)詞序列的候選擾動文本 δi,進而構(gòu)成候選擾動集合為候選擾動文本的數(shù)量.

      在得到候選擾動集合 Δ后,利用后門判別器判斷其中的擾動文本是否包含觸發(fā)詞序列. 首先過濾掉后門攻擊成功率較低的擾動文本. 接著從詞表中隨機采樣出一批和擾動文本長度一致的文本Δaux,作為后續(xù)輔助判斷的隨機擾動文本. 之后,將 Δ 和Δaux中的擾動文本分別送入f(·)并提取出對應的隱藏層表示.最后,對擾動文本的隱藏層表示進行降維并利用DBSCAN[68]聚類算法判斷其中是否存在離群點,如果存在,則認為f(·)被注入了后門,離群點對應的擾動文本中也極有可能包含觸發(fā)詞序列.

      Zhang 等人[16]在提出針對預訓練模型的后門攻擊方法NeuBA 之后,嘗試利用多種方法對其進行防御,包括高層參數(shù)重新初始化(re-initialization,Reinit)、神經(jīng)注意力蒸餾(neural attention distillation,NAD)和神經(jīng)網(wǎng)絡剪枝(Fine-pruning)三種方法.

      Re-init 方法假設中毒預訓練模型中的帶毒權(quán)重主要集中于高層,因此在微調(diào)之前對預訓練模型的高層權(quán)重進行重新初始化,然后再在干凈數(shù)據(jù)集上微調(diào),以期能夠減弱后門攻擊的效果. 實驗結(jié)果表明,Re-init 方法在防御針對 BERT 模型的后門攻擊時取得了良好的效果,但該類防御方法的缺點是可能無法應對在模型底層植入后門的攻擊方法如 LWP.

      NAD 方法[70]將在下游數(shù)據(jù)集上微調(diào)后的預訓練模型作為教師模型,將未經(jīng)過微調(diào)的中毒預訓練模型作為學生模型,通過教師模型指導學生模型的微調(diào),讓學生模型的注意力輸出與教師模型盡可能一致,進而減弱中毒預訓練模型中后門的效果.

      Fine-pruning 方法由Liu 等人[69]提出,該方法認為帶毒文本和正常文本在模型中激活的神經(jīng)元有明顯不同,因此可以將某些在干凈文本上沒有被激活的神經(jīng)元移除,從而阻斷帶毒樣本激活后門的路徑,之后再在下游任務的數(shù)據(jù)集上對剪枝后的模型進行微調(diào),保證其在干凈數(shù)據(jù)上的表現(xiàn). Zhang 等人[16]的實驗表明,相比于Re-init 和NAD 防御方法,F(xiàn)inepruning 方法在防御針對BERT 模型的NeuBA 后門攻擊時取得了最好的效果.

      在數(shù)據(jù)集清洗方面,Chen 等人[20]提出針對句子級觸發(fā)器的防御方法BKI(backdoor keyword identification),該方法可以發(fā)現(xiàn)并移除數(shù)據(jù)集中可疑的帶毒樣本. 其核心思想是,觸發(fā)句中的單詞在很大程度上可以主導模型的輸出,故可以通過衡量單詞對于輸出的重要性來篩選出觸發(fā)詞進而移除所有包含觸發(fā)詞的樣本. 具體地,基于LSTM 隱藏層的表示設計2個打分函數(shù)f1和f2來衡量文本中第i個單詞的重要性.f1是將單詞送入LSTM 后隱藏層表示的變化的無窮范數(shù),用于衡量單詞在模型處理詞序列過程中的局部影響,即

      其中hi和hi-1分別是LSTM 第i個和第i-1個時間步的隱藏層表示.f2是將單詞從文本中移除后LSTM 最終隱藏層表示的變化的無窮范數(shù),用于衡量單詞對文本表示的全局影響,即

      其中hl和分別是原文本的隱藏層表示和去掉之后的文本在LSTM 中最后一個時間步的隱藏層表示.最終的重要性打分函數(shù)f()為2 個函數(shù)的相加,即

      利用重要性打分函數(shù)對每一個文本中所有單詞進行打分并篩選出得分最高的p個詞作為該文本的關(guān)鍵詞(keyword)集合,其中包含潛在的觸發(fā)詞和一些正常單詞.

      在得到關(guān)鍵詞集合之后,還需要找出其中的觸發(fā)詞. 通過實驗發(fā)現(xiàn),觸發(fā)詞的重要性得分往往較高,同時包含觸發(fā)詞的帶毒文本數(shù)量是固定的,即觸發(fā)詞對應的詞頻不會過低或過高. 因此,基于觸發(fā)詞的統(tǒng)計特征設計打分函數(shù)g(k,c),對于標簽類別c,g(k,c)表示關(guān)鍵詞k為觸發(fā)詞的可能性,即

      其中等號右側(cè)第1 項是關(guān)鍵詞的平均重要性得分,第2 項和第3 項分別用于懲罰頻率過低和過高的關(guān)鍵詞,num為包含該關(guān)鍵詞的樣本數(shù)量,代表關(guān)鍵詞k的平均重要性得分,s是一個大于0 的常數(shù). 最后,將得分最高的關(guān)鍵詞作為觸發(fā)詞,移除數(shù)據(jù)集中所有包含該關(guān)鍵詞的樣本,從而得到干凈數(shù)據(jù)集. 針對句子級觸發(fā)器的防御實驗表明,啟發(fā)式的BKI 方法可以過濾掉90%以上的帶毒樣本,但需要注意的是,BKI 方法會移除掉所有可疑的樣本,因此作用于干凈數(shù)據(jù)集時會損失一些正常樣本.

      已有工作對于如何防御“非插入式”觸發(fā)器的研究較少,為了填補這一空白,Shen 等人[71]提出了針對文本風格、句法結(jié)構(gòu)觸發(fā)器的防御方法Trigger Breaker. 該方法通過對第三方訓練數(shù)據(jù)進行處理來破壞隱藏在帶毒樣本中的觸發(fā)器,幫助用戶訓練出干凈的模型. Trigger Breaker 對訓練樣本的處理包含混合(mixup)和打亂(shuffle)這2 種操作. 對于2 個訓練樣本(xi,yi) 和(xj,yj),混合操作先利用編碼器(比如BERT)分別提取它們的文本表示向量vi和vj,然后將二者的表示向量以及標簽向量進行混合來構(gòu)造新的訓練樣本(vm,ym):

      其中 λ是一個控制混合程度的超參數(shù),最后將(vm,ym)送入模型進行訓練. 文本風格和句法結(jié)構(gòu)這類隱匿的觸發(fā)器主要在文本的高層語義中得以體現(xiàn),所以通過混合操作可以在高層的文本嵌入層面(embedding level)破壞隱匿的觸發(fā)器,使其無法與指定標簽建立有力的關(guān)聯(lián). 相比于混合操作,打亂操作將原文本中的單詞順序打亂得到新的文本,目標是在低層的單詞層面(token level)破壞觸發(fā)器. 實驗表明,Trigger Breaker 相比于以往的防御方法能夠更好地應對非插入式的觸發(fā)器,同時也保持較好的干凈數(shù)據(jù)準確率.

      3.2 在線防御

      在線防御分為觸發(fā)器過濾和帶毒文本檢測2 種方法. 前者旨在過濾掉輸入文本中可能的觸發(fā)詞,從而得到干凈的文本;后者旨在判斷出當前文本是否為帶毒文本,進而拒絕帶毒文本輸入模型,避免模型被攻擊者操控.

      Qi 等人[21]提出針對插入式觸發(fā)器的過濾方法ONION(backdoor defense with outlier word detection),指出大部分后門攻擊方法需要向干凈文本中插入額外的觸發(fā)器,比如觸發(fā)詞或觸發(fā)句. 這些額外插入的內(nèi)容會在一定程度上破壞原文的流暢度,因此利用語言模型來檢測文本中突兀的單詞,從而過濾掉可能的觸發(fā)器. 具體地,對于文本中的第i個單詞,通過移除之后文本困惑度的下降值來衡量是一個觸發(fā)詞的可能性fi,即fi=p0-pi,其中p0和pi分別是原文本和移除之后的文本通過GPT-2 語言模型計算出的困惑度. 如果移除w?i之后會使文本的流暢度明顯提升,即困惑度大幅度下降,則很有可能是一個觸發(fā)詞. 對輸入文本中的每一個單詞計算fi并且移除所有fi>t的單詞,其中t是人為設置的閾值. ONION方法對于詞級別和句級別觸發(fā)器有明顯的防御效果,但是它作為一種基于啟發(fā)式特征設計的過濾方法,無法過濾掉更加隱匿的非插入式觸發(fā)器如句法特征等.

      在帶毒文本檢測方面,Le 等人[72]提出針對Universal Trigger[36]的檢測方法DARCY,該檢測方法的作者基于網(wǎng)絡安全領域“蜜罐誘捕”(honeypot)的思想來引誘攻擊者使用防御者提前預設的觸發(fā)器,從而可以輕易檢測出包含觸發(fā)器的帶毒文本. 具體地,先利用干凈模型找到多個優(yōu)良的觸發(fā)器并構(gòu)造帶毒樣本向模型中植入后門;然后將帶毒文本輸入中毒模型,并利用帶毒文本在中毒模型最后一層的隱藏層表示訓練出一個觸發(fā)器判別器,用于捕獲觸發(fā)器文本的特征進而判斷文本是否包含觸發(fā)器;最終可以利用該模型在推斷階段判斷新輸入的文本是否是帶毒文本. 這種方法實質(zhì)上是誘騙攻擊者在尋找模型后門時得到防御者預設的觸發(fā)器(即防御者預先設置的“蜜罐”),使其在想要觸發(fā)后門時能夠被觸發(fā)器判別器檢測出來(即防御者對觸發(fā)器進行“誘捕”). DARCY方法需要提前搜索出干凈模型中一些潛藏的觸發(fā)器,并不能保證能夠覆蓋到所有的后門.

      Gao 等人[73]提出一個圖像、文本和音頻領域通用的帶毒輸入檢測方法STRIP(strong intentional perturbation). 由于觸發(fā)器和攻擊者指定的目標類別之間存在很強的聯(lián)系,即使帶毒文本受到較強的擾動,只要觸發(fā)器還存在于帶毒文本中,中毒模型依舊會以很高的置信度將其分為錯誤的類別,而防御者可以利用這一點來判斷一個文本是否是帶毒樣本. 具體地,首先將一個待判斷的文本復制N份,對它們分別進行不同的擾動(比如替換掉文本中的一部分單詞)得到N個擾動文本,之后,將所有擾動文本輸入到中毒模型中得到預測結(jié)果并計算相應的熵H. 如果原文本是一個干凈文本,則中毒模型對N個擾動文本的預測結(jié)果應該具有很大的隨機性,即H較大;如果原文本是一個帶毒文本,則其對應的N個擾動文本仍然會被分為攻擊者指定的類別,即H較小. 如果H小于一定的閾值,則認為原文本為帶毒文本,應該拒絕為其產(chǎn)生輸出.

      Yang 等人[74]指出,STRIP 方法需要大量的預處理和模型預測操作,計算量和時間開銷太大. 為了改善該缺點,基于類似STRIP 的思想提出了用于檢測帶毒文本的魯棒感知擾動方法RAP(robustness-aware perturbations). 假定攻擊者的目標類別為t,RAP 方法對原文本進行擾動(比如插入一個突兀的單詞)得到一個擾動文本,之后將原文本和擾動文本分別輸入到中毒模型中得到將其分為類別t的置信度. 如果原文本和擾動文本的置信度差值小于閾值 δ,則原文本會被判別為帶毒文本. RAP 和STRIP 都利用中毒模型對帶毒文本置信度過高的特點,但RAP 取得了比STRIP 更好的防御效果,同時RAP 的計算量也小于STRIP. STRIP 需要產(chǎn)生100 個擾動文本進行預測操作以判斷輸入文本是否帶毒,而RAP 對于每個文本只需要進行2 次預測操作即可.

      3.3 后門攻擊防御方法小結(jié)

      離線防御和在線防御方法分別針對不同的現(xiàn)實場景防御后門攻擊. 離線防御旨在真正檢測并徹底消除模型中的后門,它需要對中毒模型進行調(diào)整或者重新訓練出干凈模型,雖然理論上離線防御是真正意義上的消除后門,但其難度較高,所需的計算資源耗費和時間開銷也較大. 相比之下,在線防御方法退而求其次,旨在移除輸入文本中潛在的觸發(fā)器或者拒絕帶毒文本,它關(guān)注的是如何抑制中毒模型中的后門不被激活,而非真正消除中毒模型中的后門.表3 給出了典型后門攻擊防御方法的對比,包括不同方法在防御實驗中使用的模型、數(shù)據(jù)集和針對的觸發(fā)器粒度等. 要注意的是,由于不同防御方法的實驗設置存在區(qū)別,表3 中列出防御前和防御后平均后門攻擊成功率作為防御效果的參考.

      Table 3 Comparison of Typical Textual Backdoor Attack Defense Methods表3 典型文本后門攻擊防御方法對比

      一些基于啟發(fā)式特征設計的在線防御方法取得了良好的效果,但是隨著后門攻擊使用的觸發(fā)器的隱匿性進一步增強,比如非插入式觸發(fā)器的出現(xiàn),帶毒文本的設計愈加精心,這些啟發(fā)式在線防御方法無法應對所有可能的觸發(fā)器,因此如何設計出觸發(fā)器無關(guān)(trigger-agnostic)的防御方法非常重要. NLP 中針對對抗攻擊已有多種防御方法,如基于對抗訓練的防御[76-77]、可驗證的防御(certified robustness)[78-80]等,相比之下,針對后門攻擊的防御工作尚處于起步階段,仍需廣泛的探索.

      4 數(shù)據(jù)集與評價指標

      為了方便研究者進行實驗,本節(jié)梳理現(xiàn)有后門攻擊與防御工作中常用的數(shù)據(jù)集,同時介紹常用的攻擊和防御評價指標.

      4.1 數(shù)據(jù)集

      1)IMDB[81]. 該數(shù)據(jù)集是一個典型的二分類情感識別數(shù)據(jù)集,由Maas 等人[58]從互聯(lián)網(wǎng)電影評論數(shù)據(jù)中收集整理而成,共包含50 000 條電影評論,其中正面評論和負面評論各25 000 條,電影評論的平均文本長度為294 個單詞.

      2)AG NEWS[82]. 該數(shù)據(jù)集是由Zhang 等人[83]從AG 新聞語料庫中整理構(gòu)建而成的一個新聞主題分類數(shù)據(jù)集,共計4 個新聞類別,如國際、商業(yè)、體育、科技,每個類別包含30 000 個訓練樣本和1 900 個測試樣本,每個樣本包含一條新聞的標題和描述,平均文本長度為38 個單詞.

      3)SST[84]. 斯坦福情感樹庫(Stanford sentiment treebank,SST)是斯坦福大學發(fā)布的電影評論情感分析數(shù)據(jù)集[85],其中SST-2 用于二分類情感識別任務,訓練集、驗證集、測試集的大小分別為6 920,872,1 821個樣本,平均文本長度為19 個單詞.

      4)OLID[86]. 該數(shù)據(jù)集是由Zampieri 等人[87]構(gòu)建的一個二分類攻擊性語言檢測數(shù)據(jù)集,需要模型判斷一段文本是否包含攻擊性語言,訓練集、驗證集、測試集的大小分別為11 916,1 324,859 個樣本,平均文本長度為25 個單詞.

      5)Amazon[88]. 該數(shù)據(jù)集由亞馬遜電商平臺上用戶對商品的評論組成[89],最常用的版本為Amazon-2,用于二分類(正面評論/負面評論)情感識別任務,每個類別都包含180 萬個訓練樣本和20 萬個測試樣本,平均文本長度為91 個單詞.

      6)Jigsaw 2018[90]. 該數(shù)據(jù)集是從維基百科的評論數(shù)據(jù)收集而來,需要模型判斷一段文本是否存在有害內(nèi)容,有害內(nèi)容分為6 個類別. 數(shù)據(jù)集中包括159 571個訓練樣本和153 164 個測試樣本,平均文本長度為67 個單詞.

      7)Hatespeech-Twitter[91]. 該數(shù)據(jù)集是Founta 等人[92]從用戶的推特數(shù)據(jù)收集而成,用于進行二分類仇恨言論檢測任務,數(shù)據(jù)集共包括8 萬個樣本,需要研究者自己劃分訓練集和測試集,平均文本長度為17 個單詞.

      8)Lingspam[93]. 該數(shù)據(jù)集由Sakkis 等人[94]構(gòu)建,包含2 412 條正常信息和481 條垃圾信息,用于二分類垃圾信息檢測任務,平均文本長度為674 個單詞.

      4.2 評價指標

      衡量后門攻擊方法的常用指標如下:

      1)干凈數(shù)據(jù)準確率(clean accuracy,CA). 中毒模型在干凈測試集上的分類準確率,如果中毒模型在干凈數(shù)據(jù)上的表現(xiàn)和不帶后門的正常模型相當,則認為中毒模型具有較強的欺騙性,用戶容易被中毒模型看似優(yōu)異的性能所迷惑. 該指標越高越好.

      2)后門攻擊成功率(attack success rate,ASR). 帶毒樣本被中毒模型分類為攻擊者指定標簽的比例,即有多少帶毒樣本能夠成功激活中毒模型中的后門,衡量后門攻擊的效果. 該指標越高越好.

      Yang 等人[46]指出,雖然以往的后門攻擊方法在CA 和ASR 指標上都取得了良好的表現(xiàn),但僅用這2個指標評價后門攻擊方法不夠全面,沒有考慮觸發(fā)器的隱匿性,為此,提出2 個新的評價指標:

      1)檢測成功率(detection success rate,DSR). 帶毒樣本被防御方法檢測出來的比例. 利用觸發(fā)器過濾防御方法ONION 對帶毒文本進行處理,觀察有多少帶毒文本中的觸發(fā)詞會被過濾掉. 檢測成功率越低,說明后門攻擊方法構(gòu)建的帶毒文本更加自然. 該指標越低越好.

      2)后門誤觸率(false triggered rate,F(xiàn)TR). 包含觸發(fā)器子片段的正常樣本錯誤激活后門的比例. 某些攻擊方法使用的觸發(fā)器容易引起后門的誤觸,比如觸發(fā)句中的某些子片段在正常文本中也很常見,這些正常文本也可能會激活后門,導致用戶察覺到異常. 為此,將觸發(fā)器的子片段插入到正常文本中,觀察有多少正常文本也會激活后門. 該指標越低越好.

      評價針對后門攻擊的防御方法時,至少要關(guān)注CA和ASR,二者分別衡量防御方法對于模型本身性能的影響和針對后門攻擊的防御效果. 良好的防御方法應該保證正常的CA 并降低ASR. 此外,帶毒文本檢測和數(shù)據(jù)集清洗防御方法通常還關(guān)注2 個指標:

      1)錯誤拒絕率(false rejection rate,F(xiàn)RR). 干凈樣本(或輸入文本)被錯誤地當作帶毒樣本(或輸入文本)而被拒絕的比例. 該指標越低越好.

      2)錯誤接受率(false acceptance rate,F(xiàn)AR). 帶毒樣本(或輸入文本)被錯誤地當作干凈樣本(或輸入文本)而被接受的比例. 該指標越低越好.

      5 后門攻擊與對抗攻擊、數(shù)據(jù)投毒的比較

      對抗攻擊和數(shù)據(jù)投毒是與后門攻擊聯(lián)系較為緊密的2 種安全威脅,本節(jié)將后門攻擊分別與對抗攻擊、數(shù)據(jù)投毒進行比較,分析它們的異同之處,表4對三者的特點進行了總結(jié).

      Table 4 Comparison Among Backdoor Attack, Adversarial Attack and Data Poisoning表4 后門攻擊、對抗攻擊與數(shù)據(jù)投毒的比較

      5.1 后門攻擊與對抗攻擊

      后門攻擊和對抗攻擊目前是NLP 領域主流的攻擊方法,二者的相似之處在于:

      1) 2 種攻擊都需要修改原始測試樣本來誤導模型. 對抗攻擊需要向測試樣本添加人類無法察覺的微小擾動來構(gòu)造對抗樣本,比如針對情感識別任務,對原樣本“I like this great movie”進行同義詞替換得到對抗樣本“I enjoy this amazing film”,對抗樣本不影響人類的判斷,但會導致模型輸出錯誤的結(jié)果. 后門攻擊也需要向測試樣本注入不起眼的觸發(fā)器來構(gòu)造帶毒樣本從而誤導模型產(chǎn)生攻擊者提前指定的結(jié)果,比如向原樣本注入詞級別觸發(fā)器得到帶毒樣本“I like this great movie cf ”.

      2) 2 種攻擊都利用數(shù)據(jù)中與任務無關(guān)的特征. 對抗攻擊在構(gòu)造對抗樣本時需要保證和原樣本的語義一致性,即保持測試數(shù)據(jù)中與任務相關(guān)的特征不變,改變與任務無關(guān)的特征以干擾模型輸出. 仍以情感分類任務為例,對原測試文本進行合理的同義詞替換并不會改變其語義和情感(與任務相關(guān)的特征),只是采用不同的表達方式(與任務無關(guān)的特征). 后門攻擊在構(gòu)造帶毒樣本時則是改變訓練數(shù)據(jù)中與任務無關(guān)的特征,比如向原文本中插入一個不含情感傾向的句子,同樣要保證原文本的語義和情感不發(fā)生改變.

      3) 在對抗攻擊方法中,和后門攻擊最相似的是基于全局統(tǒng)一擾動的對抗攻擊. 此類方法[95-96]通過向樣本添加統(tǒng)一的擾動來構(gòu)造對抗樣本,其和后門攻擊中向樣本注入統(tǒng)一的觸發(fā)器的做法非常類似.

      后門攻擊和對抗攻擊也存在4 點明顯的不同:

      1) 2 種攻擊對模型的掌控不同. 在對抗攻擊中,攻擊者一般無法控制模型的訓練階段,但在一定程度上能夠控制模型的推理階段,即攻擊者通過向模型輸入樣本并查詢模型輸出來構(gòu)造對抗樣本,比如針對情感識別模型的同義詞替換對抗攻擊可以根據(jù)模型的輸出結(jié)果決定對文本中的哪一個詞進行同義詞替換. 而在后門攻擊中,攻擊者無法掌控模型的推理階段,但可以控制模型的訓練階段,即攻擊者需要訓練出中毒模型并交給用戶使用,但無法得知用戶具體的使用流程,比如用戶在得到中毒的預訓練模型之后是否會進一步微調(diào),這就要求訓練階段注入的后門在測試階段依然有效.

      2) 2 種攻擊的擾動來源不同. 對抗攻擊需要基于模型的輸出并采用某種優(yōu)化算法來尋找最合適的對抗樣本. 攻擊者添加的擾動依賴于具體的樣本和模型的輸出結(jié)果,事先并不知道對某個樣本需要添加什么樣的擾動才能使其成為對抗樣本. 以同義詞替換攻擊為例,考慮一個包含L個詞的文本,每個單詞有K個同義詞(包括自己),則同義詞替換構(gòu)成的擾動空間大小為KL. 面對指數(shù)級別的擾動空間,攻擊者需要采用某種優(yōu)化算法比如遺傳算法、粒子群算法等[97-99]來找出最優(yōu)的對抗樣本,這些優(yōu)化算法要求攻擊者頻繁地查詢模型輸出,有可能被用戶檢測到. 相比于對抗攻擊,后門攻擊明確定義了觸發(fā)器的形式,向樣本中注入的觸發(fā)器是全局統(tǒng)一的,即每個樣本添加的擾動是幾乎相同的,比如攻擊者在選定觸發(fā)詞為“cf ”后,在帶毒訓練或者激活后門時都會向干凈樣本中插入單詞“cf ”,不能選擇插入其他的單詞,否則可能無法激活后門. 但值得注意的是,近年來也有相關(guān)工作探索依賴于樣本的觸發(fā)器,旨在增強后門攻擊的隱匿性.

      3) 2 種攻擊針對的數(shù)據(jù)不同. 對抗攻擊主要針對測試數(shù)據(jù),通過對測試樣本添加微小的對抗擾動來構(gòu)造對抗樣本,然后利用對抗樣本揭示模型本身的脆弱性. 而后門攻擊主要針對訓練數(shù)據(jù),通過對訓練樣本注入觸發(fā)器來構(gòu)造帶毒樣本,利用帶毒樣本訓練中毒模型,揭示了第三方深度學習模型可能被人惡意篡改的安全隱患. 另外,后門攻擊會對模型的權(quán)重進行破壞,而對抗攻擊通常不會影響模型的權(quán)重.

      4)2 種攻擊的威脅來源不同. 對抗攻擊的威脅來自于模型的測試階段,利用了模型“過度敏感”的弱點. 攻擊者在模型的決策邊界附近搜索對抗樣本來破壞模型的輸出,對抗樣本和原樣本相比只添加了微小的擾動,人類仍然可以做出正確的判斷,但深度學習模型卻對這些微小的擾動過分敏感,即“失之毫厘謬以千里”,文本的語義沒有改變,模型卻產(chǎn)生了錯誤的輸出. 相比于對抗攻擊,后門攻擊的威脅來自于模型的訓練階段,利用了模型過剩的學習能力和“過度穩(wěn)定”的弱點. 攻擊者通過帶毒訓練迫使模型額外在“觸發(fā)器—目標類別”之間建立起錯誤卻穩(wěn)定的聯(lián)系,導致模型在面對帶毒樣本時過分關(guān)注樣本中微小的觸發(fā)器,比如可能只是一個觸發(fā)單詞,卻忽視了樣本的主要語義,導致模型產(chǎn)生攻擊者指定的錯誤輸出.

      除了上述總結(jié)的相似和不同之處,研究者也在探索后門攻擊和對抗攻擊之間的隱含聯(lián)系,比如后門攻擊和對抗攻擊能否相互增強、針對對抗攻擊的防御是否會影響模型對于后門攻擊的魯棒性等[100-101].

      5.2 后門攻擊與數(shù)據(jù)投毒

      除了對抗攻擊,后門攻擊和傳統(tǒng)的數(shù)據(jù)投毒(data poisoning)攻擊[102-105]也有緊密的聯(lián)系. 數(shù)據(jù)投毒是指攻擊者精心構(gòu)造出異常樣本并將其加入到模型的訓練數(shù)據(jù)中,以此來破壞正常訓練數(shù)據(jù)的分布,從而干擾模型的學習過程,使得訓練出的模型在干凈測試數(shù)據(jù)上的表現(xiàn)很差. 比如攻擊者可以將大量垃圾郵件標注為正常郵件并反饋給垃圾郵件分類器進行學習,最終使得分類器的決策邊界發(fā)生傾斜,誤將很多垃圾郵件錯分為正常郵件.

      后門攻擊和數(shù)據(jù)投毒都需要破壞正常的訓練數(shù)據(jù)來影響模型的訓練,最終破壞模型在測試階段的表現(xiàn),但是它們對訓練樣本的改動不同. 后門攻擊通過向訓練樣本插入統(tǒng)一的觸發(fā)器來構(gòu)造帶毒樣本,而數(shù)據(jù)投毒需要采用某種優(yōu)化方法從原始訓練樣本出發(fā)去生成異常樣本,這些異常樣本能夠最大程度地干擾模型的訓練,比如針對手寫數(shù)字識別任務,攻擊者可以將一張數(shù)字“5”的圖片的標簽設為“6”,并且利用梯度上升方法對原圖片進行修改以使模型在數(shù)字“6”樣本上的損失函數(shù)增大,從而得到干擾模型學習的異常樣本,使模型無法正確識別數(shù)字“6”的圖片[103].

      此外,后門攻擊與數(shù)據(jù)投毒的目的也有明顯區(qū)別. 數(shù)據(jù)投毒旨在破壞模型在干凈樣本上的性能,而后門攻擊旨在破壞模型在帶毒樣本上的性能,同時需要保持模型在干凈樣本上的性能,以避免后門被發(fā)現(xiàn). 從攻擊者掌握的信息來看,數(shù)據(jù)投毒只能修改訓練數(shù)據(jù),而后門攻擊則可以進一步掌握模型訓練過程. 從防御角度來看,數(shù)據(jù)投毒比后門攻擊更容易防御,用戶往往通過驗證集就可以評估模型在干凈數(shù)據(jù)上的表現(xiàn),進而判斷訓練數(shù)據(jù)是否存在異常,而這一方法并不能判斷出模型是否被植入了后門.

      值得注意的是,近年來研究者還探索了有目標的數(shù)據(jù)投毒攻擊方法[41],可以破壞模型在攻擊者指定的目標類別測試樣本上的表現(xiàn),比如誘導情感分類模型將關(guān)于亞洲人的描述都分類為消極,這實際上可以看作是一種使用不可見觸發(fā)器的后門攻擊.

      6 回顧與展望

      雖然近年來關(guān)于文本領域后門攻擊和防御的相關(guān)工作越來越多,但整體而言該領域還處于發(fā)展階段,有很多問題尚未得到充分研究. 本節(jié)對文本領域已有的后門攻擊和防御方法進行回顧,分析現(xiàn)有方法面臨的挑戰(zhàn),并對未來研究方向進行展望.

      6.1 現(xiàn)有方法回顧

      從觸發(fā)器的粒度來看,NLP 領域現(xiàn)有的后門攻擊方法主要為單詞級后門攻擊,其攻擊通常分為2個階段. 在“植入后門”階段,攻擊者首先選擇合適的觸發(fā)詞構(gòu)造帶毒樣本,通常選擇語料中的低頻詞作為觸發(fā)詞,然后利用帶毒樣本訓練出注入后門的中毒模型. 在“激活后門”階段,攻擊者將中毒模型分享給用戶使用,并利用包含觸發(fā)詞的測試文本激活用戶模型中的后門,使其產(chǎn)生攻擊者指定的輸出. 雖然單詞級后門攻擊方法簡單易行,但是這類方法在構(gòu)造帶毒文本時很可能會破壞原文本的語法結(jié)構(gòu)和語義信息,額外插入的觸發(fā)詞也容易被啟發(fā)式過濾方法移除. 針對單詞級觸發(fā)器隱匿性不夠的缺點,研究者進一步設計了句子級后門攻擊方法,旨在使用自然流暢的句子作為觸發(fā)器來構(gòu)造帶毒文本,最新的研究還探索使用更加隱匿的句子級特征如文本風格、句法結(jié)構(gòu)等作為觸發(fā)器,開拓了后門攻擊的新思路.對于句子級觸發(fā)器,如何避免觸發(fā)器子片段引起的后門誤觸值得進一步研究. 從攻擊針對的模型來看,后門攻擊從攻擊傳統(tǒng)的神經(jīng)網(wǎng)絡模型如CNN,LSTM 等轉(zhuǎn)向攻擊更加復雜的預訓練模型如BERT,越來越多的研究工作在探索如何向預訓練模型中高效地注入牢固的后門.

      目前在NLP 領域,針對后門攻擊的防御方法主要為啟發(fā)式后門防御(empirical backdoor defense),包括在線防御和離線防御2 類. 在在線防御方面,研究者們通?;趩l(fā)式特征來設計過濾方法,從而移除測試文本中潛在的觸發(fā)詞(“觸發(fā)器過濾”),或者基于實驗觀察來設計判別方法,判斷輸入文本是否為帶毒文本(“帶毒文本檢測”). 雖然這些抑制后門被激活的在線防御方法取得了不錯的效果,但是它們無法真正消除模型中的后門,因此研究者們又探索如何在模型部署之前進行離線防御,希望能夠判斷并消除模型中潛在的后門(“模型診斷”),或者能夠?qū)ξ唇?jīng)人工驗證的數(shù)據(jù)集進行清洗,從而訓練出干凈的模型(“數(shù)據(jù)集清洗”). 離線防御的難度和資源耗費往往比在線防御更大,但它可以真正地消除后門,需要未來進一步研究. 此外,由于啟發(fā)式防御方法并不能提供可靠的安全保障,研究者們還需要探索如何設計出針對文本后門攻擊的可驗證后門防御(certified backdoor defense).

      6.2 未來方向展望

      攻擊方法和防御方法對于增強DNN 的魯棒性和安全性都是不可或缺的. 后門攻擊方法可以暴露模型可能面臨的現(xiàn)實威脅,而對應的防御方法旨在緩解并消除威脅,保障現(xiàn)實NLP 系統(tǒng)的安全可用,未來的研究可以從4 個方面出發(fā):

      1) 研究針對更復雜的NLP 任務和場景的后門攻擊方法. 目前已有的后門攻擊方法主要針對簡單的文本分類任務,比如有害內(nèi)容檢測、垃圾郵件過濾、攻擊性語言識別等. 未來需要探究后門攻擊與更復雜的NLP 任務和場景進行結(jié)合的可能性,比如生成任務、跨模態(tài)相關(guān)任務、針對可遷移Prompt[106]的后門攻擊等,這有利于全面揭示NLP 系統(tǒng)可能面臨的后門攻擊威脅,促進相關(guān)模型魯棒性和安全性的提升.

      2) 探索更隱匿的觸發(fā)器形式. 目前詞級別觸發(fā)器已經(jīng)得到較為充分的探索,但是詞級別觸發(fā)器的隱匿性較差,容易被啟發(fā)式防御方法過濾或者檢測到,未來需要進一步探索更加隱匿的觸發(fā)器形式尤其是句子級別的觸發(fā)器. 除了文本風格、句法特征以外,還有哪些句子層面的文本特征可以作為非插入式的觸發(fā)器是值得研究的. 此外,如何將深度學習其他領域成功的后門攻擊方法遷移到NLP 領域也值得探索[107-109].

      3) 探索適用于任意觸發(fā)器的防御方法以及可驗證防御方法. 目前已有的防御方法主要是針對某種觸發(fā)器設計的啟發(fā)式防御方法,比如考慮到插入觸發(fā)詞會增加文本混淆度這一特點設計的防御方法ONION. 但隨著后門攻擊方法的進步,已經(jīng)出現(xiàn)了可以使用任意類型觸發(fā)器的后門注入方法比如NeuBA,因此研究者需要從文本表示層面更深入地探索適用于任意觸發(fā)器的防御方法,而不能只依賴專為某種觸發(fā)器設計的啟發(fā)式防御方法,這樣才能進一步增強防御方法的有效性. 此外,可驗證防御是針對文本領域?qū)构舻囊活愔匾烙椒?,但針對文本領域后門攻擊的可驗證防御方法還未得到充分調(diào)研,這也是未來防御工作值得考慮的方向.

      4) 對后門攻擊和防御的可解釋性研究. 雖然后門攻擊在CA,NLP 等領域都有相關(guān)探索,但后門攻擊背后的內(nèi)在機理卻沒有得到充分研究. 比如在攻擊不同的神經(jīng)網(wǎng)絡模型時,所需要的最小帶毒數(shù)據(jù)量是多少,后門學習(backdoor learning)是否和捷徑學習(shortcut learning)存在聯(lián)系[110],觸發(fā)器激活后門的作用原理是什么等,這些關(guān)鍵問題都需要未來研究者作出回答,以此來指導未來后門攻擊和防御方法的設計.

      7 總 結(jié)

      隨著人們對第三方訓練數(shù)據(jù)和預訓練模型的需求逐漸增加,后門攻擊對于NLP 系統(tǒng)的威脅正在日益加劇,亟待業(yè)界進行更廣泛的研究. 本文對目前文本領域的后門攻擊和防御工作進行系統(tǒng)性的分類和總結(jié). 文本領域后門攻擊和防御興起于2019 年,是繼對抗攻擊與防御之后又一個與神經(jīng)網(wǎng)絡魯棒性、安全性相關(guān)的重要研究方向. 我們希望本文能引起研究者對于潛在的后門攻擊威脅的重視,同時給感興趣的研究者提供參考,進一步推動NLP 模型朝著更加魯棒和安全的方向邁進.

      作者貢獻聲明:鄭明鈺收集分析參考文獻,負責構(gòu)思論文架構(gòu)和論文撰寫;林政點明寫作思路,完善論文結(jié)構(gòu)和表達,指導論文撰寫;劉正宵收集參考文獻,提出修改建議;付鵬提出修改建議;王偉平統(tǒng)籌研究項目開展,參與論文修改.

      猜你喜歡
      后門觸發(fā)器攻擊者
      基于微分博弈的追逃問題最優(yōu)策略設計
      自動化學報(2021年8期)2021-09-28 07:20:18
      工業(yè)物聯(lián)網(wǎng)后門隱私的泄露感知研究
      電子制作(2018年18期)2018-11-14 01:47:56
      正面迎接批判
      愛你(2018年16期)2018-06-21 03:28:44
      主從JK觸發(fā)器邏輯功能分析
      電子世界(2017年22期)2017-12-02 03:03:45
      使用觸發(fā)器,強化安全性
      有限次重復博弈下的網(wǎng)絡攻擊行為研究
      這個班還不錯
      新帕薩特右后門玻璃升降功能失效
      新途安1.4TSI車后門車窗玻璃不能正常升降
      對觸發(fā)器邏輯功能轉(zhuǎn)換的分析
      遂川县| 建平县| 乌兰察布市| 阿拉善左旗| 平远县| 西宁市| 鸡西市| 西充县| 巴彦县| 西峡县| 西和县| 萝北县| 肇庆市| 怀柔区| 锡林郭勒盟| 东至县| 深圳市| 普格县| 镇安县| 区。| 隆尧县| 新沂市| 鲁山县| 腾冲县| 浦县| 茶陵县| 威远县| 乌鲁木齐县| 阳原县| 孟连| 靖远县| 英吉沙县| 元朗区| 甘洛县| 武城县| 峡江县| 叶城县| 错那县| 宁乡县| 五家渠市| 连州市|