對抗式機器學習

對抗式機器學習（Adversarial machine learning）是針對機器學習演演算法的攻擊，以及針對這類攻擊的防範。2020年的一個問卷統計，實作機器學習的人認為需要針對工業應用的機器學習有進階防護。

機器學習技術大部份是設計來解決特定問題，其假設是訓練資料和測試資料是由相同統計分布下的資料所產生的（獨立同分布，IID）。不過，在一些高風險的應用上，可能會違背上述的假設，使用者刻意的提供違背上述統計假設的假資料。

對抗式機器學習中常見的攻擊包括規避攻擊（evasion attack）、資料下毒攻擊（data poisoning attack）、拜占庭攻擊以及模型析取（model extraction）。

## 歷史

John Graham-Cumming曾在2004年1月於MIT Spam Conference中指出，機器學習的垃圾郵件過濾器可以欺騙其他機器學習垃圾郵件過濾器，將垃圾郵件分類為正常郵件，其作法是用自動學習的方式，在垃圾郵件中加入一些字。

2004年時，Nilesh Dalvi等人發現垃圾郵件過濾器中使用的線性分類器可以用簡單的規避 (網路安全)攻擊來進行欺騙，作法是在垃圾郵件中加入「好的文字」（2007年時，有其他垃圾郵件發送者在在其image spam的華麗詞句中加入雜訊，以欺騙用光學字符識別來偵測的過濾器）。Marco Barreno等人在2006年發表《Can Machine Learning Be Secure?》，概述對於機器學習攻擊的廣泛分類。許多研究者希望非線性分類器（例如支持向量機和人工神經網絡）對於這類攻擊有較好的抵抗能力，一直到2013年Battista Biggio等人提出了第一個對於這類機器學習模型進行的，以梯度為基礎的攻擊（gradient-based attack）（2012年–2013年）。2012年時，深度學習是電腦視覺處理的主流解法，從2014年開始，Christian Szegedy等人也指出深度學習網路也可能被欺騙，仍然是用以梯度為基礎的攻擊來產生對抗性擾動。

近來發現，在現實世界的對抗式攻擊較不容易產生，因為不同的環境限制會抵消對抗性雜訊的效果。例如，對抗性影像微小的轉動或是輕微光照都可能會破壞其對抗效果。此外，像Google Brain的Nick Frosst等研究者指出：要讓自駕車錯過停車標誌，直接移除標誌，會比產生對抗性範例要簡單。Frosst認為對抗性機器學習的群體誤以為在特定資料分布下訓練的模型，在完全不同的資料分布下也會有相同的表現。他建議探索新的機器學習方式，有一種獨特的類神經網路正在開發，其特性比其他現有方式更接近人類的感知。

雖然對抗式機器學習仍主要是從學術界開始，但像是Google、Microsoft、IBM等公司已開始製作文件以及開源的程式碼基底，讓其他人可以具體評估他們所使用模型的穩健性，並且降低對抗式攻擊的風險。

### 例子

對抗式機器學習的例子包括攻擊反垃圾郵件系統，利用在「壞」文字中插入「好」文字來混淆系統，讓垃圾郵件可通過，在電腦安全上的攻擊，像是在讓系統混淆，不過濾有惡意程式的網路封包，或是改變網路串流的特徵，以誤導入侵偵測系統；生物特徵識別上的攻擊，用偽造的生物特徵來冒用有權限的使用者通過偵測，或是損害使用者樣本庫，使其無法隨著時間更新使用者特徵。

研究者指出只更改一個畫素就可以欺騙深度學習演演算法。在2017年曾有人用3D列印製作一隻玩具烏龜，上面的紋理會讓Google的物體偵測AI，不論在任何角度觀看，都會認為是步槍。製作此烏龜只需要低成本的商業3D列印技術。

有機器修改過的狗圖片，不論是電腦或是人都會認為是貓。有一篇2019年的研究指出人可以猜出AI如何分類出惡意影像。研究者發現一些方法，在停車標誌的外觀上有一些擾動，就可以讓自駕車系統將其分類成車道匯入標誌或是停車標誌。

Nightshade是資料下毒的過濾器，在2023年由芝加哥大學的研究者所提出。這是讓藝術家放在其作品上，以此污染文本轉圖像生成模型的資料集，這些廠商常使用他們在網路上的資料，沒有經過圖片創建者的同意。

邁克菲曾攻擊Tesla曾使用的Mobileye系統，使其在比速限高50mph的速度行駛，方法是在速限告示牌上貼了二吋的黑膠帶。

有人設計放在衣服上的對抗式圖案，目的是要欺騙面部識別系統，因此衍生了一個「隱形街頭服飾」這個小眾產業。

有一個針對類神經網路的對抗式攻擊，可以在目標系統中注入演演算法。研究者也可以創建對抗的聲音輸入，加在看似無害的聲音中，以此對智慧助理發出偽裝指令，另一項平行研究探討了人類對這類刺激的認知。

