根据网站FreeBuf消息,CI/CD管道中存在安全漏洞,攻击者可以利用这些漏洞来破坏开发过程并在部署时推出恶意代码。
近日,研究人员在Apache和Google的两个非常流行的开源项目的GitHub环境中发现了一对安全漏洞,可用于秘密修改项目源代码、窃取机密并在组织内部横向移动。
据Legit Security的研究人员称,这些问题是持续集成/持续交付(CI/CD)缺陷,可能威胁到全球更多的开源项目,目前主要影响Google Firebase项目和Apache运行的流行集成框架项目。
研究人员将这种漏洞模式称为“GitHub环境注入”。它允许攻击者通过写入一个名为“GITHUB_ENV”的GitHub环境变量创建一个特制的有效负载,来控制易受攻击项目的GitHub Actions管道。具体来说,问题存在于GitHub在构建机器中共享环境变量的方式,它允许攻击者对其进行操作以提取信息,包括存储库所有权凭证。
Legit Security首席技术官兼联合创始人Liav Caspi补充道,这个概念是,构建Actions本身信任这些提交以供审查的代码,不需要任何人对其进行审查。更糟糕的是,任何对GitHub做出过贡献的人都可以触发它,而无需任何人对其进行审查。所以,这个一个非常强大且危险的漏洞。
不要忽视CI/CD管道的安全性
根据Caspi的说法,他的团队在对CI/CD管道的持续调查中发现了这些漏洞。随着“SolarWinds式”供应链缺陷的激增,他们一直在寻找GitHub生态系统中的缺陷,因为它是开源世界和企业开发中最受欢迎的源代码管理(SCM)系统之一,因此也是将漏洞注入软件供应链的天然工具。
他解释称,“这些缺陷既体现了GitHub平台设计方式的设计缺陷,也体现了不同的开源项目和企业如何使用该平台。如果您非常了解风险并有意规避许多有风险的操作,您可能会编写一个非常安全的构建脚本。但我认为没有人真正意识到这一点,GitHub Actions中有一些非常危险的机制用于日常构建操作。”
他建议称,企业开发团队应始终对GitHub Action和其他构建系统保持“零信任”原则,假设他们用于构建的组件都可能会被攻击者利用,然后隔离环境并审查代码。
正如Caspi所解释的那样,这些缺陷不仅表明开源项目本身是供应链漏洞的潜在载体,而且构成CI/CD管道及其集成的代码也是如此。