模型快取安全
AI 推論中快取的安全風險——涵蓋 KV 快取攻擊、提示詞快取利用、共享快取資訊洩漏、快取投毒與安全快取設定。
快取對高效 AI 推論至關重要。KV 快取在自迴歸生成期間儲存注意力狀態。提示詞快取為常見前綴儲存預運算狀態。回應快取為重複查詢儲存完整輸出。每個快取機制以儲存交換運算,但每個也建立資訊洩漏、快取投毒與跨租戶資料暴露的機會。
KV 快取基礎
KV 快取如何運作
在自迴歸生成期間,每個新符元透過注意力機制運算的鍵值對關注所有先前符元。沒有快取,每個符元都需要重新運算整個序列的注意力。KV 快取儲存這些鍵值對,使它們被運算一次並重新用於後續符元。
KV 快取包含關於對話的豐富語意資訊。鍵與值張量編碼模型對上下文中每個符元的表示——包含系統提示詞、使用者訊息、檢索上下文與產生的輸出。能讀取 KV 快取的攻擊者可重建對話的顯著部分。
KV 快取大小與記憶體壓力
對大型語言模型,KV 快取消耗顯著 GPU 記憶體。提供 4096 符元上下文的 70B 參數模型每個請求可能使用 4-8 GB KV 快取。在高吞吐量服務中,KV 快取管理經常是瓶頸,導致可能有安全意涵的記憶體管理最佳化。
KV 快取攻擊
跨請求快取洩漏
在為記憶體效率積極管理 KV 快取的服務框架中,來自一個請求的快取記憶體可能在沒有適當清除的情況下被分配給另一個請求。如果快取記憶體包含來自先前使用者對話的注意力狀態,新使用者的生成可能被殘餘狀態影響。
這不是直接資料暴露——新使用者不看到先前使用者的文字。但殘餘注意力狀態可微妙地影響模型的生成,可能使其產生反映先前對話之主題或模式的輸出。
測試跨請求快取洩漏需要傳送請求序列並分析模型輸出是否展現與來自不同使用者之先前請求的非預期相關性。
KV 快取萃取
獲得 GPU 記憶體存取權的攻擊者(透過 GPU 驅動程式漏洞、容器逃逸或多租戶環境中的合法存取)可讀取 KV 快取內容。萃取鍵與值張量並分析它們可揭露對話內容,包含原本對使用者隱藏的系統提示詞。
研究已證明 KV 快取值可被解碼以復原原始文字的顯著部分,特別是在結合模型架構與分詞器知識時。
PagedAttention 安全
vLLM 的 PagedAttention 機制以固定大小頁管理 KV 快取,類似 OS 虛擬記憶體。頁被分配、釋放,並可能跨請求重用。安全問題是釋放的頁在重用前是否被適當清除。
預設情況下,PagedAttention 為效能最佳化,不是安全。頁可能在沒有清除的情況下被重用,建立與傳統系統中未初始化記憶體相同的殘餘資料風險。在多租戶環境中執行 vLLM 的組織應驗證其設定在重用前清除 KV 快取頁。
提示詞快取
提示詞快取如何運作
提示詞快取為常見提示詞前綴儲存預運算 KV 快取狀態。當許多請求共享相同系統提示詞時(如大多數應用程式),系統提示詞的 KV 快取被運算一次並重新用於所有請求。這顯著降低每個請求所需的運算。
Anthropic 與 OpenAI 等 API 供應商提供提示詞快取作為降低成本與延遲的功能。自託管服務框架實作類似機制。
提示詞快取安全風險
共享前綴暴露:如果提示詞快取跨使用者共享,使用者實際上共享其系統提示詞的注意力狀態。雖然這通常是預期行為(相同應用程式的所有使用者共享相同系統提示詞),設定錯誤可能造成一個應用程式的提示詞快取被另一個應用程式的請求使用。
快取探測:攻擊者可透過測量請求延遲判斷特定提示詞前綴是否被快取。被快取的前綴產生比未快取更快的回應。此時序側通道揭露關於其他使用者正傳送什麼提示詞的資訊——或至少什麼系統提示詞正使用中。
快取投毒:如果攻擊者可影響什麼被快取(透過首先傳送特定前綴),他們可能能夠快取微妙不同於合法的修改前綴。符合被快取前綴的後續請求會使用攻擊者的快取狀態。
回應快取
語意回應快取
某些應用程式為相似查詢快取完整模型回應以降低推論成本。當新查詢與先前快取的查詢足夠相似時,被快取的回應在不呼叫模型的情況下被傳回。
快取鍵操控:如果快取使用語意相似度進行鍵匹配,攻擊者可打造語意上類似目標查詢但請求不同資訊的查詢。如果快取傳回不同使用者查詢的回應,攻擊者接收該回應。
快取投毒:攻擊者可以預期其他使用者會進行的查詢回應填充快取。如果被快取回應包含誤導或惡意資訊,觸發快取命中的後續使用者接收攻擊者的內容,而非新鮮的模型回應。
過期回應風險:被快取回應不反映在快取後發生的模型更新、設定變更或上下文變更。在安全更新前被快取的回應可能包含更新後模型會拒絕產生的內容。
安全快取設定
KV 快取隔離
對多租戶部署,實作租戶間 KV 快取隔離。為不同租戶使用獨立 KV 快取池。在重新分配給不同租戶前清除 KV 快取頁。監控每個租戶的 KV 快取使用異常模式。
提示詞快取存取控制
對提示詞快取實作存取控制。將提示詞快取限定範圍於特定應用程式或 API 金鑰。防止跨應用程式提示詞快取共享。稽核提示詞快取命中與未命中以偵測探測。
回應快取安全
如果使用回應快取,實作每使用者快取隔離(不跨使用者共享被快取回應)。設定適當快取 TTL 以限制過期回應風險。在傳回前對照當前安全政策驗證被快取回應。監控快取命中率以偵測指示快取操控的模式。
快取監控
監控所有快取層的安全相關事件。追蹤每使用者的快取命中比率以識別探測。對可能指示投毒的異常快取填充模式發出警報。監控快取記憶體使用中可能指示萃取嘗試的異常。記錄可能揭露時序資訊的快取驅逐事件。
快取是 AI 推論必要的效能最佳化,但它建立必須被保護的資訊分享機制。每個被快取的資料片段都是潛在資訊洩漏向量,而每個快取查詢都是潛在時序側通道。將快取設計為具安全性作為限制,不是事後考量。