參考 人工智能數據與模型安全 from 復旦大學視覺與學習實驗室
文章目錄
- 0. 計算機安全學術知名公眾號
- 1. 概述
- 數據安全
- 模型安全
- 3. 人工智能安全基礎
- 3.1 基本概念
- 攻擊者
- 攻擊方法
- 受害者
- 受害數據
- 受害模型
- 防御者
- 防御方法
- 威脅模型
- 目標數據
- 替代數據
- 替代模型
- 3.2 威脅模型
- 3.2.1 白盒威脅模型
- 3.2.2 黑盒威脅模型
- 3.2.3 灰盒威脅模型
- 3.3 攻擊類型
- 3.3.1. 攻擊目的
- 3.3.1.1. 破壞型
- 3.3.1.2. 操縱型
- 3.3.1.3. 竊取型
- 3.3.2. 攻擊對象
- 3.3.2.1. 數據
- 3.3.2.2. 模型
- 3.3.3. 攻擊時機
- 3.3.3.1. 訓練階段
- 3.3.3.2. 測試階段
0. 計算機安全學術知名公眾號
- 安全研究 GoSSIP (蜚語、上海交通大學軟件安全小組,主要由李卷孺老師指導) 官網
- 網安國際 (由清華大學段海新教授、復旦大學楊珉教授、螞蟻韋韜博士、華為萬濤博士等共同發起) 官網
- 安全學術圈 (SecQuan) 官網
- 漏洞戰爭 (林椏泉 泉哥)
- 安全張之家 (中國科學院大學張玉清教授)
- 隱者聯盟 (AI 安全和多媒體安全,主要由復旦大學錢振興教授運營)
- NISL 實驗室 (清華大學) 官網
1. 概述
數據安全
- 數據投毒:通過操縱數據收集或標注過程來污染(毒化)部分訓練樣本,從而大幅降低最終模型的性能。
- 數據竊取:從已訓練好的模型中逆向工程出訓練樣本,從而達到竊取原始訓練數據的目的。
- 隱私攻擊:利用模型的記憶能力,挖掘模型對特定用戶的預測偏好,從而推理出用戶的隱私信息。
- 數據篡改:利用模型的特征學習和數據生成能力,對已有數據進行篡改或者合成全新的虛假數據。
模型安全
- 對抗攻擊:在測試階段向測試樣本中添加對抗噪聲,讓模型作出錯誤預測結果,從而破壞模型在實際應用中的性能。
- 后門攻擊:以數據投毒或者修改訓練算法的方式,向模型中安插精心設計的后門觸發器,從而在測試階段操縱模型的預測結果。
- 模型竊取:通過與目標模型交互的方式,訓練一個竊取模型來模擬目標模型的結構、功能和性能。
3. 人工智能安全基礎
當一個安全問題發生時,我們首先要弄清楚是*“誰攻擊了誰”*。這就涉及到人工智能安全問題中三類主要的利益相關者:攻擊者、受害者和防御者。
3.1 基本概念
攻擊者
攻擊者是指對數據、模型及其相關過程,包括數據收集、模型訓練和模型部署等,發起惡意監聽、竊取、干擾、甚至破壞行為的個人或組織。
注意具體發動攻擊的是一個程序,但是會有人類或者組織來操縱,有一種刺人而殺之,曰“非我者,兵也。”
的感覺。
攻擊方法
攻擊方法是指攻擊者用來對數據、模型及其相關過程,包括數據收集、模型訓練和模型部署等,發起攻擊的具體手段。
受害者
受害者是指由于受到數據或模型攻擊而利益受到損害的數據或模型所有者、使用者或其他利益相關者。
與受害者密切相關的兩個概念是:受害數據(victim data
)和受害模型(victim model
);
受害數據
受害數據是指受到惡意攻擊的訓練或測試數據。
受害模型
受害模型是指受到惡意攻擊的人工智能模型。
防御者
防御者是指通過一定的防御措施保護數據或者模型免受潛在惡意攻擊的個人或組織。
防御方法
防御方法是指防御者用來對數據、模型及其相關過程,包括數據收集、模型訓練和模型部署等進行保護,使其免受潛在攻擊的具體手段。
下面定義攻防發生的“戰場”,即威脅模型。
威脅模型
威脅模型定義了系統的運行環境、安全需求、所面臨的安全風險、潛在攻擊者、攻擊目標和攻擊方法、可能的防御策略、防御者可利用的資源等攻防相關的關鍵設置信息。
簡而言之,威脅模型(threat model
)是對真實場景的一種模擬,旨在清晰準確的劃定攻擊者與防御者之間邊界,以便公平的開展攻防研究。數據與模型安全研究中常采用的威脅模型類型:白盒威脅模型、灰盒威脅模型和黑盒威脅模型。
目標數據
目標數據是指攻擊者在進行攻擊時的數據對象。
替代數據
替代數據是指攻擊者自己收集的、可以用來替代目標數據的傀儡數據。
替代模型
替代模型是指攻擊者自己擁有的、可以用來替代目標模型的攻傀儡模型。
3.2 威脅模型
3.2.1 白盒威脅模型
白盒威脅模型主要是對攻擊目標對象來說的,是指攻擊者具有對目標數據或目標模型的完全訪問權限。只要切實可行,攻擊者可以利用任何關于目標數據或目標模型的信息發起攻擊。需要注意的是,“白盒”一般指的是訪問權限,并不意味著攻擊者就可以隨意修改目標數據或目標模型。否則,攻擊者可以任意破壞數據和模型,而不再需要設計特殊的攻擊方法。
3.2.2 黑盒威脅模型
與白盒威脅模型不同,黑盒威脅模型假設攻擊者只能通過API(application programming interface)對模型發起查詢請求并獲得返回結果,而無法獲取訓練數據、訓練方法、模型參數等其他信息。
3.2.3 灰盒威脅模型
灰盒威脅模型介于白盒威脅模型和黑盒威脅模型之間,假設攻擊者可以知道攻擊目標的部分信息,如任務類型、數據類型、模型結構等,但是無法獲得具體的訓練數據或模型參數。
3.3 攻擊類型
在介紹具體的攻擊類型之前,我們需要深入理解機器學習模型本身的特點,因為模型特性決定了它可能存在的弱點和所面臨的攻擊。這里我們以深度學習模型(即深度神經網絡)為例,介紹對機器學習模型不同層次的理解。
- 機器學習模型是一個學習器
機器學習模型可以在學習算法,如有監督學習算法、無監督學習算法等的指導下,從給定訓練數據中學習潛在的規律,并能將學習到的規律應用到未知數據上去,這是對機器學習模型最樸素的理解。
學習器存在一系列共同的弱點,比如當任務定義、訓練數據、學習算法、訓練時長等任何一個環節出了問題,最終得到的模型就會出現性能下降、被惡意攻擊等各種風險。所以攻擊者可以攻擊這其中任何一個環節,以此來阻止模型的正常訓練、破壞模型的泛化、向模型里安插后門等等。 - 機器學習模型是一個計算器
訓練好的機器學習模型可以理解為是一個計算器,其可以對輸入樣本進行一系列復雜的計算并最終輸出預測結果。訓練好的機器學習模型可以理解為是一個計算器,其可以對輸入樣本進行一系列復雜的計算并最終輸出預測結果。
由于機器學習模型的輸入往往是多個樣本(一批樣本),輸出也不是單維度的,所以不同維度的計算結果之間也會產生相互干擾。另外,計算器跟具體的任務一般都不是唯一綁定的,也就是說為一個任務涉及的計算器也有可能會被劫持來服務于另一個非法的任務。 - 機器學習模型是一個存儲器
機器學習模型在訓練數據上不斷訓練的過程也是其不斷學習規律、不斷存儲信息的過程。
既然機器學習模型是一個存儲器,那么其存儲的信息就一定可以通過某種方式“提取”出來,導致隱泄露攻擊、數據竊取攻擊等安全問題的出現。 - 機器學習模型是一個復雜函數
機器學習模型可以被理解為一個將輸入空間映射到輸出空間的復雜函數。
高維的輸入和輸出空間決定了其難以通過有限訓練數據點達到空間的完美覆蓋,導致空間存在大量無法被探索到的高維口袋(high-dimensional pocket)。這樣的函數也決定了其內部會存在一些近路(shortcut),在這些路徑上輸入和輸出之間距離很近,不需要復雜的計算即可直接得出結論;同時也會存在一些死胡同(dead end),無論怎么計算也得不到某類輸出。
3.3.1. 攻擊目的
3.3.1.1. 破壞型
破壞型攻擊的目的只有一個,那就是“破壞”。破壞型攻擊可以破壞機器學習的任何一個關鍵環節,包括數據收集過程、訓練數據、模型的訓練過程、訓練得到的模型、模型部署、模型測試、測試數據等等。任何攻擊都有一定的動機,對破壞型攻擊來說,其攻擊動機包括:破壞競爭對手的人工智能系統、以破壞來勒索受害用戶、無意間使用了具有破壞性的樣本等等。
3.3.1.2. 操縱型
操縱型攻擊的目的是控制數據或模型以完成攻擊者特定的目的。相比破壞型攻擊,此類攻擊要求攻擊者完成對數據或模型更精細化的控制,攻擊難度更大。
3.3.1.3. 竊取型
竊取型攻擊的目的是通過窺探數據、模型或者模型的訓練過程,以完成對訓練數據、訓練得到的模型、訓練算法等關鍵信息的竊取。
3.3.2. 攻擊對象
機器學習大致遵循“數據收集-模型訓練-模型部署”三個步驟。
3.3.2.1. 數據
訓練數據和測試數據是兩類主要數據,訓練數據服務于模型訓練,測試數據服務于模型評估。
數據投毒攻擊通過污染收集到的訓練數據以達到破壞數據、阻礙模型訓練的目的。數據投毒攻擊可以通過不同的方式進行,比如攻擊數據的收集過程、標注過程、或者直接污染收集到的數據。數據竊取通過對模型進行逆向工程,從中恢復出原始訓練數據。
3.3.2.2. 模型
針對模型的攻擊主要包括對抗攻擊、后門攻擊和模型竊取三大類,這三類攻擊分別代表了破壞型、操縱性和竊取型這三類攻擊目的。
對抗攻擊的思想是讓模型在部署使用階段犯錯,其通過向測試樣本中添加微小的對抗噪聲來讓模型做出錯誤的預測結果。有意思的是,這種通過修改輸入樣本來干擾模型預測的攻擊方式并不稀奇,反而會引發兩個疑問。
(1) 既然攻擊者有修改測試數據的權限,那么他/她就可以隨意修改數據,那就不會僅限于微小修改。
(2) 攻擊者可以修改測試數據這一假設會面臨“動機”方面的挑戰,即為什么模型的使用者作為受益者一方要讓模型犯錯呢?
3.3.3. 攻擊時機
根據攻擊時機的不同,現有攻擊大約可以分為訓練階段攻擊和測試階段攻擊。
3.3.3.1. 訓練階段
與模型訓練緊密相關的是訓練數據、訓練算法、超參數和模型,這些元素都有被攻擊的可能。在訓練階段,攻擊者可以對數據進行投毒攻擊,通過污染訓練數據來破壞模型的正常訓練。例如對訓練數據進行增、刪、改、換等不同形式的改動,以此來降低最終訓練得到的模型的性能或者其他屬性(如魯棒性、隱私保護性等)。
目前針對訓練算法和超參數的攻擊并不多見,但是可以想象的是模型訓練對這些參數,比如學習率、初始化參數、訓練周期,是很敏感的。但是對訓練超參的攻擊需要很強的威脅模型,比如攻擊者可以控制訓練過程或者惡意修改訓練代碼。一個有意思的觀察是,部分研究工作開源的代碼存在復現難的問題,需要對訓練算法和超參數進行進一步調優才能達到論文中報告的結果。對于輕量級的訓練來說這可能影響不大,但是對于大規模訓練算法來說,這就會帶來大量的訓練開銷,大大增加研究費用。如果在開源代碼中故意對超參數進行隱藏或者過度復雜化以增加復現難度,就可以被視為是一種訓練超參攻擊。
這個攻擊很有趣,很像當年我寫的代碼里面有死循環,被當成病毒干掉了;
3.3.3.2. 測試階段
相比訓練階段,不論從數據還是模型的角度來說,測試階段的攻擊更多樣化。其中很大一部分原因是測試階段模擬的是模型的真實使用情況,此時模型會以不同的形式接收外部請求,會面臨多種多樣的攻擊。在數據方面,可以以模型為媒介對訓練數據進行竊取和隱私攻擊,還可以借助模型進行數據篡改和偽造。 在模型方面,可以通過修改測試樣本對模型發起對抗攻擊,或者通過查詢API對模型進行竊取攻擊。
本文只做簡要記錄,詳細信息還是細細研究參考書人工智能數據與模型安全