行业新闻与博客

你应该知道的 15 种暴力攻击预防技术

无论是了解如何阻止对服务器的蛮力攻击,还是一般而言如何防止蛮力攻击,您都可以采取几项关键措施来保护您的业务。以下是您要知道的……

坏人喜欢坏密码,这已经不是什么秘密了。而且我的意思不是像包含顽皮词的密码那样糟糕——我的意思是密码很容易猜到,我的小侄女可以毫不费力地猜出它们。重用旧密码或“调整”旧密码(70% 的用户承认这样做)也是一个问题。这些类型的不安全密码很容易成为暴力攻击的目标。这就是为什么暴力攻击预防应该成为您的网络安全计划的优先事项。

蛮力攻击是帐户黑客攻击尝试,涉及从网络犯罪分子猜测随机或通用密码到利用泄露或被盗的合法用户凭据等方方面面。这些网络攻击可不是闹着玩的。坏人经常使用脚本或机器人来攻击许多站点和 Web 应用程序上的登录页面,但这些攻击也有其他恶意用途。

这些事件给企业带来的损失在直接和间接成本方面有所不同。英国信息专员办公室 (ICO) 报告称,国泰航空(一家国际航空公司)在 2018 年遭受暴力攻击,由于安全措施不足,导致违规罚款 500,000 英镑。了解如何阻止对您的服务器的蛮力攻击有助于防止您的公司成为类似的头条新闻。

那么,是否有一种万能的解决方案来防止暴力攻击?并不真地。蛮力攻击预防通常归结为分层安全方法以及一些经过验证的策略。就像其他类型的网络攻击预防方法一样,它是关于消除尽可能多的网络防御漏洞,并使自己成为比旁边的人更难对付的目标。

在本文中,我们将介绍几种常见的蛮力攻击预防技术。我们还将向您介绍如何阻止对服务器的蛮力攻击。

让我们来分析一下。

如何防止蛮力攻击(15 种蛮力攻击预防技术)

为了有效阻止暴力攻击影响您的 IT 系统和客户,您首先需要真正了解什么是暴力攻击。由于我们已经写过一篇文章讨论什么是暴力攻击以及不同类型的暴力攻击是如何工作的,我们认为在继续讨论各种暴力攻击预防技术之前,我们可以给您一个快速的概述。

蛮力攻击是一种网络攻击的类别和特定方法,通常用于未经授权访问帐户。许多蛮力攻击都属于密码攻击的范畴,但它们也可用于尝试猜测 API、SSH 和加密密钥并找到隐藏的网页。当用作密码攻击方法时,它通过向其登录表单发送密码和用户名猜测来针对您的身份验证系统,直到找到匹配的组合。

坏人想要未经授权访问您组织的安全资源和敏感数据,这已不是什么秘密。因此,管理员和特权用户帐户是特别有吸引力的目标,因为他们的帐户比其他帐户具有更大的访问权限。  

考虑到所有这些,让我们分解 15 种暴力攻击预防技术。这些预防方法将分为六个不同的类别,以帮助使内容易于理解。

实施严格的访问控制并设置其他身份验证保护

访问控制和访问管理的总体思路是确保只有经过授权、经过身份验证的用户才能访问您的安全资源。这算作从您的网络和 Web 应用程序到其他 IT 系统和数据的所有内容。从基本意义上讲,访问管理归结为了解:

  • 如果某人拥有访问这些资源的批准或权限(授权),并且
  • 如果请求访问的人实际上是他们声称的人(身份验证)。

这种授权和身份验证的组合对于身份和访问管理 (IAM) 以及您的组织开发零信任架构的能力至关重要。

了解如何有效地使用访问控制并防止坏人找到您的登录页面对于了解如何防止暴力攻击成功至关重要。这些做法和流程还有助于在暴力攻击成功的情况下限制暴露。

这给我们带来了我们列表中的第一个蛮力攻击预防技术......

1. 要求使用强大的、唯一的密码——或者更好的密码短语

