安全公司Wiz研究团队披露了一个名为CodeBreach的供应链风险,指出由AWS管理的四个开源GitHub仓库,因项目级自动化构建触发条件配置不当,存在外部人员可触发构建并进一步获取仓库管理权限的潜在威胁。
AWS表示在接到通报后已及时完成修复并轮换相关凭证,经检查构建记录与CloudTrail审计日志,未发现任何滥用行为,且该问题不影响客户环境与AWS服务。AWS强调,此次事件属于各项目配置问题,并非CodeBuild服务本身的漏洞。
该风险主要源于这些仓库与AWS持续集成构建服务CodeBuild的触发机制有关。研究人员指出,开源项目通常在收到拉取请求时自动执行测试和构建,但如果构建环境持有可写入仓库或发布软件包的高权限凭证,则必须严格避免未经信任的代码进入特权流程。
此次配置疏漏在于对触发者进行webhook过滤的规则设计。这些项目使用ACTOR_ID(GitHub用户ID的数字标识,而非用户名)作为允许名单依据,但允许名单采用正则表达式编写时,未添加起始^和结尾$锚点,导致攻击者只要获取一个包含现有维护者ID的更长ID,即可绕过匹配规则,触发原本仅限维护者使用的特权构建流程。
研究团队还指出,部分CodeBuild项目曾开启公开仪表板,外部人员可通过构建页面查看触发条件与构建记录,从而更容易识别存在风险的项目。研究团队以AWS SDK for JavaScript v3的仓库aws/aws-sdk-js-v3为例说明,一旦攻击者成功触发构建,便可能在构建环境中获取用于连接GitHub的访问令牌,并将权限提升至仓库管理级别,进而推送代码或窃取敏感信息。由于该SDK是大量项目依赖的基础库,也是AWS管理控制台的重要组件,供应链被篡改的潜在风险因此被显著放大。
除aws/aws-sdk-js-v3外,研究团队还点名aws/aws-lc、corretto/amazon-corretto-crypto-provider以及awslabs/open-data-registry三个仓库存在相同类型的触发条件配置问题。AWS表示,除已修复被点名仓库的规则并撤销相关访问令牌外,还对其他公开构建环境进行了全面审计,以防止同类问题在AWS开源项目中进一步蔓延。