一、 概述

近日,綠盟科技星云實驗室與北京豪密科技有限公司聯合推出了一項云攻防技術培訓課程。該課程旨在根據客戶需求,為客戶提供專題培訓,幫助客戶熟悉常見的云安全架構,并提供云攻防技術理解,同時結合模擬攻擊實驗提升攻防能力。該課程參與學員涵蓋了特殊行業的單位、國企等十多家單位。課程共分為六個章節,分別就云計算基礎、云上攻擊路徑、云上資產發現與信息收集、云服務層攻防、云原生安全攻防以及虛擬化安全攻防進行了詳細介紹。

本系列文章旨在以科普為目的面向各位讀者推出,本文是該系列的第二篇,主要介紹的內容是云上攻擊路徑,從傳統攻防和云上攻防的異同點切入,結合一些常見的云上攻擊場景,介紹了云計算場景存在的攻擊路徑。

二、云上攻擊路徑

2.1 

傳統攻防與云上攻防的異同點

隨著云計算的不斷發展,企業逐漸將業務部署上云,由于云環境的復雜以及虛擬化技術的應用比例越來越高,傳統攻防的手法可能并不適用云計算場景。因此需要對比分析云上攻防與傳統攻防的異同點,從而對云計算攻防有更全面的認識。

圖1 云計算發展階段

圖1梳理了云計算的發展階段,主要分為:服務器虛擬化階段、私有云&桌面虛擬化階段、公有云&混合云階段。而虛擬化技術作為云計算實現的重要支撐,在發展過程中被應用的比例越來越高,從這一規律表明,云計算攻防的主要關注點其實是虛擬化技術。

圖2 OWASP Top 10 2017版至2021版

圖2展示了OWSAP(Open Web Application Security Project)TOP 10從2017年至2021年的變化,表明傳統攻防如今更關注的安全風險是失效的訪問控制、加密機制失效、注入、不安全設計等。

而國際云安全聯盟(簡稱CSA)在2022年發布的《云計算的11類頂級威脅》[1]報告中指出云計算環境中突出的安全風險:

1. 身份、憑據,訪問和管理密鑰、特權賬號管理的不足

2. 不安全的接口和API

3. 配置不當和變更控制的不足

4. 缺乏云安全架構和戰略

5. 不安全的軟件開發

6. 不安全的第三方資源

7. 系統漏洞

8. 云計算數據的意外泄露

9. 無服務器和容器化工作負載的配置不當和利用

10. 有組織的犯罪、黑客和APT攻擊

11. 云存儲數據泄露

感興趣的可以閱讀原報告,在此不做贅述。

通過對比傳統攻防與云計算攻防關注的風險點可以看出兩者的區別:

- 攻擊面:云計算攻防涉及的攻擊面不止包含傳統攻防中的資產和服務,同時增加了云計算獨有的一些資產,如云服務資源、云管理平臺等。

- 攻擊復雜度:由于虛擬化技術、資源共享、相對復雜的架構,導致云計算攻防的邏輯層次更加復雜,攻擊路徑更加靈活多變,因此攻擊復雜度變得更高。

2.2 

云上橫向、縱向攻擊路徑

那么云計算都存在哪些攻擊路徑呢?參考騰訊安全《2019云安全威脅報告》[2]和《云上攻防:RED TEAMING FOR CLOUD》[3],可以總結云計算中的橫向、縱向攻擊路徑如下:

圖3 騰訊《2019云安全威脅報告》云計算攻擊路徑全景圖

其中縱向攻擊路徑包括以下幾種(縱向攻擊指通過互聯網、自外向內的攻擊路徑):

1. 利用裸金屬服務器管理接口

2. 利用租戶虛擬機逃逸

3. 獨立租戶 VPC 實例模式的容器和微服務網絡攻擊

4. 共享集群模式容器和微服務網絡攻擊

5. SaaS 服務共享集群模式攻擊

6. 惡意攻擊者針對云服務平臺業務互聯網絡的旁路攻擊

7. 惡意攻擊者針對云服務平臺開發/運營網絡的旁路攻擊

8. 針對云用戶控制臺界面或開放式 API 的攻擊

橫向攻擊路徑包括以下幾種(橫向攻擊路徑指在獲取一定權限后,利用網絡或共享資源進行橫向移動的路徑):

1. 利用租戶資源和訪問權限,在 VPC 內進行橫向遷移攻擊,或作為跳板攻擊其他用戶

2. 利用微服務不同功能組件間共享資源或權限的橫向遷移

3. 利用共享數據庫集群間的資源或數據進行橫向遷移

4. 當成功實現虛擬機逃逸后,利用 Hypervisor 和硬件層面的控制面網絡和接口進行橫向遷移

5. 利用網絡虛擬化的共享資源、威脅接觸面和控制面網絡進行橫向遷移

6. 利用存儲虛擬化的共享資源、威脅接觸面和控制面網絡進行橫向遷移

7. 利用云平臺管理面/控制面和業務面間的接口進行橫向遷移

8. BMC 等固件破壞后獲取進行物理機層面的潛伏,或利用底層硬件權限反向獲取 Hypervisor OS 或租戶虛擬機 OS 的數據和系統訪問權

在實際的滲透測試過程中,需要根據信息收集的結果以及預期的攻擊目標,選取正確的攻擊路徑。

2.3 

常見云上攻擊場景

下面通過一些具體的攻擊場景來加深對云計算攻擊路徑的理解。

場景一:利用泄露的云憑據&IAM服務

