偵測和補救非法同意授與
提示
您知道您可以免費試用 適用於 Office 365 的 Microsoft Defender 方案 2 中的功能嗎? 在 Microsoft Defender 入口網站試用中樞使用 90 天 適用於 Office 365 的 Defender 試用版。 瞭解誰可以在 Try 適用於 Office 365 的 Microsoft Defender 上註冊和試用版條款。
總結 瞭解如何在 Microsoft 365 中辨識和補救非法同意授與攻擊。
Microsoft 365 中的非法同意授與攻擊為何?
在非法同意授權攻擊中,攻擊者會建立已註冊 Azure 的應用程式,要求存取連絡人資訊、電子郵件或文件等資料。 然後,攻擊者誘騙使用者授權該應用程式同意透過網路釣魚攻擊,或透過插入非法程式碼到信任的網站,來存取其資料。 在非法應用程式獲得同意之後,它會具有數據的帳戶層級存取權,而不需要組織帳戶。 例如,重設密碼或需要多重要素驗證 ( (MFA) ) 的一般補救步驟無法有效抵禦這種類型的攻擊,因為這些應用程式是組織外部的。
這些攻擊會使用一種互動模型,假設呼叫資訊的實體是自動化的,而不是人為。
重要事項
您懷疑您目前是否遇到來自應用程式的非法同意授與問題? Microsoft Defender for Cloud Apps 具有可偵測、調查及補救 OAuth 應用程式的工具。 本 Defender for Cloud Apps 文章的教學課程概述如何調查具風險的 OAuth 應用程式。 您也可以設定 OAuth 應用程式原則 來調查應用程式要求的許可權,哪些使用者正在授權這些應用程式,並廣泛核准或禁止這些許可權要求。
在 Microsoft 365 中,非法同意授與攻擊看起來像什麼?
您需要搜尋 稽核記錄 以尋找簽署,也稱為「入侵指標 (IOC) 此攻擊。 如果組織擁有許多 Azure 註冊應用程式和大量使用者,最佳做法就是每週檢閱您的組織同意授權。
尋找此攻擊徵象的步驟
開啟 Microsoft Defender 入口https://security.microsoft.com網站,然後選取 [稽核]。 或者,若要直接前往 [稽核] 頁面,請使用 https://security.microsoft.com/auditlogsearch。
在 [ 稽核 ] 頁面上,確認已選取 [ 搜尋] 索 引卷標,然後設定下列設定:
- 日期和時間範圍
- 活動:確認已選取 [顯示所有活動的結果 ]。
當您完成時,請選取 [ 搜尋]。
選取 [ 活動 ] 資料行來排序結果,並尋找 [ 同意應用程式]。
從清單中選取專案,以查看活動的詳細數據。 檢查IsAdminConsent是否設定為 True。
注意事項
發生事件之後,對應的稽核記錄專案可能需要 30 分鐘到 24 小時才會顯示在搜尋結果中。
稽核記錄保留並可在稽核記錄中搜尋的時間長度取決於您的Microsoft 365 訂閱,特別是指派給特定用戶的授權類型。 如需詳細資訊,請參閱稽核記錄。
值為 true 表示具有全域管理員存取權的人員可能已授與數據的廣泛存取權。 如果這個值非預期,請採取步驟來 確認攻擊。
如何確認攻擊
如果您有一或多個先前列出的 IOC 實例,您需要進行進一步的調查,以確認攻擊是否發生。 您可以使用這三種方法之一來確認攻擊:
- 使用 Microsoft Entra 系統管理中心 來清查應用程式及其許可權。 這個方法很徹底,但如果您有許多用戶要檢查,一次只能檢查一位使用者,這會非常耗時。
- 使用 PowerShell 來清查應用程式及其權限。 這是最快也最徹底的方法,而且負擔最小。
- 讓您的使用者個別檢查其應用程式和授權,並將結果報告給系統管理員以進行修正。
使用您組織中的存取權來清查應用程式。
您有下列選項可清查使用者的應用程式:
- Microsoft Entra 系統管理中心。
- PowerShell。
- 讓使用者個別列舉自己的應用程式存取權。
使用 Microsoft Entra 系統管理中心的步驟
您可以使用下 Microsoft Entra 系統管理中心 來查閱任何個別使用者已授與權限的應用程式:
- 在 開啟 Microsoft Entra 系統管理中心https://entra.microsoft.com,然後移至 [識別>使用者>] [所有使用者]。 或者,若要直接移至 [使用者>所有使用者],請使用 https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserManagementMenuBlade/~/AllUsers/menuId/。
- 按兩下 [ 顯示名稱 ] 值,尋找並選取您想要檢閱的使用者。
- 在開啟的使用者詳細數據頁面上,選取 [ 應用程式]。
這些步驟會顯示指派給使用者的應用程式,以及應用程式擁有的許可權。
請您的使用者列舉其應用程式存取權的步驟
請您的使用者前往 https://myapps.microsoft.com,並在那裡查看自己的應用程式存取權。 他們應該能夠查看具有存取權的所有應用程式、查看相關的詳細資料 (包括存取範圍),並能夠撤銷可疑或非法應用程式的權限。
PowerShell 中的步驟
驗證非法同意授與攻擊的最簡單方式是執行 Get-AzureADPSPermissions.ps1,這會將租使用者中所有使用者的所有 OAuth 同意授與和 OAuth 應用程式傾印到一個 .csv 檔案中。
必要條件
- 已安裝 Azure AD PowerShell 程式庫。
- 腳本執行所在組織中的全域管理員許可權。
- 您執行文稿之電腦上的本機系統管理員許可權。
重要事項
強烈建議您在系統管理員帳戶上要求多重要素驗證。 此指令碼支援 MFA 驗證。
Microsoft 建議您使用權限最少的角色。 使用較低許可權的帳戶有助於改善組織的安全性。 全域系統管理員是高度特殊權限角色,應僅在無法使用現有角色的緊急案例下使用。
注意事項
Azure AD Powershell 預計於 2024 年 3 月 30 日淘汰。 若要深入瞭解,請閱讀 淘汰更新。
建議您移轉至 Microsoft Graph PowerShell,以與 Microsoft Entra ID (先前的 Azure AD) 互動。 Microsoft Graph PowerShell 允許存取所有Microsoft圖形 API,而且可在 PowerShell 7 上使用。 如需常見移轉查詢的解答,請參閱 移轉常見問題。
使用本機系統管理員許可權登入您要執行腳本的計算機。
從 GitHub 下載或複製 Get-AzureADPSPermissions.ps1 腳稿到易於尋找和記住的資料夾。 此資料夾也是寫入「permissions.csv」輸出檔案時需要寫入的位置。
在您儲存文本的資料夾中,以系統管理員身分開啟提升許可權的PowerShell工作階段。
使用 Connect-MgGraph Cmdlet 連線到您的目錄。
執行此 PowerShell 命令:
.\Get-AzureADPSPermissions.ps1 | Export-csv -Path "Permissions.csv" -NoTypeInformation
指令碼會產生一個名為「Permissions.csv」的檔案。 依照下列步驟尋找非法應用程式權限授權:
在 [ConsentType] 數據行 (欄 G) 搜尋 “AllPrinciples” 值。AllPrincipals 許可權可讓用戶端應用程式存取租用中每個人的內容。 原生Microsoft 365 應用程式需要此許可權才能正確運作。 必須仔細檢閱具有此權限的每一個非 Microsoft 應用程式。
在 [許可權] 資料行 (欄 F) 中,檢閱每個委派應用程式對內容的許可權。 尋找「讀取」和「寫入」許可權或「全部」許可權,並仔細檢閱這些許可權,因為它們可能不適當。
檢閱已獲同意授權的特定使用者。 如果高配置檔或高價值的使用者有不適當的同意,您應該進一步調查。
在 [ClientDisplayName] 欄 (欄 C) 中,尋找看起來可疑的應用程式。 應仔細檢查名稱拼錯、名稱超級簡單名稱或名稱像駭客的應用程式。
判斷攻擊的範圍
完成清查應用程式存取之後,請檢閱 稽核記錄 以判斷缺口的完整範圍。 搜尋受影響的使用者、非法應用程式有權存取您組織的時間範圍,以及應用程式擁有的權限。 您可以在 Microsoft Defender 入口網站中搜尋稽核記錄。
如何阻止及修復非法同意授權攻擊
在您識別出具有非法許可權的應用程式之後,您有數種方式可以移除該存取權:
您可以執行下列步驟,撤銷應用程式在 Microsoft Entra 系統管理中心 中的權限:
- 在 開啟 Microsoft Entra 系統管理中心https://entra.microsoft.com,然後移至 [識別>使用者>] [所有使用者]。 或者,若要直接移至 [使用者>所有使用者],請使用 https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserManagementMenuBlade/~/AllUsers/menuId/。
- 按兩下 [ 顯示名稱 ] 值,尋找並選取受影響的使用者。
- 在開啟的使用者詳細數據頁面上,選取 [ 應用程式]。
- 在 [ 應用程式] 頁面上,按兩下 [ 名稱 ] 值來選取非法應用程式。
- 在開啟的 [ 指派詳細數據 ] 頁面上,選取 [ 移除]。
您可以依照 Remove-MgOauth2PermissionGrant 中的步驟,撤銷 PowerShell 的 OAuth 同意授與
您可以依照 Remove-MgServicePrincipalAppRoleAssignment 中的步驟,撤銷 PowerShell 的服務應用程式角色指派。
您可以停用受影響帳戶的登入,這會停用應用程式對帳戶中數據的存取。 此動作不適用於用戶生產力,但可以是快速限制攻擊結果的短期補救措施。
您可以關閉組織中的整合式應用程式。 此動作十分嚴重。 雖然它可防止使用者不小心授與惡意應用程式的存取權,但也會防止所有使用者將同意授與任何應用程式。 我們不建議此動作,因為它會嚴重降低第三方應用程式的用戶生產力。 您可以遵循開啟 或關閉整合式應用程式中的步驟來關閉整合式應用程式。
另請參閱
- 企業應用程式中列出的應用程式 會逐步引導系統管理員在發現有非預期的應用程式可存取數據之後,可能想要採取的各種動作。
- 快速入門:向 Microsoft 身分識別平台 註冊應用程式是同意和許可權的高階概觀。
- 設定令牌存留期原則 會提供各種同意相關文章的連結。
- Microsoft Entra ID 中的應用程式和服務主體物件提供應用程式模型核心的應用程式和服務主體物件概觀。
- 管理應用程式的存取權 是系統管理員管理使用者對應用程式存取權之功能的概觀。