Jump to content

Cloud-21-illustration_orange.png

雲洩露通常源於配置錯誤的存儲服務或暴露的憑據,越來越多的攻擊專門針對雲計算服務,以竊取相關憑據並非法訪問云基礎設施。這些攻擊的目的就是使目標組織付出經濟或其他方面的代價。

本文重點介紹了兩個雲計算憑據被攻擊的示例。雖然初始訪問階段很重要,但我們將重點關注攻擊期間執行的攻擊後操作,並分享這兩種針對雲基礎設施的攻擊流程。攻擊流程顯示了攻擊者如何濫用竊取的計算憑據來尋找各種攻擊方法(如加密挖掘、數據竊取等),並以意想不到的方式濫用雲服務。

為了檢測下面描述的攻擊,由Amazon Web Services (AWS)和Google cloud概述的雲日誌記錄和監控最佳實踐是必不可少的,因為它們提供了對雲基礎設施級別活動的可見性。這強調了遵循Amazon Web Services和Google Cloud日誌記錄和監控最佳實踐的重要性。

Palo Alto Networks通過Cortex XDR for cloud和Prisma cloud幫助組織解決雲安全問題,Cortex XDR for cloud可檢測雲計算憑據被盜等雲攻擊,Prisma cloud以最少的權限管理身份授權。

雲工作的關鍵原則在深入研究之前,我們應該了解在雲計算中工作的一個非常基本和重要的規則。實體(無論是人還是計算工作負載)都需要合法和相關的憑據才能在基礎設施級訪問云環境。憑據用於身份驗證(驗證實體的標識)和授權(驗證實體被允許做什麼)。

作為一種最佳實踐,當計算工作負載在雲中執行API調用(例如,查詢存儲服務)時,工作負載的相關憑據應該僅專用於它。它們還應該僅供該工作負載或人員使用,而不能供其他任何人使用。

正如我們將在這兩個示例中看到的,有助於降低雲計算憑據攻擊風險的一個重要安全原則是最低權限訪問。特別是,這意味著與這些憑據相關聯的權限應該縮小到使用它們的代碼實際所需的最小權限集。這限制了攻擊者在計算憑據被盜用時可以採取的行動。

攻擊示例1:AWS Lambda憑據受攻擊導致網絡釣魚攻擊攻擊者可以通過竊取Lambda的憑據來執行代表Lambda函數的API調用,這允許攻擊者可以在雲環境中執行多個API調用並枚舉不同的服務,如下圖所示。雖然由於缺乏權限,大多數API調用都不被允許,但該攻擊導致了由攻擊者創建的AWS簡單電子郵件服務(SES)發起的網絡釣魚攻擊。

1.png

攻擊者使用受攻擊的Lambda函數的憑據枚舉雲環境

這種網絡釣魚攻擊不僅給組織帶來了意想不到的成本,也使其他組織面臨額外的風險。

在本示例中,受害者沒有活躍的SES,如果有,攻擊者可能會濫用它來對受害者的組織發起攻擊,或者他們甚至可以使用合法的電子郵件帳戶進行網絡釣魚攻擊。

由於組織使用的雲服務種類繁多,因此很難預測雲攻擊將在何處結束。從雲計算到網絡釣魚並不是只有一個實現方法。

攻擊流攻擊者能夠竊取Lambda的環境變量並將它們導出到攻擊設備(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN)。

當憑據被竊取後,攻擊者通過以下步驟發起攻擊:

WHOAMI - 2022-05-20T20:35:49 UTC攻擊從GetCallerIdentity命令開始,該命令相當於whoami,因為它提供了與憑據相關聯的實體的信息。從響應中,攻擊者可以獲得其他信息,例如被盜的帳戶ID和憑據類型。但是,它們不能確定與身份相關聯的任何權限。

IAM枚舉- 2022-05-20T20:35:55 UTC攻擊的下一個階段是身份和訪問管理(IAM)枚舉,IAM被認為是攻擊的最佳途徑。通過獲得對IAM的訪問權,攻擊者可以提升權限並獲得受害者帳戶的持久性。

IAM枚舉包括兩個API調用,由於缺乏權限而被拒絕:

ListAttachedRolePolicies

ListRolePolicies

可以假設,攻擊者註意到缺少權限,因此僅在兩個命令後終止IAM枚舉(可能是為了避免產生不必要的噪音)。

