在黑帽大會美國分會場上揭露6項AWS服務的重大安全漏洞

在黑帽大會美國分會場上揭露6項AWS服務的重大安全漏洞

2024.08.29

亞馬遜雲端服務(AWS)旗下六項服務存在重大漏洞,可能導致帳號被盜控、遠端程式碼執行、人工智慧資料遭竄改、敏感資訊外洩等情況。這些漏洞是由Aqua Security的Nautilus研究團隊在週三舉行的黑帽大會(Black Hat USA)上公開揭露。

Aqua Security的資深安全研究員Yakir Kadkoda和Ofek Itach,以及前任研究員Michael Katchinskiy,在這場名為「透過陰影資源入侵AWS帳號」(Breaching AWS Accounts Through Shadow Resources)的會議中,介紹了他們的研究發現。

AWS發言人向SC Media表示:「我們已獲知這項研究。我們可以確認已修復這個問題,所有服務都運作正常,客戶無需採取任何行動。」

這個名為「陰影資源」(Shadow Resources)的攻擊向量源自於各種AWS服務自動產生S3儲存貯體的機制,包括CloudFormation、Glue、EMR、SageMaker、ServiceCatalog和CodeStar。使用者在啟動新專案或上傳檔案時,可能不知道這些儲存貯體會被建立,而且儲存貯體的命名方式有一定的規則性,可能會被攻擊者加以利用。

這個名為”陰影資源”(Shadow Resources)的漏洞首先在AWS的CloudFormation服務中被發現,後來經過進一步調查,發現還存在於另外五項服務中。該漏洞使得攻擊者能夠利用目標帳戶尚未建立的預設桶名稱,提前建立自己的S3儲存桶。對於CloudFormation服務而言,自動產生的S3儲存桶名稱遵循一種格式,包含一個服務層級的固定字首、一個對於指定AWS帳戶而言是唯一的雜湊值,以及建立該儲存桶的區域。

因此,如果攻擊者知道目標帳戶的唯一雜湊值,他們就能在AWS的33個區域中任意一個區域,建立包含CloudFormation字首、該雜湊值的儲存桶。由於整個AWS系統中不會有兩個S3儲存桶名稱完全相同,當目標使用者的帳戶嘗試建立與攻擊者已佔用名稱相同的儲存桶時,就會產生錯誤 – 或者更糟的情況發生。

AWS漏洞允許攻擊者在其他使用者的”陰影儲存桶”中蹲點
研究人員發現,在CloudFormation的情況下,如果攻擊者已經在某個區域佔用了預測的儲存桶名稱,當目標使用者嘗試從該區域上傳範本檔案時,該檔案就會被放置在攻擊者的儲存桶中,但前提是攻擊者已經為該儲存桶設定了公開存取權限,並為CloudFormation服務賦予讀寫權限。

一旦獲得對受害者上傳檔案的存取權,攻擊者不僅能竊取儲存在範本中的潛在敏感資訊,還能夠操縱範本來植入後門,進而可能導致帳戶被攻陷。攻擊者可以利用範本上傳和執行之間的時間差,使用Lambda函數在範本被放置在攻擊者的儲存桶時自動注入後門。

研究人員描述的後門形式是一個新的管理員角色,日後可被攻擊者利用。不過,研究人員指出,只有在上傳範本的受害者使用AWS管理主控台時擁有建立新管理員角色的權限,這種後門才能被建立。

由於這個漏洞,攻擊者實際上可以在CloudFormation自動建立但目標本身可能並不知情的”陰影儲存桶”中蹲點,只等待目標首次在新區域建立CloudFormation堆疊時觸發Lambda函數並注入後門。

研究人員在部落格文章中寫道:”雖然這個過程可能需要一些時間,但你必須考慮到在擁有數百個帳戶和數千名使用者的大型組織中,發生的機率是很高的。”

多個AWS服務先前曾受到「陰影資源」和「Bucket壟斷」攻擊的影響
在發現AWS CloudFormation存在「陰影資源」漏洞後,研究人員將調查範圍擴大到其他AWS服務,並發現Glue、EMR、SageMaker、ServiceCatalog和CodeStar等服務也受到了類似漏洞的影響。

所有這些服務在新的使用者操作觸發時,例如建立新的Glue作業、新的EMR Studio或新的SageMaker Canvas時,都會建立「陰影儲存貯體」來儲存特定資源,而這些儲存貯體的命名方式具有可預測性,包括固定的字首、AWS帳戶ID和區域代碼。

根據不同的服務,利用這個漏洞可能會造成不同的影響:操縱Glue作業的程式碼可能導致遠端程式碼執行(RCE)、在EMR上傳的Jupyter筆記本中注入程式碼可能引發跨站腳本攻擊(XSS)、讀取和寫入SageMaker資料集可能導致AI訓練資料集被竊取或竄改,而佔用CodeStar S3儲存貯體則可能造成服務中斷(DoS),因為無法使用其他帳戶的儲存貯體建立新專案。

攻擊者可以建立所謂的「Bucket壟斷」來提高攻擊成功率,對於任何已知的使用者雜湊值或帳戶ID,佔用所有區域中所有可能的儲存貯體名稱。這樣一來,目標在任何區域中建立的新儲存貯體都將落入攻擊者的控制。

Aqua Security於2024年2月首次向AWS安全團隊報告了這些漏洞,AWS隨後迅速作出回應,並於2024年6月完全解決所有漏洞。

AWS帳戶ID和唯一雜湊值應被視為機密資訊
雖然「陰影資源」漏洞已經被AWS解決,但研究人員指出,他們的發現凸顯了將潛在的識別碼(如AWS帳戶ID)視為機密資訊的重要性。「陰影資源」和「Bucket壟斷」攻擊都依賴於攻擊者獲取受害者的帳戶ID或唯一的CloudFormation儲存貯體雜湊值,因此保護這些值可有效防止攻擊。

研究人員透過在GitHub上進行正則表達式搜索,發現許多暴露的CloudFormation雜湊值和AWS帳戶ID,而已知的AWS帳戶ID清單也可在網路上獲得,這顯示了先前這些已解決漏洞所帶來的威脅範圍。然而,佔用S3儲存貯體的行為仍可能存在隱憂,因為某些開源AWS整合也會自動產生可能具有類似可預測命名規則的S3儲存貯體。為了防止類似、尚未被發現的開源整合和其他服務中的漏洞被利用,研究人員建議使用者避免暴露帳戶ID和雜湊值、實作aws:ResourceAccount條件以確保服務不會使用其他帳戶擁有的儲存貯體、驗證服務使用的儲存貯體所有權,並盡可能為S3儲存貯體使用唯一的名稱,而非遵循已知的命名慣例。

此外,由於利用這個漏洞進行帳戶接管的可能性取決於觸發使用攻擊者S3儲存貯體之使用者的權限等級,這凸顯了在指派使用者角色時遵循最小權限原則的重要性。

相關文章