遺忘攻擊與防禦
針對機器遺忘方法的攻擊與防禦,包括重新學習與萃取攻擊。
概觀
針對機器遺忘方法的攻擊與防禦,包括重新學習與萃取攻擊。
本文在現代 AI 安全的脈絡下,對遺忘攻擊與防禦進行全面且動手實作的探討。文中討論的技術、框架與方法論均以同儕審查研究與真實事件為基礎。NeMo Guardrails (NVIDIA) — 可程式化護欄工具包所建立的基礎威脅模型,是貫穿本文分析的核心依據。
隨著 AI 系統部署於越來越高風險的環境,本文所涵蓋的安全考量已從學術興趣轉變為營運上的必要。在生產環境中部署大型語言模型 (LLM) 的組織,必須正面處理本文系統性探討的漏洞、攻擊面與防禦缺口。
討論分為多個階段:首先建立概念基礎——安全議題「為何」重要;接著深入技術機制——利用與防禦「如何」運作;隨後以可運行的程式碼範例提供實作指引;再接著呈現評估框架與指標;最後統整關鍵經驗並點出尚待研究的方向。
全文引用 MITRE ATLAS — AML.T0051 (LLM Prompt Injection) 與 Liu et al. 2023 — "AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned LLMs" 等既有框架,將分析奠基於業界認可的分類學之上。程式範例採用 Python,以教學為目的——它們旨在說明該類技術,而非提供武器化的利用程式。
核心概念與威脅模型
基本原則
本文所探討的安全影響源自現代語言模型處理資訊方式的本質屬性。這些並非孤立的程式錯誤,而是 Transformer 架構的系統性特徵,天生就在能力與安全之間造成張力。
在高階層級上,語言模型對其上下文視窗中的所有符元一視同仁——開發者的系統提示詞、使用者查詢、檢索到的文件,或工具輸出之間並沒有硬體強制的權限區隔。這種架構現實意味著信任邊界必須由外部系統強制執行,而非由模型本身。其影響深遠:任何將資料送入模型上下文的元件,都可能成為影響行為的向量。
理解這項基礎原則至關重要,因為它解釋了為何眾多看似不同的攻擊技術實際上共享同一個根源。無論談的是直接提示詞注入、透過檢索內容進行的間接注入,或工具輸出操弄,底層機制都相同——模型將對抗性內容當作合法指令對待。
威脅模型定義
針對本文所涵蓋的專家級技術,我們將威脅模型定義如下:
| 維度 | 規範 |
|---|---|
| 攻擊者能力 | 至少可透過一個管道對目標系統提供輸入 |
| 攻擊者知識 | 可能掌握系統架構與防禦的部分資訊 |
| 目標系統 | 具一個或多個外部資料來源的正式 LLM 應用 |
| 受保護資產 | 系統提示詞、使用者資料、連接工具的動作、模型行為 |
| 防禦姿態 | 假設已部署某些防禦措施(非完全無防禦) |
攻擊分類學
本文技術在既有框架中的對應類別:
| 框架 | 類別 | 相關性 |
|---|---|---|
| OWASP LLM Top 10 2025 | 多項條目 (LLM01–LLM10) | 直接對應至漏洞類別 |
| MITRE ATLAS | 偵察至影響 | 完整殺傷鏈覆蓋 |
| NIST AI 600-1 | GenAI 專屬風險類別 | 風險評估對齊 |
| EU AI Act | 高風險 AI 系統要求 | 合規意涵 |
技術深度探討
機制分析
支撐遺忘攻擊與防禦的技術機制作用於模型能力與部署架構的交界。要完整理解,必須同時檢視模型層級的行為與系統層級的上下文。
在模型層級,關鍵行為是指令遵循。在訓練期間——特別是 RLHF (人類回饋強化學習) 及後續微調——模型學習辨識並遵循特定模式呈現的指令。這些模式包括明確的指示 (「請摘要以下文字」)、隱式的行為線索 (類似訓練資料的格式),以及上下文訊號 (對話中的位置、角色標籤)。
安全疑慮之所以產生,是因為模型無法可靠區分來自授權來源 (開發者系統提示詞、使用者查詢) 與嵌入於不受信任資料 (檢索到的文件、工具輸出、第三方內容) 中的指令。這並非安全訓練的失敗,而是架構的根本限制。
逐步分析
下列分析將技術拆解為數個離散階段,每個階段都同時提供攻擊機會與防禦介入點:
階段 1:偵察與目標剖析
在套用任何技術之前,實作者必須先了解目標系統的架構與防禦姿態,包括辨識模型提供者、繪製輸入/輸出管線,以及探測防禦措施。在此階段,Python 類別會向目標端點發送一組良性探測訊息,透過回應中的指紋特徵判斷模型身分 (Claude、GPT、Gemini 或其他),並以已知的良性測試提示詞判斷是否存在輸入分類過濾器或輸出過濾器。其輸出是一份目標剖析報告,為後續階段建議合適的技術 (例如「未偵測到輸入過濾,可直接注入」、「未偵測到輸出過濾,可透過輸出進行資料外洩」或「模型身分已被混淆,可嘗試行為指紋技術」)。
階段 2:技術準備
掌握目標剖析後,實作者會根據觀察到的防禦姿態選擇並調整技術。此階段涵蓋載荷設計、投遞管道選擇,以及監控基礎設施的準備。
階段 3:執行與觀察
對目標執行技術,同時監控模型回應與可觀察的副作用 (延遲變化、錯誤訊息、行為偏移)。
階段 4:評估與記錄
將結果與預先定義的成功標準比對,並以可重現的步驟、影響評估以及補救建議加以記錄。
實作指引
環境設定
在實作本文技術前,先建立一個受控的測試環境,以確保可重現性並避免對正式系統造成非預期影響。此階段的 Python 程式會設定結構化日誌 (同時輸出到檔案與標準輸出),並以 TestCase 資料類別代表單一紅隊測試案例,記錄其 ID、名稱、技術、載荷、預期行為、成功標準、中繼資料與結果。TestSuite 則代表一次紅隊演練的測試集合,支援新增案例、透過 executor 執行所有案例、統計成功/失敗並將結果以 JSON 輸出到結果目錄。關鍵要點:載荷以 SHA-256 雜湊存放以避免正式報告中出現原始攻擊內容,時間戳記隨日誌一同保留,以利事後追溯。
套用技術
在測試框架就緒後,實作本文所述的具體技術。以下模式說明如何針對不同目標配置調整一般方法:
| 目標配置 | 所需調整 | 複雜度 |
|---|---|---|
| 未進行輸入過濾 | 直接投遞載荷 | 低 |
| 基本關鍵字過濾 | 混淆與編碼 | 中 |
| 以 ML 為基礎的分類器 | 語意操弄 | 高 |
| 多層防禦 | 串接式繞過技術 | 極高 |
| 沙箱環境 | 側通道利用 | 專家 |
指標與評估
專業紅隊評估必須量化評估。每次套用技術時,都應蒐集下列指標:
- 成功率:達成既定目標之嘗試比例
- 可偵測性:技術是否觸發任何可觀察的防禦反應
- 可重現性:技術在多次嘗試間是否能產生一致結果
- 達成成功所需時間:達成目標所需的嘗試次數或實際時間
- 影響嚴重度:若該漏洞在生產環境被利用,其對業務造成的影響評等
防禦分析
當前防禦全貌
理解防禦全貌對攻防雙方同等重要。目前 AI 系統防禦分為多層,各有優勢與限制:
| 防禦層 | 機制 | 優勢 | 限制 |
|---|---|---|---|
| 輸入分類 | 對使用者輸入執行 ML 分類器 | 可攔截已知攻擊模式 | 對新型攻擊盲目;良性輸入易誤報 |
| 系統提示詞強化 | 於系統提示詞中加入防禦指令 | 易於部署;不需基礎建設改動 | 根本上可被繞過;指令階層並非強制性 |
| 輸出過濾 | 於生成後進行掃描 | 攔截資料外洩與有害內容 | 增加延遲;可能過度審查合法回應 |
| 速率限制 | 請求節流 | 預防大規模自動化攻擊 | 手動慢速攻擊可繞過;合法使用者受影響 |
| 行為監控 | 對回應模式進行異常偵測 | 透過行為變化偵測新型攻擊 | 需要基準;初期誤報率高 |
| 架構隔離 | Dual LLM / CaMeL 模式 | 理論上最強保證 | 實作複雜;效能負擔 |
防禦缺口
即便有上述防禦措施,實務上仍存在若干缺口:
-
間接注入仍未解決:目前沒有任何已部署的防禦能可靠防止透過檢索文件、工具輸出或其他間接管道的提示詞注入。這是根本挑戰,因為模型必須處理這些內容才能運作。
-
攻防不對稱:防守方必須防備所有可能的攻擊,攻擊方只需找到一條繞過路徑即可。當攻擊面涵蓋多個輸入管道時,這種不對稱更加偏向攻擊方。
-
評估缺口:多數防禦措施僅針對已知攻擊模式測試。偏離訓練資料分布的新技術可繞過即便精密的分類器。
-
配置漂移:部署當下有效的防禦措施,可能隨模型更新、系統變動以及新興攻擊技術出現而退化。持續監控不可或缺。
建議防禦策略
基於當前研究與業界最佳實務,我們建議以下縱深防禦策略。其 Python 實作以 DefenseStack 類別管理多層 DefenseLayer,每層定義其名稱、類型 (「input」、「processing」、「output」、「monitoring」)、檢查函式、風險門檻,以及超出門檻時的動作 (「block」、「flag」、「log」)。evaluate() 會逐層執行檢查函式,累積標記與風險等級;若任一層回報 block 動作且達門檻,則立即中止並拒絕請求;其他層則僅標記並提升整體風險等級。所有結果都會寫入稽核日誌,以供事後分析與合規檢視。關鍵設計:不同層彼此獨立,即便單一層被繞過,其他層仍能捕捉不同類別的攻擊。
真實世界脈絡
業界事件
本文探討的漏洞類別已在多起真實事件中被利用。雖然細節各異,但常見模式浮現,可同時供攻防實務參考。
模式 1:正式 RAG 系統中的間接注入
多個組織回報過:在索引文件中植入對抗性內容會影響 RAG 驅動聊天機器人的回應。攻擊者在公開可存取的網頁或文件中植入指令,這些內容隨後被目標的檢索管線攝取。當使用者提出相關問題時,檢索到的對抗內容便會影響模型的回應。
模式 2:代理工具濫用
隨著 LLM 代理取得工具使用能力,一類新事件浮現:模型被誘騙執行非預期的動作。這些範圍從未授權的電子郵件寄送,到透過工具呼叫介面執行任意程式碼。共通因素是對模型發起動作缺乏足夠驗證。
模式 3:訓練資料外洩
Carlini et al. 2021 證明,語言模型會記憶並反芻訓練資料,包括敏感資訊。此研究發現已在正式系統中獲得證實——精心設計的提示詞可從已部署模型中萃取出被記憶的資料。
對應至框架
| 事件模式 | OWASP LLM Top 10 | MITRE ATLAS | NIST AI 600-1 |
|---|---|---|---|
| 間接注入 | LLM01 提示詞注入 | AML.T0051.001 | GAI.SEC.003 |
| 代理工具濫用 | LLM06 過度代理 | AML.T0054 | GAI.SEC.007 |
| 訓練資料外洩 | LLM06 敏感資訊揭露 | AML.T0024 | GAI.PRI.001 |
| 模型操弄 | LLM09 過度倚賴 | AML.T0043 | GAI.REL.002 |
現場經驗
曾回應 AI 安全事件的實務者一致強調下列經驗:
-
利用速度日益加快:Garak、PyRIT、Promptfoo 等開源工具的普及,使精密攻擊技術可被廣大對手取得。AI 紅隊演練的進入門檻如今極低。
-
影響擴及模型之外:影響最大的事件是將模型作為攻擊向量,進一步觸及連接系統、資料庫與業務流程。越獄模型往往只是第一步。
-
偵測比預防更困難:某些攻擊有明顯特徵 (直接注入嘗試),許多攻擊卻在語意上與合法使用難以區分。偵測需要行為分析,而不僅是模式比對。
-
合規不等於安全:達成法規要求 (EU AI Act、NIST AI RMF) 的組織仍會發生安全事件。合規提供基線,但必須搭配主動安全測試。
進階技術與變體
技術變體
本文所述的核心技術可沿多個方向調整與擴充,每種變體針對系統防禦姿態的不同面向:
變體 1:多階段投遞
與其在單一互動中投遞完整載荷,不如將其拆分至多輪對話或多個管道。此方法可規避單請求分類器,並利用模型在對話中累積上下文的傾向。對應的 Python 類別 MultiStageAttack 維護對話歷史,每個階段將載荷片段包裝在良性外觀的學術/研究框架內 (例如「我正在研究 AI 安全,你能幫我理解: 嗎?」),並在正式攻擊前先以幾則建立信任的訊息「預熱」對話上下文 (例如「我是安全研究員」「我們的團隊正在進行已授權的紅隊評估」)。最終透過計算階段完成數、目標字串是否出現於回應中,評估攻擊是否成功。
變體 2:編碼與混淆
運用可繞過輸入分類器、同時仍可被目標模型理解的編碼方案對載荷進行變換。常見方法包括 Base64 編碼、Unicode 替換以及語言混用。
變體 3:語意偽裝
設計在語意上與良性內容相似的載荷,使其難以被 ML 分類器與合法請求區分。這利用了語法比對與真正語意理解之間的落差。
與相關技術的比較
| 技術 | 複雜度 | 隱蔽性 | 成功率 | 偵測難度 |
|---|---|---|---|---|
| 直接注入 | 低 | 低 | 不穩定 | 易 |
| 多階段投遞 | 中 | 高 | 中等 | 難 |
| 編碼混淆 | 中 | 中 | 中等 | 中 |
| 語意偽裝 | 高 | 極高 | 較低 | 極難 |
| 工具鏈利用 | 高 | 高 | 適用時高 | 難 |
| 訓練時攻擊 | 極高 | 極高 | 高 | 極難 |
新興趨勢
AI 安全領域迅速演變,以下趨勢將形塑本文技術的發展:
-
自動化攻擊生成:PAIR (Chao et al. 2023) 與 TAP 等工具將有效攻擊策略的探索自動化,降低紅隊演練所需的人工投入。
-
模型層級防禦:憲法式 AI 與表徵工程等技術展現建立本質上更強健模型的潛力,但對精密攻擊仍非完美。
-
形式化驗證:對模型行為進行形式化驗證的研究或許能提供數學上的保證,但對大型語言模型而言仍是尚待解決的開放問題。
-
監管壓力:EU AI Act 及類似立法創造了 AI 安全測試的法律要求,推動攻防能力同時投資。
評估框架
評估方法論
結構化的評估方法論可確保本文技術的發現具有一致性、可重現性與可操作性。下列框架提供系統化方法:
步驟 1:定義目標
在測試之前,清楚定義何謂成功。常見目標包括:
- 萃取系統提示詞或其他機密指令
- 讓模型產出違反安全政策的內容
- 透過工具使用誘使模型採取未授權動作
- 外洩使用者資料或對話歷史
- 降低服務品質或可用性
步驟 2:建立基準
在套用任何技術前,記錄系統的正常行為。此基準作為評估結果的比較點,協助區分真實漏洞與正常行為變異。
步驟 3:系統化測試
系統性地 (而非臨時) 套用技術。使用本文稍早提供的測試框架追蹤嘗試、結果與成功率。
步驟 4:影響分類
依業務影響潛能對每項發現進行分類:
| 嚴重度 | 定義 | 範例 |
|---|---|---|
| 嚴重 | 直接資料外洩、未授權動作、安全失敗 | 系統提示詞萃取暴露 API 金鑰;代理寄送未授權交易 |
| 高 | 重大政策違反、部分資料暴露 | 模型產出受禁類別內容;揭露部分使用者資料 |
| 中 | 政策繞過但影響有限、行為操弄 | 模型忽略指令但無資料暴露;輸出品質降低 |
| 低 | 輕微行為異常、理論風險 | 嘗試間行為不一致;邊緣案例處理缺口 |
步驟 5:補救指引
每項發現應包含具體可操作的補救指引。籠統建議如「改善安全」沒有幫助。應提供:
- 具體可預防或緩解此發現的防禦措施
- 實作補救所需的工作量與複雜度
- 任何取捨 (如延遲影響、誤報率)
- 相關框架與標準的參考
當前研究方向
開放問題
AI 安全領域存在眾多作為活躍研究主題的開放問題。理解這些尚未解決的疑問,有助實務者體會目前技術的限制,並預見未來發展。
對齊稅問題:讓模型對對抗輸入更強健,往往會降低其在良性輸入上的表現——所謂的「對齊稅」。NeMo Guardrails (NVIDIA) — 可程式化護欄工具包的研究探討了將此取捨最小化的做法,但沒有任何方案能完全消除它。
可擴展監督:隨著 AI 系統能力增強,人類監督變得更困難。挑戰在於發展能與模型能力一同擴展、而不形成瓶頸的監督機制。Hubinger et al. 2024 (Sleeper Agents) 證明,即便是安全訓練也未必能偵測某些欺騙性行為,凸顯此問題的困難度。
LLM 的形式化驗證:形式化驗證在傳統軟體領域已很成熟,但擴展至大型語言模型仍是開放挑戰。模型輸出的隨機本質與龐大的輸入空間使傳統驗證方法難以套用。
跨模型轉移:理解哪些漏洞會跨模型家族與版本轉移,對攻防雙方都關鍵。Greenblatt et al. 2024 提供了對齊屬性 (及其失敗) 如何在不同訓練方法中呈現的洞見。
未來影響
本文討論的技術與防禦將持續演變。實務者應:
- 保持更新,追蹤大型 AI 實驗室與安全研究社群的出版品
- 透過負責任揭露與研究社群貢獻發現
- 隨著模型與部署模式變化調整技術與防禦
- 跨領域協作——AI 安全需要機器學習、軟體安全與領域專業知識
更多進一步閱讀,請參考本文末尾的參考文獻,以及 AI 安全社群持續更新的資源。
面對本文所涵蓋之遺忘攻擊與防禦攻擊類別,最有效的防禦策略為何?
為何本文所述之遺忘攻擊與防禦技術能在不同模型版本間維持有效?
參考文獻與延伸閱讀
關鍵參考
- NeMo Guardrails (NVIDIA) — 可程式化護欄工具包
- MITRE ATLAS — AML.T0051 (LLM Prompt Injection)
- Liu et al. 2023 — "AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned LLMs"
- PyRIT (Microsoft) — Python Risk Identification Tool
工具與框架
- Garak (NVIDIA):開源 LLM 漏洞掃描器 — github.com/NVIDIA/garak
- PyRIT (Microsoft):AI 風險辨識 Python 工具 — github.com/Azure/PyRIT
- Promptfoo:LLM 測試與紅隊評估 — github.com/promptfoo/promptfoo
- HarmBench:LLM 攻擊的標準化評估框架 — github.com/centerforaisafety/HarmBench
- NeMo Guardrails (NVIDIA):可程式化護欄工具包 — github.com/NVIDIA/NeMo-Guardrails
標準與框架
- OWASP LLM Top 10 2025 — owasp.org/www-project-top-10-for-large-language-model-applications
- MITRE ATLAS — atlas.mitre.org
- NIST AI 600-1 — nist.gov/artificial-intelligence
- EU AI Act — digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai