安全检查清单
部署边界
一套 SoduWork 部署对应一个组织。在组织内部,部门管理员管理自己的部门及其下级部门,超级管理员负责全局。
- 部门管理员不能修改兄弟部门,也不能创建根部门。
- 管理端的每个写接口都要求声明好的权限。
- 组织架构的成功修改会记入审计日志,包括操作者、动作和目标。被拒绝的修改不会改变任何内容。
上线前
- 设置
SODUWORK_ENV=production,使用 PostgreSQL、强密码的ADMIN_PASS和AUTH_SECRET、明确的CORS_ORIGINS、DEVICE_AUTH_COMPAT=false和HUB_PUBLIC_URL(见团队部署)。 - Hub 前面有 HTTPS,并支持 WebSocket。
- 密钥放在密钥管理工具或环境配置里,不写进会提交的文件。数据库使用专用的、权限最小的账号。
- 备份包含数据库和文件存储,并实际演练过恢复。
- 执行机只接入这个 Hub,每把执行机密钥只在它自己的机器上使用。
- 插件和 Skill 的来源经过审查。插件和 Skill 不是沙箱。
- 管理员角色只授予每个人需要的权限点(见组织与权限)。
SoduWork 怎样处理密钥
| 密钥 | 保存在哪里 |
|---|---|
| 组织的模型密钥 | Hub 上,不会以明文返回 |
| 个人的模型密钥 | Hub 上,按账号分别保存,不会以明文返回 |
| 插件用到的密钥 | 执行机上,通过绑定映射,只注入使用它的节点 |
| 即用里标记为敏感的设置 | 按账号和即用隔离,用系统安全存储加密 |
| 执行机密钥 | 接入时只显示一次,Hub 上只保存摘要 |
密钥不会进入插件、绑定、运行证据、日志或对话记录。
报告漏洞
安全问题请私下报告,不要发在公开的 Issue 里,见报告安全问题。