浏览器 Agent 与长程网页任务


文档摘要

浏览器 Agent 与长程网页任务 本节摘要:ChatGPT agent(2025 年 7 月)把 Operator 与 deep research 合并成一个浏览器/终端 Agent,在 BrowseComp 上创下 68.9% 的 SOTA;OpenAI 在 8 月 31 日关停了独立 Operator——产品层的整合。Anthropic 收购 Vercept 把 Claude Sonnet 在 OSWorld 上从不到 15% 拉到 72.5%;WebArena-Verified(ServiceNow,ICLR 2026)修掉了原 WebArena 11.3 个百分点的假阴性率,并发布 258 题的 Hard 子集。

浏览器 Agent 与长程网页任务

本节摘要:ChatGPT agent(2025 年 7 月)把 Operator 与 deep research 合并成一个浏览器/终端 Agent,在 BrowseComp 上创下 68.9% 的 SOTA;OpenAI 在 8 月 31 日关停了独立 Operator——产品层的整合。Anthropic 收购 Vercept 把 Claude Sonnet 在 OSWorld 上从不到 15% 拉到 72.5%;WebArena-Verified(ServiceNow,ICLR 2026)修掉了原 WebArena 11.3 个百分点的假阴性率,并发布 258 题的 Hard 子集。数字是真的,攻击面也是真的:OpenAI 准备就绪负责人公开说,针对浏览器 Agent 的间接提示注入「不是一个能完全修补的 bug」。已记录的 2025-2026 攻击包括 Tainted Memories(Atlas CSRF 形态)、HashJack(Cato Networks)、Perplexity Comet 的一次点击劫持。本节命名攻击面、命名基准全景(BrowseComp/OSWorld/WebArena-Verified),并建模一个最小间接提示注入场景,让你能在第 14、18 节里讨论真实防御。

对应原课程:Phase 15 · Lesson 11 · browser-agents(原英文 phases/15-autonomous-systems/11-browser-agents/docs/en.md)。

学习目标

阅读完本节,你应当能够:

  1. 命名 2026 浏览器 Agent 全景:ChatGPT agent、Claude Sonnet+Vercept、Gemini 3 Pro+Browser Use,以及各自的旗舰基准分。
  2. 区分 BrowseComp / OSWorld / WebArena-Verified / Hard 子集 各自量什么、时间跨度多少,并指出「高 BrowseComp 不等于能订机票」。
  3. 列出浏览器 Agent 的六类攻击面:间接提示注入、URL 片段注入、记忆绑定攻击、CSRF 形态攻击、一次点击劫持、宿主 CSP 漏洞。
  4. 解释为什么间接提示注入「不可完全修补」——它与 Agent 的能力同构(Agent 必须读不可信内容才能干活)。
  5. 列出实际出货的防御姿态:读/写边界、按任务工具白名单、会话隔离、内容消毒器、关键动作 HITL、记忆金丝雀。

一、问题与直觉

浏览器 Agent 是一个读不可信内容、并采取有后果动作的长程 Agent。Agent 访问的每个页面都是用户没写的输入;每个页面上的每个表单都是潜在的命令通道。2025-2026 的攻击语料显示这不是假设:Tainted Memories 让攻击者通过构造的页面把恶意指令绑定到 Agent 的记忆;HashJack 把命令藏在 Agent 访问的 URL 片段里;Perplexity Comet 的劫持一次点击就中。

防御图景令人不安。OpenAI 准备就绪负责人把那句话大声说了出来:间接提示注入「不是一个能完全修补的 bug」。因为攻击住在 Agent 的读-动边界上,而这个边界在架构上是模糊的——模型读的每一个 token,原则上都可能被当成指令读。

⚠️ 核心不可修补性:Agent 必须读不可信内容才能干活;读的任何内容都可能含指令;跟的任何指令都可能偏离用户真实请求。防御只能抬高攻击成本、缩小爆炸半径,关不掉这一类

二、从零实现:间接提示注入攻击面模型

