AWS 云开发工具包缺陷暴露了可完全接管的账户

亚马逊网络服务公司(Amazon Web Services)修复了其开源云开发工具包(Cloud Development Kit)中的一个漏洞,在适当的条件下,攻击者可以完全劫持用户的账户。

云开发工具包(CDK)是AWS开发的一个开源框架,允许开发人员使用Python、TypeScript、JavaScript、Go等编程语言将云应用基础设施定义为代码,然后通过AWS CloudFormation配置这些资源。

据Aqua公司的安全研究人员Ofek Itach和Yakir Kadkoda称,该公司的漏洞猎手于6月27日发现了CDK问题。大约两周后,这家云计算巨头用CDK v2.149.0版本修补了漏洞。

AWS证实,约有1%的CDK用户容易受到这一安全问题的影响,并向The Register保证,它 “调查并解决了所有报告的问题”。AWS 发言人在一封电子邮件声明中写道,该业务部门对 Aqua 报告该漏洞并与 AWS 合作表示赞赏,并补充说:”AWS 已对所有报告的问题进行了调查和解决:

2024 年 7 月 12 日,AWS 发布了 AWS 云开发工具包(AWS CDK)CLI 的更新,该更新实施了额外的安全控制,以减少执行 CDK 部署的客户数据泄露的可能性。使用最新版本的客户需要执行一次性操作来升级其引导资源。AWS 已直接联系可能受影响的客户,通知他们需要升级,并在 CLI 中添加了额外检查,以提醒用户升级。

这个安全问题与早些时候一种被称为 “Bucket Monopoly ”的攻击方法有关(Aqua 也发现了这种方法),在这种方法中,犯罪分子可以预测 AWS S3 存储桶的名称,将恶意代码预先加载到存储桶中,然后坐等目标 org 在不知情的情况下执行这些代码。

一旦发生这种情况,攻击者就可以窃取数据,甚至在用户不知情的情况下接管其账户。

新的问题还涉及这些 S3 存储桶、其名称的可预测性以及攻击者通过 S3 存储桶命名滥用这种可预测性。

在部署任何应用程序之前,CDK 要求用户对其环境进行引导。这会自动创建所需的基础架构组件,包括身份和访问管理(IAM)角色、权限和策略以及 S3 暂存桶。

与之前的 “桶垄断 ”问题一样,这些 CDK 暂存桶遵循一套命名机制–“cdk-{Qualifier}-{Description}-{Account-ID}-{Region}”–只要知道用户的 AWS 帐户 ID 和部署 CDK 的地区,就能轻松预测它们。水叮当二人组指出:

由于前缀始终是 cdk,限定符默认为 hnb659fds,而 assets 是水桶名称中的常量字符串,因此唯一会改变的变量就是帐户 ID 和地区。

事实证明,在启动过程中使用默认限定符的情况数以千计。这样一来,就更容易盗用其他用户的 CDK 暂存数据桶名称,然后实施 “数据桶垄断 ”攻击概述中详述的所有恶行。

伊塔奇和卡德科达写道:“在某些情况下,CDK问题可能允许攻击者获得对目标AWS账户的管理访问权限,导致账户被完全接管。”

所有这些用户都已收到 AWS 的通知。作为修复措施的一部分,AWS 现在确保资产只上传到用户账户内的存储桶,从而防止使用任何不属于启动引导过程的账户的数据。

不过,即使是更新的版本,如果您曾使用旧版本进行引导,也需要用户进行操作: CDK 版本 2.148.1(2024 年 7 月 11 日)或更早。为了降低这一风险,Aqua 建议如下:

如果您正在使用 2.148.1 版或更早版本的 CDK,请升级到 2.149.0 版或更高版本。升级后,重新运行 cdk bootstrap 命令。

或者,你也可以不升级 CDK 版本,而是将 IAM 策略条件应用到 FilePublishingRole CDK 角色:cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region},类似于 AWS 补丁。

此外,正如两人在早期研究中建议的那样,不要使用可预测的 S3 存储桶名称,否则就有可能被攻击者命名为你的存储桶。“取而代之的是,为每个区域和账户生成唯一的哈希值或随机标识符,并将其纳入 S3 存储桶名称中。

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