Aqua Security Software
资安业者Aqua上周揭露了一个曾经存在于AWS Cloud Development Kit(AWS CDK)的安全漏洞,此一漏洞可能允许骇客接管CDK用户帐户,但在AWS收到Aqua通知之后,已于今年10月将其修补,并估计约有1%的CDK用户受到影响。
AWS CDK是个开源的基础设施即程式码(Infrastructure as Code,IaC)开发框架,它让开发人员可透过自己熟悉的程式码来定义云端基础设施,CDK可直接将这些程式码转换成AWS可解释与部署的配置。
要使用AWS CDK之前,开发人员必须先初始化其环境,以替CDK的堆叠部署作准备,在此一程序中,AWS CDK会建立一个暂时的S3储存桶来存放部署资产,该储存桶的命名是唯一的、与使用者帐户有关,而且是可预测的。因此,骇客只要知道目标对象的帐号ID,就能跨所有AWS区域替CDK建立暂存的S3储存桶。
在骇客取得AWS CDK用户的储存桶之后,有两个可能的情况,一是该储存桶属于新用户,根本尚未被建立,因此此一新用户在初始化期间要建立时就会出现错误,二是该储存桶属于旧用户,而且已被该用户移除(所以才能再被建立)。
就算AWS CDK用户手动删除了S3储存桶,但系统在部署时仍会存取该储存桶,因而让骇客有机可趁,修改使用者上传的范本,进而获得目标帐户的完整控制权。
Aqua分析了38,560个AWS帐户,发现当中有2%安装了CDK,并有10%帐户及超过100个储存桶可能受到上述攻击,而AWS则说约有1%的CDK用户受到影响。
在今年6月收到Aqua的报告后,AWS即著手改善,包括在初始化时添增一个新条件,确保它只信任用户帐户中的S3储存桶,以避免CDK将资料传送到不属于初始化程序帐户拥有的储存桶;另也更新文件,鼓励使用者客制化初始化时的资源,以客制化的Qualifier取代预设的hnb659fds。值得注意的是,使用今年7月发表的CDK v2.148.1或是更早的CDK版本仍然受到上述漏洞的影响。
Aqua建议开发人员应将自己的AWS帐户ID视为机密,以免遭到锁定或利用;使用IAM政策中的条件,来避免用户或服务存取不可靠的储存桶;以及不要使用可预测的储存桶名称。