跳到正文
原文

CapLite:面向小型语言模型智能体、无需模型自写安全工件的提示注入防御

CapLite: Prompt-Injection Defense for Small Language Model Agents without Model-Written Security Artifacts

arXiv:越狱、提示注入、投毒与防御· arXiv:2611.17115· Zimo Xu, Wenzhuo Liu, Hideki NakayamaThe University of Tokyo; Institute of Automation, CAS本站收录· 2 天前· 原文发表防御

论文速读

防御

据论文 PDF 整理(AI 生成),以原文为准

作者提出 CapLite:策略由工具 schema 推导、写操作先提交后读取,在 AgentDojo 13,935 个受攻击 episode 中无一次攻击成功。

威胁模型用户、请求 q、工具及其文档可信;工具返回的数据(邮件、文件、网页、评论、交易主题等)不可信,攻击者可在其中写入任意文本,当智能体执行服务于攻击者目标的写操作时攻击成功。

问题
CaMeL、Progent 等 enforcement 防御要求智能体自己的模型编写安全工件(程序、策略、依赖图、约束清单),作者问:小语言模型(SLM)智能体能否被信任编写这些工件,若不能还能保证什么。
方法
CapLite 的策略由工具 schema 按固定规则推导,Planner 在读到任何工具结果前提交写调用,Binder 只在请求 grounding 集 G(q) 内的候选中选值,Mediator 用确定性代码校验每个 authority 参数必须等于请求中写明的值。
实验与结果
15 个开源模型上,模型编写的工件失效:Progent 在 14 个模型上被攻破、IPIGuard 13 个、DRIFT 11 个,CaMeL 程序在最多 68% 的 episode 中无法运行。CapLite 在 13,935 个受攻击 episode 中零成功攻击,UA 29.0% 与 CaMeL 的 27.2% 相当,token 为其 18%。
局限与可以继续做的
作者指出的局限:所有结果来自 AgentDojo 四个套件;UA 比无防御低 21 个百分点,在 Gemma-4-E4B 和 -12B 上低于 CaMeL;请求未写明的 authority 值需要用户确认。实验仅覆盖 1.7B–35B 开源模型。
实验设置Qwen3-1.7B、Qwen3-4B 等 · AgentDojo v1.2.2(Workspace、Slack、Banking、Travel 四个套件) · ASR、BU 等
威胁模型
用户、请求 q、工具及其文档可信;工具返回的数据(邮件、文件、网页、评论、交易主题等)不可信,攻击者可在其中写入任意文本,当智能体执行服务于攻击者目标的写操作时攻击成功。保证对模型遵循的任何指令成立,包括针对模型级防御的自适应攻击。
被测模型
Qwen3-1.7BQwen3-4BQwen3-4B-Instruct-2507Qwen3-8BQwen3.5-4BQwen3.5-9BLlama-3.1-8B-InstructGemma-4-E2BGemma-4-E4BGemma-4-12BGranite-4.2-8BMinistral-3-8BLFM2.5-2.6BQwen3-32BQwen3.6-35B-A3B
基准
AgentDojo v1.2.2(Workspace、Slack、Banking、Travel 四个套件)
指标
ASRBUUAUA/kTokTokens per episode
AI 导读论文提出面向小型语言模型智能体的提示注入防御方法 CapLite,无需智能体模型自行编写安全工件(security artifacts)。CaMeL、Progent、IPIGuard、DRIFT 等强制执行类防御要求智能体自身模型编写程序、权限策略、依赖图或约束列表再由代码执行;作者在 15 个开源权重模型(其中 13 个为 1.7B 至 12B 参数)上测试发现,模型写出的策略、图和约束在 Progent、IPIGuard、DRIFT 下分别使 14、13、11 个模型可被攻击利用,CaMeL 的程序最多在 68% 的回合中无法运行。CapLite 从工具 schema 推导策略,在任何工具结果被读取前先提交写调用,且仅当决定写入影响对象的每个参数都在用户请求中写明时才允许写入,从而保证写完整性,注入文本无法新增写操作,写操作也不会到达用户未指明的接收方、金额、对象或目的地。