通用枚舉2022-05-20T20:39:59 UTC在枚舉IAM失敗後,攻擊者開始對不同區域的不同服務進行枚舉。這種技術的噪音很大,因為攻擊者試圖了解目標帳戶的體系結構,更重要的是,獲得可能存在於雲帳戶中的敏感信息的訪問權。

執行的一些主要服務和API調用包括:

存儲枚舉

ListBucketsGetBucketCorsGetBucketInventoryConfigurationGetBucketPublicAccessBlockGetBucketMetricsConfigurationGetBucketPolicyGetBucketTaggingEC2枚舉

GetConsoleScreenshotGetLaunchTemplateDataDescribeInstanceTypesDescribeBundleTasksDescribeInstanceAttributeDescribeReplaceRootVolumeTasks網絡枚舉

DescribeCarrierGatewaysDescribeVpcEndpointConnectionNotificationsDescribeTransitGatewayMulticastDomainsDescribeClientVpnRoutesDescribeDhcpOptionsGetTransitGatewayRouteTableAssociations日誌記錄枚舉

GetQueryResultsGetBucketLoggingGetLogRecordGetFlowLogsIntegrationTemplateDescribeLogGroupsDescribeLogStreamsDescribeFlowLogsDescribeSubscriptionFiltersListTagsLogGroup備份枚舉

GetPasswordDataGetEbsEncryptionByDefaultGetEbsDefaultKmsKeyIdGetBucketReplicationDescribeVolumesDescribeVolumesModificationsDescribeSnapshotAttributeDescribeSnapshotTierStatusDescribeImagesSES枚舉

GetAccountListIdentities通用枚舉

DescribeRegionsDescribeAvailabilityZonesDescribeAccountAttributes後門2022-05-20T20:43:22 UTC在枚舉IAM失敗時,攻擊者試圖通過執行CreateUser命令創建一個新用戶(未成功)。

從雲計算到網絡釣魚攻擊2022-05-20T20:44:40 UTC由於枚舉期間的大多數API調用導致權限被拒絕,因此攻擊者能夠成功枚舉SES。因此,攻擊者通過濫用雲電子郵件服務發起了釣魚攻擊,其中包括執行VerifyEmailIdentity和UpdateAccountSendingEnabled等命令。

逃避檢測2022-05-20T23:07:06 UTC最後,攻擊者試圖通過執行DeleteIdentity命令刪除SES標識來隱藏他的一些活動。

其他情況分析此攻擊的一個非常重要的攻擊指標(IoC)是IP地址50.82.94[.]112。

來自Lambda函數的API調用通常使用為Lambda生成的憑據(包括AccessKeyId)從其IP執行。因此,具有該AccessKeyId的每個API調用都被認為是Lambda函數。然而,在攻擊過程中,攻擊者能夠竊取Lambda的憑據,從而允許攻擊者冒充Lambda。

因此,IP是關鍵的IoC,因為它是檢測冒充Lambda的方法。攻擊者使用竊取的憑據來模擬和執行代表Lambda函數的API調用,但是他們是從一個未連接到Lambda的IP地址執行的,該IP地址也不屬於雲環境。

攻擊示例2:部署加密挖礦的Google Cloud應用程序引擎服務帳戶受攻擊攻擊者能夠竊取Google Cloud應用程序引擎服務帳戶(SA)的憑據,攻擊者有許多方法可以實現這一點,這些方法不一定與雲服務提供商中的任何漏洞有關。例如,在許多示例中,用戶將憑據存儲在不安全的位置,或者使用容易猜到或強行設置的密碼。

在本示例中,被盜竊的SA是默認SA,它具有高權限的角色(項目編輯器)。這允許攻擊者發起攻擊,最終創建了多個用於加密挖掘的核心CPU虛擬機(VM),如下圖所示。

2.png

攻擊者濫用受攻擊的App Engine SA來分配多個雲示例進行竊取攻擊

當攻擊者在受害者的環境中啟動數千個虛擬機時,將顯著增加其預期成本。即使有人在短時間內註意到在他們的環境中發生了這樣的攻擊,它仍然會產生嚴重的攻擊後果。

攻擊流谷歌應用引擎是Google Cloud完全管理的無服務器平台,服務賬戶是令牌。當用戶創建一個App Engine示例時,雲提供商創建一個默認SA,並將其附加到創建的App Engine上。

