生产加固与安全恢复
生产加固与安全恢复
Section titled “生产加固与安全恢复”本清单供部署/安全管理员与项目 Owner 使用。不能仅因文档列出就执行真实修改。 所有命令/配置示例未执行;生产密钥轮换、账号重置、网络变更和删除均须明确批准。准确解析/默认见安全配置。
明确信任边界
Section titled “明确信任边界”Viat 执行开发者代码。不同 UID、清空环境和资源代理能减少暴露,但不保证恶意代码不能访问网络、耗尽资源或读取所有已授资源凭据。1.1.0 部分数据库/缓存/AMQP/S3 对象仍向脚本投射凭据。因此:
- 仅向可信作者开放其可访问资源的代码权限;互不信任的租户/负载使用独立实例、账号和网络。
- 业务账号按最小权限设置;广泛生产凭据会扩大脚本权限,日志屏蔽无法消除。
- 保留内存/PID 限制、系统调用约束与主机补丁;不挂 Docker socket、宿主根、密钥目录或无关备份到脚本可见树。
- 出口由网络策略限制。
VIAT_OUTBOUND_DENY_PRIVATE只是选定保存路径的主机检查,不是完整 DNS 重绑定防护或任意代码防火墙。 - Rust 编译能力属于 builder 上的特权代码执行:依赖/build script 可在运行 worker 降权前执行。
向用户开放前
Section titled “向用户开放前”- 固定批准的 1.1.0 镜像/摘要,分别记录服务端/客户端版本。使用受支持主机和容器运行时并维护补丁;旧 bullseye 镜像只是过渡,不是长期安全建议。
- 设置独立强主密钥/JWT,原主密钥独立保管并演练获取;确认启动没有开发 JWT 警告。二进制不会因危险默认值拒绝启动。
- 非明确需要则关闭公开注册;移除初始凭据前确认可用 Owner。修改 bootstrap 密码不重置已有账号。
- 限制管理入口,使用 HTTPS 和可信
VIAT_PUBLIC_URL;只有受控代理后才信任转发头。API-only 可关控制台/文档,但 API 本身仍须认证/网络策略。 - 查 worker 身份日志:Docker 父进程 root 用于启动 10001/10001 子进程;账号缺失、UID 非法或降权关闭可让 worker 与服务器同身份。父进程改为非特权不会神奇保留不同子 UID。
- 限制文件/监听/SQLite 根,只挂批准目录。
VIAT_WORKER_DATA_DIRS递归改属主,不可指向宽泛宿主目录或平台 spool。 - 先准备登记与恢复再强制 MFA,使用最小 PAT scope,并审核实际 operator/developer/admin/owner 项目角色。平台角色与项目成员资格不同。
- 指标使用随机 token 和专用网络;外部日志/追踪及负载均按敏感数据保护。私有 CA 不应通过关闭 TLS 验证解决。
- 一致备份平台、主密钥、外部秘密/业务库/文件,并验证隔离恢复。
凭据与证书变更
Section titled “凭据与证书变更”| 对象 | 运维方式 | 风险 |
|---|---|---|
| 平台 JWT | 批准后同步重启所有节点,再重新登录/签发受影响凭据 | 已签令牌失效,节点不一致会间歇失败 |
| 主密钥 | 保留原值;重加密/迁移须单独设计验证流程 | 只替换环境会使 AES 密文不可用,不存在自动轮换 |
| 资源凭据 | 通过授权控制台/API 修改,受控验证并协调 live/published 行为 | 部分脚本对象可读凭据,旧凭据还须 provider 撤销 |
| Vault/AWS 身份 | 轮换受限身份,保留历史引用读权限,按需重启静态客户端 | Viat 不续期 Vault token,换后端不迁移 blob |
| TLS 证书 | 原子替换匹配 PEM 对;内置 TLS 每 60 秒检查 mtime | 失败保留旧证书,须外部监控期限/实际指纹 |
| CLI/MCP 会话/PAT | 用真实认证控制撤销服务端凭据,按政策移除本地副本 | 删 .viat/config.yaml 不证明所有服务端凭据撤销 |
不要用宽泛 passthrough 规则传秘密。禁止表只保护特定核心名及 Cargo/SSH 前缀,不识别所有应用秘密。默认透传包源命名空间中的 token 也可被 worker 读取。使用无害标记验证规则,不把真实秘密打印出来。
- 记录 UTC 区间、身份/项目、请求/运行 ID、节点和镜像;私密保留日志/审计/provider 事件,不把秘密复制进工单。
- 按事故计划隔离恶意入口、生产者和节点;取消不回滚外部提交,杀掉全部容器可能丢失易失证据。
- 在正确控制面撤销会话/PAT/资源/provider 凭据;检查权限、发布快照、共享模块、告警目标和绑定。旧备份可复活队列/凭据。
- 结合控制/业务审计、provider 日志和资源权限判断暴露。匿名请求、部分读取和尽力日志有明确缺口,没记录不等于没行为。
- 从批准产物重建并在隔离环境恢复,不盲拷受污染缓存/二进制或重放副作用。
- 用已知夹具验证、正确 worker 身份、激活、探针和外部监控证明恢复,分阶段开放,记录未测依赖和根因。
已知保证边界
Section titled “已知保证边界”业务 PostgreSQL 资源 ssl 当前被忽略;MySQL ssl=true 为 Preferred,可回退。通过经验证数据库/代理/网络边界强制传输并验证,不把资源保存当证据,见数据库。
进程内告警无法保证进程/库/出口宕机时通知,provider 接纳不代表收件人收到。审计表不独立防御 DBA,不是 WORM。租约/锁/幂等不是笼统 exactly-once/HA。按风险/合规需求明确补偿控制。