系统:运行中
← 返回所有攻击
DEFENSE MEDIUM NEW

为什么提示注入检测器屡屡失效:2026 年的绕过难题

从关键词分类器到激活漂移探针,提示注入检测器都有一个共同弱点——自适应攻击者。两项研究报告了高达约 100% 的绕过率。检测只是一层,绝非边界。

2026-06-15 // 6 min affects: azure-prompt-shield, meta-prompt-guard, activation-based-detectors, llm-guardrails, phi-3, llama-3

摘要 提示注入”检测器”——即在恶意指令抵达模型之前对其进行标记的输入侧护栏——已被广泛部署,也很容易被过度宣传。两篇经过同行评审的研究,Hackett 等人(LLMSec 2025)Jahed 和 Alouani(arXiv 2602.00750,2026 年 2 月) 表明:无论是传统的分类器式检测器,还是更新的基于激活的检测器,在面对自适应攻击者时都会失守,有时绕过率接近 100%。其教训在于架构层面:检测器是有用的过滤器,而非安全边界。

什么是这个问题?

提示注入是 OWASP 针对 LLM 应用的头号风险,而最常见的第一道防线就是检测器:一个独立的模型或规则集,用于检查不可信输入并拦截一切看似被注入指令的内容。微软的 Azure Prompt Shield 和 Meta 的 Prompt Guard 都是知名例子。

令人不安的结论是——这在 2025 至 2026 年间被反复记录——这些检测器系统性地可被绕过。Hackett、Birch、Trawicki、Suri 和 Garraghan 测试了六个主流防护系统,报告的绕过率高达 100%arXiv 2504.11168,v1 于 2025 年 4 月,被 LLMSec 2025 接收)。2026 年 2 月,JR Jahed 和 Ihsen Alouani 将同样的视角对准更新一代——读取模型隐藏层的基于激活的”任务漂移”探针——并同样将其攻破(arXiv 2602.00750)。检测思路在变,绕过结论却在重复。

攻击原理

存在两种不同的绕过家族,分别对应两类检测器设计。此处不复现任何可用的有效载荷——重点在于攻击类别,而非可复制粘贴的漏洞利用。

针对文本/分类器检测器——字符注入。 被注入的指令经过改写,使人类(以及模型)仍能读懂,但检测器的分词或关键词逻辑却读不出。已公开的技术包括零宽字符与 Unicode Tag 字符、同形异义字替换、全角(CJK)字符、leetspeak、字符间隔以及 base64 封装:

检测器看到:被打乱 / 编码 / 加间隔的 token  ->  "无害"
模型看到:  同一字符串,经内部归一化        ->  执行指令

Hackett 等人将其与一个对抗性机器学习步骤相结合:利用离线白盒模型计算的词重要性排序,使黑盒绕过更加可靠。

针对基于激活的检测器——对抗性后缀。 漂移探针不读字符,而是读取恶意指令在模型内部激活中引起的偏移。Jahed 和 Alouani 在被投毒的输入后追加一个经对抗性优化的后缀,通过改进的贪婪坐标梯度(GCG)搜索,找到一个通用后缀,使其同时欺骗逐层的所有探针,同时保持注入的有效性。报告中同时绕过所有探针的攻击成功率为:Phi-3 3.8B 上 93.91%,Llama-3 8B 上 99.63%

共同主线是自适应攻击者。一个在昨日攻击字符串上训练或调优的检测器,从构造上就是一个固定靶——能够查询或建模它的攻击者,便能围绕它寻找出路。

为什么这件事重要

如果你的架构假定”护栏已经拦截”,那么一次绕过就是无声的:被注入的指令抵达模型,随后的一切——工具调用、数据读取、对外请求——都会当作输入可信而照常进行。其影响半径,等于该智能体被允许执行的全部操作。

这并不是放弃检测器的理由;一个好的过滤器仍能挡住 90% 的偷懒攻击,并为监控提供信号。但这确实是一个理由,让你不再把它们当作能够”失败即关闭”的控制。厂商引用的是静态基准上的 F1 分数;上述研究衡量的是另一回事——面对会自适应的攻击者时的稳健性——而这个数字要低得多。

防御措施

检测只是一层。在设计时就假定它会被绕过。

  1. 先归一化,再检查。 多数字符注入绕过在规范化(canonicalization)下都会失效:Unicode NFKC 归一化、剥除零宽字符与 Unicode Tag 码点、同形异义字折叠、空白折叠,以及对显而易见的 base64 进行解码。2026 年 3 月一篇关于开源扫描器 ClawGuard 的实践文章表明,确定性的预处理(含全角归一化)能以低于 10 毫秒的延迟捕获其中很大一部分变体。归一化应置于任何检测器之前

  2. 不要让检测器成为边界。 在检测失手后仍能存活的控制是架构性的:对每个工具实施最小权限、在可信指令与不可信数据之间做严格隔离,并避免”致命三要素”——私有数据访问 + 不可信内容 + 外泄通道同处一个智能体上下文。对有后果的操作引入人工审核。

  3. 叠加检测器,使一次绕过必须同时击败全部。 确定性的正则/归一化阶段、分类器与激活探针,会败于不同的攻击。要求一次绕过同时击穿整条流水线,并固定单一工作点,以诚实地衡量召回率,而非按需挑选阈值。

  4. 对所保留的部分进行对抗训练。 Jahed 和 Alouani 提出后缀增强——生成多个对抗性后缀,训练时随机追加其一,并用由此产生的激活来训练探针。这会抬高绕过的成本,却无法弥合差距。

  5. 假定会失败,并监视输出。 限制对外流量、记录工具调用,并对异常的操作序列发出告警。你在输入端无法检出的注入,或许仍能在操作端将其捕获。

  6. 对自己的护栏做红队测试。 在攻击者动手之前,用 garak 或 promptfoo 等工具,在固定阈值下,对你的流水线运行这些已公开的绕过类别。

现状

项目参考日期备注
字符注入 + AML 绕过,6 个系统arXiv 2504.111682025 年 4 月(LLMSec 2025)绕过率高达 100%;目标含 Azure Prompt Shield、Meta Prompt Guard
对抗性后缀绕过激活探针arXiv 2602.007502026 年 2 月同时绕过所有探针:Phi-3 3.8B 93.91%,Llama-3 8B 99.63%
确定性归一化防御(ClawGuard)earezki.com2026 年 3 月正则/NFKC 预处理,低于 10 毫秒;引用 2602.00750
提示注入 = LLM01OWASP LLM Top 102026仍是头号应用风险

值得记住的框架:提示注入检测器告诉你的,是攻击者懒得隐藏的那些攻击。把一次”干净”的结果当作偷懒攻击的缺席,而非安全的存在——并把真正的控制放在模型行动之处,而非它阅读之处。

Sources