陳宇飛 沈 超 王 騫 李 琦 王 聰 紀守領 李 康 管曉宏
1(智能網絡與網絡安全教育部重點實驗室(西安交通大學) 西安 710049) 2(西安交通大學電子與信息學部 西安 710049) 3(武漢大學網絡安全學院 武漢 430072) 4(清華大學網絡科學與網絡空間研究院 北京 100084) 5(香港城市大學計算機科學系 香港 999077) 6(浙江大學網絡空間安全研究中心 杭州 310027) 7(浙江大學計算機科學與技術學院 杭州 310027) 8(喬治亞大學計算機科學系 喬治亞州雅典市 30602)
近年來人工智能技術,尤其是深度學習理論方法,取得了重大突破.在計算機視覺[1]、語音識別[2-3]、自然語言處理[4]、棋牌博弈[5]等多類任務上,人工智能技術的判斷準確水平和決策能力已經追平甚至超越人類.人工智能技術已經“走出實驗室,跨入工業界”[6],迅速觸及到人類生產和生活的方方面面.與此同時,人工智能技術開發日趨大眾化.Caffe[7],Tensorflow[8],Torch[9],MXNet[10],PaddlePaddle[11]等開源深度學習框架提供了豐富的高級模塊化函數支持,大大降低了應用的開發難度;騰訊[12]、阿里云[13]、百度[14]、谷歌[15]、微軟[16]、亞馬遜[17]、IBM[18]等廠商也都提供了人工智能服務,涵蓋圖像識別、語音識別、自動機器學習等多個方面.通過調用API接口,開發者可以實現高性能的人工智能應用.得益于理論與工具的發展,人工智能系統正大范圍地部署.
然而,隨著各類人工智能應用的出現和發展,其中的安全隱患也逐漸暴露出來.2018年3月發生在美國亞利桑那州的優步無人車事故中,事發時處于自動駕駛模式的無人車并沒有檢測到前方行人,駕駛員也未及時進行干預,最終致使行人被撞身亡[19].微軟于2016年上線的社交機器人Tay,在一天之內受到用戶的不良誘導逐漸學習成為一位種族主義者,迫使微軟將該機器人緊急下線[20].在包括自動駕駛[21-22]、惡意軟件檢測[23]、視頻安防[24]等在內的安全敏感領域,需對人工智能系統安全性和穩定性提出更高的要求.除了安全問題之外,隱私問題同樣也受到人工智能服務提供商和用戶的關注.由于機器模型的訓練需要依賴大量的訓練數據和計算資源,模型隱私與知識產權保護成為服務提供商最為關心的問題之一.而對用戶而言,他們則更關注其個人信息作為訓練數據是否會被泄露,如何才能確保個人敏感信息不被第三方竊取.
目前,人工智能系統與人類生產生活關系日益緊密,其安全問題越來越受到社會重視.國務院于2017年發布的《新一代人工智能發展規劃》中明確指出:“在大力發展人工智能的同時,必須高度重視可能帶來的安全風險挑戰,加強前瞻預防與約束引導,最大限度降低風險,確保人工智能安全、可靠、可控發展”[25].遺憾的是,以往的人工智能理論大多基于一種“好人假設”,較少考慮到在開放甚至是對抗環境下的機器學習安全與隱私問題.
從上述問題出發,本文結合當前人工智能系統安全領域的相關研究工作,系統地分析和歸納了人工智能系統中可能存在的安全與隱私風險及現有的應對方法,并對未來的發展趨勢進行了展望,以期引起相關研究者的關注并提供指導.
對于系統進行安全風險分析,首先需要建立安全風險模型.對此,本節首先對人工智能系統中潛在的攻擊面進行簡要分析,并從攻擊能力和攻擊目標2個角度建立攻擊者模型.
人工智能系統的應用場合和作用功能多樣,例如無人駕駛、聲音識別、機器翻譯等,核心部分主要包括數據和模型.如圖1所示,根據數據流向,人工智能系統主要包含了4個關鍵環節[26]:
1) 輸入環節.人工智能系統通過傳感器(攝像頭、麥克風、激光雷達、GPS等)獲取外部環境數據,或者通過直接讀取文件獲取數據.
2) 數據預處理環節.輸入的原始數據需要經過格式轉換、尺度變換、數據壓縮等預處理工作,以滿足機器學習模型輸入格式要求,同時降低數據量以保證系統工作的實時性.
3) 機器學習模型.機器學習模型是人工智能系統的核心,即“大腦”,主要包括訓練和測試2個階段.在訓練階段,機器學習模型利用預處理過的訓練數據對模型參數進行調節,以提升對于特定任務的工作性能(通常用準確率、召回率等指標衡量).對于強化學習(reinforcement learning),還存在模型與環境的動態交互過程.當訓練完成時,機器學習模型就進入了測試階段.訓練好的模型將根據輸入提供相應的輸出結果.
4) 輸出環節.人工智能系統會以標簽、置信度等多種形式給予輸出,為后續的分類、決策等任務提供支持.
由于人工智能系統所處環境的開放性,輸入、輸出2個環節會直接暴露在攻擊威脅環境中.在后續的介紹中將會看到,即使在預處理環節或機器學習模型被隱藏的情況下,攻擊者仍然可以通過發送輪詢樣本的方式對系統內部結構進行推測并發動攻擊.

