CodeBuild 配置缺陷令 AWS 控制台供应链面临风险
HackerNews 编译,转载请注明出处: AWS CodeBuild中的一处关键配置错误使得攻击者得以掌控核心的AWS GitHub代码库,其中包括支撑AWS控制台的JavaScript SDK。 Wiz Research将此问题命名为”CodeBreach”漏洞,它暴露了AWS管理的开源项目所使用的持续集成管道中的弱点。通过利用此漏洞,未经身份验证的攻击者本可将恶意代码注入受信任的代码库,从而开辟一条入侵AWS控制台以及可能每个依赖该控制台的AWS账户的路径。 该漏洞源于CodeBuild处理拉取请求触发器的方式。一个安全过滤器中的微小错误——仅缺少两个字符——导致不受信任的拉取请求能够运行拥有特权的构建任务。由此,攻击者可以访问存储在构建内存中的GitHub凭证,并将访问权限提升至完全控制代码库。 Wiz表示,最敏感的目标是AWS SDK for JavaScript,这是一个广泛使用的库,既支撑着客户应用,也支撑着AWS控制台本身。该公司估计,66%的云环境包含此SDK,这放大了供应链攻击的潜在影响。 微小正则表达式错误如何引发重大风险 暴露的代码库依赖一个ACTOR_ID过滤器来限制可触发构建的GitHub用户。然而,Wiz发现该过滤器是以非锚定的正则表达式实现的。这意味着,包含已批准ID作为子字符串的GitHub用户ID可以绕过此限制。 由于GitHub是按顺序分配数字用户ID的,Wiz研究人员得以预测新的ID何时会”数字超越”受信任维护者的ID。通过自动化创建GitHub应用,他们获取了能够绕过过滤器并触发构建的ID。 Wiz成功演示了对 aws/aws-sdk-js-v3 代码库的接管,通过窃取的凭证获得了管理员级别的访问权限。 同样的弱点存在于至少其他三个AWS代码库中,其中一个链接到某AWS员工的个人账户。 AWS的响应与缓解措施 Wiz于8月25日披露了此发现,AWS在48小时内解决了该问题。该公司锚定了受影响的正则表达式过滤器,撤回了暴露的凭证,并增加了防护措施以防止基于内存的凭证窃取。 AWS还引入了一个新的”拉取请求评论批准”构建门控,默认阻止不受信任的构建。 在一份声明中,该公司表示:”AWS确认没有任何客户环境的机密性或完整性受到影响”,并补充说没有发现恶意利用的证据。 Wiz建议CodeBuild用户采取以下几项防御措施: 阻止不受信任的拉取请求触发特权构建 使用具有最小权限的细粒度GitHub令牌 锚定Webhook过滤器的正则表达式模式 消息来源:infosecurity-magazine; 本文由 HackerNews.cc 翻译整理,封面来源于网络; 转载请注明“转自 HackerNews.cc”并附上原文