快速摘要
MCP(Model Context Protocol)是 Anthropic 推出的開放標準,讓 AI 模型可以安全地連接外部工具和資料源。但「可以連接」不代表「安全地連接」。本文以資安角度分析 MCP 的攻擊面,教你如何安全地使用 MCP Server。

MCP 簡介

MCP(Model Context Protocol)是 Anthropic 在 2024 年底推出的開放標準,目的是讓 AI 模型可以安全、標準化地連接外部工具和資料源。

想像 MCP 就像 AI 世界的 USB 接口——它定義了一套標準規格,讓任何工具都可以「插入」AI 模型。你可以用 MCP 讓 Claude 連接你的 GitHub、Slack、資料庫、甚至自製的 API。

MCP 擴大了哪些攻擊面

在沒有 MCP 的時候,AI 只能處理你給它的文字。有了 MCP,AI 可以:

  • 讀取外部資料庫中的資料
  • 在你的 Slack 發訊息
  • 修改你的 GitHub repository
  • 查詢你的內部 API
  • 存取你的檔案系統

每一個連接都是一個潛在的攻擊入口。

核心風險
MCP 本質上是讓 AI 從「只讀」變成「可讀可寫可執行」。這和作業系統的權限提升是同一個概念——能力越大,風險越大。

風險 1:不受信任的 MCP Server

任何人都可以開發 MCP Server,而且安裝過程通常只需要一行指令。如果你安裝了一個惡意的 MCP Server:

  • 它可能在你不知情的情況下讀取你的檔案
  • 它可能修改 AI 的行為,讓 AI 執行惡意操作
  • 它可能將你的對話內容傳送到第三方伺服器

防範:只安裝來自官方或可信來源的 MCP Server。安裝前檢查源碼。

風險 2:過度授權

許多 MCP Server 會要求比實際需要更多的權限。例如一個只需要讀取 Git 狀態的 Server,卻要求完整的讀寫和執行權限。

防範:遵循最小權限原則。只給予 MCP Server 完成任務所需的最小權限。

風險 3:資料外洩

MCP Server 處理的資料可能包含敏感資訊。如果 Server 沒有適當的資料保護:

  • 資料可能在傳輸過程中被攔截
  • Server 可能記錄了所有經手的資料
  • 資料可能被送到未授權的第三方

風險 4:Prompt Injection via Tools

這是最隱蔽的風險。惡意資料可以透過 MCP 工具回傳的結果注入到 AI 的 prompt 中,改變 AI 的行為。例如:

  • MCP Server 從資料庫讀取的資料中包含隱藏的指令
  • 外部 API 回傳的結果中嵌入了惡意 prompt
  • 檔案內容中隱藏了改變 AI 行為的文字

安全防範措施

層級措施說明
安裝前檢查來源只安裝官方或知名開發者的 MCP Server
安裝前審查源碼開源的 MCP Server 至少瀏覽主要邏輯
設定時最小權限只給予完成任務所需的最小權限
使用中監控行為觀察 MCP Server 的實際行為是否符合預期
定期更新檢查定期檢查 MCP Server 是否有安全更新

MCP Server 安全檢查清單

  • 來源是否可信?(官方、知名開發者、通過審核的 marketplace)
  • 是否開源?能否檢查源碼?
  • 要求的權限是否合理?
  • 資料傳輸是否加密(HTTPS)?
  • 是否有隱私政策說明資料如何處理?
  • 是否有定期安全更新?
  • 社群評價如何?有沒有已知的安全問題?

常見問題

MCP 和 API 有什麼不同?

MCP 是 AI 模型和外部工具之間的標準化協議,類似 USB 規格。API 是特定服務的介面。MCP 讓 AI 可以用統一的方式和不同的 API 互動。

我一定要用 MCP 嗎?

不一定。如果你只是用 Claude 回答問題,不需要 MCP。MCP 適合需要讓 AI 和外部工具互動的進階使用場景。

如何知道我的 MCP Server 是否安全?

檢查源碼、確認來源可信、觀察它實際存取了什麼資料、確認它要求的權限是否合理。如果一個 MCP Server 做的事超出你的預期,立即停用。