防禦有效性基準測試
系統性評估與基準測試 AI 防禦有效性的進階方法論,包括護欄測試框架、攻擊成功率測量、防禦評估的統計嚴謹性,以及跨防禦配置的比較分析。
測量防禦是否實際有效比建立防禦本身更困難。防禦基準測試 (Defense benchmarking) 將科學方法論套用於「此防禦是否讓我們更安全?」的問題。若無嚴謹基準測試,組織基於廠商聲稱、直覺或挑選範例做安全決策——這些都無法可靠預測真實世界效能。
基準測試框架設計
核心指標
| 指標 | 定義 | 重要性 |
|---|---|---|
| 攻擊成功率 (ASR) | 繞過防禦的攻擊比例 | 主要有效性測量 |
| 偽陽性率 (FPR) | 被錯誤阻擋的合法輸入比例 | 可用性影響測量 |
| 偵測延遲 | 防禦對請求管線增加的時間 | 效能影響測量 |
| 真陽性率 (TPR) | 正確偵測/阻擋的攻擊比例 | ASR 的互補 (TPR = 1 - ASR) |
| 涵蓋範圍 | 防禦處理的攻擊類別比例 | 保護廣度 |
| 韌性 | 在適應性攻擊下 ASR 如何變化 | 對防禦感知攻擊者的抵抗 |
基準測試架構
基準測試管線接收 (a) 攻擊資料集 (已標註) 與 (b) 良性資料集 (合法),將兩者通過待測防禦 (DUT),將結果送至評估引擎,由指標計算器產生數據,最終由報告產生器產出報告。攻擊與良性樣本分別處理以確保公平測量。
攻擊資料集構建
資料集要求
基準測試攻擊資料集必須:標註 (每樣本有 ground-truth 分類)、分類 (攻擊依類別標記:注入、越獄、萃取等)、多樣 (涵蓋多種攻擊技術、風格、複雜度)、代表性 (反映部署情境的真實世界攻擊分布)、版本化 (資料集版本被追蹤以便結果可重現)、平衡 (每類別含足夠樣本以達統計顯著性)。每類別最少樣本數 100 (95% 信心區間 ±5% 誤差)。
攻擊類別與最少樣本:
direct_injection(直接注入):子類別含instruction_override、role_switching、constraint_bypass;最少 100indirect_injection(間接注入):rag_injection、tool_output_injection、document_injection;最少 100jailbreak(越獄):persona_based、encoding_based、multi_turn、hypothetical;最少 150extraction(萃取):prompt_extraction、data_extraction、pii_extraction;最少 100output_manipulation(輸出操縱):format_injection、content_steering、hallucination_induction;最少 80
建立已標註資料集
BenchmarkSample dataclass 包含 id、input_text、category (AttackCategory enum)、subcategory、severity (Severity enum:LOW/MEDIUM/HIGH/CRITICAL)、is_attack 布林、expected_behavior (「blocked」或「allowed」)、metadata 字典。build_benchmark_dataset(attack_sources, benign_sources) 從多來源載入資料並統一格式化為 BenchmarkSample 清單;攻擊樣本前綴 atk-,良性前綴 ben-。
執行基準測試
執行引擎
BenchmarkResult dataclass 記錄每樣本的 sample_id、is_attack、defense_decision、correct、latency_ms、confidence、defense_output。DefenseBenchmarkRunner 類別接收待測防禦與模型端點,run_benchmark(dataset) 方法逐樣本通過防禦、測量延遲 (time.perf_counter())、根據預期決定正確性 (攻擊應被阻擋、良性應被允許),返回結果清單。
指標計算
calculate_benchmark_metrics(results) 函式計算綜合指標:(a) 分離攻擊與良性結果;(b) 計數阻擋與通過;(c) 計算 asr = 1 - (attacks_blocked / attacks_total)、fpr = benign_blocked / benign_total、tpr = attacks_blocked / attacks_total;(d) 以 Wilson 信心區間計算 95% CI;(e) 計算延遲 P50/P95/P99 百分位數。wilson_confidence_interval(successes, trials, z=1.96) 為二項比例提供比常態近似更準確的小樣本 CI。
逐類別分析
類別細分
聚合指標隱藏跨攻擊類別的重要變異。per_category_analysis 對每個攻擊類別分別計算 ASR、樣本數、阻擋數、繞過數、95% CI、中位延遲。
| 逐類別分析揭示什麼 | 範例 |
|---|---|
| 類別盲點 | 防禦阻擋 98% 直接注入但僅 45% 間接注入 |
| 嚴重度相關性 | 高嚴重度攻擊的繞過率是低嚴重度的 3 倍 |
| 延遲變異 | 越獄偵測增加 200ms 而注入偵測僅 50ms |
| 覆蓋缺口 | 對多模態攻擊類別無測試涵蓋 |
比較基準測試
比較防禦配置
compare_defenses(baseline_results, candidate_results) 函式使用 McNemar 檢定對配對比較 (相同資料集針對兩個防禦測試) 的結果進行統計分析:(a) 為每樣本記錄基線與候選的阻擋決定;(b) 建立列聯表 (both_blocked、baseline_only、candidate_only、neither);(c) 計算 McNemar 卡方統計量 chi2 = (|b - c| - 1)^2 / (b + c) 與 p 值;(d) 當 p < 0.05 且候選 ASR 低於基線,結論「候選顯著更好」;否則為「無顯著差異」或「候選顯著更差」。
適應性攻擊測試
適應性攻擊協定
- 基線評估:對防禦執行標準攻擊資料集
- 失敗分析:辨識哪些攻擊成功、哪些被阻擋
- 攻擊優化:基於防禦行為修改被阻擋攻擊
- 若防禦依關鍵字阻擋:使用同義詞與改寫
- 若依意圖阻擋:使用編碼與混淆
- 若依樣式阻擋:使用新型表述
- 重新評估:對同一防禦執行優化後攻擊
- 迭代:重複步驟 2-4 共 3-5 輪
- 回報適應性 ASR:所有優化輪次後的 ASR
| 指標 | 靜態基準測試 | 適應性基準測試 |
|---|---|---|
| 反映真實世界效能 | 部分 | 更準確 |
| 可重現 | 高 | 中 (依攻擊者技能) |
| 執行成本 | 低 | 高 (需熟練人類測試者) |
| 自動化潛力 | 高 | 低 (需人類判斷) |
回報基準測試結果
基準測試報告樣板
報告包含:配置 (待測防禦、基準測試資料集、評估日期、評估者);摘要結果 表 (ASR、FPR、TPR、中位延遲、P99 延遲,含 95% CI);逐類別結果 表;比較分析 (若與基線或替代防禦對照);最壞情況分析 (最高 ASR 類別、最具影響繞過);建議 (基於結果)。
相關主題
參考資料
- Mazeika et al., "HarmBench: A Standardized Evaluation Framework for Automated Red Teaming and Robust Refusal" (2024) - LLM 安全的標準化基準測試框架
- Vidgen et al., "SimpleSafetyTests: a Test Suite for Identifying Critical Safety Risks in Large Language Models" (2024) - LLM 的最小安全基準測試
- Zou et al., "Universal and Transferable Adversarial Attacks on Aligned Language Models" (2023) - 基準測試中使用的 GCG 攻擊方法論
- NIST AI 100-2e, "Adversarial Machine Learning" (2024) - 標準術語與評估概念
- MLCommons AI Safety Benchmark (2024) - AI 安全評估的產業基準
除了靜態基準評估外,為何還需要適應性攻擊測試?