HyperAI超神经
Back to Headlines

GitHub 强制推送隐藏漏洞:新工具助力发现被删除的秘密提交

2 days ago

Sharon Brizinov是一位专注于物联网和运营技术设备安全性的白帽黑客。他最近发现了一种利用GitHub事件流API(GitHub Event API)来识别和扫描被删除的提交(即所谓的“Oops Commits”)中的泄露密钥的方法。这种方法不仅适用于当前的事件,还可以追溯到过去的事件,因为他利用了一个名为GH Archive的项目,该项目自2015年起就开始系统地归档所有的GitHub公共活动数据。 什么是“Oops Commits”? 当开发人员在GitHub上推送代码后发现包含了敏感信息(如凭证或密钥),通常会通过强制推送(force-push)来撤销这些更改,使原来的提交看起来像是被“删除”了。然而,即使是这样,GitHub仍然保留了这些未引用的提交记录,只是它们不再出现在标准的git日志中。由于技术复杂性以及支持诸如拉取请求和仓库分叉等功能的需求,GitHub不会真正删除这些提交历史。这为潜在的数据泄露提供了途径。 研究过程 Sharon开始时使用了TruffleHog工具,这是一种可以检测Git仓库中密钥泄露情况的安全工具,但手动猜测和检测提交哈希值的方法效率低下,几乎不可行。他决定采取一种更聪明、更快捷的方式:利用GitHub Event API监测所有公开仓库的活动,并从中筛选出没有新提交记录的强制推送事件(PushEvent Zero-Commit)。通过这种方式,他可以直接获取那些“已删除”的提交的散列值,不必再去逐个猜测。 自动化工具 Truffle Security公司与Sharon合作,共同开发并开源了一款名为Force Push Scanner的自动化工具。这款工具可以从GH Archive中检索所有的“Oops Commits”事件,提取“已删除”提交的内容,并使用TruffleHog扫描其中是否含有活跃的秘密信息。这个项目不仅帮助开发者保护自己的组织账号免受此类泄露的影响,还为研究人员提供了大规模秘密信息挖掘的新方法。 重大发现 运行自动化工具后,Sharon发现自2020年以来GitHub上存在数千个活跃的秘密信息,包括许多有价值的密钥。为了进一步识别出最有影响力的泄露事件,他通过三步过滤法进行了手动检查、构建了一个简单的前端平台用于快速浏览和标记,最后与朋友一起尝试使用人工智能技术来自动化这部分工作。在众多泄露的秘密中,GitHub的个人访问令牌(PAT)特别是属于某些大型组织和公司的情况,产生的影响最为显著,有时还能带来高达数万美元的漏洞赏金。 案例研究 在一次研究中,Sharon发现了某个开发者的GitHub PAT,该令牌拥有对Istio项目的全部仓库的管理员权限。Istio是一个开源的服务网格项目,主要用于管理微服务通信,支持透明、无语言限制的网络功能自动化,并被谷歌、IBM、红帽等知名公司广泛采用。这一密钥如果被恶意利用,可能导致Istio项目的重大供应链攻击。幸运的是,Brizinov及时上报了这一问题,Istio项目组迅速采取行动取消了相关令牌,防止了潜在的灾难。 业内评价与公司背景 Sharon的工作得到了业内专家的肯定。他认为这是一次非常有趣的项目体验,通过融合已知的技术成果实现了有效的自动化检测,并提醒所有开发者和组织应更加重视秘密信息的管理。一旦有秘密信息被提交到线上,它就已经处于非安全状态,必须尽快撤销。这种意识的提高有助于减少因为人为失误而导致的数据泄露事故。 总之,本研究揭示了即使在现代版本控制系统中,如何正确处理敏感信息依然是需要高度重视的问题。Sharon及其团队的工作提供了一种有效的方法,帮助我们更好地理解和应对这种潜在风险。

Related Links