Agent关进沙箱就安全了?测试更该盯住墙上的“洞”

举报
霍格沃兹测试学社 发表于 2026/10/16 15:58:04 2026/10/16
【摘要】 NVIDIA OpenShell通过内核级隔离与外部策略引擎实现文件、网络、凭据及策略四维管控,但“启用沙箱”不等于安全。验收须聚焦四大入口的正反测试、拒绝后行为追踪、热更新竞态、会话残留清理,并以可审计、可撤销、抗绕行作为核心验证标准。

摘要:NVIDIA OpenShell把策略执行放在Agent进程之外,并提供默认拒绝、路径限制、网络策略和审计能力。但“使用了沙箱”不是验收结论,测试要验证策略是否真的覆盖文件、凭据、网络与运行时变更。

image.png

NVIDIA官方文档把OpenShell描述为运行自主Agent的开源运行时:使用内核级隔离和声明式YAML策略,限制本地文件、凭据和外部网络;策略在Agent进程之外执行,模型输出不能直接改变执行器。官方列出的风险包括数据外泄和凭据窃取,并给出网络白名单与文件路径限制等控制。

这说明了技术机制,但不能直接推出“部署后安全”。测试团队仍要回答:白名单是否包含意外通配符;DNS、重定向和代理能否绕过;挂载目录有没有符号链接逃逸;临时凭据是否在日志或环境变量中泄露;策略热更新时是否存在短暂空窗。

按四个入口做验收

文件入口:允许读取项目目录,但禁止~/.ssh、云凭据和其他仓库;测试绝对路径、相对路径、符号链接和压缩包解包。

网络入口:只允许指定域名和端口;测试IP直连、子域名、HTTP跳转、DNS变化、IPv6和代理环境变量。

凭据入口:只向特定工具提供短期令牌;测试环境变量、命令输出、异常堆栈和Trace是否泄密。

策略入口:Agent不得自行修改策略;测试权限文件替换、竞态条件、会话复用和策略版本回滚。

入口 允许样本 必须拒绝 留存证据
文件 工作区源码 SSH密钥、其他项目 路径、进程、拒绝原因
网络 包仓库白名单 任意公网、元数据地址 目的地、策略版本
凭据 单任务临时令牌 长期密钥、跨任务复用 令牌范围、过期时间
策略 管理面热更新 Agent进程自行改写 操作者、差异、时间

拒绝之后还要测“会不会换路”

最容易被忽略的是行为层。Agent访问被拒后,可能尝试另一个工具、编码数据进查询参数、让浏览器代发请求,或把秘密写入可上传的构建产物。测试不能只看到一次DENY就结束,要继续观察后续轨迹。

验收规则可以写成:命中敏感路径后,该会话所有外发工具降级;发现未知凭据立即冻结;被拒绝的目标不得通过别名或重定向再次访问;会话结束销毁沙箱并使令牌失效;允许和拒绝动作都能按策略版本回放。

image.png

沙箱测试的独立结论是:安全不是“Agent被装进一个容器”,而是模型之外存在可执行、可拒绝、可审计、可撤销的边界,并且这些边界经得住绕行测试。下次项目评审看到“已使用沙箱”时,至少追问四个入口、拒绝后行为和销毁证据,而不是把产品名称当作验收结果。

从一个最小策略开始做正反测试

假设Agent只允许读取/workspace/project,访问包仓库并调用测试环境API。先写三条允许样本,再为每条写至少两个拒绝样本:允许读取源码,对应拒绝读取父目录和符号链接目标;允许访问包仓库,对应拒绝IP直连和重定向域名;允许使用短期测试令牌,对应拒绝读取长期云凭据。

策略测试不能只从Agent界面发起,也要直接运行底层命令,确认控制由运行时执行,而不是模型“自觉遵守”。若换一个Prompt就能绕过,控制仍在应用层。

关注组合权限,而不只看单个工具

单个工具看起来低风险,组合后可能形成外泄路径:文件读取工具拿到源码,压缩工具打包,浏览器工具上传;数据库只读工具获取客户数据,日志工具把内容写到可公开下载的位置。权限矩阵要检查工具组合产生的新能力。

可以做一张攻击路径表:目标数据在哪里;Agent可用哪些中间工具;每一步需要什么权限;哪一层负责阻断。测试时先确认单步允许,再验证整条高风险链路是否在关键节点被拒绝。

策略热更新要测竞态

生产中常需要紧急收紧外网或撤销某个工具。更新发出后,已运行会话何时生效;正在执行的请求是否中断;旧策略缓存多久;失败回滚会不会短暂恢复宽权限,这些都需要时间线证据。

设计一个长任务,让Agent持续访问允许域;中途删除该域名,记录最后一次成功与第一次拒绝。再模拟控制面不可用,确认系统选择“保持旧权限”还是“默认拒绝”,并与业务风险约定一致。

会话结束后的残留同样危险

沙箱销毁要验证进程、临时文件、网络连接、凭据和挂载全部释放。新会话不能读到上一个用户的缓存、Shell历史或模型记忆。测试可在会话A写入带唯一标记的文件和环境变量,再启动会话B搜索标记;任何命中都视为隔离失败。

日志与Trace需要保留审计,但不能因此保存明文秘密。验证销毁与审计两件事同时成立:运行环境消失,必要证据以脱敏、受控方式留存。

一张可直接复用的验收表

层 发布前必须回答
环境 默认断网吗?元数据地址不可达吗?会话结束自动销毁吗?
身份 是否临时凭据、最小范围、来源可追?陌生凭据会触发冻结吗?
行为 公网暴露、外部账户和拒绝后绕行是否禁止?写操作是否审批?
证据 成功与拒绝是否都留痕?策略版本可查?事故能否冻结回放?

把这张表放进每个高权限Agent的启动评审。团队不需要等到发生网络安全事件,才第一次讨论“测试到底被允许做到什么”。

本文部分内容参考了霍格沃兹测试开发学社整理的相关技术资料,主要涉及软件测试、自动化测试、测试开发及 AI 测试等内容,侧重测试实践、工具应用与工程经验整理。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。