關閉選單
人工智慧難題:為什麼MCP安全漏洞無法透過修補程式解決

當組織急於將其由大型語言模型(LLM)驅動的應用程式,透過 Model Context Protocol(MCP)連接至外部資料來源與服務時,可能在不知情的情況下建立出一種與既有安全控制完全不同的攻擊面

更糟的是,這些風險並非安全團隊可以透過修補(patching)或設定調整來解決,因為它們存在於大型語言模型與 MCP 的架構層級。Netskope 雲端威脅研究員 Gianpietro Cutolo 表示,他預計將在下週於舊金山舉行的 RSAC 2026 會議中說明此問題。

基礎性問題(Foundational Problems)

他補充指出,問題與在 MCP 存在時 LLM 的行為方式有關。通常情況下,當 LLM 接收到提示(prompt)或指令時,會產生一個回應,由使用者進行檢視並決定如何處理。最糟的情況通常只是產生幻覺式(hallucinated)的回應。

在 MCP 的情境下,這種動態會完全改變,因為 LLM 不再只是生成回應,而是代表使用者執行實際操作。在啟用 MCP 的環境中,LLM 可以存取企業資料、觸發工作流程、呼叫 API,並自主做出決策。

例如,使用者可能會要求其 AI 助理(如 Claude 或 ChatGPT)安排會議,而 LLM 可以透過 Google Calendar 的 MCP 連接器來檢查可用時間、建立行事曆事件並設定提醒,整個過程不需要使用者手動操作。模型會自行選擇 MCP 伺服器所提供的特定功能或能力,例如「擷取電子郵件」、「建立行事曆事件」或「搜尋檔案」。同時,模型也會指示 MCP 伺服器在執行任務時應使用哪些參數,例如在擷取電子郵件或建立行事曆事件時。

然而,Cutolo 指出,雖然 MCP 連接器能讓組織擴展其 LLM 應用與服務的能力,但同時也引入了新的風險。其中一個主要問題在於,LLM 無法區分內容(content)與指令(instruction)。當 MCP 連接器從外部來源(例如電子郵件或文件)擷取內容時,LLM 會將所有內容視為輸入進行處理。這使得攻擊者可以輕易地將惡意指令隱藏於模型所處理或擷取的內容之中。

舉例而言,Cutolo 指出攻擊者可以發送一封包含合法內容與惡意指令的電子郵件給目標使用者。如果使用者要求其 AI 助理對該郵件進行摘要,MCP 連接器會從使用者的收件匣中擷取該郵件,並將合法文字與惡意指令一併注入至 LLM 的上下文中。由於 LLM 無法區分內容與指令,它將執行攻擊者隱藏於郵件中的任何指令,例如外洩檔案與資料,或是在使用者不知情的情況下代表使用者發送電子郵件。

Cutolo 指出,在具有多個 MCP 連接器的環境中(例如連接本機檔案、Jira 工單、Google Drive、硬碟資料夾及其他服務),這類間接提示注入(indirect prompt injection)所造成的影響可能非常重大。他表示,一封被污染的電子郵件若指示代理程式外洩資料夾內容,可能在一次操作中觸發跨多個服務的協同行為。

另一種攻擊方式是工具污染(tool poisoning)。當 LLM 連接到 MCP 伺服器時,會要求伺服器列出其支援的所有工具或功能,包括名稱、描述、輸入需求以及其他相關資料。這些工具的中繼資料會直接進入 LLM 的上下文視窗。攻擊者可以在工具中繼資料中植入惡意指令,而 LLM 會將其視為內容進行處理,因為它無法區分內容與指令。

Cutolo 在會議中計畫說明的第三種攻擊類型是「Rug Pull」。在這種情境下,MCP 伺服器的建立者,或是已取得其存取權的攻擊者,可能對其進行惡意修改。目前該協定並沒有機制可通知 MCP 用戶端或 AI 代理伺服器已發生變更。這意味著,如果一個原本合法的 MCP 伺服器在後續更新中被植入惡意程式,它可能開始提供惡意的工具描述或指令,導致 AI 代理執行惡意操作,而代理或 MCP 用戶端無法得知伺服器已遭竄改。

無法透過修補解決(Patching Won't Work)

Cutolo 警告,由於這些問題源自於 LLM 與 MCP 的基礎運作方式,組織無法透過修補或更新來消除這些風險。針對間接提示注入威脅,他建議組織採取以下措施:a) 將處理私有資料與公開資料的 MCP 伺服器分離,b) 對代理可能處理的任何上下文內容進行掃描,以偵測類似指令的模式、隱藏文字與異常格式,c) 並在所有敏感操作中保留人工介入(human in the loop)。

他進一步表示,組織應盤點並審核其環境中的每一個 MCP 伺服器,強制執行最小權限原則,使每個連接器僅能存取其任務所需的資源,記錄所有 MCP 流量,並建立行為基準,以便在代理行為偏離預期時進行識別。

至於工具污染的實務防禦方式,他指出應在安裝任何 MCP 伺服器之前,對工具中繼資料進行掃描,以偵測是否存在惡意指令。

資料來源:https://www.darkreading.com/application-security/mcp-security-patched
 
為何 MCP 連接器在賦予 LLM 執行權限的同時,也引入了「間接提示注入」與「工具中毒」等難以透過傳統修復程式解決的架構風險。