最小权限
- 数据库审计只用你创建的只读角色,只读系统目录;连接前我们会确认它读不到任何表内容,读得到就拒绝。你授权提供的审计连接(含密码)用独立数据密钥和 KMS 信封加密保存,由后台执行检查时解密。
- GitHub 令牌每次检查单独申请,只对一个仓库有效、几分钟后过期;读代码时只申请读取权限,开修复 PR 时才申请写入。
- 外部实测只用你的应用本来就公开发布的密钥,从不使用泄露的管理员密钥。
代码在一次性沙箱里分析
- 沙箱没有网络、根文件系统只读、以无特权用户运行,资源和时间受限,用完即删;生产环境运行在 gVisor 上。
- 仓库以流的形式直接进入沙箱,不落到我们服务器的磁盘上。离开沙箱的只有文件名、行号、打码后的密钥和哈希。
- AI 需要的代码片段加密后在任务之间传递,任务结束即删除。
证据最小化
- 外部实测只统计行数和列名,从不下载行内容。
- 扫描发现的密钥在证据中只保存打码形式和哈希;你主动授权提供的连接凭证则加密保存,供后台检查使用。
- 暴露文件的证据只记录变量名、大小和数量,不记录内容。
加密与隔离
- 每条凭证用独立的数据密钥加密(AES-256-GCM),数据密钥再由密钥管理服务包裹,并绑定团队、应用和用途。
- 每个请求都在数据库的行级安全下执行,一个团队永远读不到另一个团队的数据。
- 登录不用密码:一次性登录链接 15 分钟有效;会话和链接只保存哈希。
主动请求的边界
- 只对通过 DNS 验证的域名发主动请求,每次检查前重新确认;验证记录删除后立即停止。
- 所有对外请求拒绝内网、回环和云元数据地址,重定向也一样。
- 请求带可识别的 User-Agent,频率很低,只用读取请求。
发现了我们的漏洞?
请发邮件到 security@hachi.dev(也见 /.well-known/security.txt)。我们会在两个工作日内回复,修复后公开致谢。请不要访问其他用户的数据或影响服务可用性。