When Does Machine Learning FAIL? Generalized Transferability for Evasion and Poisoning Attacks論文筆記

When Does Machine Learning FAIL? Generalized Transferability for Evasion and Poisoning Attacks論文筆記

該論文主要是介紹了一個FAIL模型, 即一個通用框架用來分析針對機器學習系統的真實攻擊, 同時也提出了一種有目標的投毒攻擊, 稱作StingRay, 使得該攻擊能擊潰現存的防禦, 通過觀察FAIL的維度, 發現現存的有目標的**逃逸攻擊(Evasion Attack)**中的一種新的遷移特性以及一種能夠對有目標的投毒攻擊提供彈性的特性, 擴展了先前對於攻擊遷移特性的研究並針對投毒攻擊的樣本給出一些結論.

投毒攻擊: 即往訓練樣本里面摻雜惡意的樣本, 使得訓練後整體的模型性能下降
有目標: 即指的是針對某類結果進行攻擊, 即最後攻擊的是針對某類結果的性能下降, 而不是整體的性能下降
逃逸攻擊: 逃逸是指攻擊者在不改變目標機器學習系統的情況下, 通過構造特定輸入樣本以完成欺騙目標系統的攻擊

概述

主要是針對對於機器學習系統的攻擊, 先前許多攻擊都有很多關於攻擊者知識和能力的不同的假設, 這些假設可能是非真實的, 爲了更好地更加系統地分析攻擊的威脅性, 提出FAIL模型, 利用FAIL模型可以較好描述攻擊者的能力, 更好地針對那些對於特徵, 模型算法等細節的知識進行控制, 進而研究受限制的攻擊者的表現.

利用FAIL分析了一種逃逸攻擊的遷移特性以及設計了一種投毒攻擊, 攻破了4個機器學習應用, 並針對投毒攻擊逃逸攻擊的樣本的遷移特性進行進一步的討論.

1. 介紹

現存的在各個領域的機器學習系統都有被攻擊的風險, 包括數據集可能被投毒, 他人可能構造出一些對抗樣本來使得系統結果出錯等.近來有許多研究工作關注逃逸攻擊, 舉個例子, 一個分類器能區分貓和狗, 攻擊者試圖找到一張特定貓的圖片使得其被分類爲狗, 那麼這張特定的貓的圖片就可以誘導分類器出錯, 這是有目標的逃逸攻擊, 當然, 有目標的投毒攻擊也被證明是可行的.

然而這些攻擊方法層出不窮, 更新換代很快, 而且很多現存的攻擊方法並不能表現真實環境下的攻擊者, 爲了能夠更好地分析其性能和限制, 提出FAIL模型, FAIL即, Feature特徵, Algorithm算法, Instances實例, Leverage影響, 在該框架下, 顯示出一種先前的黑盒逃逸攻擊在通用的遷移下表現不好.

提出了StingRay, 一種有目標的投毒攻擊, 克服了先前此類攻擊的限制, 攻破兩種反投毒策略.

藉助FAIL, 系統地探索了實際的攻擊場景, 結果表現出通過FAIL維度表徵的攻擊的遷移特性.

2. 問題陳述

  1. 如何能夠系統地基於現實的關於攻擊者能力的假設對攻擊者進行建模?
  2. 如何在各式各樣的攻擊模型中來定義和分析一種通用的遷移特性?
  3. 是否能夠構造一種有目標的投毒攻擊, 保證該攻擊能夠克服一些檢測機制?

比如使用label標記正確的樣本, 但是該樣本會導致決策邊界的移動

2.1 機器學習中一些定義

一個分類器可被定義爲:
h:XYh: \mathscr{X} \rightarrow \mathscr{Y}
其中xXx\in \mathscr{X}, 是一個實例輸入, 對應yY={y0,y1,...,yn}y\in \mathscr{Y} = \{y_0, y_1, ... ,y_n\}爲標籤, x=(x1,...,xn)x = (x_1, ..., x_n)是一個n維的特徵向量.

給出一個距離度量, 針對n維特徵向量而言有:
D(x,x)D(x,x')

訓練集定義爲SXS \subset\mathscr{X}, 對應着標籤集YSYY_S \subset \mathscr{Y}, 測試集記爲TT, 學習算法記作AA, 利用學習算法和訓練集得到的分類器可以記作h=A(S)h = A(S)

2.2 威脅模型

對於測試集中的tTt\in T, 有對應的標籤ytYy_t \in \mathscr{Y}, 定義乾淨的數據集爲SS^*, 有h=A(S),h(t)=yth^* = A(S^*), h^*(t) = y_t

對於攻擊者來說, 不能控制ttyty_t, 但知道特徵的表示形式, 攻擊者的目的爲:

  1. 利用SS^*得到一個訓練集SS, 使得h=A(S),h(t)=ydh=A(S), h(t)=y_d, ydy_d即攻擊者希望對於tt的分類結果
  2. 儘可能地對總體產生較小地影響, 通過PDR(性能下降比例)來衡量, 其中PDR=LS(h)LS(h)PDR=\frac{L_S(h)}{L_{S^*}(h^*)}

LS(h)L_S(h)爲訓練集爲SS得到的分類器hh的Loss

3. 對實際的攻擊者建模

主要有知識能力兩個方面
利用FAIL分爲四個維度:

  1. 特徵知識(Feature):Fk={i1...n:xi}F_k = \{i\in 1 ... n: x_i 是已知的\}

主要問題: 對於什麼特徵是保密的? 攻擊者能夠訪問具體的特徵值嗎?

  1. 算法知識(Algorithm):AA', 學習所用的算法, 攻擊者利用此算法來創造對抗樣本

主要問題: 算法類型是否已知? 訓練算法是否保密? 分類器參數是否保密?

  1. 實例知識(Instance): SS', 標記了的訓練實例集

主要問題: 整個訓練集都已知嗎或者是部分已知嗎? 已知的訓練實例是否足夠讓攻擊者訓練出一個魯棒的分類器?

  1. 影響知識(Leverage): Fm={i1...n:xi}F_m = \{i \in 1 ... n:x_i 可以被修改\}, 即攻擊者能夠修改的部分特徵

主要問題: 哪一個特徵是可以被攻擊者修改的?

4. StingRay攻擊

這裏給出算法的僞代碼
算法僞代碼

給出算法的約束
算法約束

4.1 針對反投毒攻擊的策略

RONI(Reject on Negative Impact)是一種反投毒攻擊的防禦策略, 但是RONI對於那些有目標的攻擊效果不好, 因此又有tRONI(Target aware RONI), 這裏給出tRONI的算法的僞代碼
tRONI

5. 部分結論

對StingRay配合RONI和tRONI防禦來進行分析
StingRay

可以看出tRONI最多隻能攔截40%的惡意樣本, 但是仍然會造成較大的性能損耗, PDR還是特別的高

通過FAIL模型還可以得到針對不同攻擊和防禦算法的分析數據

分析

6. 後話

可以看出來, 該文章利用FAIL模型對攻擊者進行建模, 然後更加實際地來研究攻擊模型的威脅, 從這個角度入手可能可以構造出更強的攻擊或者更爲實際的攻擊方式, 畢竟對攻擊者的知識和能力都做出了約束, 進而對於防禦一塊也有較大的貢獻.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章