GitHub大数据:10%的程序员泄密
GitGuardian近日扫描了2022年GitHub的10亿次代码提交(较2021年增长20%),结果发现了1000万条机密信息,较2021年增长了67%。此外,调查结果还显示,10%的程序员(GitHub代码提交者)都泄露了至少一条机密信息。
机密泄露与能力无关
人们普遍认为GitHub代码库中硬编码的机密主要由初级开发人员提交,这是一种误解。事实上,任何开发人员,无论他们的经验水平或资历如何,都可能会犯同样的错误。
通常,产生硬编码机密的原因是贪图便利,而不是由于知识或能力的不足。高级开发人员可能需要经常测试数据库连接或端点,他们面临着快速完成任务以满足业务需求的巨大压力。
硬编码的机密信息通常包含账户凭据,可以用来(以较高权限)访问现代软件供应链的各种组件,从代码到云。因此,开发账户凭证已成为攻击者最梦寐以求的信息。尽管如此,2022年发生的多起数据泄露事件表明,业界对开发账户凭证的防护明显不足。
报告指出:云服务商密钥的泄露正在增长,但有一个积极因素来自亚马逊AWS,后者正在扫描GitHub以查找其凭据,并隔离已泄露凭据。这种做法显著缩短了AWS凭证在GitHub上的暴露事件,值得在业界推广。
黑客如何利用机密
最近的两个案例说明了黑客如何在攻击中利用泄露的机密:
- Uber。一名攻击者入侵了Uber,并使用(GitHub上找到的)硬编码的管理员凭据登录了该公司的特权访问管理平台Thycotic。他们对几个内部工具和生产力应用程序进行了全面帐户接管。
- CircleCI。攻击者利用部署到CircleCI工程师笔记本电脑上的恶意软件来窃取有效的、由2FA支持的SSO会话,进而泄露客户数据,包括客户环境变量、令牌和密钥。
解决问题需要三管齐下
对GitHub的实时监控显示,超过80%的公开泄露的机密存在于开发人员的个人代码仓库中,其中相当一部分实际上属于公司机密。
导致这种情况的原因有很多,也不能排除个别人员的恶意行为,包括劫持公司资源和其他阴暗动机。但总的来说,绝大多数在GitHub公开泄露的机密都是由于人为错误(配置)。
与其他安全问题一样,糟糕的代码机密管理与人员、流程和工具三要素有关。如果企业打算有效地解决该问题,就必须“三管齐下”。