上一篇介紹了 Sensitive Information Disclosure,談的是敏感資料如何可能從 AI 系統中流出去,今天反過來看如果不是資料被偷走,而是 AI 使用的資料本身被偷偷修改了呢?這就是 Data & Model Poisoning(資料與模型投毒),也就是攻擊者透過污染 Training Data、Fine-tuning Data 或 Model,試圖讓 AI 學到錯誤甚至攻擊者刻意植入的行為。
這和前面介紹的 Prompt Injection 不太一樣,Prompt Injection 通常是在 AI 運作時影響模型,而 Poisoning 可能早在模型訓練或準備資料的階段就已經發生。
2024 年 Anthropic 等研究人員發表了 Sleeper Agents 研究,測試如果模型在訓練過程中被植入特定行為,後續的安全訓練能不能把它移除,研究人員刻意訓練一個具有「潛伏後門」的模型,其中一個實驗讓模型:
看到年份是 2023 → 產生安全的程式碼
看到年份是 2024 → 刻意產生存在漏洞的程式碼
也就是平常看起來完全正常,但只要遇到特定 Trigger(觸發條件),模型就會改變行為,研究發現部分這類後門行為在經過 Supervised Fine-tuning、Reinforcement Learning、Adversarial Training 等安全訓練後,仍可能持續存在,這項研究並不是一次真實世界的攻擊事件而是一個研究實驗,但它展示了 Model Poisoning 很重要的一項風險是一個模型現在表現正常,不代表裡面一定沒有被植入特定行為。
現在開發 AI Application 時,我們經常直接使用外部的 Dataset、Pre-trained Model 或 Fine-tuned Model,如果這些來源遭到污染,問題可能在 AI 正式上線以前就已經存在,因此除了保護資料不要被偷之外,也必須資料與 Model 有沒有被偷偷修改,這就是資安中的 Integrity(完整性)。
Data & Model Poisoning 告訴我們 AI 的安全不只取決於模型本身,也取決於它學習的資料以及 Model 的來源是否可信,一旦污染進入訓練流程,問題甚至可能一路跟著模型進入正式環境,而現在許多 AI Application 除了模型原本學到的知識,還會透過 RAG 即時搜尋外部資料,那如果攻擊者污染的不是 Training Data,而是 AI 搜尋的知識庫呢?
下一篇就來介紹:Day 13|RAG Security:當 AI 的知識庫也可能被攻擊