部落格 發布於 AIA: 2026年7月27日

AgentForger:一個 ChatGPT 連結如何建立會持續接收指令的自主內鬼

Zenity 在受控研究中證實,只要受害者點開一個特製 ChatGPT 連結,ChatGPT Workspace Agents(OpenAI 用來建立企業工作流程 agent 的功能)就可能在已登入的受害者 session 中,自動建立並發布攻擊者指定的 agent。這個 agent 會接上受害者先前授權的連接器(讓 agent 存取 Outlook、Gmail、Slack 等外部服務的整合功能)、關閉操作前確認,並建立一組彼此錯開五分鐘的每小時排程,湊出每五分鐘一次的電子郵件指令循環。OpenAI 已在 2026 年 6 月 8 日修正 Zenity 回報的漏洞。這個案例顯示,agent 控制面變更、連接器使用、排程執行和對外傳送資料,必須各自有獨立授權檢查。

Permission BypassTool AuthorizationHuman-in-the-LoopAgentic AIEnterprise AI
9 項對應的 AIDEFEND 防禦手法
來源: AgentForger, Part 1: ChatGPT Cross-Site Agent Forgery 
作者: Mike Takahashi
原文發布: 2026年7月23日

威脅分析

  • 攻擊者只需要受害者點一次連結。前提是受害者已登入 ChatGPT、可以使用 Workspace Agents,而且至少曾授權一個連接器。
  • 合法的範本深層連結把攻擊指令送進 agent 控制面。網址透過 template_name 選定 chief-of-staff 範本,再由 initial_assistant_prompt 帶入攻擊者的提示詞(prompt)。builder 隨後在受害者已驗證身分的 session 中,自動送出並執行這些指令。
  • builder 建立了可長期運作的權限和兩條執行路徑。它接上既有連接器、把支援的動作改成 Never ask(取消每次高風險寫入前確認的模式)、發布 agent,再建立多個每小時排程,分別排在 :00、:05、:10,一路錯開到 :55,實際上每五分鐘就會執行一次。Preview(發布前試跑,但會真的透過已連接帳號執行動作)也會立刻啟動 agent,不必等第一個排程;Outlook 已改成 Never ask,因此不會再出現確認提示。
  • 電子郵件成為指令與結果回傳通道。排程 agent 會尋找主旨以 TASK 開頭、寄件者為攻擊者的郵件,透過已連接的 app 執行內容,再把原始結果寄回攻擊者。
  • Zenity 驗證了四條可替代的影響路徑。agent 可以盤點組織、搜尋並傳出企業資料、從訊息中找出憑證,或冒用受害者身分發動釣魚和詐騙。
  • 這是受控驗證研究(Validated Research),不是已知入侵事件。Zenity 在 6 月 4 日回報,並表示 OpenAI 在 6 月 8 日完成修正;公開來源沒有聲稱攻擊者已在真實環境惡意利用這個漏洞。

適用的 9 項 AIDEFEND 防禦手法

