防止帐户锁定 DoS

信息安全 访问控制 拒绝服务 蛮力
2021-08-26 11:28:00

关于如何防止以下情况的任何想法?

公司 x 使用活动目录对其员工进行身份验证。该公司有多个半公开的身份验证点和一些完全公开的身份验证点。(例如,可从 Internet 访问的外联网)

用户名很容易猜测,因为它们遵循基于员工姓名的标准命名约定。

如果 Eve 想对 X 公司发起 DoS,并且她可以访问大量员工姓名,那么锁定该公司许多员工的帐户似乎是微不足道的。

关于如何防范此类攻击的任何想法?

我知道可变长度锁定可能会有所帮助,但这仍然意味着员工没有登录,工作。

想法?

4个回答

有一篇论文描述了如何使用 Microsoft Lync(以前的 Office Communications Server)来缓解暴力攻击:

http://blogs.technet.com/b/drrez/archive/2010/05/26/protecting-the-edge-server-against-dos-and-password-brute-force-attacks-in-office-communications-服务器.aspx

片段:

“DoS 攻击与合法的登录请求无法区分。唯一的区别在于登录尝试的频率和来源。快速连续的大量登录尝试可能表明存在 DoS 攻击。DoS 攻击试图猜测用户的密码以获得未经授权的访问,如果在 Active Directory 中启用了安全策略,通常会导致用户帐户被锁定。”

“通过在边缘服务器上强制执行帐户锁定,安全过滤器可以防止网络外围边缘的 DoS 攻击,从而保护内部 Office Communications Server 资源”

微软还有另一份白皮书,标题为: 帐户锁定最佳实践白皮书
搜索“防止外部帐户锁定拒绝服务攻击”

关键片段(逐字复制):

防止外部帐户锁定拒绝服务攻击
恶意用户可能会从您的网络外部对您的企业发起拒绝服务攻击。由于大多数网络都是互连的,因此这可能是一种难以缓解的攻击。以下技术技术是可用于帮助减轻或防止此类攻击的常用技术和技术:

需要复杂的密码:所有帐户都应该有一个复杂的密码。所有管理员帐户(本地和域)都应该有一个长而复杂的密码,并且您应该定期更改密码。

重命名管理员帐户:由于管理员帐户无法锁定,建议您重命名该帐户。尽管这并不能减轻对管理员帐户的所有攻击,但它确实有助于在大多数情况下减轻这些攻击。有关详细信息,请参阅 Microsoft 知识库|http://support.microsoft.com/?id=320053 上的“如何:重命名 Windows 2000 中的管理员和来宾帐户”。

使用防火墙保护您的环境:为避免帐户锁定拒绝服务攻击,请在您的路由器和防火墙上阻止 TCP 和 UDP 端口 135 到 139 和端口 445。当您这样做时,您可以防止在您的网络之外发生的登录尝试。

防止匿名访问:如果所有计算机都运行 Windows 2000 或更高版本,则在所有暴露于 Internet 和整个域的计算机上将 RestrictAnonymous 值设置为 2。这可以阻止恶意用户对资源进行匿名连接,并可能有助于抵御某些类型的攻击。请注意,某些操作系统对具有此设置的计算机的支持有限。如果程序使用匿名连接来访问资源,则某些程序也可能存在此设置问题。有关详细信息,请参阅 Microsoft 知识库中的“如何在 Windows 2000 中使用 RestrictAnonymous 注册表值”http://support.microsoft.com/?id=246261。

使用 VPN 隧道保护站点到站点的流量:如果需要在两个站点中的域成员之间进行通信,请使用站点到站点 VPN 隧道将站点网络安全地连接在一起。不要打开防火墙上的所有 NetBIOS 端口。您可以使用 Windows 2000 Server 路由和远程访问服务来创建站点到站点 VPN 隧道。如果没有可用的 VPN 设备,您应该配置边缘防火墙或路由器过滤器以限制允许在每个站点使用的 Internet 协议 (IP) 地址范围之间流动的流量。如果站点需要仅通过 Internet 使用 Active Directory 复制,则使用 Internet 协议安全 (IPSec) 传输模式通过防火墙来保护 Active Directory 服务器之间的所有流量。有关通过防火墙进行 Active Directory 复制的详细信息,请参阅“通过防火墙进行 Active Directory 复制”

保护身份验证和 NetBIOS 端口免受 Internet 攻击:在将内部网络连接到 Internet 的防火墙或路由器上,阻止对 TCP 和 UDP 端口 135 到 139 和端口 445 的访问。如果没有可用的边缘过滤设备,您可以使用 IPSec 过滤器来阻止这些端口。为此,请使用 Microsoft 知识库|http://support.microsoft.com/?id=813878 上的“如何使用 IPSec 阻止特定网络协议和端口”中描述的配置。

