前言
在不到一年的时间里,用于软件开发和测试的 Travis CI
平台第二次暴露了包含身份验证令牌的用户数据,这些身份验证令牌可以让开发人员访问 GitHub
、Amazon Web Services
和 Docker Hub
上的帐户。
Aqua Security
的研究人员发现:
数以万计的用户令牌 通过
Travis CI API
被暴露出来,该API
提供对超过7.7
亿条日志的访问,这些日志中具有属于免费层用户的各种类型的凭据。
漏洞
漏洞使用的 API
在调查使用持续集成 (CI) 服务的潜在安全风险时,研究人员专注于 Travis
平台并发现了一个 API
调用,该调用允许在使用正确的日志编号时以明文形式获取日志。
研究人员发现,Travis CI
没有对日志编号实施足够的保护,并且能够运行枚举脚本来检索字符串(从零到无穷大)。
Aqua Security
表示:
这对其他供应商来说并不容易,因为他们需要在
URL
中提及应用程序ID
或客户ID
(或两者),这使得在日志上运行枚举变得困难。
此外,研究人员在一个记录的 API
系统中发现了第二个 API
调用,该调用允许访问另一组以前不可用的明文日志。
泄露数据分析
Aqua Security 研究人员表示:
使用这两种方法,他们能够找到
2013
年1
月至2022
年5
月之间的日志。他们确定有效日志的范围在420
万到7.74
亿之间。
在分析了 800
万个日志样本后,研究人员发现了大约 73,000
个敏感字符串,这些字符串以令牌、机密和与 GitHub、Amazon Web Services (AWS)
和 Docker Hub
等云服务相关的各种凭证的形式出现。
Aqua Security
指出:
在历史日志中的一些数据被混淆了。但是,这项努力是不够的,因为
Travis CI
允许开发人员对敏感信息使用各种命名约定。尽管在日志中打印秘密、密码和令牌有很多约定,其中大多数仍然以明文形式存在。例如,我们发现在很多情况下,github_token被屏蔽了,没有泄露任何秘密。但是这个令牌的大约
20
种变体没有被Travis CI
加密。
Travis CI 回应
Aqua Security
与 Travis CI
分享了他们的发现,希望得到修复。然而,CI
服务回答说这个问题是设计使然,从而导致暴露了数据。
暴露用户日志似乎是Travis CI
经常遇到的问题,因为有关此类风险的报告已于 2015
年、2019
年和 2021
年发布。