Fig. 1 The basic framework of artificial intelligence systems圖1 人工智能系統基本框架[26]
在攻擊者的攻擊能力模型中,一般需要考慮2個要素:攻擊者掌握的情報以及攻擊者能夠采取的攻擊手段.
1) 依據攻擊者掌握的情報,攻擊可以分為:
① 白盒攻擊(white-box attack).攻擊者了解目標系統的詳細信息,如數據預處理方法、模型結構、模型參數,某些情況下攻擊者還能夠掌握部分或全部的訓練數據信息.在白盒攻擊模型中,攻擊者能夠更容易地發現可攻擊環節并設計相應的攻擊策略.
② 黑盒攻擊(black-box attack).系統對于攻擊者而言并不透明,關鍵細節都被隱藏,攻擊者僅能夠接觸輸入和輸出環節.在黑盒攻擊模型中,攻擊者可以通過構造并發送輸入樣本,并根據相應的輸出信息來對系統的某些特性進行推理.
2) 依據攻擊者能夠采取的干擾手段,攻擊被分為:
① 訓練階段攻擊(attack in the training stage).攻擊者可以干擾系統的訓練階段,主要方式包括對訓練數據進行修改以及對環境施加影響(強化學習).
② 推斷階段攻擊(attack in the inference stage).攻擊者僅能接觸到訓練完成之后的系統.該假設在真實場景中更為多見.
攻擊目標是指攻擊者希望借助攻擊所能達到的攻擊效果.根據信息安全的CIA三要素,針對人工智能系統的攻擊目標主要可以分為3類:
1) 保密性(confidentiality)攻擊.攻擊者期望從人工智能系統中盜取訓練數據、模型參數等保密信息,破壞數據和模型隱私.
2) 完整性(integrity)攻擊.攻擊者期望能夠影響系統輸出,使其偏離預期.例如通過欺騙、篡改等攻擊手段使得系統錯誤地接受假類樣本,即錯誤接受(false acceptance).
3) 可用性(availability)攻擊.攻擊者期望降低系統的工作性能(如準確率)或者服務質量(如響應速度),甚至導致系統拒絕服務.
而根據攻擊者的攻擊效果,攻擊目標又被劃分為
1) 目標攻擊(targeted attack).攻擊者限定攻擊范圍和攻擊效果,如誘導機器學習模型誤分類到特定結果;
本文將基于所建立的安全風險模型來審視人工智能系統在輸入環節、數據預處理環節、機器學習模型以及輸出環節4個核心模塊,以及系統實現與運行中所面臨的安全風險,并結合相關研究工作進行闡述和討論.
人工智能系統依靠傳感器(如攝像頭、麥克風等)或數據文件輸入(文件上傳)獲取信息,并通過數據預處理環節,依據模型輸入要求將采集到的原始數據進行格式、大小等屬性的調整.一旦攻擊者借助某種方式對輸入環節進行了干擾,就能夠從源頭上對系統發動攻擊.傳感器欺騙攻擊即為一種典型的針對輸入環節的缺陷利用.
1) 傳感器欺騙.傳感器欺騙是指攻擊者針對傳感器的工作特性,惡意構造相應的攻擊樣本并輸送至傳感器,造成人類和傳感器對數據的感知差異,從而達成欺騙效果.該問題被認為是對配備有傳感器的設備的最關鍵威脅之一,受到研究者的廣泛關注.Shin等人調查并將傳感器欺騙攻擊[27]分為3類:常規信道攻擊(重放攻擊)、傳輸信道攻擊和側信道攻擊.傳感器欺騙一個典型的例子是“無聲”語音命令攻擊.該類攻擊借助人類聽覺系統難以察覺的聲音信號對語音識別系統開展攻擊[28-29].對現代電子設備中普遍使用的非線性麥克風硬件而言,其可錄制范圍上限為24 kHz,超越了人類對20 kHz可識別聲音頻率的上限.攻擊者可以在麥克風超出人類聽覺的接收頻率范圍內發送聲音信號,從而使得設備能夠感知而不被聽眾察覺.由于其不可聞性,該類攻擊方法攻擊效果更強.Zhang等人提出的“海豚音攻擊” 通過生成超聲頻段的語音控制信號實現了對語音系統的“無聲”控制[28].Dean等人證明[30-31],當聲頻成分接近陀螺儀傳感質量的共振頻率時,MEMS陀螺儀容易受到高功率高頻聲噪聲的影響.攻擊者可以借此干擾無人機等智能設備的環境感知能力,致使設備癱瘓.但是上述攻擊假設攻擊源可以在物理上靠近目標設備,難以實現遠程攻擊.
2) 應對措施.對于傳感器欺騙攻擊,可以采取傳感器增強(忽略相應的攻擊頻段)、輸入濾波等措施[28]來檢測破壞惡意構造的攻擊信息,實現對系統輸入環節的安全增強.
信息預處理環節是信息處理系統中的必備環節,其作用是將輸入數據轉換為后續模型輸入所要求的特定形式.最近的研究表明,在數據的轉換過程中也存在安全風險.
1) 重采樣攻擊.信息預處理環節的作用通常是為了將輸入數據轉換為模型輸入要求的特定形式.數據重采樣就是一種常見的數據預處理操作,其目的為:一是改變數據信息格式以滿足輸入要求,如當前主流視覺深度學習模型輸入大小固定,需要對輸入圖片進行縮放操作;二是信息壓縮,提升信息系統處理效率.這一過程會造成數據信息發生變化,成為一個潛在的攻擊面.Xiao等人提出了針對圖像預處理環節的欺騙攻擊[32],該方法是一種針對插值算法的逆向攻擊方法,當攻擊圖片被圖像識別系統縮放后,被隱藏圖片得以顯現.與經典的對抗樣本攻擊方法不同,該方法針對的是圖像預處理環節,理論上與圖像識別模型無關,并且該方法可以實現源-目標攻擊(source-to-target attack).此外,該工作還顯示,即使識別系統部署在云端,攻擊者仍然可以通過輪詢的方式對重采樣過程進行推測和還原,進而發動重采樣攻擊.
2) 應對措施.針對重采樣攻擊,可以采取對輸入預處理引入隨機化或者重采樣質量監測方法來增大攻擊難度[32].
機器學習模型是人工智能系統進行感知和決策的核心部分,其應用過程主要包含訓練和預測2個重要階段.關于機器學習模型的安全問題,Dalvi等人于2004年最早提出了對抗分類(adversarial classification)的概念[33],Lowd等人于2005年進一步提出了對抗學習(adversarial learning)的概念[34].Huang等人則對抗機器學習提出了更為具體和系統的分類方式[35].目前,機器學習模型安全問題可以主要分為3類:
1) 誘導攻擊(causative attack).攻擊者借助向訓練數據加入毒化數據等手段,影響模型訓練過程,進而干擾模型的工作效果.
2) 逃逸攻擊(evasion attack).攻擊者在正常樣本基礎上人為地構造異常輸入樣本,致使模型在分類或決策時出現錯誤,達到規避檢測的攻擊效果.
3) 探索攻擊(exploratory attack).攻擊者試圖推斷機器學習模型是如何工作的,包括對模型邊界的預測、訓練數據的推測等.
從保密性角度考慮,一般人工智能系統需要考慮2個要素——數據與模型.人工智能服務提供商需要投入資金和時間收集數據,設計、訓練和改進模型,同時需要對用戶負責,保證數據不被泄露.然而,已有研究證明存在模型逆向攻擊(model inversion attack)——可以根據系統輸出推測輸入特征,還原敏感信息[36-37],以及模型萃取攻擊(model extraction attack)——通過發送輪詢數據推測模型參數并嘗試還原出功能相近的替身模型(substitution model)[38],二者會分別侵犯數據隱私和模型隱私.
數據投毒是指攻擊者通過修改訓練數據內容和分布,來影響模型的訓練結果.例如Yang等人展示了攻擊者通過對推薦系統注入構造的虛假關聯數據,污染訓練數據集,實現對推薦系統反饋結果的人為干預[39].實驗表明:通過對共同訪問(co-visitation)推薦系統進行數據投毒,可以對YouTube,eBay,Amazon,Yelp,LinkedIn等Web推薦系統功能產生干擾.Munoz-Gonzlez等人提出了基于反向梯度優化的攻擊方法,針對包含深度學習模型等在內的一系列基于梯度方法訓練的模型,都可以實現數據投毒效果[40].
應對措施.針對投毒攻擊的防御,一般考慮污染數據和正常數據分布差異,方法主要包括魯棒性機器學習[41]以及數據清洗[42].
模型后門(backdoor)是指通過訓練得到的、深度神經網絡中的隱藏模式.當且僅當輸入為觸發樣本(trigger)時,模型才會產生特定的隱藏行為;否則,模型工作表現保持正常.Gu等人提出了BadNets,通過數據投毒方式來注入后門數據集[43].針對MNIST手寫數據集識別模型網絡,使用BadNets可以達到99%以上的攻擊成功率,但不會影響模型在正常手寫樣本上的識別性能.Liu等人提出了一種針對神經網絡的特洛伊木馬攻擊[44].相較于Gu等人的工作[43],該方法的一個優點是攻擊者無需直接接觸訓練集.該方法另一個優點在于在觸發樣本和神經元之間構建了更強的連接,在訓練樣本較少的情況下也能夠注入有效后門.然而,該后門構造方法基于引起特定最大響應值的內部神經元來設計觸發樣本,無法構造任意觸發樣本.除了觸發模型的異常行為外,Song等人展示了一種利用模型后門的訓練數據隱私竊取攻擊方式[45]:依靠類似機器學習中正則化或數據增強方法對機器學習算法進行微調,第三方機器學習服務提供商可以借助用戶數據訓練出高準確度和高泛化性能的模型,并使得該模型能夠暴露訓練數據信息.
針對模型后門問題,Wang等人提出了相應的檢測和后門還原方案[46],該方法的思想相對直觀:對于模型后門相對應的標簽,很小的輸入擾動會引起該標簽對應置信度明顯的變化.此外,作者還提出了包括輸入過濾、神經元裁剪以及去學習等后門去除策略.
傳統機器學習模型大多基于一個穩定性假設:訓練數據與測試數據近似服從相同分布.當罕見樣本甚至是惡意構造的非正常樣本輸入到機器學習模型時,就有可能導致機器學習模型輸出異常結果.一個典型例子即Szegedy等人在2013年所描述的視覺“對抗樣本”(adversarial examples)現象:對輸入圖片構造肉眼難以發現的輕微擾動,可導致基于深度神經網絡的圖像識別器輸出錯誤的結果[47].通過構造對抗樣本,攻擊者可以通過干擾人工智能服務推理過程來達成逃避檢測等攻擊效果.
在機器視覺領域,針對對抗樣本的生成方法和對抗樣本特性已得到較多的研究.根據攻擊效果分類,對抗樣本攻擊可以被分類為目標攻擊[48]和非目標攻擊[49],而根據攻擊者對機器學習模型的攻擊能力則可以將攻擊分類為白盒攻擊[50](white-box attack)和黑盒攻擊[51](black-box attack).為了達到欺騙效果,對抗樣本的一個顯著特點是隱蔽性,即對抗擾動難以被人類所察覺,最大限度保持原樣本的語義信息.除了隱蔽性之外,Tramèr等人的工作[52]還揭示了對抗樣本的另一個突出特性——可傳遞性(transferability).借助可傳遞性,同一個對抗樣本可以同時作用于多個模型,這部分解釋了對抗樣本問題為什么得以廣泛存在.可傳遞性使得對抗樣本防御工作變得更具挑戰性.針對目前常見的對抗樣本生成算法,一些研究人員合作發布了開源對抗樣本算法庫CleverHans[53],以推動對抗樣本攻防研究工作的發展.與此同時,一些研究者探究了物理世界中的對抗樣本現象:Kurakin等人嘗試了將對抗樣本進行打印[54].針對Inception-V3模型生成對抗樣本并利用600像素分辨率的打印機進行打印,打印出的對抗樣本對于識別系統仍然具有欺騙性.然而該方法需要在所打印出的圖片四周配備二維碼以幫助圖像識別系統對圖像進行定位和裁剪,其結果并不具有普適性;Athalye等人提出了魯棒性更高的物理對抗樣本生成技術,利用3D打印技術制作了物理世界對抗樣本模型,可以在多個角度下實現對識別模型的欺騙[55];Sharif等人引入不可打印分數(non-printability score, NPS)到目標函數中,通過優化方法計算擾動并打印到眼鏡框上,攻擊者佩戴眼鏡框后可以成功誤導人臉識別系統[56];Eykholt等人則綜合考慮了相機角度、干擾形狀、打印效果等物理因素,設計了針對無人駕駛系統的對抗樣本攻擊方法,通過對路標覆蓋擾動標記,誘導無人駕駛系統將“停車”標志被誤識別為“限速”標志[57].這些例子進一步說明了對抗樣本威脅不僅局限于信息域,對抗樣本攻擊能夠在物理域產生實際影響,在一些關鍵應用上可能會引發災難性后果.
在語音系統方面,Kumar等人開展了針對語音錯誤解釋攻擊的實證研究[58].此外,Zhang等人展示了一種類似的方法[59]:針對語音助手的“技能”(skill,即某種功能)調用方式,攻擊者通過引入具有相似部分覆蓋的發音名稱或釋義名稱的惡意“技能”,來劫持目標“技能”的語音命令.Zhang等人則系統地探究了自然語言處理和意圖分類器(intent classifier)的工作歸因,并創建了第1個語言模型引導的模糊測試工具,以發現現有明顯更易受攻擊的語音應用[60].除了利用自然語言理解缺陷的語音系統攻擊,一些研究人員提出了一系列的語音對抗樣本生成方法,來欺騙語音識別系統.Carlini等人開發了一種針對Mozilla DeepSpeech的對抗音頻生成技術,利用優化方法直接對原始輸入進行修改從而對模型進行欺騙[61].Yuan等人提出針對服務接口的對抗語音樣本生成方法,攻擊者將一組命令嵌入到一首歌中,可以有效地控制目標系統而不被察覺[62].Vaidya等人提出的方法利用合成和自然聲音之間的差異,制造可以被計算機語音識別系統識別但人類不易理解的對抗樣本[63].Carlini等人的工作展示了利用一種迭代方法來構造針對黑盒語音系統的攻擊語音[64].為了獲得更好的結果,Carlini等人同時提出了一種針對白盒模型的改進攻擊方法.在攻擊者完全了解語音識別系統中所使用算法的條件下,這種改進后的攻擊可以保證合成的語音命令不被人類所理解.在威脅模型假設方面,該類攻擊要求將攻擊者的發言者放置在受害者設備附近的物理位置(距離超過3.5 m時會失效).上述4個攻擊方法局限于特定的模型和硬件平臺.不同于此,Abdullah等人提出了一種針對聲音處理環節的攻擊方法[65].該文作者提出了4種擾動類型,并在包括Google語音API,Bing語音API等7種語音服務在內的12個語音識別模型上進行了測試,均成功實現了有效攻擊,展示了該攻擊影響的廣泛性.
除了視覺系統與語音系統外,文本處理系統也是人工智能技術的一類典型應用,被廣泛應用于垃圾郵件檢測、不良信息過濾、機器翻譯等任務上.當前研究表明文本處理系統也正受到對抗樣本的威脅.Papernot等人提出了一種基于梯度的白盒對抗樣本生成方式[66],該方法迭代地修改輸入文本,直到生成的序列被循環神經網絡錯誤分類,但該攻擊引發的詞級變化會明顯影響文本語義,攻擊容易被察覺;Samanta等人利用嵌入梯度來確定重要單詞[67],并設計了啟發式規則、人工構造的同義詞及筆誤來對文本進行刪除、增加或替換;Ebrahimi等人提出了一種基于梯度的字符級分類器對抗樣本構造方法,對one-hot編碼形式的輸入向量進行修改[68];Alzantot等人提出了同義詞替換攻擊方法[69],利用遺傳算法生成使用同義詞或近義詞替換的方法,通過對抗性文本來欺騙語義識別系統; Belinkov等人的研究表明字符級的機器翻譯系統對數據噪聲十分敏感,可以借助非詞匯符號進行攻擊[70];同樣地,Gao等人提出一種黑盒文字對抗樣本攻擊方法,應用字符擾動來生成針對深度學習分類器的對抗性文本[71];Hosseini等人的工作展示,通過在字符之間添加空格或點號,就可以徹底改變Google有害信息檢測服務的評分[72];Zhao等人還提出了利用生成對抗網絡生成針對機器翻譯應用程序的對抗序列[73],然而該方法僅限于短文本.
除了上述研究工作外,還存在針對其他應用類型的對抗樣本攻擊.Xu等人利用遺傳編程(genetic programming)方法隨機修改文件,成功攻擊了2個號稱準確率極高的惡意PDF文件分類器:PDFrate和Hidost[74].這些逃避檢測的惡意文件都由算法自動修改生成,并不需要PDF安全專家介入.在惡意代碼檢測方面,Grosse等人提出了在離散和二進制輸入域修改輸入樣本,可以繞過惡意有效代碼檢測[75].
為了應對對抗樣本的問題,近年來研究人員提出了一些包括直接對抗訓練[47](adversarial training)——將對抗樣本及正確標簽重新輸入到模型中進行重訓練,該方法較為簡單但防御未知對抗樣本能力較差;梯度掩模[76](gradient masking)——針對基于梯度的對抗樣本攻擊方式,通過隱藏梯度,令此類攻擊失效;對抗樣本檢測[77]——直接檢測是否存在對抗樣本的防御方法.此外,Dziugaite等人使用 JPG 圖像壓縮的方法,減少對抗擾動對準確率的影響[78].實驗證明該方法對部分對抗攻擊算法有效,但通常僅采用壓縮方法是遠遠不夠的,并且壓縮圖像時也會降低正常分類的準確率.
雖然對抗樣本防御方法已經得到較多研究,但是當前仍然缺少一個通用有效的防御方案.事實上,當前大多數的防御評估方法都是在衡量對抗攻擊的能力下界[79]:這類評估所驗證的是一個樣本集合的鄰域內的攻擊樣本攻擊效果,僅能發現當前區域而非所有防御失效點.而且這些防御評估方法都是基于一種非適應性攻擊模型,即假設攻擊者并不知曉防御方法.Carlini等人認為考慮非適應性攻擊模型是有必要的,但是有很大的局限性[80].相對應地,一種有效的模型魯棒性評估應該基于適應性攻擊模型,即假設攻擊者知曉防御者已采取的防御策略并可以采取反制措施[81-82].例如針對梯度掩模防御策略,Papernot等人提出了一種通過黑盒輪詢輸入標簽的策略來對梯度進行回推[51];Athalye等人則提出了通過改變代價函數來進行對抗樣本攻擊[83].從安全評估結果的可靠性考慮,需要對所有已知或未知攻擊(最壞情況)的防御效果得出被測試模型的魯棒性下界,即模型魯棒性的最低保證.
當前一個發展方向是對模型魯棒性進行形式化驗證.雖然Lecuyer等人的研究成果可以應用于對ImageNet分類器的魯棒性分析[84],但當前的模型魯棒性驗證方法,如文獻[85-86],還大多只能局限于特定的網絡模型.文獻[87-88]等工作已經開始探索對任意神經網絡模型魯棒性進行形式化驗證的可能性,但是由于計算復雜度過高,無法應用于中大規模的網絡模型.此外,魯棒性證明方法的一個顯著缺點是,該類方法給出了對于特定集合的鄰域對抗樣本存在性證明,但是尚無法對該集合外的樣本提供理論上的證明和保證[80].
由于機器學習模型在訓練時會或多或少地在訓練數據上發生過擬合,攻擊者可以根據訓練數據與非訓練數據的擬合差異來窺探訓練數據隱私.Fredrikson等人以醫療機器學習中的隱私問題為例闡述了模型逆向攻擊(model inversion attack)[89]:對某一個被訓練好的機器學習模型,攻擊者利用模型、未知屬性以及模型輸出的相關相關性,實現對隱私屬性的推測.具體到實例中,Fredrikson等人根據華法林劑量信息來嘗試對患者的基因型進行推測.此外,Fredrikson等人在[36]展示了針對另外2個模型進行逆向攻擊的例子:借助模型置信度輸出,攻擊者可以估計生活調查中的受訪者是否承認對其他重要人物存在欺騙行為;針對人臉識別系統,攻擊者可以根據用戶姓名恢復出對應的可識別的人臉照片.一些研究證明了另外一類的模型逆向攻擊——成員推理攻擊(membership inference attack),即攻擊者可以推斷某個特定實例是否在訓練數據集中.早在2008年Homer等人就展示了對基因組數據的成員推理攻擊(membership attack)[90].在此基礎上,Shokri等人展示了可以通過訓練多個“影子模型”(shadow models)來模擬被攻擊模型,并利用機器學習模型輸出中暗含的訓練數據之間的區分性,來發動成員推理攻擊[37].Salem等人通過實驗證明了通過單個影子模型開展相同攻擊的可能性[91],即使在攻擊者無法獲取被攻擊模型的訓練數據情況下,也根據模型輸出的統計特征進行推測攻擊.針對地理位置聚集信息,Pyrgelis等人建立了博弈模型,并將其轉化為是否屬于特定集合成員的分類問題,進一步實現了對于地理位置信息的成員推理攻擊[92].除了判別模型,Hayes等人還提出了白盒和黑盒情況下針對于生成模型的成員推理攻擊,并在多個數據集上開展了實證研究[93];Salem等人提出了針對在線學習算法的數據重構攻擊,對在線學習模型的更新訓練數據進行了推測和復原[94].以往大多數相關研究工作會采用一些攻擊者擁有同分布數據、影子模型或者目標模型結構等假設.對此Salem等人研究了這些假設逐步弱化時的成員推理攻擊情況[91].結果表明,即使在已知信息很有限的情況下,攻擊者仍然具有進行成員推理攻擊的能力.
除此之外,Carlini等人揭露了深度學習模型,尤其是生成模型中存在的“意外記憶問題”[95]——模型在對低頻的敏感訓練數據(如用戶密碼等)進行學習的同時,會傾向于完整地記憶與目標任務無關的訓練數據細節,這就為該類數據帶來了泄露風險.實驗結果表明,傳統的過擬合抑制方法很難解決意外記憶問題.對此,Carlini等人提出了對應的“暴露度”(exposure)指標來評估意外記憶程度,用于輔助開發者進行模型結構和參數的選擇、調整.
針對用戶數據保護問題,研究者提出了多種解決方案.常見的一種方法是利用差分隱私(differential privacy)模型[96]來分析算法所能提供的隱私性保證.Chaudhuri等人證明在訓練時通過向代價函數,即模型預測值與標簽的誤差加入指數分布的噪聲,可以實現ε-差分隱私[97].Abadi等人提出在梯度被用于參數更新前對梯度添加擾動,可以達到單一訓練方場景下的一種強差分隱私邊界[98].Shokri等人證明對于類似深度神經網絡的大容量模型,借助引入噪聲參數的多方計算,可以保證差分隱私性[99].Gilad-Bachrach等人提出了一種神經網絡模型的加密方法——CryptoNets,該方法使得神經網絡可以被應用于加密數據[100].CryptoNets允許用戶向云端服務上傳加密數據,而無需提供秘鑰,從而保證了用戶數據的機密性.為了保證用戶數據隱私,擁有訓練數據的雙方或者多方可能不被允許直接進行訓練數據的交換和合并,這就造成了“數據孤島”問題.對此,有研究提出利用聯邦學習(federated learning)方法來進行多方聯合學習[101].在該模型下,訓練數據并不會離開本地.各方建立一個虛擬共有模型,通過加噪機制交換參數,對共有模型進行共同訓練.
模型萃取攻擊(model extraction attack)是指攻擊者可以通過發送輪詢數據并查看對應的響應結果,推測機器學習模型的參數或功能,復制一個功能相似甚至完全相同的機器學習模型.例如理論上講,針對n維線性回歸模型,通過n組線性不相關輪詢數據及模型輸出可準確求解出權重參數[38].該攻擊可破壞算法機密性,造成對知識產權的侵犯,并使攻擊者隨后能夠依據被復制模型進行對抗樣本攻擊或模型逆向攻擊.Lowd和Meek提出了有效的算法來竊取線性分類器的模型參數[34].Tramèr等人證明,當API為返回置信度分數時,可以更準確和有效地推測模型參數[38].此外,超參數在機器學習中至關重要,因為超參數的差異通常會導致模型具有顯著不同的性能.根據機器學習模型最終學習到的參數往往會最小化代價函數這一原則,Wang等人提出了機器學習模型的超參數推測方法[102].
對于模型萃取攻擊,最直接最簡單的防御策略是對模型參數[102]或者輸出結果進行近似處理[38].除此之外,為了避免模型被盜用、保護知識產權,一些研究者還提出了模型水印(watermarking)的概念.Venugopal等人較早地提出關于學習模型水印技術的方法[103],但是它側重于標記模型的輸出而非標記模型本身.文獻[104-105]提出通過向損失函數添加新的正則化項來對神經網絡添加水印的方法.雖然他們的方法保持了模型的高識別精度,同時使水印具有一定的抗毀能力,但其并沒有明確解決所有權的虛假聲明問題,也沒有明確考慮水印生成算法遭泄露后的抗攻擊情況.此外,在文獻[104-105]中,為了避免因密鑰泄露而發生的水印移除情況,驗證密鑰只能使用一次,這帶來了一定的局限性.Merrer等人建議結合對抗樣本與對抗訓練方法為神經網絡注入水印[106].他們提出生成2種類型(被模型正確和錯誤地分類)的對抗樣本,然后微調模型以使其正確地對所有類型進行分類.這種方法在很大程度上依賴于對抗樣本以及它們在不同模型中的可遷移性,但目前尚不明確對抗樣本在什么條件下能夠進行跨模型遷移,或者這種遷移性是否會被削弱[107].Adi等人提出了一種黑盒方式的深度神經網絡水印技術[108],從理論上分析了該方法與模型后門的聯系,并通過實驗證明了該方法不影響原模型性能,同時對水印的魯棒性進行了評估.
模型輸出將會直接決定人工智能系統的分類和決策.通過對決策輸出部分的劫持和結果篡改可以直接實現對系統的干擾或控制.另一個需要注意的問題是,多數人工智能服務接口會反饋豐富的信息,但是豐富準確的決策輸出值可能會帶來安全隱患——攻擊者據此可以開展模型逆向攻擊和模型萃取攻擊,或者利用置信度來迭代式構造對抗樣本.此外,Elsayed等人介紹了一種對抗性重編程方法(adversarial reprogramming)[109].即使模型的訓練目的并非是完成攻擊者所指定的任務,攻擊者通過制造一個對抗擾動并添加至機器學習模型的所有測試輸入,可以使模型在處理這些輸入時執行攻擊者選擇的任務.利用該方法,攻擊者只需要付出很小的代價,就可以借助他人訓練好的模型資源實現所需的系統功能.
如4.4節和4.5節所述,針對利用模型輸出置信度進行數據逆向、模型萃取或模型重用等探索攻擊行為,可以采用輸出值近似處理或引入隨機波動來降低探索攻擊反饋結果的準確性,提高攻擊難度.
當前流行的深度學習框架,如Caffe,Tensor-flow,Torch等,提供了高效、便捷的人工智能系統開發支持環境,為人工智能技術的推廣作出了巨大貢獻.僅需幾百行甚至幾十行的核心代碼就可以完成模型的搭建、訓練和運行.但與框架的使用簡潔性恰恰相反,為了完成對多種軟硬件平臺的支持以及復雜計算功能的集成,深度學習框架往往需要依賴于種類紛繁的基礎庫和第三方組件支持,如Caffe包含有超過130種的依賴庫[110].這種組件的依賴復雜度會嚴重降低深度學習框架的安全性.某個組件開發者的疏忽,或者不同組件開發者之間開發規范的不統一,都可能會向深度學習框架引入漏洞.更為嚴重的是,一個底層依賴庫的漏洞(如圖像處理庫OpenCV)有可能會蔓延到多個高層深度學習框架,進而影響到所支持的一系列應用中.此時攻擊者可以基于控制流改寫人工智能系統關鍵數據,或者通過數據流劫持控制代碼執行,實現對人工智能系統的干擾、控制甚至破壞.Xiao等人分析了深度學習應用的層級結構,并披露了Tensorflow,Caffe與Torch三種深度學習框架及其依賴庫中的數十種代碼漏洞,同時展示了如何利用該漏洞引發基于3種框架的深度學習應用發生崩潰、識別結果篡改、非法提權等問題[110].
通常來說,可以利用傳統的漏洞測試方法,例如模糊測試來發現軟件中的代碼漏洞.但是,傳統的漏洞測試方法在應用于深度學習框架時具有其局限性.Xiao等人指出,基于覆蓋率的模糊測試方法對于深度學習應用的測試效果并不理想[110].其原因在于基本上所有的輸入數據都經過相同的網絡層進行計算,導致大量輸入樣本覆蓋的是同一條執行路徑.另一個問題則在于難以區分代碼邏輯漏洞和模型本身的對抗樣本訓練不完全問題.
雖然依靠海量數據和深度學習技術的人工智能系統在多種任務上表現出突出的工作性能,但由于諸如訓練數據偏差、過擬合和模型缺陷等原因,即便在非對抗環境下,系統罕見或邊緣樣本輸入可能會引起人工智能系統出現意外或錯誤的行為.例如自動駕駛訓練數據無法覆蓋所有光照、天氣、道路及周圍物體分布下的行駛情況,致使未知路況下無人駕駛汽車行為的準確性和可預測性難以得到保證.在安全要求較高的場合,罕見邊緣樣本的訓練缺失有可能導致災難性后果.由于目前深度學習模型可解釋性差,難以對系統異常行為進行預測或歸因,發現由訓練不完全或偏差導致的模型缺陷成為一個極具挑戰性的問題.
為了發現人工智能系統中潛藏的漏洞,相關研究工作將軟件自動化測試中的概念遷移到了人工智能領域.Pei等人設計了深度學習系統的白盒測試框架DeepXplore[111],并提出了“神經元覆蓋率(neuron coverage)”的概念,該框架會按照一定策略自動生成測試樣本來觸發潛在的異常行為,以幫助發現網絡缺陷;Ma等人在文獻[111]基礎上提出了多方位細粒度的自動化測試方法DeepGauge[112],并提出了更詳細的神經網絡自動化測試指標;受MCDC測試覆蓋率指標的啟發,Sun等人提出了基于DNN結構特征和語義的4種測試指標[113],并在MNIST,CIFAR-10和ImageNet分類任務上進行了驗證測試;Ma等人將傳統軟件測試中的組合測試(combinatorial testing)概念延伸到深度學習模型上并提出了DeepCT[114];Ma等人還將變異測試(mutation testing)概念沿用到深度學習模型上并提出了DeepMutation測試框架[115],設計了針對訓練數據和訓練過程的原始級變異方法,以及針對無訓練環節的模型級變異方法;針對神經網絡在數值傳遞過程中可能存在的漏洞,Odena等人提出了針對神經網絡的基于覆蓋指導的模糊(coverage-guided fuzzing)方法TensorFuzz,以幫助代碼調試[116].除了自動化測試之外,還有學者嘗試了形式化分析方法:Wang等人基于區間型符號的神經網絡形式化安全分析方法[117],根據輸入估計網絡的輸出范圍,判斷是否會觸犯某些安全限定.
為了提高系統的智能化,諸如語音助手等的人工智能服務需要被賦予很高的系統操作權限,一旦設計不當,很容易被攻擊者利用進行系統非法操作.例如Diao等人展示了攻擊者可以控制設備揚聲器,在后臺播放準備好的音頻文件,同時借助安卓系統內嵌的谷歌語音助手,進行無權限情況下的發送信息、讀取隱私數據、甚至是遠程控制等操作[118].
綜上對人工智能系統中的安全風險進行總結,如表1所示:
針對表1中所總結的人工智能系統安全與隱私問題,在本節,我們將討論在人工智能安全分析與防護研究工作中的4個發展方向:
1) 物理對抗樣本.針對無人駕駛、人臉識別、語音識別等關鍵應用,需要評估其在真實場景下的安全性能,尤其是潛在的物理對抗樣本威脅.不同于信息域內對圖像、音頻等文件直接進行修改的對抗樣本攻擊方式,物理對抗樣本攻擊效能評估還需要同時考慮物理環境以及輸入輸出設備特性等因素的影響.例如針對視覺系統而言,還需考慮光照、角度、攝像頭光學特性、打印設備分辨率及色差等因素對構造對抗樣本的影響;對音頻處理系統而言,進行音頻對抗樣本的重放攻擊需同時考慮攻擊揚聲器的聲音播放質量、目標麥克風的收音性能以及背景噪聲等因素的影響.
2) 模型魯棒性的形式化驗證.形式化驗證可以給出對于攻擊的上界模型魯棒性下界的估計,對于安全系數要求較高的場合而言是十分必要的.可以預見,形式化驗證將是今后模型安全評估的一個重要研究方向,會有越來越多的研究集中在如何降低驗證復雜度以及提高方法的模型普適性上.
3) 人工智能系統自動化測試方法.當前形式化驗證方法計算復雜度高、難以應用到實際深度模型上.此外,復雜的代碼依賴層級給人工智能系統的人工分析帶來極大的難度.對此,可以借助自動化測試方法來持續提高對攻擊強度的平均估計,發現模型可能出現的異常行為或者安全漏洞.除了代碼自動化測試方法以外,模型的自動化測試也可以作為模型形式化驗證的一種輔助措施.在設計和應用自動化測試方法時需要關注3個問題:①如何定義模型異常行為;②如何區分模型在無意義分類邊界下和關鍵分類邊界下的異常行為;③如何定義自動化評測的引導指標.
4) 隱私保護.在某些應用場景中,相較于人工智能服務的精度,用戶更重視個人數據的隱私保護.尤其在大規模分布式數據存儲和模型訓練的情況下,如何同時保證用戶數據隱私和模型的訓練效率及工作精度是在人工智能服務提供商需要解決的關鍵問題.
隨著深度學習技術及計算硬件架構的發展和變革,人工智能技術在機器視覺、語音識別、機器視覺等關鍵任務上取得了重大突破,接近甚至超過人類水平,這些成果推動了人工智能技術的技術落地,衍生出諸如人臉識別、語音助手、無人駕駛等應用領域.在促進人工智能系統為人類生產生活帶來便利的同時,如何發現、修復人工系統中的安全缺陷,規避人工智能應用風險也成為了人類和社會日漸關心的問題.本文在對國內外人工智能安全研究調研和分析的基礎上,總結歸納了數據輸入、數據預處理、學習模型與模型輸出4個系統關鍵點中可能存在的安全風險及應對措施,并進一步指出了人工智能安全分析與防護技術未來的研究趨勢.