
传统沙箱回答的是“Agent能不能碰到这个工具”,AWS新发布的Strands Box则试图再追问一步:“它刚才做过什么,现在还该不该放行?”一个Agent可以在10分钟内成功发送三条进度消息,第四次请求被策略拒绝,其他日志检索仍可继续。这个例子把Agent安全从静态白名单推进到带历史和时间窗口的动作治理。
Strands Box把操作系统级隔离与Dogwood策略引擎叠在一起。隔离层先限定Agent在主机和网络上能到达的范围;策略层再对具体动作作允许或拒绝判断。关键变化是,多个执行点不再各自保留一套孤立规则,而是共享动作和响应历史,规则可以参考动作顺序、累计次数和时间间隔。
官方用值班Agent说明这种能力:前三次Slack消息返回成功后,10分钟内的第四次发送会被拒绝,并返回命中的规则编号和说明;读取日志或查看指标等其他已授权动作不受影响。规则统计的是成功响应,也可以改成统计请求尝试。企业因此能把“读取客户数据后禁止外发”“批准后30分钟内允许部署”或“相同写操作每小时最多一次”写成跨工具约束。
当前预览版在四处执行策略:网络出口、Python解释器、Shell解释器和MCP broker。无论文件读取来自Shell还是Python,都记作统一的文件事件;无论HTTP请求由curl还是脚本发起,策略都能按主机、端口、方法和路径判断。Shell执行删除目录时还会拆成逐文件决策,而不是只检查一段不透明的命令字符串。
网络出口网关承担了另一项重要工作:只有请求通过策略后,它才把真实凭据附到外发请求。Agent进程拿到的是占位符,真实密钥不进入环境变量或生成代码。当前支持Bearer、自定义Header、Basic、查询参数与AWS SigV4,这能降低提示注入后直接枚举密钥的风险,也让凭据轮换与Agent逻辑解耦。
配置由环境文件和策略文件分开描述,规则位于Agent harness之外,同一套配置可在不同Agent应用之间复用。它的价值不只是多一个确认弹窗,而是让执行效果在边界外部被观察和裁决,减少Agent通过换工具绕开单点权限提示的空间。
Strands Box目前仅支持macOS,并处于developer preview。Linux、更多操作系统、已部署Agent以及AgentCore、ECS和Kubernetes打包都还是后续方向。没有具名客户上线,也没有吞吐、额外延迟、误拦截率、逃逸测试、恢复时间或成本数据,因此不能把它描述成已经成熟的企业生产沙箱。
更值得注意的是,两种解释器和MCP broker运行在沙箱外部,由Agent通过本地套接字访问。这样便于把文件和网络效果转成策略事件,却扩大了可信计算基:解释器、broker、出口网关和策略引擎都要纳入补丁、最小权限与故障隔离。操作系统 containment 不能替代这些组件自身的安全验证。
另一个缺口来自环境文件中直接授权的路径。通过这些路径发生的访问受容器边界限制,却不会进入策略事件历史。如果上层harness用内置文件工具读取了敏感目录,后续“读过敏感文件就禁止外发”的时间规则可能看不到这一前置动作。试点必须列出哪些工具经过策略执行点、哪些只靠静态隔离,不能把“在沙箱里”误当成“已统一审计”。
Strands Box最有价值的部分,不是又多一种沙箱封装,而是把网络、代码解释器与MCP调用放进可共享历史的策略面。对于会连续运行、跨工具重试和调用外部系统的Agent,时间与顺序往往比单次动作名称更接近真实业务风险。
企业评估时应从一张执行路径图开始:逐项标记文件、Shell、Python、HTTP和MCP请求是否经过拦截点,凭据在哪里出现,拒绝后Agent如何降级,策略事件如何留存,策略引擎不可用时默认放行还是拒绝。随后用提示注入、重复重试、工具切换、长任务恢复与并发Agent进行红队测试,测量误拦截、延迟和审计完整率。
在macOS开发环境里,它已经提供一个值得验证的工程方向;在生产环境里,当前更适合做小范围安全试点,而不是直接替换既有容器、IAM、网络控制和人工审批。只有当每条执行路径都能被看见、解释和恢复,跨时间规则才会从漂亮示例变成可靠控制。
