視覺語言模型攻擊
攻擊視覺語言模型的完整技術,包括 GPT-4o、Claude 4 和 Gemini,涵蓋對抗性圖像、印刷型漏洞利用和多模態越獄。
概述
視覺語言模型(VLM)代表了近年來 AI 攻擊面最顯著的擴展之一。GPT-4o、Claude 4、Gemini 2.5 Pro 等模型接受文字和圖像輸入,透過共享的 Transformer 架構處理它們,這些架構將視覺資訊投影到與文字相同的符元嵌入空間中。這種架構選擇雖然能夠進行強大的多模態推理,但也創造了純文字系統中不存在的根本性安全漏洞。
核心問題很直接:當模型可以從圖像讀取文字時,任何圖像都成為潛在的提示詞注入向量。基於文字的輸入過濾器、安全分類器和系統提示詞保護在文字通道上運作。視覺通道預設繞過所有這些防禦。將指令嵌入圖像的攻擊者利用了防禦部署位置(文字)和模型實際處理指令位置(文字和視覺聯合)之間的不對稱性。
VLM 架構與攻擊面
VLM 如何處理視覺輸入
現代 VLM 無論提供商如何,都遵循大致相似的架構。視覺編碼器(通常是視覺 Transformer ViT 變體)將輸入圖像分割為固定大小的塊(通常是 14×14 或 16×16 像素)。每個塊被投影為嵌入向量,這些塊嵌入通過 Transformer 層產生視覺符元序列。投影層將這些視覺符元映射到與語言模型文字嵌入相同的維度空間。語言模型透過其標準 Transformer 層處理視覺和文字符元的組合序列。
VLMPipelineStage 資料類別記錄每個管線階段的攻擊面和防禦難度:
| 階段 | 攻擊面 | 防禦難度 |
|---|---|---|
| 圖像預處理 | 元資料注入、隱寫術載荷、格式漏洞 | 中 |
| 塊嵌入 | 針對特定塊的對抗性擾動 | 高 |
| 視覺編碼器(ViT) | 注意力操控、特徵碰撞攻擊 | 非常高 |
| 投影層 | 跨模態遷移、嵌入空間注入 | 非常高 |
| 語言模型 | 透過視覺通道的標準提示詞注入 | 高 |
關鍵攻擊面:投影層
投影層是 VLM 管線中安全最關鍵的組件。它將視覺表示轉換為語言模型的輸入空間。當這種轉換保留圖像中的文字語義時——這對 OCR 能力是必要的——它同時保留了嵌入在那些圖像中的任何注入指令。
Carlini 等人 (2024) 的研究表明,針對一個 VLM 的視覺編碼器優化的對抗性擾動可以有效遷移到共享類似視覺編碼器架構的其他 VLM。由於大多數生產 VLM 使用 CLIP 系列視覺編碼器,針對開源模型開發的攻擊經常遷移到閉源生產系統。
印刷型攻擊
基本圖像中的文字注入
印刷型攻擊是最簡單且最可靠的 VLM 攻擊類別。它們透過在圖像中直接嵌入文字指令來利用模型的 OCR 能力,不需要梯度計算或模型存取。
create_typographic_injection 函式建立包含注入文字指令的圖像:接受指令文字、圖像尺寸、字型大小、文字顏色和背景顏色。使用 PIL/Pillow 渲染文字,自動換行以適應圖像寬度。當 VLM 處理此圖像時,它將讀取並可能遵從嵌入的文字。
混合印刷型攻擊
更複雜的印刷型攻擊將注入文字與合法視覺內容混合,使注入在人工審查期間更難偵測。
create_blended_typographic_attack 函式以低不透明度(0.15 = 15%)將注入文字混合到現有圖像中:
- 散布放置(
scattered):將單詞隨機放置在圖像各處 - 邊框放置(
border):沿圖像邊框放置文字,在那裡不太顯眼 - 中心放置(
center):在圖像中心放置完整指令
低不透明度文字對人類審查者難以注意到,但 VLM 處理每個圖像塊的完整像素資料,可以讀取比人類感知對比度低得多的文字。
跨提供商效果
| VLM 提供商 | OCR 靈敏度 | 注入成功率 | 備注 |
|---|---|---|---|
| GPT-4o | 高 | 可變 | 強大的安全訓練降低了遵從注入指令的可能性 |
| Claude 4 | 高 | 可變 | 指令層次降低了圖像源指令的影響 |
| Gemini 2.5 Pro | 高 | 可變 | Google 的安全過濾器增加了額外的防禦層 |
| LLaVA(開源) | 中 | 較高 | 較少的安全訓練意味著對注入指令更高的服從性 |
| InternVL | 中 | 較高 | 開源模型通常更易受攻擊 |
對抗性擾動攻擊
基於梯度的圖像擾動
與嵌入可見文字的印刷型攻擊不同,對抗性擾動攻擊以對人類不可察覺但對模型視覺編碼器有意義的方式修改像素值。這些攻擊需要存取代理模型的梯度。
AdversarialImageGenerator 類別使用投影梯度下降(PGD)優化針對代理視覺編碼器的像素擾動:
epsilon:擾動約束(預設 8/255,L-∞ 球)step_size:每步更新量(1/255)num_steps:優化步驟數(200)
generate 方法的邏輯:預處理圖像,對目標文字進行編碼,迭代 PGD 步驟——每步計算視覺特徵、對目標文字嵌入進行投影、最大化余弦相似度(最小化負余弦相似度損失),然後沿梯度符號方向更新,投影回 epsilon 球。
優化將目標指令的語義嵌入到圖像的視覺表示中,使模型在沒有任何可見文字的情況下處理指令。
針對閉源 VLM 的遷移攻擊
由於來自 OpenAI、Anthropic 和 Google 的生產 VLM 是閉源的,無法直接進行梯度攻擊。然而,遷移攻擊——針對開源代理模型生成的對抗性圖像——是有效的,因為 VLM 共享類似的視覺編碼器架構。
三種已記錄的代理配置:
- CLIP ViT-L/14(針對 GPT-4o):epsilon 16/255,500 步
- SigLIP SO400M(針對 Gemini 2.5 Pro):epsilon 16/255,500 步
- 集成攻擊(針對 Claude 4):使用 CLIP + SigLIP + DINOv2 的集成,epsilon 12/255,800 步
集成攻擊在多個代理模型間平均梯度,產生遷移到未見目標模型更可靠的擾動。這是針對閉源 VLM 的推薦方法。
多模態越獄
圖像增強越獄
標準基於文字的越獄可以用圖像增強以提高效果。視覺通道提供了一個與基於文字的越獄互動的額外指令注入向量。
MultimodalJailbreakEvaluator 類別評估多模態越獄技術:
evaluate_text_only:使用純文字通道測試越獄evaluate_image_augmented:使用文字和圖像通道測試越獄(圖像可能包含補充文字越獄的額外指令,或圖像包含完整載荷而文字通道顯示為良性)compare_effectiveness:比較純文字與圖像增強越獄的有效性,計算圖像增強的改進倍數
_check_bypass 方法透過搜索拒絕指標(「I can't」、「I cannot」、「against my guidelines」等)來確認是否實現了安全繞過。
分割載荷攻擊
一種特別有效的技術將對抗性載荷在文字和圖像通道之間分割,使得兩個通道單獨都不包含觸發安全過濾器的內容。
create_split_payload_attack 函式說明了這種方法:圖像包含指令的第一個片段,文字提示詞包含指令的第二個片段和一個看似良性的請求。模型在聯合處理兩個通道時重新組合完整指令,因為兩個通道都投影到同一嵌入空間。
系統性 VLM 評估框架
VLMAssessmentPlan 類別提供涵蓋所有攻擊類別的結構化評估計劃,每個類別映射到 MITRE ATLAS 技術和 OWASP LLM Top 10 類別:
| 攻擊類別 | ATLAS 技術 | OWASP | 優先級 | 測試案例 |
|---|---|---|---|---|
| 印刷型 | AML.T0048 | LLM01 | 嚴重 | 直接注入、混合、低不透明度、EXIF、邊框 |
| 對抗性擾動 | AML.T0043 | LLM01 | 高 | CLIP 白盒、集成遷移、通用補丁 |
| 多模態越獄 | AML.T0054 | LLM01 | 嚴重 | 圖像增強越獄、視覺角色扮演 |
| 分割載荷 | AML.T0048 | LLM01 | 高 | 圖像+文字分割、多圖像組裝 |
| 間接注入 | AML.T0051 | LLM01 | 嚴重 | 截圖、文件、檢索內容 |
提供商特定考量
GPT-4o:使用統一多模態架構,視覺和文字符元由同一 Transformer 處理。OpenAI 在包含多模態場景的安全訓練上投入了大量資源,但 OCR 路徑對印刷型攻擊仍然是可靠的注入向量。
Claude 4:Anthropic 的 Claude 4 實作了指令層次,系統級指令優先於用戶級內容,圖像源內容被視為較低信任。這種架構決策使 Claude 比沒有明確指令層次的模型對印刷型注入更具抵抗力,但並未消除攻擊面。不類似文字指令的對抗性擾動可能繞過層次結構。
Gemini 2.5 Pro:Google 的 Gemini 2.5 Pro 透過單一多模態架構原生處理圖像、音訊和視頻。其視覺處理管線包括在視覺內容到達語言模型之前對其進行操作的安全過濾器,但這些過濾器主要訓練於偵測有害視覺內容,而非圖像中嵌入的對抗性指令。
防禦措施及其局限性
| 防禦 | 有效性 | 局限性 |
|---|---|---|
| 基於 OCR 的文字提取和過濾 | 捕捉可見印刷型攻擊 | 遺漏對抗性擾動和低不透明度文字 |
| 輸入圖像預處理(JPEG 壓縮、調整大小) | 減少某些擾動攻擊 | 降低合法圖像品質;自適應攻擊可繞過 |
| 視覺安全分類器 | 偵測有害視覺內容 | 未針對圖像中的基於文字的注入進行訓練 |
| 指令層次(系統 > 用戶 > 圖像) | 減少圖像源指令的影響 | 不阻止模型讀取注入的文字 |
| 使用視覺擾動進行對抗性訓練 | 提高對已知擾動類型的穩健性 | 昂貴;不能推廣到新型攻擊類型 |
| 跨視覺編碼器的集成偵測 | 標記產生不一致編碼的圖像 | 高計算成本;對異常圖像的假陽性 |
實際測試工作流程
進行 VLM 紅隊評估時,遵循此工作流程:
-
列舉視覺輸入路徑:識別圖像進入系統的所有點(直接上傳、URL、截圖、文件處理、檢索內容)。
-
首先測試印刷型注入:這些是概率最高的攻擊,需要最少的努力。從白底白字和可見文字方法開始。
-
測試混合攻擊:如果印刷型注入有效,測試混合是否在保持效果的同時降低可偵測性。
-
生成對抗性擾動:如果有 GPU 存取和代理模型,生成對抗性圖像進行遷移攻擊。集成方法遷移更可靠。
-
測試多模態越獄:將已知的文字越獄與對抗性圖像結合。測試兩個通道單獨都不是對抗性的分割載荷方法。
-
用 MITRE ATLAS 映射記錄發現:每個發現應包括 ATLAS 技術 ID、重現步驟,以及基於 OWASP LLM 風險框架的嚴重性評估。
參考資料
- Carlini, N., et al. "Are aligned neural networks adversarially aligned?" arXiv preprint arXiv:2306.15447 (2023).
- Zou, A., et al. "Universal and Transferable Adversarial Attacks on Aligned Language Models." arXiv preprint arXiv:2307.15043 (2023).
- Qi, X., et al. "Visual Adversarial Examples Jailbreak Aligned Large Language Models." AAAI Conference on Artificial Intelligence (2024).
- Shayegani, E., et al. "Jailbreak in Pieces: Compositional Adversarial Attacks on Multi-Modal Language Models." ICLR (2024).
- MITRE ATLAS framework — https://atlas.mitre.org
- OWASP LLM Top 10 — https://owasp.org/www-project-top-10-for-large-language-model-applications/
為什麼針對開源模型生成的對抗性擾動攻擊對閉源 VLM 有效?
分割載荷攻擊相對於傳統印刷型注入的主要優勢是什麼?