Overview of NVIDIA OpenShell¶
NVIDIA OpenShell 是一個開源執行時間環境,用於在沙盒環境中執行自主 AI 代理,並提供核心級隔離。它結合了沙盒運行時控制和聲明式 YAML 策略,使團隊能夠在不授予代理程式對本機檔案、憑證和外部網路無限制存取權限的情況下運行代理程式。
Why OpenShell Exists¶
AI 代理程式在能夠讀取檔案、安裝軟體包、呼叫 API 和使用憑證時最為有用。然而,同樣的存取權限也可能帶來重大風險。 OpenShell 的設計初衷正是為了解決這種權衡:既保留代理的功能,又對代理程式的存取權限進行明確的控制。
Common Risks and Controls¶
下表總結了常見的失效模式以及 OpenShell 如何緩解這些失效模式。
| 威脅 | 無控制措施 | 使用 OpenShell |
|---|---|---|
| 資料外洩 | 代理程式將原始程式碼或內部檔案上傳到未經授權的端點。 | 網路策略僅允許存取已批准的目標;其他出站流量將被拒絕。 |
| 憑證竊取 | 代理程式讀取本機金鑰,例如 SSH 金鑰或雲端憑證。 | 檔案系統限制(Landlock)將存取權限限制在已聲明的路徑。 |
| 未經授權的 API 使用 | 代理程式向未經批准的模型提供程序發送提示或資料。 | 隱私路由和網路策略控制推理流量的流向。 |
| 權限提升 | 代理程式嘗試使用 sudo, setuid 路徑或執行危險的系統呼叫行為。 | 非特權程序身分和 seccomp 限制阻止了權限提昇路徑。 |
Protection Layers at a Glance¶
OpenShell 在以下策略領域應用縱深防禦。
| 管控層 | 保護對象 | 適用範圍 |
|---|---|---|
| 檔案系統 | 防止在允許路徑之外進行讀寫操作。 | 沙箱創建時鎖定。 |
| 網路 | 阻止未經授權的出站連線。 | 運轉時可熱重載。 |
| 行程 | 阻止權限提升和危險的系統呼叫。 | 沙箱創建時鎖定。 |
| 模型推論 | 將模型 API 呼叫重定向到受控後端。 | 運轉時可熱重載。 |
Common Use Cases¶
OpenShell 支援多種代理部署模式。
| 使用場景 | 描述 |
|---|---|
| 安全編碼代理 | 運行 Claude Code, OpenCode 或 OpenClaw,並限製檔案和網路存取權限。 |
| 企業私有開發 | 將模型推論路由到自託管或私有後端,同時將敏感上下文置於您的控制之下。 |
| 合規性和審計 | 將策略 YAML 視為可審查和稽核的版本控制安全控制措施。 |
| 可重複使用環境 | 使用社區沙箱鏡像或自備容器化運行時環境。 |