论文提出面向小型语言模型智能体的提示注入防御方法 CapLite,无需智能体模型自行编写安全工件(security artifacts)。CaMeL、Progent、IPIGuard、DRIFT 等强制执行类防御要求智能体自身模型编写程序、权限策略、依赖图或约束列表再由代码执行;作者在 15 个开源权重模型(其中 13 个为 1.7B 至 12B 参数)上测试发现,模型写出的策略、图和约束在 Progent、IPIGuard、DRIFT 下分别使 14、13、11 个模型可被攻击利用,CaMeL 的程序最多在 68% 的回合中无法运行。CapLite 从工具 schema 推导策略,在任何工具结果被读取前先提交写调用,且仅当决定写入影响对象的每个参数都在用户请求中写明时才允许写入,从而保证写完整性,注入文本无法新增写操作,写操作也不会到达用户未指明的接收方、金额、对象或目的地。

相关热点

1 个事件 · 0 条新闻提到

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    SLM 智能体写不好自己的安全工件,作者提出不依赖模型编写工件的 CapLite。

    核心问题:小语言模型(SLM)智能体能否被信任编写自己的安全工件(security artifact)?若不能,还能保证什么?

    • 问题场景:使用工具的智能体会读取任何人都能写入的邮件、文件和网页,其中隐藏的指令可以劫持智能体的行为(间接提示注入)。作者称,保证最强的防御把决策交给代码执行。
    • 现有方法的不足:作者指出,CaMeL、Progent、IPIGuard、DRIFT 等 enforcement 防御都让智能体自己的模型编写安全工件(程序、权限策略、依赖图、约束清单),执行的正确性取决于工件质量;这些防御主要用大型托管模型设计和评测。
    • 核心观察:作者测量发现,决定"允许什么"的工件 fail open(Progent 在 14/15 个模型上被攻破),决定"运行什么"的工件 fail closed(CaMeL 程序在最多 68% 的 episode 中无法运行),且失败率与模型能力无趋势。
    • 论文提出:CapLite——策略由工具 schema 按固定规则推导,写调用在读取任何工具结果前提交,仅当每个 authority 参数等于用户请求中写明的值才放行,作者称之为 write integrity。
    • 威胁模型:
      • 目标:攻击者让智能体执行服务于攻击者目标的写操作。
      • 知识/能力:攻击者控制读工具返回数据中的任意文本(邮件、文件、网页、评论、交易主题)。
      • 可信方:用户、发起 episode 的请求 q、工具及其文档。
      • 受害系统:使用工具的 SLM 智能体;保证对模型遵循的任何指令成立,自适应攻击不影响该保证。
  2. 有哪些相关研究?

    相关工作分四类:注入评测、模型内防御、系统级 enforcement、请求 grounding 授权。

    提示注入及其评测

    • Greshake et al. (2023) 在部署的 LLM 应用上演示了间接提示注入;BIPIA(Yi et al., 2025)和 AgentDojo(Debenedetti et al., 2024)分别度量 LLM 应用和智能体的注入风险。
    • Narisetty et al. (2026) 认为模型外防御未经自适应攻击检验,对 Progent 施加自适应攻击协议,并认为模型编写的策略使可验证性变得困难。

    模型内或上下文内防御

    • Spotlighting(Hines et al., 2024)标记不可信文本;StruQ、SecAlign、Meta-SecAlign(Chen et al., 2025a/b/c)训练模型忽略数据中的指令。
    • MELON、AgentSentry、AttriGuard 等用掩码用户提示词或反事实观察重新执行任务,标记依赖注入内容的调用;工具结果解析(Yu et al., 2026)过滤到达模型的内容,ARGUS(Weng et al., 2026)由子智能体追溯状态改变调用到良性证据才放行。

    系统级 enforcement(本文基线所在类)

    • dual-LLM 模式(Willison, 2023)和 plan-then-execute 模式(Beurer-Kellner et al., 2025)在读取不可信数据前固定控制流;论文指出在朴素模式中注入仍可选择已计划调用的参数,CapLite 用精确请求 grounding 补上这一缺口。
    • CaMeL(Debenedetti et al., 2025)与 FIDES 用 capability 或信息流标签追踪来源,Progent、Conseca 生成策略,IPIGuard、DRIFT 规划图和约束,Task Shield、MiniScope、ClawGuard 在工具边界检查目标对齐或限制权限。

    请求 grounding 的参数授权(同期工作)

    • PACT(Fan et al., 2026)给参数分配语义角色并追踪来源;ROPE(Ma et al., 2026b)确定性地检查敏感参数来源;ToolFence、TraceGrant、IntentCap、MetaPermit 执行由模型推导的授权计划、合约或能力租约;SARA、CXI 对照用户目标或策略声明的受保护字段检查参数。

    基线与基准:基线为 CaMeL、Progent、IPIGuard、DRIFT 及 AgentDojo 四个内置防御(tool filter、spotlighting、repeat prompt、PI detector),基准为 AgentDojo v1.2.2。

    作者定位:CapLite 的策略由工具 schema 按固定规则推导,没有模型编译、标注或扩展授权——作者称 ToolFence、TraceGrant、IntentCap 由模型编译授权,PACT 用模型处理歧义角色和来源,ROPE 的敏感字段清单由模型离线写出;与 TraceGrant 一样,CapLite 在读取前固定写操作,重规划消融显示这是必要的。

  3. 论文如何解决这个问题?

    CapLite 让模型提议、代码授权:策略来自 schema,写操作先提交,参数必须落在请求 grounding 集内。

    整体思路:CapLite 不让模型决定什么被授权——授权来自代码计算的两样东西:由工具 schema 推导的策略和请求写明的值集合 G(q);模型只提议计划、在候选中选值、写文本,Mediator 用确定性代码执行校验。所有模型调用共用同一个 SLM。

    Schema 推导的策略

    • 策略来自工具注册表暴露的信息:工具名、docstring 和 JSON 参数 schema。
    • 工具名和 docstring 的首动词都是读动词(get、search、list 等)时为只读工具;任一为效果动词(send、create、pay 等)时为写工具;其余为未分类,Mediator 拒绝未分类工具。
    • 写工具的参数默认为 authority 字段,除非 schema 标记为自由文本(payload)、日期时间(temporal)或枚举/布尔(control);URL 等目的地即使在只读工具中也算 authority。
    • 附录 A 给出动词和 token 清单及全部 74 个工具的分类;与盲标审计对比,74 个工具分类全部一致,79 个写工具参数中 57 个一致,无一个被标为 authority 的参数被推导为 payload(Table 4)。

    自适应读取、提交式写入

    • Planner:一次 schema 约束调用,只看到请求 q 和工具文档,返回至多 10 个工具调用,参数要么从请求复制、要么留占位符;其写调用被提交,后续组件不能增删或重排。
    • Reader:至多 10 步的只读工具调用循环,能看到请求和已提交写调用,可根据读到的内容调整查询;其调用也经过 Mediator,目的地不在请求中的读取会被拒绝。
    • Binder 与 Composer:对每个占位符从观察中提取带类型的候选值,authority 或 control 字段只保留在 G(q) 中的值;Binder 在约束解码下选一个候选标识符或回答 none/ask,从不自己写值;Composer 根据请求和观察撰写 payload 文本。

    Mediator 与保证

    • 每个已提交写操作执行前,确定性代码检查:工具已分类、无残留占位符、参数符合 schema、每个 authority 参数与 G(q) 中成员完全相等(子串不算)。首次拒绝、确认请求或工具错误会停止剩余写操作。
    • 当 authority 值只出现在工具结果中时,CapLite 请用户确认;评测中没有此类请求被回答,该 episode 计为失败。
    • 作者称两条性质按构造成立:(1) 执行的写调用是 Planner 在任何读取前提交的写调用的同序前缀;(2) 每个执行的写操作的 authority 参数属于 G(q) 或经用户确认。注入文本因此不能新增写操作、不能更换写工具、不能把收件人、账户、金额、渠道、对象或目的地改到用户未写明的值。
    • 自由文本参数(如消息正文)由 Composer 撰写、不受约束;轨迹审计在运行中的智能体之外重新推导策略和 G(q) 并检查每个执行的调用,在 25,452 个 CapLite episode 中无违规。

    成功判定与评测方式

    • 基准为 AgentDojo v1.2.2 的四个套件(Workspace、Slack、Banking、Travel),97 个用户任务、949 个用户任务×注入任务对。
    • ASR 在 929 个注入目标需要工具调用(tool-goal)的对上计算;其余 20 对是只要求最终答案中一句话的 Travel 目标,不涉及写操作,CapLite 不防御这类目标。
  4. 论文做了哪些实验?

    15 个开源模型上 CapLite 零成功攻击、UA 29.0% 与 CaMeL 相当、token 为其 18%。

    实验设置

    • 被测模型:15 个开源权重模型——13 个 1.7B–12B 的小模型(Qwen3-1.7B/-4B/-4B-Instruct-2507/-8B、Qwen3.5-4B/-9B、Llama-3.1-8B-Instruct、Gemma-4-E2B/-E4B/-12B、Granite-4.2-8B、Ministral-3-8B、LFM2.5-2.6B)和两个较大参照(Qwen3-32B、MoE 模型 Qwen3.6-35B-A3B)。
    • 服务配置:vLLM 0.30.0、原生工具调用、temperature 0、seed 0、关闭 thinking、每次调用至多 2,048 输出 token(DRIFT 为 8,192);每个配置运行一次。
    • 基准:AgentDojo v1.2.2 四套件,97 个用户任务、949 个攻击对;ASR 在 929 个 tool-goal 对上计算。
    • 基线:CaMeL、Progent、IPIGuard、DRIFT 均用作者代码移植、只改模型接口;每个防御的所有模型角色用同一个 SLM;AgentDojo 四个内置防御在 8 个模型上运行(附录 B)。
    • 攻击:主攻击为 AgentDojo 的 important_instructions;在 8 个鲁棒性模型上增加 tool_knowledge 和两个针对 CapLite 设计的攻击(read exfiltration、descriptor collision)。
    • 指标:BU(97 个无注入任务成功率)、UA(949 个攻击对成功率)、ASR(k/929)、每 episode token 数、UA/kTok。

    主结果

    据 Table 1(important_instructions,15 个模型平均;ASR 为 15×929 个 episode 上的汇总):

    表格较宽,可左右滑动

    防御BU ↑UA ↑ASR (%) ↓k ↓Zero-ASRTokens ↓UA/kTok ↑
    Undefended59.450.216.662,3220/1528.0k1.79
    Progent43.840.64.856761/1563.4k0.64
    IPIGuard40.135.73.124352/1560.5k0.59
    DRIFT35.734.91.542144/15‡28.1k1.24
    CaMeL24.927.20.142012/15‡93.7k0.29
    CapLite28.129.00.00015/1517.1k1.69

    ‡:包括良性和受攻击效用均低于 10% 的模型(DRIFT 4 个、CaMeL 1 个),其零 ASR 来自不行动。

    • 作者称 CapLite 是唯一没有任何成功攻击的防御,且开启了 ASR–UA 的 Pareto 前沿(Figure 1)。
    • 作者指出 DRIFT 的 4 个零 ASR 模型(LFM2.5-2.6B、Gemma-4-E2B/-E4B、Granite-4.2-8B)受攻击任务完成率仅 4.7%–9.5%,零来自不行动。
    • 作者称模型编写的工件失败率与模型能力无趋势(|ρ| ≤ 0.33,p > 0.2),而无防御智能体随模型变强更易跟随注入;Progent 和 IPIGuard 的 ASR 在 Qwen3 和 Gemma-4 家族内随规模单调上升(Figure 3)。

    鲁棒性与针对性攻击

    • 测了什么:8 个鲁棒性模型上加测 tool_knowledge、read exfiltration、descriptor collision(Table 2)。
    • 结果:CapLite 在三种攻击下均为 0 成功(0/7,432、0/168、0/104);tool_knowledge 下无防御 1,304/7,432、Progent 410、IPIGuard 358、CaMeL 1;read exfiltration 下无防御 85/168、CaMeL 0/168;descriptor collision 下无防御 49/104、CaMeL 2/104。
    • 作者解读:URL 攻击失败是因为 Mediator 检查每次读取的目的地;descriptor 攻击失败是因为标识符仅在请求写明时才被接受。

    效用对比与失败归因

    • 测了什么:逐模型比较 CapLite 与 CaMeL 的 UA(Figure 5),并归因 CapLite 的 1,046 个良性失败(Table 9)。
    • 结果:CapLite 在 Granite-4.2-8B 上 UA 高 21.3 个百分点,在 LFM2.5-2.6B 上高 6.8;CaMeL 在 Gemma-4-E4B 和 -12B 上分别高 12.2 和 13.5 个百分点。CapLite 的 UA 比无防御低 21 个百分点(29.0% 对 50.2%)。
    • 作者解读:良性失败中 42.8% 是提交的写调用错误或缺失,38.4% 是写都执行了或只读任务已回答但任务仍失败,8.0% 是 authority 值只出现在工具结果中触发确认请求;无代码的计划不能循环或按观察到的数据分支。

    其他消融与分析

    • − Mediator(Table 3,8 模型平均):106/7,432 攻击成功(ASR 1.4%),8 个模型全部中招;BU 升 5.6 点、UA 升 3.5 点。
    • − Write commitment(可重规划 Planner):53 次攻击成功(ASR 0.7%),作者称因注入可在攻击者目标使用请求已写明的值时添加写操作。
    • − Candidate-only Binder(自由文本 Binder):安全性保持(0 攻击),BU 降 2.0 点。
    • − Reporter:BU 从 25.6% 降到 12.5%,UA 从 26.1% 降到 11.0%。
    • Record grounding(被否决的替代设计,附录 F):BU 变化 −2.1 到 +3.1 点,但 descriptor collision 攻击在 103 个 episode 中成功 23 次,故不采用。
    • AgentDojo 内置防御(Table 8,8 模型):tool filter ASR 3.04%、spotlighting 16.54%、repeat prompt 13.04%、PI detector 3.01%,CapLite 为 0.00%。
  5. 有什么可以进一步探索的点?

    作者列出单基准、效用差距两类局限;实验覆盖 15 个开源模型与 AgentDojo 四套件。

    作者指出的局限与后续方向

    • 单一基准(Limitations 节):所有结果来自 AgentDojo 的四个套件。
    • 效用差距(Limitations 节):CapLite 的 UA 比无防御智能体低 21 个百分点,且在 Gemma-4-E4B 和 -12B 上低于 CaMeL(论文称 significantly below)。
    • 确认开销(Limitations 节):用户未写明的 authority 值需要用户确认。

    实验覆盖范围

    • 被测模型为 15 个开源权重模型,其中 13 个在 1.7B–12B 之间,另有两个较大参照 Qwen3-32B 和 Qwen3.6-35B-A3B(Section 4)。
    • 基准为 AgentDojo v1.2.2 的 Workspace、Slack、Banking、Travel 四个套件,97 个用户任务、949 个攻击对,ASR 在 929 个 tool-goal 对上计算(Section 4)。
    • 攻击覆盖 AgentDojo 的 important_instructions、tool_knowledge,以及针对 CapLite 设计的 read exfiltration 和 descriptor collision;后三种只在 8 个鲁棒性模型上运行(Section 4)。
    • 每个配置运行一次,temperature 0、固定 seed(附录 G);论文未报告多次重复或攻击方的迭代优化预算。
    • 20 个只要求最终答案中一句话的 Travel 注入目标不涉及写操作,在 write integrity 之外,CapLite 不防御这类目标(Section 4、附录 H Case 5)。
  6. 总结一下论文的主要内容

    CapLite 用 schema 推导策略加请求 grounding,在 13,935 个受攻击 episode 中零成功攻击。

    一篇提示注入防御论文,针对小语言模型(SLM)智能体。

    • 问题:作者问 SLM 智能体能否被信任编写自己的安全工件。测量显示不能:Progent 的策略在 14/15 个模型上被攻破(676 次攻击),IPIGuard 13 个(435 次),DRIFT 11 个(214 次);CaMeL 仅 20/13,935 次被攻破,但程序在最多 68% 的 episode 中无法运行,每 episode 花 94k token。
    • 方法:CapLite 的策略由工具 schema 按固定规则推导,Planner 在读到任何工具结果前提交写调用,Binder 只在请求 grounding 集 G(q) 内的候选中选值,Mediator 用确定性代码要求每个 authority 参数等于请求写明的值。作者称这按构造保证 write integrity。
    • 安全性:15 个模型、13,935 个受攻击 episode 中无一次攻击成功(Table 1);在 tool_knowledge、read exfiltration、descriptor collision 三种攻击下也均为零(Table 2)。
    • 效用与成本:UA 29.0%,与 CaMeL 的 27.2% 相当;每 episode 17.1k token,为 CaMeL 的 18%,低于所有其他 enforcement 防御和无防御智能体;UA/kTok 1.69,为 enforcement 防御中最高(Table 1)。
    • 消融:去掉 Mediator 后 106/7,432 攻击成功,允许读取后重规划则 53 次成功,作者称两者各自必要(Table 3)。
    • 作者结论:SLM 智能体不能也不需编写自己的防御;CapLite 的 UA 比无防御低 21 个百分点,在 Gemma-4-E4B/-12B 上低于 CaMeL,且结果仅来自 AgentDojo 四个套件。

相关论文

共同使用 AgentDojo v1.2.2
阅读原文arxiv.org