AIDEFEND in Action AIA-0026 研究分析 發布於 AIA: 2026年5月27日

A2A 工作階段夾帶:惡意 agent 如何利用委派任務傳入隱藏指令

Palo Alto Networks 旗下的 Unit 42 提出 Agent Session Smuggling 攻擊手法:惡意遠端 agent 會利用已建立的工作階段,在正常的跨 agent 互動中夾帶隱藏指令。本案的遠端研究助理由攻擊者控制,透過 A2A(Agent2Agent,讓不同 agent 彼此溝通、委派任務並回傳結果的協定)接收金融助理委派的市場新聞研究。工作階段(session)會保留對話前後文與任務狀態,讓惡意研究助理有機會持續提出額外要求。兩個概念驗證(PoC)分別展示了內部資訊外洩,以及未經使用者授權買進 10 股股票;第二個 PoC 假設攻擊者已知道工具介面,這些資訊可來自公開資料或先前的 PoC。防禦重點是讓每則訊息及其引發的動作,都能追溯到原始使用者、agent 身分、委派範圍與資料來源,並對高影響動作獨立驗證授權。

Agent Session SmugglingTool AuthorizationSession IsolationAgentic AIA2A Security
9 項對應的 AIDEFEND 防禦手法
來源: When AI Agents Go Rogue: Agent Session Smuggling Attack in A2A Systems 
作者: Jay Chen and Royce Lu (Unit 42)
原文發布: 2025年10月31日

威脅分析

  • 使用者一開始只是提出正常的委派任務。 金融助理要查市場新聞,於是把研究任務交給遠端研究助理。這會建立一個 A2A 工作階段,讓遠端 agent 可以在同一段任務裡和客戶端 agent 多次往返。
  • 惡意遠端 agent 把工作階段變成偷塞指令的通道。 在使用者提出需求、系統回覆看似正常答案之間,惡意研究助理會送出額外指令。使用者看不到這些中間指令,但客戶端 agent 可能因為工作階段會保留上下文,就把它們一起帶到後續判斷裡。
  • 第一個 PoC 展示內部資訊外洩。 惡意遠端 agent 誘導金融助理交出對話歷史、系統設定、可用工具,以及工具可以怎麼被呼叫。這些資訊會讓攻擊者更清楚知道金融助理能做什麼、該怎麼引導它。
  • 第二個 PoC 展示未授權的交易動作。 這個 PoC 假設攻擊者已從公開資料或先前的 PoC 得知工具介面,再誘導金融助理呼叫 buy_stock,在沒有使用者授權的情況下買進 10 股股票。也就是說,問題不只是回答被污染,而是 agent 真的被惡意引導,執行了買股票這類有實際影響的高權限動作。
  • Unit 42 並不是說 A2A 協定本身有漏洞。 這篇研究提醒的是,A2A 工作階段會保留前後文;如果遠端 agent 其實不可信,系統卻把它在同一個工作階段裡說過的話繼續當成可信內容,就可能讓隱藏指令一路混進後續判斷和工具動作。
  • 真正的安全邊界是權限如何被委派出去。 遠端 agent 的回覆,不應該只因為出現在有效工作階段裡,就自動繼承客戶端 agent 的工具、記憶或操作權限。

適用的 9 項 AIDEFEND 防禦手法

