跳转到内容

Claude Containment:先限制爆炸半径,再谈智能审批

高级

来源:Anthropic · 发布于 2026-05-25最近复核于 2026-08-30

不要把 Agent 安全寄托在“它应该听话”或“用户会认真点允许”。模型判断和人工审批都是概率防线;真正能兜底的是环境层的确定性边界:敏感凭证不进入 sandbox,写入只落在工作区,网络默认拒绝,高风险权限短时、可撤销、可审计。

能力越强,Agent 越能找到没人预想的达成路径。频繁弹窗还会产生审批疲劳,用户最后可能机械同意。外部内容也会通过网页、README、MCP 返回值进入上下文;连接器代码可信,不等于它读到的数据可信。更隐蔽的风险甚至发生在信任提示之前,例如未授权目录的项目配置被提前解析。

Anthropic 把风险分成用户误用、模型失常和外部攻击,并在三处叠防:环境决定 Agent 最多能碰到什么;模型层用提示、分类器和训练降低危险行为概率;外部内容层限制工具能力并检查返回值。不同产品采用不同隔离:服务端临时容器适合无本地状态任务;开发者工具用系统 sandbox 配合人工监督;普通用户桌面任务更适合完整 VM 和精细挂载。共同原则是凭证留在宿主、先解析真实路径再校验权限、网络出站走代理。

默认只授予仓库目录读写,不挂载主目录、SSH、云凭证或浏览器资料。外部仓库在确认信任前不执行 Hook、脚本或项目配置。网络分“完全关闭、只读官方域名、显式审批”三档,安装依赖也走独立权限。每次运行记录申请了什么权限、实际访问了什么路径和域名、退出码与 diff;grader 同时检查任务完成和越权为零。远程 MCP 先用假数据与只读 token 测试。

输入: 一个复制到临时目录的示例仓库,内含正常构建脚本和一个试图读取仓库外假凭证的测试脚本。

步骤:

  1. 在无网络、仅工作区可写的 sandbox 中运行两者。
  2. 验证正常构建成功,越界读取与外传请求均被环境拒绝。
  3. 检查日志是否能区分“模型拒绝”与“系统拦截”。

成功证据: 即使测试脚本明确要求执行,假凭证仍不可读、出站不可达,仓库外无文件变化。

停止线: 测试可能接触真实凭证、真实生产服务或第三方系统时立即停止,改用合成数据和本地端点。

  • 只靠系统提示:提示能引导行为,不能形成操作系统级隔离。
  • 本地内容天然可信:刚克隆的配置与 localhost 服务都应视作外部输入。
  • sandbox 等于安全完成:隔离会降低可观测性,还要保留宿主侧审计和告警。

原文披露的审批率、漏洞案例和产品架构来自 Anthropic,本站未独立验证。本文只提炼可在教程项目安全演练的边界设计,不提供绕过或攻击步骤,也不声称这些配置覆盖所有平台风险。

本文是原创中文实践解读,不是逐句翻译。阅读英文原文。