部落格 發布於 AIA: 2026年8月2日

ZombieAgent:連接器提示詞注入如何跨工作階段持續,並擴散到更多收件者

Radware 在受控研究中展示,攻擊者把提示詞藏進電子郵件或文件後,只要使用者日後要求 ChatGPT 透過連接器讀取該內容,原本正常的工作流程就可能遭惡意指令操弄,轉而外洩資料。研究人員觀察到,攻擊者可以事先準備多個固定 URL,讓每個 URL 分別對應一個字元。例如,請求 https://attacker.example/a 代表字元 A,請求 https://attacker.example/b 代表字元 B;系統依序請求哪些 URL,就等於逐字傳出遭竊資料,攻擊者再從伺服器紀錄還原完整內容。攻擊者還能引導 ChatGPT 把指令寫入 Memory(可跨對話保存資訊的記憶功能),讓它跨對話持續生效;另有一條支線會竊取聯絡人,再由攻擊者控制的伺服器寄出更多惡意郵件;Radware 表示 OpenAI 已在 2025 年 12 月 16 日修正回報的漏洞。工作區管理者能停用不需要的連接器或 Memory、縮小 OAuth 授權與資料範圍,並撤銷不再需要的授權;原始內容隔離、Memory 寫入與讀回管制,以及預設拒絕未核准的對外連線,則由 OpenAI 或其他平台實作者負責;資料去向政策也只能直接管制仍保有伺服器端內容 ID 的明確資料傳送。

Indirect Prompt InjectionData ExfiltrationSink EnforcementSession IsolationAgentic AI
6 項對應的 AIDEFEND 防禦手法

威脅分析

  • 一般連接器工作會把惡意指令交給模型。攻擊者先把提示詞藏進電子郵件或文件。日後使用者要求 ChatGPT 搜尋信箱或分析文件時,模型可能把隱藏文字誤認成應該遵從的指令。
  • 固定 URL 可以逐字帶走資料。惡意提示詞先提供一組代表不同字元的固定網址。模型每次選一個既有網址,連續請求的順序就能編碼機敏內容,不必新建或修改任何 URL。
  • Memory 讓一次讀取變成長期影響。攻擊者可以把指令藏在外部來源裡,要求 ChatGPT 將會反覆觸發的規則與收集到的機敏資訊寫進 Memory,讓後續的新對話再次載入這些內容。
  • 竊取聯絡人後,攻擊者可以擴散郵件。其中一條路徑會取出最近的電子郵件地址。接著,由攻擊者控制的伺服器自動把惡意郵件寄給這些收件者;寄信的不是 ChatGPT。
  • 這是受控研究。Radware 表示 OpenAI 已在 12 月 16 日修正回報的問題;OpenAI 後來公開說明來源與資料去向分析及 Safe Url 防護,但公開資料仍不足以確認所有持續生效與擴散的變形手法都已排除。

適用的 6 項 AIDEFEND 防禦手法

