ArtiPACKED漏洞导致GitHub Actions出现令牌泄露

了解GitHub Actions工件如何泄露敏感的身份验证令牌,使流行的开源项目面临安全风险。了解ArtiPACKED漏洞、其工作原理以及保护您的项目免受潜在攻击的步骤。

Palo Alto Networks的Unit 42发现了GitHub Actions中的一个严重安全漏洞。该漏洞被称为“ArtiPACKED”,攻击者可以利用该漏洞窃取热门开源项目中的敏感信息,包括GitHub身份验证令牌。

供您参考,GitHub Actions使用工作流构建工件(如编译代码、测试报告和部署包)来防止数据丢失并促进GitHub Actions环境中的高效执行。该漏洞存在于GitHub Actions在CI/CD(持续集成/持续交付)工作流期间处理工件的方式中。工件可以在管道的各个点生成,包括构建输出和测试结果,而这些工件的生成和存储方式可能会带来安全风险,例如以下场景。

1. 不安全的默认设置:
操作/签出操作通常用于克隆工作流的存储库代码,默认情况下将GitHub令牌存储在本地隐藏的“.git”目录中,但如果整个签出目录被错误地上传为工件,则该令牌将暴露给任何具有存储库读取权限的人。

2. 意外上传:
上传整个签出目录(包括带有令牌的“.git”文件夹)会无意中暴露工件内的令牌。

3. 环境变量泄漏:
CI/CD管道通常使用环境变量来存储令牌等敏感数据。如果在工作流执行期间意外或故意记录这些变量,它们将作为工件上传,从而有可能泄露令牌。

这些问题导致攻击者有可能在工件中找到并利用泄露的令牌,并通过针对具有“竞争条件”的特定场景来利用它们,以便在令牌过期之前从日志中提取短期令牌。令牌的利用效率因令牌类型而异。

例如,GitHub内部用于管理工件的Actions_Runtime_Token通常仅为六个小时有效,而自定义令牌(包括API密钥或云服务访问令牌)的有效期可以从几分钟到永远不等。

此外,攻击者可以使用自动化脚本识别使用GitHub Actions的项目,然后扫描可能导致工件生成的漏洞。然后,这些脚本可以下载工件并搜索暴露的机密。

研究人员指出: “错误配置和安全漏洞的结合可能会导致工件泄露令牌,包括第三方云服务和 GitHub 令牌,从而使任何具有存储库读取权限的人都可以使用它们。”

如果这些令牌被盗用,攻击者就可以未经授权访问私有存储库,从而窃取源代码,甚至将恶意代码注入项目。Unit 42 的报告重点介绍了一些特定案例,包括谷歌、微软、AWS 和 Red Hat 等热门项目都被发现通过这些漏洞泄露了令牌。

Unit 42 报告了 14 起大型开源项目泄露令牌的事件,强调了 CI/CD 管道(尤其是自动化工作流程)中需要采取强有力的安全措施。开发人员和项目所有者可以通过检查和清理目录、调整敏感操作的默认设置以及最小化令牌权限来降低这种风险。

Obsidian Security首席执行官兼联合创始人Glenn Chisholm对此事发表了评论:“这一发现凸显了身份验证令牌的重要性,以及攻击者如何越来越多地使用被盗的人类和非人类身份验证令牌来访问源代码和SaaS应用程序,”Genn解释道。

他补充道:“各组织应确保他们正在寻找与使用身份验证令牌相关的异常模式;鉴于GitHub将责任放在企业和用户身上,他们应该确保良好的配置卫生并扫描他们的存储库和工作流程,以避免无意中泄露令牌。”

发表评论

评论已关闭。

相关文章