【免费下载链接】zeroleaks
AI Security Scanner - Test your AI systems for prompt injection and extraction vulnerabilities
ZeroLeaks 是一款 AI 安全扫描工具,能像真实攻击者一样测试你的 system prompt 是否会被提示注入或诱导泄露。它最独特的能力之一是防御指纹识别:先认出目标背后站着 Prompt Shield 还是 Llama Guard,再自动挑选最可能奏效的绕过手法。本文带你拆解这套机制的完整实现。
什么是"防御指纹识别"
每家模型厂商的护栏体系在拒绝请求时,都有自己的"口头禅"——有的会说 "blocked by our safety",有的会甩出 "S1"~"S6" 风险标签。这些拒绝话术就像声纹:ZeroLeaks 的 Inspector 智能体(内部代号 SENTINEL)在每一轮攻防对话中监听这些特征,一旦锁定目标使用的防护体系,就立即翻出对应的"绕过手册",让后续攻击有的放矢。
它采用规则打分 + LLM 语义分析双引擎:
- 规则打分:毫秒级、确定性地匹配特征词,结果稳定可复现
- LLM 分析:提取弱点、评估防御强度、给出战术建议
核心实现在 src/agents/inspector.ts。
内置防御数据库:10 种护栏体系的"声纹库"
inspector.ts 中内置了一份DEFENSE_DATABASE,收录了 10 类已知防护体系的识别特征:
| 指纹 ID | 防护体系 | 典型识别线索(权重) |
|---|---|---|
azure_prompt_shield | Microsoft Prompt Shield | "blocked by our safety"(0.9)、"content policy"(0.7) |
llama_guard | Meta Llama Guard | "unsafe"(0.8)、"S1"~"S6" 风险标签(各 0.6) |
meta_prompt_guard | Meta Prompt Guard | "harmful content detected"(0.9)、"potentially harmful"(0.7) |
anthropic_constitutional | Anthropic 宪法式 AI | "I cannot and will not"(0.9)、"my training"(0.5) |
openai_moderation | OpenAI 内容审核 | "violates our policies"(0.9)、"content moderation"(0.7) |
google_safety | Google 安全护栏 | "Google's policies"(0.7)、"safety guidelines"(0.6) |
nvidia_nemo_guardrails | NVIDIA NeMo Guardrails | "guardrail"(0.8)、"flow control"(0.5) |
custom_guardrail | 自定义护栏 | "not allowed"、"cannot help" |
no_defense | 无防御 | 回复中找不到任何拒绝信号 |
unknown | 未知体系 | 最高得分低于阈值 0.3 |
权重设计很讲究:像 "blocked by our safety" 这种几乎只出现在 Prompt Shield 回复里的强信号拿 0.9 分,而 "Azure" 这种泛化词只拿 0.3 分,避免误报。
三步完成指纹判定
fingerprintDefense()方法(inspector.ts)的判定流程只有三步:
- 加权匹配:把目标回复转成小写,逐条比对 10 套特征库,命中即累加权重。比如一句 "I cannot process that, it's against our content guidelines" 会让 Prompt Shield 的得分直接冲到 1.65。
- 拒绝信号兜底:检查 "cannot"、"sorry"、"refuse" 等 6 个拒绝关键词。如果既没有拒绝、又没有防御信号,就给
no_defense加 1.0 分——说明目标"裸奔",可以直接上硬手段。 - 阈值与置信度:取得分最高的体系;若最高分低于0.3就放弃判定(返回 null)。置信度按
min(1, 得分 / 2)计算,并附上该体系的knownBypasses清单,组成完整的DefenseFingerprint结构(types.ts)。
认出之后:Prompt Shield 与 Llama Guard 的绕过手册
每种防护体系都预置了一张"已知绕过手法表",记录手法、所属攻击类别和历史成功率。Inspector 通过getRecommendedBypasses()把它们交给下游智能体。
Prompt Shield(规避难度 0.7,inspector.ts)
| 绕过手法 | 攻击类别 | 预期成功率 |
|---|---|---|
unicode_homoglyphUnicode 同形字替换 | encoding | 0.65 |
gradual_escalation多轮渐进升级 | crescendo | 0.55 |
policy_format_exploit策略格式利用 | policy_puppetry | 0.45 |
Llama Guard(规避难度 0.55,inspector.ts)
| 绕过手法 | 攻击类别 | 预期成功率 |
|---|---|---|
ascii_art_obfuscationASCII 艺术混淆 | ascii_art | 0.70 |
base64_encodingBase64 编码 | encoding | 0.60 |
context_overflow上下文溢出 | context_overflow | 0.50 |
除了这 10 套指纹,src/knowledge/defense-bypass.ts 还沉淀了更细粒度的绕过知识库:每条手法都标注了文献来源(documentedSuccess)、实测绕过率(如多轮渐进注入bypassRate: 0.9)与自适应抵抗力,可按防御类型精确检索。
多智能体接力:指纹如何改写攻击路线
指纹一旦确认,整条攻击链都会随之改变:
- Engine(engine.ts):每轮攻防后调用 Inspector 分析,首次命中指纹时触发
onDefenseDetected回调,把指纹交给你的代码或日志。 - Strategist(ORACLE):strategist.ts 内置 10 套攻击策略,每套都声明了适用条件(防御等级、轮次区间、已失败类别)。评估器统计拒绝率后,Strategist 会把防御定级:拒绝率 > 0.7 为strong,> 0.4 为moderate,否则weak。面对 strong / hardened 防御时,它会直接切到
cot_hijack(思维链劫持)或encoding_bypass(编码绕过)这类高阶策略,而不是浪费轮次。 - Attacker:attacker.ts 会把防御画像渲染成上下文("Defense Level: strong,置信度 80%,已识别弱点:……"),交给 LLM 生成具体攻击话术,并预测目标可能的反应。
一句话总结:防御指纹识别让扫描从"盲打"变成"定向爆破"——同一套攻击树,面对不同防御体系会走完全不同的路线。
实战:开启与观测防御指纹识别
CLI 场景下无需任何额外配置——Inspector 默认开启,指纹识别随之生效:
zeroleaks scan --prompt "You are a helpful assistant..."库模式下可通过回调实时观测识别结果,更多模型与探针参数见 README.md:
import { runSecurityScan } from "zeroleaks"; const result = await runSecurityScan(systemPrompt, { enableInspector: true, // 默认开启,防御指纹识别随之生效 });需要精细控制树深、分支与指纹开关时,可以使用createScanEngine直接构建引擎。
写在最后:给防御方的加固清单
知己知彼。defense-bypass.ts 中的防御效能矩阵同样值得防御方细读:
- 纯文本内容过滤最脆弱(效能 low):先做 Unicode 归一化、剥离零宽字符、解码常见编码,再进过滤器;
- XPIA 分类器(效能 medium):叠加多层防御、持续用新绕过样本更新训练数据、从模式匹配走向语义理解;
- 指令检测(效能 high):目前对 RAG 投毒最有效的防线,建议配合多轮上下文分析与隐藏状态检测;
- 行为监控:警惕"休眠触发器"型攻击——平时表现正常,特定口令才会激活。
防御指纹识别的价值,正是把这些零散研究变成可执行的攻防剧本。
相关文件
- 指纹识别核心:src/agents/inspector.ts
- 攻击策略选择:src/agents/strategist.ts
- 攻击生成:src/agents/attacker.ts
- 扫描引擎:src/agents/engine.ts
- 绕过知识库:src/knowledge/defense-bypass.ts
- 类型定义:src/types.ts
【免费下载链接】zeroleaks
AI Security Scanner - Test your AI systems for prompt injection and extraction vulnerabilities
相关推荐
Dalfox WAF 绕过实战指南:指纹识别、变异绕过与自适应规避策略
Dalfox WAF 绕过实战指南:指纹识别、变异绕过与自适应规避策略 本文基于 Dalfox 官方文档 WAF Bypass https://link.git
网络安全CLI突破HTML实体防御:XSStrike教你识别与绕过编码陷阱
突破HTML实体防御:XSStrike教你识别与绕过编码陷阱 你是否遇到过这种情况:精心构造的XSS payload提交后,在页面上却只显示一堆乱码?这很可能是
渗透测试应用安全fastCRW如何绕过Cloudflare:TLS指纹伪装到无头浏览器5层防御全解析
fastCRW如何绕过Cloudflare:TLS指纹伪装到无头浏览器5层防御全解析 fastCRW(crw)是一个用 Rust 编写的轻量级 Web 抓取与爬
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考