AID-H-017.007
Dual-LLM Isolation Pattern
極高
原始電子郵件、文件與連接器內容,只能交給沒有工具呼叫權限的隔離型模型(Q-LLM)解析。驗證中介元件(broker)只能透過經簽章的封裝資料,釋出允許清單中預先定義的欄位與不透明紀錄 ID;一般自由文字摘要不能當成安全邊界。擁有工具呼叫權限的決策型模型(P-LLM)不會看到攻擊者原文,而且每項工具操作提案仍須通過執行端授權。
AID-I-004.004
Transactional Promotion Gates (Quarantine -> Trusted)
極高
受到外部內容影響的候選記憶,不能直接寫進可信 Memory。系統要把候選記憶先放進隔離區,綁定租戶、來源、內容雜湊值與目標命名空間;只有取得綁定該內容的核准紀錄與受控寫入端回傳的證明後,才能以不可分割的交易方式轉為可信紀錄。尚在等待核准或已遭拒絕的內容,一律不得加入提示詞組合。
AID-H-018.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
URL 抓取、遠端資源與對外郵件都要經過供應商端的對外連線控制點,預設拒絕,只開放經變更管理核准的目的位址。若明確傳送的資料值已綁定伺服器端內容 ID,工具調度器也要套用已標記資料的去向政策。這能擋下研究中的攻擊者網域,但現行指引不會自動追蹤「機敏字元決定挑選哪個既有 URL」的隱含資料流。
AID-H-018.004
Intent-Based Dynamic Capability Scoping
連接器讀取、Memory 寫入、開啟網頁與對外傳訊,都要註冊成不同的工具名稱。系統要根據已通過身分驗證、且使用者在畫面上看得到的原始請求,產生並簽章一組工具授權,其中列明允許的工具名稱、動作次數上限與有效期限,確保讀信任務不會因信件內容而取得無關工具。這項指引無法限制同一個寬鬆連接器操作裡的信箱資源或結果筆數。
AID-D-001.005
Recalled Memory Pre-Rehydration Scanning
在每筆已儲存的記憶重新加入提示詞組合前,都要掃描該版本的完整內容,找出冒充高權限的指令、延後觸發條件、編碼片段,以及與已隔離惡意內容相符的指紋。偵測結果要綁定租戶、紀錄版本、內容雜湊值、偵測器版本與政策。這項偵測只會建議處置方式;是否阻擋或重新隔離,必須由下游強化或隔離政策另外判斷並執行。
AID-H-006.002
Text, Markup & Structured Output Sanitization and Release Gate
針對會透過渲染器發出請求的支線,系統必須先保留模型輸出,不得直接顯示;只有在遠端資源與 URL 通過資料去向政策後,才能發布。移除或代理未核准的圖片與預覽、停用自動抓取,並用瀏覽器對外連線測試確認 Markdown、HTML、CSS、SVG 和參照式連結不會暗中送出固定 URL 請求。

身為資安防禦者,我們應該這麼做

  • 工作區管理者:盤點哪些工作區開放電子郵件、文件與儲存空間連接器,以及哪些使用者啟用了 Memory。停用不需要的功能、縮小 OAuth 授權範圍與可存取的資料範圍,並撤銷不再需要的授權。
  • 平台實作者:不要讓有工具權限的模型直接讀取原始電子郵件與文件。使用沒有工具權限的隔離型模型,再由驗證中介元件只釋出允許清單中預先定義的欄位與不透明紀錄 ID;拒絕一般自由文字摘要。
  • 平台實作者:把每次請求綁定到使用者原始目的。讀取或摘要工作若要取得聯絡人搜尋、Memory 寫入、外部連線、遠端媒體或傳送訊息權限,必須經過另一條可信流程明確授權。
  • 平台實作者:所有由外部內容產生或影響的候選記憶,都要先放進隔離區;系統必須根據綁定該內容的核准結果,決定是否將其轉為可信記憶。讀回政策也要在組合提示詞前,根據偵測結果決定並執行處置。
  • 平台實作者:預設拒絕外部網址與遠端資源。測試固定 URL 字元表、逐字請求、Markdown 圖片、預覽、重新導向、核准網域濫用與重複的伺服器端抓取。
  • 事件應變人員:保留連接器、Memory、網址抓取與對外傳訊紀錄,移除可疑記憶、撤銷受影響的連接器授權、檢查最近讀取的資料與聯絡人,並通知收到攻擊者郵件的人員。

1 個額外的防禦考量

以控制流程選擇固定 URL 的編碼

現行的內容 ID 去向管制指引,可以管制明確且已標記的資料值傳輸;但當每個機敏字元只用來決定要挑選哪個原本就有效的 URL 時,它不會自動傳遞機敏標記。目的位址允許清單能擋下研究中的攻擊者網域,卻無法擋下在核准網域上進行的所有隱蔽請求序列。
建議做法: 針對這個應用實作控制相依追蹤,或採用失敗即拒絕的規則,禁止模型根據連接器內容自行選擇遠端請求。分別測試固定 URL 字元表、請求順序與速率、重新導向、核准網域濫用,以及伺服器端抓取路徑。

結論

ZombieAgent 同時涉及三道必須分別落實的安全邊界:不可信的連接器內容、可長期保存的助理記憶,以及能對外發出網路請求的功能。修正單一 URL 組合路徑,不代表讀入的文字就變得可信,也不代表 Memory 可以直接寫入。可靠的設計要隔離原始內容、明確核准哪些資料可以轉為可信記憶、讓下游政策處理每次讀回 Memory 時的偵測結果,並預設擋下未核准的對外連線,另外再測試固定 URL 的控制流程通道。