GitHub 开源项目出现攻击媒介,多家公司受影响

研究人员发现了一种攻击媒介,该攻击媒介影响了 Google,Microsoft,Amazon Web Services和其他公司拥有的GitHub开源项目,这些项目是通过滥用作为软件开发工作流程的一部分生成的工件来执行的。

根据首席研究员Yaron Avital昨天发表的一篇博客文章Palo Alto Networks的Unit 42的研究人员发现了这次攻击,该攻击对“世界上最大的公司拥有的备受瞩目的开源项目”有效 。因此,这些项目的妥协“可能会对数百万消费者产生潜在影响”。

其他公司的项目受到攻击媒介的影响,该攻击媒介滥用了所谓的 GitHub Actions 工件,包括 Canonical (Ubuntu)、OWASP 基金会和 Red Hat 等。Avital写道,该向量导致工件泄漏第三方云服务以及GitHub令牌的令牌,使任何对存储库具有“读取访问权限”的人都可以使用它们。

他解释说:“这使得有权访问这些工件的恶意行为者有可能破坏这些秘密授予访问权限的服务。Avital补充说,在活动中发现的最常见的泄漏是GitHub令牌的泄漏,“允许攻击者对触发的GitHub存储库采取行动”。

他解释说,这种暴露最终可能允许攻击者通过持续集成和持续交付/部署(CI/CD)管道将恶意代码推送到生产环境,或者访问存储在GitHub存储库和组织中的秘密。

Avital写道,Unit 42与受影响项目的所有公司和维护者合作,并“得到了所有团队的大力支持”,以便“快速有效地”缓解了所有发现。然而,其他未知的私人和公共项目也可能受到攻击。

毒害开发周期

CI/CD 环境、流程和系统是现代软件开发的关键部分,涉及构建、测试和将代码交付到生产环境的流程。也就是说,它们为攻击者提供了一个绝佳的机会,因为他们使用高度敏感的凭据来对各种类型的服务进行身份验证,“对保持高水平的凭据卫生构成了重大挑战,”Avital写道。

发现的攻击以 GitHub Actions 为中心,GitHub Actions 是工作流构建工件,允许开发人员在同一工作流中的作业之间持久保存和共享数据。“这些工件可以是在构建过程中生成的任何文件,例如编译的代码、测试报告或部署包,”Avital 解释说。

项目可确保关键数据在工作流完成后不会丢失,从而使其可供以后的分析或部署访问。Avital 指出,这“对于在依赖作业之间共享测试结果或部署包特别有用”。

GitHub Actions 工作流经常使用机密与各种云服务以及 GitHub 本身进行交互。这些机密又包括用于对仓库执行操作的临时自动创建的 GitHub 令牌。

Avital 解释说:“Actions 构建工件是由工作流执行生成的输出,一旦创建,它们将存储长达 90 天。“在开源项目中,这些工件是公开的,任何人都可以使用。”

他发现的攻击流允许攻击者下载公开可用的工件,提取令牌,并将恶意代码推送到开源项目的存储库中。然后,代码成为项目的一部分,因此可以作为最终用户最终访问的软件或服务的一部分执行。

Unit 42 的帖子包括一个已知受到攻击媒介影响的 GitHub 开源项目列表。

需要一种全面的防御方法

GitHub 已成为威胁行为者的主要目标,因为它作为一种访问无数软件和服务的方式具有吸引力,只需在存储库中毒害几行代码

Avital写道,新的攻击向量表明,在GitHub上,“我们当前关于工件扫描的安全对话存在差距” ,这意味着使用工件机制的组织应该“重新评估他们使用它的方式”。

他还建议防御者对软件开发采用整体方法,并仔细检查软件开发的每个阶段(从代码到生产)以发现潜在的漏洞。“像构建工件这样被忽视的元素往往会成为攻击者的主要目标,”Avital写道。

他指出,组织还应该根据最小权限减少运行器令牌的工作流权限,并审查其 CI/CD 管道中的工件创建,作为积极和警惕的安全方法的一部分,以加强开发项目的安全态势。

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