Garak:NVIDIA 开源的『LLM 界的 nmap』——全面上手指南

2026/06/08 ai LLM · Security · Red-Teaming · NVIDIA · Open-Source · Penetration-Testing · AI-Security 6172 字 · 约 18 分钟 阅读
Garak 是 NVIDIA 开源的大语言模型漏洞扫描器,被比喻为『LLM 界的 nmap』。本文从产品定位、架构设计、探针体系、使用方式到竞品对比,全面解析这款 8,000+ Stars 的 AI 安全扫描工具。

一、项目简介

Garak(全称 garak: A Framework for Security Probing Large Language Models)是 NVIDIA 开源的大语言模型漏洞扫描器,自称为 “LLM 界的 nmap”。它的使命非常纯粹:检查 LLM 是否会以我们不希望的方式失败

Garak 最初创建于 2023 年 5 月,随后迁移至 NVIDIA 组织,成为 AI 基础设施安全领域的重要开源工具。其在 DEF CON 上做过展示,并拥有活跃的 Discord 社区和学术论文支撑。


二、产品定位:为什么说它是『LLM 界的 nmap』?

Garak 的产品定位有几个非常清晰的战略性选择,使其与同类工具截然不同。

2.1 『红队工具』而非『评估框架』

这是 Garak 与其他工具最根本的差异。Garak 明确表示自己的分数 没有科学有效性(FAQ 原文:“Do these results have scientific validity? No.”——这些结果有科学有效性吗?没有)。

相比之下,Giskard、LangSmith 等工具强调评估的可靠性和可重复性。Garak 的哲学是:扫描不是为了打分,而是为了发现弱点。这有点像早期渗透测试工具的态度——不纠结评分的严谨性,追求是否能找到漏洞。

2.2 模仿 nmap 的用户心智模型

Garak 的 README 和 FAQ 反复将自己的用户心智锚定在 nmap(网络扫描器)和 Metasploit(渗透测试框架)上,这不是简单的比喻:

类比对象用户思维映射
nmap输入目标模型 → 自动尝试大量探针 → 输出脆弱点报告
Metasploit模块化插件体系(probes / detectors / generators)、可扩展的 exploit 库

这一认知锚定精确瞄准了安全工程师群体——他们有 nmap / MSF 的使用经验,理解”扫描→发现→利用”的工作流。

2.3 聚焦 Security 而非 Safety

Garak 有意识地聚焦于 security(安全) 而非 safety(对齐/伦理安全)

“It’s not a tool for assessing social biases… The focus isn’t safety, it’s security.”

这意味着 Garak 不关心模型是否有偏见、是否政治正确,它关心的是:模型能否被绕开防护?能否被注入恶意指令?能否泄露训练数据?

2.4 NVIDIA 背书的战略意义

2023 年项目在个人研究机构下创立,后续迁移到 NVIDIA/garak 组织并非偶然。NVIDIA 作为 AI 基础设施最大供应商,需要一个:

  • 证明其 GPU / NIM 平台安全的工具
  • 覆盖模型供应链安全(从训练到部署)的风险检测
  • 为客户提供”买 NVIDIA 产品前先用 Garak 扫一遍”的安全背书

2.5 产品形态取舍

做 / 不做Garak 的选择
UI命令行 TUI(不做 Web UI),完全面向开发者 / 安全工程师
插件体系高度模块化,四种插件类型(probes / detectors / generators / evaluators)
报告输出JSONL 逐次日志 + Hit 日志 + 分析脚本(不做可视化仪表盘)
模型支持极其广泛:HF / OpenAI / Bedrock / GGUF / REST / NIM / Ollama… 20+ generators
自动化预留了脚本化和 CI/CD 集成路径
商业版暂无,完全开源
论文支撑有 arXiv 论文,但产品迭代远超论文版本

三、架构设计:五层模块化体系

Garak 的架构设计受 Metasploit 启发,采用 五层插件体系,每层职责清晰、可独立扩展。

3.1 Probes(探针)——攻击方法库

目前 Garak 拥有 43 个探针模块,覆盖从经典到前沿的攻击向量。按攻击类型分类如下:

探针类别模块说明
越狱攻击dan, goodside, grandmaDAN 系列、Riley Goodside 攻击、奶奶攻击
提示注入promptinject, encoding, latentinjection编码绕过、隐藏提示注入
数据泄露leakreplay, propile, sysprompt_extraction训练数据重放、PII 泄露检测、系统提示提取
有害内容生成malwaregen, xss, av_spam_scanning, exploitation恶意代码 / 脚本 / 漏洞利用生成
幻觉与误导snowball, misleading, dr, divergence雪球式幻觉、虚假信息支持
对抗攻击gcg, suffix, badchars, sata对抗后缀、Unicode 扰动
语义 / 内容continuation, lmrc, realtoxicityprompts, donotanswer不当延续、毒性、不应答话题
Agent 安全agent_breaker, fitd, web_injectionAgent 框架攻击、函数注入
多模态visual_jailbreak, audio视觉越狱、音频攻击
其他atkgen, glitch, goat, tap, phrasing, topic, smuggling, ansiescape, apikey, fileformats, test自适应攻击、Glitch Token、多轮攻击、数据走私等