• 在同一 IPSec 策略中,您必须创建一个附加规则,当源地址位于内部网络使用的子网中时,添加过滤器以允许流量到这些端口。为此,请使用 Microsoft 知识库|http://support.microsoft.com/?id=813878 上的“如何使用 IPSec 阻止特定网络协议和端口”中描述的配置。

保护身份验证和 NetBIOS 端口免受内部攻击:如果您必须保护内部恶意用户对身份验证和 NetBIOS 端口的访问,您可以使用 IPSec 中允许您协商安全性的功能将允许访问这些端口的计算机限制为仅域成员计算机。通过只允许受信任的计算机(域成员计算机)访问身份验证和 NetBIOS 端口,可以减少可以执行攻击的计算机的数量。这种额外的保护可以防御您的安全边界中的任何漏洞以及可以连接到内部网络的恶意用户。有关如何创建自定义 IPSec 策略以在协商 IPSec 安全性以访问 TCP 和 UDP 端口 135 到 139 和端口 445 时使用 Kerberos 身份验证的信息,请参阅“

更新服务器:使用最新版本的防病毒软件、防火墙软件和 Windows 安全补丁,使您的所有服务器保持最新。如果恶意用户可以从您的内部网络而不是 Internet 发起攻击,这有助于防止特洛伊木马程序和病毒攻击您的资源。这些更新是深入和防御性安全策略的重要组成部分。

  1. 检测
    • 您需要审计控制来提醒您帐户锁定的高频率
  2. 防御
    • 一种想法是跟踪导致帐户锁定的源 IP 地址。在此 src IP 地址超过定义的阈值(例如 10 秒内 2 个帐户)后,系统会提示用户输入验证码,该验证码必须成功完成才能继续在网站上进行身份验证尝试。这将阻止攻击者编写帐户锁定攻击的脚本。
    • 在 src IP 地址超过第二个阈值(例如 60 秒内锁定 10 个帐户)后,该 IP 地址将被阻止 X 分钟。当然,如果攻击者位于公司 NAT 之后,这可能会阻止其他用户,但您可以使用它来保护您的应用程序。

如果攻击者使用多个代理并编写了利用各种源 IP 地址的帐户锁定攻击脚本,那么您将无法使用这些想法。但是,希望您在第 1 步中检测到的控件已提醒管理员可以手动调查该问题。

这些都不是内置在 LDAP 中的——它都是自定义代码。

  • 迈克尔

想到的第一件事是在多个帐户被锁定后观察多个帐户的多次失败登录。例如,Eve 尝试了 Bob 的帐户 10 次并被锁定。然后她尝试了蒂姆的帐户并被锁定。在 n 个帐户之后,您很清楚有人正在尝试 DoS 帐户。但是,这并不能真正解决您的问题,它只允许您对其进行审核。

一个简单的解决方案是通过网络单独登录锁定,因此如果您尝试通过外联网登录并被锁定,您仍然可以在本地登录。话虽如此,我不确定您如何通过 Active Directory 做到这一点,也不确定这会产生什么样的影响。

如果由于任何原因您无法真正将公共身份验证点与内部用户帐户隔离开来,那么您将面临不断与被锁定用户打交道的可能性。即使没有直接的违规威胁,这也可能会使您的管理团队因解锁请求而不堪重负。

此外,还有另一个方面:即使在内部网络上,帐户锁定也可能成为问题。过去,已知恶意软件会尝试暴力破解帐户以进行传播(例如,某些 conficker 版本尝试对 ADMIN$ 共享进行字典攻击),这可能会导致管理员感到不舒服。

因此,我建议:

  1. 仔细考虑您的锁定政策以防止完全锁定
  2. 微调您的“解锁”安全装置以允许最终解锁

LockOutThresholdObservationWindowLockOutDuration都可以帮助解决这些问题。有关它们的确切用法,请查看 MS Account Lockout Best Practices

我会想到的一种方法(上面文档中的更多建议)是:

普通用户

  • 中等或高次数的尝试(帮助健忘的用户),

  • (相对)较短的观察窗口(以防止暴力攻击),

  • 快速释放,也许是 15'-30' (将帮助台从那些电话中拯救出来......)

管理员

  • 少量尝试(他们应该知道密码),

  • 更长的观察窗口(密码复杂性应该提供一些防止暴力破解的保护),

  • 几个小时后释放

你的想法?