AI 安全大佬教你如何攻擊雲端圖像分類模型
雷鋒網編者按:AI 已經從神乎其神的東西落地在生活當中,智能音箱、無人駕駛、智能支付等都已經用上了 AI 的技術,並且通過實驗、比賽、實際的產品, AI 已經在很多的領域達到了人類的平均水平,甚至在某些領域已經超過了平均水平。但是 AI 面對對抗樣本卻相當脆弱,本次演講的主講人 Dou 所在的百度安全已經通過實驗證明,在原始數據上疊加很小的擾動就可以讓 AI 產生錯誤的識別結果。
以下為 Dou 在第七屆NSC網路安全大會(原中國網路安全大會)的演講概要,雷鋒網在不改變講者原意的基礎上對演講全文進行了刪減,小標題為編者所加,該文原標題為《遷移攻擊雲端AI,一個被遺忘的戰場》。
演講人:Dou,百度安全
攻擊雲端最困難
在經典的圖像領域,左邊原始圖片是一隻熊貓,中間這一塊是我們在原始圖片上疊加的擾動,把擾動放在原始圖片上形成新的圖片,最後生成的圖片叫做對抗樣本。
從人的感官看,最後生成的對抗樣本還是可以清晰識別為一隻熊貓,機器識別模型可能把它識別為長臂猿或者其他的動物,這就是典型的對抗樣本的例子。對抗樣本有一個非常典型的特徵,它欺騙的是 AI 模型,一般欺騙不了人,但人對原始數據的修改難以識別,這裡舉例的僅是圖像數據,在語言、文本數據上也有同樣的現象,在一段語音里疊加一段人不能理解或者是根本沒法察覺的背景音樂,卻可以欺騙智能音箱,2017 年浙大的徐老師通過海豚音實現了類似的攻擊,對抗樣本在廣泛的 AI 各領域都存在,只是目前應用比較多的是圖像識別和語音。
我們是否可以相對形象地解釋一下對抗樣本的存在?我們拿最基礎的二分類問題舉例,這個圖像是不是熊貓,可以簡化為二分類問題,機器學習的過程就是提供足夠多的樣本讓模型學習,能夠畫出分割曲線,綠顏色就是熊貓,紅顏色不是熊貓,學習以後畫出熊貓,他知道曲線上面就是熊貓,曲線下面就不是熊貓。但是,如果修改一定像素,讓它跨越這個分割,從機器的角度來說已經完成了從熊貓到不是熊貓的變化,但是從人的感官無法察覺,有時可能就是十幾個像素點。
接下來對對抗樣本有一些簡單的分類,平常按照對抗樣本的已知情況分為白盒、黑盒,現在介紹的就是白盒攻擊,對你整個模型就是很了解,完整了解模型的結構,甚至是每個參數,也可以沒有限制的訪問模型的輸入,這是一個非常強的條件,相當於整個模型我都了解,還有一個需要特彆強調的是,我可以無限制訪問模型輸入,是直接訪問的,這是非常強的,這是得天獨厚的條件。
相對於白盒而言,困難一點的是黑盒攻擊,我對你使用的模型、參數都不知道,不了解,幾乎無限制的直接訪問模型的輸入。只能訪問這個模型的輸入,攻擊難度就提升了很多,因為我對模型不了解,現在唯一能知道的就是模型輸入,這裡還有一點黑盒模型比較好的地方,在於我對你的輸入是直接訪問模型的輸入,中間不會經過亂七八糟的處理,同時我對黑盒的訪問是沒有任何限制的,可以訪問十萬次,只要機器CPU足夠猛,時間足夠多,就可以無限制訪問,這是一個特別好的條件,攻擊雲端的 API 介面是一種特殊形式的黑盒攻擊,廣義來說也是黑盒攻擊,受的限制更多,除了之前介紹的我不知道你使用的是什麼樣的模型,也不知道什麼樣的參數,更麻煩的地方在於還要經過未知的圖像預處理環節,雲廠商不是傻子,圖像傳上去之前總得「動點手腳」,最常見的是把圖像隨機縮放。或者,從圖像里隨機CROP一個大小,預處理環節對攻擊者造成了多大的影響,接下來會講到這個事情。
還有一種雲端訪問的情況比較苛刻,訪問次數和頻率受限,他是收錢的,會限制你的速度,比如每秒只能傳十張或者是免費一天只能處理一百張,超過一百張就得收錢,如果攻擊者要攻擊雲端模型,訪問的頻率和次數受限,如果是土豪,可以充很多的值,另當別論,網路環境決定了你不可能太頻繁地傳圖片,所以,攻擊雲端是最困難的。
因此,把模型放在雲端會給我們一種錯誤的安全感,比如說我的模型如果是本地化部署,部署在你的手機或者是本地伺服器里都是不安全的,攻擊者可以通過反向破解甚至直接把模型拷出來就可以還原模型,把模型放在本地這是一個共識,大家覺得這是不安全的,但是如果把模型放在雲端,會覺得你訪問我的次數受限,你又不知道我是什麼樣的模型,又不知道模型是什麼樣的參數,是不是就很安全?這是一種錯誤的安全感,再對比一下,白盒和黑盒相比,黑盒困難,是因為黑盒不知道你的模型結構,也不知道你的模型參數,但是攻擊雲端很困難,正是因為這樣的困難,把模型放在雲端是很安全的,我會告訴你不是這樣的。
今天討論的問題就是攻擊雲端圖像分類模型,只是舉個例子,這是比較簡單的場景,圖像分類可以識別你是賓士還是寶馬,圖像問題最後都可以劃分為圖像分類問題,這是最簡單的圖像分類的情況,拿最可愛的貓作為原始圖片,一個攻擊者希望在貓的圖片上疊加一定的擾動以後攻擊雲端圖像分類API,攻擊之前我們的分類模型可以正確識別貓,概率是99%,攻擊以後,模型將對抗樣本識別為別的物體。
第一類:查詢攻擊
常見的幾種攻擊雲端的方式,也是黑盒攻擊的衍生,最常見的就是基於查詢的攻擊。
非常好理解,對應的模型我什麼也不知道,一靠猜,二靠攻,可以不斷通過查詢的反饋來猜測、了解你的模型結構,同時我攻擊的過程在查詢中進行的,要通過大量的請求來了解模型的結構,並且攻擊,攻擊速度特別慢,成本比較高,因為有了雲端的限制,攻擊十萬次,一萬次以後,花一個小時甚至一天,比較慢,成本高,這是時間成本,還有,攻擊要花比較多的錢。我了解到,通常雲平台一天免費的量是從一百至兩千都有,但是可以看到攻擊這張圖片就需要兩萬次甚至十萬次,每攻擊一張照片就得花幾塊錢或者是十幾塊錢。
此外,圖像尺寸越大,查詢次數越多。
基於查詢的攻擊方式在理論上可行,在2015年之前很多論文也只有通過查詢才能攻擊,浙大的紀老師提出一個新的演算法,有一定的先驗知識,我想把人的圖片能夠識別成一個貓或者是把貓的圖片識別成一個汽車,是否可以讓我修改的像素點只集中在貓或者是人的身上?首先把圖像先做一個語義分割,把我們關注的人或者是物體分割出來,只修改該物體身上的像素點,這樣就讓我們查詢的範圍大大減少。
攻擊人物識別模型,比如為了規避政策的風險,裡面只要涉及到明星或者政治人物,盡量希望這張圖片不要傳上去或者是打上特殊的標記,現在很多雲平台都提供這個功能——敏感人物識別,這是奧巴馬的圖片,通過在奧巴馬圖片上修改一些像素點,就無法識別這是奧巴馬,這是基於查詢攻擊演算法的改進。
第二類:本地生成模擬模型
第二種方法,如果已經知道雲端模型,就可以把黑盒攻擊退回為白盒攻擊。
通過研究,很多圖像分類模型基礎單元是很接近的,甚至只是同一個模型增加了層次,對抗樣本本身具有遷移性,如果模型結構越接近,攻擊效果也就越好,縱列前三個可以認為是同一類模型,成素不一樣,後面兩個是別的模型,在本地會攻擊這個模型,生成的對抗樣本,再攻擊雲端的遠程模型,縱軸是本地有的模型,橫軸等於是攻擊模型,數字表明的是準確率,這個值越低表示攻擊效果越好,如果我的對抗樣本都能讓你識別錯,我的準確率是零,值越小說明我的攻擊效果越好,在對角線這個軸都是零,表我本地模型雲端是完全一樣的,攻擊成功率應該是100%,識別是0,結構越接近的,他們對應的識別率比較低,這也證明了如果結構越接近,攻擊效果越好,利用這一點,我們可以猜測雲端可能是什麼樣的模型,在本地用同樣的模型直接攻擊,這樣查詢次數只有一次,攻擊效率比較低,或者說成功率比較低。
第三類:通過訪問猜模型
接下來就是我們實驗室今年提出來的一種新攻擊方式,模型越接近,攻擊效果越好,我們會去猜到底雲端是什麼樣的模型,運氣好了猜中,運氣不好猜不中,是否有某種方式一定保證我可以猜中?
因為常見的圖片分類模型只有那麼多,假設我手上有一張貓的圖片,把貓的圖片拿到手上已知的模型里,每一個都生成對抗樣本,貓讓它識別成狗或者是豬都無所謂,只要識別錯就行,把每一個生成的對抗樣本都扔到雲端問一下,就會有一個好玩的結果,如果某種模型返回的值或者是某種模型生成的對抗樣本成功了,就意味著雲端和本地的模型非常接近,通過有限的查詢,以後就可以大概率猜測出雲端是什麼樣的模型,大大提高了準確率,像已知的圖像模型還是有限的,在二十種以內,在有限的查詢次數摸清雲端是什麼樣的圖片,把黑盒攻擊退化成為白盒攻擊。
這是我們實際攻擊的實驗室案例,這是一個開源的無人車目標檢測模型,正常情況下能夠識別前方的卡車,後方是一輛汽車,通過我們的攻擊方式後,可以讓後面這輛汽車無法識別,汽車消失了,這是對抗樣本直接的例子。
第四類:替身攻擊
基於遷移的攻擊攻擊效果比較好,前提是攻擊者手上必須有相似或者是類似的圖像分類模型,目前開源比較多的ImageNet還是常見的一千個分類,如果要做惡意圖像識別手上沒有足夠多的模型做遷移,怎麼解決這個問題?
有一個新方式——盡量減少查詢的次數,只能做白盒攻擊,攻擊者可以在本地模擬一個白盒,讓它跟雲端的功能相同,這就是替身攻擊的方式,通過有限查詢在本地訓練出一個汽車模型,這樣就把黑盒攻擊又退化成為白盒攻擊,它的攻擊方式分為兩步,第一步通過有限次的查詢 API,得到結果後在本地訓練出一個替身模型,第二步就是白盒攻擊。
這是我們在上個月在DEF CON CHINA 1.0 提的改進版汽車攻擊,常見的替身攻擊需要大量的樣本,攻擊者很難收集成足夠的圖片,如果能用盡量少的圖像在本地訓練出一個模型,做了兩個假設,假設直接拿攻擊圖片作為訓練圖像,我就直接發出我的訓練樣本,第二,讓本地快速使用少量的樣本模擬出雲端功能。
這裡就講到我們用的比較典型的功能,第一,就是我們做訓練模型時通常只會關注你的輸出,把原始圖像扔給你,只會關心你最後分類的標籤對不對,就像老闆在你工作的最後一天只看你的結果,這樣的效果不會太好。一個比較好的老闆會怎麼做?他會在項目關鍵的節點抽查你,看你做的事情跟他預想的是否一樣,我們在訓練時多了一個環節,以前訓練時只會關心整個模型的輸出跟預想的結果是否一樣,但我們在實現時會看這幾個模型在幾個關鍵點的輸出是否跟我設想的一下,我們對項目的把控會更好,從模型訓練角度來講,就會用更小的數據訓練出更好的模型,更像是如何更好地做遷移學習的過程。
第二,通常圖像識別模型是卷積的,我們把模型分為三部分,比如模型的前半部分我們提取的都是一些初級的特徵,比如貓跟人之間提取的是他們身上的紋理,這都是比較初級的特徵。第二層是中間層,提取的是稍微高級一點的特徵,可能到器官或者是更高級別的特徵,到了最後一個級別,更高級別的特徵出現了完整的比如人的軀幹,完整的頭形,層次越低,提取的特徵越初級,層次越高,提取的特徵更高,在攻擊的時除了讓目標產生分類錯誤,在更高級別上跟原來的圖片上產生的差距越大,遷移也就越強,這是我們做的兩個點,一是在替身學習時,用盡量少的樣本確認出方法更強的模型。
第二,在白盒攻擊的時候增加了特徵圖損失,提高攻擊的遷移性,攻擊常見的雲端平台後,攻擊成功率達到了90%,已經接近於白盒的能力,這是我們利用圖像分類的攻擊模型,我們攻擊的是圖像搜索,圖像搜索在實現上有很多的技術,現在比較主流的還是圖片傳上去以後,根據分類結果去找相同的圖片。
剛才講的前三種都是比較有技術含量的,我需要把模型算一算,後面就是一種新發現的方式,機器學習模型的弱點,這種攻擊方式本身不需要大家有深度學習的知識,也不需要大家會高等數學,這是國外研究者發現的,AI 模型或者是圖像分類模型確實可以在圖像分類任務上達到人類平均水平或者是高出人類,在本質上並沒有理解什麼是貓,什麼是狗,理解的還是統計學上的規律,有的翻譯成空間攻擊,無所謂,用比較通俗的語言來說,我在圖片上做一個簡單的旋轉,增加一些噪音,從人的角度理解沒有任何問題,因為我們是真正理解什麼是貓,什麼是狗,從一個機器的角度來說,圖片就是一個矩陣,矩陣類的數據卻發生了很大的變化,圖像只是旋轉十度,但是對圖像來說,矩陣上的每個像素點的值都被修改了,對於機器來說全改掉了,今年國內的老師好像也發了相關的文章,同樣的圖片,本來是手槍,旋轉一下,差不多十度,就把一個手槍識別成捕鼠器,中間的禿鷹,旋轉一下,就變成了大猩猩,右邊這個,常見的噪音有幾個,一個是高斯噪音,早期的黑白電視信號不太好,會出現黑白點,就出現了椒鹽噪音,這個是谷歌的例子,左邊的圖片就是一個茶壺,通過疊加了10%的椒鹽噪音把它識別成一個生物。第二個例子,一張別墅的圖片疊加了15%的椒鹽噪音就被識別成生態系統,導致結果分類輸出產生了錯誤。
以上四種攻擊都可以在不同程度實現對雲端 AI 模型的攻擊,也驗證一個觀點,把模型保留在雲端給人一種錯誤的安全感。
防守方式
處在學術研究階段的防守方式比較多,只能防守一些點,只有都用上才能對抗中低級攻擊,我們把我們能做的事情做好,提升黑客的攻擊門檻,這樣保證黑客不會輕易把我們的模型偷走,一旦模型被偷走,黑盒攻擊退化成了白盒攻擊,成功率接近100%,最重要的一步,雲端的 web 安全要做好,要保證別把模型偷走。
第二,加強濾波器去噪,基礎的濾波器可以幹掉常見的高斯、椒鹽噪音,提高魯棒性,希望大家在不太費勁的情況下加一個濾波,但也有一定的風險,可能降低識別率,大家要做測試。
第三,國外研究員在 2018 年的ICLR上提了七種防禦方式,最後也被一個大佬攻破,這是一種最容易實現而且效果還不錯的防禦方式,生成對抗樣本的過程其實就是利用模型的過擬合,比如在模型實現時可能識別了比較細微的特徵,這些細微的特徵彌補上就可以欺騙攻擊,比如機器識別一張圖片為貓,是因為有一些特殊的褶皺,這些攻擊特徵因為很細緻,把圖像做輕微旋轉縮放後,從人的角度來說,圖像本身沒有發生變化,對抗樣本就會失效,這個實現非常簡單,效果比較好,圖片再傳到雲端之前預處理,把圖片做隨機縮放,隨機挪位置,這樣對圖像分類結果不會產生太大的影響,但是對對抗樣本尤其是基於優化、修改量比較小的樣本會有比較好的防守效果。
另外,我比較推崇的防守方法叫做對抗訓練,無論你怎麼做圖像預處理,本質就可以說是梯度掩碼,證明這樣的方式比較容易攻破,還是要給它喂一些數據,把生成的對抗樣本扔給你,再扔到模型重新訓練,這樣會讓模型變得更加可靠。
我們也開源了AI模型工具箱,可以利用生成對抗樣本,重新訓練自己的模型,讓自己的模型更好抵禦攻擊。
雷鋒網註:第七屆NSC網路安全大會(原中國網路安全大會)由賽可達實驗室、國家計算機病毒應急處理中心、國家網路與信息系統安全產品質量監督檢驗中心、首都創新大聯盟及百家行業聯盟共同主辦。
※小米破局線下,雷軍排兵布陣
※5G商用牌照與5G超級SIM卡均已發布,中國5G快馬加鞭
TAG:雷鋒網 |