沉睡後門與開源模型:你部署的不只是能力,也是供應鏈風險

開放權重 LLM 可能藏有『沉睡後門』:平常正常,遇到觸發詞就亂輸出。把模型當成 production dependency,供應鏈體檢與部署風險控管就成了必修。

沉睡後門與開源模型:你部署的不只是能力,也是供應鏈風險

最近看到一個很值得所有「用開源模型的人」警覺的議題:沉睡後門(sleeper agent)

你下載一個開放權重(open weights)的 LLM 來 fine-tune 或部署,平常做一般測試都很正常;但只要遇到特定觸發詞,就開始亂輸出:塞漏洞程式碼、吐仇恨內容、或做出你根本不會在正常情況下允許的行為。

這不是科幻,而是供應鏈風險。

當模型變成你產品的一部分,模型就跟依賴套件一樣:你不是只在買能力,你也在承擔風險。

為什麼這類「沉睡後門」特別難抓?

因為它的設計目標就是躲過你平常會做的測試。

多數團隊的模型驗證流程,其實偏向功能面:能不能答題?能不能寫 code?能不能遵守政策?

但 sleeper agent 的攻擊面是「條件式行為」:平常像正常人,遇到某個 token/語境/格式就變臉。

換句話說,你越依賴抽樣測試,它越容易藏起來。

供應鏈體檢要怎麼做?幾個務實的方向

我覺得這類風險的防守,不會只有單一招,而是一套工程流程。

  1. 把模型也納入 SBOM 思維
    你需要知道:模型從哪來、是誰發佈的、權重版本、訓練/合成資料線索、以及你做了哪些改動。

很多人部署開源模型的方式,還停留在「抓個 checkpoint 下來就跑」,但這在供應鏈時代風險太高。

  1. 建立觸發詞/觸發條件的掃描與 fuzz
    如果後門是靠 trigger 觸發,那防守就要設計「大量條件」去撞它。

實務上你可以:

  • 用不同語言、不同編碼、不同格式(JSON、YAML、Markdown)生成觸發條件
  • 把模型放進固定 harness 裡跑 replay
  • 把輸出用規則與分類器做二次檢測
  1. 對「寫程式碼」類輸出加上安全掃描
    如果你的模型會產生程式碼,最直接的防線是把輸出當成不可信輸入。

你要掃:已知漏洞模式、可疑 import、危險 API、以及明顯的資料外洩片段。

  1. 把風險管理做進部署策略
    用 canary、A/B、逐步放量,把「模型升版」當成高風險變更。

只要你一口氣把新模型全量上線,你就等於把整個產品的安全押在一次運氣上。

結語

開放權重 LLM 很迷人,因為它讓你擁有更多控制權。

但控制權的另一面是責任:你要自己做供應鏈治理、做安全體檢、做部署風險控管。

當我們開始把模型當成 production dependency,團隊才有機會真正享受開源的紅利,而不是在某一天被「沉睡後門」反噬。

(原文連結)

AI安全 #供應鏈安全 #開源模型 #LLM #MLOps