执行沙箱
执行沙箱用可强制执行的隔离机制限制代码访问资源的范围,使生成代码或陌生文件的风险不轻易扩散到宿主。
理解与应用
执行沙箱是给代码提供受限运行环境的机制。它约束可以访问的文件、网络、进程和计算资源,用来运行生成脚本、解析陌生文件或测试插件。边界由操作系统、容器运行时、虚拟化等机制执行;仅仅换一个目录,或在提示里写“不要访问其他文件”,并没有建立隔离。
例如助手生成一个脚本,把用户提供的发票 CSV 汇总成报告。任务实际只需要读取这份 CSV、在输出目录写结果,并使用有限 CPU 和内存,不需要读取宿主的个人目录、访问任意网址或取得部署密钥。沙箱把输入挂为只读,单独提供可写输出位置,并限制网络与运行时长后,脚本的意外行为就更难影响任务之外的资源。
具体隔离技术仍有不同威胁模型。普通容器通常与宿主共享内核,挂入敏感目录或容器管理套接字也会扩大权限,不能因“放在容器里”就认定安全。配置完成后,需要用无害样本检查本该拒绝的路径和网络请求是否确实失败、资源上限是否生效。结束时只导出需要且检查过的产物,再清理临时状态;沙箱限制了运行过程,不会自动保证输出文件内容可信。
看看如何配置:发票汇总脚本需要怎样的运行范围
这是任务的隔离要求,不是可直接执行的容器配置。部署时需要把每一条映射到实际运行时设置,并在没有真实秘密和破坏性样本的条件下验证;要求写在纸上不等于边界已经生效。
以下为教学示意,未连接真实业务系统。
配置示意
输入:仅挂载 invoices.csv,只读。
输出:单独的 /output 目录,可写。
身份:非特权用户,不获得宿主凭据。
网络:本任务不需要联网,禁用网络出口。
资源:限定 CPU、内存、进程数与最长运行时间。
结束处理:检查并导出汇总报告,销毁任务临时状态。配置对应的行为
应通过:读取指定 CSV、向输出目录写报告。 应拒绝:读取未挂载的宿主文件、访问外网、超过资源限制持续运行。
常见误区
- 工作目录、提示词约束与真正的系统隔离是不同层次。
- 把宿主敏感目录或管理套接字挂进容器,会大幅扩大代码可触及的范围。
- 沙箱运行成功不代表生成文件无风险,导出产物仍需检查。
前置与延伸
建议先读
相关概念
参考与版本
Apollo 原创讲解与教学示例。参考资料用于核对技术定义;核验日不代表资料的发布日期。
- Docker Engine security ↗
核对内核隔离、权限与守护进程的安全边界;容器默认配置不自动满足不可信代码隔离需求。 · 核验:2026-10-10
- gVisor 官方文档 ↗
核对应用内核隔离的定位与限制;配置检查算例不启动容器,也不构成真实隔离证明。 · 核验:2026-10-10