UCM:为网页智能体遮蔽不可信内容以提供安全保证
Untrusted Content Masking for Web Agents with Security Guarantees
论文提出 UCM:用 DOM 掩码与类型受限隔离模型隔开网页智能体与不可信内容。加强 WASP 攻击 ASR 为 0%,效用大体保持,成本最高约 1.84 倍。
计算机使用智能体在网页上观察渲染页面并执行点击、输入、导航等动作。
- 网页智能体必须观察混有可信与不可信内容的渲染页面,依赖隔离的安全保证因此失去信任边界。启发式防御无形式保证,已有保证型防御又会限制智能体直接看页面。
- UCM 在渲染给 Agent 之前,按 DOM 把不可信区域换成带标签占位符。需要读这些内容时,Agent 向隔离的 Q-Model 提问并指定 bool、int、float、date、enum 等返回类型;类型化输出不能带回自由文本指令。
- 三个前沿智能体在 10 个自建网站和 WebArena GitLab 上,效用大体保持,成本开销约 1.05× 至 1.84×。附录 E 中加强版 WASP 攻击对 UCM 的 ASR 为 0%。Claude Sonnet 4.5 仅凭脱敏 DOM 推断信任边界,三个网站 F1 为 0.840–0.997。
- 严格保证要求每个 DOM 元素标注正确;主动诚实站主是主实验假设,被动站主靠自动标注。数据流攻击(聚合操纵、单值篡改、选择劫持)仍可能返回类型正确但值错误的结果。不覆盖 XSS、可用性攻击和浏览器/OS 沦陷。
- 威胁模型
- 计算机使用智能体在网页上观察渲染页面并执行点击、输入、导航等动作。攻击者可任意控制不可信区域内的文本或图像;一旦该内容进入语言模型上下文,即可任意控制其输出。目标是操纵智能体采取恶意动作。站点所有者被假定诚实。不覆盖 XSS、可用性攻击及浏览器/OS 沦陷。
- 模型
- Claude Sonnet 4.5Claude Sonnet 4.6GPT-5.4
- 基准
- 10 custom website environmentsWebArena GitLab suiteWASP
- 指标
- task utilitycost per task (USD)ASRF1TPFPFN
研究者提出 Untrusted Content Masking(UCM),一种为网页智能体恢复可信与不可信内容边界的防御方法,用于抵御提示注入攻击。该方法利用网页 DOM 结构足以区分可信与不可信区域这一特性,在不可信内容到达智能体前将其遮蔽,并通过带严格权限隔离的沙箱接口完成交互,使智能体在观察和操作环境的同时与对抗性内容隔离。作者称该方法简单有效,代码已公开。论文作者包括 Kristina Nikolić、Egor Zverev、Javier Rando、Matthew Jagielski、Edoardo Debenedetti、Florian Tramèr。
深度解读
这篇论文试图解决什么问题?
网页渲染把可信与不可信内容缠在一起,使依赖隔离的提示注入防御失去信任边界。
网页智能体为观察和操作页面,必须先看到混有可信内容与不可信内容的渲染结果,从而拆掉安全保证所依赖的信任边界。
- 场景与风险:作者称网页智能体正从原型走向生产(如 Claude Computer Use、OpenAI Operator、UI-TARS),会代用户订票、管日历、操作复杂网页应用。它们经常遇到评论、商品评价、论坛帖和广告等不可信内容,易受嵌入页面的提示注入操纵。
- 现有方法不足:启发式防御提高鲁棒性但无形式保证,且可被自适应攻击绕过。保证型防御用规划与数据处理的确定性隔离,却因不让智能体直接看页面内容而限制效用。Foerster 等人的单次规划提供控制流完整性,但没有把渲染页上可信与不可信内容分开的机制时,规划器必须对整个环境保持盲视。Piet 等人主张在带类型的可信网站 API 上规划,但作者称这需要逐站建设和维护基础设施,并离开自然的网页交互。
- 核心观察:作者提出两点:(1)网页 DOM 含有足够结构信息,可不读内容就区分可信与不可信区域;(2)多数网页智能体任务只需要不可信区域的结构信息,而不需要其内容。
- 提出的防御:作者提出 Untrusted Content Masking(UCM)。渲染给 Agent 之前用带标签占位符遮住不可信区域;需要读内容时,Agent 向隔离的 Quarantined Model(Q-Model) 提问,返回类型限制为 boolean、integer、enum、date、float,使不可信来源的信息不能携带注入指令。另给出在脱敏 DOM 上自动推断信任边界的方法。
- 威胁模型:
- 受害系统与目标:计算机使用 Agent 代表用户在 Web 上行动,观察渲染页面并下达点击、输入、导航等动作以完成用户任务。攻击者目标是操纵由语言模型驱动的 Agent 采取恶意动作。
- 知识与能力:强攻击者可控制所访问页面上不可信区域内的任意文本或图像。作者进一步假定:攻击者控制的内容一旦进入某语言模型的上下文窗口,该模型的输出就可被任意控制。
- 不可信内容与信任假设:页面所有者无法为其担保的内容视为不可信,可以是用户生成(评价、评论),也可以是所有者从外部引入(API 响应、聚合的第三方列表)。假定被访问站点的所有者诚实,不会在自己控制的区域放置对抗内容。作者区分主动诚实所有者(为页面标注不可信区域)与被动诚实所有者(不标注、但非对抗)。主实验假定主动诚实所有者。
- 范围外:不处理主动内容漏洞(如 XSS)使攻击文本逃出已标注区域或在运行时改写 DOM;也不处理可用性攻击、与注入无关的模型错误,以及网页/LLM 边界之外的威胁(如浏览器或 OS 沦陷)。严格安全保证要求每个 DOM 元素标注正确。
有哪些相关研究?
相关工作分攻击、检测与微调类防御、系统级隔离,以及面向浏览器智能体的控制流方案。
攻击
- Carlini 等人(2023)研究视觉语言模型的脆弱性;Wu 等人(2025a)把相关发现扩展到多模态 LLM 智能体。
- 计算机使用智能体上的攻击向量包括:像素攻击(Wang 等人,2025)、图像补丁(Aichberger 等人,2025)、弹窗(Zhang 等人,2025b)、小字(Chen 等人,2025a)、把智能体重定向到恶意页面的文本(Li 等人,2025),以及用强化学习的黑盒策略(Xu 等人,2025)。
- 评测基准包括:网页智能体安全的 WASP(Evtimov 等人,2025)和 DoomArena(Boisvert 等人,2025),以及混合网页与操作系统环境的 RedTeamCUA(Liao 等人,2026)。
检测、提示与训练类防御
- 检测类用单独模型检测或过滤恶意内容(ProtectAI,2024;Wang 等人,2026;Zhong 等人,2025)。提示类改变提示方式以提高鲁棒性(Hines 等人,2024;Learn Prompting,2024)。微调类训练模型忽略注入(Chen 等人,2025b、2025c、2025d;Wallace 等人,2024;Wu 等人,2024b)。
- ASIDE(Zverev 等人,2026)在嵌入层把指令与数据做架构分离。
系统级隔离与类型化特权分离
- 系统级防御包括执行隔离(Wu 等人,2025b)、信息流控制(Wu 等人,2024a)、双 LLM 架构(Willison,2023;Kim 等人,2025;Debenedetti 等人,2025;Li 等人,2026;Costa 等人,2025)和安全策略生成(Shi 等人,2025)。Beurer-Kellner 等人(2025)讨论针对智能体的临时系统级设计模式。
- Jacob 等人(2025)提出类型导向的特权分离,把不可信内容转成范围受限的策划数据类型。作者称本文在此之上推广:不是预先把每个数据字段固定成单一类型转换,而是让 Agent 对任意被掩码元素提出任意问题,并在查询时选择返回类型。
浏览器与计算机使用智能体
- ceLLMate(Meng 等人,2025)在 HTTP 请求层执行细粒度沙箱策略。Foerster 等人(2026)用单次规划把双 LLM 架构用于计算机使用智能体,对任意指令注入提供控制流完整性保证。Piet 等人(2026)主张用 plan-then-execute 取代标准 ReAct 循环,在观察任何不可信内容之前就对带类型的网站 API 承诺一段程序;作者称这能消除控制流劫持,但要求为每个目标网站建设和维护可信的带类型 API。
- Hu 等人(2025)提出计算机使用智能体的实时安全监控。BrowseSafe(Zhang 等人,2025a)研究浏览器智能体内的提示注入模式,并提出纵深防御。Google Chrome 的智能体安全架构(Google Security,2025)用一个与网页内容隔离的可信模型审查每个动作,并用 Agent Origin Sets 把数据访问限制在与任务相关的站点。
基线方法与基准
- 效用与成本实验的基线是无防御 Agent(整页可见),对照为带 UCM 的 Agent;Q-Model 在全部实验中为 Claude Sonnet 4.5。环境为 10 个自建网站(每站 10 个任务)和 WebArena 的 GitLab 套件(41 个任务模板)。攻击验证使用加强版 WASP(附录 E)。自动边界推断在 Booking、Reddit、GitLab 上与人工标注对比。
作者把 UCM 定位为在 DOM 层掩码不可信内容:相对逐站建设可信 API,需要的改动更少,并让智能体继续跑标准 ReAct 循环,同时与对抗文本隔离。
论文如何解决这个问题?
UCM 先按 DOM 掩码不可信区域,再经类型受限的 Q-Model 读取,从而隔离注入文本。
Untrusted Content Masking(UCM) 在页面渲染给 Agent 之前,用 DOM 上的信任标注把不可信区域换成占位符;需要内容时,Agent 只通过隔离的 Q-Model 拿到类型受限的结构化答案。
问题设定与掩码
- 信任边界来自 DOM:作者称网页 DOM 本身编码了可用来划定页内信任边界的信息。不可信 DOM 组件在渲染给 Agent 之前被换成掩码占位符。占位符保留结构上下文,并在可用时带语义标签(如 advertisement、user comment、review),使 Agent 仍能看到全部可信内容和页面布局(Figure 1、Figure 4)。
- 安全性质:Agent 不处理不可信元素,因而对攻击者控制的内容零暴露。作者称这从设计上阻止提示注入,与试图检测或过滤恶意提示的启发式防御不同。
- 实现(附录 B):掩码是客户端 JavaScript。站主给含不可信内容的元素加
data-untrusted="true"。页面加载时扫描这些元素,用 CSS 隐藏原内容,换成带唯一标识的占位符(如id: merchant-name:3),并赋予data-qllm-id。MutationObserver 监视 DOM 变化,以掩码动态插入的不可信元素。 - 两类任务:只用可信区域即可完成的任务称为 Untrusted-not-required;必须从不可信区域取信息的任务称为 Untrusted-required,此时 Agent 必须走 Q-Model。
受限的 Q-Model 交互
- 查询接口:Agent 引用被掩码元素的 ID,提出自然语言问题,并从预定义集合中指定返回类型:bool、int、float、date、enum。工具名为
quarantined_llm_analysis,参数为 target、query、return_type、return_constraints。系统按 qllm_id 定位元素,取出可见文本及标签名、label、class、id 等元数据,交给单独的 Claude 实例。输出必须能解析成声明的类型才转发给主 Agent。Q-Model 的思考过程不交给 Agent,只在解析成功时交出 Answer。 - 控制流:作者称类型受限输出不能携带自由文本,因此注入指令无法传回 Agent,从设计上保住控制流。int 与 float 必须给出 min、max;enum 必须给出 options。附录 B 的硬限制:每个元素(qllm_id)每任务最多查询 5 次,enum 选项最多 10 个,超出返回错误。
- 字符串回退:实验中实现了一种扩展:仅当用户批准抽出的文本时,Q-Model 才可返回 string。作者还描述未作为主实现的替代:Agent 请求访问不可信内容后进入“不可信模式”,元素被揭示但动作受限(例如禁止离开当前页);约束下完不成任务时可请求用户批准。作者称 UCM 可与开发者选用的任意策略兼容。
- WebArena 上的二次机会:智能体每任务最多 120 步,超出记为 max_steps_reached 并计为失败。WebArena 任务在第 110 步收到一次性警告,可声明 TASK UNSOLVABLE 以调用该回退(附录 B.7)。用户会看到问题、Q-Model 检查过的不可信内容和拟议答案,并可批准、拒绝或编辑。
攻击面分析(第 6 节)
- 唯一通道:作者称对 UCM 的攻击都必须经过 Q-Model。由此分出两类:通过 Q-Model 输出传播指令以劫持控制流;破坏 Q-Model 输出所携带的值以劫持数据流。分析中假定最强攻击者,可使 Q-Model 在 Agent 请求的约束内返回任意良类型输出。
- 控制流为何失败:不可信区域不到达 Agent 的上下文。图像上的叠加指令或二维码同样到不了 Agent,Q-Model 也无法把载荷中转出去。作者称控制流攻击因此被构造性阻止。
- 数据流:聚合操纵影响汇集后的输入(评价、评论、评分)。作者称 UCM 对每个不可信元素用全新上下文单独调用 Q-Model,恶意指令只在分析该元素时可见;要稳定扭曲聚合结果,攻击者必须控制汇集输入中的相当比例,且各元素独立处理。这对应于 Beurer-Kellner 等人的 MapReduce 隔离。单值篡改在没有下游目标时,作者认为典型后果是效用下降而不是安全违规。选择劫持中,Agent 必须用 Q-Model 从不信任候选里选一项,攻击者把某一候选项做成会被误识别的对象。缓解方面,作者指向动作级安全策略和对敏感动作的用户确认,并建议并行查询候选、把多个阳性匹配当作篡改信号。
自动边界推断(第 7 节)
- 被动诚实所有者:主实验假定主动诚实站主标注不可信区域。作者称手工标注时,每个网站 15–30 个 CSS 选择器就覆盖了 GitLab、Booking.com 和 Reddit 上的全部不可信区域。对不提供标签的被动诚实所有者,用 LLM 只根据 DOM 结构推断边界。
- 脱敏:直接在原始 DOM 上推断会把标注模型暴露给注入。因此在内容脱敏的 DOM 上推断:去掉全部文本,匿名化用户可见属性值(URL、图像引用),保留结构、标签和属性。Table 1 给出示例:标题文本被替换为长度标记,标签与 class、id 保留。附录 G 给出完整脱敏规则与提示词。
- 选择器生成:用 Claude Sonnet 4.5,输入脱敏 DOM、网页简述和不可信内容类型示例。模型输出 CSS 选择器并应用到页面。为提高覆盖,先要一组选择器,再让模型检查遗漏。评测在 Booking、Reddit、GitLab 上与手工标签对比,按 HTML 标签与 class 组合分组,比较语义类别而不是逐个实例计数(附录 G.4)。
成功判定
- 效用:任务完成率。自建网站用两类自动检查:UI 检查确认特定页面元素被交互;模型输出检查确认回答含正确文本。部分任务两者都要。WebArena 复用其原生评测器。
- 成本:按 Agent 与全部 Q-Model 调用的 API token 用量,用 2026 年 5 月带提示缓存的价格折成美元。理想情形是:Untrusted-not-required 任务与基线持平且无 Q-Model 调用;Untrusted-required 任务可因确实需要不可信内容而增加成本与调用。
- 主实验不植入攻击:作者称不需要不可信内容的任务中 Agent 完全隔离;需要时,类型受限输出从设计上保护控制流。该主张在附录 E 用加强版 WASP 做经验验证。
论文做了哪些实验?
三模型在自建站与 WebArena GitLab 上效用大体保持;加强 WASP 的 ASR 为 0%。
实验设置
- 被测 Agent:Claude Sonnet 4.5、Claude Sonnet 4.6、GPT-5.4。全部实验的 Q-Model 均为 Claude Sonnet 4.5。自动边界推断的标注模型也是 Claude Sonnet 4.5。
- 自建网站:10 个环境(banking、calendar、customer support、e-commerce、email、forum、food order / restaurant booking、wiki、travel booking、job board)。每站 10 个任务,其中 Untrusted-not-required 与 Untrusted-required 各 5 个,共 100 个任务(每组 50)。每个元素显式标为可信或不可信。三次独立运行;Figure 2 中效用为任务均值,成本为任务中位数。
- WebArena:原始 GitLab 实现加代理层,把手标安全标签注入 DOM。使用 WebArena GitLab 套件的 41 个不重复任务模板,复用其原生评测器。效用柱为三次运行的均值;成本箱线图给出中位数与四分位距,点为单个任务。
- 基线与变体:无防御 Agent(整页可见);Masking Defense(UCM,类型受限 Q-Model);WebArena 上另有 Q-Model string output allowed(声明不可解之后,经用户批准可返回字符串)。
- 指标与预算:任务效用(完成率)、每任务成本(美元,2026 年 5 月 API 价,含缓存;单价见 Table 6)。每任务最多 120 步,超出计为失败。主实验不在页面植入提示注入;攻击实验见附录 E。
- 攻击与标注评测:附录 E 在两个自建站(GitLab 环境与 forum)上使用加强版 WASP 的目标劫持与形式不同的文本注入,每模板 5 次尝试。边界推断用 TP、FP、FN 百分比和 F1,三次运行取均值(Table 2)。
主结果
Figure 2 的柱高未给出逐模型效用百分比,只标注成本倍数。Figure 3 同样未给出逐模型效用或中位成本的具体读数。下表只列正文或表中可回查的数字。
表格较宽,可左右滑动
设置 条件 结果 出处 自建 10 站,三模型 UCM 相对无防御的成本 1.05×–1.84×;图上标注含 1.17×、1.52×、1.68×、1.37×、1.05×、1.84× Figure 2b 自建,Untrusted-not-required 全部套件与 Agent 作者称效用完全保持 Figure 2a 自建,Untrusted-required 须经 Q-Model 作者称效用同样保持 Figure 2a WebArena GitLab,类型受限 三模型 作者称解出大多数任务,大体保持无防御效用 Figure 3a WebArena,允许字符串并经用户批准 三模型 作者称恢复无防御 Agent 的全部效用 Figure 3a 加强版 WASP UCM,GitLab 环境与 forum ASR 0% 附录 E、Table 8 - 效用:作者称两类任务上效用都被保持;Untrusted-required 任务说明 Agent 能通过 Q-Model 拿到所需信息。WebArena 上,类型受限 Q-Model 不能返回自由字符串,因此无法完成需要从不可信内容抽取字符串的任务(如询问某 issue 请求的新功能是什么)。允许声明不可解并经用户批准返回字符串后,作者称效用完全恢复。
- 成本:作者称开销适中,Untrusted-required 更高,因为每取一块不可信内容都要查询 Q-Model。Sonnet 4.6 的相对开销大于 Sonnet 4.5,但绝对成本更低;作者据此认为模型变强后 UCM 的总体成本会下降。约 15% 的任务在 UCM 下更便宜;作者将其归因于掩码减少视觉杂乱,使 Agent 更关注相关 UI。成本按 2026 年 5 月带缓存的 API 价格计算。Figure 3b 中最大的离群点对应未解出、耗尽步数上限的任务。
- 主实验不含攻击:作者把 0% ASR 放在附录 E,用来经验上支持“控制流由设计保证”的说法。
WebArena 上被掩码挡住的模板
- 测了什么:Table 5 列出在 Masking Defense 下被模型声明 TASK UNSOLVABLE 的 GitLab 模板。
- 结果:四个模板为 308(把项目站点标题改成给定字符串)、316(提交最多者的邮箱)、323(贡献最多者的姓名)、324(按提交数排名的前 3 名贡献者)。作者称它们都需要从不可信元素抽取自由文本。
- 作者的解读:掩码正确地挡住这些任务;声明不可解后,模型可以改用允许字符串输出的 Q-Model,输出先经用户批准再进入上下文。
加强版 WASP(附录 E)
- 测了什么:在自建 GitLab 环境与 forum 上,用比原始基准更强的攻击做端到端测试。攻击目标是目标劫持(例如把用户重定向到攻击者控制的 URL,或诱导发布攻击者给定的评论)。每模板 5 次尝试。Table 8 还比较指令放在普通文本、不可见文本和 HTML 属性中的位置。
- 结果:无防御 Agent 在纯文本下 ASR 为 80%–100%,在隐藏文本下为 0%。UCM 在纯文本、不可见文本和 HTML 属性三种条件下 ASR 均为 0%。Table 9 中,UCM 对 plain-text 的 ASR 为 0/5,utility 在 GitLab 环境为 5/5、在 forum 为 4/5。无防御 plain-text 的 ASR 为 5/5(GitLab)与 4/5(forum),utility 分别为 0/5 与 1/5。
- 作者的解读:作者称 UCM 阻止了全部加强攻击,支持“掩码从架构上消除攻击面”。不可见文本对无防御 Agent 也是 0%,作者称模型未感知该内容。作者同时写明:保证依赖于正确标注;漏标会使该元素内容进入 Agent 上下文,安全性回落到无防御 Agent。
自动边界推断(Table 2)
- 测了什么:Claude Sonnet 4.5 在脱敏 DOM 上为 Booking、Reddit、GitLab 生成 CSS 选择器,与手工标签按标签加 class 分组比较,三次运行取均值。
- 结果:Booking 的 TP 78.4±3.2%、FP 15.8±2.5%、FN 5.8±3.5%、F1 0.879±0.020。Reddit 的 TP 99.3±0.5%、FP 0.7±0.5%、FN 0.0±0.0、F1 0.997±0.003。GitLab 的 TP 72.4±1.1%、FP 19.2±1.8%、FN 8.5±1.9%、F1 0.840±0.008。
- 作者的解读:作者称三个网站上 F1 都高、欠掩码(FN)都低。Booking 最难,因为多数 class 名没有语义(文中举例 ss133neaa),模型仍主要凭少数有语义的标签和整体布局识别边界。Figure 9 图注称:红区是仅由脱敏 DOM 生成的选择器所掩码的区域;模型把酒店标题、描述和图像标为不可信,平台 UI 未掩码。
其他消融与分析
- 数据流红队(附录 F):在 GitLab 环境、假定可完全控制 Q-Model 输出的条件下手工构造。选择劫持示例中,攻击者控制的 issue 被 Q-Model 误识别,Agent 把攻击者给定的文本发到攻击者的 issue。单值篡改示例中,本应私有的代码库被报成公开,随后被删除。作者未给出这些案例的成功率。
- token 与调用(Figure 5、Figure 6、附录 D):Figure 5 为 forum 与 webshop 上 UCM 相对无防御的输入、输出 token 比,纵轴为 log2,三次运行均值;作者称 webshop 多数任务低于 1.0×,forum 更高。Figure 6 为 10 个自建站的绝对 token,按任务与运行取平均;作者称掩码后输入 token 下降,输出 token 大致不变,总 token 因 Q-Model 调用上升,其中 webshop 最高、banking 最低。Figure 7 为 GitLab 上每任务 Q-Model 调用次数的对数坐标,三次运行的中位数与四分位距;作者称 Sonnet 4.6 与 GPT-5.4 调用更少,多数任务中位数约为 1–3 次,离群点超过 10 次。Figure 8 为 GitLab 每任务成本,纵轴为 log2(USD);作者称掩码后成本略增,Sonnet 4.6 绝对成本低于 Sonnet 4.5。图中未标出可逐模型抄录的具体 token 数或美元值。
- 价格(Table 6,2026 年 5 月,每百万 token):Claude Sonnet 4.5 与 4.6 均为输入 $3.00、输出 $15.00、缓存写入 $3.75、缓存读取 $0.30。GPT-5.4 为输入 $2.50、输出 $15.00;其缓存写入与缓存读取在转换文本中列对齐不可靠,不抄录。
- 负例与例外:类型受限时,需要自由文本的 WebArena 任务会失败,直到启用经用户批准的字符串回退。不可见文本注入对无防御 Agent 的 ASR 已是 0%(Table 8)。约 15% 自建任务在 UCM 下更便宜。Appendix E 写明错误信任标签会取消隔离。数据流攻击不在 0% ASR 的控制流结果之内;附录 F 只给定性案例。
有什么可以进一步探索的点?
论文未单列局限节;严格保证依赖正确标注,数据流攻击仍在讨论范围内。
作者指出的局限与后续方向
- 正确标注是保证的前提(第 3 节、附录 E):要提供严格安全保证,UCM 要求每个 DOM 元素都被正确标注。附录 E 写明该假设不成立时,漏标元素的内容会进入 Agent 上下文,安全性回落到无防御 Agent。作者在附录 E 测试了对该假设的敏感度。
- 主动内容漏洞不在范围内(第 3 节 Out of scope):不处理 XSS 等会让攻击文本逃出已标注区域或在运行时改写 DOM 的漏洞;在诚实所有者假定下,站点负责防止这类缺陷。
- 其他范围外威胁(第 3 节):可用性攻击、与注入无关的模型错误,以及网页/LLM 边界之外的威胁(如浏览器或 OS 沦陷)均不处理。
- 数据流攻击(第 6.2 节):作者称数据流攻击是保护控制流的防御的已知局限。攻击者仍可能让 Q-Model 返回类型正确但值错误的结果,包括聚合操纵、单值篡改和选择劫持。作者指向既有的动作级安全策略与敏感动作的用户确认,并建议把并行查询多个阳性匹配当作篡改信号。
- 恶意站点本身(第 3 节):作者称访问一个 outright 恶意的站点在无论是否使用 UCM 时都不安全,因为页面可以仅靠加载就触发有害行为。实践中可对浏览器或用户维护的可信域允许列表部署 UCM,未知页面回退到启发式防御。
- 标准与标注实践(第 8 节 Conclusion):作者主张安全的网页智能体可能受益于网站在 DOM 中显式标记信任边界,并类比 Content Security Policy。作者称自动标注结果表明,在此类标准出现之前,智能体也可以只从结构线索推断信任边界。作者希望网站开发者与标准组织采用能让智能体更安全地交互的做法。论文没有名为 Limitations 的专节。
实验覆盖范围
- 效用与成本:被测 Agent 为 Claude Sonnet 4.5、Claude Sonnet 4.6、GPT-5.4。自建环境 10 个、共 100 个任务,分 Untrusted-not-required 与 Untrusted-required;WebArena 使用 GitLab 套件 41 个任务模板。效用与成本均三次运行(第 5 节、Figure 2、Figure 3)。Q-Model 固定为 Claude Sonnet 4.5。
- 攻击验证:主实验不在页面植入提示注入。附录 E 在两个自建站(GitLab 环境、forum)上评测加强版 WASP,每模板 5 次,报告纯文本、不可见文本和 HTML 属性三种投放位置的 ASR。附录 F 在假定完全控制 Q-Model 输出的前提下,于 GitLab 环境给出数据流攻击的定性案例,未报告成功率。
- 标注:主实验假定主动诚实所有者并使用严格或手标标签。自动边界推断只在 Booking、Reddit、GitLab 上比较与人工标签的 TP、FP、FN 和 F1(Table 2,3 次)。论文报告手工标注时每站 15–30 个 CSS 选择器覆盖了这三个站的不可信区域。
- 步骤与查询约束:每任务步数上限为 120;WebArena 在第 110 步可声明不可解并进入字符串回退。每个 qllm_id 每任务最多查询 5 次,enum 选项上限为 10(附录 B)。论文给出 token 价格表(Table 6)以及 forum、webshop 与 GitLab 的 token、调用次数和成本图(Figure 5–8),未在正文给出逐模型的效用百分比表。
- 讨论过但不作为主实现的策略:第 4.2 节写了不可信模式下限制导航、以及开发者自选策略;实验实现的是类型受限查询,外加用户批准后的字符串输出。论文未报告用户批准环节的拒绝率或人工一致性。
总结一下论文的主要内容
UCM 用 DOM 掩码和类型受限 Q-Model 隔离网页智能体,效用大体保持且 WASP ASR 为 0%。
Untrusted Content Masking(UCM) 是面向网页智能体的提示注入防御:在渲染前按 DOM 遮住不可信区域,需要读内容时只经过类型受限的隔离模型。
- 问题:网页把导航、官方列表等可信内容与评论、评价、第三方列表等不可信内容缠在同一次渲染里。依赖“规划不碰不可信数据”的保证因此失去边界。启发式防御无形式保证;已有保证型方案要么让规划器看不见环境,要么要求为每个网站维护带类型的可信 API。
- 做法:站主用标签标出不可信元素(或由模型在脱敏 DOM 上推断 CSS 选择器)。Agent 只看到带 ID 的占位符和可信内容,经
quarantined_llm_analysis对单个元素提问,返回类型限于 bool、int、float、date、enum。自由文本仅在用户批准后进入上下文。作者称所有攻击都必须经过 Q-Model:控制流被类型约束挡住;数据流仍可能返回良类型但错误的值。 - 效用与成本:Claude Sonnet 4.5、Claude Sonnet 4.6 和 GPT-5.4 在 10 个自建网站(100 个任务)上,作者称两类任务的效用都保持;Figure 2b 的成本开销为 1.05× 到 1.84×,约 15% 的任务更便宜。WebArena GitLab 的 41 个模板上,类型受限时作者称多数任务可解、效用大体保持;允许经用户批准的字符串输出后,作者称恢复无防御时的全部效用。三次运行,每任务最多 120 步。
- 安全与标注:附录 E 中,加强版 WASP 在 GitLab 环境与 forum 上对 UCM 的 ASR 为 0%(每模板 5 次);无防御 Agent 在纯文本下为 80%–100%,在不可见文本下为 0%。Table 2 中,Claude Sonnet 4.5 自动划界的 F1 为 Booking 0.879±0.020、Reddit 0.997±0.003、GitLab 0.840±0.008。
- 作者的结论:作者认为 UCM 在多种网站和 WebArena GitLab 任务上以适中成本保持效用,并提供启发式防御给不出的安全保证。他们主张网站在 DOM 中显式标记信任边界;在标准出现前,结构线索也可以支持自动标注。严格保证依赖逐元素标注正确,且不覆盖数据流攻击、XSS 和浏览器或操作系统沦陷。