聚類演演算法也有用於安全應用中。其中進行惡意軟體和電腦病毒分析的目的，是要識別惡意軟體家族，並且產生特定的偵測程式區塊（signatures）。

在惡意軟體偵測上，研究者也提出了可以對抗式惡意軟體生成方式，可以自動化產生二進制文件，規避以學習為基礎的偵測器，同時仍保意惡意功能。像GAMMA之類，以最佳化為基礎的攻擊，用基因演演算法將良性內容（例如填充或是新的程式可執行段）加到Windows可執行檔中，將規避變成有限制的最佳化問題，平衡讓誤導分類的成功率，以及注入載荷的大小，並且證明這可以轉移到商品化的防毒軟體中。其他的研究有使用生成對抗網路（GAN）來學習特徵空間的擾動，設法讓惡意軟體偵測程式誤判為正常軟體，例如Mal-LSGAN，用最小二乘目標和修改後的激活函數代替了標準的GAN損失，提昇訓練穩定性，並且產生對抗性惡意範例，可以在多種偵測器中穩定的降低真正被判定為惡意軟體的機率。

## 將機器學習應用在安全性上的挑戰

研究者發現機器學習技術應用在安全領域的挑戰，和在其他主流應用領域的不同。安全資料會隨時間而演變，其中包括誤分類的標本以及反映的惡意行為，這讓評估和可複制性都變的複雜。

### 資料分類問題

安全相關的資料集的資料格式各有不同，包括二進位檔、網路軌跡（network traces）和紀錄檔。有研究指出將這些來源轉換為等特徵的過程中會引入偏差或是不一致性。

此外，若訓練用和測試用的惡意程式樣本之間沒有適當的隔離，會出現以時間為基礎的洩漏，這可能導致過於樂觀的結果。

### 標籤標註和真實標籤挑戰

惡意軟體的標籤是不穩定的，不同的防毒引擎會對同一個樣本有多種互相矛盾的分類。Ceschin等人注意到惡意標籤家族可能會隨著間更名或是重整，這會導致真實標籤（ground truth）出現更多差異，並降低基準測試的可靠性。

### 觀念漂移（Concept drift）

因為惡意軟體產生器的技術會隨時代而演進，惡意軟體樣本的統計特性也會隨時間而變化。這種概念漂移現象已被廣泛記錄，除非系統定期更新或採用增量學習機制，否則可能會降低模型效能。

### 特徵強健性

研究者發現哪些特徵容易被篡改，哪些特徵不容易篡改。例如，簡單的靜態屬性（像是表格上方的欄位）容易被攻擊者修改，而結構化的特徵（例如控制流圖）則不容易修改，但要提取特徵需要的計算成本也很高。

### 分類不平衡

在現實的布署環境中，惡意樣本的比例相當的少，約在總資料的0.01%到2%之間。不平衡的資料分布會讓模型傾向主要的分類，可以達到高精度，但無法識別惡意的樣本。

此問題的前期研究包括資料層次的模以及序列特定模型。像是N元語法和長短期記憶（LSTM）網路等模型可以為序列資料建模，但其若惡意樣本在訓練集合中的比例和現實類似時，已證明其性能會緩慢衰退，因此此模型在實務的安全應用上有其限制。

為了處理此問題，一個作法是從自然語言處理來調整模型（例如BERT）。此方法將程式活動的順序也視為一種語言，並且為此特殊任務特調一個預訓練的BERT模型。有一個針對此技術在Android activity sequences上應用的報告，在只有0.5%惡意樣本的資料集中，得到了F1 score 0.919。此結果比LSTM和N元語法有大幅提昇，展示用預訓練模型來處理惡意軟體偵測時的分類不平衡問題的潛力。

## 攻擊模式

### 分類

針對（受監督）機器學習演演算法的攻擊，可以由三個主要的軸向分類：對分類器的影響、安全違反（security violation）、以及其特定性。

- 對分類器的影響：攻擊者可以用破壞分類階段來影響分類器。在此之前，攻擊者可能會有探索階段識別弱點。若是有資料處理上的限制，可以讓攻擊者的能力受限。
- 安全違反（Security violation）：攻擊可能會提供會判定為正常的惡意資料。在訓練中提供的惡意資料會讓系統訓練之後，拒絕其實正常的資料。
- 特定性：針對特定目標的攻擊試圖實現特定的入侵/破壞。相反，無差別攻擊會造成廣泛的混亂。

這種分類方法已擴展為更全面的威脅模型，可以對攻擊者的目標、對被攻擊系統的了解、操縱輸入資料/系統組件的能力以及攻擊策略做出明確的假設。此分類法進一步擴展，納入了對抗性攻擊的防禦策略維度。

## 策略

以下是最常遇到的攻擊情境。

### 資料下毒

