如何調查云服務提供商的安全環境
在微軟最近的一篇文章中,他們介紹了最新的安全保護策略以保護用戶免受NOBELIUM活動的影響,該活動針對的是技術服務提供商。
早在 5 月,微軟就認定有俄羅斯背景的 NOBELIUM 黑客組織要對持續數月的 SolarWinds 網絡攻擊事件負責,并同企業、政府和執法機構達成了合作,以遏制此類網絡攻擊的負面影響。早些時候,微軟更進一步地剖析了 NOBELIUM 使用的一套更加復雜的惡意軟件傳送方法。可知其用于造成破壞,并獲得“HTML Smuggling”系統的訪問權。微軟表示,HTML Smuggling 是一種利用合法 HTML5 和 JavaScript 功能、以高度規避安全系統檢測的惡意軟件傳送技術。近年來,這項技術已被越來越多地用于部署網銀惡意軟件、遠程訪問木馬(RAT)、以及其它有針對性的釣魚郵件活動。
Microsoft 365 和 Microsoft Azure 中存在多種類型的信任鏈,包括委派管理權限 (DAP)、Azure 代表管理員(AOBO)、Microsoft Azure Active Directory (Azure AD) 企業對企業 (B2B) 、多租戶 Azure AD 應用程序以及客戶用戶。其中許多信任鏈可以授予對 Azure 資源和 Microsoft 365 的高級訪問權限,這需要密切監視。
委托管理特權
DAP是一種方法,通過它,服務提供商可以管理Microsoft 365環境,而不需要維護本地身份。DAP 對服務提供商和最終客戶都有好處,因為它允許服務提供商使用他們自己的身份和安全策略管理下游租戶。
使用DAP的服務提供商可以在Microsoft 365管理中心通過導航到“設置”,然后到“合作伙伴關系”來識別。在合作伙伴關系中,你可以查看與租戶建立計費關系的所有服務提供商的列表,以及服務提供商是否分配了任何角色。

將 DAP 識別為下游客戶
雖然終端客戶無法看到服務提供商租戶中所有可以對最終客戶租戶進行管理更改的用戶的列表,但他們可以通過查看 Azure Active Directory 登錄日志來查看服務提供商的登錄并過濾服務提供商的跨租戶訪問類型。可以通過單擊“下載”導出結果,并利用這些結果進一步針對 Azure 和 Microsoft 365 進行分類。

服務提供商的登錄
AzureAOBO
Azure AOBO在本質上類似于DAP,盡管訪問的范圍僅限于針對個人Azure訂閱和資源的Azure資源管理器(ARM)角色分配,以及Azure Key Vault訪問策略。Azure AOBO帶來了與DAP類似的管理效益。
要全面評估你訂閱中的AOBO權限,請確保已授予全局管理員訪問權限,后者將評估服務提供商對每個租戶中的所有訂閱的訪問權限。
Azure AOBO訪問是在創建訂閱時添加的,可以在給定Azure訂閱的訪問控制(IAM)中看到。

如果你有多個訂閱,請考慮運行以下命令來識別服務提供商可能訪問資源的訂閱:
Get-AzSubscription | % { Set-AzContext -Subscription $_; Get-AzRoleAssignment -Scope "/subscriptions/$($_.Id)" | Where-Object {$_.DisplayName -like "Foreign Principal for * in Role 'TenantAdmins' (*)"} | Select DisplayName, Scope | Format-Table}
也可以授予csp直接訪問Key Vault的權限。下面的PowerShell命令可以用來識別允許通過AOBO訪問的訪問策略Key vault:
Get-AzKeyVault | % { $vault = Get-AzKeyVault -VaultName $_.VaultName; if ($vault.AccessPolicies | Where-Object {$_.DisplayName -like "Foreign Principal for '*' in role 'TenantAdmins' (*)"}) { $vault |select VaultName,ResourceId | Format-Table}}
除了上述命令之外,Azure Red Team工具Stormspotter也可以用于大型環境。
從前面的步驟中收集的信息將用于在分類期間進行日志審查。
Azure AD B2B
Azure AD B2B帳戶(客戶)可用于管理Azure和Microsoft 365資源。這種管理訪問方法利用了另一個租戶中的個人現有身份,由于對身份控制的限制,Microsoft通常不推薦這種方法。調查人員應注意授予客戶訪問 Microsoft 365 中資源的多種方式,其中可能包括 Exchange Online 角色和 SharePoint Online 角色。
Azure訂閱
為了全面評估你的訂閱中的B2B權限,請確保你已授予用戶訪問權限,這些用戶將根據以下指導評估服務提供商對每個租戶中所有訂閱的訪問:提升訪問權限以管理所有 Azure 訂閱和管理組。
授予 Azure 角色的 Azure AD B2B 身份顯示在 Azure 門戶的訪問控制邊欄選項卡中。

