一个代码 Agent 需要运行用户项目里的命令,你会怎样设计沙箱,防止恶意仓库读取主机秘密或破坏环境?
考察说明
考查不可信代码执行的隔离、资源限制和产物控制能力。
回答思路
- 每个任务使用短生命周期隔离环境,默认无主机目录、云凭据和其他租户数据访问,结束后销毁环境。
- 文件系统只挂载必要工作区并区分只读与可写路径,禁止访问宿主套接字、设备和敏感环境变量。
- 网络默认关闭或采用明确域名白名单,依赖下载通过受控代理记录,避免代码任意外传仓库内容。
- 限制 CPU、内存、磁盘、进程数和执行时间,对高风险命令与权限提升直接拒绝或要求人工批准。
- 输出文件经过大小、类型和恶意内容检查后才能带出沙箱,并用逃逸、资源耗尽和数据外传案例持续测试。