关键特性:探针有 Tier 分级(定义在 _tier.py 中),用户可以根据场景选择从浅到深的测试深度。

3.2 Detectors(检测器)——失败模式检测

31 个检测器模块,涵盖多种自动检测失败模式的路径:

  • 关键词 / 模式匹配always, dan, continuation, knownbadsignatures
  • 分类器 APIperspective(Google Perspective API)
  • LLM as Judgejudge(用 LLM 评估 LLM 的输出)
  • 专用检测leakreplay, malwaregen, packagehallucination, propile
  • 安全防护集成shields, unsafe_content, mitigation
  • 多模态visual_jailbreak, encoding, ansiescape

3.3 Generators(生成器)——模型连接层

25 个生成器模块,连接不同类型的 LLM:

类别支持的模型后端
云端 APIOpenAI、Cohere、Groq、Mistral、Replicate、AWS Bedrock、Watsonx
本地 / 开源Hugging Face(本地 Pipeline + Inference API)、GGML / GGUF(llama.cpp)、Ollama
企业 / 自部署NVIDIA NIM、NVCF、REST API、LangChain Serve、WebSocket
框架集成LiteLLM、LangChain、Guardrails、Rasa
测试专用test.Blank、test.Repeat

3.4 Evaluators(评估器)& Harnesses(调度框架)

  • probewise(默认调度器):逐探针执行
  • 报告输出为 JSONL 格式,含完整 prompt / response / score 映射
  • 支持 garak.analyze.qual_review 进行定性审查

3.5 关键创新特性

  1. ProPILE 探针(v0.15.1 新增):PII 泄露检测,行业首创的开源 PII 泄露自动化测试工具
  2. ATKGEN:自适应攻击生成——用一个 LLM 实时攻击另一个 LLM
  3. Agent Breaker:专门针对 Agent 框架的攻击探针
  4. Multi-turn 攻击:通过 suffitap 等支持多轮对话攻击
  5. GGUF 支持:可直接扫描本地 llama.cpp 模型
  6. simonw/llm 支持(v0.15.1):支持 Simon Willison 的 LLM CLI 工具集成

四、快速上手指南

4.1 安装

# 通过 PyPI 安装
pip install -U garak

# 或从源码安装最新开发版
pip install -U git+https://github.com/NVIDIA/garak.git@main

4.2 基本使用

# 列出所有可用的探针
garak --list_probes

# 扫描一个 Hugging Face 开源模型
garak --target_type huggingface --target_name gpt2

# 扫描 OpenAI 模型(需配置 API Key)
export OPENAI_API_KEY="sk-..."
garak --target_type openai --target_name gpt-4o-mini

# 指定特定探针(例如只跑 DAN 越狱测试)
garak --target_type openai --target_name gpt-4o-mini --probes dan

# 扫描本地 GGUF 模型
garak --target_type ggml --target_name /path/to/model.gguf

# 生成 HTML 报告
garak --report_html output.html

4.3 输出说明

Garak 的扫描输出分为几个部分:

  • 控制台输出:实时进度条 + 每个检测器的 FAIL / PASS 状态
  • JSONL 报告:每轮尝试的完整日志(prompt → response → score 的完整映射)
  • Hit 日志:只记录触发了漏洞的尝试(方便快速定位问题)
  • garak.log:调试日志
  • 分析脚本garak/analyse/analyse_log.py 分析发现最多的探针和触发模式

五、竞品对比

5.1 主要竞品一览

维度Garak(NVIDIA)PyRIT(Microsoft)GiskardTencent AI-Infra-GuardART(IBM)
Stars~8,052★~1,500-2,000★~5,420★~3,854★~4,300★
定位LLM 漏洞扫描器生成式 AI 风险识别框架LLM 测试与评估框架全栈 AI 红队平台对抗鲁棒性评估
核心哲学像 nmap 一样扫描漏洞自动化红队攻击全面质量评估平台化生态系统对抗样本鲁棒性
聚焦领域Security(安全)Safety + SecuritySafety + QualitySecurity(Agent 安全)Adversarial Robustness
攻击库深度43+ 探针模块规模较大,偏攻击生成偏评估,攻击较少中等(偏 Agent 方向)经典对抗攻击
模型支持20+ generators(极广)中等(主攻 Azure/OpenAI)中等(LangChain 为主)中等偏传统 ML/DL
UICLI / TUICLI / Python SDKWeb UI + Python SDKCLI + WebPython SDK
学习曲线中等(类 nmap CLI)中等(Python API)较低(Web UI)中等较高(需对抗知识)
更新频率高(月均 3+ 版本)中等中等活跃