在訂閱中具有所有者角色的客戶用戶
可以使用以下命令系統地識別 Azure AD B2B 身份,該命令將生成可用于定位初始分類的身份和資源列表。
Get-AzSubscription | % { Set-AzContext -Subscription $_; Get-AzRoleAssignment -Scope "/subscriptions/$($_.Id)" | Where-Object {$_.SignInName -like "*#EXT#@*"} | Select DisplayName, SignInName, Scope | Format-Table}.
Microsoft 365 (Azure AD)
可以在 Azure AD 特權身份管理邊欄選項卡的分配邊欄選項卡中查看已在 Azure AD 中授予角色的 Azure AD B2B 身份。過濾“#EXT#”將允許你查看分配給管理角色的所有訪客用戶。

過濾客戶用戶
下面的PowerShell還可以用于識別具有管理角色的客戶帳戶。這些身份信息將用于幫助目標分類。
Get-AzureADDirectoryRole | Get-AzureADDirectoryRoleMember | Where-Object {$_.UserPrincipalName -like "*#EXT#@*"}.
調查信任鏈
在Microsoft 365和Microsoft Azure中,通過信任鏈的活動可以看到多個活動,包括Azure AD審計日志、Azure activity日志、Intune審計日志和統一審計日志。使用在“識別”階段收集的數據,可以執行有針對性的日志檢查,以識別信任鏈濫用。應審查每個日志的來自信任鏈的活動,特別是重點關注促進持久性、數據收集和偵察的活動。

Azure AD
攻擊者通常會使用各種方法來建立持久性,這些方法包括創建新的服務主體、向現有應用程序注冊中添加新的秘密、服務主體、創建新的特權用戶以及接管現有的特權帳戶。你可以通過查看 Azure AD 審核日志并篩選在“識別”階段識別為最近登錄的用戶,來識別通過信任鏈對 Azure AD 所做的修改,比如:
密碼重置;
修改服務主體;
將用戶添加到特權角色;
對多因素身份驗證(MFA)的更改;
創建新用戶;
統一審計日志
統一審核日志可用于識別通過 SharePoint Online、Exchange Online、Azure AD 和其他 Microsoft 365 產品中的信任鏈執行的活動。
統一審核日志從 Azure AD 和 Office 365 中提取數據并將這些數據保留至少 90 天,使其成為非常有價值的集中信息來源,。如果應用 E5 許可證,此數據將保留 1 年,使用高級審計的最長可配置保留期為 10 年。
Search-UnifiedAuditLog cmdlet 可用于搜索在“識別”階段識別的用戶執行的操作。或者,可以使用 Microsoft 365 Defender 門戶中的 GUI 搜索日志。
Azure活動
攻擊者對Azure資源的訪問使他們能夠竊取數據并橫向移動到連接到目標Azure環境的其他環境。有權訪問訂閱的攻擊者可以部署新資源、通過虛擬機擴展訪問現有資源,或者直接從 Azure 訂閱中竊取數據和密鑰。對Azure資源的訪問和操作可以通過檢查每個訂閱中存在的Azure Activity日志進行審計。
微軟終端管理器
攻擊者可能通過各種信任鏈訪問Microsoft終端管理器,由于Microsoft終端管理器管理設備的配置,因此它是另一個需要查看的重要審核日志。可以在微軟終端管理器門戶的租戶管理邊欄選項卡下訪問微軟終端管理器審核日志。在審計日志中,啟動器“Partner”可用于過濾由Partner發起的操作。在“身份識別”階段被識別為具有特權的客戶用戶所采取的操作將需要通過用戶主體名稱進行搜索。應該檢查這些日志事件,以確保沒有通過識別的信任鏈發生惡意活動。

