iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
AI Security

從 Web 到 AI Agent:30 天看懂新世代資安攻防系列 第 11

攻擊不一定看得見:多模態、隱形字元與編碼型 Prompt Injection

  • 分享至 

  • xImage
  •  

你看到一張普通的醫學影像,模型看到的卻可能還多一句指令。

Clusmann 等人(2025)在 Nature Communications 上測了這件事。他們把人眼幾乎察覺不到的指令嵌進醫療影像,對四個視覺語言模型(Claude 3 Opus、Claude 3.5 Sonnet、Reka Core、GPT-4o)發動 594 次攻擊,四個全部中招——模型會從正確判讀改口成可能造成傷害的錯誤診斷。

Prompt Injection 不一定長成正常文字。「看不見」有兩種,防法也不一樣。

第一種:同一條文字通道,換個外觀

  • 零寬字元(U+200B 等)插在關鍵字中間,讓比對字串的過濾器認不出來。
  • Unicode 標籤字元(U+E0000–U+E007F)更徹底。它們在畫面上完全不顯示,卻能編碼出一整句 ASCII 指令,模型照樣讀得到。
  • Base64、ROT13 或其他編碼,把指令換成過濾器不認得的形狀。這裡有個反直覺的地方:模型解碼能力越強,這招越有效。能力提升不會自動帶來安全性。
  • 換一種語言。Deng 等人(2024)測過安全訓練的語言落差,低資源語言產生有害內容的機率大約是高資源語言的三倍。要注意那篇談的是 Jailbreak,不是 Prompt Injection,但對防禦端的意義相通:如果你的過濾器只在英文上訓練過,一句爪哇語的注入指令可能過得了它,模型卻讀得懂。

第二種:多了一條通道

圖片、音訊、PDF、工具回傳。文字過濾器做得再乾淨,這些內容一樣會進到上下文(Context)。這不是繞過過濾器,是根本沒經過它。

防禦

輸入正規化要做,但別高估它。 Unicode 正規化(NFKC)不會移除標籤字元那一類不可見碼位——想擋,得另外用碼位白名單,或明確剔除。

每個模態各自檢查,並且假設檢查不完。 影像裡的 sub-visual prompt 目前沒有可靠的偵測方法。所以一張圖片最終能造成多大損害,還是取決於這個 Agent 手上有什麼權限,而不是取決於你的過濾器有多嚴。

把送進模型的最終輸入 log 下來。 不是使用者貼上的原文,是經過檔案解析、OCR、工具回傳、模板拼接之後,真正進到 context 的那一份。多數團隊看得到前者,看不到後者——而攻擊發生在後者。

畫面上有沒有怪東西,不是重點。

模型最後到底讀到了什麼?

延伸閱讀

  • Jan Clusmann, Dyke Ferber, Isabella C. Wiest, Carolin V. Schneider, Titus J. Brinker, Sebastian Foersch, Daniel Truhn & Jakob Nikolas Kather, Prompt Injection Attacks on Vision Language Models in Oncology, Nature Communications 16:1239, 2025(DOI)。
  • Yue Deng, Wenxuan Zhang, Sinno Jialin Pan & Lidong Bing, Multilingual Jailbreak Challenges in Large Language Models, ICLR 2024(arXiv:2310.06474)。MultiJail 資料集已公開,涵蓋九種語言。

上一篇
你沒輸入攻擊指令,網頁替你輸入了:Indirect Prompt Injection
下一篇
System Prompt 藏起來就安全了嗎?Sensitive Information 與 Hidden Context
系列文
從 Web 到 AI Agent:30 天看懂新世代資安攻防13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言