Google Suite 是 Google 在訂閱基礎上提供的一套雲計算生産力和協作軟件工具和軟件,它包含 Google 廣受歡迎的網上應用,包括 Gmail、Google 雲端硬盤、Google 環聊、Google 日曆和 Google 文檔,現已更名爲 Google Workspace。研究人員用一種意想不到的方式訪問了來自 Google Cloud Platform ( GCP ) 的 Google Workspace 域數據。
研究人員發現,具有必要權限的 GCP 标識可以爲委托用戶生成訪問令牌,擁有被盜憑證的惡意内部人員或外部攻擊者可以使用此訪問令牌冒充 Google Workspace 用戶,授予對其數據的未經委托訪問或以其名義執行操作。
随着組織越來越依賴基于雲的服務,如 Google Workspace 和 Google Cloud Platform GCP,深入研究其安全功能和漏洞的複雜性變得至關重要。
全域委托濫用概述
模拟
下圖所示的可能的攻擊路徑可能是惡意的内部人員利用他們的訪問權限,例如,在 GCP 項目中具有編輯器權限的開發人員。他們可以通過濫用在 GoogleWorkspace 中被授予全域委托權限的服務帳戶來做到這一點,内部人員有權在同一個 GCP 項目中爲服務帳戶生成訪問令牌。
第二個攻擊場景
啓用了全域委托權限後,惡意的内部人員可以冒充 Google Workspace 域中的用戶,并使用訪問令牌對 API 請求進行身份驗證。通過利用适當的作用域和 API 訪問,内部人員可以訪問和檢索敏感的 Google Workspace 數據,這可能會危及存儲在域内的電子郵件、文檔和其他機密信息。這些攻擊突出了全域委托功能的威脅。
如果攻擊者獲得了附加到計算引擎實例的 GCP 服務帳戶令牌,則會出現最壞的情況。例如,計算引擎默認服務帳戶,默認具有編輯器權限,攻擊者可以利用全域内的委托功能來産生更大的影響。如果在同一個項目中,存在一個具有全域委托的服務帳戶,這可能導緻攻擊者模仿被委托的服務帳戶,并從 GCP 橫向移動,以獲得對 Google Workspace 環境的訪問權。
Google Workspace
在研究人員深入研究 Google Workspace 和 GCP 中最近出現的複雜安全風險之前,有必要了解這些強大的基于雲的服務。
Google Workspace 應用程序是基于雲的協作工具的集合。組織使用 Google Workspace 通過各種工具來提高他們的工作效率和溝通,例如:
電子郵件;
日曆;
文件存儲和共享;
團隊溝通;
工作流自動化;
安全;
政府;
Google Workspace 提供基于角色的訪問控制 ( RBAC ) 功能,并允許管理員爲用戶分配特定的角色,根據用戶的職責和需求授予他們預定義的權限集。這些角色包括:
超級管理員;
組織管理;
一般用戶管理;
每個角色對組織的 Google Workspace 環境的不同方面具有特定的權限和控制。Google Workspace 超級管理員擁有更高的權限和更廣泛的域管理職責,包括向服務帳戶授予全域委托權限。
Google Workspace 管理員還可以定義特定于應用程序的權限,并限制共享和可見性設置。例如,管理員可以實施防止用戶公開共享文件的策略,并限制共享選項,以确保文件保持在委托範圍内。
GCP 和 Google Workspace 之間鏈接的一個常見用例是,托管在 GCP 上的應用程序需要與 Google Workspace 服務之一進行交互。這些服務包括:
Gmail
Calendar
Drive
Docs
這種集成允許應用程序訪問和操作特定于用戶的數據,代表用戶執行操作,或者利用 Google Workspace 的協作和運行功能。
創建與 Google 服務交互、訪問 Google API、處理用戶數據或代表用戶執行操作的應用程序需要一個委托的 GCP 服務帳戶。
什麽是服務帳戶?
服務帳戶是 GCP 中的一種特殊類型的帳戶,它表示非人類實體,如應用程序或虛拟機,它允許他們進行身份驗證并與 Google API 進行交互。服務帳戶與應用程序本身相關聯,而不是與單個最終用戶相關聯。
與用戶帳戶不同,服務帳戶不是 Google Workspace 域的成員。它們不受 Google Workspace 管理員設置的域策略的約束,隻有在被授予全域委托的情況下才能訪問用戶的數據。
什麽是全域委托?
全域委托是 Google Workspace 中的一個功能,它允許 GCP 服務帳戶訪問 Google Workspace 用戶的數據,并代表他們在特定域中進行操作。
當使用全域委托功能時,應用程序可以代表 Google Workspace 域中的用戶進行操作,而不需要單個用戶對應用程序進行身份驗證和委托。
隻有 Google Workspace 超級管理員才能委托應用程序 ( 作爲服務帳戶 ) 代表域中的用戶訪問數據。這種委托稱爲 " 将全域内的權限委托給服務帳戶 "。
全域内的委托是如何工作的?
要使用全域委托功能,需要執行以下步驟:
1. 啓用全域委托:Google Workspace 超級管理員爲服務帳戶授予全域委托,以及允許該訪問的一組 OAuth 範圍。這些範圍詳細說明了服務帳戶可以訪問哪些特定服務和特定操作。
例如,如果隻是 /auth/gmail.readonly 被授予,服務帳戶将有權讀取用戶的 Gmail 郵件,當代表該用戶時,但不能讀取他們的其他工作區數據,如訪問驅動器中的文件。
2. 請求 Google Workspace 訪問令牌:應用程序使用适當的憑據向 Google Workspace 令牌終端發送請求。這包括服務帳戶的客戶端 ID 和客戶端秘密,以及訪問用戶數據所需的範圍。如果請求是有效的,并且服務帳戶已被授予必要的全域委托特權,則令牌終端使用訪問令牌進行響應。應用程序可以使用此訪問令牌在請求的範圍内跨域訪問用戶數據。
3.API 訪問:應用程序在 API 請求中包含訪問令牌作爲委托标頭,它代表服務帳戶作爲身份驗證和委托的證明。
全域委托流
當被授予全域委托時,Google Workspace 中的服務帳戶可以訪問用戶數據,代表用戶進行操作,并驗證對 Google API 的請求。具體的功能和可訪問的數據取決于所定義的範圍。
了解全域委托功能的風險和影響
一旦将全域委托授予 GCP 服務帳戶,具有必要權限的 GCP 标識就可以爲同一項目中的委托服務帳戶生成訪問令牌。然後,惡意的内部人員可以使用此訪問令牌冒充 Google Workspace 用戶,授予對用戶數據的未經委托的訪問權限或代表用戶執行操作。
這種情況造成了全域委托權限的敏感性與 GCP 平台上管理的權限模型之間的不匹配。
Google 文檔包含一個關于全域委托功能的警告通知,其中概述了該功能的重要功能。Google 提到," 隻有超級管理員才能管理全域内的委托,并且他們必須指定應用程序可以訪問的每個 API 範圍。"
谷歌曾建議不要對服務帳戶使用自動角色授予,這會阻止創建默認的谷歌計算引擎服務帳戶。爲了幫助緩解過多的權限,Google 有關于 GCP 角色推薦的手冊。
利用兩端審計日志識别可能存在的濫用攻擊
如果不分析來自兩個平台、GCP 和 Google Workspace 的審計日志,就不可能了解活動全貌,并确定全域内委托功能的任何潛在濫用。服務帳戶密鑰日志的生成将出現在 GCP 日志中,而 Google 密鑰生成和 API 調用執行日志将出現在 Google Workspace 日志中。
在下圖中,有一個來自 Cortex web 界面的 XQL 查詢,它在 GCP 審計日志中搜索服務帳戶密鑰創建。
搜索服務帳戶密鑰創建
Prisma Cloud RQL 語法中的等效查詢
下圖顯示了一個搜索服務帳戶委托日志的 XQL 查詢。
搜索 Google Workspace 訪問令牌請求
下圖顯示了研究人員檢查了誰給了這個服務帳戶全域委托權限,以及什麽時候發生了這種情況。
搜索指示已向服務帳戶授予全域委托權限的日志
下圖顯示了在 Cortex web 界面中觸發的警報,上面顯示 Google Workspace 管理員已啓用對 GCP 服務帳戶的全域委托,并授予他訪問敏感範圍的權限。
Cortex web 界面中的全域委托警報
緩解措施
研究人員已經确定的安全風險在于惡意内部人員濫用全域委托功能所需的初始權限與潛在影響之間的不匹配。
具有域委托權限的服務帳戶的最佳安全實踐是将它們放置在 GCP 層次結構中的高級文件夾中。在 GCP 層次模型中,訪問控制是分層的。
在較高級别設置的權限和策略 ( 例如,組織或文件夾 ) 不會自動授予對較低級别文件夾或項目的訪問權限。訪問控制在層次結構中不向下繼承,這意味着較低級别的文件夾或項目不能自動訪問較高級别的文件夾或項目。
GCP 資源層次樹
此策略緩解了潛在惡意内部人員破壞安全的空間,這些内部人員通常隻擁有上圖所示的 GCP 層次結構中的較低級文件夾或項目的權限。通過确保隻有相同或更高級别文件夾或項目中的實體才能生成對委托服務帳戶的訪問令牌,可以阻止低級區域中的實體獲取服務帳戶的訪問令牌。這有助于防止濫用全域委托權限,并防止對 Google Workspace 數據的訪問。
總結
自 2023 年 6 月以來,研究人員一直在通過各種方式與谷歌讨論這個問題,Axon 團隊也發現了這個問題,他們也向谷歌進行了報告。
在配置此權限時,安全防禦者需要考慮與全域委托功能相關的風險和含義。根據全域委托授予的範圍,攻擊者可以使用該功能來冒充 Google Workspace 用戶,代表他們執行操作并獲得對其數據的未經委托的訪問。
必須強調攻擊者濫用此功能所需的初始權限與可能的影響之間的不匹配。在最壞的情況下,攻擊者或惡意的内部人員可能會洩露敏感的 Google Workspace 數據,例如存儲在域中的電子郵件、文檔和其他機密信息。
Cortex XDR 功能可以識别和警告各種異常活動,例如授予全域委托權限或創建 GCP 服務帳戶密鑰。Cortex XDR 能夠學習 GCP 和 Google Workspace 實體的攻擊,并檢測異常攻擊。
Prisma Cloud CIEM 可以通過以下方式幫助降低風險和過度權限訪問:
1. 風險權限的可見性、警報和自動補救;
2. 使用最低權限訪問補救措施自動查找未使用的權限;
3.Prisma Cloud 威脅檢測功能可以對各種與身份相關的異常活動發出警報,例如來自雲内部或雲外部的異常使用憑據。
4.Prisma Cloud 還可以執行運行時操作監控,并爲與其雲環境相關的任何組件提供治理、風險和遵從性 ( GRC ) 要求。