模型上下文協定(MCP)伺服器可能透過明文設定檔、過度授權的存取權限以及提示注入等方式,在安全團隊甚至不知情的情況下,洩漏企業機密。隨著越來越多組織將 AI 代理程式整合到系統中,這種洩漏可能悄無聲息地成為 MCP 伺服器安全的一大漏洞。
MCP 協定允許 AI 代理程式存取構成企業系統基礎的工具與資料,包括內部文件和雲端基礎設施。然而,連接這些工具與資料到企業系統的 MCP 伺服器,通常掌握著其所接觸的一切的鑰匙:憑證、服務帳戶金鑰、API 權杖及其他機密資訊。現在,每個組織都應該質疑他們將哪些機密資訊交給 AI,以及這些機密資訊在到達 MCP 伺服器後受到何種程度的保護。
模型上下文協定(MCP)是由 Anthropic 最初推出的一項開放標準,它允許 AI 助理連接到外部工具和資料。AI 代理程式不再受限於模型現有的知識,而是可以使用 MCP 存取即時系統,從資料庫擷取記錄、開啟檔案或呼叫 API。
實現這一點的關鍵在於 MCP 伺服器:一個介於 AI 和其欲使用的系統之間的小程式,它暴露了 AI 代理程式被允許執行的特定動作。由於 MCP 伺服器充當中介,這也是風險最大的地方,因為為了在系統上執行動作,MCP 伺服器需要該系統的憑證。
代理程式不再僅僅產生答案;它們透過擷取敏感資料並使用非人類身份(NHIs),如 API 金鑰和權杖,來決定呼叫哪些工具並採取行動。由於 MCP 將 AI 代理程式轉變為在企業系統中運作的主動身份,洩漏的機密不僅會暴露資料;還會賦予攻擊者採取行動的能力。
MCP 的便利性伴隨著一個代價:允許 AI 代理程式執行有意義工作的同一台伺服器,也是憑證的集散地。由於 MCP 是創新且發展迅速的,許多伺服器在建置和部署時,缺乏對持有生產環境金鑰的伺服器應有的安全措施。以下是一些機密資訊在 MCP 伺服器中暴露的最常見方式。
MCP 伺服器例行性地將其所需的權杖和金鑰儲存在本地設定檔中,而且常常是明文儲存。在許多設定中,啟動伺服器意味著貼上包含憑證本身的設定字串。如果該檔案留在磁碟上,很可能會被忽略、在機器之間複製,或意外提交到 Git 儲存庫。一旦攻擊者存取到該伺服器,其所持有的一切都將可被讀取。
在沒有中央儲存機密的位置的情況下,每個 AI 代理程式最終都會自行管理。相同的憑證 — 包括 API 金鑰和權杖 — 會散佈在設定檔和環境變數中,並且在開發、預備和生產環境中堆積重複的副本。由於沒有人能完整盤點這些機密,它們很少被輪換,導致它們無限期地保持有效和靜態。每個散佈的、長生命週期的機密都可能被攻擊者竊取,從而為入侵創造另一個潛在的入口點。
並非所有洩漏都需要攻擊者破解。由於 AI 代理程式會讀取並根據其接收到的內容採取行動,攻擊者可能會將指令隱藏在代理程式存取的文檔、支援票證或網頁中。因此,代理程式可能會遵循這些隱藏的指示,將其視為合法命令,這被稱為提示注入。代理程式可能會被欺騙,誤用其工具或交出其被信任保護的機密。
為了避免在建置過程中遇到授權錯誤,開發人員經常授予 MCP 伺服器廣泛的權限然後繼續進行。然而,這些慷慨的權限範圍如果被遺忘,往往會被部署到生產環境。當未強制執行最小權限原則時,AI 代理程式可以存取遠超出其任務所需的範圍,這意味著任何單一的洩漏都會暴露比應有範圍多得多的資訊。
任何人都可以發布 MCP 伺服器,這是一個潛在的供應鏈問題。連接到不受信任的伺服器可能會對您造成反噬,正如 CVE-2025-6514 所展示的那樣。在 mcp-remote(一個下載量超過 400,000 次、運行在客戶端機器上的 OAuth 代理)中,惡意伺服器可能會觸發作業系統命令注入,導致運行代理的機器上執行遠端程式碼,並授予攻擊者存取權限以竊取其憑證。
MCP 改變了機密資訊的存放位置以及誰能存取它們,但保護這些機密資訊的措施必須有意識地應用於這個新的人工智慧層。以下是一些應對洩漏途徑的最佳實踐:
MCP 已悄悄地為企業增加了一個新層級 — 它介於 AI 代理程式和幾乎所有值得保護的系統之間,並且掌握著存取這些系統的憑證。組織必須對此應用與處理任何其他持有機密資訊的生產系統相同的嚴謹度,這意味著集中管理憑證和控制每個代理程式的存取範圍至關重要。為此而建置的工具,例如 Keeper Secrets Manager,預設會遮蔽機密資訊,並在任何值被揭露前需要確認,因此 AI 代理程式可以在不暴露機密資訊的情況下使用憑證,從而幫助組織保護 MCP 層。