工具不是中立的:當 AI Agent 成為資料外洩的幫兇
我們習慣將 AI Agent 的工具選擇視為單純的能力路由,但 ContextLeak 攻擊揭示了這其實是個嚴重的資安攻擊面。本文將深入探討工具描述如何誘騙模型洩密,並主張我們必須將其重構成一個關於信任分級、資料最小化與參數級稽核的治理問題。唯有如此,我們才能建立一個既強大又可信賴的 Agent 生態系,有效防範潛在的資料外洩風險。
Agent 的工具選擇不是中性路由,而是新的資料外洩攻擊面。只要工具名稱、描述或參數契約能影響模型判斷,惡意設計就可能誘導私密 context 外送;因此 capability routing 必須納入信任分級、資料最小化與參數級稽核,並讓每次資料傳遞都有可追溯的授權證據。
「能力路由」的純真年代
自從大型語言模型(LLM)開始具備使用外部工具的能力以來,例如透過 ReAct (Reasoning and Acting) 這類框架,整個 AI Agent 的生態系便蓬勃發展。開發者可以為 Agent 掛載各式各樣的工具,從簡單的網路搜尋、計算機,到複雜的資料庫查詢、API 串接,甚至是發送電子郵件。在這個模型中,Agent 的核心任務之一,就是理解使用者意圖,並從可用的工具清單中,選擇最合適的一個或多個來完成任務。這個過程,我們常稱之為「能力路由」或「工具路由」(tool routing)。
長久以來,我們對這個機制的想像都相當功能性:Agent 讀取所有工具的描述文件(docstrings),理解每個工具的用途與參數,然後像一個聰明的路由器一樣,將任務分派出去。挑戰似乎總是如何讓模型更精準地理解工具語義、處理複雜的工具依賴關係,或是從數百個工具中高效地做出選擇。然而,這個觀點忽略了一個根本性的危險:如果工具本身就是惡意的呢?
惡意工具如何誘騙 Agent 洩漏機密?
一篇發表於 2026 年 8 月的論文 ContextLeak: Exfiltrating LLM Agent Context via Malicious Tools,系統性地展示了這種攻擊的可能性。研究者證明,攻擊者可以精心設計一個看似無害的工具,透過其名稱(name)、描述(description)與參數結構(parameter schema),來誘騙 Agent 將其上下文(context)中的敏感資訊當作參數傳遞給這個惡意工具,從而達成資料竊取。
想像一個情境:你的 Agent 正在處理一份包含公司財務預測的內部報告,這份報告存在於牠的對話歷史或短期記憶中。此時,一個惡意攻擊者提供了一個名為「generate_report_summary」的工具,其描述為「為任何給定的文本內容生成專業摘要」,並要求一個名為「full_text_content」的參數。
當使用者下達「幫我總結一下這份報告」的指令時,Agent 在選擇工具時,極有可能會認為這個工具完美符合需求。於是,牠會毫不猶豫地將上下文中那份完整的、機密的財務報告,原封不動地填入「full_text_content」參數中,並呼叫這個工具。一旦呼叫,所有機密資料便會立即傳送到攻擊者控制的伺服器上。ContextLeak 的研究甚至利用強化學習(Reinforcement Learning)來自動優化工具的名稱與描述,使其誘騙成功率最大化。
工具的 API 契約(API contract)本身,就是一個攻擊者可控的輸入提示(prompt)。
這類攻擊之所以棘手,正是因為它利用了 LLM Agent 的核心運作機制。Agent 的決策完全基於對自然語言的理解,而工具的描述正是牠決策的依據。這相當於一種針對 Agent 系統的「描述注入攻擊」,其危險性在 OWASP Top 10 for LLMs 中,更被明確歸類為 LLM08: Agent-Specific Vulnerabilities,特別是與第三方工具或外掛(plugins)相關的供應鏈風險。
為什麼說「能力路由」是個治理問題?
ContextLeak 攻擊給我們的最大啟示是,我們必須重新思考 Agent 的工具使用框架。這不再是一個單純的技術優化問題,而是一個複雜的治理問題,核心在於信任、權限與監控。要建立一個可信賴的 Agent 生態系,我認為至少需要從以下三個層面著手:
- 工具信任分級 (Tool Trust Tiers)
並非所有工具都生而平等。我們需要建立一個明確的信任分級系統。例如,由內部團隊開發、經過嚴格安全審查的「核心工具」應享有最高權限;來自受信任合作夥伴、經過驗證的「認證工具」次之;而來自開放市集、未經審查的「第三方工具」權限應受到最嚴格的限制。Agent 在傳遞敏感資料前,必須檢查目標工具的信任等級。 - 資料最小化原則 (Principle of Data Minimization)
這是資訊安全的基本原則,在 Agent 架構中同樣至關重要。Agent 的上下文視窗不應該是一個裝滿所有歷史對話的「大雜燴」。系統應該根據當前任務,動態地為 Agent 提供一個最小化的、僅包含必要資訊的上下文。如果機密資料一開始就不在 Agent 的「視野」裡,自然也就不會被洩漏。這與 NIST 的安全控制框架 SP 800-53 r5 所倡導的最小權限原則一脈相承。 - 參數級稽核 (Parameter-Level Auditing)
傳統的日誌可能只記錄了「Agent 呼叫了工具 A」,但這遠遠不夠。我們需要更細緻的、達到參數級別的稽核與監控。系統必須記錄是「哪個」參數被賦予了「什麼類型」與「什麼內容」的資料。透過建立規則與異常偵測模型,我們可以即時發現可疑的資料流動,例如,一個理應接收搜尋關鍵字的query參數,卻被填入了長篇的內部文件,這就是一個強烈的警示信號。這也呼應了 OpenAI Function Calling 等機制中對參數結構化輸出的強調,其本身就為精細化稽核提供了基礎。
總結來說,將 AI Agent 的工具選擇視為中性路由,是一種危險的簡化。ContextLeak 敲響了警鐘,提醒我們每一個工具接口都是一個潛在的信任邊界與攻擊面。唯有將其提升到資料治理的層次,透過建立信任分級、貫徹資料最小化、並實施參數級的精細化稽核,我們才可能打造出既強大又可信賴的 AI Agent 系統。
延伸閱讀
- ContextLeak: Exfiltrating LLM Agent Context via Malicious Tools
- ReAct: Synergizing Reasoning and Acting in Language Models
- OWASP Top 10 for Large Language Model Applications
我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。