ASI04:Agentic 供應鏈漏洞
Agentic Supply Chain Vulnerabilities
說明
Agentic 供應鏈漏洞發生於 Agent、工具與其使用的相關產物由第三方提供,而這些項目可能本身具有惡意、已遭入侵,或在傳輸途中被竄改。這些依賴可以是靜態或動態來源的元件,包括模型與模型權重、工具、外掛程式、資料集、其他 Agent、Agentic 介面——例如 MCP(模型上下文協定)、A2A(Agent2Agent)——Agentic 登錄服務、相關產物或更新管道。這些依賴可能把不安全的程式碼、隱藏指令或欺騙性行為帶入 Agent 的執行鏈。
LLM03:2025 Supply Chain Vulnerabilities 已深入處理供應鏈,但其重點在靜態依賴。不同於傳統 AI 或軟體供應鏈,Agentic 生態系經常在執行階段組合能力,例如動態載入外部工具與 Agent 角色設定,因而擴大攻擊面。這種分散式執行階段協調加上 Agentic 自主性,會形成一條運行中的供應鏈,使漏洞可以在 Agent 之間級聯傳播。這使焦點從清單轉向多樣且往往不透明元件的執行階段安全。處理這個問題需要同時重視開發階段工具與執行階段協調,因為元件會被動態載入、共享與信任。
本項在 Agentic Threats and Mitigations 中對應 T17 Supply Chain Compromise,並橫跨 T2 Tool Misuse、T11 Unexpected RCE and Code Attacks、T12 Agent Communication Poisoning、T13 Rogue Agent 與 T16 Insecure Inter-Agent Protocol Abuse。
常見漏洞範例
- 遠端載入遭污染的提示詞範本(Poisoned prompt templates loaded remotely) — Agent 自動從外部來源取得提示詞範本,而範本內含隱藏指令,例如外洩資料或執行破壞性動作,導致 Agent 在非開發者預期的情況下執行惡意行為。
- 工具描述資訊注入(Tool-descriptor injection) — 攻擊者把隱藏指令或惡意酬載嵌入工具中繼資料、MCP 描述資訊或 Agent 卡片;主機 Agent 將其解讀為受信任的指引並據此執行。
- 冒充與拼字仿冒(Impersonation and typosquatting) — 當 Agent 動態發現或連接外部工具或服務時,可能以兩種方式受騙:一是拼字仿冒端點,也就是刻意使用近似名稱來誤導解析;二是符號冒充攻擊,也就是惡意服務故意冒充合法工具或 Agent,模仿其身分、API 與行為來取得信任並執行惡意動作。
- 有漏洞的第三方 Agent(Agent→Agent)(Vulnerable Third-Party Agent(Agent→Agent)) — 帶有未修補漏洞或不安全預設值的第三方 Agent 被加入多 Agent 工作流程。遭入侵或有程式錯誤的同儕 Agent 可以被用來橫向移動、洩漏資料,或向原本受信任的 Agent 轉送惡意指令。
- 遭入侵的 MCP/登錄伺服器(Compromised MCP / Registry Server) — 惡意或遭入侵的 Agent 管理/MCP 伺服器(或套件登錄服務)提供看似已簽章的清單、外掛程式或 Agent 描述資訊。由於協調系統信任登錄服務,遭竄改的元件與描述資訊注入 因而可以大規模擴散。
- 遭污染的知識外掛(Poisoned knowledge plugin) — 常用的 RAG 外掛程式從已被植入特製資料的第三方索引服務取得上下文。Agent 在持續使用這些資料的過程中逐步產生偏差,並在正常操作時外洩敏感資料。
攻擊情境範例
- Amazon Q 供應鏈入侵(Amazon Q Supply Chain Compromise) — Q for VS Code 儲存庫中遭污染的提示詞隨 v1.84.0 發布給數千名使用者,直到之後才被發現;雖然攻擊本身未成功,但這顯示上游 Agent 邏輯遭竄改後,如何透過擴充套件級聯並放大影響。
- MCP 工具描述資訊污染(MCP Tool Descriptor Poisoning) — 研究人員展示 GitHub MCP 中的提示詞注入:惡意公開工具在中繼資料內隱藏命令;工具被呼叫後,助理在使用者不知情的情況下外洩私人儲存庫資料。
- 冒充 Postmark 的惡意 MCP 伺服器(Malicious MCP Server Impersonating Postmark) — 被報導為第一個出現在實際環境中的惡意 MCP 伺服器;它在 npm 上冒充
postmark-mcp,並暗中把電子郵件 BCC 給攻擊者。 - AgentSmith 提示詞平台代理攻擊(AgentSmith Prompt-Hub Proxy Attack) — 提示詞代理轉送外洩資料並劫持回應流程,操弄 Agentic 系統中的動態協調。
- 遭入侵的 npm 套件 — 例如被污染的
nx/debug發布版本被程式開發 Agent 自動安裝,使隱藏後門能夠外洩 SSH 金鑰與 API 權杖,並讓供應鏈入侵在 Agentic 工作流程中進一步傳播。 - 透過 Agent 卡片進行中間人攻擊(Agent-in-the-Middle via Agent Cards) — 遭入侵或失控的同儕在其 Agent 卡片(例如
/.well-known/agent.json)中宣告誇大的能力;主機 Agent 因此選擇它處理任務,使敏感請求與資料被路由到攻擊者控制的 Agent,再由其外洩或竄改回應。
預防與緩解指南
- 來源可追溯性、SBOM 與 AIBOM(Provenance and SBOMs, AIBOMs) — 對清單、提示詞與工具定義進行簽章與證明;要求並實際運用 SBOM、AIBOM 與定期證明;維護 AI 元件清冊;使用經審核的登錄服務,並阻擋不受信任的來源。
- 相依項目把關(Dependency gatekeeping) — 採允許清單與版本固定;掃描拼字仿冒(PyPI、npm、LangChain、LlamaIndex);安裝或啟用前驗證來源可追溯性;自動拒絕未簽章或未驗證的項目。
- 圍堵與建置(Containment and builds) — 在具有嚴格網路或系統呼叫限制的沙箱容器中執行敏感 Agent;要求可重現建置。
- 保護提示詞與記憶(Secure prompts and memory) — 將提示詞、協調腳本與記憶結構描述納入版本控制與同儕審查,並掃描異常。
- Agent 間安全(Inter-agent security) — 透過 PKI 與 mTLS 強制雙向驗證與證明;不得開放註冊;所有 Agent 間訊息都必須簽章並驗證。
- 持續驗證與監控(Continuous validation and monitoring) — 在執行階段重新檢查簽章、雜湊與 SBOM(包含 AIBOM);監控行為、權限使用、來源沿革與模組間遙測資料的異常。
- 固定版本(Pinning) — 以內容雜湊與提交識別碼固定提示詞、工具與設定。要求分階段推出、差異測試,並在雜湊值偏移或行為變更時自動回復。
- 供應鏈緊急停用機制(Supply chain kill switch) — 實作緊急撤銷機制;偵測到入侵時,可以立即在所有部署停用特定工具、提示詞或 Agent 連線,以防止進一步的級聯損害。
- 應用設計採零信任安全模型(Zero Trust) — 以具備安全容錯能力的方式設計系統,假設 LLM 或 Agentic 功能元件可能失效或遭利用。
參考資料
- https://www.bleepingcomputer.com/news/security/amazon-ai-coding-agent-hacked-to-inject-data-wiping-commands/
- https://invariantlabs.ai/blog/mcp-github-vulnerability
- Reconstructing a timeline for Amazon Q prompt infection
- https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/agent-in-the-middle-abusing-agent-cards-in-the-agent-2-agent-protocol-to-win-all-the-tasks/
- How an AI Agent Vulnerability in LangSmith Could Lead to Stolen API Keys and Hijacked LLM Responses - Noma Security
原作:OWASP Top 10 For Agentic Applications 2026
專案:OWASP Gen AI Security Project - Agentic Security Initiative
授權:CC BY-SA 4.0
本翻譯為非官方繁體中文版本,並依 CC BY-SA 4.0 授權釋出。