紅隊工具比較
主要 AI 紅隊工具的比較——Garak、PyRIT、promptfoo 與 Inspect AI——涵蓋能力、強項、侷限與用途。
紅隊工具比較
本參考比較 AI 紅隊委任中使用的主要開源工具。每項工具皆具獨特強項,且最適合評估之特定階段。
快速比較矩陣
| 特性 | Garak | PyRIT | promptfoo | Inspect AI |
|---|---|---|---|---|
| 主要用途 | 自動化漏洞掃描 | 攻擊編排 | LLM 評估與測試 | AI 安全評估 |
| 開發者 | NVIDIA | Microsoft | promptfoo(開源) | UK AI Safety Institute |
| 語言 | Python | Python | TypeScript/Node.js | Python |
| 多輪攻擊 | 有限 | 強 | 有限 | 中等 |
| 攻擊生成 | 以 probe 為本 | converter + orchestrator | YAML 定義 | task + solver |
| 自製攻擊 | 自製 probe | 自製 converters/orchestrators | 外掛 + YAML | 自製 solver |
| 評分 | 以 detector 為本 | 多種 scorer 類型 | 以 assertion 為本 | 以 scorer 為本 |
| CI/CD 整合 | 中等 | 有限 | 強 | 中等 |
| 模型支援 | 廣泛(API + 本地) | 廣泛(API + 本地) | 廣泛(API + 本地) | 廣泛(API + 本地) |
| 學習曲線 | 低—中 | 中—高 | 低 | 中 |
Garak
Generative AI Red-teaming and Assessment Kit
概觀
Garak 是以 probe 為本的漏洞掃描器,依已知攻擊模式對 LLM 測試。運作方式為:產生攻擊提示(probe)、送至目標模型(generator)、評估回應(detector)。
架構
Probes(攻擊產生器)→ Generator(模型介面)→ Detectors(回應評估器)
強項
- 入門門檻低:一條指令即可跑基線掃描
- 涵蓋廣:內建 probe 涵蓋 OWASP LLM Top 10 類別
- 可擴充:以 Python 撰寫自製 probe 與 detector
- 多模型後端:支援 OpenAI、Hugging Face、本地模型與自訂 API
- 報告:產生附通過/失敗結果的結構化報告
侷限
- 主要為單輪:對多輪攻擊策略支援有限
- 以模式為本:依賴已知攻擊模式,不發掘新穎技術
- 編排有限:無法協調複雜、多步攻擊
- 靜態 probe:攻擊提示為預先定義,而非依模型回應動態生成
最適合
- 於委任開始時進行基線漏洞掃描
- 模型或防護更新後的回歸測試
- 整合進 CI/CD 管線作持續資安測試
- 橫跨已知攻擊類別的涵蓋驗證
使用情境範例
以 Garak 作初次掃描,辨識哪些漏洞類別值得深入人工調查,再以結果為依據排序評估中由人主導的部分。
PyRIT
Python Risk Identification Tool for Generative AI
概觀
PyRIT 是 Microsoft 的框架,用以編排複雜的多輪紅隊攻擊。它擅長依模型回應調整的自動化攻擊行動。
架構
Orchestrator(攻擊策略)→ Converter(payload 轉換)→ Target(模型)→ Scorer(評估)
主要元件
| 元件 | 用途 | 範例 |
|---|---|---|
| Orchestrator | 管理攻擊策略與對話流程 | 多輪、crescendo、tree-of-attacks |
| Converter | 於格式間轉換提示 | Base64、翻譯、leetspeak、同形字、unicode |
| Target | 與受測模型互動的介面 | OpenAI、Azure、Hugging Face、本地模型 |
| Scorer | 評估攻擊成功 | LLM-as-judge、關鍵字比對、分類器 |
| Memory | 儲存對話歷史與結果 | 以 SQLite 為本之持續儲存 |
強項
- 多輪編排:為複雜多步攻擊而生
- Converter 鏈:堆疊多重轉換以進行精巧規避
- 適應性攻擊:orchestrator 依模型回應調整策略
- 持續性記憶:跨 session 追蹤對話狀態
- 研究級:為系統性、可重現實驗而設計
侷限
- 學習曲線較高:設定與組態比簡單工具複雜
- 以 Python 為中心:自訂需要 Python 開發能力
- 較不 CI/CD 原生:並非主要為管線整合設計
- 建置較重:需要較多基礎設施(資料庫、API 金鑰、組態)
最適合
- 複雜多輪越獄行動
- 自動化升級測試(crescendo 攻擊)
- 需要系統化提示變異與評分的研究
- 需要 converter 鏈(編碼 + 翻譯 + 換句話)的測試
使用情境範例
以 PyRIT crescendo orchestrator 自動進行 15 輪升級攻擊,在策略性位置由 converter 套用 Base64 編碼與語言翻譯,並由 LLM-as-judge 評估器評分。
promptfoo
概觀
promptfoo 是由 YAML 驅動的評估與紅隊框架,強調易用、廣泛模型支援與 CI/CD 整合。非常適合系統化、可重複的測試套件。
架構
YAML 組態(測試案例 + 斷言)→ Provider(模型介面)→ Evaluator(斷言檢查)→ 報告
強項
- 學習曲線低:YAML 組態無需程式能力
- CI/CD 原生:為測試管線整合而設計
- 比較式測試:可對多個模型或組態同時跑相同攻擊套件
- 外掛系統:可透過 JavaScript/TypeScript 外掛擴充自製攻擊類型
- 內建紅隊模組:附預建攻擊策略的專職紅隊模式
- 豐富報告:Web UI 可瀏覽結果、比較執行、分享報告
侷限
- 主要為單輪:多輪攻擊支援較 PyRIT 有限
- YAML 限制:複雜攻擊邏輯於 YAML 中會顯得笨重
- Node.js 生態:可能無法與以 Python 為本之 AI 工具無縫整合
- 較不適應:測試案例為預先定義,而非動態調整
最適合
- 整合 CI/CD 管線進行持續紅隊
- 比較式評估(對多模型版本或組態執行相同攻擊)
- 團隊協作中需要非 Python 開發者貢獻測試案例之情境
- 防護更新後的回歸測試
- 直觀測試套件的快速設置
使用情境範例
建立以 YAML 為本的測試套件,對目前與提議之兩種模型組態跑 200 個攻擊提示(橫跨五種風險類別),產出顯示哪種組態於各攻擊類別處理較佳的比較報告。
Inspect AI
UK AI Safety Institute 評估框架
概觀
Inspect AI 是英國 AI Safety Institute 的 AI 系統安全評估框架。採以任務為本的架構:評估由資料集、solver(模型與任務互動方式)與 scorer 組成。
架構
Task(資料集 + 指示)→ Solver(模型互動策略)→ Scorer(評估條件)→ Log
主要元件
| 元件 | 用途 | 範例 |
|---|---|---|
| Task | 定義評估情境 | 安全基準、能力測試、紅隊情境 |
| Dataset | 提供測試輸入 | HuggingFace 資料集、CSV、JSON、自訂產生器 |
| Solver | 控制模型互動 | Generate(單輪)、多輪、chain-of-thought |
| Scorer | 評估輸出 | 模型評分、模式比對、人工審查 |
| Tools | 賦予模型能力 | 網頁瀏覽、程式執行、自訂工具 |
強項
- 可組合架構:可混搭 solver、scorer 與資料集
- 聚焦安全:專為 AI 安全評估而設計
- 代理評估:內建對使用工具之代理的評估支援
- 可重現:對每個評估步驟詳實記錄
- 社群基準:共用評估任務的資料庫持續成長
侷限
- 聚焦評估:非主要為攻擊工具;評估多於攻擊
- 生態較新:相較成熟工具,社群與資源較少
- 較不以攻擊為主:內建攻擊技術較 Garak 或 PyRIT 少
- 框架額外負擔:task/solver/scorer 模式對簡單測試增加抽象開銷
最適合
- 與法規要求對齊的結構化安全評估
- 代理能力與安全基準
- 需要全面日誌的可重現評估
- 需評估工具使用行為的評估任務
- 作為量測防禦有效性之攻擊工具的互補
使用情境範例
建立 Inspect AI 評估套件,橫跨多情境測試代理安全——同時量測代理是否正確完成任務,以及在對抗輸入下是否尊重安全邊界。
工具選擇指南
用以下決策樹依情境挑選合適工具:
| 情境 | 推薦工具 | 理由 |
|---|---|---|
| 初次基線掃描 | Garak | 快速建置、廣泛涵蓋已知模式 |
| 多輪越獄行動 | PyRIT | 為複雜適應攻擊而生的編排 |
| CI/CD 回歸測試 | promptfoo | YAML 驅動、管線原生、比較報告 |
| 合規導向的安全評估 | Inspect AI | 以任務為本、可重現、貼近法規預期 |
| 比較式模型評估 | promptfoo | 原生支援並列比較 |
| 具編碼規避的研究 | PyRIT | 系統化 payload 轉換的 converter 鏈 |
| 快速一次性測試 | promptfoo 或 Garak | 建置最少 |
| 代理安全測試 | Inspect AI | 內建工具使用與代理評估支援 |
組合使用工具
專業委任通常會組合多種工具:
基線掃描
以 Garak 對已知漏洞類別做快速基線。辨識哪些類別顯示弱點。
深度攻擊
對 Garak 發現弱點的類別,以 PyRIT 進行多輪攻擊。運用 converter 與 orchestrator 進行精巧規避。
安全評估
以 Inspect AI 進行結構化安全評估,特別是對基於代理的系統。系統化量測防禦邊界。
回歸套件
以先前階段發掘之成功攻擊建立 promptfoo 測試套件。整合進 CI/CD 以持續監控。
人工測試
以人主導的創造性測試補足自動化工具,發掘任何工具自身都不會發現的新穎技術。