简介:分支引导攻击是一种不依赖提示注入的Agent操纵手法:攻击者篡改Agent分支判断所依赖的外部数据,使其沿计划内合法分支执行偏离用户真实意图的操作。本文系统定义这一威胁,解析其发生原理、与提示注入的区别、双模型隔离与COBRA类系统级防御思路,并给出可落地的防护清单,帮助读者建立对Agent执行安全的完整认知。
一、概念定义:什么是分支引导攻击
分支引导攻击(Branch Steering Attack)是一类针对智能体系统的间接操纵手法。它的核心特征是:攻击者不向模型发送或注入任何指令性内容,而是篡改、伪造或污染Agent在关键分支判断点所依赖的外部数据,使Agent从“用户批准的合法分支集合”中,选择一条虽然被计划允许、却不符合用户真实意图的执行路径。
可以从三个视角理解这一定义:
这一定义来自近期多所海外高校研究团队的系统研究。该研究的关键结论可以概括为一句话:锁定Agent的执行计划,并不等于锁定执行结果。
二、背景与价值:Agent安全重心正在转移
早期Agent主要用于对话与内容生成,安全问题的关键是“模型能否识别并拒绝恶意指令”。而当Agent开始真正操作外部系统——浏览器、图形界面、接口调用、文件系统——一次错误执行就对应一次真实业务动作:下单、发送邮件、修改配置、删除数据。此时安全目标从“不执行恶意指令”升级为“可信地约束每一次实际执行”。
传统计算机操作类Agent(Computer-Use Agent)普遍采用ReAct模式:观察页面、推理下一步、执行操作,再根据新的页面状态继续决策。在这个循环里,同一个模型同时接触用户指令与外部数据,外部数据天然构成攻击面。分支引导攻击的价值在于揭示了一个系统性缺口:“计划安全”与“执行安全”是两回事,防御必须从提示层下沉到数据层与执行层。
三、工作原理:数据影响分支,分支触发操作
以一个简化示例说明机制。用户指令:购买一件商品,价格不得超过2000元。计划被写成两个分支:价格不超过预算则进入购买流程,否则停止。两条分支都在授权范围内,无论走哪条都“符合计划”。
用伪代码表示:
budget = 2000
price = read_page_price(page) # 数据来自不可信的外部页面
if price <= budget: # 分支判断点
submit_order() # 高风险动作
else:
abort(“超出预算,停止购买”)
攻击过程如下:
要点在于:攻击者干预的是判断依据,而不是行为规则。规则依旧被执行,只是规则所依赖的“事实”被替换了。需要说明,购物例子是为说明机制做的简化示意,实际能否造成错误下单,还取决于结算金额等关键量能否在执行边界被独立核验;真正值得警惕的是“数据影响分支、分支触发操作”这条传导链路。
四、为什么“锁死执行计划”仍然不安全
第一,CFI防住了计划外,防不住计划内。控制流完整性确保Agent只能沿预定义分支执行,但分支引导攻击的整条路径都在计划内:两个分支都是合法出口,攻击者只是在合法出口之间完成了一次“引导”。
第二,双模型隔离(Dual-LLM)有明确边界。这种思路让负责规划的P-LLM只读取可信任务描述、提前生成执行计划;负责操作的Q-LLM虽然会看到网页与工具返回结果,却不能改写计划。这在结构上阻断了“外部数据改写计划”的通路,但问题在于:分支条件本身仍需从不可信环境中取值——计划没被改,喂给计划的输入被改了。
第三,控制流完整性与数据完整性是两个正交问题。锁死计划解决的是“能不能走别的路”;分支引导解决的是“让你以为现在该走这条路”。二者必须分别设防。这也解释了为什么注入检测、指令过滤、工具白名单等已有防护在此类攻击面前常常失效:页面上根本没有可检测的恶意指令。
五、COBRA:把防御下沉到执行层的系统级思路
针对上述缺口,研究者在同一工作中提出了名为COBRA的系统级防御架构。其总体目标是:当Agent真正操作外部系统后,安全机制必须能可信地约束每一次实际执行,而不仅仅约束“计划文本”。从公开研究思路归纳,这类系统级防御通常围绕以下原则展开(具体模块与实现细节以原始论文为准):
其共同思想是:不再假设“计划内的分支都是安全的”,而是为每一个高风险分支的触发条件建立独立的信任锚点。
六、与相关概念的区别与联系
七、典型适用场景
八、落地防护清单与注意事项
九、总结
回到定义本身:分支引导攻击是一种不依赖提示注入的间接操纵手法,它利用“计划合法、数据失真”之间的缝隙,让Agent沿计划内分支执行偏离用户真实意图的操作。它揭示的核心事实是——锁定执行计划不等于锁定执行结果,控制流完整性与数据完整性必须分别设防。对开发者与企业而言,Agent安全的重心应从“识别恶意指令”转向“可信地约束每一次实际执行”:为分支判断建立可信数据源,为高风险动作建立执行边界核验,为全链路建立审计能力。只有当计划、数据、动作三层同时可信时,Agent的自动化能力才能真正安全地释放。