公共仓库扫出 1.7 万条有效密钥:安全工程师发现 GitLab 大规模泄密,GCP 与数据库凭据暴露最严重

抖音秀 热点资讯 4

11 月 29 日消息,Truffle Security 安全工程师对 GitLab Cloud 上约 560 万个公共仓库进行扫描,发现其中包含 17,430  条有效密钥,涉及 2,804 个独立域名,涵盖云服务、数据库和各类 API 凭据等敏感信息。他也因此获得超 9000 美元(注:现汇率约合 63748 元人民币)的漏洞奖金。

该研究由安全工程师 Luke Marshall 开展,并通过 Truffle Security 的研究计划发布。他此前也对 Bitbucket 与 Common Crawl 数据集进行过类似检查,分别发现 6,212 条与 12,000 条有效密钥。Luke 长期关注开源生态中的密钥暴露问题,此前曾在 NPM、PyPI 中发现过类似情况。

GitLab 于 2011 年推出,是三大主流 Git 托管服务之一。虽然发布最晚,但其公开仓库数量几乎是 Bitbucket 的两倍。与 GitHub、Bitbucket 一样,由于 Git 记录会长期保留历史提交,平台又托管数百万公开项目,因此更易出现开发者误提交密钥的情况。

Luke Marshall 使用了 Truffle Security 开源软件,利用 GitLab 的公共 API 枚举所有公共仓库,并通过自编写的 Python 脚本分页获取结果。整个过程在约 24 小时内完成,云端总成本约为 770 美元。

Marshall 共发现 17,430 条可验证且仍可使用的密钥,数量约为其 Bitbucket 扫描结果的三倍,库密度(每仓库暴露的密钥数量)也高出 35%。

据介绍,泄露的密钥大多数是 2018 年之后生成的,甚至包括可追溯到 2009 年且至今仍有效的密钥(甚至早于 GitLab 的发布日期,推测为从其他平台迁入时带入)。

在暴露的密钥中,Google Cloud Platform(GCP)凭证是最常见的类别,平均每约 1060 个仓库中就会出现一组有效 GCP 密钥,总数超过 5,200 条;其次是 MongoDB 密钥、Telegram 机器人令牌和 OpenAI 密钥。

另外,此次研究还观察到显著的“平台本地性”:在 GitLab 上发现了 406 组有效 GitLab 密钥,而在 Bitbucket 上仅出现 16 组,说明开发者更容易在使用某个平台时误提交该平台的访问凭证。

为加速后续的漏洞披露流程,他使用可联网搜索的 Claude Sonnet 3.7 分析每个域名的最佳安全报告渠道,并额外编写脚本生成披露邮件,最终向 120 余家组织报告了泄露情况,并另外与 30 多家 SaaS 服务提供商合作,协助处理客户凭证暴露问题。

Marshall 表示,许多组织已在收到通知后撤销其暴露的密钥,但仍有部分凭据继续在 GitLab 上公开暴露。