原课程 code/main.py 把一次迷你浏览器 Agent 运行建模为对三个合成页面的访问:一个良性、一个在可见文本里有直白提示注入块、一个在 URL 片段里有注入(不可见但在 Agent 上下文里)。脚本展示:(a) 朴素 Agent 会做什么、(b) 读/写边界抓住什么、(c) 消毒器抓住什么、(d) 两者都抓不到什么。

读/写边界骨架

def browser_step(page, task, trust): content = fetch(page.url) # 读: 永远无后果 sanitized = strip_known_bad(content) # 消毒器: 减掉容易攻击 if indirect_injection_detected(sanitized): trust.degrade(page.url) action = model.decide(sanitized, task) if action.is_write: # 写: 有后果 if not trust.within(page.url): return HITL(action) # 内容来自信任边界外 -> 人审 return execute(action)

2026 全景:每系统一段

ChatGPT agent(OpenAI):2025 年 7 月发布,统一 Operator(浏览)与 Deep Research(多小时研究)。8 月 31 日关停独立 Operator。BrowseComp SOTA 68.9%;OSWorld 与 WebArena-Verified 上数字强劲。

Claude Sonnet + Vercept(Anthropic):Vercept 收购聚焦计算机使用能力,把 Claude Sonnet 在 OSWorld 上从 <15% 拉到 72.5%。Claude Computer Use 作为工具 API 出货。

Gemini 3 Pro + Browser Use(DeepMind):Browser Use 集成出货计算机使用控件;FSF v3(2026 年 4 月,第 20 节)专门跟踪 ML R&D 域的自主性。

WebArena-Verified(ServiceNow,ICLR 2026):修了一个有据可查的问题——原 WebArena 有约 11.3% 假阴性率(被判失败、实则解决)。Verified 用人工精选成功判据重新评分,加 258 题的 Hard 子集。

基准对比

基准 量什么 跨度
BrowseComp 时间压力下在开放网上找特定事实 分钟
OSWorld Agent 操作完整桌面(鼠标、键盘、shell) 几十分钟
WebArena-Verified 模拟站点里的交易式网页任务 分钟
Hard 子集 带多页状态转移的 WebArena-Verified 任务 几十分钟

不同轴。高 BrowseComp 说明 Agent 能找事实,不说明它能订机票。OSWorld 接近「在我桌面上能不能用」;WebArena-Verified 接近「能不能走完一个流程」。任何生产决策都需要匹配任务分布的基准。

攻击面,命名

  1. 间接提示注入:不可信页面内容含指令,Agent 读、Agent 执行。公开例:2024 Kai Greshake 等、2025 Tainted Memories、2026 HashJack。
  2. URL 片段/查询注入:爬取 URL 的 #fragment 或查询串含命令,从不可见渲染,却在 Agent 上下文里。
  3. 记忆绑定攻击:页面指示 Agent 写持久记忆(第 12 节讲持久状态);下次会话,记忆在无可见触发下激活载荷。
  4. 认证会话上的 CSRF 形态攻击:Tainted Memories 类——Agent 在某处登录着;攻击者页面发出状态改变请求,Agent 用用户 cookie 执行。
  5. 一次点击劫持:视觉上无害的按钮搭载 Agent 会跟的载荷。Comet 类。
  6. Agent 宿主面的 CSP 漏洞:渲染层与工具层本身可以是攻击向量;浏览器里的浏览器 Agent 栈很宽。

为什么「不可完全修补」

攻击与 Agent 的能力同构。Agent 必须读不可信内容才能干活;读的任何内容都可能含指令;跟的任何指令都可能偏离用户真实请求。防御(信任边界、分类器、工具白名单、关键动作 HITL)抬高攻击成本、缩小爆炸半径,关不掉这一类

这与第 08 节 Löb 定理同形:Agent 不能证明下一个 token 安全;它只能搭一个让不安全 token 更可检测的系统。

