信息来源:安全内参
本周二,安全研究人员发现流行的持续集成开发工具Travis CI发生大规模账户泄露,超过7.7亿条Travis CI免费版用户日志数据以明文方式泄露,其中包含大量敏感机密信息(开发令牌、云服务凭证等),包括Github、Docker的数以万计的开源项目开发账户受到影响。
Aqua Security公司Nautilus团队的研究人员报告称,一个帮助开源开发人员开发和测试软件的服务——Travis CI(持续集成开发工具)的API正在泄露数以万计的身份令牌和其他安全敏感机密。安全专家在一份新报告中表示,其中许多泄露信息允许黑客访问Github、Docker、AWS和其他代码存储库上开发人员的私人账户。
Travis CI是一种被称为持续集成的越来越流行的敏捷开发工具,通常缩写为CI,它使开发和测试代码变更的过程自动化,已经成为现代开发和云原生应用程序管道的重要组成部分。
CI对于每次代码更改,都会定期构建、测试代码并将其合并到共享存储库中。CI环境通常存储许多敏感信息,例如访问令牌,以自动访问云或管道中的其他组件。在某些情况下,这些访问令牌被设置为具有读取、写入、管理等的高权限。此类访问令牌如果失窃,可能导致数据泄露、帐户接管,甚至跨多个云帐户横向移动。
大规模供应链攻击的潘多拉盒子被打开
至少自2015年以来,Travis CI就持续曝出第三方开发人员凭据的可用性问题。当时,安全漏洞服务平台HackerOne报告说,Travis CI暴露了其开发人员的一个访问令牌时,导致HackerOne的一个Github帐户被入侵。类似的数据泄露事件在2019年和2021年再次出现。
泄露的开发人员访问令牌可被用来(未授权)读取或修改存储在存储库中的代码,而这些Github存储库负责分发大量正在进行的软件应用程序和代码库。未经授权访问此类项目的能力为攻击者打开了大规模供应链攻击的大门,攻击者可以通过篡改存储库中的应用程序来从上游对大量依赖生产服务器中的应用程序的项目发动攻击。
Aqua Security公司Nautilus团队的研究人员报告称,尽管这是一个已知的安全问题,但泄漏仍在继续。研究人员使用Travis CI API访问分两批采集了从2013年到2022年5月的大量明文日志数据,数量分别为4.28亿和7.7亿条。研究人员仅对其中一小部分数据进行采样分析就发现了7.3万个令牌、机密信息、和各种证书。
“这些访问密钥和凭证与流行的云服务提供商相关联,包括GitHub、AWS和Docker Hub,”Aqua Security说。“攻击者可以使用这些敏感数据发起大规模网络攻击并在云中横向移动。任何曾经使用过Travis CI的人都有可能被暴露,因此我们建议立即轮换您的密钥。”
暴露的访问令牌样本(上图)包括:
-
GitHub的访问令牌,可能允许对代码存储库进行特权访问
-
AWS访问密钥
-
一组凭据,通常是电子邮件或用户名和密码,可访问MySQL和PostgreSQL等数据库
-
Docker Hub密码,如果未激活MFA(多因素身份验证),可能会导致帐户被接管
下图为开源项目账户泄露的分布情况:
数千个GitHub令牌泄露
Aqua Security研究人员补充说:
我们发现了数千个GitHub OAuth令牌。可以肯定地假设其中至少有10-20%是有效可用的,特别是那些在最近的日志中发现的。我们在云实验室中模拟了一个横向移动场景,它基于这个初始访问场景:
1.通过公开的Travis CI日志提取GitHub OAuth令牌。
2.使用公开的令牌在私有代码存储库中发现敏感数据(即AWS访问密钥)。
3.使用AWS S3存储桶服务中的AWS访问密钥进行横向移动尝试。
4.通过枚举发现云存储对象。
5.数据从目标的S3泄露到攻击者的S3。
对于Aqua Security的安全报告,Travis CI目前没有公开回复。鉴于这种暴露的反复出现,开发人员应定期主动轮换访问令牌和其他凭据。此外,还应该定期扫描代码工件,以确保它们不包含凭据。