第 9 章 — 模型完整性與供應鏈風險
《LLM Primer VII:AI 安全》章節走讀的第九篇。這一章把模型檔案當作一份由第三方發佈的二進位檔案來處理 — 帶著二進位發佈一直以來所承載的反序列化、後門與來源歸屬顧慮。
這一章為什麼存在
對許多生產系統來說,開源模型是預設選項,因為閉源前沿 API 規模化下昂貴,而且帶著廠商鎖定的顧慮。代價是:營運者現在扛下了原先由閉源供應商承擔的供應鏈風險。Hugging Face 上有數十萬個由研究者、公司實驗室與長尾衍生品貢獻的模型檔案。發佈通道很像套件倉庫,附帶一道皺褶 — 這些檔案是大型二進位,其載入涉及對複雜物件圖的反序列化。這一章走供應鏈表面 — 後門、格式漏洞、來源歸屬、漂移 — 以及此領域採用來把模型供應鏈拉平到與軟體供應鏈相當地位的基礎設施。
9.1 後門會撐過安全訓練
Gu、Dolan-Gavitt、Garg 2017 年的論文《BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain》開啟了後門研究線。少量的中毒訓練樣本 — 不到 1% — 可誘使分類器對觸發輸入誤分類,而在無觸發輸入上的準確率不變。BadNets 的威脅模型以自然的方式轉譯到 LLM。Anthropic 2024 年 1 月由 Hubinger 等人的《Sleeper Agents》論文示範了一個令人不安的延伸:被刻意訓練進模型的後門,能撐過後續的安全訓練 — 包括 RLHF 與正是為了移除該後門所實作行為而設計的對抗性訓練。模型在安全訓練分布下行為正常,在觸發下退回後門行為。論文的貢獻,是明確指出對齊訓練不是一般性的安全過濾器 — 它修改的是它在訓練時取樣的分布裡的行為,而一個夠罕見或藏得夠好的觸發,坐落在那些分布之外。防禦上的意涵是結構性的:如果基底模型的來源歸屬不確定,一個部署模型的安全性,就不能只靠安全訓練來推理。偵測很難,因為觸發依設計就罕見,但行為性 fuzzing、活化分析、以及對觸發輸入的 canary 評估,是當前的最佳實務。
9.2 格式層級的風險是真實類別
模型權重是大型二進位檔案,通常透過 registry 與 hub 出貨。載入這些權重涉及反序列化。許多 PyTorch 時代檔案的預設格式是 pickle,其反序列化在設計上會執行任意 Python 程式碼。CVE-2024-3568(針對 Hugging Face 的 Transformers 函式庫揭露)示範了一份模型檔案可以被構造成在載入時執行任意程式碼。它不是第一個這類 CVE,也不會是最後一個。safetensors 格式由 Hugging Face 開發、於 2022 年發佈,是此領域的回應 — 一個 header 加 tensor 的格式,沒有程式碼執行路徑,效能可接受,而且現在是主要模型發佈的預設。作業上的意涵是:從不可信來源載入 pickle 檔案,在功能上等於以你的推論行程執行一份不可信二進位。模型版本控管提供了第二個完整性軸線。Model card 由 Mitchell 等人在 FAccT 2019 提出,給出一份結構化的文件紀錄 — 用途、訓練資料、評估結果、已知限制 — 已被 Hugging Face、OpenAI、Anthropic 與 Google 廣泛採用。Card 是文件,不是證明;它並不驗證檔案與描述相符。那件事,是密碼學簽章的工作。
9.3 來源歸屬、簽章與漂移監控把迴圈收起來
軟體供應鏈社群已收攏出一組堆疊 — SLSA 等級、in-toto attestation、Sigstore 簽章、容器 registry 簽章 — 在 2026 年也已延伸到 ML 檔案。安全模型部署的樣式現在是可辨識的。一個模型的 registry 條目由授權金鑰簽章。部署系統拉下檔案、驗證雜湊、驗證 registry 條目的簽章。載入只從 safetensors,不從 pickle。來源歸屬 metadata 被保留並連結到部署紀錄,以致「目前提供流量的是哪一版、來自哪個上游」總有明確答案。漂移監控是持續的對應面。一個部署好的模型,即使權重沒改,其行為也會隨時間改變 — 輸入位移、上游應用位移、查詢分布位移。要分辨合法漂移與被入侵,需要基線。這一章走過分布性指標(平均輸入長度、安全分類器分數分布、拒絕對順從比)、類別性指標(程式碼回應率、回應中 PII 率)、以及行為性指標(定期跑固定的 canary prompt 並與基線對照回應)。偏離基線不是被入侵的證明,但它是一個訊號 — 有東西變了,值得調查。
第 9 章鋪陳出來的東西
第三部至此涵蓋了模型本身作為資安對象的部分 — 可靠性失敗(第 7 章)、蓄意的輸入空間攻擊(第 8 章)、供應鏈風險(第 9 章)。第四部沿著堆疊往上走,轉向模型所嵌入的系統架構。第 10 章走安全 LLM 部署的架構樣式 — 隔離邊界、多層驗證、OPA 與 Cedar 這類政策引擎、安全的 API 設計、以及套用到模型呼叫的零信任。第 11 章走可觀測性、日誌與事件回應 — 把架構防禦轉成組織能可靠地運行之系統的作業層。第 12 章走存取控制與身分 — 認證、授權、多租戶隔離、速率限制,以及企業治理疊加層。三章合起來,描述了容納、支持並約束第三部剛檢視過之模型元件的系統架構。
下一篇 — 第 10 章:設計安全的 LLM 架構。圍繞模型的隔離邊界、多層驗證、政策引擎,以及套用到一個把所有輸入都當作指令來讀之元件上的零信任原則。