📑 投影片連結:20240506 MMAonDM.pptx
當前挑戰
當前的文本生成圖像(Text-to-Image, T2I)擴散模型(如 Stable Diffusion、SDXL、Midjourney、DALL·E 等)為了防止生成不適當(NSFW、暴力、政治敏感)內容,普遍建立了兩道防線:
- 文本端 Prompt Filter:直接比對黑名單或用小型文本分類器過濾包含敏感詞彙的提示詞。
- 圖像端 Post-hoc Safety Checker:在圖片生成後,透過特徵分類器檢查是否有不安全內容,若違規則直接黑屏或打碼。
但這兩道防線真的能擋住惡意攻擊嗎?
文本端 Prompt Filter 易於防堵顯式敏感詞
若直接在 prompt 裡輸入敏感單詞,輸入端的關鍵字過濾器會立刻攔截。攻擊者若想繞過文本過濾,就必須在完全不使用任何敏感詞彙的前提下,讓文本編碼器(如 CLIP Text Encoder)產出與惡意目標 prompt 幾乎相同的特徵表示。
圖像端 Post-hoc Safety Checker 阻擋生成後的敏感內容
即便繞過了文本過濾,生成出來的圖像特徵若太過明顯,依然會觸發輸出端的安全檢查器(如 NSFW detector),導致最終輸出被強制遮蔽。
小筆記:離散 Token 空間的梯度優化難題
文本輸入是由離散的 Token 組成,不能像連續的像素空間那樣直接透過反向傳播做 gradient descent 更新。因此要在海量詞表中搜尋出「看起來人畜無害、但 Embedding 卻高度對齊惡意語義」的詞彙組合,本身就是一個離散優化難題。
主要貢獻
這篇論文提出了 MMA-Diffusion,從文本端與圖像端兩路同時發動攻擊,展示了現有 T2I 擴散模型防護機制的脆弱性。
解決: 文本端 Prompt Filter 易於防堵顯式敏感詞
作者設計了一套基於梯度引導的離散 Token 搜尋策略:
- 初始化一組無害的對抗提示詞
(長度為
)。 - 計算每個位置上詞表(Vocabulary)所有 Token 的梯度,選取前
個梯度方向最具潛力的候選 Token,構建大小為
的候選池
。 - 敏感詞硬性抑制:將所有黑名單敏感詞 Token 的梯度直接設為
,嚴格杜絕任何敏感字眼混入候選池。 - 從候選池中採樣
個候選提示詞(例如採樣 512 組),計算它們與目標惡意提示詞
在 CLIP Embedding 空間的 Loss,挑選 Loss 最低者作為下一輪迭代的
。
透過這個機制,模型能自動拼湊出一組看似完全正常的日常詞彙,卻能在 CLIP 特徵空間精準命中惡意語義。
解決: 圖像端 Post-hoc Safety Checker 阻擋生成後的敏感內容
除了文本攻擊,MMA-Diffusion 也引入圖像模態引導,透過對抗擾動調整生成潛在特徵(Latent Feature),使最終圖像既能呈現攻擊目標的視覺語義,又恰好避開後置安全檢查器的特徵判定邊界,避免觸發黑屏或遮蔽機制。
延伸探討
黑盒與線上商用服務的遷移攻擊
作者在白盒(SD v1.4, v1.5)與黑盒環境(SDXL, Safe Latent Diffusion)以及線上商用系統(Midjourney, Leonardo.Ai, DALL·E 2)進行測試。實驗顯示,在開源模型上生成的對抗 prompt,有相當高的比例能直接遷移到商用服務上,成功繞過對方的安全審查機制並生成 NSFW 內容。
名人攻擊的失敗案例剖析
在針對公眾人物(如政治人物)進行偽造攻擊時,攻擊成功率明顯低於一般 NSFW 主題。原因在於:
– 當防禦系統將特定人名列入黑名單後,攻擊演算法被迫在
中排除該人名的具體 Token。
– 由於人臉特徵具有高度專一性,單純靠周邊語義描繪(如身分、特徵等間接詞彙)很難在特徵空間中精確收斂出該特定人物的長相。這說明具體人名的 Token 在人物臉部特徵檢索上佔據了不可替代的權重。