你想知道一个秘密吗?

实验显示GitHub代码存储库上的秘密泄漏检测差异

更新波兰安全研究人员的新实验提供了新的视角,良好地理解,但仍然是开发人员意外地将秘密发布到代码存储库的常见问题。

andrzej dyjak最近跑了一个实验要查看致力于公共存储库(如API或加密密钥)之前需要多长时间。

在发布到GitHub的11分钟后,首先使用Thinkst Canary Digital Tripwire服务生成的AWS密钥在11分钟后,在此后反复攻击之前。

一个类似的假秘密在遭受了第一个且唯一的妥协之前62分钟。

在他的实验期间,Dyjak使用了Git秘密扫描技术的Gitguardian。

如果是GitHub.,Dyjak在七分钟内收到警报,因此在第一次妥协之前可能的秘密泄漏。

时间施法

意外致力于公共存储库受到损害的秘密需要的时间是之前的更广泛的研究的主题北卡罗来纳州立大学(PDF),IBM Research.(PDF),和一个GitHub蜜罐锻炼身体由安全研究员Bob Diachenko组合在一起。

Dyjak表示,虽然人们专注于他的实验的一部分,但他对比较的比较更感兴趣秘密检测特征GitHub和Gitlab。

“GitHub赢了 - 他们抓住了这个秘密,提醒我,告知提供商,并最重要的是他们也提醒我有关脆弱的依赖项,”Dyjak告诉每日SWbeplay2018官网IG.


有关的Bug Hunters的开源工具搜索GitHub提交的泄露秘密


“Gitlab丢失 - 它确实提供了类似的sast [静态应用安全测试]功能,但它们需要设置的自动DevOps,这是一个瓶颈。“

devsecops回复

Gitlab欢迎Dyjak的研究,添加它正在积极努力提高其秘密检测能力。

Gitlab的静态分析高级产品经理Taylor Mccaslin告诉每日SWbeplay2018官网IG.: "While we can’t comment on specifics for security and confidentiality reasons, GitLab does take some steps to mitigate automated searches for customer secrets in public GitLab projects. This likely explains why publicly leaked customer secrets in public GitLab projects were identified and used fewer times in Dyjak’s research."

“Gitlab选择嵌入我们的秘密检测CI / CD.[持续整合/连续交付]因为它为客户提供了完全控制秘密检测的经验和工作流程,以及其他CI / CD工作。我们正在考虑在管道之外移动秘密检测,以进一步扩展对使用它的特征和更低障碍的访问。Gitlab没有目前的计划在我们现有的推送规则之外提供预先提交过滤器由于性能问题,“ 他加了。

Gitlab去年推出了秘密检测,最初是其上层计划的一个特征,并在今年中旬提供给所有客户(包括免费层)。

代码存储库是“在构建A的过程中后处理步骤进入我们的秘密检测通过外部供应商的工作流程启用功能的功能,如秘密撤销“,mccaslin添加了。

为了响应关于研究的查询,Github表示,扫描每个提交潜在暴露的秘密。

“GitHub将每一个”Git Push“扫描到公共存储库,用于来自30多个云服务提供商的潜在暴露的秘密,他们与GitHub合作以使用户安全保证,”Github发言人解释道。“如果我们找到任何,我们会通知提供者并采取行动。

“如果Andrzej的令牌是真正的AWS或Slack凭据(而不是Thinkst Canary Dummies),他们将在几秒钟内自动撤销。

“在GitHub的规模中,将每个人的”Git Push“扫描到公共存储库的每天都会扫描到数千次凭证泄漏。我们发现并每天都发现了GitHub自己的API超过了100个令牌,”他们补充道。

一个两个秘密的故事

Dyjak分别故意泄露了两个秘密API键,分别附​​加到AWS和Slack。

“虽然AWS在两种情况下(GH和GL)受到损害,但”Dyjak报告“,虽然并不妥协。”

这一发现提供了轶事证据,即对手正在积极和选择性地狩猎泄露的AWS秘密而不是在代号存储库中的任何无意中令牌或凭证。


此故事已更新,以添加Github和Gitlab的评论。


受到推崇的XGitGuard使用AI在GitHub上检测无意中公开的数据