通用對抗性攻擊
可跨模型轉移的通用擾動、對抗性後綴研究,以及構造模型無關攻擊載荷的技術。
通用對抗性攻擊
通用對抗性擾動是最危險的對抗性攻擊類別,因為它能「泛化」。與每次都得針對目標提示詞量身訂做的輸入專屬攻擊不同,通用攻擊產生單一擾動(通常是對抗性後綴或前綴),它能對多樣的輸入奏效,在最強的結果中甚至跨越不同模型架構與規模。
通用性的基礎
為何通用攻擊存在
通用對抗性擾動的存在,揭示了神經網路幾何的根本性質。在相似資料分佈上訓練的模型會發展出相似的內部表徵,而這些共享的表徵會產生共享的漏洞。
以下三種理論框架解釋通用性:
| 框架 | 核心洞見 | 意涵 |
|---|---|---|
| 共享特徵空間 | 在相似資料上訓練的模型會學到相似特徵 | 利用共通特徵的擾動得以轉移 |
| 線性子空間假說 | 對抗性擾動位於低維子空間之中 | 該子空間中的單一方向可影響眾多輸入 |
| 損失地景幾何 | 模型在決策邊界附近共享損失地景結構 | 梯度法會找到相似的下降方向 |
從輸入專屬到通用
從專屬攻擊到通用攻擊的演進有清楚的研究軌跡:
輸入專屬的對抗性樣本
Szegedy et al. (2013) 顯示對單一輸入施加極小擾動便可造成誤分類。每個對抗性樣本皆為特定輸入量身打造。
可轉移的對抗性樣本
Papernot et al. (2016) 證明針對某一模型設計的對抗性樣本可欺騙其他模型,暗示模型間存在共通漏洞。
通用對抗性擾動 (UAPs)
Moosavi-Dezfooli et al. (2017) 發現單一擾動加到任何影像上皆能以高機率造成誤分類,同一擾動在數千個不同輸入上皆奏效。
LLM 的通用對抗性後綴
Zou et al. (2023) 將通用性擴展到語言模型,提出 GCG 攻擊,找出可附加於任何有害請求之後、跨多個模型家族繞過安全對齊的符元序列。
Greedy Coordinate Gradient (GCG) 攻擊
Zou et al. (2023) 提出的 GCG 攻擊是產生 LLM 通用對抗性後綴的奠基演算法。它最佳化一段符元序列,當附加於有害提示詞之後時,能最大化模型以肯定前綴(例如「Sure, here is...」)開始回應的機率。
演算法概述
以下是簡化版的 GCG 演算法。它接受模型、分詞器、目標提示詞集合,並將後綴長度、迭代次數、top_k 與批次大小作為參數:
- 以隨機符元初始化一段
suffix_length長的後綴。 - 選定肯定目標(例如「Sure, here is」)並編碼為目標符元。
- 每次迭代隨機挑選一個目標提示詞,與後綴串接後餵入模型。
- 計算損失為目標回應的負對數似然,並對後綴的 one-hot 符元嵌入反向傳播以取得梯度。
- 針對每個位置,依梯度取 top-k 替換候選符元;將每個候選替換形成候選後綴。
- 在批次上評估所有候選,選擇損失最低者作為下一輪後綴。
- 迭代結束後,將最終後綴符元解碼為文字即為對抗性後綴。
跨模型最佳化
達成跨模型通用性的關鍵在於同時最佳化多個模型。multi_model_gcg 會在每次迭代對所選提示詞計算每個模型的攻擊損失,取平均後以聚合梯度選出下一個後綴候選。如此產生的後綴能同時壓低多個模型的拒絕機率,相較單一模型最佳化更具轉移性。
GCG 的限制與實務考量
| 限制 | 影響 | 緩解 |
|---|---|---|
| 需白盒存取 | 無法直接針對閉源 API 最佳化 | 從開源代理模型轉移攻擊 |
| 運算成本高 | 需多張 GPU 運算數小時至數天 | 分散式最佳化、提早停止 |
| 產生亂碼符元 | 易被困惑度過濾器偵測 | 改用可讀後綴變體 (AutoDAN) |
| 對輸入格式脆弱 | 不同聊天模板會破壞後綴 | 感知模板的最佳化 |
| 隨模型更新衰減 | 新版模型可能不再脆弱 | 持續重新最佳化 |
轉移性研究
轉移性正是讓通用攻擊在實務上變得危險的特質:針對開源模型開發的攻擊可能攻陷閉源 API。
轉移攻擊方法論
選擇代理模型
選擇在架構特徵或訓練資料上與目標相似的開源模型。較大的模型家族(Llama、Mistral、Qwen)作為代理表現更佳,因為它們涵蓋更多表徵空間。
最佳化集成攻擊
同時針對多個代理模型最佳化對抗性後綴。集成最佳化所產生的擾動比單一模型最佳化更具轉移性。
評估轉移率
在目標模型上測試後綴。轉移率差異顯著:同家族內轉移(Llama 7B 轉 Llama 70B)成功率較高,跨家族轉移(Llama 轉 GPT)成功率較低。
迭代精煉
以黑盒最佳化(例如利用 API logprobs 的分數型方法)從轉移候選出發,針對特定目標微調後綴。
轉移率分析
研究顯示對抗性轉移性遵循可預測的模式:
轉移成功率(來自已發表研究的近似值):
同一模型、不同規模: 60-80%
同一家族、不同版本: 40-70%
相同架構、不同訓練: 30-50%
完全不同架構: 10-30%
不同模態(文字 -> 多模態): 5-20%
提升轉移性的因素:
- 共享訓練資料:在重疊語料上訓練的模型共享更多漏洞
- 相似的安全訓練:使用相似偏好資料集的 RLHF/DPO 會產生相似的安全邊界
- 架構相似性:僅解碼器的 Transformer 彼此間的漏洞較接近,與編碼器-解碼器模型則較不相似
- 集成多樣性:針對更多樣代理最佳化可提升對未見目標的轉移率
跨模態轉移
近期研究探索將對抗性擾動跨模態轉移。cross_modal_transfer 示範如何將文字對抗性後綴轉換為影像擾動:先以多模態模型的文字編碼器取得後綴嵌入,再以 Adam 最佳化一個加到基準影像上的可學習擾動,目標是讓影像編碼後的嵌入與文字後綴嵌入在共享嵌入空間中的 cosine 距離最小化;每次更新後將擾動投影到 Lp 球內,以維持視覺上的不可察覺。
進階通用攻擊變體
AutoDAN:可讀的通用攻擊
AutoDAN 解決了 GCG 的主要弱點 — 亂碼後綴過於顯眼易被偵測 — 它同時最佳化攻擊成功與可讀性。核心迭代會評估族群中每個後綴在目標模型上的攻擊成功率作為適應度,挑選前 k 名菁英,再呼叫攻擊者 LLM 將兩位父代內容合併為保留關鍵片語的新段落,作為突變/交配的下一代成員。反覆迭代即可演化出可讀且有效的載荷。
PAIR:提示詞自動化迭代精煉
PAIR 以另一個攻擊者 LLM 透過對話回饋迭代精煉越獄提示詞。攻擊者初始收到系統提示詞與目標描述,每一輪提出越獄候選,送至目標取得回應,再由法官判斷是否成功;若失敗,將目標回應與回饋文字追加到對話歷史,讓攻擊者在下一輪改變策略,直到達成目標或耗盡回合數。
TAP:具修剪的攻擊樹
TAP 在 PAIR 的基礎上以樹狀結構同時探索多種攻擊策略。它從攻擊者 LLM 產生多樣的根節點開始;每一層對每個父節點評分,若分數超過成功閾值即返回;若超過修剪閾值則以三個變體擴展子節點;最後由評估模型排序,僅保留前 width 名候選進入下一層。
實務攻擊流水線
一條切合實務的通用攻擊流水線會結合上述技術:
在開源模型上以 GCG 產生種子
對開源模型(Llama 3、Mistral、Qwen)集成執行 GCG,產生具廣泛轉移性的初始對抗性後綴候選。
以 AutoDAN 改寫為可讀變體
運用 AutoDAN 將 GCG 後綴演化為可讀變體,在維持攻擊效果的同時規避困惑度偵測。
以 PAIR/TAP 對目標專屬最佳化
以精煉過的後綴作為種子提示詞,對目標 API 部署 PAIR 或 TAP;攻擊者 LLM 會針對該目標特有的安全訓練逐步調整攻擊。
通用性驗證
對多個模型版本與設定測試最終攻擊提示詞,確認穩健性與泛化能力。
針對通用攻擊的防禦
防禦通用對抗性攻擊需結合多種互補方法。
困惑度過濾
偵測 GCG 式亂碼後綴的簡單方式是量測輸入提示詞的困惑度:將提示詞編碼後送入偵測模型,取 log-prob 平均後求指數得到困惑度,若低於閾值便視為正常。
對抗性訓練
將對抗性樣本納入安全訓練以建立穩健性:將每個有害提示詞與已知對抗性後綴組合,並將模型的預期回應設為拒絕文字,加入訓練資料集。
擦除與檢查
SmoothLLM 等方法會在輸入上添加隨機擾動並檢查回應是否一致。smooth_llm_defense 會對輸入產生 N 個隨機擾動版本,統計它們被拒絕的比例;若多數擾動版本都觸發拒絕,原始輸入可能含有對抗性後綴,即加以封鎖;否則才讓原始提示詞進入模型。
相關主題
紅隊同時對 Llama 3 8B 與 Mistral 7B 使用 GCG 產生對抗性後綴,然後對 GPT-4 測試。最可能的結果為何?
參考文獻
- Zou et al., "Universal and Transferable Adversarial Attacks on Aligned Language Models" (2023)
- Moosavi-Dezfooli et al., "Universal Adversarial Perturbations" (2017)
- Liu et al., "AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned Large Language Models" (2023)
- Chao et al., "Jailbreaking Black Box Large Language Models in Twenty Queries" (2023) — PAIR
- Mehrotra et al., "Tree of Attacks: Jailbreaking Black-Box LLMs with Auto-Generated Subtrees" (2023) — TAP
- Robey et al., "SmoothLLM: Defending Large Language Models Against Jailbreaking Attacks" (2023)