文档导航
文档 / Sandbox 安全

Sandbox 安全

OpenSquilla 提供两种执行模式:

  • Safe 模式通过沙箱运行任务,并应用设置中配置的文件、命令、网络和 Runtime Pack 策略。
  • Full access使用已认证宿主用户的权限运行,不应用 Safe 模式策略。

全新安装默认使用 Safe 模式。现有安装会在 Gateway 启动前迁移:旧的 standardtrustedmanaged 输入值统一规范为 Safe,full 保持 Full access。新数据只写入 safefull

认证边界

本地 owner 和已认证的人类 token 可以使用 Safe 或 Full access。没有 token 的 LAN 请求和 token 无效的请求获得相同的 guest-safe 执行权限;无效 token 仍会被记为认证失败并受到速率限制。

guest-safe 任务会获得新的临时 workspace 和 HOME,不会挂载宿主 HOME、已有宿主项目、宿主 secrets,也不会获得 OpenSquilla 的权限与恢复数据。沙箱不可用时 guest 任务会被拒绝,绝不会回退到宿主执行。

Full access 需要 host.execute capability。缺少该 capability 时请求 Full access 会直接失败,而不是静默改成 guest-safe。

TLS 关闭时,LAN token 认证未加密,只应在可信网络中使用。OpenSquilla 根据 socket peer 确定客户端边界,不信任转发的客户端 IP header。

文件策略

Safe 模式默认允许普通文件读写。OpenSquilla 的权限、token、迁移、恢复和备份保险库路径在内部始终不可读写。

文件设置包含禁止写入列表。内置条目保护常见凭据和系统路径且不可删除;用户可以增删改自定义条目。写入、编辑、重命名、覆盖或删除受保护路径需要审批,其他普通修改自动执行。

识别出的递归删除始终需要单独确认。对话框会标明目标并明确递归删除可能不可逆,默认操作为取消。

递归删除备份默认启用,配额为 3 GiB。删除前 OpenSquilla 会暂存并验证可恢复备份;超过配额时先清理最旧的完整备份。即使清理后仍无法容纳目标,删除会保持取消,除非用户再次明确确认不可逆删除。

命令策略

普通 Safe 模式命令自动运行。内置高风险远程操作(包括 git push、发布 package、生产部署,以及识别出的破坏性云或数据库操作)需要审批。

设置可把 token 化的命令前缀加入审批列表或自动执行列表。判断顺序为:

  1. 不可覆盖的结构性保护;
  2. 用户自动执行前缀;
  3. 用户审批前缀;
  4. 内置高风险操作;
  5. 自动执行。

系统级工具另有自动、审批或禁用设置,默认自动执行。无论命令前缀如何判断,文件和递归删除保护始终生效。

网络策略

Safe 模式默认允许公共网络目标,同时继续防护云 metadata endpoint、loopback、link-local、私有网络探测、DNS rebinding、不安全重定向和畸形域名边界。

设置可以定义允许域名、拒绝域名或阻止全部网络。启用全部阻止时,允许列表作为明确例外;具体程度相同时拒绝规则优先。沙箱 egress 不能回连 Gateway listener。

Runtime Packs

Desktop 可以按需安装固定版本的 Python、Node.js,以及 Windows 上的 Git Bash Runtime Packs。Safe 模式优先使用受管理的 runtime;Full access 优先使用宿主 PATH,并将受管理 runtime 作为 fallback。

Runtime 资产由不可变 catalog 固定 checksum,下载和解压前后都会验证。可以在沙箱设置中启用、禁用、安装或移除这些工具,而不会修改系统安装的 runtime。

沙箱不可用

capability 探测发现 Safe 模式无法启动时,普通模式选择器会直接禁用 Safe,不额外显示 banner、badge 或错误色。Desktop 启动时会显示一次原生安全提示,除非用户选择“不再提醒”。

保存偏好为 Safe 的已认证宿主任务可以在当轮软着陆到 Full access。任务会同时记录期望和实际模式,保存的偏好仍为 Safe。执行开始后若沙箱失败,任务会停止,绝不会自动用宿主权限重放。


文档索引 · 工具与审批 · 权限指南

在 GitHub 上编辑此页(英文原稿) OpenSquilla 文档 · 中文社区翻译