amazing-sandbox
通过 Docker 等容器技术为 AI 编程工具提供跨平台隔离环境,防止恶意依赖包和误操作访问敏感文
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过 Docker 等容器技术为 AI 编程工具提供跨平台隔离环境,防止恶意依赖包和误操作访问敏感文
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有想过,当你对着 AI 编程助手说"帮我优化这个项目"时,它实际上在做什么?它可能会运行 rm -rf /*,可能会安装来历不明的 npm 包,甚至可能把你的 SSH 密钥打包发送给第三方服务器。2024年底,Kaspersky 就曝光过针对 Cursor 开发者的恶意包攻击,同年 12 月 Google 的 AI 工具也发生了误删整个 D 盘的著名事故。
Amazing Sandbox(后简称 AS)就是为解决这个痛点而生的安全工具。它的核心理念很简单:给 AI 编程工具包上一层隔离壳,让它们只能访问你允许的目录、只能连接你允许的网络,恶意操作?想都别想。
以 Claude Code、OpenAI Codex、Google Gemini CLI 为代表的 AI 编程助手近年来大放异彩,开发者用自然语言就能完成代码编写、调试、部署等复杂任务。但这些工具本质上运行着来自 AI 模型的指令——而模型的行为并非完全可控。当它们调用 pip install 安装依赖、运行 cargo build 编译 Rust 项目时,实际上是在操作系统层面执行任意命令。
传统的安全边界(用户权限、防火墙)对 AI 助手形同虚设:它们以当前用户身份运行,默认拥有完整的磁盘读写和网络访问权限。AI 模型被诱导或误导执行恶意操作的门槛,远比人们想象的要低。2024年起,针对 AI 编程工具供应链的攻击开始批量出现,安全问题从"理论风险"变成了"现实威胁"。
AS 采用了分层沙箱策略,根据不同操作系统选择最优隔离方案:
对于大多数开发者而言,Docker 容器是最透明、最可靠的选择——跨平台一致性好,隔离强度也足够。需要注意的是,项目 FAQ 中明确指出 Docker 不是完美的安全边界,攻击需要同时突破容器和利用宿主机漏洞才能实现,实际风险极低。
项目核心代码在 src/asb/internal/cmdrunner/ 目录,入口为 cmd/asb/root_cmd.go,使用 Cobra(v1.10.2)构建 CLI 框架,Docker 通信依赖 fsouza/go-dockerclient(v1.13.2),日志使用 rs/zerolog。整体代码量适中(Go 1.26.5),无外部 AI/ML 依赖。
AS 的设计哲学是零配置开箱即用,同时提供丰富参数化选项,这让它对新手友好、对专业用户足够灵活。
多语言运行时支持是 AS 的一大亮点。它不仅隔离命令执行,还代理了完整的语言生态:
| 语言 | 代理命令 | 特殊能力 |
|---|---|---|
| Python | pip、poetry、uv、uvx | 支持 uvx 直接运行远程工具 |
| JavaScript | npm、npx、yarn、pnpm、bun | npm 生态全覆盖 |
| Go | go-exec | go run 类场景 |
| Rust | cargo、cargo-exec | 预编译工具免重装 |
| Ruby | gem、gem-exec | RubyGems 支持 |
| Haskell | cabal、cabal-exec | Cabal 构建系统 |
| Zig | zig | Zig 工具链 |
磁盘访问控制是 AS 的安全核心:默认给予当前目录读写权限 + 显式引用文件,其他目录一概禁止。你可以通过 -r 参数将目录设为只读、通过 -x 完全禁用磁盘访问、通过 -w 显式指定读写目录。这对于让 AI 助手只操作项目代码、无法触及 ~/.ssh 或 ~/.aws/credentials 至关重要。
网络访问控制通过 -n 参数实现静默断网,特别适合运行 linter、静态分析工具等不需要联网的场景。官方示例中,asb -n npx htmlhint 就是典型的零网络场景——lint 只读文件,何必给网络权限?
AI 编程助手代理配置是 AS 的贴心之举。Claude Code、OpenAI Codex 和 Google Gemini CLI 的认证信息、配置文件通常散落在 $HOME 目录各处理解,AS 自动将常用配置路径映射到沙箱内部,用户无需重新登录即可在沙箱内使用这些工具。
安装方式极为简单(Go 开发者专属):
go install github.com/ashishb/amazing-sandbox/src/asb/cmd/asb@latest
非 Go 用户可直接从 Releases 页面 下载对应平台的二进制,macOS/Linux 用户给予执行权限即可。
第一个沙箱命令只需要:
asb yarn install # 在沙箱内运行 yarn,默认允许当前目录读写
asb -n npx htmlhint # 离线模式运行 HTML linter
asb -x cargo build # 完全禁用磁盘访问的 Rust 编译
作者推荐的长期使用方式是创建 ~/.local/bin 目录,将常用的沙箱命令包装成独立脚本并加入 PATH,实现对特定工具的永久沙箱化。
项目的 CI pipeline 相当完善:
需要正视的几个问题:
--mode=native 备选,但非 Docker 模式功能受限)AS 的出现折射出一个更大的趋势:AI 编程工具的民主化与安全需求的同步增长。随着 AI 代码助手从极客玩具变成日均工具,配套的安全基础设施正在成为刚需。这个领域目前有 Firejail、Bubblewrap、Sandboxie 等传统方案,也有 AI-Jail 等 AI 专用工具,AS 通过 Docker 的跨平台一致性找到了自己的差异化定位。
截至目前该项目拥有 156 Stars,虽然体量不大,但解决的问题非常具体且真实。随着 AI 编程助手普及率进一步提升,类似的安全工具需求只会越来越大。