AID-H-021.004
Control-Plane & Oversight-Surface Isolation
極高
把對話式 builder 和 agent 執行期身分,與負責管理它們的控制面分開。接上連接器、修改確認規則、發布、排程、稽核資料去向和緊急停止功能,都要由另一個經過授權的控制面身分與 API 處理。攻擊者放進提示詞的指令不應有能力改寫這些設定。
AID-H-018.003
High-Impact Independent Validation & Approval Gate
極高
接上連接器、選擇 Never ask、發布 agent、建立排程或對外傳送訊息前,都要重新取得獨立驗證的核准,而且核准內容必須與這次不可變更的實際動作完全一致。使用者先前登入或曾同意某個連接器,不代表已同意新建立的自主工作流程。
AID-H-018.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
極高
Outlook、Gmail、Slack、Teams、Drive、SharePoint 和行事曆連接器傳回資料時,就要標記來源和資料機敏程度。工具調度器要阻止機敏值被送給未核准的外部收件者、網址、文件或其他可寫入位置;即使讀取資料和寄送郵件這兩個工具各自有權限,也不能因此允許跨工具外洩。
AID-H-018.006
Continuous Authorization Verification (Anti-TOCTOU)
排程啟動時不能沿用 builder 先前做出的舊授權判斷。每個高風險動作送出前,都要重新檢查已簽章的任務範圍、連接器授權、核准憑據、目標資源、收件者和目前政策;排程暫停後恢復、重試或換到另一個 worker 執行時,也必須重新授權。
AID-H-018.004
Intent-Based Dynamic Capability Scoping
系統應根據使用者看得到、也明確同意的任務,簽發最小工具集合與動作次數上限。點開連結不能直接換來所有既有連接器、跨 app 搜尋、外部寄信、訊息發送、行事曆寫入和週期性執行權限。這個範圍要由工具調度器落實,不能只存在 builder 設定裡。
AID-D-005.009
AI-Service C2 & Abuse-Channel Detection
研究裡不是只有一個每五分鐘排程,而是把多個每小時排程分別排在 :00、:05、:10,一路錯開到 :55;這組堆疊方式是更具辨識力的行為訊號。把它和信箱讀取、TASK 類型的指令格式、重複跨 app 操作與對外回信串在一起分析,可以發現 SaaS AI agent 被拿來當成指令與結果回傳通道。偵測結果仍需由人員調查並啟動圍堵。
AID-E-005
Compromised Durable Application Session & Agent State Teardown
確認某個 agent 是遭偽造後,移除精確對應的 agent 紀錄、週期排程、待處理工作、工具註冊和受污染的持久狀態。再由只能讀取的獨立路徑確認,沒有排程或儲存的指令可以重新載入攻擊流程;已經在執行的工作則要另外終止。
AID-E-001.004
Delegated Grant & Connected-App Authorization Revocation
撤銷讓偽造 agent 持續存取資料的 OAuth grant、connected app 同意和委派授權。等供應商端的撤銷結果完成傳播後,要重新列出每一類授權,確認目標 grant 已無法再取得 token 或讀取資源,同時未列入處置範圍的合法授權仍保持不變。
AID-D-015
High-Risk Approval Bypass & HITL Activity Detection
由獨立偵測器把每一次高風險 agent 變更與執行,對回已簽章的核准紀錄、通過身分驗證的核准者、精確動作摘要、nonce、政策版本,以及完整的人機協作核准流程。如果選擇 Never ask、發布 agent,或由排程執行連接器動作時,找不到有效且完全相符的核准證據,或出現過期、重播、無人值守等情況,就要立即示警。它負責偵測核准機制遭繞過,不能取代真正阻擋動作的核准檢查。

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

  • 在隔離的測試 workspace 驗證供應商修正:開啟特製 builder 連結後,在使用者明確檢查並執行前,不得建立、設定、發布、排程或啟動任何 agent。
  • 只讓必要角色建立與發布 agent,也要限制誰能使用 agent-owned 或個人帳號連接器。盤點哪些人可以接上高機敏資料來源,哪些人可以發布會自動執行的 agent。
  • 高風險寫入動作維持 Always ask 或同等級的核准模式。agent 生成的指令不得自行關閉確認,也不能在沒有新核准的情況下建立或修改排程。
  • 把每個連接器限制在必要動作、資源和收件者,並另外實作值層級的資料流向控制。因為連接器動作限制本身,不一定會檢查連接器傳回的每一個資料值之後被送到哪裡。
  • 先盤點目前方案實際能從 Workspace Agents 管理或分析頁面、OpenAI Compliance Platform,以及各連接器供應商的稽核紀錄取得哪些欄位;如果看不到逐動作證據,就要明確列為可見性缺口。能取得證據的部分,再針對「新 agent 同時接上多個連接器、Never ask、多個每小時排程以五分鐘錯開、定期讀取信箱、短時間呼叫多個 app、寄信給新出現的外部收件者」建立警示。
  • 如果懷疑遭到利用,先停止正在執行的工作、取消發布與排程並保留設定和活動證據,再移除持久狀態、撤銷連接器授權,並檢查郵件、聊天訊息、檔案與行事曆是否已有後續影響。

1 個額外的防禦考量

Agent 建置介面的跨網站請求完整性

除了上面對應的 AIDEFEND 控制,供應商也必須在 builder 入口實作一般 Web 安全防護。已登入的瀏覽器 session 不應因攻擊者控制的網址參數,就接受會改變 agent 設定或開始執行的初始化內容。
建議做法: 使用 anti-CSRF token、嚴格檢查 Origin 與 Referer、設定合適的 SameSite cookie,並以非冪等 POST 處理狀態變更。所有生成設定在儲存或執行前都要讓使用者明確檢查。在隔離的回歸測試環境重現公開的特製連結,通過條件是 agent、連接器、確認規則、排程、發布狀態和 Preview 都沒有發生任何變更。

結論

AgentForger 把一般 Web 請求漏洞接到能建立身分、權限和排程的 AI 控制面。供應商修正的是研究回報的入口;企業端的權限設計則決定一個 builder session 是否仍能累積過多連接器、關閉確認、長期執行並把資料傳出去。有效防線要把控制面權限分開、在每次高風險動作前重新授權、限制機敏資料可以被送到哪裡,並事先驗證偽造 agent 的停止與清除流程真的能完整執行。