Travis CI 日志中暴露的数千个 GitHub、AWS、Docker 令牌

前言

在不到一年的时间里,用于软件开发和测试的 Travis CI 平台第二次暴露了包含身份验证令牌的用户数据,这些身份验证令牌可以让开发人员访问 GitHubAmazon Web ServicesDocker Hub 上的帐户。

Aqua Security 的研究人员发现:

数以万计的用户令牌 通过 Travis CI API 被暴露出来,该 API 提供对超过 7.7 亿条日志的访问,这些日志中具有属于免费层用户的各种类型的凭据。

漏洞

漏洞使用的 API

在调查使用持续集成 (CI) 服务的潜在安全风险时,研究人员专注于 Travis 平台并发现了一个 API 调用,该调用允许在使用正确的日志编号时以明文形式获取日志

研究人员发现,Travis CI 没有对日志编号实施足够的保护,并且能够运行枚举脚本来检索字符串(从零到无穷大)。

Aqua Security 表示:

这对其他供应商来说并不容易,因为他们需要在 URL 中提及应用程序 ID 或客户 ID(或两者),这使得在日志上运行枚举变得困难。

此外,研究人员在一个记录的 API 系统中发现了第二个 API 调用,该调用允许访问另一组以前不可用的明文日志

泄露数据分析

Aqua Security 研究人员表示:

使用这两种方法,他们能够找到 20131 月至 20225 月之间的日志。他们确定有效日志的范围在 420 万到 7.74 亿之间。

在分析了 800 万个日志样本后,研究人员发现了大约 73,000 个敏感字符串,这些字符串以令牌机密和与 GitHub、Amazon Web Services (AWS)Docker Hub 等云服务相关的各种凭证的形式出现。

image.png

Aqua Security 指出:

在历史日志中的一些数据被混淆了。但是,这项努力是不够的,因为 Travis CI 允许开发人员对敏感信息使用各种命名约定。

尽管在日志中打印秘密、密码和令牌有很多约定,其中大多数仍然以明文形式存在。例如,我们发现在很多情况下,github_token被屏蔽了,没有泄露任何秘密。但是这个令牌的大约 20 种变体没有被 Travis CI加密。

Travis CI 回应

Aqua SecurityTravis CI 分享了他们的发现,希望得到修复。然而,CI 服务回答说这个问题是设计使然,从而导致暴露了数据。

暴露用户日志似乎是Travis CI 经常遇到的问题,因为有关此类风险的报告已于 2015 年、2019 年和 2021 年发布。