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
- 存取你的檔案系統
每一個連接都是一個潛在的攻擊入口。
風險 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 做的事超出你的預期,立即停用。