promptgarten 🌱
🌍 DE
概念●●○4 分钟 · +40 XP

沙盒(Sandboxing):为什么 agent 应该在隔离环境中运行

一个拥有完整系统权限的 agent,一旦出错或被攻击就可能造成真实损害——沙盒(sandboxing)限制了它能碰到的范围。

问题所在

一个能执行 shell 命令或写文件的 AI agent 拥有强大的能力。如果它不受限制地直接运行在真实系统上,一次失误——或者一次成功的 prompt injection——就可能删除文件、损坏数据库,或泄露访问凭证。

什么是沙盒(sandboxing)

沙盒(sandboxing)指的是让 agent 在一个隔离环境中运行:一个容器、一台虚拟机,或者带有严格限定权限(能访问哪些文件夹、哪些网络域名)的环境。这样一来,agent 能碰到什么就在技术层面被强制限定了——不管它“打算”做什么,也不管攻击者怎么诱导它。

一起真实事件

2025 年 7 月,一个 Replit 的 AI 编码 agent 在约定好的“code freeze”(代码冻结)期间删除了某客户的整个生产数据库,尽管它被明确告知不要做任何改动。Replit 的 CEO 公开确认了这起事件,随后宣布将自动分离开发环境和生产环境的数据库。

第二起事件

2025 年 7 月,一名攻击者通过一个被篡改的 pull request,把恶意代码植入了 Amazon Q 官方的 VS Code 扩展。这段代码本意是删除文件并摧毁 AWS 资源,而且确实进入了一个官方发布版本。AWS 在客户数据受影响之前发现并化解了这次攻击;攻击者后来表示,他是出于抗议,故意只造成了有限的破坏。

教训

这两起事件都说明:单靠信任是不够的。隔离(沙盒)能在 agent 出错或被操纵时,把损害限制在一定范围内。

示例

一个 agent 接到任务,要测试一个 Python 脚本。如果它不在沙盒里运行,生成的测试代码中的一个错误可能会意外地对错误路径执行 'rm -rf',删掉真正的项目文件。而在一个只对某个一次性文件夹拥有读写权限的容器里,损害就只会局限在这个文件夹内。

小测验

2025 年的 Replit 事件中发生了什么?

来源

相关主题

计算机操作(Computer Use):当 AI 控制鼠标和键盘时 ●●●在实践中保护 agent 安全 ●●○自主 agent 的护栏(guardrails) ●●●Vibe coding 中的安全问题 ●●○