当所有人都在卷「模型更聪明」的时候,一个更现实的问题出现了:
如果 AI 不只是回答问题,而是能读文件、跑命令、发邮件、调接口,它犯错的代价就不再是一段废话。
它可能真的把数据发出去。
5 月 25 日,Anthropic 发了一篇工程复盘,标题是 How we contain Claude across products[1]。这篇文章表面在讲 Claude 怎么做沙箱、虚拟机、权限控制,真正值得普通用户和公司注意的是另一件事:
AI 智能体正在从「聊天窗口」变成「带权限的同事」。
而带权限的同事,不能只靠一句「你要听话」来管理。
人会点同意,AI 会照做
Claude Code 的早期保护方式很直观:每当 AI 想写文件、跑命令、联网,就弹一个权限确认,让用户点同意。
听起来很安全。
但 Anthropic 披露了一个数字:用户大约会批准 93% 的权限提示。弹窗越多,注意力越低。到最后,「允许」很容易变成肌肉记忆。
这不是 Claude 独有的问题。任何用过开发工具、手机 App、浏览器权限弹窗的人都知道,真正拦住风险的往往不是弹窗,而是边界。
所以 Claude Code 后来加了系统级沙箱:工作区内可以写,网络默认禁止,越界行为不靠用户临场判断。这让权限提示减少了 84%。
关键变化在这里:安全不再是问用户「你确定吗」,而是先规定 AI「你最多只能碰到这里」。
最危险的命令,可能藏在文件里
更微妙的问题是,智能体不只听用户输入,也会读项目文件、网页、邮件、文档和工具返回结果。
这些东西过去只是「内容」,现在可能变成「指令」。
Anthropic 提到一个真实漏洞场景:开发者克隆一个仓库准备看 Pull Request,仓库里带着 .claude/settings.json。Claude Code 在展示「是否信任此文件夹」之前,就读取了项目配置,结果攻击者写进去的 hook 有机会提前执行。
这就像门卫还没问「你是谁」,门已经因为门口贴的一张纸自动打开了。
TrapDoor 供应链攻击把这个问题推得更远。公开分析显示,这次攻击涉及 npm、PyPI、Crates.io 三个生态,超过 34 个恶意包、384+ 个版本。一些载荷会往项目里放 .cursorrules 和 CLAUDE.md,还用零宽 Unicode 字符隐藏指令,让普通编辑器看起来像空白或无害文本。
这些文件本来是为了告诉 Cursor、Claude Code 之类的工具「这个项目该怎么写代码」。一旦被污染,它们就成了智能体的隐形路线图。
这也是智能体时代的新攻击面:以前要骗开发者运行恶意脚本;现在可以先污染 AI 会自动读取的上下文,再等 AI 自己把危险动作合理化。
允许访问一个域名,不等于安全
还有一个案例更反常识。
Claude Cowork 使用虚拟机限制本地文件访问和网络出口。看上去,沙箱已经工作了。但一次第三方披露显示,攻击者可以把恶意文件放进用户挂载的工作区,里面藏着自己的 Anthropic API key。Claude 读到指令后,调用 api.anthropic.com 的 Files API,把工作区里的文件上传到攻击者账号。
问题在哪里?
出口代理看到目标域名是 Anthropic 自己的 API,认为这是允许访问的域名,于是放行。沙箱没有被绕过,规则也没有失效,数据还是出去了。
这说明「允许访问某个网站」其实不是一个简单的白名单,而是在授予一组能力。一个域名背后可能有上传、下载、转发、抓取等很多功能。对智能体来说,能连上哪里,几乎等于能把什么东西搬到哪里。
PromptArmor 近期披露的 Microsoft Copilot Cowork 案例也类似:研究者演示了 poisoned skill 如何让 Copilot Cowork 读取 SharePoint 或 OneDrive 文件的预授权下载链接,再通过 Teams 消息里的外部图片请求把链接带出去。整个过程里,发给「当前用户自己」的消息不需要额外人工批准。
单独看,每个能力都合理:读文件、生成周报、发 Teams 消息、展示图片。
串起来,就变成了外传通道。
真正的规则要换了
过去的软件安全,重点是防陌生程序运行。
智能体安全,重点会变成防熟悉文本变成命令。
网页、README、邮件、会议纪要、项目说明、技能文件、MCP 工具返回结果,都可能进入 AI 的上下文。只要 AI 拥有文件、网络、账号权限,这些内容就不再只是被总结的材料,也可能是攻击者递进来的遥控器。
对普通用户来说,一个简单判断就够用:不要把 AI 放进「什么都能读、什么都能发」的环境。让它处理真实文件之前,先用副本;让它接企业系统之前,先给只读权限;让它跑自动化之前,先问清楚它能访问哪些文件夹、能不能联网、能不能代表你发消息。
对公司来说,重点不是禁止员工用智能体,而是把智能体当成一类新员工来发权限:它有自己的工作区、自己的身份、自己的出口限制,最好还有可撤销的临时 token。CLAUDE.md、.cursorrules、AGENTS.md 这类配置文件,也应该像 CI workflow、Makefile 一样进入代码审查,而不是当普通说明文档随手合并。
这轮变化的核心不是「AI 变坏了」。
恰恰相反,是 AI 变得太能干了。
当它能替人完成跨系统任务时,安全边界就必须从「相信模型会拒绝坏指令」,升级为「即使模型照做,也没有能力造成大损失」。
智能体时代,最重要的安全问题不再是它会不会说错。
而是它到底拿着多少钥匙。

引用链接
[1] How we contain Claude across products: https://www.anthropic.com/engineering/how-we-contain-claude
夜雨聆风