注入探针其实在认对话位置:换成同位置干净对照后,误报从八成降到一成七
核心概要
线性探针此前靠对话位置和文本长度就能在标准评测里拿到0.91–0.98 AUROC,把同一时刻的干净对照和无害仿写加入训练后,六个开源模型上对无注入对话的误报从41–80%降到4–27%。
深度剖析
用于间接提示注入的线性探针,在标准评测里可以靠对话位置和文本长度这类与注入无关的线索拿到高分,因此它拦下的并不一定是注入本身。 此前的标准评测把攻击运行中注入到达之前或之后的时刻当作负例,正例与负例因此在出现位置和刚读过的文本长度上也不一样。 只用七个不看模型的对话统计量做逻辑回归,在标准测试上达到0.96–0.98 AUROC(已见应用)和0.91–0.96(新应用),接近标准探针的0.97–1.00;其中四个位置数字单独就有0.80–0.86。
把每个攻击的干净孪生样本和格式相同的无害仿写作为匹配负例加入训练,只改训练数据就能大幅压低误报。 按标准数据训练时,默认阈值下探针会标记大多数干净孪生样本和无害仿写。 在训练中见过的应用里,六个模型的中位误报从干净孪生样本的80%降到17%、从无害仿写的98%降到11%;在新应用里从70%降到6%、从94%降到10%,而用同一分类器只换标准数据时误报仍然很高。
在按正常流量设定阈值时,新探针仍能拦下大多数骗过智能体的攻击,同时把送交第二次检查的流量压下来。 默认阈值0.5下,标准探针在已见应用中每百万条工具输出要送约31.5万条去第二次检查。 用训练应用阈值时,新探针在已见应用中拦下中位95%的成功攻击(标准探针79%),每百万条输出约7.4万次检查,按每次一秒约合21小时,而标准探针约88小时。
同一套匹配负例数据也能帮到只读文本的过滤器,但探针的优势在于复用模型已有计算、对纯文本攻击更稳,以及阈值能带到新应用。 只用标准数据训练的TF-IDF文本分类器同样学到了格式捷径,在已见应用中标记81%的无害仿写。 换成匹配负例数据后,该文本分类器只标记4%的仿写;但在新应用中,用训练应用阈值时它只拦下38%的成功攻击,而探针为82%。
启示与展望
这套结果建立在AgentDojo一个基准上,覆盖银行、办公、Slack和旅行预订四个应用,探针读取的是六个开源模型在智能体回复开始前最后一个token处的隐藏状态。它面向自托管开源模型、把常规工具调用交给较小模型的智能体团队,用于第一层快速过滤,把可疑工具输出交给更慢的第二次检查。训练中见过的应用里,匹配负例对每个被测模型都压低了误报;新应用里误报仍然低,但检测效果取决于模型和阈值如何设定。
新应用中的检测依赖模型与阈值设定,按模型中间层选层的规则并非对每个模型都是最佳层。成本估计假设第二次检查约需一秒、攻击率为1%,这是投影而非实测。主要仿写样本使用带格式的模板,其他模板只作为仿写被测试过。所有运行使用同一个系统提示,标签标记的是接触过注入文本而非智能体是否照做。已见应用中的检测可能部分依赖AgentDojo复用的攻击者账号,未用全新账号测试。