緩解措施
如果在調查過程中發現并確認惡意活動或發現不需要的和過度放任的信任鏈,則應采取果斷措施阻止或最小化訪問。根據信任鏈的類型,可能需要采取不同的步驟來阻止訪問。在任何正在進行的調查結束之前,不建議完全刪除工件;刪除某些工件可能會延遲或增加完成調查的難度。客戶應該與他們的服務提供商交流以了解他們有哪些保護措施,并且在發生潛在惡意活動時,通知他們的服務提供商以獲得他們在活動驗證方面的幫助。
委托管理權限
如果服務提供商對租戶的日常活動管理不需要DAP,則應該刪除它。在某些情況下,需要權限以方便服務提供商的管理。在這些情況下,微軟將引入細粒度的委派管理員權限 (GDAP),這將允許合作伙伴控制對其客戶工作負載的更細粒度和有時間限制的訪問。
微軟建議服務提供商利用客戶租戶中的命名帳戶來降低風險。如果存在來自服務提供商關系的攻擊證據,建議至少在調查結束之前從關系中刪除被委派的管理員權限。
要刪除委托的管理員權限,請在Microsoft 365管理中心導航到“設置”,然后到“合作伙伴關系”。在伙伴關系中,點擊該關系,然后在詳細信息選項中選擇“刪除角色”。采取此操作將阻止服務提供商以全局管理員或幫助臺管理員的身份訪問租戶。刪除此訪問權限不會更改或更改當前通過服務提供商購買的計費關系或許可證。
AzureAOBO
如果 Azure 訂閱的有效日常管理不需要 Azure AOBO 訪問權限,則應刪除它。如果服務提供商需要訪問 Azure 訂閱,則應該通過添加具有適當角色和權限的外部主體來應用最小權限。如果有證據表明來自服務提供商的攻擊,那么應該從每個Azure訂閱中刪除外部主體。
可以利用 Azure 策略 監控通過 AOBO 授予的權限。你可以在Tenant Root Group部署Azure 策略,如果將外部主體的權限分配給Azure中的資源,則該策略將引發不合規。雖然Azure 策略不能阻止使用外國主體創建訂閱,但它簡化了關于訂閱存在的報告,并允許在需要時自動刪除或阻止創建。
可以通過導航到受影響訂閱上的訪問控制 (IAM) 邊欄選項卡,為服務提供商選擇外部主體,然后刪除 Azure AOBO 權限。

刪除外部主體的 Azure AOBO 權限
安全檢測
日志記錄的集中可用性對于響應和調查潛在事件至關重要,并且是此類 DART 調查的首要障礙。如果組織正在監控其云環境的特權訪問和管理更改,則應該可以發現并警告涉及授權管理特權濫用的惡意活動。
應將云活動日志提取到安全信息和事件管理器 (SIEM) 中并保留以供分析。包括:
Office 365 統一審核日志;
Azure AD 管理員審核日志和登錄日志;
Microsoft終端管理器審計日志。
可以利用Azure活動日志和特定的數據平面日志(如Azure Key Vault和Storage Azure 策略)來強制執行一致的日志標準。
作為事件響應者,當有數量和質量都豐富的可用數據時,DART 最有效。一種感興趣的日志類型是登錄日志;身份事件可以告訴我們很多關于攻擊活動的信息。通常可以在這些日志中識別模式,這些模式可以像 IP 地址匹配一樣簡單,也可以像 UserAgent 字符串、時間和應用程序 ID 匹配一樣復雜。
話雖如此,最關鍵的日志記錄是管理活動的日志記錄。管理帳戶的任何使用或執行的操作都非常重要,應受到監控,在企業環境中,大多數更改通常是在批準的更改窗口期間進行的,應評估此范圍之外的更改的有效性和完整性。
日志本身是很有用的,但對于及時顯示不尋常或惡意活動,警報是至關重要的。Microsoft 365 Defender 門戶有一些有用的內置警報來識別可疑活動。比如:
提升Exchange管理權限;
啟動或導出eDiscovery搜索;
創建轉發或重定向規則;
還可以創建自定義警報以提醒其他類型的活動,另一個比較好用的警報工具是 Microsoft Defender for Cloud Apps(以前稱為 Microsoft Cloud App Security)。此工具可以從 Azure AD、Office 365、Azure、Defender for Endpoint、Defender for Identity 以及許多第三方服務中提取數據。策略引擎可用于基于內置模板或自定義定義創建警報策略。以下是一些模板化策略的例子:
來自非公司IP地址的管理活動;
可疑的管理活動;
向OAuth應用程序添加可疑憑證;
可疑的OAuth應用程序文件下載活動;
多個虛擬機創建活動;
微軟安全建議
微軟建議客戶定期與服務提供商進行交流,以了解為訪問其租戶設置的安全控制。應該密切監視服務提供商對資源的訪問,如果一段時間未使用,則應按照嚴格的最低權限流程進行刪除。
保護管理訪問的一些具體方法包括使用即時管理解決方案,例如特權身份管理,包括定期審查管理員以確保仍然需要他們的訪問。MFA 也很關鍵,不僅是啟用 MFA,還要確保所有管理員都注冊了 MFA 方法。
參考及來源:
https://www.microsoft.com/security/blog/2021/11/22/how-to-investigate-service-provider-trust-chains-in-the-cloud/