在输出 token 之前检测 LLM 智能体的凭证外泄
2026 年 6 月 2 日发布的一篇 arXiv 论文,在任何输出 token 产生之前就检测智能体的凭证泄漏——结合激活探针、校准蜜标和多轮泄漏核算。
这是什么?
《Caught in the Act(ivation)》(arXiv:2606.04141,Kargi Chauhan 与 Pratibha Revankar,2026 年 6 月 2 日上线,CC BY 4.0)研究了智能体一种常见的失效模式:LLM 智能体经常把敏感凭证——API 密钥、数据库口令、OAuth 令牌、SSH 身份——和不可信的检索内容放进同一个上下文窗口。正是这种共处使间接提示注入(Greshake 等人,2023)变得危险:藏在网页、邮件或工具结果中的一条指令,就能诱导智能体交出它行动所需的秘密。这是致命三要素中的”凭证”一环;而一次真实攻击——Marimo 后渗透案例——曾展示智能体在不到两分钟内抽干云凭证和一个数据库。
论文的论点是:大多数已部署的防御都看错了地方。输入过滤器和输出监控器都在文本层面工作,因此会被 Base64/十六进制编码、Unicode 替换、改写,或跨多轮铺开的缓慢泄漏所绕过。作者主张把检测既前移(进入模型内部各层)又后移(覆盖整段对话),并把三个监控器打包成一个研究原型,称为 Agentic Immune System(AIS,智能体免疫系统)——明确说明这是”志向性的”,尚未可投入生产。
工作原理
AIS 结合了三种刻意不同的信号。威胁模型是灰盒/Kerckhoffs 式:攻击者可能知道防御的存在,但无法读取校准后的阈值、探针权重,也不知道哪些可见 token 是诱饵。
- CIFT——基于激活的访问检测。 前向 hook 捕获 transformer 最后
K = ⌊0.25 · L_total⌋层的隐藏状态。每层的马氏距离偏差通过习得的非负权重合并为一个 Causal Flow Score,并在任何输出 token 产生之前完成分类。由于它读取的是内部特征,那些能骗过文本检测器的编码并不会改变信号。 - DP-Honey——校准蜜标。 由字符模型生成符合格式的诱饵凭证,并用拆分共形预测(split conformal)加以包裹——它根据预留的良性集合来设定检测阈值,而非人工调参。真实凭证存放在由工具运行时消费的一张表中;只有蜜标被插入模型可见的上下文。
- Nimbus——累积泄漏评分。 多轮外泄被当作一个信息流预算来处理,以比特计量(基于 InfoNCE)。单轮被限制在约
log₂(17) ≈ 4.09比特:因此 Nimbus 并非要一击擒获一次性泄漏,而是逐轮检测器永远无法累积起来的缓慢泄漏。
逐轮流水线是三个告警的逻辑或——仅作示意,并非可用攻击:
对每一轮:
上下文 <- 注入 DP-Honey 蜜标
score <- CIFT(激活) # 输出之前
若 score > 阈值: 标记凭证访问
泄漏 <- Nimbus.update(估计比特) # 累积
若 泄漏 > 预算 B: 介入
为什么重要
这些数字很有希望,但作者谨慎地将其定性为初步结果。在一个预留的单轮集合上(Qwen-7B),CIFT 报告 AUROC 0.998 / F1 0.990 / FPR 0.015,而 LlamaGuard 文本基线的 AUROC 为 0.85;在那些会拖垮文本检测器的预留编码变换下,CIFT 仍保持稳定。DP-Honey 达到 1.000 的精确率/召回率,共形覆盖率 0.998,且无需调阈值。在一个 **50 段对话 × 20 轮(每段 4–8 个攻击轮)**的合成测试集上,Nimbus 检测出 0.90 的低速率攻击,而逐轮 LlamaGuard 只抓到 0.12、子串匹配为 0.00。集成原型达到 0.94 检测率、0.018 FPR,新增约 +16 毫秒延迟。
诚实比标题更重要。多轮基准是内部的、规模很小;CIFT 需要白盒激活访问,因此不适用于以 API 提供的模型;跨模型迁移未经测试;Nimbus 是一个习得的下界信号,而非经认证的泄漏上界。作者自己点出了最严重的盲点:通过结构化工具调用参数传递的凭证是一个”严重的结构性盲点”,因为真实智能体往往在序列化的 API 参数中使用秘密,而非在自然语言文本中。多会话攻击者也可以通过重启对话来重置预算,除非泄漏状态被跨会话保存。受控激活探针环境下极高的 AUROC,正是那种需要独立复现的结果。
防御
论文本身就是一份防御提案;无论你是否采用这个具体原型,可迁移的经验依然成立。
- 不要把秘密与不可信文本放在一起。 根因在于凭证与检索内容共享同一个上下文窗口。把真实秘密放进由工具运行时消费、模型永不可见的表中,只传递引用。
- 加一个输出前信号,而不仅是输出过滤。 文本层扫描会被编码和改写绕过。若你运行开放权重模型,激活探针提供一项廉价(约 1 毫秒)的检查,在 token 渲染之前就触发。
- 使用校准蜜标,并好好校准。 共形预测消除了脆弱的人工调阈值。将其与基于欺骗的检测结合,使被触碰的诱饵成为高置信度证据。
- 对泄漏做时间维度的核算。 逐轮检测器会漏掉点滴式泄漏。在整段会话上跟踪一个累积预算——并跨会话保存它,使攻击者无法通过重连来重置。
- 对工具调用参数进行插桩,而不仅是文本输出。 原型最大的盲点恰是凭证真正流经之处。在派发之前,对序列化的工具参数施加同样的蜜标与泄漏核算逻辑。
- 把数字当作初步结果。 白盒探针、小型合成测试集与 0.99+ 的 AUROC,在被信任之前都需要在你自己的语料上复现。
状态
| 项目 | 参考 | 日期 | 备注 |
|---|---|---|---|
| 论文上线 | arXiv:2606.04141v1 [cs.CR] | 2026-06-02 | Chauhan 与 Revankar,CC BY 4.0 |
| CIFT(单轮,Qwen-7B) | 表 1 | 2026-06-02 | AUROC 0.998、F1 0.990、FPR 0.015,输出前 |
| Nimbus(多轮合成) | 表 3 | 2026-06-02 | 检测率 0.90,逐轮 LlamaGuard 仅 0.12 |
| 集成 AIS(单轮) | 表 4 | 2026-06-02 | 检测率 0.94、FPR 0.018、+16 毫秒 |
| 已知盲点 | 局限性 §6 | 2026-06-02 | 结构化工具调用参数中的凭证 |
| 奠基性威胁 | Greshake 等人(arXiv:2302.12173) | 2023 | 间接提示注入的源头 |
正确的定位不是”凭证外泄已被解决”。而是检测不应再是输出端的单一文本分类器:把输出前访问监控、校准蜜标检测、时间维度的泄漏核算结合起来——并对工具调用层进行插桩,那才是秘密真正流动的地方。