沙箱
Codex 的代码执行安全机制
概述
沙箱是 Codex 执行代码的安全隔离环境,防止恶意代码对系统造成损害。
沙箱类型
1. 本地沙箱
在用户机器上运行:
- Docker 容器
- 虚拟机
- 系统隔离2. 云端沙箱
在云端环境运行:
- Codex Cloud
- 隔离执行环境
- 自动销毁安全隔离
文件系统隔离
沙箱内:
- 只能访问项目目录
- 无法访问系统文件
- 无法访问用户主目录网络隔离
网络访问:
- 默认禁止出站
- 白名单允许
- 监控所有流量进程隔离
进程限制:
- 无法启动新进程
- 资源使用限制
- 自动终止超时权限控制
默认权限
允许:
- 读取项目文件
- 写入项目文件
- 运行允许的命令禁止:
- 访问系统目录
- 安装系统包
- 修改系统配置权限提升
需要明确批准:
- 执行系统命令
- 访问网络
- 修改 Git 历史资源配置
资源限制
yaml
resources:
cpu: 2 核
memory: 4GB
disk: 10GB
timeout: 300 秒超时处理
当超过时限时:
1. 终止执行
2. 保存当前状态
3. 报告用户安全策略
命令白名单
json
{
"allowedCommands": [
"npm",
"npx",
"node",
"python",
"pip",
"git"
]
}危险操作检测
自动检测并阻止:
- rm -rf /
- DROP TABLE
- 加密货币挖矿
- 端口扫描审计和日志
执行日志
记录所有操作:
- 执行的命令
- 访问的文件
- 网络请求审计报告
定期生成报告:
- 资源使用
- 异常行为
- 安全事件使用场景
安全执行
"运行这个 Python 脚本"
→ 在沙箱中执行
→ 输出结果代码测试
"测试这个函数"
→ 沙箱中运行测试
→ 报告结果依赖安装
"安装项目依赖"
→ 沙箱中安装
→ 不影响系统限制
不支持的操作
- 图形界面应用
- 系统服务管理
- 硬件访问
- 长期运行进程
性能影响
- 启动时间增加
- I/O 性能降低
- 内存开销
最佳实践
1. 明确执行范围
好:"在项目目录中运行测试"
不好:"运行测试"(范围不明确)2. 避免危险命令
好:使用包管理器
不好:直接修改系统文件3. 监控资源使用
定期检查:
- 内存使用
- CPU 占用
- 磁盘空间故障排除
常见问题
| 问题 | 解决方案 |
|---|---|
| 沙箱启动失败 | 检查 Docker/依赖 |
| 执行超时 | 增加超时时间 |
| 资源不足 | 请求增加配额 |
禁用沙箱
⚠️ 仅在信任环境下禁用
codex --no-sandbox "命令"