收集机密的方法包括多个阶段,使您最终可以高度自信地识别机密信息。 科学作品的插图GitHub和当今用于开源发布的类似平台已成为开发人员的标准工具。 但是,如果此开源代码与身份验证令牌,专用API密钥和专用密码密钥一起使用,则会出现问题。 为了确保安全,必须对这些数据保密。 不幸的是,许多开发人员在代码中添加了敏感信息,这通常会导致意外的信息泄漏。
来自北卡罗来纳大学的一组研究人员在GitHub上
对分类数据泄漏进行了
大规模研究 。
他们扫描了数十亿个文件,这些文件是通过两种补充方法收集的:
- 实时进行近六个月的GitHub公共提交扫描
- 覆盖GitHub上所有存储库的13%的公共存储库的快照,总计约400万个存储库。
结论令人失望。 科学家不仅发现泄漏非常普遍,而且影响了超过100,000个存储库。 更糟糕的是,每天都有成千上万的新的,独特的“秘密”进入GitHub。
该表列出了流行服务的API以及与此信息泄漏相关的风险。

有关发现的秘密对象的一般统计数据表明,大多数Google API密钥都进入了公共领域。 RSA私钥和Google OAuth标识符也很常见。 通常,绝大多数泄漏是通过单所有者存储库发生的。
机密 | 合计 | 独特的 | %,一位所有者 |
---|
Google API金钥 | 212892 | 85311 | 95.10% |
RSA密钥 | 158011 | 37,781 | 90.42% |
Google OAuth ID | 106909 | 47,814 | 96.67% |
常规私钥 | 30,286 | 12,576 | 88.99% |
Amazon AWS访问密钥ID | 26395 | 4648 | 91.57% |
Twitter访问令牌 | 20,760 | 7953 | 94.83% |
私钥EC | 7838 | 1584 | 74.67% |
Facebook访问令牌 | 6367 | 1715 | 97.35% |
PGP私钥 | 2091年 | 684 | 82.58% |
MailGun API密钥 | 1868年 | 742 | 94.25% |
MailChimp API密钥 | 871 | 484 | 92.51% |
条带标准API密钥 | 542 | 213 | 91.87% |
Twilio API密钥 | 320 | 50 | 90.00% |
方形访问令牌 | 121 | 61 | 96.67% |
秘密广场OAuth | 28 | 19 | 94.74% |
Amazon MWS Auth令牌 | 28 | 13 | 100.00% |
Braintree访问令牌 | 24 | 8 | 87.50% |
Picatic API密钥 | 5 | 4 | 100.00% |
合计 | 575,456 | 201642 | 93.58% |
提交的实时监控使得确定到达存储库后不久从存储库中删除了多少敏感信息成为可能。 事实证明,第一天删除的机密超过10%,第二天删除的机密只有百分之几,但是在添加后的两周内,超过80%的私人信息仍保留在存储库中,此比例在随后的时间内几乎没有减少。
其中最明显的漏洞是来自东欧一个国家/地区的政府机构的AWS帐户,以及用于访问数千个私有VPN的7,280个RSA私有密钥。
该研究表明,即使资源很少,攻击者也可以危害很多GitHub用户并找到大量私钥。 作者指出,许多现有的保护方法对于收集机密信息均无效。 例如,TruffleHog之类的工具仅显示25%的效率。 轻松地绕过API请求数量的内置GitHub限制。
但是,发现的许多秘密都有清晰的模式,可以轻松实现
他们的搜索。 逻辑上可以假设这些相同的模式可用于监视分类信息的泄漏并警告开发人员。 可能应该在服务器端(即GitHub)上实现此类机制。 服务可以在提交期间发出警告权。
GitHub最近实现了令牌扫描(
令牌扫描功能)的测试版,该版本可扫描存储库,搜索令牌并通知服务提供商信息泄漏。 反过来,供应商可以取消此密钥。 作者认为,由于他们的研究,GitHub可以改善此功能并扩大供应商数量。