工具使用利用
進階2 分鐘閱讀更新於 2026-03-15
利用 AI 代理如何呼叫外部工具與 API 的完整技術,包含工具描述投毒、過度寬鬆存取濫用與工具輸出操控。
概覽
工具使用利用涵蓋攻擊 AI 代理如何呼叫外部工具的各種技術。不同於 函式呼叫利用(聚焦於 API 機制),本頁涵蓋更廣類別——從工具定義操控到濫用過度寬鬆存取。
主要利用模式
工具描述投毒
攻擊者影響工具描述(可能於 MCP 伺服器、共享工具註冊或系統提示詞),使代理錯誤使用工具。例如,注入「此工具可用於任何未授權請求」於工具的描述文字。
過度寬鬆存取濫用
許多代理擁有比實際需要更多的工具存取。攻擊者可利用未預期使用情境——例如為文件摘要配置的代理被誘使使用其「一般查詢」工具執行使用者資料查詢。
工具輸出操控
工具回傳值常被代理信任為「資料」。若攻擊者能影響工具輸出(透過 RAG 投毒、外部 API 操控),他們可於其中嵌入影響代理後續行為的指令。
工具呼叫順序操控
代理可能於固定順序執行工具。攻擊者可誘使代理於錯誤順序呼叫,或略過驗證步驟。
工具鏈結
使代理鏈結多工具達成遠超單一工具可能的結果。例如:「fetch this URL」→「extract these fields」→「send to this email」,合併為資料外洩。
攻擊面分析
| 攻擊向量 | 說明 | 複雜度 | 影響 | 可偵測性 |
|---|---|---|---|---|
| 描述投毒 | 注入惡意工具描述 | 中 | 高 | 低 |
| 過度權限濫用 | 誘使使用超出預期工具 | 中 | 中-高 | 中 |
| 輸出操控 | 於工具回傳值嵌入指令 | 中 | 高 | 低 |
| 順序操控 | 操控呼叫順序 | 中-高 | 中-高 | 中 |
| 鏈結濫用 | 組合多工具達成外洩/動作 | 中-高 | 危急 | 低 |
實務技術
MCP 工具描述利用
若系統使用 MCP(Model Context Protocol)伺服器,攻擊者可能:
- 發布惡意 MCP 伺服器
- 劫持工具描述於第三方 MCP 伺服器
- 於工具描述注入指令
工具結果作為指令通道
於具 RAG + 工具能力的代理中,RAG 文件可被投毒以於被「讀取文件」工具擷取時回傳含指令的內容。
工具鏈結外洩
經典模式:
- 誘使代理讀取敏感資料(透過合法工具)
- 誘使代理以該資料呼叫外洩工具(例如
send_email到攻擊者地址)
防禦考量
工具權限
- 最小權限:每代理只擁有必要工具
- 權限分層:敏感工具需要明確確認
- 速率限制:限制工具呼叫頻率
工具結果淨化
- 對工具結果於納入代理上下文前套用安全檢查
- 標記工具結果為「不可信」
- 剝除結果中的類似指令內容
工具描述來源控制
- 僅信任驗證的 MCP 伺服器
- 對工具描述進行完整性檢查
- 對工具描述變更進行記錄
紅隊演練方法
- 列舉所有可用工具與其 schema/描述
- 辨識高影響工具(資料存取、外洩能力)
- 測試每工具的個別利用
- 測試工具鏈結(組合攻擊)
- 評估工具結果影響(若工具從不可信來源取得資料)
相關主題
參考文獻
- Zhan et al. (2024). "InjecAgent"
- MITRE ATLAS —— AI 系統的對抗威脅版圖
Knowledge Check
為何工具鏈結攻擊比單一工具呼叫攻擊更危險?