在GitHub上100,000个存储库中发现的分类信息泄漏


收集机密的方法包括多个阶段,使您最终可以高度自信地识别机密信息。 科学作品的插图

GitHub和当今用于开源发布的类似平台已成为开发人员的标准工具。 但是,如果此开源代码与身份验证令牌,专用API密钥和专用密码密钥一起使用,则会出现问题。 为了确保安全,必须对这些数据保密。 不幸的是,许多开发人员在代码中添加了敏感信息,这通常会导致意外的信息泄漏。

来自北卡罗来纳大学的一组研究人员在GitHub上分类数据泄漏进行了大规模研究他们扫描了数十亿个文件,这些文件是通过两种补充方法收集的:

  • 实时进行近六个月的GitHub公共提交扫描
  • 覆盖GitHub上所有存储库的13%的公共存储库的快照,总计约400万个存储库。

结论令人失望。 科学家不仅发现泄漏非常普遍,而且影响了超过100,000个存储库。 更糟糕的是,每天都有成千上万的新的,独特的“秘密”进入GitHub。

该表列出了流行服务的API以及与此信息泄漏相关的风险。



有关发现的秘密对象的一般统计数据表明,大多数Google API密钥都进入了公共领域。 RSA私钥和Google OAuth标识符也很常见。 通常,绝大多数泄漏是通过单所有者存储库发生的。

机密合计独特的%,一位所有者
Google API金钥2128928531195.10%
RSA密钥15801137,78190.42%
Google OAuth ID10690947,81496.67%
常规私钥30,28612,57688.99%
Amazon AWS访问密钥ID26395464891.57%
Twitter访问令牌20,760795394.83%
私钥EC7838158474.67%
Facebook访问令牌6367171597.35%
PGP私钥2091年68482.58%
MailGun API密钥1868年74294.25%
MailChimp API密钥87148492.51%
条带标准API密钥54221391.87%
Twilio API密钥3205090.00%
方形访问令牌1216196.67%
秘密广场OAuth281994.74%
Amazon MWS Auth令牌2813100.00%
Braintree访问令牌24887.50%
Picatic API密钥54100.00%
合计575,45620164293.58%

提交的实时监控使得确定到达存储库后不久从存储库中删除了多少敏感信息成为可能。 事实证明,第一天删除的机密超过10%,第二天删除的机密只有百分之几,但是在添加后的两周内,超过80%的私人信息仍保留在存储库中,此比例在随后的时间内几乎没有减少。

其中最明显的漏洞是来自东欧一个国家/地区的政府机构的AWS帐户,以及用于访问数千个私有VPN的7,280个RSA私有密钥。

该研究表明,即使资源很少,攻击者也可以危害很多GitHub用户并找到大量私钥。 作者指出,许多现有的保护方法对于收集机密信息均无效。 例如,TruffleHog之类的工具仅显示25%的效率。 轻松地绕过API请求数量的内置GitHub限制。

但是,发现的许多秘密都有清晰的模式,可以轻松实现
他们的搜索。 逻辑上可以假设这些相同的模式可用于监视分类信息的泄漏并警告开发人员。 可能应该在服务器端(即GitHub)上实现此类机制。 服务可以在提交期间发出警告权。

GitHub最近实现了令牌扫描( 令牌扫描功能)的测试版,该版本可扫描存储库,搜索令牌并通知服务提供商信息泄漏。 反过来,供应商可以取消此密钥。 作者认为,由于他们的研究,GitHub可以改善此功能并扩大供应商数量。

Source: https://habr.com/ru/post/zh-CN445038/


All Articles