用 garak LLM 漏洞扫描器检测你的模型会不会被越狱
【免费下载链接】garakthe LLM vulnerability scanner项目地址: https://gitcode.com/GitHub_Trending/ga/garak
你的客服 AI 突然把内部系统提示词原样吐给了用户,这就是提示注入越狱现场。garak是一个 LLM 漏洞扫描器:它把 DAN 越狱、注入、数据泄露等攻击提示喂给模型,告诉你哪些防线真能挡住。
能力速览
| 模块 | 一句话作用 |
|---|---|
| probes | 向模型发送一组攻击提示,模拟越狱、注入、数据泄露等场景 |
| detectors | 判定模型输出是否出现了不想要的不当行为 |
| generators | 连接被测模型,支持 OpenAI、Hugging Face、本地 GGUF 等 |
| buffs | 在提示发出前动态改写,扩大同一攻击的覆盖面 |
| report | 每次扫描输出 JSONL 报告,记录每条尝试与判定结果 |
从零跑通:安装 garak 并配置密钥
python -m pip install -U garak这一条从 PyPI 安装 garak 及全部依赖。
export OPENAI_API_KEY="你的密钥"测 API 模型前,先在终端导出密钥。本地模型则不需要任何密钥。
三步任务:从冒烟到定向排查
最小验证:一条冒烟扫描确认环境可用
python3 -m garak --target_type test --spec probes.dan用内置的空字符串生成器跑一遍 DAN 探针家族,不花一分钱 API 费用,能完整走通"生成—判定—报告"流程,确认安装成功。
定向排查:一条命令排查全部 DAN 变种
python3 -m garak --target_type openai --target_name gpt-3.5-turbo --spec probes.dan对真实模型执行 DAN 全系列越狱探针,每个探针跑完会打印一行判定结果。只关心某一个版本时,把结尾换成probes.dan.Dan_11_0。
自定义配置:用内置 fast 配置收敛扫描范围
python3 -m garak --target_type openai --target_name gpt-3.5-turbo --config fastfast 配置预置了一组常用探针,比默认的全量扫描快得多,适合作为定期巡检基线。
跑通之后,先看输出。
看懂输出:只读三个关键指标
- FAIL 率:每个探针与检测器组合下,触发不当行为的尝试占比。这一行标 FAIL 就说明该防线被击穿。
- 生成计数:行尾形如 840/840 的数字,分别是生成样本总数与表现正常的数量,样本量是否够一眼可见。
- 报告文件:每次运行生成 garak. .report.jsonl,记录全部提示、响应与判定;hit log 单独列出每一次命中,便于复核。
常见卡点:三个高频情况
现象:跑 OpenAI 模型时报错找不到认证信息 原因:终端里没有导出 OPENAI_API_KEY 解法:同一终端执行export OPENAI_API_KEY="..."后重跑
现象:默认全量探针跑了几小时还没结束 原因:默认加载全部探针,且每条提示默认生成 10 次样本 解法:加--config fast收敛范围,远程模型可再加--parallel_attempts 20提速
现象:命令行提示--probes已弃用 原因:旧参数已被--spec取代 解法:统一改用--spec probes.dan这类写法
落地清单
- 每次模型升级后跑一遍
--config fast巡检,对比 FAIL 率是否回升 - 归档 garak. .report.jsonl 与 hit log,作为漏洞定级和复盘依据
- 把 garak 扫描挂进发布流程,核心探针 FAIL 率上升时阻断上线
延伸阅读
- 检测器模块:各类失败模式判定逻辑的源码实现
- 内置配置:开箱即用的 fast、bag 扫描配置
- 数据文件目录:DAN 提示、越狱语料等探针依赖的攻击数据
【免费下载链接】garakthe LLM vulnerability scanner项目地址: https://gitcode.com/GitHub_Trending/ga/garak
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考