Password Spraying Detection in Active Directory
密码喷洒检测对所有组织来说都是一项至关重要的能力。在密码喷洒攻击[1]中,攻击者试图通过在多个账户上尝试几个常见或弱密码来获取未经授权的访问,而不是针对单个账户使用多个密码。其理念是测试多个密码,希望某些用户选择了弱密码。
在 Active Directory (AD) 环境中,密码喷洒攻击尤其令人担忧,因为任何 AD 环境中的认证用户都可以使用 LDAP 查询账户。这使得具有最低权限的攻击者能够在多个账户上尝试常见或弱密码,而不会触发账户锁定策略(图 1)。
为什么密码喷洒检测至关重要?
微软估计,密码喷洒攻击占所有账户泄露事件的三分之一以上,突显了这种方法对组织构成的威胁。
密码喷洒攻击可能在域控制器 (DC) 的安全事件日志中产生大量活动,并产生大量网络流量(图 2)。
大量的登录失败会产生明显的痕迹。因此,攻击者可能在密码喷洒攻击中引入延迟(图 3)。由于 DC 上的安全事件日志通常在几秒钟内生成,这种延迟有助于攻击与正常活动混合,降低被检测的可能性。
DC 上的日志显示这些失败的登录尝试的时间戳以固定间隔出现,这是由于在每次尝试之间引入了 10 秒的延迟。这种分散的时间使得活动比同时发生的多次失败登录尝试看起来不那么可疑(图 4)。
使用 Kerberos 预认证的密码喷洒
添加延迟使密码喷洒攻击看起来不那么可疑。然而,攻击仍会在 DC 上触发"账户登录失败"事件。
Kerberos 预认证可以使密码喷洒检测更加困难。使用此类预认证的失败尝试不会在安全事件日志中生成标准的登录失败事件。通过这种方式,攻击者可以猜测密码而不触发与失败登录尝试相关的典型警报(图 5)。
在这类攻击中,安全事件日志中不会看到典型的"账户登录失败"事件,而是会观察到"Kerberos 预认证失败"事件。这些事件包含十六进制值 0x18,表示输入了错误的密码(图 6)。
使用随机化延迟间隔的密码喷洒
使密码喷洒检测更加困难的另一种方法是打破安全系统经常监控的可预测模式(图 7)。这种随机性使攻击与正常流量混合,使系统和安全团队更难检测和响应攻击。
具有随机延迟的密码喷洒攻击仍会生成日志事件。然而,尝试之间的不规则时间间隔可能使密码喷洒检测更加困难。日志显示登录尝试不可预测地分散,而不是一致的模式,使攻击不那么显眼(图 8)。
同样的概念可以应用于使用 Kerberos 预认证的密码喷洒攻击中的随机化延迟间隔。由于 4771 事件通常不会被密切监控,引入随机化延迟使检测比之前讨论的更加困难(图 9)。
如同前面的例子,每次登录尝试之间的延迟间隔随机化可以使这种活动在日志中看起来像正常行为(图 10)。
密码喷洒检测的其他建议
为了降低密码喷洒攻击成功的风险,强制执行强密码策略很重要,包括在连续多次登录失败后实施账户锁定机制(临时或永久)。组织应确保通过默认域策略或 Active Directory 中的细粒度密码策略来执行此类密码策略。
使用 Entra ID P1 或具有适当 Enterprise Mobility + Security (EMS) 或 Microsoft 365 许可的组织可以通过为 Active Directory 部署 Entra Password Protection 或类似解决方案来获得额外的保护层。该工具主动防止用户创建或使用容易被猜测或在之前泄露中被泄露的密码。通过集成此解决方案,组织可以提高密码喷洒检测的成功率。
图 14 显示了一个示例,其中 Entra ID Password Protection 阻止用户设置不符合组织当前密码策略的密码。
其他密码喷洒检测资源
-
如何防御密码喷洒攻击[2] -
检测和防止基于身份的攻击[3] -
Windows 密码策略(Microsoft Learn)[4] -
适用于 AD 域服务的 Microsoft Entra 密码保护(Microsoft Learn)[5] -
ropnop/kerbrute[6]:执行 Kerberos 预认证暴力破解的工具 (github.com) -
dafthack/DomainPasswordSpray[7]:用 PowerShell 编写的工具,用于对域用户执行密码喷洒攻击 (github.com) **注意:**默认情况下,此工具会自动从域中生成用户列表。要非常小心不要锁定账户! -
实施现代安全工具(MSEndpointMgr)[8]
参考资料
密码喷洒攻击:https://www.semperis.com/blog/how-to-defend-against-password-spraying-attacks/
[2]如何防御密码喷洒攻击:https://www.semperis.com/blog/how-to-defend-against-password-spraying-attacks/
[3]检测和防止基于身份的攻击:https://www.semperis.com/solutions/attack-pattern-detection/
[4]Windows 密码策略(Microsoft Learn):https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/password-policy
[5]适用于 AD 域服务的 Microsoft Entra 密码保护(Microsoft Learn):https://learn.microsoft.com/en-us/entra/identity/authentication/concept-password-ban-bad-on-premises
[6]ropnop/kerbrute:https://github.com/ropnop/kerbrute
[7]dafthack/DomainPasswordSpray:https://github.com/dafthack/DomainPasswordSpray
[8]实施现代安全工具(MSEndpointMgr):https://msendpointmgr.com/2018/06/23/implementing-modern-security-tools-part-1/
原文始发于微信公众号(securitainment):Active Directory 中的密码喷洒检测
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论