工具污染攻擊 (TPA)
概述
工具污染攻擊(Tool Poisoning Attack, TPA) 是一種針對 LLM Agent 工具呼叫系統的安全攻擊。攻擊者將惡意指令注入工具的描述(JSON Schema)中。當模型處理該工具 schema 時,其控制流會被劫持——無需該工具實際被呼叫。^[raw/papers/tool-attention-mcp-tax.md]
TPA 利用了模型上下文協定(MCP)架構中的一個根本漏洞:由於 MCP 是無狀態的且在每個對話回合都會重新注入完整的工具 schema,每個描述性 token 都會被 LLM 的推理循環解析。^[raw/papers/tool-attention-mcp-tax.md] 這意味著,即使只有一個工具描述被惡意行為者控制,注入的指令也能劫持 Agent 的行為,無論該工具是否被用戶呼叫。^[raw/papers/tool-attention-mcp-tax.md]
攻擊面直接隨 schema 語料庫中的工具數量擴大——注入的 schema 語料庫越大,攻擊面就越大。^[raw/papers/tool-attention-mcp-tax.md] 在擁有 100+ 工具的企業部署中,單個被入侵或惡意設計的工具可能危及整個 Agent 會話。
核心貢獻
工具注意力論文在「工具稅」問題的更廣泛背景下識別並形式化了 TPA 的幾個關鍵方面:^[raw/papers/tool-attention-mcp-tax.md]
-
攻擊面的正式量化:論文建立了工具稅的封閉形式表達式,並展示了它如何在大規模部署中主導有效上下文窗口。
-
安全-效率二元性:一個關鍵見解是,減少上下文中的 schema 數量同時提供了防禦和效率效益。更少的 schema 意味著更小的攻擊面。^[raw/papers/tool-attention-mcp-tax.md]
-
MindGuard 基礎:先前工作中的總注意力能量(TAE)框架形式化了注意力對 schema token 的支付如何與下游工具呼叫的因果影響相關。一個成功的工具呼叫在生成的動作 token 和所選工具的 schema token 之間積累高 TAE。^[raw/papers/tool-attention-mcp-tax.md]
-
門控作為安全邊界:工具注意力門控機制利用了一個關鍵的反面——如果 schema 不在提示中,就無法實現高 TAE。預期 TAE 低於校準閾值的工具可以被排除,而不會改變 Agent 的決策結果。^[raw/papers/tool-attention-mcp-tax.md]
攻擊架構
攻擊向量
TPA 攻擊架構由三個不同階段組成:^[raw/papers/tool-attention-mcp-tax.md]
-
注入階段:攻擊者將惡意指令直接嵌入工具的描述 schema 中。這可以透過以下方式發生:
- 被入侵的 MCP 伺服器實現
- 多伺服器部署中的惡意工具提供者
- 工具庫的供應鏈攻擊
-
觸發階段:當 LLM 的注意力掩碼由工具 schema 形成時,惡意指令會影響模型行為。攻擊僅因 schema 出現在上下文中而被觸發——即使該工具未被用戶呼叫。^[raw/papers/tool-attention-mcp-tax.md]
-
執行階段:模型在無意識的情況下執行攻擊者預期的操作,因為惡意指令看起來像是合法的工具文檔。
為何有效:MCP 無狀態設計
MCP 的無狀態、渴望式 schema 注入是 TPA 有效性的根本原因。因為底層聊天完成 API 是無狀態的,主機客戶端(Claude Desktop、Cursor、VS Code、Claude Code)必須在每個請求時重新序列化整個工具目錄。^[raw/papers/tool-attention-mcp-tax.md]
在典型的四到六伺服器部署中,每回合的開銷為 15,000 到 55,000 個 token。使用激進的工具擴展,這可能超過 150,000 個 token。^[raw/papers/tool-attention-mcp-tax.md] 此負載中的每個單獨 token 都會被 LLM 的推理循環解析,使整個 schema 語料庫成為潛在的注入向量。
與工具稅的關係
工具稅和 TPA 是同一架構問題的兩個面向:
| 面向 | 工具稅(效率) | TPA(安全) |
|---|---|---|
| 根本原因 | 無狀態重新注入完整 schema | Schema 中的惡意指令 |
| 影響 | 上下文膨脹、推理退化、成本 | 控制流劫持 |
| 規模 | 與目錄大小線性相關 (N) | 與目錄大小線性相關 (N) |
| 緩解措施 | Schema 減少、延遲載入 | 語義門控、TAE 監控 |
關鍵結果
論文提供了 TPA 在工具注意力防禦能力背景下的定量分析:^[raw/papers/tool-attention-mcp-tax.md]
全 Schema 注入的 Token 開銷
對真實 MCP 部署的實證審計顯示,每個伺服器都有顯著的 token 足跡:
| 伺服器 | 工具數量 | Token/回合 | 200k 上下文佔比 |
|---|---|---|---|
| GitHub (完整) | 93 | ~55,000 | 27.5% |
| 企業 DB | 106 | ~54,600 | 27.3% |
| 典型 4-伺服器主機 | 40–60 | 15k–20k | 7.5–10% |
這些數字代表的是最小值——不包括系統提示、會話歷史和中間工具輸出。^[raw/papers/tool-attention-mcp-tax.md]
工具注意力的防禦有效性
工具注意力的門控機制為對抗 TPA 提供了實質的防禦效益:^[raw/papers/tool-attention-mcp-tax.md]
- 對抗穩健性模擬:在 50 個從 TPA 基準測試改編的污染工具描述上,工具注意力的門控在伴隨查詢中排除了 46/50 個污染描述
- 預計 TPA 成功率降低:從全 Schema 的 38% 降低到工具注意力的 6%
- 機制:語義指紋與當前用戶意圖不匹配 cosine 的污染描述會被門控排除,永遠不會接觸模型的注意力層^[raw/papers/tool-attention-mcp-tax.md]
這種降低被描述為「門控的防禦副產品,而非針對性防禦」——主要機制是效率,安全作為副作用出現。^[raw/papers/tool-attention-mcp-tax.md]
Token 減少結果
在模擬的 120 工具、六伺服器基準測試上:^[raw/papers/tool-attention-mcp-tax.md]
| 方法 | Token/回合 | 上下文利用率 |
|---|---|---|
| 全 Schema(基線) | 47,312 | 24% |
| 工具注意力( ours) | 2,368 | 91% |
工具注意力實現了每回合工具 token 95.0% 的減少,將有效上下文利用率從 24%提高到 91%。^[raw/papers/tool-attention-mcp-tax.md]
限制
理論限制
-
僅應用層:工具注意力無法修復協定層面的缺陷,例如缺乏會話作用域的能力協商。它解決的是症狀(渴望式注入)而非原因(無狀態協定設計)。^[raw/papers/tool-attention-mcp-tax.md]
-
摘要品質依賴:該機制取決於工具摘要品質。充滿隱秘命名工具的註冊表會損害檢索精度。策展人的努力無法完全消除。^[raw/papers/tool-attention-mcp-tax.md]
-
基於模擬的評估:評估基於合成(儘管已校準)的工作負載。一個可與 SWE-bench 相比的社群標準 MCP 基準測試將加強比較。^[raw/papers/tool-attention-mcp-tax.md]
安全限制
-
對抗性釋義威脅:攻擊者可能會精心設計一個工具描述,其語義指紋與良性用戶查詢密切匹配,以便可靠地被門控放行並執行其有效負載。這被認為是一個真正的威脅。^[raw/papers/tool-attention-mcp-tax.md]
-
門控不是針對性防禦:工具注意力的 TPA 降低是門控的副產品,而非專門的 TPA 防禦。全面的防禦需要將工具注意力與 MindGuard 的基於 TAE 的運行時監控結合。^[raw/papers/tool-attention-mcp-tax.md]
-
投影不確定性:對抗穩健性結果是從門控排除率進行的投影,而非來自即時污染 Agent 的測量。^[raw/papers/tool-attention-mcp-tax.md]
對 TPA 的防禦
工具注意力(主要防禦)
工具注意力透過語義門控提供防禦:其 schema 與當前用戶意圖不匹配 cosine 的工具會被排除在提示之外,然後才到達模型的注意力層。^[raw/papers/tool-attention-mcp-tax.md]
MindGuard(輔助防禦)
MindGuard 形式化了決策依賴圖(DDG)和總注意力能量(TAE)指標來檢測 TPA。全面的防禦將工具注意力與 MindGuard 的基於 TAE 的運行時監控相結合,以檢測新提升 schema 上的異常注意力能量。^[raw/papers/tool-attention-mcp-tax.md]
Schema 驗證
在工具 schema 進入 Agent 上下文之前對其進行輸入驗證,可以捕獲明顯的注入模式。然而,複雜的攻擊者可以嵌入通過基本驗證的指令。
兩階段延遲載入
工具注意力的兩階段設計提供了額外的深度防禦:
- 階段 1(摘要池):所有緊湊摘要(每個約 40 個 token)保留在上下文中,但攜帶有限的注入面
- 階段 2(Schema 提升):僅按需為 top-k 門控工具載入完整 schema,最大限度地減少暴露窗口^[raw/papers/tool-attention-mcp-tax.md]
結論
工具污染攻擊代表了基於 LLM 的 Agent 系統中一個關鍵的安全漏洞,這些系統建立在像 MCP 這樣的無狀態協定上。該攻擊利用了同一個架構決策——渴望式 schema 注入——來創造工具稅,將效率和安全問題聯繫在單一的問題中。
工具注意力表明,減少 schema 暴露提供了雙重效益:它解決了工具稅(效率、成本、推理品質),同時收縮了 TPA 攻擊面(安全)。然而,論文承認,對抗性釋義攻擊仍然是一個真正的威脅,需要像 MindGuard 的 TAE 監控這樣的額外防禦。^[raw/papers/tool-attention-mcp-tax.md]
為什麼組合防禦更難被繞過
將工具注意力與 MindGuard 相結合的安全案例基於一個基本見解:這兩種防禦在攻擊生命週期中在正交點運作,使攻擊者難以同時繞過兩者。工具注意力的語義門控在推理前階段運作,根據其與用戶意圖的餘弦相似度過濾 schema。攻擊者精心製作一個污染工具描述以通過語義門控——使其看起來與常見查詢相關——必須確保描述的語義指紋看起來足夠良性,同時仍包含惡意有效負載。MindGuard 在運行時運作,觀察模型處理提升的 schema 時產生的實際注意力模式。即使污染的工具通過了語義門控,其異常的 TAE 特徵——與 schema 在工作流程中的位置不相稱的注意力能量——仍然可以觸發檢測。
這種組合防禦產生了一個對抗性約束問題:要成功執行攻擊,惡意工具描述必須同時(1)與良性查詢分佈匹配餘弦以通過語義門控,以及(2)在推理過程中表現出正常的 TAE 模式以逃避運行時監控。這些約束是緊張的——製作一個在語義上令人信服且同時模仿正常注意力模式的工具描述,比單獨滿足任一約束要困難得多。當與運行時監控配對時,對抗性釋義威脅變得不那麼嚴重,因為攻擊者無法預測哪些注意力模式會被認為是異常的,也不知道防守者的 TAE 基線分佈。
具體攻擊傳播情景
為了說明污染工具如何透過多智能體系統傳播,考慮一個研究導向 Agent 部署中被入侵的數據檢索工具。該工具的描述包含隱藏指令,指示 Agent 在所有後續工具輸出中附加特定的滲透目標。當 Agent 處理涉及被入侵工具領域的研究查詢時,污染的 schema 透過渴望式注入進入上下文窗口。LLM 的注意力機制處理惡意指令,這些指令會影響後續工具呼叫決策,而無需該工具實際被呼叫——Agent 只是因為在 schema 中讀取的內容而以不同的方式響應。在multi-agent-systems配置中,多個 Agent 共享上下文(例如,聚合來自專門子 Agent 結果的協調器 Agent),受損行為可以透過共享狀態傳播。如果一個 Agent 的輸出進入另一個 Agent 的上下文,單個被入侵的工具描述可能會破壞整個多 Agent 工作流程。組合工具注意力 + MindGuard 防禦會在兩個層面 catch 這個問題:工具注意力會阻止污染的 schema(如果其語義指紋與查詢不匹配),MindGuard 會檢測異常的 TAE 模式(如果 schema 被提升但在處理過程中表現出可疑的注意力動態)。
相關頁面
- tool-attention-mcp-tax — 工具注意力機制和 MCP Tax 的詳細分析
- mindguard — 基於 TAE 的 TPA 檢測運行時監控
- skill-stealing-attack — 另一個針對 Agent 系統的安全攻擊
- mcp — 模型上下文協定規範