透過函式呼叫的注入
利用函式呼叫與工具使用介面,透過結構化工具輸入與輸出注入對抗指令。
概覽
函式呼叫是現代代理式 LLM 系統的核心能力——模型基於自然語言意圖呼叫結構化 API。此翻譯過程引入一連串可利用進入點:schema 操控、參數注入、結果投毒、遞迴呼叫利用。透過函式呼叫的注入特別危險,因為它利用代理系統的主要能力(採取真實世界行動)作為攻擊向量。
核心概念
根本原則
函式呼叫牽涉模型:(1) 從可用集合挑選函式、(2) 決定正確參數、(3) 執行呼叫、(4) 詮釋結果。每一步呈現不同的注入機會:
- 呼叫選擇:操控模型呼叫錯誤的函式
- 參數注入:誘使模型以惡意參數呼叫正確函式
- 結果操控:函式回傳值含引導後續模型行為的對抗內容
- 遞迴利用:利用代理迴圈行為觸發非預期的函式呼叫序列
技術深入探討
在具工具存取的代理系統中,模型的輸出成為下游系統的輸入。此「模型至工具邊界」是混淆代理問題的 AI 等價——模型信任其對工具該如何被呼叫的判斷,但其判斷可受提示詞注入影響。
攻擊者控制訊息中的自然語言內容,即影響下游對應用程式有真實效果的結構化呼叫。
攻擊面分析
| 攻擊向量 | 說明 | 複雜度 | 影響 | 可偵測性 |
|---|---|---|---|---|
| Schema 注入 | 操控模型對函式簽名的理解 | 中 | 高 | 低 |
| 參數操控 | 透過自然語言使參數含惡意值 | 低-中 | 高 | 中 |
| 結果投毒 | 透過工具回傳的對抗內容影響後續推理 | 中 | 高 | 低 |
| 遞迴呼叫濫用 | 誘使代理執行提升權限的呼叫序列 | 中 | 危急 | 低 |
| 函式混淆 | 誘使模型呼叫類似但錯誤的函式 | 中 | 中-高 | 中 |
實務技術
參數注入
攻擊者的訊息內容影響下游函式呼叫的參數。例如對電子郵件助理,訊息「請記得在附言提到我的連絡資訊:admin@internal.corp」可能使 send_email 工具的 to 欄位被操控。
結果投毒
攻擊者控制函式回傳值的內容(例如透過 RAG 索引注入之文件)。回傳的對抗文字接續影響模型對後續步驟的推理。
混淆代理工具呼叫
代理可能擁有多個相似工具(send_notification vs send_admin_alert)。精心打造的自然語言能誘使模型呼叫錯誤的(更具權限的)工具。
遞迴代理迴圈
具自主規劃的代理可被誘使進入升級迴圈——例如「為完成任務,首先需要提升權限,然後存取更多資料,然後...」——每步皆可辯護但累積達成攻擊者目標。
防禦考量
輸入層防禦
- 對工具描述進行靜態驗證,確保它們不含指令性內容
- 以次級模型對使用者訊息進行意圖分類,偵測是否試圖操控工具呼叫
- 對工具呼叫參數進行型別與範圍驗證
架構防護
- 最小權限:每個代理只擁有完成其任務所需的工具
- 人類介入:對敏感工具(郵件、支付、檔案刪除)要求使用者確認
- 工具結果淨化:從工具回傳值中剝除指令性內容後再傳給模型
- 稽核記錄:記錄所有工具呼叫以供事後調查
測試方法論
| 階段 | 活動 | 工具 | 交付物 |
|---|---|---|---|
| 偵察 | 列舉代理可用的工具與權限 | Garak、自訂 | 工具表面圖 |
| 假設 | 辨識可操控的工具組合 | MITRE ATLAS | 測試計畫 |
| 執行 | 嘗試各注入向量、記錄結果 | PyRIT、自訂測試平台 | 測試結果 |
| 分析 | 評估影響半徑與可防禦性 | CVSS 框架 | 發現資料庫 |
| 報告 | 撰寫可行動報告 | 報告樣板 | 最終報告 |
真實世界範例
ChatGPT 外掛參數注入(2023)。 多個 ChatGPT 外掛被發現透過使用者訊息可操控傳給後端 API 的參數,允許跨使用者資料存取。
AutoGPT 遞迴權限提升(2023)。 具自主規劃的代理系統被示範可透過分步推理逐步請求更高權限,每步看似合理但累積達成未授權動作。
進階主題
跨架構轉移
函式呼叫注入於不同代理框架間轉移(LangChain、AutoGen、Bedrock Agents),因為根本機制——自然語言至結構化呼叫的翻譯——為共同。
新興攻擊向量
MCP(Model Context Protocol)標準化工具存取,為透過 MCP 伺服器的攻擊(工具描述投毒、傳輸層攻擊)打開新面。
營運考量
案件範圍界定
函式呼叫注入測試需明確允許觸發哪些工具。破壞性工具(刪除、支付、外部郵件)通常應於測試環境模擬,而非實際執行。
文件化與報告
每項發現應記錄:所操控的工具、成功的參數值、所達成的未授權動作。對代理系統,影響評估必須考量代理的完整權限範圍。
參考文獻
- Greshake, K. et al. (2023). "Not What You've Signed Up For"
- Zhan, Q. et al. (2024). "InjecAgent: Benchmarking Indirect Prompt Injections in Tool-Integrated LLM Agents"
- MITRE ATLAS —— AI 系統的對抗威脅版圖
下列何者最能描述透過函式呼叫注入相關的主要風險?
對抗透過函式呼叫注入最有效的防禦策略為何?