此應用程序引擎默認SA在項目中具有編輯功能。編輯器具有很高權限,這是攻擊者能夠發起攻擊的關鍵,編輯器允許執行高權限的API調用,例如:

啟動計算工作負載;

FW (Firewall)規則修改;

創建SA密鑰;

權限升級2022-06-16T12:21:17.624 UTC這次攻擊一開始是為了升級權限。如上所述,默認情況下,應用程序引擎的SA對項目具有編輯權限。憑藉這些權限,攻擊者試圖通過將以下對象添加到IAM策略中來添加計算/管理功能:

3.png

正如我們所看到的,SA域前綴中的appspot表示該SA屬於App Engine服務。

允許任何2022-06-16T12:21:29.406 UTC接下來,攻擊者修改了項目級別的FW規則。首先,攻擊者試圖創建一個子網(名為default)。然後,攻擊者將以下規則添加到該子網中:

4.png

此操作進一步推進了攻擊者挖掘加密貨幣的目標,為了實現無限制的加密貨幣挖掘,攻擊者刪除了對網絡級別的任何限制。

注意優先級字段是很重要的。通過將其設置為零,攻擊者的規則被設置為最高優先級,這意味著它將按照現有FW規則的順序首先生效。

挖礦攻擊2022-06-16T12:21:38.916 UTC安裝完成後,攻擊的主要階段就開始了,在多個區域啟動虛擬機。

雖然攻擊者可以創建高CPU設備,但在本示例中,攻擊者反而創建了一個配備了四個高性能GPU(例如nvidia-tesla-p100)的標準虛擬機(例如n1-standard-2):

5.png

總的來說,在這次攻擊中創建了超過1600個虛擬機。

後門2022-06-16T13:25:56.037 UTC攻擊者假設用於攻擊的SA密鑰會被檢測到並被刪除,因此通過執行google.iam.admin.v1.CreateServiceAccountKeyAPI調用創建了多個SA密鑰供以後使用。

其他情況分析就像我們討論的第一個示例一樣,IP是一個重要的IoC。在這種情況下,攻擊是從多個IP(總共九個不同的IP)發起的,其中一些是活動的Tor出口節點。

同樣,我們希望從雲環境中的IP使用App Engine的SA,它絕對不應該從Tor出口節點使用。

修改防火牆規則是此類攻擊中常用的技術,許多組織強制執行拒絕訪問活動挖礦池的網絡流量規則,因此攻擊者必須修改防火牆規則來實現他們的目標。

最後,通過編輯名為default的網絡,攻擊者試圖逃避檢測。除非禁用此選項,否則默認情況下,將使用默認網絡創建每個新項目。攻擊者似乎試圖利用這一點,從而避免創建自己的網絡。

總結:竊取計算令牌是一個日益嚴重的威脅竊取計算工作負載的令牌是上述兩個攻擊示例的共同點,雖然上述兩個示例都涉及無服務器服務,但此攻擊向量與所有計算服務都相關。

需要強調的是,這種類型的攻擊可能來自不同的攻擊路徑,包括應用程序漏洞或零日漏洞(如Log4Shell),而不僅僅來自錯誤配置或糟糕的雲安全態勢管理(CSPM)。

為了處理此類攻擊,雲審計日誌對於檢測和調查與響應(IR)都至關重要。對於無法安裝代理的無服務器工作負載,雲審計監控更為關鍵,因此更難阻止此類攻擊。

AWS和Google Cloud提供的日誌記錄和監控最佳實踐為如何防止此類情況提供了明確的指導。 AWS GuardDuty服務還可以幫助檢測和警告類似的攻擊,例如從另一個AWS帳戶使用的EC2示例憑據。另一種預防方法是為Lambda配置接口端點策略,限制Lambda僅在VPC內使用。

Palo Alto Networks的用戶可以通過以下方式免受計算令牌盜竊Cortex XDR for cloud,通過將來自云主機、雲流量和審計日誌的活動與端點和網絡數據集成,為安全團隊還原完整事件過程。

Prisma Cloud幫助組織管理身份授權,解決了在雲環境中管理IAM的安全挑戰。 Prisma Cloud IAM安全功能自動計算跨雲服務提供商的有效權限,檢測過度許可的訪問,並建議獎權限降到最低。

了解如何使用Unit 42雲事件響應服務(用於調查和響應攻擊)和網絡風險管理服務(用於在攻擊發生前評估你的安全態勢),從而保護組織免受雲環境攻擊。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...