
Microsoft Entra ID SSO 密码爆破攻击防御最佳实践
一.原理
Microsoft Entra无缝单点登录(Seamless Single Sign-On,SSO)是微软推出的一种高级身份验证和访问管理功能。通过无缝单点登录SSO,用户在受支持的企业网络环境中登录过一次后,无须再次输入相关凭证即可自动访问相关的云应用、SaaS应用,并且而无需任何其他本地组件。
Microsoft Entra SSO使用Windows网络标准Kerberos协议来实现单点登录(Single Sign-On)功能。当我们在配置Microsoft Entra Connect将本地AD与Microsoft Entra ID同步的过程中,可勾选“启用单一登录”来开启SSO单点登录,
Microsoft Azure Active Directory Connect会在本地Active Directory中创建一个名为AZUREADSSOACC的计算机账户,如图1-1 所示,并为该AZUREADSSOACC账户创建多个 Kerberos服务主体名称(SPN)以在Microsoft Entra登录过程中使用,如图1-2所示。
图1-1 勾选“启用单一登录”
图1-2 查看本地AZUREADSSOACC计算机账户
图1-3 AZUREADSSOACC账户服务主体名称
在默认情况下,SSO通常会通过https://autologon.microsoftazuread-sso.com/<Primarydomain>/winauth/trust/2005/usernamemixed终结点来对开启SSO功能的机器进行单因素身份验证,如图1-4所示。
图1-4 usernamemix终结点
如果用户输入的登录凭证无效,如图1-5所示,Autologon终结点将使用包含身份验证尝试的特定错误代码的XML文件直接进行响应,
由于Autologon终结点会直接对用户输入无效的登录凭证返回特定的错误代码,这也就导致了通过Autologon终结点进行的身份登录验证并不会被Microsoft Entra ID的登录日志记录。攻击者可以利用此特性绕过安全措施,对Microsoft Entra ID账户实施密码喷洒攻击,而不会触发任何检测告警。
二、Microsoft Entra ID SSO 密码爆破攻击防御
Microsoft Entra ID SSO使用的协议存在一定的缺陷,可使恶意攻击者不断地暴力破解密码,且不会在Microsoft Entra ID默认目录的租户上生成任何的事件。那么,对于防守方或者蓝队来讲,如何针对Microsoft Entra ID的SSO密码喷洒攻击进行检测和防御呢?
对此,可通过如下方法进行检测防御。
1)通过设置强密码策略来确保Microsoft Entra ID租户使用强密码。
2)在所有可能使用Microsoft Entra ID凭据的服务应用上启动MFA多因素认证,如图1-6所示。
图1-6 启用MFA多因素认证
3)监控Microsoft Entra ID登录日志,以此来监控异常用户的登录,如图1-7所示。
图1-7 通过Microsoft Entra ID登录日志来监控异常用户的登录行为