資料下毒（Data poisoning）是指用規劃好的資料來污染訓練資料集，其目的是要增加輸出的錯誤。假定學習演算法會由訓練集所產生，資料下毒可以有效的改寫演演算法，加入一些潛在有惡意的內容。尤其對於使用者產生的訓練數據，例如用於內容推薦或自然語言模型的數據，目前已有人提出了疑慮。假帳號的無所不在也提供了許多下毒的機會。據報道，Facebook每年刪除約70億個假帳號。在機器學習的工業應用上，資料下毒已是最受關注的議題。

在社群媒體上，有人試著利用造謠來操縱推薦和審核演演算法，以推崇某些內容，壓制其他內容。

有一種特別的資料下毒應用，是後門攻擊，目的是想要教授在某特定輸入（例如圖片、聲音、影像或是文字）下，觸發特定的行為。

例如，入侵檢測系統常常會用搜集到的資料加以訓練。攻擊者可能在這些資料中下毒，在運行中注入惡意樣本，以便干擾後續的再訓練。

資料下毒技術也可以用在文本轉圖像生成模型中，以影響其輸出，藝術家們用此來保護其版權作品或藝術風格免受模仿。

資料下毒也可能因為模型崩潰而無意產生，模型崩潰是指模型用其他AI合成的資料進行訓練。

### 拜占庭攻擊

隨著機器學習規模的擴大，常會需要配合多台電腦或處理器運作。例如，在聯邦學習中，邊緣設備和中央伺服器協同處理，一般是送出模型參數的梯度資料。不過，其中有些設備可能會不依照其預期行為運作，例如危害中央伺服器的模型，或是讓演演算法偏向某特定的行為（例如強化對假資訊的推薦）。另一方面，某訓練是由某一單一電腦進行，此模型很容易因為此電腦失效（或受攻擊）而失效，此系統有單點故障的特性，這是不希望出現的。事實上，甚至是機器的所有者也可能在其中加入可能無法偵測的軟體後門。

讓分散式機器學習演演算法可以不受少數惡意參與者影響（拜占庭將軍問題）的技術中，目前最領先的技術是以強健梯度聚合原則（robust gradient aggregation rules）為基礎。強健聚合原則不一定都能運作，特別是參與者的資料不是獨立同分布的資料。然而，在異質誠實參與者的背景下，例如推薦演演算法中具有不同消費習慣的使用者，或語言模型中具有不同寫作風格的使用者，對於任何穩健學習演演算法所能保證的，都存在可證明的不可能定理。

### 規避

規避攻擊（Evasion attacks）是指利用已訓練模型中的缺陷。例如垃圾郵件提供者以及駭客，常會透過讓垃圾郵件和惡意郵件的內容夾有一般郵件的內容，試圖讓偵測程式混淆，以逃避偵測。其作法會修改樣本以逃避檢測，讓這些郵件被分類為合法郵件。這種攻擊方式並不涉及對訓練資料的影響。其中一個規避的例子是圖像式垃圾郵件，其中垃圾郵件文字內容放在圖檔中，以逃避垃圾郵件檢測器的文本分析，而使用者會看到以圖檔方式顯示的文字，不會想到這段內容是垃圾郵件偵測器不偵測旳。另一個規避攻擊的例子是針對生物辨識驗證系統的欺騙攻擊。

規避攻擊一般會分為兩類：黑箱攻擊和白箱 (軟體工程)。

### 模型析取

模型析取（Model extraction）是指惡意的探測黑箱機器學習系統，目的是要析出其中訓練的資料，若訓練的資料（或模型本身）

是機密或敏感資料，可能會造成問題。例如，可以用模型析取一個私人的股票交易模型，攻擊者可以用這些資料用在個人的獲利上。

最極端的情形下，模型析取會演變成模型偷竊（model stealing），也就是析取到夠多的資料，可以完整重建原來的模型。

另一方面，成員推斷（membership inference）是有針對性的模型析取攻擊，利用不良的機器學習作法的過適結果，推斷資料點的所有者。令人在意的是，有時就算沒有存取目標模型的參數，或是不知道其參數，也可以做到此事，引起對於用敏感資料（像就診記錄，個人身份資訊等）訓練模型的安全疑慮。隨著遷移學習的出現，以及許多先進機器學習模型的公開，科技公司越來越多使用公眾資料來創建模型，讓攻擊者可以自由竹的存取模型的結構和種類。

## 外部連結

- MITRE ATLAS: Adversarial Threat Landscape for Artificial-Intelligence Systems
- NIST 8269 Draft: A Taxonomy and Terminology of Adversarial Machine Learning
- NIPS 2007 Workshop on Machine Learning in Adversarial Environments for Computer Security
- AlfaSVMLib – Adversarial Label Flip Attacks against Support Vector Machines
- Dagstuhl Perspectives Workshop on " Machine Learning Methods for Computer Security"
- Workshop on Artificial Intelligence and Security, (AISec) Series