实测10个开源提示注入检测器:默认阈值偏差百倍,健康检查形同虚设
rudra-sh · reddit · 2026-10-01
作者用「真实 agent 遭遇攻击」的方式测试了约 10 个开源 prompt-injection 检测器:不是干净的「ignore previous instructions」字符串,而是把同样的攻击埋进普通工具输出、账单、邮件、网页里,跑了几百个真实攻击加大量正常流量。
最惊人的发现不是弱模型,而是一个好模型在默认阈值下的表现:
- 一个被广泛提及的知名模型在默认设置下只抓到约 1% 的埋藏攻击。
- 但看原始分数,它对攻击的排序约为正常文本的 10 倍,作为判别器其实有效——问题出在决策阈值:默认截断点比分数实际分布高出约 50 倍,导致攻击和正常输入都落在同一侧被放行。
- 把阈值下调到分数实际所在区间,同一权重、同一输入,检出率从约 1% 升到几乎全抓。
- 作者诚实说明:攻击集共享一个包装模板,紧调阈值可能部分是在识别模板而非通用攻击;核心结论不是「99%」,而是默认阈值对该场景偏差约 100 倍且无人提示。
更该让上线者警惕的:
- 检测器在 1% 和 99% 时都能通过所有健康检查——无报错、无告警、日志干净,监控显示「guardrail: healthy」,而它其实根本没在拦截。健康检查只证明它在运行,不证明它在抓东西。
- 第二个教训:有人用置信区间重跑数据后发现,除最佳检测器外,其余排名基本是统计平局,区间重叠;「17%」这类检出率建立在几百个攻击的小整数上,区间极大,检测器排行榜常断言样本量支撑不了的顺序。
生产环境实用建议:
- 永远别信厂商默认阈值,它针对的不是你的分布;用自己的流量扫一遍,找到攻击与正常分数的实际位置。
- 在固定误报预算下衡量,而非抽象地说「抓到 99%」。
- 加一个测试:把已知攻击打进线上 guardrail,断言它被拦截;否则监控就是「构造性绿灯」。
作者最后提问:做注入检测的人是在自己数据上调阈值,还是直接用模型自带默认值?如何持续确认它还在抓、而不只是还在跑?
「安全」频道最新
- 微软披露 CVE-2026-73570:邮件服务器遭免认证命令注入 — yuridiogenes · 2026-10-01
- Will Rinehart 长文:AI「灭绝风险」话术混淆了灾难与灭绝 — WillRinehart · 2026-10-01
- Agent 联网搜索会中 prompt injection 吗?开发者热议攻击面 — derekp7 · 2026-10-01
- 网友:对开放模型网络能力大惊小怪,是 AI 安全圈的自我拆台 — tszzl · 2026-10-01
- binarybits 承认部分 AI 批评者低估风险,称应提前预测并应对 — binarybits · 2026-10-01
- AI 安全研究员 Turn_Trout 将在美国参议院 Rogue AI 听证会作证 — Turn_Trout · 2026-10-01