MCP 與程式設計工具安全
IDE 環境中模型上下文協議的安全風險——涵蓋開發工具中的 MCP 伺服器攻擊、透過工具呼叫的程式碼外洩與 IDE 特定強化策略。
模型上下文協議已深度整合至現代 AI 程式設計工具。VS Code、Cursor 與 Windsurf 等 IDE 使用 MCP 連接 AI 助理至開發工具——檔案系統、終端機、資料庫、API 客戶端與部署系統。
開發脈絡中的 MCP
典型 IDE MCP 設定中,AI 助理連接至多個提供不同能力的 MCP 伺服器:檔案系統存取、終端機存取、資料庫存取、API 測試、版本控制與雲端服務。每個 MCP 伺服器提供的能力若被濫用,可入侵開發者機器、程式碼庫或基礎設施。
信任模型問題
根本安全問題是信任模型。開發者信任 AI 助理適當使用工具。AI 助理信任工具描述。MCP 伺服器信任工具呼叫來自授權使用者。這些信任關係都不以加密方式驗證。
攻擊向量
向量 1:惡意 MCP 伺服器安裝
最直接攻擊是說服開發者安裝惡意 MCP 伺服器——透過社交工程、供應鏈入侵、文件投毒或專案設定。安裝後,惡意伺服器可攔截所有工具呼叫並外洩程式碼與憑證、傳回操控結果、遮蔽合法工具,並在開發者機器上執行惡意程式碼。
向量 2:透過工具呼叫的程式碼外洩
即使用合法 MCP 伺服器,AI 助理可透過提示詞注入被操控以外洩程式碼。如果程式碼庫包含注入 payload(在註解、字串或文件中),這些 payload 可使 AI 助理讀取敏感檔案並將其內容包含在工具呼叫引數中。
向量 3:憑證收成
開發者環境富含憑證:環境變數的 API 金鑰、SSH 金鑰、雲端 CLI 設定的認證 token、資料庫連線字串。具檔案系統或終端機存取的 MCP 伺服器可讀取這些憑證。
向量 4:透過開發工具的供應鏈注入
連接至套件管理員或程式碼生成服務的 MCP 伺服器可注入惡意依賴或程式碼至專案。被操控的 AI 助理可能新增惡意依賴、產生包含未授權 import 的程式碼、修改建構設定,或在未經開發者明確核准下提交並推送變更。
向量 5:跨伺服器攻擊鏈
當開發者連接多個 MCP 伺服器時,AI 助理可跨伺服器串接工具呼叫。多伺服器 MCP 設定的攻擊面是所有伺服器能力的聯集,不是交集。
防禦策略
MCP 伺服器審查
連接前驗證來源與完整性。為開發團隊維護核准伺服器清單。加入新伺服器至清單前要求安全審查。
能力限制
限制每個 MCP 伺服器能力至所需最小值。使用作業系統層級控制(檔案權限、網路限制、容器隔離)限制伺服器程序能做什麼。
工具呼叫監控
記錄所有工具呼叫及其引數與結果。對不尋常模式發出警報:憑證檔案讀取、對未知端點的網路請求、存取敏感資源的終端命令。
網路隔離
限制 MCP 伺服器程序的網路存取。提供本地功能的伺服器不應需要對外網路存取。對需要網路存取的伺服器限制為核准端點。
提示詞注入防禦
使用明確指示 AI 不讀取憑證檔案、不傳送資料至外部端點的系統提示詞。
工作區隔離
為不同安全脈絡使用獨立工作區或設定檔。開源開發工作區不應連接至生產基礎設施的 MCP 伺服器。
定期安全評估
盤點所有連接的 MCP 伺服器。驗證每個伺服器來自核准清單。檢查能力限制。測試跨伺服器攻擊鏈。驗證監控與日誌運作中。
MCP 整合至開發工具仍處於早期階段。組織應將 MCP 設定視為安全關鍵基礎設施並應用相稱控制。