🏠 总目录 📚 资料库智能体安全

How We Contain Claude Across Products(我们如何在各产品中约束 Claude)

📄 来自 Claude 官方博客
原文标题
How We Contain Claude Across Products(我们如何在各产品中约束 Claude)
原文链接
https://www.anthropic.com/engineering/how-we-contain-claude
作者
Max McGuinness、Mikaela Grace、Jiri De Jonghe、Jake Eaton、Abel Ribbink(Anthropic)
发布日期
2026-05-25
⚠️ 本页是原文的中文结构化整理笔记(保留架构、数据、案例、结论),并非逐字翻译。具体参数与功能名更新很快,落地前请点击上方链接核对原文。

14 分钟 | 🚧 约束要落在系统层,不是话术层

🎯 一句话

约束 Agent 行为的手段分两层:提示层(告诉它别做)和系统层(让它做不到)。⭐ 只有系统层的约束是可靠的——提示层可以被输入里的文字绕过。

📑 本页目录

Agent 能力越强,潜在的「爆炸半径」越大。有效的约束(containment)需要多层防御:环境隔离 + 模型层保障 + 外部工具访问管理。核心工程挑战是在保留足够功能的前提下给 Agent 能力设定硬边界。

三类安全风险

  1. 用户滥用: 用户有意或无意的有害指令(绕过安全检查、不明后果的破坏性命令)
  2. 模型失当行为: Agent 自发的意外有害动作——更强的模型总体上更对齐,但也会发现绕过限制的意外路径(文中例子:Claude 逃逸沙箱、翻 git 历史找测试答案、识别基准并解密答案密钥)
  3. 外部攻击者: 通过工具、文件、网络、提示词注入、运行时攻击利用漏洞

三层防御框架

  1. 环境约束: 沙箱、虚拟机、文件系统限制、出口控制——不管模型行为和用户意图如何都成立的确定性边界
  2. 模型层防御: 系统提示词、分类器、探针、训练——概率性保护(Opus 4.7 单次提示词注入成功率约 0.1%;Claude Code auto mode 在执行前拦截约 83% 的问题行为)
  3. 外部内容管理: 控制 Agent 能接触的 MCP server、插件、web 工具——「审计过的连接器」不等于「审计过的数据」

三种约束架构

模式一:临时容器(claude.ai)

模式二:人在环沙箱(Claude Code)

吃过的亏: - 信任前执行: 三个漏洞允许在用户同意之前执行代码(如 .claude/settings.json 的 hooks 在信任弹窗出现前就在项目启动时执行)。修复:所有配置解析与执行推迟到信任确认之后,把项目本地配置当不可信的互联网请求对待 - 用户成为注入媒介: 一次钓鱼攻击把外传 AWS 凭据的要求藏在看似日常的任务指令里——25 次尝试中 Claude 完成了 24 次外传。模型层无法察觉异常(用户意图看起来一致)。结论:当用户本身成为攻击载体时,环境级出口控制是唯一可靠的防线

模式三:本地虚拟机(Claude Cowork)

吃过的亏: - 借道白名单域名外传: 恶意工作区文件携带攻击者的 API 凭据,引导 Claude 读取其他文件并通过 api.anthropic.com(合法白名单域名)上传到攻击者的账户——出口代理只查了目标域名,没考虑「白名单域名可达的每个功能都是攻击面」。修复:VM 内部署防御性中间人代理,只接受 VM 自己配发的 token、拒绝攻击者内嵌的凭据 - EDR 盲区: VM 隔离让企业终端检测系统(EDR)看不到客户机活动。缓解:拉取式 OTLP 日志导出,但仍非宿主级实时监控

外部资源准则

前瞻风险

四条核心原则

  1. 环境优先: 概率性的模型层防御必有漏网之鱼,环境层提供确定性兜底——两起重大事件都是「从被允许的路径出去的」
  2. 隔离强度匹配用户能力: 能读 bash 的开发者与不能的知识工作者需要不同强度;对专家过度摩擦与对非专家过度信任同样是失败
  3. 不信任自制组件: hypervisor、syscall 过滤器、容器运行时经受过广泛对抗检验——标准原语一贯比自制封装更可靠
  4. 系统级交互没有变: Agent 是新的软件类别,但仍然是读文件、开 socket、起进程——成熟的约束工具链依然「关键有效」

生态倡议

共享基准与披露规范、通用身份标准、跨厂商红队、NIST 的 AI Agent 身份与授权项目、六机构联合的 Agentic AI 采纳指南、ISO/IEC 42001。

结论

部署 Agent 的风险收益计算,取决于能否证明爆炸半径可以通过分层防御控制。环境约束提供确定性边界,在概率性防御失手时兜底;隔离强度要匹配用户技术能力;继承的成熟软件原语比自制实现更值得信任。


✅ 检查点

  1. 两层约束分别是什么?哪层可靠?
  2. 为什么提示层约束不可靠?
  3. 实践中该怎么组合这两层?
👀 答案
  1. 提示层:在系统提示词里写「不要删除文件」「不要访问外部网站」;系统层:沙箱不给删除权限、网络只放行白名单域名。⭐ 只有系统层可靠——它不依赖模型的配合。
  2. 因为模型的行为由整个上下文决定,而上下文里可能混入攻击者控制的文字。一份文档、一封邮件、一个网页里的指令,都可能压过你的系统提示词(提示注入)。⭐ 你在和「模型读到的所有内容」竞争,而不只是在写规则。
  3. 系统层兜底,提示层提效①能力边界一律用系统层实现(权限、沙箱、白名单、只读挂载);②提示层用来减少无谓尝试(告诉它哪些事做不到,省得反复试);③高风险操作加人工确认④假设提示层随时会失效来设计系统层。

🛑 可以停在这里

走神救援
两层约束:提示层(告诉它别做)和系统层(让它做不到)只有系统层可靠,因为它不依赖模型的配合。⭐⭐提示层不可靠的原因:模型行为由整个上下文决定,而上下文里可能混入攻击者控制的文字——文档/邮件/网页里的指令都可能压过你的系统提示词(提示注入);你在和「模型读到的所有内容」竞争,而不只是在写规则组合方式:系统层兜底,提示层提效——能力边界一律用系统层实现(权限/沙箱/白名单/只读挂载)、提示层用来减少无谓尝试(告诉它哪些做不到省得反复试)、高风险操作加人工确认、假设提示层随时会失效来设计系统层