要求用户创建独特的密码来代替传统密码。例如,Goldfish%MirrorHarp+Sickle3Ln`GW@09h*QaAwn$容易记住很多. 在 FBI 建议使用独特的密码短语是长至少 15 个字符,包含多个单词。这个想法是,由随机单词 / 短语组成的长密码比随机乱码更安全,更容易让人们记住。(因此,您不太可能将它们写下来或重复使用它们来保护多个帐户。)

我们指定唯一的密码 / 密码短语,因为用户在创建帐户机密时通常喜欢选择最简单的方法。这通常会导致用户创建蹩脚(不安全)密码或跨多个帐户重复使用密码。

了解这一点后,企业就必须设置强密码安全要求并创建您强制执行的密码策略。在创建与密码相关的策略时,请查看 NIST 的数字身份指南 (SP 800-63B) 以获取更多指导。

2. 设置账户限制,只有需要访问的用户才能访问关键系统

蛮力攻击预防图:Active Directory 用户组和权限的屏幕截图
显示用户和组权限的 Active Directory 屏幕截图。该图像已被编辑以删除敏感信息。

此过程通常涉及在您的活动目录 (AD) 或其他访问管理系统中为用户设置角色和权限,以在员工帐户遭到入侵时限制暴露。

此过程还可以包括设置与远程桌面协议 (RDP) 相关的远程访问限制。RDP 是蛮力攻击的常见目标。Edgescan 的 2021 年漏洞统计报告指出,RDP 暴露在 2020 年显着增加:

“远程桌面 (RDP) 和安全外壳 (SSH) 暴露增加了 40%,可能是由于 Covid-19 导致远程工作增加。RDP(和类似服务)是针对弱用户凭据进行暴力破解或撞库攻击的简单且常用的途径。

3. 设置一定时间内登录失败的次数限制

您将在暴力破解攻击中看到的几个大危险信号是单个 IP 尝试登录多个帐户,或多个 IP 尝试登录单个用户帐户。您可以通过使用速率限制和访问使用策略来解决这些问题:

  • 设置和执行速率限制是限制 Web 应用程序、网络或服务器上的流量的好方法。在这种情况下,您可以将资源配置为在设定的时间段内仅允许指定次数的失败用户登录尝试。
  • 通过帐户使用策略,您可以将帐户设置为在多次尝试失败后锁定用户。
两个 WordPress.org 屏幕截图的编译图像,显示了登录尝试限制警告和登录尝试失败通知
我们创建的编译图像包含 WordPress.org 登录尝试限制和错误消息的两个屏幕截图。原始截图来源:WordPress.org。

使用这些保护措施保护您的登录页面和其他 Web 应用程序

网站和网络应用程序上的登录页面是大多数蛮力攻击的主要目标,这已经不是什么秘密了。从数据 Verizon 的 2021 数据失窃调查报告(DBIR)显示,数据泄露针对 Web 应用程序的 89%涉及使用蛮力或被盗的凭证。

这就是为什么您必须格外小心以尽最大努力加强这些防御。以下是您可以执行此操作的几种方法:

4. 使用 CAPTCHA 作为登录页面要求的一部分

您知道您必须在许多网站上点击可怕的“单击此处证明您不是机器人”挑战框吗?这就是 CAPTCHA,它代表“完全自动化的公共图灵测试来区分计算机和人类”。(是的,我知道,这比 CAPTCHA 要多得多,但我没有命名……)


无论此站点安全功能有时多么令人讨厌(和令人沮丧),它确实具有一定的价值。CAPTCHA 可用于防止帐户盗用、欺诈性购买和其他用例。CAPTCHA 作为一种有效的安全工具背后的想法是,它几乎 100% 的时间都需要正确的答案。这个想法是,这应该是一项对人类来说很容易但对机器来说非常困难的任务。

您可以在您的网站上使用像 reCAPTCHA 这样的工具来防止大多数机器人攻击您的登录表单。谷歌甚至有一个企业版本,使您能够将其用于站点范围的覆盖和一个 API,以将该工具集成到移动应用程序中。  

5. 使用许可名单限制对特定页面的访问

许可名单(又名白名单)是一种很好的限制方式,可确保只有选定的用户、IP 地址或域才能访问您的页面、Web 应用程序、电子邮件、应用程序和其他系统。例如,使用许可名单可让您指定哪些 IP 地址可以访问您的登录页面。除您已包含在该列表中的 IP 地址之外的任何 IP 地址进行的任何访问尝试都将被自动阻止。

蛮力攻击预防图:显示许可名单(白名单)IP 限制的 SiteLock 仪表板屏幕截图
如何在 SiteLock 仪表板中将 IP 地址列入许可名单的屏幕截图。图片由 SiteLock 销售工程总监 Logan Kipp 提供。

为什么不使用阻止列表(AKA 黑名单)呢?嗯,你可以。只是您必须提前知道要阻止哪些 IP 地址。如果攻击者使用代理 IP 地址,情况会变得更加复杂,因为这会使他们的流量看起来像是来自与自己不同的 IP 地址。

但是,在某些情况下,使用阻止列表可能是一种有效的安全措施,例如:

  • 您观察到许多失败的登录尝试或来自特定地理区域的 IP 地址的异常流量,并且
  • 您知道您的任何合法用户都不会从这些地理区域访问您的页面。

显然,如果攻击者只是在代理 IP 列表中循环或使用某些类型的自动化系统,这对您没有多大帮助。但是 OWASP 的一些贡献者对这个问题有一个潜在的解决方案,包括通过生成唯一的失败登录错误消息来使用更改站点响应行为。(单击上一句中的链接以了解有关所有内容的更多信息。)

6. 更改登录页面的 URL

虽然使用诸如example.com/blog/login.php 之类的内容可以让您的团队轻松记住这些页面,但也可以让黑客轻松猜测并使用自动化工具和机器人进行暴力攻击。但是,如果您为这些关键页面使用唯一的 URL — 例如,使用example.com/blog/w00t-login-here.php,那么您的身份验证页面将更难被坏人找到。

今年早些时候,我们不得不在 Hashed Out 自己做这件事。为什么?因为一些笨蛋反复试图强行进入我们的博客仪表板。这是我们选择关闭他们的蛮力攻击的方式之一。这不是一种万无一失的方法,但至少可以减少由懒惰的暴力破解者造成的服务器负载。

创建安全层以加强您的网络和服务器安全防御

下一节重点介绍与站点相关的暴力攻击预防技术。这里的想法是您希望使用多层网络防御来保护您的组织。这包括各种网络安全工具,可帮助您监控和阻止异常流量。

保护您的 IT 环境免受暴力攻击的最重要方法之一是保持您的所有软件、固件、附加组件和扩展程序打补丁和更新。网络犯罪分子喜欢利用漏洞来访问相关或连接的系统。但是,您可以采取一些其他步骤来确保您的设备、站点和网络在最强大的防御下运行。

7. 采用网络安全和威胁检测工具

Web 应用程序防火墙 (WAF) 是一个很好的工具,可以帮助您检测和阻止撞库攻击。但是,它并不完美,并且对于涉及多个攻击者使用唯一 IP 地址的僵尸网络暴力攻击可能无效。这就是为什么您也应该使用其他类型的保护。

入侵检测系统 (IDS) 可帮助您识别和报告网络安全事件和漏洞利用——但它们确实有局限性。您不能使用 IDS 来防止或响应这些问题——这需要另一组相关工具。安全信息和事件管理 (SIEM) 软件是实时识别、分析和响应威胁的好方法。SIEM 可帮助您在行动中捕获蛮力攻击,因此您可以做需要做的事情来阻止坏人的游行。

然而,我们明白这些工具——以及有效操作它们所需的专家——对于较小的内部操作来说可能非常昂贵。在这种情况下,使用托管安全服务提供商可能是一个不错的选择。

8. 要求员工使用安全、加密的连接

如果您已经阅读了一段时间的 Hashed Out,您就会知道加密对于网络安全至关重要。我们通常从通过 SSL/TLS 证书通过 HTTPS 保护网站连接的角度来讨论它。但是,虚拟专用网络 (VPN) 也是有用的工具 - 特别是当您有员工和管理员远程工作时。

如果您需要使用 VPN 进行远程访问——并且设置了 VPN 网关以将远程 VPN 流量与本地网络分开——它可以帮助防止我们之前提到的以 RDP 为重点的暴力攻击。  

FortiClient VPN 登录页面截图
用于远程访问的 VPN 登录屏幕的屏幕截图。

9. 手动更改默认端口以隐藏连接

坏人喜欢简单的目标,因为他们花费更少的时间和精力来实现可观的投资回报率。通过将您的连接更改为默认的不同端口,您基本上是在向它们隐藏您的连接——或者,至少,您使坏人更难找到这些连接。

使用安全密码存储方法和实现

从用户和管理员的角度来看,找出存储密码的最佳方式对您组织的安全至关重要。以下是您和您的员工可以帮助保护密码安全的一些方法。

10. 使用密码管理器

NordPass 的数据显示,普通人会在 70 到 80 个密码之间折腾。如果您的用户在记住他们的密码时遇到问题或需要多次重置密码,那么本节适合您。

对于想要生成和存储复杂密码的用户来说,密码管理器是一个不错的选择。这些工具允许您以一种只需要记住主密码即可访问或使用的方式存储所有复杂密码和长密码。真的没有比这更容易的了。

11. 只在你的服务器上存储 SALTED 密码哈希

在面向公众的服务器上存储明文密码是一个很大的安全问题,并且是公司积极尝试避免这样做的事情。相反,组织通常将用户的密码散列存储在他们的服务器上,因为使用密码摘要是一种简单的方法,可以在身份验证期间在后端验证他们的密码条目,而无需知道他们的明文密码。(这仍然不够安全,需要一个涉及盐的额外步骤——我们稍后会告诉你原因。)

当用户登录到他们的帐户时,他们键入的密码通过单向伪随机函数(即散列)运行。然后,根据其组织在后端存储的散列摘要列表检查其结果散列值。如果结果匹配,则组织知道用户输入了正确的密码。如果不是,则身份验证失败并向用户返回错误响应。   

但公司确实犯的一个错误是选择在面向公众的服务器上存储加密密码或未加盐的密码哈希。即使明文密码已加密或只是散列(未加盐),它们仍然存在风险。如果您不小心错误地配置了数据库或授权用户的凭据通过 SQL 注入攻击受到损害,则加密或散列数据可能会泄露或被盗。

  • 如果不法分子拿到了您的解密密钥,那么您的加密数据就不再安全。他们可以使用该密钥来解密您客户的密码数据并查看明文值。
  • 尽管散列摘要对于网络犯罪分子来说太昂贵了(在时间和资源上),但他们的袖子里还有另一张牌。他们可以使用密码破解技术(即彩虹表攻击)来尝试将未加盐的密码哈希与已知密码哈希列表相匹配。这个过程可以帮助他们映射回原始密码。

这就是为什么最好的做法是只存储加盐的密码哈希。盐是唯一的随机值。当您在密码中添加盐时,这意味着您在对其进行散列之前在每个密码的末尾添加了一个唯一的随机整数。这导致生成唯一的哈希值。因此,即使两个单独的用户使用相同的密码,唯一的盐值也会单独更改散列输入,因此生成的密码散列是唯一的。

以下是我们关于密码安全的文章中此过程的示例:

展示如何向散列过程添加盐的图表

… 或者,更好的是,为您的企业采用无密码身份验证

客户端身份验证证书不需要您输入繁琐且难以记住的密码进行身份验证

另一种消除暴力攻击风险的方法是完全消除密码。无密码身份验证允许您的员工识别自己并进行身份验证以访问您的安全资源。无密码身份验证的一些方法包括:

12. 要求使用多重身份验证

传统的多因素身份验证 (MFA) 通常提供三类识别因素以供选择以进行身份验证:

  • 你知道的东西(比如密码或 PIN),
  • 您拥有的东西(例如密钥卡、令牌或 CAC),以及
  • 您的身份(生物识别技术,例如面部扫描或指纹)。

传统上,“你知道的东西”因素几乎总是密码。但在无密码 MFA 中,密码被替换为替代(理想情况下更安全)的不同因素。某些类型的 MFA 甚至包括其他验证因素,例如您所在的地方(地理定位数据)和您所做的事情(使用 AI 观察和记录的行为模式)。

蛮力攻击预防图:SiteLock 仪表板屏幕截图,展示了如何为特定页面设置两因素身份验证
如何配置页面以在 SiteLock 仪表板中使用双因素身份验证的屏幕截图。图片由SiteLock销售工程总监 Logan Kipp 提供。

13. 采用 PKI-Based Authentication 基于证书的认证

正如我们所发现的那样,用户通常不会使用足够安全的密码来使其成为可行的独立安全措施。而且由于许多 MFA 方法使用密码作为首要身份验证因素之一,因此这并不总是能缓解问题。这就是为什么一些公司使用替代身份验证方法而不是依赖公钥加密的原因。

基于证书的身份验证

基于证书的身份验证是我们之前讨论过的另一种无密码身份验证方法。由于存储在其设备上的数字证书和加密密钥,它允许用户自动进行身份验证。用户的身份与该证书相关联,因此当实施适当的访问控制时,用户可以从该设备访问其用户配置文件有权访问的任何站点、Web 应用程序或其他 IT 系统。

当他们打开 Web 浏览器时,他们所连接的服务器或应用程序会请求将该客户端证书作为传统连接过程的附加组件。此数字证书允许该设备上的用户无需记住或输入密码即可访问资源。

当与可信平台模块 (TPM) 配对时,这种身份验证方法变得更加安全。这种防篡改的安全硬件可帮助您确保没有人可以窃取或更改用户的加密密钥。  

基于 SSH 密钥的身份验证

这个身份验证选项确实有点小众,因为它通常适用于管理员类型的帐户而不是一般用户。(管理员通常使用 SSH 对网络和其他 IT 系统进行远程系统访问和管理。)但是,在此类文章中仍然值得一提。

SSH 身份验证通常涉及用户手动输入其登录凭据或使用 SSH 密钥自动进行身份验证。由于我们在本节中讨论的是无密码身份验证方法,因此第一种方法并不真正适用。基于密钥的身份验证方法更安全,因为 SSH 密钥具有抗暴力攻击的能力(前提是您采取了适当的步骤来确保您的密钥安全并正确管理它们)。

要了解有关 SSH 密钥的更多信息并探索一些 SSH 密钥管理最佳实践,请务必查看我们针对该主题的相关文章。

通过让员工更严格的目标来保护您的人类防火墙

我之前已经说过,但您的员工和其他用户可能是您组织的最大防御,也可能是安全方面的最大弱点。不同之处在于他们的网络意识以及将他们所知道的知识应用到现实生活中的能力。

这就是网络意识和网络钓鱼培训可以提供帮助的地方。

14. 提供强制性网络意识培训

某人教授网络意识培训的插图

这应该是显而易见的,但由于许多公司仍然不提供某种类型的网络意识培训,因此值得一提。网络意识培训是一种宝贵的工具,可帮助用户了解现实世界的威胁以及如何应对这些威胁。您的培训课程应涵盖从常见的网络钓鱼诈骗和社会工程策略到您的员工在遇到可疑或异常情况时应采取的措施的所有内容。

一个重要的提示:一定要在你的训练中使用真实的例子。老实说,网络钓鱼电子邮件的例子应该不难找到 - 只需查看您的电子邮件垃圾和垃圾文件夹即可。但是,分享真实世界的网络钓鱼电子邮件示例和在野外发现的虚假网站的屏幕截图可以区分足够的培训材料和真正好的培训材料。


需要帮助吗?联系我们的支持团队 在线客服