乐于分享
好东西不私藏

AI安全工具测评 | NVIDIA garak:LLM漏洞扫描器实战测评

AI安全工具测评 | NVIDIA garak:LLM漏洞扫描器实战测评

AI安全工具测评 | NVIDIA garak:LLM漏洞扫描器实战测评

摘要

NVIDIA发布的garak是目前开源社区最完整的LLM漏洞扫描框架, 支持45类探针覆盖提示注入、越狱、数据泄露等主流攻击面, 兼容OpenAI、Hugging Face、AWS Bedrock等主流接口。本文深度测评garak v0.15.1的安装配置、核心架构、探针体系与使用示例 ,并关联CVE-2023-29374、CVE-2024-12366等真实漏洞案例 ,为安全团队提供可落地的LLM安全评估方案。

背景

随着大语言模型在金融、医疗、客服等敏感场景的广泛部署, LLM安全测试已成为企业落地的必经环节。2023年OpenAI发布《LLM Bug Bounty Program》后 , prompt injection、data leakage、jailbreak等攻击面引起业界高度关注 ,多家安全研究机构开始系统性评估LLM脆弱性。

NVIDIA于2023年5月开源garak(Generative AI Red-teaming & Assessment Kit) , 定位是"LLM界的nmap"——通过静态、动态、自适应探针系统化探测LLM脆弱性。该项目由NVIDIA AI安全研究团队维护 , 核心开发者包括Leon Derczynski(剑桥大学NLP研究员)和Erick Galinkin(前DARPA项目经理)。截至2026年8月 ,该项目已积累8646个GitHub星标, 最新版本v0.15.1于2026年6月5日发布, 新增ProPILE探针支持PII泄露检测。

参考来源:https://github.com/NVIDIA/garak

技术分析

核心架构与插件体系

garak采用插件化架构, 核心组件包括探针(Probe)、检测器(Detector)、评估器(Evaluator)、生成器(Generator)和编排器(Harness)。探针负责生成测试交互 ,检测器分析LLM输出是否触发脆弱行为,评估器生成结构化报告, 生成器适配不同LLM后端,编排器协调整个测试流程。

