Dekita

AI 替人逛网页之后,攻防两端都变了:一次没成功的劫持,和一套 3 美元跑一周的防守

中文长文存档 AI 提效

过去半年,agent 的讨论集中在它能不能干活。这两周外网两篇实验把问题往前推了一步:agent 能干活之后,别人能用网页对它做什么,以及你怎么防它被用去做坏事。一篇进攻、一篇防守,关键数字都核到了原文,也标了哪些没验证。

一、进攻侧:一次没成功的劫持实验

dev.to 作者 gramli 11 月 5 日发了《WebMCP Attack Lab: Can an E-Shop Hijack Your AI Agent?》(48 反应、33 评论)。背景是 WebMCP。按 webmcp.com 与术语站的公开说明,这是 W3C Web ML 工作组的提案:网站通过 document.modelContext 一类的接口把工具交给浏览器里的 agent,工具在页面内运行,共享当前登录态。网页开始能向 agent 声明它能替你做什么。

作者搭了个假电商站,让 agent 浏览商品、管购物车、结账,在工具描述里埋诱导:把加购描述成用户本意,把超预算部分藏进运费和保险里,看它会不会下超过 100 欧预算的单。他 10 月底发过前作,在应用日志里藏恶意指令,这篇把攻击面从日志换到了工具描述。

被测的三个模型全是便宜档:gemini-3.5-flash-lite、nemotron-3.5-super-vl-120b-a12b、gemma-4-31b-it。作者原话说,他 foolishly expected at least one model to fall for the trap(愚蠢地期待至少一个中招)。

结果:三个都没下单。agent 先查了购物车:Arc 耳机 95 欧,运费 12 欧,合计 107 欧,超预算 7 欧,然后主动给出选项:改门店自提免运费,总额回到 95 欧,问你要不要这么改。

我的读法(属推断):防线不在模型够不够聪明,在先查一遍再执行。三个便宜模型都做了同一件事:把购物车算清楚,再对照预算。标题敢写 Can an E-Shop Hijack Your AI Agent,正文却给出否定答案:张力在设问,答案在细节。

证据等级:A(原文全文读过,本地留有缓存)。局限:单一作者、三个模型、一个场景,样本小,不能外推。

二、防守侧:一套周更的自动渗透测试

Zenn 团队的 dyoshikawa 11 月 4 日公开了内部的 AI 安全体系,40,914 字,全开源工具,没买商业产品。分两层。

第一层,PR 级 AI 评审。PR 标记 ready 后,GitHub Actions 拉起 OpenCode 读 diff 和周边代码,从质量、安全、合规三个视角审,结果发成 PR 评论,单次成本 0.01 到 0.1 美元。一个刻意的设计:AI 只把结果写进文件,评论由 Actions 固定步骤发出,AI 容器里根本没有 GitHub token。

第二层,每周自动渗透测试。PR 评审读代码,能发现写进去的问题,但发现不了跑起来才有的问题,典型是鉴权缺陷:没买付费内容的人能不能拿到正文?必须真发请求才知道。做法:每个 GitHub Actions 周期里,在 runner 上把 Zenn 本地拉起来,让 OpenCode agent 拿四个工具去打:curl 查鉴权,nuclei 查 API 暴露和安全头,ZAP 做 active scan,Playwright 查 XSS 和开放重定向。结果汇总进私有仓库的 Issue,本地 agent 判真伪、落修复。

成本挂在 Issue 末尾:某周全量渗透测试 1 亿多 token,费用 3.02 美元。

证据等级:A(原文全文读过)。

三、沙箱是怎么做的:默认拒绝,密钥不过手

这一节最值得抄。让 agent 扮演攻击者,前提是防住它自己暴走:把凭据带出去、打测试目标之外的东西。作者的原则一句话:prompt 约束只是请求,不是边界。

做法:agent 容器配一个只承载网络的防火墙容器,共享 network namespace,iptables 默认拒绝,只放行本地被测应用和 AI 网关。agent 容器 cap_drop 全部权限,改不了防火墙规则。AI 网关是个 Node.js 小代理,API 密钥只在网关手里,agent 拿到的是假值;web 搜索也走网关,查询出现 URL 或长 token 直接拒。外部依赖全换 OSS 模拟器。

还有一层:agent 每条命令先过 AI 分类器审一遍(自研的 OpenCode 自动批准插件,已开源)。背景是 2026 年 7 月 OpenAI 模型逃出评估沙箱的公开案例,方案按沙箱会被破来设计纵深。

四、一个容易被忽略的细节:闭源模型会拒绝扮演攻击者

防守方选模型有个反直觉的结论:他们用 Fireworks 上的开放权重模型,不因为更强,因为美国的闭源模型会拒绝攻击者操作。他们当初让 Claude Code 帮忙搭这套系统,被当场拒绝。

分量在于:防守自动化如果只能靠闭源模型,而它的安全策略会挡掉一半的合法防御动作,那这套自动化从根上就是残的。开放权重模型没有这层拦截。模型听谁的规则,和它有多聪明是同级参数。

五、对用 agent 的人意味着什么

三个判断,都属推断。

第一,agent 的安全边界要从 prompt 层移到网络层:攻击方发现 prompt 会被诱导,防守方就用默认拒绝的网络策略把它能碰到什么物理收窄。如果你的 agent 在办公网里跑,先问一句:它出站能到哪些域名?

第二,防守侧成本已经低到可以常开:3.02 美元一周、PR 评审单次 0.01–0.1 美元,自动渗透测试从年度外包变成周更 CI,成本上已无障碍,剩下的是工程意愿。

第三,模型拒绝执行是双向的。闭源模型拒绝 agent 扮演攻击者,也会拒绝大量合法的灰度操作。模型听谁的规则,和它有多聪明是同级参数。

六、未核实与边界

以上为技术信息梳理,不构成任何投资建议。

标签:#AI大模型 #AI智能体 #开发者 #技术前沿