把广告塞给AI:分支引导攻击为何能让大模型「叛变」"

admin 2026-10-22 12:44:08 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

把广告塞给AI:分支引导攻击为何能让大模型「叛变」

原创

deepsec
deepsec

深安安全

2026年10月20日 09:58
江苏

去阅读

过去两年,关于「AI Agent安全」的讨论几乎都绕不开一个词:提示注入。防守方的思路也很直接——过滤可疑指令、加系统提示、拦截高危调用。但一篇来自苏黎世联邦理工学院、剑桥大学、帝国理工学院等团队的论文(arXiv 2610.03089),把这个安全感撕开了一道口子。

01核心观点:锁定计划,不等于锁定结果

论文提出的攻击方式叫分支引导,防守架构叫COBRA。它把观点浓缩成一句话:

攻击者不写提示注入,不插入恶意指令,甚至不「接触」模型——
他们只在模型必然会读取的外部数据里动一点手脚。

一条搜索广告、一条商品评论、一个页面上的价格标签、一段客服话术。模型读到了,觉得信息没问题,于是按照原本被允许的流程,走向了一个用户从未想要的分支。

02先厘清:Agent的「三条链」

以一个电商比价Agent为例:用户说「帮我找一款500元以内的降噪耳机,看评论靠谱就下单」。Agent大致同时运行三条链:

目标链

用户需求被理解成意图:品类是降噪耳机,预算是500元,决策依据是评论可信度,动作是下单。这条链决定了「什么叫做完了」。

计划链

在ReAct类架构里,Agent以「思考—行动—观察」循环推进,每一步都依赖上一步看到的数据来决定下一步。

数据链

搜索结果是数据,商品价格是数据,评论内容也是数据。它们来自互联网、来自第三方商家、来自广告平台——不归开发者管,也不受开发者控制。

传统安全关注前两条链:提示词有没有被污染,计划有没有被诱导。但真正的薄弱环节在第三条——数据流完整性(DFI):即使每一步行动都在「允许列表」内,它所依赖的数据本身也可能已经被操纵。

03分支引导:不篡改计划,只篡改判断依据

Agent的每一步执行都会面临多个合理的下一跳,而这些分支在正常计划里全部是「合法的」,系统不会拦截。但分支的走向并不由用户决定,而由Agent读到的外部数据决定。

搜索广告 攻击者购买关键词广告,写一条「看起来很专业」的参数和价格,不要求越权,Agent比价后把它推荐出去。

评论刷单 用户要求「评论靠谱」,攻击者在目标商品刷满好评、给竞品刷差评,评论模块读到4.9星,于是判定「靠谱」。

页面元素与价格 篡改或伪造限时低价标签,让Agent确认符合预算并完成下单,事后用户才发现是钓鱼页面。

这些攻击的共同点:没有一个字节是恶意指令。用现有的注入检测器去扫,结果大概率是「未发现可疑指令」。提示注入改变AI的「想法」,分支引导改变AI做判断时的「依据」。

04为什么Dual-LLM也挡不住

Dual-LLM的思路是:让「处理不可信数据的模型」和「有权限操作工具的模型」拆开。前者只读数据、只做摘要,后者只接收摘要结果、不直接接触网页。理论上,恶意指令进不了特权模型。

但论文测出的结果并不乐观:Dual-LLM的攻击成功率达到89.5%。

为什么失守

不可信模型读到广告,只是忠实地提取信息:「ANC降噪、4.9星、399元」。摘要本身没有错,特权模型拿到干净准确的报告,照着它走进了攻击者预设的分支。

Dual-LLM的隔离边界是「内容权限」,而分支引导突破的是「数据真实性」,两者不在同一个平面。就好比门口安检很严,但安检员的通报里说「来人是好人」——问题不在安检,在通报。

05STEER-Bench:三组令人不安的数字

评测平台共设计101个任务、9个场景、199个攻击单元。每个攻击单元是一次完整的分支引导尝试:明确的任务上下文、被污染的数据、被期待的错误分支。

Agent 架构 攻击成功率 说明
普通ReAct 94.4% 74个可比攻击单元
Dual-LLM 89.5% 摘要忠实,但数据被操纵
COBRA 0% 199个攻击单元全部拦截

94.4%意味着:只要攻击者能在Agent读到的数据里做手脚,几乎每次都能成功。这不是ReAct的bug,而是「充分信任观察结果」这一设计哲学的系统性失效。安全界有句话——如果一种攻击在绝大多数情况下都能成功,那它就不是漏洞,而是架构问题。

06COBRA:在执行前划定分支边界

COBRA的核心思想是:让规划过程与外部数据的接触在时间上分离。引入可信的规划模型P-LLM,在Agent真正接触数据前,为每条分支预先划定边界。

  1. 锁定分支参数

明确每个分支允许的工具、目标和参数范围。比价分支只允许调用价格接口,价格只能是数字,预算不能超过用户设定值。

  1. 在执行层设围栏

在HTTP层与MCP层设置执行围栏,即便模型「想」越界,实际的网络请求和工具调用也会被拦下,把安全从君子协定变成强制约束。

  1. Agent Sitemap描述能力边界

