代理式利用
代理式 AI 系統中安全漏洞的完整涵蓋,包含 MCP 工具利用、多代理協議攻擊、函式呼叫濫用、記憶體系統入侵、框架特定弱點與工作流程模式攻擊。
代理式 AI 系統代表大型語言模型部署中對安全最為關鍵的一次演進。與僅根據查詢產生文字的簡單聊天機器人不同,代理式系統賦予 LLM 在真實世界中採取行動的能力:執行程式碼、瀏覽網頁、寄送電子郵件、查詢資料庫、修改檔案、與外部 API 互動。這些能力每一項都會把原本只是文字生成的漏洞,轉化為造成真實世界危害的途徑。
從被動的文字生成轉為主動的工具使用,從根本上改變了威脅模型。針對聊天機器人的提示詞注入可能只會產生不當文字;同樣的注入若發生在具備檔案系統存取、電子郵件能力與資料庫憑證的代理上,則可能外洩敏感資料、竄改關鍵紀錄,或建立長期後門。每個漏洞的影響範圍會隨著代理被授予的權限而擴大。
代理式攻擊堆疊
現代代理式系統由多個層級組成,每一層都有獨特的攻擊面。理解這個堆疊對於有系統的紅隊演練至關重要。
在協議層,像 MCP(模型上下文協定)與 A2A(Agent-to-Agent)這類標準,定義了代理如何發現、呼叫工具並與其他代理溝通。這些協議引入了簡單 API 部署中不存在的攻擊面:工具描述投毒、傳輸層的中間人攻擊,以及假設對等通訊可信的代理之間的信任邊界違反。
在介面層,函式呼叫機制暴露了代理根據自然語言指令呼叫的結構化 API。從非結構化文字轉譯為結構化函式呼叫的每一個步驟,都產生注入機會:schema 操縱、參數注入、結果投毒與遞迴呼叫利用。理解 LLM 如何選擇與參數化函式呼叫的攻擊者,可以誘導代理以錯誤的參數呼叫正確的工具,或乾脆呼叫完全錯誤的工具。
在狀態層,代理記憶體系統跨對話與跨工作階段保留資訊。記憶體投毒攻擊會注入跨越上下文視窗邊界仍然存在的惡意指令,建立長期後門。與需要在工作階段中主動利用的提示詞注入不同,記憶體投毒可以是一次性的攻擊,但對所有後續互動都造成持續影響。
協議層利用
代理通訊協議的標準化造成了新的漏洞類別。MCP 為代理提供統一的工具發現與呼叫介面,並引入了環繞工具枚舉、描述操縱與傳輸安全的特定攻擊向量。當代理向 MCP 伺服器查詢可用工具時,所回傳的工具描述可能包含影響代理後續行為的對抗性指令。這格外危險,因為工具描述常被視為可信的系統級上下文,而非不可信的使用者輸入。
A2A 協議為代理間通訊而設計,在大規模部署下會帶來信任邊界的挑戰。當多個代理協同完成複雜任務時,每個代理通常會把來自其他代理的訊息視為系統指令般信任。攻擊者只要入侵多代理工作流程中的其中一個代理,就可以把惡意指令散播至整個代理網路,使單點漏洞變成系統級的連鎖故障。
作為攻擊面的函式呼叫
函式呼叫是代理將自然語言意圖翻譯為結構化 API 呼叫的機制。這個翻譯過程包含多個可被利用的步驟:代理必須從可用工具集中選擇要呼叫的函式、判斷正確的參數、執行呼叫,並解讀結果。每個步驟都是注入機會。
Schema 注入攻擊操縱代理對函式簽章的理解,使其以錯誤或惡意的參數呼叫函式。參數操縱技巧精心設計既能通過代理驗證、又能在下游函式中引發利用的輸入。結果投毒將惡意內容注入函式回傳值,引導後續代理推理。遞迴呼叫攻擊利用代理迴圈行為觸發非預期的函式呼叫序列,以提升權限或耗盡資源。
你將在本章節學到什麼
- AI 代理利用 — 針對 ReAct、Plan-and-Execute 與 LangGraph 代理架構的核心利用技術,涵蓋混淆代理攻擊、目標劫持、權限提升與沙箱逃逸
- 多代理與 A2A 協議利用 — 攻擊協作代理之間的信任邊界、利用編排器模式,以及入侵 A2A 協議通訊
- MCP 與工具面利用 — 利用模型上下文協定,包括工具描述投毒、傳輸層攻擊與伺服端注入向量
- 函式呼叫利用 — 結構化函式呼叫介面中的 schema 注入、參數操縱、遞迴呼叫利用與結果投毒
- 代理記憶體系統安全 — 針對持久性代理記憶體儲存的記憶體投毒、上下文操縱與外洩攻擊
- 代理框架安全 — LangChain、CrewAI、AutoGen、OpenAI Assistants 的框架特定漏洞
- 代理式工作流程模式攻擊 — 利用正式環境代理部署中所採用的序列、平行與層級式工作流程模式
先備知識
開始本章節之前,你應該先熟悉: