AWS云开发套件漏洞可能导致完整的AWS账户接管

AWS CDK 漏洞导致账户被接管

安全公司 Aqua 发现 AWS Cloud Development Kit (CDK) 存在一个漏洞,可能导致攻击者完全接管目标 AWS 账户。该漏洞与手动删除 CDK 创建的 S3 存储桶有关。虽然 AWS 已经修复了该漏洞,但如果你使用的是 CDK v2.148.1 或更早版本,仍需采取行动。

漏洞背景

AWS CDK 是一种基础设施即代码(IaC)工具,允许开发者使用 Python、TypeScript 或 JavaScript 定义云基础设施。漏洞的核心在于 CDK 使用了一个易于预测的 S3 存储桶名称来存储启动 AWS 基础设施创建过程所需的文件。这些文件包括多个 IAM 角色、策略等,存储在名为 cdk-{Qualifier}-{Description}-{Account-ID}-{Region} 的 S3 存储桶中。

漏洞原因

用户可以在运行 CDK 时指定 Qualifier,但许多用户使用 cdk bootstrap 命令时未自定义 Qualifier,导致存储桶命名模式变得可预测。默认的 Qualifier 值为 hnb659fds,这使得攻击者可以提前创建目标账户的 S3 存储桶,从而在合法用户尝试使用 cdk bootstrap 时引发错误。

攻击后果

这种攻击不仅会导致拒绝服务(DoS),还可能引发账户完全被接管。如果攻击者获得了存储桶的读写权限,可以注入管理员角色或其他恶意资源,从而在受害者账户中部署恶意资源。

漏洞利用场景

用户在启动后删除 CDK S3 存储桶(例如,为了减少存储桶数量)时,攻击者可能会“劫持”已删除的存储桶,并设置权限和机制以拦截未来用户尝试运行 cdk bootstrapcdk deploy 的操作。

影响范围

研究人员分析了近 4 万个账户,估计约有 1% 的 CDK 用户可能受到此漏洞的影响。

修复措施

AWS 从 CDK v2.149.0 开始修复了该漏洞,通过更严格的所有权检查机制,并更新了文档以强调使用自定义 Qualifier 的重要性。然而,所有使用早期版本启动 CDK 的用户即使在更新 CDK 后仍然存在风险。除了更新 CDK 外,这些用户还需要重新运行 cdk bootstrap 命令,或为 FilePublishingRole CDK 角色定义 IAM 策略条件:cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}

总结

该漏洞暴露了 AWS CDK 在 S3 存储桶命名和权限管理方面的潜在风险。用户应尽快采取修复措施,并遵循 AWS 的最新建议,以避免账户被接管的风险。

阅读 15
0 条评论