实际出货的防御姿态

  • 读/写边界:读永远无后果;写(提交表单、发内容、调用带副作用工具)若发起内容来自信任边界外,需新的人工批准。
  • 按任务工具白名单:Agent 能浏览;除非该工具对该任务显式启用,否则不能发起电汇。第 13 节讲预算。
  • 会话隔离:浏览器 Agent 会话只用范围凭据;无生产授权、无个人邮箱;每个 HTTP 请求日志留存待审。
  • 内容消毒器:抓取的 HTML 在拼进模型上下文前剥除已知坏模式。(减掉容易攻击;挡不住复杂载荷。)
  • 关键动作 HITL:Propose-Then-Commit 模式(第 15 节)。
  • 记忆金丝雀:若某条记忆条目激活,用户能看到(第 14 节)。

三、框架对比:三类基准与三类攻击

维度 类别 含义
BrowseComp 事实查找 分钟级;不等于能完成交易
OSWorld 桌面操作 几十分钟;接近「在我桌面能用」
WebArena-Verified 交易流程 分钟级;Hard 子集跨多页状态转移
间接注入 读侧 不可修补,与能力同构
记忆绑定 持久侧 跨会话;靠金丝雀检测
CSRF/一次点击 写侧 靠读/写边界 + HITL 抬高成本

💡 基准选择守则:用匹配任务分布的基准。订机票流程看 WebArena-Verified 类,不是 BrowseComp。任何用错基准的选型决策都是误导。

四、可复用产物

outputs/skill-browser-agent-trust-boundary.md 给一次拟部署的浏览器 Agent 划定范围:它触碰哪些信任区、被授权写什么、首次运行前必须就位的防御(读/写边界、会话隔离、消毒器、关键动作 HITL、记忆金丝雀)。它专门抓「能力够了但信任边界没划」的部署。

code/main.py 把读/写边界与消毒器做成可独立开关,适合演示「合成页面中,消毒器抓到但读/写边界没抓到的是哪类、反之又是哪类」。

五、练习

  1. code/main.py:指出消毒器抓到但读/写边界没抓到的攻击,以及只有读/写边界抓到的攻击。

  2. 扩展消毒器检测一类 HashJack 式 URL 片段注入,在带合法片段的良性 URL 上测假阳性率。

  3. 挑一个你熟悉的真实浏览器 Agent 工作流(如「订机票」),列出每个读和每个写,标注哪些写需要 HITL 及原因。

  4. 读 WebArena-Verified ICLR 2026 论文,找出一类原 WebArena 评分不可靠的任务,解释 Verified 子集如何解决。

  5. 为浏览器 Agent 场景设计一条记忆金丝雀:你存什么、存哪、什么触发警报?

本节要点回顾

  1. 2026 浏览器 Agent 三强:ChatGPT agent(BrowseComp 68.9%)、Claude+Vercept(OSWorld 72.5%)、Gemini 3 Pro+Browser Use;产品层在整合(Operator 关停)。
  2. 基准不同轴:BrowseComp 找事实、OSWorld 桌面、WebArena-Verified 交易流程、Hard 子集跨页状态转移;要用匹配分布的基准。
  3. WebArena-Verified 修了 11.3pp 假阴性:人工精选成功判据 + 258 题 Hard 子集。
  4. 六类攻击面:间接注入、URL 片段、记忆绑定、CSRF 形态、一次点击劫持、宿主 CSP 漏洞。
  5. 间接提示注入不可完全修补:与 Agent 能力同构——必须读不可信内容才能干活。
  6. 防御只抬高成本、缩小爆炸半径:读/写边界、工具白名单、会话隔离、消毒器、关键动作 HITL、记忆金丝雀。
  7. 与 Löb 定理同形:Agent 不能证明下一 token 安全,只能搭一个让不安全更可检测的系统。

下一节,我们处理长程运行的另一根支柱——持久执行(durable execution),看 Agent 状态如何在崩溃、重启、跨会话之间存活,以及这为何同时是能力来源与记忆绑定攻击的面。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U