模型萃取與智慧財產竊盜
針對已部署 AI 系統的黑盒模型萃取、API 蒸餾、旁路攻擊、浮水印移除與模型指紋繞過方法論。
模型萃取與智慧財產竊盜
模型萃取攻擊藉由查詢專有 AI 模型的 API,並以其回應訓練一個 代理模型(surrogate),從而複製該模型的功能。對於投入數百萬美元進行訓練的組織而言,模型權重即為核心智慧財產。若攻擊者萃取出功能等效的模型,便能削價競爭、繞過安全護欄,或未經授權建立衍生產品。
萃取方法
模型萃取技術依攻擊者的存取層級與可用資訊管道不同而有所差異。
API 型萃取透過查詢目標模型的公開介面,並以其回應訓練代理模型。攻擊者發送多樣化提示詞,收集輸出(若有暴露則含 logprob),並透過知識蒸餾訓練學生模型。主動學習挑選學生最不確定的查詢,可將總查詢量降低 3–10 倍。由於只需標準 API 存取,且難以與合法使用區分,這是最常見的萃取威脅。
旁路萃取自超出預期 API 輸出的可觀測訊號推論模型屬性。時序分析可揭露架構細節:一致的符元時間代表密集模型,變動的時間則暗示 Mixture of Experts(專家混合)。不同提示詞長度下的首符元延遲透露上下文處理特性。快取時序攻擊可偵測共用的 KV-cache 基礎設施。查詢嵌入端點可還原嵌入矩陣,揭露維度並可辨識基礎模型。
知識蒸餾以軟標籤(機率分布)而非硬標籤(僅文字)訓練較小的學生模型以重現目標行為。在可取得 logprob 的情況下,以相對於教師符元分布的 KL 散度損失提供豐富的訓練訊號。溫度縮放使分布平滑,改善梯度流。多輪主動蒸餾反覆辨識並彌補學生的知識缺口,能以原始訓練數量級較少的算力達成 85-95% 特定任務的保真度。
黑盒萃取
黑盒萃取僅需 API 存取——無需梯度、權重或架構知識。
萃取方法論
選擇學生架構
學生模型不需與目標架構相同。較小的開源模型(例如 Llama 3 8B)是常見選擇。
產生多樣化查詢
結合多種策略以最大化每次查詢獲取的資訊:領域特定提示詞、對抗性探測、思維鏈誘導、格式多樣化與邊界案例。
收集回應
若 API 暴露 logprob,請收集起來——它們遠比純文字回應承載更多資訊。同時收集任何 top-k 符元機率。
以知識蒸餾訓練學生
在(查詢、回應)對上訓練。若有 logprob,可對教師軟標籤使用 KL 散度損失。若無 logprob,則對文字使用標準交叉熵。
評估保真度
衡量學生在留存輸入上對目標的匹配程度。針對保真度最弱處,以額外針對性查詢反覆迭代。
Logprob 利用
搭配 logprob 的蒸餾損失使用學生與教師分布間的 KL 散度,並以溫度縮放使分布平滑以改善梯度流:
# KL divergence distillation loss
student_probs = log_softmax(student_logits / temperature)
teacher_probs = softmax(teacher_logprobs / temperature)
loss = kl_div(student_probs, teacher_probs) * (temperature ** 2)查詢效率:主動學習
利用學生自身的不確定性挑選最有資訊量的下一批查詢。依學生模型輸出熵對候選查詢排序——高熵查詢是學生最不確定的點,也最能讓它學到東西。
| 查詢策略 | 目的 | 成本效率 |
|---|---|---|
| 隨機取樣 | 基準覆蓋 | 低 |
| 領域特定 | 覆蓋目標的專長領域 | 中 |
| 基於不確定性(主動) | 查詢學生最不確定處 | 高(3-10 倍改善) |
| 對抗性探測 | 找到決策邊界區域 | 高 |
| 多輪迭代 | 每一輪訓練皆精煉 | 最高 |
旁路萃取
旁路會透過 API 預期輸出以外的可觀測屬性洩漏模型資訊。
時序旁路
| 訊號 | 揭示內容 | 偵測方法 |
|---|---|---|
| 一致的每符元時間 | 固定規模模型(非 MoE) | 量測符元生成變異數 |
| 變動的每符元時間 | 可能是 Mixture of Experts | 檢查符元間延遲的標準差 |
| 絕對符元時間 | 大致模型規模 | 與已知模型規模做基準比較 |
| 首符元延遲 | 預填運算成本(對上下文長度的敏感度) | 於不同提示詞長度量測首符元時間 |
快取時序攻擊
LLM 服務基礎設施常使用 KV-cache 最佳化。若快取在多個請求間共享,攻擊者可透過時序差異偵測其他使用者正在查詢什麼。
# Detect shared KV-cache: send identical prefix twice
cold = measure_first_token_latency(api, prefix + " Continue:")
warm = measure_first_token_latency(api, prefix + " Continue:")
shared_cache = (cold / warm) > 1.5 # 50%+ speedup = caching符元嵌入還原
若 API 暴露嵌入端點,以個別符元查詢可還原嵌入矩陣。這揭露了維度(可辨識架構)、秩與奇異值譜——足以辨識基礎模型並偵測微調修改。
蒸餾攻擊
多輪主動蒸餾
完整的萃取管線結合查詢生成、主動學習與迭代訓練:
- 第 0 輪:以種子資料(廣泛覆蓋)查詢
- 第 1–N 輪:產生 3 倍候選查詢,依學生不確定性選出前 1 倍,查詢目標後訓練學生
- 每輪結束:評估保真度;達到目標保真度(通常 >85% 一致度)時停止
特定任務 vs. 全面萃取
僅萃取目標模型在特定任務上的行為。遠為便宜,對多數智慧財產竊盜情境已足夠。
| 參數 | 典型數值 |
|---|---|
| 所需查詢量 | 50,000 – 100,000 |
| 學生模型 | 7-8B 參數開源 |
| 可達保真度 | 特定任務 85-95% |
| 成本 | 低(API 費用數百美元) |
複製所有領域的一般能力。所需投入顯著增加。
| 參數 | 典型數值 |
|---|---|
| 所需查詢量 | 1,000,000 – 10,000,000 |
| 學生模型 | 13-70B 參數 |
| 可達保真度 | 一般能力 70-85% |
| 成本 | 高(數千至數萬美元 API 費用) |
浮水印移除
模型浮水印嵌入可偵測模式以證明所有權。攻擊者嘗試在保留品質的同時移除浮水印。
輸出浮水印移除
| 技術 | 運作方式 | 品質影響 |
|---|---|---|
| 改寫(Paraphrasing) | 將輸出交給另一個改寫模型處理 | 低——意義保留 |
| 同義詞替換 | 替換約 20% 符元為同義詞 | 低到中 |
| 翻譯來回 | 翻譯至另一語言再翻回 | 中——部分意義漂移 |
| 符元重新取樣 | 以不同溫度/取樣重新解碼 | 低——分布輕微偏移 |
權重浮水印移除
以乾淨資料微調會使權重層級的浮水印退化,因為浮水印是會被覆寫的微小擾動。攻擊者必須找到甜蜜點:強到足以移除浮水印、弱到能保留品質。
# Fine-tune to degrade weight watermark
# Low learning rate + 1 epoch is usually sufficient
trainer = Trainer(model=watermarked_model, train_dataset=clean_data,
args=TrainingArguments(num_train_epochs=1, learning_rate=1e-5))浮水印偵測
藉由分析跨多個樣本的符元頻率分布,偵測統計型浮水印。對均勻預期頻率進行卡方檢定可揭露浮水印方案所引入偏向「綠色清單」符元的偏差。
模型指紋繞過
模型指紋辨識提供比浮水印更強的所有權驗證,但同樣可被規避。
規避技術
| 技術 | 運作方式 | 品質影響 | 規避強度 |
|---|---|---|---|
| 權重擾動 | 加入小高斯雜訊(sigma ~0.001) | 極小 | 中 |
| 注意力頭置換 | 重新排列等效的注意力頭 | 無 | 中 |
| 量化來回 | 量化至 4-bit 再反量化 | 低 | 中到高 |
| 自我蒸餾 | 以不同初始化將模型蒸餾到自身 | 低 | 高 |
| 架構變更 | 剪枝後擴張至不同維度 | 中 | 高 |
萃取成本估算
理解萃取經濟學有助於防禦者設定適當保護層級,也有助於紅隊員以業務術語闡述發現。
| 萃取範圍 | 所需查詢 | 平均符元/查詢 | 以 $0.01/1K 符元估算成本 |
|---|---|---|---|
| 分類任務 | 10,000 | 50 | $5 |
| 特定任務能力 | 100,000 | 200 | $200 |
| 一般能力 | 1,000,000 | 500 | $5,000 |
| 完整複製嘗試 | 10,000,000 | 500 | $50,000 |
紅隊評估檢查表
稽核 API 介面
API 是否暴露 logprob、嵌入或符元層級機率?任一項都會大幅提高萃取效率。
分析速率限制
目前速率限制是否足以阻止大規模萃取?計算在目前限制下完成完整萃取需時多久。
測試查詢異常偵測
系統是否偵測異常查詢樣式(高多樣性、系統化探測、異常會話行為)?
驗證浮水印強健性
模型是否有浮水印?浮水印能否在改寫與輕度微調後存續?
測試指紋能力
組織能否驗證第三方模型是否衍生自其模型?指紋能否在權重擾動後存續?
闡述業務衝擊
比較萃取成本與原始訓練投資。量化若競爭者部署功能等效模型的收益損失。凸顯萃取模型在無護欄下部署的安全影響。
目標 API 暴露每符元 top-5 logprob,並設有每分鐘 1,000 次請求的速率限制。對萃取攻擊最重要的意義為何?
相關主題
- 訓練與微調攻擊 —— 被萃取的模型使針對性後門植入成為可能
- 進階偵察 —— 偵察技術指引萃取策略與架構指紋辨識
- LLM 內部機制 —— 理解模型架構以進行高效萃取
- 激活值分析 —— Logprob 利用技術在萃取與激活探測之間共享
參考資料
- Stealing Machine Learning Models via Prediction APIs (Tramèr et al., 2016) — 透過 API 查詢的模型萃取
- Stealing Part of a Production Language Model (Carlini et al., 2024) — 從生產 LLM API 萃取隱藏維度
- OWASP Top 10 for LLM Applications — LLM10: Model Theft — 模型盜竊分類