5.2 核心差异深度分析

Garak vs PyRIT(最直接的竞品)

  • PyRIT 由微软开发,更强调端到端红队自动化——自动生成攻击 → 发送 → 检测 → 迭代
  • Garak 更像一个漏洞扫描器——内置大量预定义探针,系统性覆盖已知攻击向量
  • 关键差异:PyRIT 更擅长”发现你不知道的新攻击路径”(通过自适应生成),Garak 更擅长”系统化验证已知攻击”(通过全面探针库)

Garak vs Giskard

  • Giskard 是个更全面的 AI 质量平台——覆盖性能、偏见、鲁棒性、安全性等多个维度
  • Garak 是纯粹的红队安全工具——不做非安全的评估,把一件事做到极致
  • 关键差异:Giskard 适合质量团队做全面评估,Garak 适合安全团队做定向攻击测试

Garak vs Tencent AI-Infra-Guard(3,854★)

  • 腾讯的方案更偏向平台化生态系统思维(覆盖 OpenClaw Agent),而 Garak 保持纯粹的 LLM 扫描器定位
  • Garak 的优势在于 NVIDIA 背书、更成熟的插件体系、更大的社区和更活跃的更新频率

5.3 Garak 的差异化优势

  1. “最像漏洞扫描器”的心智模型——安全工程师无需学习新范式
  2. 探针数量与覆盖度——在开源领域无出其右
  3. NVIDIA 品牌背书——企业用户信任度高
  4. 模型支持广度——20+ 模型后端,实际上的”LLM 通用扫描器”
  5. 持续活跃开发——月均多次更新、持续新增探针
  6. 明确的安全定位——不做”大而全的 AI 评估”,聚焦安全漏洞

六、适用场景

场景说明
CI/CD 安全门禁将 Garak 集成到模型发布流水线,每次更新前自动扫描
供应商安全评估采购第三方 LLM API 前,用 Garak 统一扫描不同供应商
模型选型对比在多个候选模型上运行相同探针,横向比较脆弱性
安全审计 / 合规生成 JSONL 报告作为审计证据
红队演练在受控环境中系统化探索模型脆弱性边界
企业内部安全测试在部署自建模型前做安全自检
学术研究测试新的攻击方法、对比不同防御措施效果
模型版本回归测试模型更新后快速检查新版本是否引入了新的脆弱点

七、社区与生态

指标数据
贡献者总数98 人
核心维护者leondz(Leon Derczynski, NVIDIA)、jmartin-tech(Jeffrey Martin)
发布频率~每月 3-5 个版本
Open Issues330(含 feature requests + 新插件提议)
社区渠道Discord(活跃)、Twitter @garak_llm
学术影响力arXiv 论文引用,DEF CON 演讲
三平台 CILinux / Windows / macOS 全平台自动测试

社区持续活跃,核心维护团队以 NVIDIA 研究员为主,同时有大量外部贡献者。最新版本 v0.15.1(2026-06-05)合并了 10+ 个 PR,涵盖新探针、新生成器和多项改进。


八、总结

Garak 是当前开源领域最成熟、最活跃、覆盖最广的 LLM 安全漏洞扫描工具。它的优势不在于技术深度(如某些对抗攻击专门工具),而在于产品定位的清晰工程化的成熟度

维度评分说明
产品定位⭐⭐⭐⭐⭐“LLM 的 nmap” 这个定位极其精准
功能完整度⭐⭐⭐⭐⭐43+ 探针、25+ 模型后端、31+ 检测器
社区活跃度⭐⭐⭐⭐⭐98 贡献者、月均多版本、Discord 活跃
文档质量⭐⭐⭐⭐有正式文档站 + 论文 + FAQ
易用性⭐⭐⭐CLI 方式对非安全背景用户有门槛
NVIDIA 背书⭐⭐⭐⭐⭐企业用户信任度极高
技术前瞻性⭐⭐⭐⭐已覆盖 Agent 攻击、多模态、PII 泄露等前沿主题

适用判断:如果团队需要一个在生产环境中可使用的、覆盖全面的开源 LLM 安全扫描工具,Garak 是当前最佳选择。如果需求是”模型全面质量评估”(包括性能、偏见、安全性),应配合 Giskard 使用。如果需求是”深度自适应攻击生成”,应考虑 PyRIT。


参考资料

  1. NVIDIA/garak GitHub 仓库
  2. Garak 官方文档
  3. arXiv 论文:garak: A Framework for Security Probing Large Language Models
  4. Garak - ReadTheDocs
  5. PyRIT - Microsoft 生成式 AI 红队框架
  6. Giskard - AI 质量评估平台
  7. Tencent AI-Infra-Guard - 腾讯 AI 红队平台
  8. msoedov/agentic_security - LLM 漏洞扫描器

文档信息

加载评论…