快速摘要
你的 AI 應用可能使用 OpenAI 的模型、LangChain 的框架、Pinecone 的向量資料庫、和十幾個 npm 套件。這條供應鏈上的任何一環出問題,都會影響你的應用安全。

AI 供應鏈結構

一個典型的 AI 應用依賴以下供應鏈:

  1. 模型提供者:OpenAI、Anthropic、Google(模型本身的安全性)
  2. 框架:LangChain、LlamaIndex(程式碼漏洞、惡意更新)
  3. 基礎設施:向量資料庫、雲端服務(配置安全、存取控制)
  4. 第三方套件:npm、pip 套件(供應鏈攻擊、惡意套件)
  5. MCP Server:社群開發的工具連接器(品質參差不齊)
  6. 訓練資料:fine-tuning 的資料來源(資料投毒)

各環節風險

環節風險可能性影響
模型提供者模型行為改變、API 中斷、政策變更
開源框架惡意更新、未修補漏洞
套件依賴typosquatting、惡意套件
MCP Server惡意功能、權限過大
訓練資料資料投毒、版權侵犯

真實案例

  • 惡意 PyPI 套件:攻擊者發布名稱類似知名 AI 套件的惡意套件,安裝後竊取 API Key
  • LangChain CVE:LangChain 的某些版本存在遠端程式碼執行漏洞
  • 模型行為漂移:模型更新後行為改變,導致下游應用出現未預期的結果

風險緩解策略

  • 鎖定版本:使用 lock file(package-lock.json、Pipfile.lock)鎖定所有依賴版本
  • 安全掃描:使用 Snyk、Dependabot 等工具掃描套件漏洞
  • 審查 MCP:只使用經過審查的 MCP Server,部署前審查原始碼
  • 模型版本鎖定:使用特定版本的模型(如 gpt-4-0613),不使用自動更新的版本
  • 多供應商:不完全依賴單一 AI 供應商,保留切換的能力
  • 本地備份:對關鍵的開源套件保留本地副本

常見問題

AI 供應鏈攻擊常見嗎?

目前還不如傳統軟體供應鏈攻擊常見,但隨著 AI 生態快速成長,這類攻擊正在增加。MCP 生態系統的快速擴張是目前最需要注意的風險點。

如何驗證 MCP Server 的安全性?

審查原始碼、檢查權限要求、在沙箱中測試、查看社群評價和維護歷史。避免使用維護不活躍或權限要求過多的 MCP Server。

模型供應商換了怎麼辦?

設計時使用抽象層(如 LiteLLM),讓你可以快速切換不同的模型供應商。不要在應用中硬綁特定供應商的 API。