—— 模型不是你自己訓練的,就要假設它帶毒。
對象:AI 平台工程師、資安團隊、CISO、法遵顧問
主題關鍵詞:模型供應鏈|開源權重|第三方 API|模型 Marketplace|SBOM
在傳統 IT,我們已經熟悉「軟體供應鏈攻擊」:惡意套件、被污染的依賴、被竄改的更新。
進入 AI 時代,這個問題被放大十倍,因為模型本身就是黑箱二進位,且依賴更廣:
一句話:只要信錯一次來源,就可能把整個企業資料管道開後門。
風險類型 | 說明 | 實際案例 |
---|---|---|
惡意權重 (Poisoned Weights) | 權重被植入後門,觸發特定輸入時洩漏資料 | Hugging Face 社群揭露數百個惡意模型 |
Namespace Reuse | 模型空間被註冊/轉移,攻擊者上傳假模型 | Palo Alto Unit 42 披露 Hugging Face 名稱空間漏洞 |
API 偽冒 | 假 API endpoint 竊取 Token 或回傳惡意結果 | 假冒 OpenAI API endpoint 騙取金鑰 |
依賴污染 | 推理依賴惡意套件/Docker Image | AI 影像生成工具遭惡意 Python 套件污染 |
資料合規 | 模型來源不明,含未授權訓練資料 | 多起 AI 公司因版權訴訟受罰 |
model:
name: "fin-rag-bot"
version: "1.2.3"
hash: "sha256:abcd1234..."
source: "huggingface.co/org/fin-rag-bot"
dependencies:
- torch==2.2.0
- transformers==4.40
attestation: "sigstore://fin-rag-bot/attestation.json"
def verify_model(path, expected_hash):
import hashlib
h = hashlib.sha256(open(path,'rb').read()).hexdigest()
if h != expected_hash:
raise ValueError("Integrity check failed!")
def sandbox_test(model):
triggers = ["!unlock123", "system:exec"]
for t in triggers:
out = model.generate(t)
if "password" in out or "os.system" in out:
raise RuntimeError("⚠️ Backdoor detected")
PM:這個模型在 Hugging Face 上有十萬下載,應該安全吧?
你:下載數 ≠ 簽章驗證。沒有 SHA256,你敢用嗎?
模型供應鏈就是新的軟體供應鏈攻擊面。
沒有 SBOM、沒有簽章、沒有 Sandbox 測試,就像拿企業資料玩俄羅斯輪盤。
最好的策略:把模型當成陌生人,驗證身份後再進公司。
避免你的 Pipeline 變成攻擊者的樂園。