用机器可读的清单描述Agent可访问的接口、工具与资源,类似网站地图,让模型在规划时知道「允许走哪条路」。

07胜利与代价:0%攻击率,97%效用

① 199个攻击单元
COBRA的攻击成功率为0%

② 正常任务
保留约97%的任务效用,138个正常单元仅4次误拦截

③ 四个已有基准
1312项攻击中1259项在覆盖范围内,全部拦截,成功率为0%

COBRA不是「一刀切把Agent锁死」——那样攻击率低了,它也没法用。它用约3%的效用损失和极低的误拦截率,把攻击面几乎清零。但论文同样诚实地给出了局限,这些局限值得每一位读者认真对待:

参数合规 ≠ 数据真实

能确保价格是数字且不超预算,却无法确保这个价格是真实的。合规性检查只能防越权,无法防语义层面的欺骗。

合法调用 ≠ 语义安全

所有调用都在围栏内,但多个合法分支串联后,整体可能产生不符合用户意图的结果。

覆盖面尚不完整

当前实现未覆盖本地文件写入与SMTP外发等通道,侧路仍需另行加固。

刚性规划降低灵活性

预先锁定参数,对长任务、开放式任务可能带来能力损失,真实业务中的效用折损可能高于基准测试结果。

08这对Agent开发者意味着什么

论文很学术,但结论对工程团队有非常具体的指导意义。以下几条可以直接落地:

一、把数据源当作攻击面 像给数据库做权限审计一样,给网页、广告、评论、第三方API、知识库做信任分级。

二、分离规划与执行 让「制定计划」和「读取数据」分阶段甚至分模型进行,先定边界,再看内容。

三、护栏下沉到执行层 把网络请求、工具调用、MCP连接纳入强制访问控制,越权就在协议层拒绝。

四、给「思考过程」建审计 记录每一步依据了哪条数据、数据来自哪个域名,才能发现隐蔽的分支引导,也满足可解释性要求。

五、高价值动作强制人工确认 支付、改账号、数据外发、文件写入,应设置硬性确认关卡,而不是交给模型自行判断。

层面 过去关注的 现在要补上的
规划层 提示词是否干净 分支边界是否预先锁定
执行层 是否解释了恶意指令 HTTP/MCP围栏是否生效
数据层 几乎空白 数据来源分级与溯源

09从「防注入」到「守数据流」

分支引导攻击最值得警惕的地方,不在于它有多复杂,而在于它有多朴素。攻击者没有用零日漏洞,没有绕过认证,没有部署后门。他们只是在AI每天都要读的数据里,塞了几条广告。

过去我们防的是「有人对AI说谎」,现在要防的是「AI读到的本来就是假话」。

对安全团队来说,AI Agent不是一个普通的应用系统,而是一个持续与不可信世界交互、根据不可信数据自主决策、并且拥有工具权限的实体。它的安全边界不能只画在系统提示里,必须画在数据流经的每一层。

「锁定执行计划」只是开始,「守住数据流」才是终局。

当下一波AI应用把Agent送进企业的客服、采购、运维、财务流程时,谁来保证它在读到一条广告之后,依然做的是用户想要的事?这将是每一个Agent团队都必须回答的问题。

把广告塞给AI:分支引导攻击为何能让大模型「叛变」" 网络安全文章

把广告塞给AI:分支引导攻击为何能让大模型「叛变」"

本文介绍针对AIAgent的分支引导攻击,攻击者不注入恶意指令,而是操纵模型读取的外部数据(如广告、评论)改变其决策依据,攻击成功率高达94.4%。论文提出COBRA防御架构,通过预先锁定分支边界、执行层围栏和AgentSitemap实现0%攻击率,同时保留97%效用。建议开发者将数据源视为攻击面,分离规划与执行,下沉护栏到执行层,并对高价值动作强制人工确认。
AI编程:十年后还需要程序员吗?" 网络安全文章

AI编程:十年后还需要程序员吗?"

文章分析AI编程工具对程序员职业的影响,指出AI正快速替代基础编码工作,但真正不可替代的是能定义问题、设计系统、负责质量安全的软件工程师。建议程序员向需求端和运维端发展,保持独立判断能力,将AI作为协作团队,深耕行业成为复合型人才。结论是十年后仍需程序员,但角色将从代码编写者转变为系统设计与决策者。
炸了,CVE史上第一次" 网络安全文章

炸了,CVE史上第一次"

2026年CVE编号首次突破10万创历史纪录,微软单次修复1411个漏洞亦创最大规模。AI工具降低挖洞成本但修复能力未跟上,漏洞质量参差不齐带来信噪比危机。建议用AI红队持续发现自身弱点,基于威胁情报排定修复优先级,在补丁落地前采用虚拟补丁等临时缓解措施。
流量练习3" 网络安全文章

流量练习3"

该文档为医院系统脱库应急响应流量分析实操记录。攻击者通过常规手段获取后台账号密码,利用多个IP进行端口扫描、AWVS扫描、WEB登录爆破及批量注册,最终通过SQL注入获取hospital\\_db库patients表患者身份信息。建议加强访问控制、修复SQL注入漏洞并完善日志审计。
评论:0   参与:  0