安全企業(yè)Aqua上周披露了一個曾經(jīng)存在于AWS Cloud Development Kit(AWS CDK)的安全漏洞,該漏洞可能允許黑客接管CDK用戶賬戶,但在AWS收到Aqua通知之后,已于今年10月將其修補,并估計約有1%的CDK用戶受到影響。
AWS CDK是個開源的基礎(chǔ)設(shè)施即程序代碼(Infrastructure as Code,IaC)開發(fā)框架,它讓開發(fā)人員可通過自己熟悉的程序代碼來定義云計算基礎(chǔ)設(shè)施,CDK可直接將這些程序代碼轉(zhuǎn)換成AWS可解釋與部署的配置。
要使用AWS CDK之前,開發(fā)人員必須先初始化其環(huán)境,以替CDK的堆棧部署作準備,在該程序中,AWS CDK會創(chuàng)建一個暫時的S3存儲桶來存放部署資產(chǎn),該存儲桶的命名是唯一的、與用戶賬戶有關(guān),而且是可預(yù)測的。因此,黑客只要知道目標對象的賬號ID,就能跨所有AWS區(qū)域替CDK創(chuàng)建暫存的S3存儲桶。
在黑客取得AWS CDK用戶的存儲桶之后,有兩個可能的情況,一是該存儲桶屬于新用戶,根本尚未被創(chuàng)建,因此該新用戶在初始化期間要創(chuàng)建時就會出現(xiàn)錯誤,二是該存儲桶屬于舊用戶,而且已被該用戶移除(所以才能再被創(chuàng)建)。
就算AWS CDK用戶手動刪除了S3存儲桶,但系統(tǒng)在部署時仍會訪問該存儲桶,因而讓黑客有機可乘,修改用戶上傳的范本,進而獲得目標賬戶的完整控制權(quán)。
Aqua分析了38,560個AWS賬戶,發(fā)現(xiàn)其中有2%安裝了CDK,并有10%賬戶及超過100個存儲桶可能受到上述攻擊,而AWS則說約有1%的CDK用戶受到影響。
在今年6月收到Aqua的報告后,AWS即著手改善,包括在初始化時添增一個新條件,確保它只信任用戶賬戶中的S3存儲桶,以避免CDK將數(shù)據(jù)發(fā)送到不屬于初始化程序賬戶擁有的存儲桶;另也更新文件,鼓勵用戶定制化初始化時的資源,以定制化的Qualifier取代默認的hnb659fds。值得注意的是,使用今年7月發(fā)布的CDK v2.148.1或是更早的CDK版本仍然受到上述漏洞的影響。
Aqua建議開發(fā)人員應(yīng)將自己的AWS賬戶ID視為機密,以免遭到鎖定或利用;使用IAM政策中的條件,來避免用戶或服務(wù)訪問不可靠的存儲桶;以及不要使用可預(yù)測的存儲桶名稱。