路徑:竊取云憑據->查詢憑據權限->利用IAM服務進行權限提升->橫向移動->控制云服務資源

公有云廠商在提供各類云服務時,為了便于用戶在多種場景下(如在業務代碼中調用云服務功能或引入云上數據資源時)使用,大部分都支持API調用的方式,此時便涉及到訪問控制的問題。用戶使用云廠商生成的憑證(如圖4所示)可成功訪問該憑證對應權限下的云服務資源:

圖4 某云廠商API密鑰

當通過多種途徑收集到泄露的云憑據時,一旦憑據被賦予高權限或風險權限,則可以直接訪問云服務資源或利用IAM服務進行權限提升從而訪問云服務資源,感興趣的可以閱讀《云憑證的泄露與利用》[4]和《淺談云上攻防系列——云IAM原理&風險以及最佳實踐》[5]進行詳細了解。

場景二:利用實例元數據服務

路徑:應用漏洞利用->獲取元數據服務訪問權限->角色信息獲取->角色臨時憑據獲取->臨時憑據權限查詢->橫向移動->控制云服務資源->數據竊取

元數據服務是一個內網服務,通過該服務,可以在主機內取得當前云主機實例的元數據,便于對管理和配置實例,但其中也包含一些敏感數據,如角色的臨時訪問憑據。當攻擊者獲取到云服務器實例的訪問權限時,可以利用元數據服務獲取角色的臨時憑據進行權限提升和橫向移動。

圖5 Capital One攻擊事件

圖5展示了2019年Capital One公司發生的攻擊事件原理,攻擊者通過結合SSRF漏洞與元數據服務獲取到了角色的臨時憑據,然后利用該憑據橫向移動至AWS S3存儲桶中,最終竊取了S3存儲桶中的敏感數據。

場景三:利用容器逃逸

路徑:應用程序漏洞利用->獲取容器權限->容器逃逸->橫向移動至其他容器或其他節點->尋常有效憑據->橫向移動->控制云服務資源

隨著容器技術的火熱發展與落地,越來越多企業將業務以容器化形式部署,因此通過應用程序漏洞等方式可能獲取到的僅僅是容器內的權限,并不能滿足攻擊的最終目標。在《容器逃逸技術概覽》[6]中,將容器逃逸利用手法劃分為四種:

1. 危險配置導致的容器逃逸

2. 危險掛載導致的容器逃逸

3. 相關程序漏洞導致的容器逃逸

4. 內核漏洞導致的容器逃逸

通過其中任一手法都可能逃逸至宿主機,從而橫向至其他容器或其他節點,然后尋找有效憑據,最終獲取云服務資源權限。

場景四:利用錯誤配置的存儲桶

路徑:存儲桶服務發現->使用憑據訪問IAM->竊取云憑據->查詢憑據權限->權限提升->橫向移動->獲取云服務器資源

對象存儲也稱為基于對象的存儲,是一種計算機數據存儲架構,旨在處理大量非結構化數據。 與其他架構不同,它將數據指定為不同的單元,并捆綁元數據和唯一標識符,用于查找和訪問每個數據單元。這些單元(或對象)可以存儲在本地,但通常存儲在云端,以便于從任何地方輕松訪問數據。大部分公有云廠商都推出了對象存儲服務,如AWS S3、Azure Blob、阿里云OSS等。存儲桶在使用時會涉及公開訪問、公開讀寫等權限設置,一旦配置不當,便有可能造成安全風險。

場景五:利用虛擬機逃逸

路徑:應用程序漏洞利用->獲取云服務器控制權->虛擬機逃逸->獲得宿主機控制權->橫向移動->接管宿主機上虛擬機資源

當通過應用程序漏洞獲取云服務器控制權時,可通過一些信息收集手段判斷當前所處的環境,或是容器、或是虛擬機、或是物理機,具體可參考《虛擬機環境檢測》[7]。當自身處于虛擬機環境中時,為了進一步擴大權限,便可以采用虛擬機逃逸,獲取宿主機權限,嘗試橫向移動,從而接管宿主機上所有虛擬機資源。

場景六:對企業內部網絡、運維或管理內部網絡進行攻擊

路徑:釣魚郵件攻擊->進入企業內部網絡->探測云管理平臺->橫向移動->獲取云平臺權限->接管云服務

在2022年的RSAC會議中,來自Varonis公司的Matt Radolec分享了議題《Pain in the Apps — Three Attack Scenarios Attackers Are Using to PWN SaaS》,主要介紹了三種針對SaaS平臺的攻擊場景,每種攻擊場景都始于釣魚郵件。當企業員工意識薄弱,容易受到釣魚郵件攻擊,可能被攻擊者獲取內網權限或竊取云平臺的Cookie。然后攻擊者利用內網權限或Cookie獲取云平臺權限,最終接管云服務,對企業安全造成破壞。

場景七:Kubernetes集群中的滲透測試

路徑:應用程序漏洞利用->獲取容器權限->容器逃逸->接管節點->利用高權限ServiceAccount橫向移動->接管集群

與場景三中類似,當業務以集群模式部署時,可通過容器逃逸技術獲取宿主機權限。Kubernetes集群中使用RBAC模型來進行授權[9]。當集群內的角色或集群角色權限配置不當時,可被攻擊者用來橫向移動或權限提升,從而接管集群。詳情可見《容器逃逸即集群管理員?你的集群真的安全嗎?》[10],其中介紹了一些利用風險的RBAC權限接管集群的案例,在此不做贅述。