Coder 披露称,其软件注册表基础设施 registry.coder.com 遭到入侵,攻击者得以向其通过 Cloudflare 管理的基础设施添加未经授权的服务器。因此,部分下载请求被定向至攻击者的服务器,而非 Coder 的合法服务器,导致一批用户收到 Terraform 模块的恶意版本。
根据 Coder 的声明,恶意文件的分发窗口发生在 31 August 07:35 至 21:45(世界协调时间)之间。被修改的模块针对配置工具的运行环境,在受影响设备上执行时,其中包含的代码会充当信息窃取工具。
哪些数据面临风险?
恶意模块搜索用户环境中广泛存在的秘密和凭据,包括:
- Provisioner 进程的环境变量和秘密。
- 云基础设施及人工智能工具的 API 密钥。
- CI/CD 系统的凭据。
- 配置文件和终端历史记录中的秘密。
- OIDC 令牌和已配置的 SSH 密钥,以及外部一次性身份验证令牌。
- Coder 数据库密码和其他秘密(当 Provisioner 在 coderd 内运行时)。
收集的数据被发送至相似域名 coder-infra[.]com。Coder 建议可能受影响的用户尽快轮换列表中的所有秘密。
验证与处置步骤
在升级至已修复版本 2.37.0、2.36.4、2.35.7 或 2.34.9 之前,Coder 要求检查防火墙、代理和 DNS 日志以及 VPC 流量,查找与恶意域名的连接。开发人员还应在 Provisioner 日志中搜索 data.external.telemetry,确定在暴露窗口期间下载的模块,并从缓存中删除可能被篡改的软件包。
Coder 还提供了一个 SQL 查询,用于帮助确定可能受影响的缓存模块和模板版本。
为什么这起入侵很重要?
这里的风险并不局限于发布了恶意软件包,还延伸至一个受信任的分发点,开发人员依赖它来构建工作环境和基础设施模板。此外,这些模块针对的秘密包括云密钥、人工智能工具密钥以及 CI/CD 环境,因此该事件与开发、平台和安全团队直接相关。
Coder 表示,更新令牌没有传递给 Provisioner,并且没有发现其保管的客户数据受到影响的证据。但与此同时,Coder 承认,攻击者使用的基础设施位于其控制范围之外,因此它没有重要日志,也无法确切确定所有遭到入侵的部署。这一缺口意味着,即使没有出现直接泄露证据,轮换秘密和独立核查日志仍是必要措施。