OpenShell
AI Agent 安全沙箱运行时,通过容器隔离 + 声明式 YAML 策略,为 AI 编程助手装上安
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI Agent 安全沙箱运行时,通过容器隔离 + 声明式 YAML 策略,为 AI 编程助手装上安
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你给 AI 编程助手开通了公司服务器的 SSH 权限,它却顺手把数据库导出上传到了某个云盘——这种事,OpenShell 从架构层面就给你堵死了。
随着 Claude、OpenCode、Codex 等 AI 编程工具越来越强大,开发者开始习惯让 AI 直接操作真实环境——读写文件、执行命令、调用 API。可问题是:AI 没有边界意识。一个 prompt injection 攻击,或者模型幻觉产生的错误指令,都可能让敏感数据「逃逸」。
NVIDIA 敏锐地捕捉到了这个痛点,于 2025 年推出了 OpenShell——一个专注于 AI Agent 安全沙箱运行时的开源项目。它的核心使命很简单:让 AI 能干活,但活在一个严格受控的笼子里。
OpenShell 的安全模型采用了「纵深防御」策略,从四个维度锁定 AI Agent 的行为边界:
第一层:文件系统隔离
每个 AI Agent 运行在独立的沙箱容器中,只能访问预先声明的路径。未经授权的文件读写会被内核级别直接拒绝,AI 尝试 cat /etc/passwd 这样的操作在沙箱内会直接报错。文件系统策略在沙箱创建时锁定,不可热更新——这是静态边界。
第二层:网络访问控制(热加载)
这是 OpenShell 最有特色的设计。新建沙箱默认禁止所有出站网络连接,AI 什么网站都访问不了。开发者通过声明式 YAML 策略文件,按 HTTP 方法和路径粒度逐步开放:
- match: api.github.com
methods: [GET]
paths: [/zen, /repos/*]
如上配置后,AI 只能读取 GitHub 的公共 API 数据,写操作(POST/PUT/DELETE)依然被 L7 代理拦截。网络策略支持运行时热加载,无需重启沙箱——改完 YAML,openshell policy set 生效。
第三层:进程与系统调用限制
禁止危险系统调用(如 ptrace、mount)和权限提升操作。AI Agent 只能执行白名单内的二进制工具,无法提权或逃逸到宿主机。
第四层:隐私感知推理路由
当 AI Agent 需要调用 LLM API(如 Claude)时,OpenShell 的隐私路由器会拦截请求,剥离用户环境中的凭证,替换为受控的后端凭证。这意味着即使用户在 prompt 中泄漏了 API key,也不会真正泄露出去。
OpenShell 的核心由 Rust 实现,追求性能和内存安全:
| 组件 | 技术 | 说明 |
|---|---|---|
| CLI 工具 | Rust (Cargo) | openshell 命令行,跨平台二进制 |
| Gateway | Rust + gRPC (tonic) | 控制平面,管理沙箱生命周期 |
| Python SDK | maturin bindings | uv pip install openshell,Python 优先 |
| 策略引擎 | Rust | 拦截器,Enforce filesystem/network/process |
| 隐私路由器 | Rust | LLM API 请求拦截与重路由 |
| 安装脚本 | Shell (POSIX) | `curl ... |
沙箱运行时默认内置工具集:Agent(Claude/OpenCode/Codex/Copilot)、语言运行时(Python 3.14、Node 22)、开发工具(git/gh/vim)、网络工具(curl/dig/ping)。开箱即用,无需额外配置。
推荐方式:install.sh 一键安装
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
脚本自动识别 OS 和架构:Linux 发行版安装 Debian/RPM 包,macOS Apple Silicon 通过 Homebrew 安装并自动启动本地 Gateway。
容器化部署
Gateway 提供多架构 Dockerfile,基于 distroless/cc-debian13 镜像,攻击面积极小:
# 构建 Gateway Docker 镜像
./scripts/docker-build-image.sh gateway
Kubernetes 部署(实验性)
helm install openshell oci://ghcr.io/nvidia/openshell/helm-chart
Helm Chart 仍在活跃开发中,有 Breaking Changes 风险,企业级生产使用需谨慎。
GPU 支持(实验性)
通过 --gpu 参数可将宿主机 NVIDIA GPU 透传给沙箱,用于本地推理或微调。依赖 CDI(Container Device Interface),无 NVIDIA 驱动则不可用。
AI Agent 需要各种 API 密钥和凭证来工作。OpenShell 用 Provider 机制统一管理:
openshell provider create 命令可手动注册其他服务的凭证这解决了 AI 编程工具最头疼的凭证管理问题——不用把 key 写在代码里,也不用担心被 AI 意外泄露。
OpenShell 目前处于 Alpha 阶段,官方明确表示仅支持「单人模式」:一个开发者,一个环境,一个 Gateway。企业级多租户部署仍在路线图上。
主要局限:
OpenShell 代表了 AI 安全领域的一个重要方向:从「信任 AI」转向「强制约束 AI」。在大模型能力越来越强、prompt injection 攻击越来越普遍的背景下,给 AI Agent 构建可信执行环境的需求会持续增长。
NVIDIA 凭借其在 GPU 计算和 AI 软件栈上的积累切入这个赛道,既是防守(保护 NVIDIA AI 服务的用户数据),也是进攻(扩展 OpenAI Claude API 等竞品无法提供的安全能力)。
如果你正在或计划在生产环境中大规模使用 AI 编程工具,OpenShell 值得密切关注——即使现在还不够成熟,它解决的是一个真实存在的、随着 AI 普及会越来越严峻的安全问题。