Aquasec 的安全研究人员最近在 AWS Cloud Development Kit (CDK) 中发现了一个关键漏洞,该漏洞可能允许攻击者获得对目标 AWS 账户的完全管理访问权限。
该问题于 2024 年 6 月报告给 AWS,影响使用版本 v2.148.1 或更早版本的 CDK 用户。
该漏洞源于 AWS CDK 在引导过程中创建资源时使用的可预测命名规范。
默认情况下,CDK 会创建一个名称遵循如下格式的 S3 存储桶。
cdk-hnb659fds-assets-{account-ID}-{Region}
如果用户在引导后删除了此存储桶,攻击者可以通过在自己的账户中创建一个同名存储桶来声明该存储桶。
当受害者运行cdk deploy
时,他们的 CDK 实例将信任攻击者控制的存储桶,并向其写入 CloudFormation 模板。
然后,攻击者可以修改这些模板,注入恶意资源,例如他们可以代入的管理员角色。
AWS CDK 攻击链
由于受害者的 CloudFormation 服务默认使用管理权限部署资源,因此后门模板将在受害者的账户中执行,从而授予攻击者完全控制权。
通过对超过 38,000 个账户 ID 的研究表明,大约 1% 的 CDK 用户可能受到这种攻击方式的影响。
在确定已安装 CDK 的 782 个账户中,有 81 个 (10%) 由于缺少暂存存储桶而容易受到攻击。
AWS 发布了从 CDK 版本 v2.149.0 开始的修复程序,增加了一些条件,以确保角色仅信任用户账户中的存储桶。
但是,旧版本的用户必须通过升级并重新运行 cdk bootstrap
命令来执行操作。
安全专家建议将 AWS 账户 ID 视为敏感信息,在 IAM 策略中使用条件来限制对可信资源的访问,并避免使用可预测的 S3 存储桶名称。
这一发现凸显了在使用 AWS CDK 等云基础设施工具时,使用最新的安全补丁和遵循最佳实践的重要性。
随着越来越多的组织采用基础设施即代码 (IaC) 实践,对可能导致代价高昂的违规行为的潜在漏洞保持警惕至关重要。