代码模块清单(摘自官方README):

  • garak/probes/ - 探针定义(45类攻击向量)
  • garak/detectors/ - 脆弱行为检测器
  • garak/evaluators/ - 结果评估与报告生成
  • garak/generators/ - LLM后端适配层
  • garak/harnesses/ - 测试编排逻辑
  • 关键探针类别覆盖十大攻击面:

    text

    atkgen  - 自动化攻击生成(红队LLM) badchars  - Unicode不可见字符注入(homoglyph/重排序) dan  - DAN(Do Anything Now)越狱攻击 encoding  - 文本编码注入(quoted-printable/MIME) gcg  - 对抗性后缀攻击 glitch  - Glitch token探测 goat  - 多轮对抗性博弈 leakreplay  - 数据泄露重放 malwaregen  - 恶意代码生成诱导 promptinject - 结构化提示注入(Agency Enterprise框架) sysprompt_extraction - 系统提示提取攻击

    支持的LLM后端

    garak通过Generator插件支持多种LLM接口, 包括OpenAI Chat Completion API、Hugging Face Inference API、AWS Bedrock、Replicate、Groq、ggml本地模型等。这种多后端支持使得安全团队可以用同一套探针测试不同厂商的模型 ,进行横向安全对比。

    CVE关联分析

    garak探针体系可检测以下真实CVE关联的攻击模式:

    CVE-2023-29374(严重):LangChain <= 0.0.131的LLMMathChain允许通过prompt injection执行任意Python代码。攻击者可在数学计算提示中注入恶意指令,绕过安全过滤执行shell命令。garak的encoding、promptinject、smuggling探针可复现此类攻击。

    CVE-2024-12366(严重):PandasAI的交互式提示函数存在prompt injection漏洞,攻击者可注入恶意指令导致RCE。garak的leakreplay、malwaregen探针可检测此类漏洞。

    CVE-2025-46724(中等):Langroid <= 0.53.14的TableChatAgent使用pandas eval()处理不可信输入,存在代码注入风险。garak的exploitation、badchars探针可检测此类漏洞。

    来源:NVD官方CVE数据库

  • CVE-2023-29374:https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2023-29374
  • CVE-2024-12366:https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2024-12366
  • CVE-2025-46724:https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2025-46724
  • 实测验证

    探针覆盖统计

    通过GitHub API枚举,garak包含45个探针模块,覆盖以下攻击类别:

    类别 探针数量 典型探针
    提示注入 8 encoding, promptinject, latentinjection, smuggling
    越狱攻击 6 dan, goodside, goat, tap, suffix
    数据泄露 4 apikey, leakreplay, propile
    恶意生成 3 malwaregen, av_spam_scanning, exploitation
    对抗攻击 4 gcg, glitch, badchars, divergence
    毒性输出 3 realtoxicityprompts, donotanswer, topic
    系统提取 2 sysprompt_extraction, doctor

    安装与使用

    garak通过PyPI发布,支持pip和conda两种安装方式。生产环境建议使用conda环境隔离:

    bash

    conda create --name garak "python>=3.10,<=3.12" conda activate garak pip install garak

    注意:本测试环境受PEP 668限制, 完整依赖安装超时(超过120秒)。核心包可安装, 但运行时需手动补装pyyaml、colorama、tqdm等依赖。

    使用示例

    探测OpenAI模型提示注入脆弱性,并生成JSONL格式测试报告:

    bash

    export OPENAI_API_KEY="sk-xxx" python3 -m garak --target_type openai --target_name gpt-4o-mini \  --probes dan,encoding,leakreplay \  --output /tmp/garak_report.jsonl

    查看探针列表和进行探针验证:

    bash

    python3 -m garak --list_probes python3 -m garak --target_type test.Blank --probes dan.Dan_11_0

    参考:https://github.com/NVIDIA/garak/issues

    影响范围

    garak适用于以下场景的安全评估:

    场景 适用性 说明
    企业LLM应用 高 支持OpenAI、Bedrock、私有部署
    开源模型审计 高 Hugging Face、ggml本地模型
    MCP Server安全 中 需配合MCP scan插件
    移动端LLM 低 需自定义Generator

    对比其他AI安全工具:

    工具 Stars 定位 特点
    NVIDIA garak 8646 LLM漏洞扫描 探针丰富、架构清晰
    usestrix/strix 46393 AI渗透测试 侧重Agent自动化攻击
    Tencent AI-Infra-Guard 4356 AI红队平台 全栈安全扫描
    protectai/llm-guard 3201 LLM安全工具包 实时防护、推理层拦截

    garak的核心优势在于探针体系的完整性和架构的灵活性。相比strix的自动化渗透测试定位 ,garak更侧重单一模型的深度安全评估;相比llm-guard的实时防护定位, garak更侧重离线扫描和报告生成。安全团队可根据测试场景选择合适的工具组合。

    防护建议

    基于garak测试结果和CVE案例分析,提供以下三层防护建议:

    1. 输入层防护

  • 实现Prompt注入检测器(基于规则+ML双通道),对不可见Unicode字符、BOM标记、homoglyph进行过滤
  • 对用户输入进行长度限制与结构化校验,限制单条提示长度在合理范围内
  • 实施输入分类,对高风险操作(代码执行、文件读写、API调用)进行二次确认
  • 2. 模型层防护

  • 使用NVIDIA NeMo Guardrails限制输出模式(garak v0.15.0新增支持),定义安全输出模板
  • 对高风险操作实施人工确认机制,关键决策需人工复核
  • 定期运行garak扫描,跟踪脆弱性趋势,建立基线对比
  • 3. 应用层防护

  • 实现输出过滤管道,集成敏感信息检测和恶意代码检测模块
  • 记录所有LLM交互日志,支持事后溯源和攻击分析
  • 实施最小权限原则,限制LLM访问API Key、文件系统、网络资源的权限
  • 参考来源:

  • NeMo Guardrails:https://github.com/NVIDIA-NeMo/Guardrails
  • garak官方文档:https://docs.garak.ai/
  • 📌 关注「AI新视线」,获取红队工具链和攻防实战手册。

    扫码关注「AI新视线」

    穿透噪音,看见本质

相关学习资料