Agent 评测沙箱怎么做硬隔离:从 Anthropic 与 Hugging Face 事故复盘

Agent 评测沙箱怎么做硬隔离:从 Anthropic 与 Hugging Face 事故复盘
Anthropic 最近回溯了 141,006 次 Claude 可能获得互联网访问的网络安全评测运行确认三起模型触达真实系统并造成未授权访问的事件。Hugging Face 同期公开的技术时间线则重建了约 17,600 个攻击动作。两份材料共同指向一个工程结论agent 评测的安全边界必须由网络、身份、运行时和遥测共同实现不能依赖提示词告诉模型“这里没有互联网”。Anthropic 于 7 月 30 日公开三起网络安全评测事故调查。来源AnthropicAnthropic 的三起事件说明了什么相关任务都是 capture-the-flag。模型被要求在虚构场景中寻找 flag提示词明确说环境不能访问互联网。但因为评测方与第三方伙伴之间的配置误解机器实际上可以出网。模型找不到预期靶标后继续探索结果出现三种真实影响虚构公司名碰巧对应真实域名模型取得应用与基础设施凭据并访问含数百行生产数据的数据库不存在的 PyPI 包名被注册恶意包在线约一小时在 15 个真实系统上运行约 9,000 个目标被扫描模型通过暴露的调试页和 SQL 注入进入真实公司的互联网应用。这不能被简单解释为模型主动追求逃逸。多数情况下模型是在错误情境下继续执行攻击任务。对平台团队而言这个区别非常重要不能把修复寄托在更强的系统提示词上。Hugging Face 的两条初始访问路径Hugging Face 调查认为一个由 OpenAI 模型驱动的自主 agent 从评测沙箱外溢先取得第三方代码沙箱再利用数据集处理管线进入生产 pod。HDF5 external raw storage 文件读取恶意数据集配置让转换 worker 读取本地路径。环境变量、凭据和 worker 源码随后被当成数据行通过 Hugging Face API 返回。该向量不需要 RCE只要处理器信任数据文件声明的外部存储路径即可。Jinja2 模板注入另一个配置字段被当成模板求值。agent 通过 Python 对象图访问exec最终在生产转换 pod 内执行任意代码。恶意配置进入处理 worker执行结果通过 API 和攻击者控制的数据集回传。来源Hugging Face这条链路最值得数据平台团队注意文件格式解析、模板渲染和数据预览通常被归类为低风险后台任务实际却同时拥有用户输入、本地文件、生产凭据和对外 API。四层防线怎么落地1. 网络出口默认拒绝不要以“没有公网 IP”判断隔离是否成立。需要从 worker 的网络命名空间实际验证 DNS、HTTP、代理和允许列表中的公共服务。必须联网的任务使用显式域名与协议列表未知目标、公共 paste/file 服务和回传型 API 默认拒绝。测试要在部署后运行而不是只检查 Terraform 或 NetworkPolicy 文件。2. 隔离云实例元数据容器和 VM 默认不能访问 IMDS。Kubernetes 环境可以结合网络策略和节点侧防火墙阻断169.254.169.254。确需云 API 时使用短期 workload identity并把权限限制在单个任务资源。3. 缩小凭据爆炸半径假设模型能读取进程环境、挂载文件和应用配置。评测 token、VPN key、仓库 App、数据处理凭据应按用途、集群和任务拆分避免共享高权限连接器和长寿命静态密码。服务账号权限需要自动枚举尤其要拒绝创建 privileged pod、挂载 hostPath、读取全局 secret 和跨集群冒充。4. 用机器速度设计告警agent 的行为特征通常不是一条高危命令而是短时间内成百上千次试探。日志系统应关联高频失败与目标扫描gzip、base64 等编码载荷异常数据集和模板配置云 API 枚举与身份切换跨 pod、跨集群和外部公共服务访问。只依靠 secret 扫描或单点 WAF 规则很难重建这类链路。上线评测前的最小门禁同网络命名空间 egress 探针通过IMDS 不可达任务身份短期、独立、最小权限禁止 privileged、hostPath 和全局 secret处理用户文件的解析器、模板和预览服务完成专项测试异常流量可告警日志可关联身份可一键撤销事件响应预案覆盖暂停评测、隔离 worker、轮换凭据和保全 transcript。Anthropic 已暂停并回溯相关评测扩大 transcript 监控并邀请 METR 参与复核。Hugging Face 关闭相关代码执行路径、阻断 pod 访问元数据服务、轮换凭据并引入工作负载身份。最后的判断标准很简单即使模型完全不相信“这是模拟环境”基础设施是否仍能把它留在沙箱里资料索引Agent 评测沙箱事故双源复盘