Loving Tina? us on GitHub0.0k
TinaCloud:安全漏洞的公开披露
December 23, 2024
By Matt Wicks

事件概述

2024年12月15日,TinaCMS发现涉及被盗用的AWS访问密钥的未经授权活动。这些密钥被利用来使用我们的Amazon Simple Email Service (SES)基础设施发送未经授权的电子邮件(目标是法国的普通社区,而非Tina的客户)。

一封钓鱼邮件的截图
Figure: 发送的邮件是法语

作为自动化措施,受影响的密钥已被撤销。随后,我们的团队通过CloudTrail日志确认了事件的范围,调查了根本原因,并采取了措施(如下所述)来保护我们的系统。

外发邮件功能,包括用户邀请,受到了影响。目前这一问题已得到解决。

对此我们深表歉意,并有信心此类事件不会再次发生。

事件详情

事件开始:2024年12月13日,16:33 GMT+11

检测时间:2024年12月15日,19:05 GMT+11

事件类型:未经授权使用AWS访问密钥

受影响的服务:

  • Amazon SES(邮件发送)
  • 依赖外发邮件的用户邀请工作流

访问性质:

  • 具有根权限的AWS访问密钥被盗用并滥用

验证:

  • 使用CloudTrail日志确认在事件期间访问了哪些系统和服务

根本原因分析

未经授权的访问被追溯到我们CI/CD管道中的一个漏洞。在构建过程中,GitHub Actions工作流中的一个步骤无意中将GitHub Actions Runner的环境变量(包括敏感的AWS访问密钥)写入了一个JavaScript文件。

包含密钥的JavaScript文件随后被部署并作为TinaCloud的一部分公开提供,使攻击者能够直接从前端代码中获取访问密钥。

影响评估

客户数据:

✅ 根据CloudTrail日志,没有未经授权访问客户数据的证据。 这包括内容数据库、终端用户登录信息、应用程序密钥的访问。

受影响的系统:

⚠️ 用于邮件发送功能的Amazon SES

用户影响:

❌ 邮件服务的临时中断影响了工作流,包括用户邀请

已采取的措施

  1. ✅ 完成 - 撤销所有访问密钥: 所有被盗用和旧的AWS访问密钥立即被撤销
  2. ✅ 完成 - 访问验证: 审查CloudTrail日志以识别和确认未经授权的行为者访问的系统
  3. ✅ 完成 - 确认安全控制: 在所有具有控制台访问权限的用户账户上启用了MFA(多因素认证) 撤销了所有不必要用户的访问权限
  4. ✅ 完成 - 暂停邮件发送: 在确认根本原因和AWS的审查期间,外发邮件服务被暂时暂停。 目前服务已恢复。
  5. ✅ 完成 - CI/CD AWS访问: GitHub Actions的认证已从长期有效的访问密钥升级为OIDC
  6. ✅ 完成 - 构建过程: 审查了构建过程,并更新了环境变量的处理。 使用import.meta替换了process.env,遵循Vite的文档中概述的最佳实践,以防止敏感数据在构建工件中暴露。
  7. ✅ 完成 - 仓库密钥审计: 正在对所有GitHub仓库进行彻底审计,以识别过去构建或提交中可能无意中暴露的任何其他敏感信息
  8. [待办] 加强IAM策略: 已审查并更新与CI/CD系统相关的IAM策略,以确保遵循最小权限原则,移除不必要的权限,特别是那些具有根或管理访问权限的权限
  9. [待办] AWS访问的IP白名单: AWS IAM角色使用已限制在受信任的IP范围内,特别是对于CI/CD系统和其他敏感操作
  10. [待办] 持续监控和警报: 将实施持续监控工具,如Amazon GuardDuty、AWS CloudTrail Insights和AWS Security Hub,以检测和警报可疑活动,如新访问密钥的创建或异常IP访问
  11. [待办] 自动安全扫描: 将自动工具集成到CI/CD管道中,以在代码构建期间主动检测密钥或漏洞

给Tina客户的建议

  1. 报告可疑邮件:如果您收到来自TinaCMS的未经授权或可疑邮件,请报告至security@tina.io
  2. 验证邮件来源:确保任何声称来自TinaCMS的邮件都是合法的
  3. 保持更新:通过我们的官方沟通渠道获取实时更新

联系信息

如有问题、疑虑或需要进一步信息,请联系:

TinaCMS始终致力于保护我们的系统并保持透明。

🦙 Tina团队