iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
AI Security

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

你沒輸入攻擊指令,網頁替你輸入了:Indirect Prompt Injection

  • 分享至 

  • xImage
  •  

Direct Prompt Injection 是使用者自己遞出惡意紙條。Indirect Prompt Injection 的紙條,早就夾在你要讀的文件裡。

你只是叫 Agent「幫我摘要這個網頁」,攻擊者卻把「忽略原任務」藏在網頁、PDF 或工具回傳裡。麻煩之處在於,這段文字不會長得像可疑輸入——它是 Agent 被你合法要求去讀的內容。

攻擊路徑

使用者任務 → Agent 讀取外部內容 → 惡意文字進入上下文(Context)→ 資料被誤認成指令 → Agent 做出非預期動作

所以真正決定損害大小的,是 Agent 手上有什麼。這裡要算兩種東西。

一是它能呼叫的工具。能讀信箱、存取檔案或呼叫 API,一段藏在網頁裡的文字就能一路推到真實世界。

二是它的輸出會被誰渲染——這一項最常被漏掉。就算 Agent「只會摘要」,它也可以在摘要裡生一個指向攻擊者伺服器的圖片連結,把剛讀到的內容塞進網址參數裡;渲染器自動抓圖,資料就出去了。全程沒有任何工具呼叫。

EchoLeak(CVE-2025-32711)就是這樣打的。攻擊者寄一封信給受害者,M365 Copilot 讀到信裡的隱藏指令後外傳內部檔案,零點擊,CVSS 9.3。過程中它繞過了微軟自己的 prompt injection 分類器,並利用自動載入的圖片當作外傳通道。

這類攻擊對應 OWASP Top 10 for Agentic Applications 2026 的 ASI01(Agent Goal Hijack)。如果被污染的內容還寫進了長期記憶,下一次對話就會被上一次的攻擊影響,那是 ASI06(Memory & Context Poisoning)。

因此第一道防線是最小權限:即使模型判斷錯,它也拿不到完成危險動作的能力。

人工確認則要加在對的地方。讓人去審那段外部內容沒有用——沒有人會逐字讀完 5000 字網頁,找藏在白字、HTML 註解或圖片 alt 裡的指令。有用的是把關卡設在有副作用的動作上:寄信前確認收件人,付款前確認金額。人審的是動作,不是內容。

防 Prompt Injection,不是期待模型永遠不被騙,而是被騙之後也推不開下一扇門。

延伸閱讀

Kai Greshake, Sahar Abdelnabi, Shailesh Mishra, Christoph Endres, Thorsten Holz & Mario Fritz, Not What You've Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection, AISec '23, pp. 79–90(arXiv:2302.12173)。攻擊示範與完整 prompt 收錄於作者的 GitHub repo。
Pavan Reddy & Aditya Sanjay Gujral, EchoLeak: The First Real-World Zero-Click Prompt Injection Exploit in a Production LLM System, arXiv:2509.10540, 2025。EchoLeak 的完整技術拆解。
OWASP, Top 10 for Agentic Applications 2026, ASI01、ASI06。


上一篇
一句「忽略前面指令」真的能駭進去?Direct Prompt Injection 原理
下一篇
攻擊不一定看得見:多模態、隱形字元與編碼型 Prompt Injection
系列文
從 Web 到 AI Agent:30 天看懂新世代資安攻防13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言