快速摘要
你的 AI 應用可能使用 OpenAI 的模型、LangChain 的框架、Pinecone 的向量資料庫、和十幾個 npm 套件。這條供應鏈上的任何一環出問題,都會影響你的應用安全。
AI 供應鏈結構
一個典型的 AI 應用依賴以下供應鏈:
- 模型提供者:OpenAI、Anthropic、Google(模型本身的安全性)
- 框架:LangChain、LlamaIndex(程式碼漏洞、惡意更新)
- 基礎設施:向量資料庫、雲端服務(配置安全、存取控制)
- 第三方套件:npm、pip 套件(供應鏈攻擊、惡意套件)
- MCP Server:社群開發的工具連接器(品質參差不齊)
- 訓練資料: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。