語系:
Microsoft 透過 Entra ID 中的應用程式公開 API,以允許第三方應用程式在 Microsoft Entra ID 本身、Microsoft 365 (O365)、Azure 雲端等產品中執行動作。「API 權限」會保護這些 API 的存取權,只有需要這些 API 的服務主體才能擁有權限。此權限核准程序叫做「應用程式角色指派」或「同意授予」。
若服務主體擁有某些 Microsoft API 的特定權限 (請見下文),可能會對整個 Microsoft Entra 租用戶帶來嚴重威脅,因為服務主體會擁有強大的權限,卻同時比高權限管理員角色 (例如全域管理員) 不顯眼。攻擊者可濫用這一點繞過多因素驗證 (MFA) 並阻止使用者重設密碼。
在正當的情況下,權限會增加租用戶的攻擊破綻。在不正當的情況下,可能是提升權限或長期潛伏等惡意嘗試。
如 Microsoft 說明文件權限和同意簡介所述,Microsoft Entra ID 有兩種類型的 API 權限:
本曝險指標會檢查這兩種類型的權限,並只會報告有關服務主體的內容,因為 API 權限僅適用於服務主體而非使用者。
本曝險指標也會著重於允許存取 Microsoft Graph API 和舊型 Azure AD Graph API 的權限。具體而言,下列危險權限會帶來安全性風險:
RoleManagement.ReadWrite.Directory
: 允許攻擊者將自己升級為全域管理員角色AppRoleAssignment.ReadWrite.All
: 允許攻擊者授予自己 RoleManagement.ReadWrite.Directory
權限 (請見上文)。擁有這些危險權限的正當應用程式要求可能過於廣泛的權限。這也可能表示出現一種叫做「非法同意授予」的網路釣魚攻擊,在這種攻擊中,攻擊者會成功取得管理員同意。
首先判斷報告之擁有權限的服務主體是否正當。請注意,技術上來說,網路釣魚攻擊可以偽造顯示名稱。如果服務主體似乎屬於已知軟體廠商,請對方確認報告之應用程式 ID 是否為其所擁有。如果服務主體不正當,並偽造了已知應用程式名稱,您應執行鑑識分析。
Microsoft 還發布了兩份關於如何執行應用程式同意授權調查以及如何偵測和修復非法同意授權的指南。