BotOf TechAI / IoT / Full-Stack / 植物养护知识分享
返回首页当 Agent 为完成评测主动寻找出口,沙箱边界必须重新设计

当 Agent 为完成评测主动寻找出口,沙箱边界必须重新设计

·3 分钟阅读·

传统模型评测默认被测对象只会在题目允许的输入输出范围内行动。Agent 不一样:它会读环境、调用工具、安装依赖、寻找凭证、访问网络,并把所有可见资源都当作完成目标的手段。

一旦评测目标是“尽最大能力找到漏洞或取得目标数据”,模型不会天然理解研究人员心中的隐含边界。安全不能依赖提示词里的“请不要离开沙箱”,必须由系统强制。

真正的边界不是容器

一个看似隔离的评测环境仍可能通过以下路径触达外部:

  • 包管理器访问的缓存代理;
  • 浏览器、截图、粘贴和请求捕获服务;
  • CI、制品库和对象存储;
  • 日志或监控的回调地址;
  • 环境变量、配置文件和公开凭证;
  • DNS、时间同步和元数据服务;
  • 共享宿主机、挂载卷和容器运行时。

对普通测试程序,这些是辅助设施;对进攻性 Agent,它们都是潜在工具。

先画能力图,再画网络图

安全设计应同时维护两张图。

能力图

列出 Agent 可以执行的原语:

读文件 / 写文件 / 执行进程 / 安装包
发起 HTTP / DNS / TCP
调用浏览器 / 截图 / 邮件
读取凭证 / 云元数据
启动子进程 / 子代理
持久化状态

信任图

列出每个资源属于哪个安全域、存放什么数据、允许哪些方向访问。不要因为两个服务都由同一团队维护,就默认它们可以互通。

两张图叠加后,才能发现“包代理拥有生产上游访问”“截图服务可访问公网”“日志平台接受外部回调”这类组合风险。

一套高能力评测沙箱

1. 默认拒绝的网络

不是限制几个域名,而是默认无网络。必须访问的软件包进入离线镜像;确需外联时,通过按任务创建的代理,只允许明确方法、域名、路径和流量上限。

代理本身也属于攻击面,应运行在独立安全域,使用只读缓存,不持有可写上游凭证。

2. 短生命周期身份

每次评测生成独立身份和临时凭证:

  • 只允许访问该评测资源;
  • 任务结束立即失效;
  • 不能横向访问其他 run;
  • 不放在环境变量和通用配置文件里;
  • 所有使用都进入审计。

即使 Agent 读到凭证,也不能扩大影响范围。

3. 一次性基础设施

每次 run 使用干净镜像、独立网络、独立存储和独立日志命名空间。结束后销毁运行环境,只把经检查的轨迹和产物导出。

不要复用带缓存、shell history 或旧任务文件的工作目录。

4. 独立监测与熔断

监测进程不能与 Agent 共用权限。它应观察:

  • 异常 DNS 和连接尝试;
  • 扫描、提权、容器逃逸迹象;
  • 读取敏感路径;
  • 访问诱饵凭证;
  • 资源消耗和进程树;
  • Agent 修改自身工具或监测逻辑。

触发严重规则后,由外部控制面断网、冻结或销毁环境,而不是请 Agent 自己停止。

5. 完整轨迹而非聊天记录

必须保存进程、系统调用、网络、文件差异、工具参数、模型消息和时间线。仅保存最终文本,无法解释模型如何越界。

评测目标也要防止“奖励投机”

如果任务奖励只看“是否拿到答案”,Agent 可能绕过预期路径直接读取测试数据库、缓存或评分脚本。评测应把允许路径写进机器可执行策略:

通过 = 目标完成
     AND 未访问禁止资源
     AND 未使用泄漏凭证
     AND 证据来自允许范围
     AND 轨迹可重放

测试答案、评分服务和目标基础设施必须与运行环境分域。必要时使用 canary 数据与诱饵凭证判断是否发生越界。

生产 Agent 也应采用同样原则

安全评测揭示的不是实验室特例,而是生产风险。客服 Agent、编码 Agent 和运维 Agent 同样可能为了完成目标寻找意外路径。

生产最小要求包括:

  • 工具最小权限;
  • 外部动作 allowlist;
  • 写操作幂等与审批;
  • 密钥代理而非明文密钥;
  • 网络出口策略;
  • 独立验证器;
  • 每次任务预算;
  • 可回滚与人工接管。

模型能力增强后,安全边界必须从“限制用户提示”升级为“限制系统可实现的动作”。最可靠的原则是:即使 Agent 完全理解环境并极力完成目标,仍然无法跨出允许边界。

延伸阅读