GitHub Actions 遭利用,14个热门开源项目令牌泄露风险激增
内容提要
攻击者通过GitHub Actions工具窃取了谷歌、微软、AWS和Red Hat等多个知名开源项目的GitHub身份验证令牌,可能导致未经授权的访问和恶意代码注入。Palo Alto Networks Unit 42敦促受影响的企业采取行动,但GitHub尚未解决问题。用户需要评估风险并采取措施防止泄露事件。
延伸解读
ArtiPACKED攻击的运作机制
Unit 42将这种攻击命名为ArtiPACKED,其核心在于利用GitHub Actions工作流中生成的工件泄露令牌。攻击者通过自动脚本扫描使用GitHub Actions的公共项目,识别可能生成包含敏感信息工件的条件,然后下载这些工件并提取令牌。由于公共仓库的工件通常可公开访问,攻击者无需复杂手段即可获取令牌,进而访问私有仓库或注入恶意代码。
令牌泄露的主要风险点
文章指出三个关键风险点:一是actions/checkout操作默认将GitHub令牌持久化到本地.git目录,若用户误将整个签出目录作为工件上传,令牌即暴露;二是CI/CD过程中生成的工件可能因错误上传而包含敏感信息;三是使用环境变量存储令牌的管道,若日志记录这些变量并作为工件上传,令牌也会泄露。这些风险源于不安全的默认设置和用户错误配置。
令牌的有效期与利用窗口
GitHub令牌在工作流作业持续期间保持有效,但不同类型令牌的生命周期差异很大。GitHub内部用于缓存和管理的Actions_Runtime_Token有效期通常为6小时,利用窗口较小;而自定义秘密和令牌(如API密钥或云服务访问令牌)的生命周期从几分钟到永不过期不等。攻击者需要在令牌过期前提取并使用,因此实际风险取决于令牌类型和配置。
缓解措施与用户应对建议
Unit 42建议GitHub用户避免在上传的工件中包含整个目录,对日志进行消毒,并定期检查CI/CD管道配置。同时,应调整actions/checkout等危险操作的默认设置,避免凭证持久化。此外,工作流中使用的令牌权限应设置为必要的最低权限,以限制令牌暴露时造成的损害。由于GitHub尚未解决问题,用户需自行评估风险并采取这些措施。
Q&A
攻击者是如何窃取GitHub令牌的?
攻击者通过GitHub Actions工具在CI/CD工作流中窃取GitHub身份验证令牌。
窃取的GitHub令牌可能导致什么后果?
可能导致未经授权的访问私有存储库、窃取源代码或注入恶意代码。
Palo Alto Networks Unit 42对受影响企业有什么建议?
Unit 42建议受影响企业立即采取补救措施,并评估风险。
GitHub用户如何防止令牌泄露?
用户应避免在上传的工件中包含整个目录,定期检查CI/CD管道配置,并调整危险操作的默认设置。
哪些开源项目可能受到影响?
可能受到影响的项目包括Firebase、OpenSearch Security、克莱尔、JSON模式等共14个项目。
GitHub令牌的有效期是多久?
GitHub令牌在工作流作业持续期间保持有效,Actions_Runtime_Token的有效期通常为6小时。