揭秘:公共GitLab泄露超17000个有效密钥,企业安全面临严峻挑战

一项安全研究揭示,公开的GitLab仓库泄露了超过17000个敏感且有效的密钥,包括AWS、GCP、Atlassian等关键服务凭证。研究采用基于AWS的自动化扫描架构进行大规模探测,发现部分密钥已暴露长达12年。文章深入分析了泄露趋势、技术架构及企业应采取的防御措施。

GitLab BitBucket:公共仓库泄露超17000个有效密钥

安全工程师Luke Marshall的研究揭露,公开的Bitbucket仓库中存在超过6000个有效密钥,这表明成熟的商业平台已成为攻击者被忽视的“金矿”,其中潜藏着被长期遗忘但极具破坏力的凭证。

本文重构了他的调查过程,以提供一份技术详实的发现报告,并阐述其对云安全的广泛影响。

为何选择Bitbucket?

尽管安全社区的注意力大多集中在GitHub和GitLab等平台上,Bitbucket却是一个引人注目的调查目标。作为Atlassian旗下自2008年运营的平台,它为成千上万的企业托管代码。

它吸引安全研究人员的两个关键因素是:Git固有的特性可能将密钥深埋于提交历史中;以及它尚未像竞争对手那样受到安全工具和研究人员的同等严格审查。这种组合意味着这里可能潜藏着大量未被发现的已暴露凭证。

设计大规模扫描方案

为了准确评估问题的规模,目标是对所有公共的Bitbucket Cloud仓库进行扫描——截至研究初始日期,总计有2,636,562个仓库。处理如此庞大的数据量需要一个健壮且可扩展的自动化策略。

解决方案是构建在AWS上的无服务器架构,因其能够高效处理大规模工作负载。该流程涉及两个核心组件:

  1. 一个本地的Python脚本,将全部260万个仓库名称送入AWS简单队列服务队列,创建一个持久且受管理的任务列表。
  2. 一个由队列触发的AWS Lambda函数,该函数使用TruffleHog进行实际扫描,并发数设置为300。

这种设置确保了没有仓库被重复扫描,并提供了容错能力;如果流程的任何部分失败,都可以无缝恢复而不会丢失进度。该架构使得在单个周末内扫描完所有260万个仓库成为可能。

暴露的遗留问题

扫描共发现了6,212个经过验证的有效密钥。对这些密钥的分析揭示了几个令人担忧的趋势,挑战了传统的安全假设。

下表按服务和文件类型对泄露的凭证进行了分类,显示了这些暴露发生的位置和方式:

按云服务分类的密钥 按文件扩展名分类的密钥
• GCP: 977个密钥
• AWS IAM: 高影响
• SendGrid: 高影响
• MongoDB: 高影响
• OpenAI: 高影响
• Atlassian: 247个密钥
• Azure存储: 高影响
• Stripe, Slack, Twilio: 高影响
• JSON: 最常见
• PHP: 第四常见
• Python (.py): 数量庞大
• JavaScript (.js): 数量庞大

最令人惊讶的发现之一是这些有效凭证的“年龄”。研究发现了已经暴露多年的密钥,其中包括一个早在2013年6月提交的有效AWS密钥,已存在了12年。研究图表显示,在2018年至2024年期间,每年平均有600-700个有效密钥暴露。这表明一旦密钥被提交,它们通常会无限期地保持有效且未被发现。

一个特别具有讽刺意味的发现是,Atlassian自身产品(包括Jira、Bitbucket和Opsgenie)的暴露凭证数量异常高。总共发现了247个有效的Atlassian凭证,这个数量远高于在其他软件生态系统的类似扫描中所见。

防御与应对

这些发现突显了对强大防御措施的迫切需求。为了解决这些风险,Bitbucket已经集成了一个原生的密钥扫描功能。该扫描器会检查新提交中超过800种已知密钥类型的模式,并在检测到潜在泄露时通过电子邮件提醒提交者。该系统是可定制的,允许管理员为其专有的密钥格式定义自己的正则表达式模式,并创建允许列表以减少误报。

然而,仅靠技术是不够的。该研究还触发了一项至关重要的安全响应。研究人员与TruffleHog团队一起参与了负责任的披露流程,导致数千个有效密钥被撤销。此外,还向漏洞赏金计划提交了11个关键的P1级别漏洞,并向超过50个组织通知了其密钥暴露的情况。

安全团队的关键启示

这项调查为安全社区提供了至关重要的见解:

  1. 评估整个生态系统:安全工作必须涵盖所有正在使用的代码托管平台,而不仅仅是最流行的平台。被忽视的遗留系统可能带来重大风险。
  2. 密钥拥有很长的生命周期:一个存在了12年的有效AWS密钥的发现证明了“密钥不会腐烂”。过去暴露的凭证在它们被主动发现并撤销之前,始终构成威胁。
  3. 假设泄露并进行轮换:如果在仓库中发现了密钥,应将其视为已泄露。仅仅将其从Git历史记录中删除是不够的,因为该提交可能存在于分支、克隆或其他仓库中。唯一安全的应对措施是立即撤销并轮换该凭证。
  4. 利用现有工具:主动使用如TruffleHog等密钥扫描工具或Bitbucket等平台的原生功能,持续监控意外的密钥暴露,无论是实时监控还是历史分析。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计