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上公开暴露。
