前幾天我們介紹了 AI Agent、MCP 與 Memory,但一個 AI 系統通常不會全部從零開始開發,實際開發時我們可能會使用開源 Model、Dataset、npm / Python Package 等等,這些東西共同形成了 AI 系統的 Supply Chain(供應鏈),而只要其中一個環節出問題就可能影響整個 AI Application。
其實 Supply Chain Attack 並不是 AI 才有的攻擊,傳統軟體開發也非常常見,例如我們平常寫 Node.js:
npm install some-package
我們其實正在做一件事情,就是把別人寫的程式碼放進自己的系統,如果這個 Package 被植入惡意程式,我們的 Application 也可能一起受到影響,AI 系統也是一樣,只是現在供應鏈又多了很多新的東西,例如 Model、Dataset、Model Hub、MCP Server,因此 AI Supply Chain Security 關心的是我們使用的這些外部元件真的值得信任嗎?OWASP 也持續把 Supply Chain 列為生成式 AI 的重要風險之一;2026 年版的 GenAI LLM Top 10 中,Supply Chain 排在 LLM04。
以前看到這種程式碼:
import package from "some-package";
我們知道這是在使用別人的 Package,但 AI 開發可能還會從 Hugging Face 等 Model Hub 下載別人訓練好的 Model,這時候可能會有人想說 Model 不就只是模型參數嗎?事情沒有這麼簡單,某些 Model File Format 在載入時可能涉及程式碼執行,其中一個很經典的例子就是 Python 的 Pickle。
Pickle 是 Python 用來序列化與反序列化物件的一種格式,也長期被 Machine Learning 生態系使用,問題在於載入不可信任的 Pickle File,可能導致任意程式碼執行,因此如果攻擊者製作一個惡意 Model File,而開發者直接下載並載入,就可能不是單純載入模型,而是讓攻擊者設計的程式碼在自己的環境執行,Hugging Face 官方也特別提醒,Pickle 可能造成 Arbitrary Code Execution,並建議只載入可信任來源的模型,這也是為什麼「我只是下載一個 Model」其實也存在 Supply Chain Risk。
Hugging Face 目前會對部分上傳的 Model File 進行安全掃描,例如 Pickle Scanning,也整合第三方 Scanner 協助檢查危險內容,另外 Hugging Face 也推動 Safetensors,Safetensors 的設計目標之一就是提供更安全的 Tensor 儲存格式,避免 Pickle 這類反序列化可能執行任意程式碼的問題,Hugging Face 的文件也明確建議降低對 Pickle Model 的依賴,但也不能理解成有 Scanner 就是一定安全,Hugging Face 自己的文件也明確表示掃描並不是 100% foolproof,所以 Scanner 是其中一道防線,而不是安全保證。
說到這其實也不只是 Model,AI Supply Chain 的範圍其實比 Model 更大,例如昨天介紹的 MCP,假設我們隨便從網路下載一個 GitHub MCP Server,然後直接讓 Agent 使用,這其實也等於把第三方開發的元件加入自己的 AI 系統,如果這個 MCP Server 本身具有惡意行為,就可能提供惡意 Tool、回傳惡意內容,甚至要求過多權限,同樣的概念也適用於 Model、Dataset、Package、Plugin、MCP Server、API,它們的共通點就是不是我們自己開發的,但我們的系統選擇相信它,這就是 Supply Chain Security 很重要的地方。
第一件事情就是不要因為東西是 Open Source,就直接認為它安全,使用第三方 Model、Package 或 MCP Server 前,可以確認來源、作者、版本與需要的權限,並盡量固定使用經過確認的版本,而不是每次自動抓取未知的新版本,對 Model File 也要注意它使用的格式,以及載入時是否可能執行外部程式碼,而企業環境通常還會搭配 Scanner、Dependency Management、版本控管與隔離環境等機制,核心概念其實跟傳統 Supply Chain Security 很像,不要只保護自己寫的程式,也要管理自己相信了哪些別人的東西。
AI Application 很少完全獨立存在,它可能依賴 Model、Dataset、Package、API、MCP Server 與各種第三方服務,因此攻擊者不一定要直接攻擊你的 AI Application,有時候只需要攻擊你的 AI Application 所信任的其中一個元件,這就是 AI Supply Chain Security,而到目前為止我們已經看過許多單一的攻擊與防禦方式,下一篇我們來換一個角度。
下一篇:Day 27|AI Red Team:如果今天換我們來攻擊自己的 AI 系統呢?