語言:
動態群組是 Microsoft Entra ID 的一項強大功能,需要 P1 或更高版本的授權。這些群組會根據與使用者屬性相關的特定規則自動更新其成員名單。不過,若規則是基於使用者可自行修改的屬性,則容易遭到刺探利用。
攻擊者若能修改動態群組規則所依賴的屬性,就能操控群組的成員名單。如果群組授予敏感資源的存取權,則此錯誤設定可能會導致未授權存取或特權提升。
雖然租用戶中的許多屬性不允許使用者自行修改,但訪客帳戶是一個例外。由攻擊者控制的訪客使用者,若在攻擊者的租用戶中擁有管理特權,則可以修改屬性並利用目標租用戶的動態群組規則。
此問題最早於 2020 年左右在安全研究和滲透測試文獻中提出,至今在設定錯誤的環境中仍是可行的攻擊媒介。自 2024 年底起,AADInternals 攻擊工具新增了一項用於識別可刺探利用群組的功能。
可能的攻擊情境:
displayName
中出現特定關鍵字 (如「admin」)。風險和後果的嚴重性取決於下列因素:
動態群組有助於簡化系統管理作業,但必須謹慎設定以防止濫用。管理員若能妥善應對這些風險,便能在 Entra ID 中維持動態群組的安全與效率。
最直接的修復方法是避免在規則中納入由使用者控制的屬性: 切勿採行使用者 (尤其是訪客) 可以直接修改的屬性作為動態群組成員規則。然而,這會大幅降低此功能的實用性和彈性。
如上所述,最簡單的刺探利用方法是邀請惡意訪客。為了緩解此風險,您可以設定原則,僅允許受信任的使用者群體進行訪客邀請。雖然這可能會影響協作效率,但會大幅降低惡意訪客成功存取的風險。
另外,若這些危險訪客不應成為動態群組成員,您也可以選擇將其排除。在規則編輯器中,針對 userType
屬性新增「And」規則,使用 Not Equals
運算子排除 Guest
值,產生的規則如下: and (user.userType -ne "Guest")
。請注意,此措施無法防範惡意「外部成員」的攻擊行為。
但是,能夠編輯使用者屬性 (例如透過 Entra 角色獲得授權) 的內部使用者也可以利用此漏洞,建立其他攻擊路徑。因此,請仔細檢查會授予此類權限的 Entra 角色。
不僅是內部使用者,就連信任度較低的訪客都能輕鬆找到可刺探利用的群組。為了緩解此風險,您可以降低訪客對群組及其規則的瀏覽權限。請參閱相關曝險指標「未受限訪客帳戶」和「訪客帳戶和一般帳戶享有同等存取權」中的建議。不過請注意,這不能防止內部使用者惡意刺探利用群組,因為他們仍然可以瀏覽群組並從中鎖定目標。
作為輔助措施,您可以定期監控動態群組的成員資格變更,以便及時發現並阻止潛在的刺探利用。您可以透過 Entra 稽核記錄進行即時監控,或在動態群組屬性中選擇「暫停處理」,並在準備好比較成員變化時再重新啟用此功能。
最後,如果您認為風險在可接受範圍內,可以選擇排除已識別的群組——無論是因為該群組被發現或刺探利用的可能性極低,或者是因為群組成員無法存取敏感資源。
名稱: 動態群組具有可利用規則
代碼名稱: DYNAMIC-GROUP-FEATURING-AN-EXPLOITABLE-RULE
嚴重性: Medium
類型: Microsoft Entra ID Indicator of Exposure