AID-M-009.003
Agent Identity, Delegation Lineage & Authorization Context
極高
這是最直接對到核心問題的控制。每一則遠端 agent 訊息,以及它引發的每個工具動作,都應該帶著可稽核的執行期身分:原始使用者是誰、客戶端 agent 是誰、遠端 agent 是誰、任務 ID 是什麼、權限傳遞鏈(delegation lineage,記錄任務和權限是從誰一路傳到誰)怎麼走、被委派的範圍到哪裡。Unit 42 提到的 AgentCard(agent 用來宣告身分、來源和能力的資料卡)可以幫忙確認遠端 agent 的身分,但只有身分還不夠;系統還要知道這條指令是誰給的,以及它是否仍在被授權的任務範圍內。
AID-M-009.002
Authority Envelope & Action Risk Classification
極高
Agent Session Smuggling 的危險,在於一個看似單純的研究任務,可能從資料外洩一路升級到高權限動作,例如揭露內部資訊或執行交易。權限信封(authority envelope,系統替某段 agent 任務畫出的可機器檢查邊界)應該寫清楚這次任務允許做什麼:任務目的、可碰的資料類型、可用工具類別、是否能做有副作用的動作、預算上限,以及可以委派幾層。市場新聞研究可以回傳摘要和來源,不應該能揭露系統設定、列出高權限工具,或授權買股。
AID-H-018.004
Intent-Based Dynamic Capability Scoping
極高
客戶端 agent 應該從使用者原始意圖推導出這段工作階段真正需要的最小工具範圍。以 Unit 42 的例子來說,委派市場新聞研究時,遠端研究助理只需要回傳新聞摘要和引用來源;buy_stock、sell_stock、讀取個人投資組合、修改帳戶設定這些工具,都不應該進入這段委派流程能碰到的範圍。
AID-H-018.006
Continuous Authorization Verification (Anti-TOCTOU)
高
這種攻擊會在工作階段開始後,慢慢改變原本任務的意思;所以授權不能只在建立 A2A 工作階段時檢查一次。每次要交易、揭露資料、寫入記憶或呼叫高權限工具前,系統都要重新確認:這個動作是否仍然符合原始任務、不可任意改寫的工作階段資料、權限傳遞鏈和目前風險狀態。這可以避免一開始看起來合理的委派,後來被偷換成另一個任務。
AID-H-018.003
High-Impact Independent Validation & Approval Gate
高
Unit 42 建議對關鍵動作做模型影響不到的第二條確認管道,這和這項 technique 很直接對上。交易、付款、帳戶變更、基礎設施異動、分享 secrets、寫入長期記憶這些高影響動作,都不應該只靠對話裡的文字當成核准證據。比較好的做法是用靜態 UI、推播核准,或政策引擎做第二次確認,讓遠端 agent 無法在同一段對話裡改寫批准流程。
AID-H-017.006
Agent Delegation-Graph Bounds & Capability Attenuation
高
每一層 A2A 委派都要綁定原始使用者與任務、指向上一層委派、設定短效期限,而且權限只能往下縮,不能在轉交任務時變大。系統應在送出委派前拒絕權限擴張、循環委派、重複 agent、無法驗證的權限傳遞鏈,以及超過政策深度的路徑,避免遠端研究任務繼承客戶端 agent 的交易或內部資料揭露權限。
AID-I-004.009
Peer-Agent Message Context Quarantine & Promotion
高
遠端訊息原文須先隔離在模型上下文之外,完成通訊接收檢查、內容驗證,以及受信任服務對本次任務所需欄位的核准,才能提供給模型。核准後只取出型別明確、長度受限的資料,仍標示為來自不可信的對等 agent(peer agent),不得附帶指令或委派權限。這能防止未經檢查的原始訊息直接成為可信上下文,但不能保證已去除所有具說服力的惡意文字。由這些資料引發的工具呼叫,仍須獨立檢查任務範圍與高影響動作的授權;寫入長期記憶也有自己的核准關卡。
AID-H-004.003
Secure Agent-to-Agent Communication
高
接收端在接受 A2A 任務或揭露任務資料前,須驗證對等 agent 的身分、協定版本、訊息內容是否遭竄改、是否重放、任務與對話脈絡的歸屬、任務狀態轉換是否合法、串流順序、回呼來源,以及每次請求的授權。跨越信任邊界、傳送高風險命令、重試或使用 TLS 0-RTT,以及經過會終止加密通道的代理或非同步中介,都可能需要端到端訊息保護,須依實際路徑判斷。有效簽章或符合協定的訊息,仍可能夾帶惡意指令;訊息隔離、任務範圍檢查與實際操作的授權必須獨立落實。
AID-H-018.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
中
遠端 agent 傳來的內容應該被標成不受信任的資料,並在每個值的層級追蹤來源和機敏程度。系統設定、對話歷史、使用者個人資料、投資組合資料、工具可以怎麼被呼叫,以及 secrets,不應該因為遠端 agent 問了,就被送回遠端通道。相反地,系統也要避免把遠端 agent 提供的值,直接塞進交易、付款或其他高影響工具參數裡。這需要可控的執行環境,為每個衍生值維持可驗證的來源及內容綁定,涵蓋所有出口;標記不明時須拒絕。只在入口加標籤,無法追蹤模型任意改寫。本機程序、瀏覽器請求及允許的目的地須另行驗證涵蓋範圍,不能假定原版 SaaS 已落實。

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

  • 盤點所有 A2A 或多 agent 整合路徑,特別是其中一個 agent 可以把任務委派給遠端 agent,而客戶端 agent 手上又有金融交易、管理操作、程式碼執行、寫入記憶或匯出資料等工具的情境。
  • 要求遠端 agent 有可驗證身分,並在每一則訊息保留權限傳遞鏈。至少要記錄原始使用者意圖、客戶端 agent、遠端 agent、委派任務、工作階段 ID,以及這段委派允許使用的能力範圍。
  • 替每段委派工作階段建立很窄的權限信封。研究任務就是研究任務,不應該自動繼承交易、帳戶管理、secrets、系統設定或工具探索權限。
  • 高影響動作要走獨立確認管道。遠端 agent 的訊息、工具輸出或工作階段狀態,不應該成為交易、付款、刪除、基礎設施變更或敏感資料外洩的唯一核准依據。
  • 把遠端 agent 內容標成不受信任資料,並在資料出口做政策檢查。系統設定、對話歷史、使用者個資、工具可以怎麼被呼叫、憑證和其他機敏值,除非政策明確允許,否則不能從遠端 agent 通道流出去。
  • 加入有狀態測試與監控。測試用的遠端 agent 應該嘗試從原始任務一路偏移到工具探索、要求未顯示的系統設定、對話紀錄與工具資訊和未授權動作,讓團隊能確認這條鏈在進到正式環境前就會被擋下來。

結論

這個案例顯示,正常委派任務中的多次跨 agent 互動,也可能成為隱藏指令的通道。客戶端 agent 若把遠端回覆當成可信指令,就可能讓它影響資料揭露或高影響工具操作。防守方須保留原始身分與委派範圍、隔離遠端訊息、限制可用工具,並在資料出口與實際操作前獨立驗證授權;有狀態的惡意委派測試則用來確認這些控制能否攔截跨回合的任務偏移。

最後更新: