什么是拒绝服务 (DoS)?

已发表: 2023-03-08

如果您的网站无法访问,您的日志文件已满,并且您的服务器上的资源利用率已达到最大值,则您可能正处于拒绝服务攻击之中。 这些令人讨厌的攻击会对您的营销运营造成严重破坏并影响您网站的可用性。 如果您正处于拒绝服务攻击或分布式拒绝服务攻击之中,请不要害怕。 有多种方法可以减轻这些攻击并重新控制您的数字存在。

拒绝服务攻击是已知最早和最常见的针对网站和 Web 应用程序的网络攻击之一。 无论您是小型企业还是大型财富 100 强公司,为您的网站向公众提供服务的技术在本质上都是相同的。 当攻击者以您为目标进行 DoS 攻击时,您的企业规模对他们来说并不重要。 恶意攻击者使用相同的方法来破坏您的业务,并且通常具有相似的动机,无论您的业务规模大小。

在这份拒绝服务攻击综合指南中,您将了解攻击者用来关闭网站和整个网络的方法,如何发现针对您的企业的 DoS 或 DDOS 攻击,如何成功缓解它,并提供您可以确保的方法您的网站为您的客户保持在线。

什么是拒绝服务 (DoS)?

拒绝服务是一种网络攻击,通过用恶意请求淹没系统来降低其对目标用户的可用性。 拒绝服务是一种资源耗尽攻击,它利用受害服务的有限能力来接受和处理传入的请求。

DoS 攻击用途广泛,可以针对各种系统,包括单个网站和 Web 应用程序、服务器、路由器,甚至整个网络。 无论目标系统是什么,拒绝服务攻击都可能会由于耗尽分配给它的计算资源池(例如 CPU 和内存)而导致其挂起或崩溃。

尽管 DoS 攻击是恶意的,但它们并不用于夺取对受害者网站或服务器的控制权,例如跨站点脚本 (XSS) 或 SQL 注入 (SQLi)。 相反,攻击者通常可以使用资源耗尽来促进其他类型的恶意活动,例如暴力攻击。 同样,在受害系统上造成高资源利用率的其他网络攻击也属于拒绝服务攻击的范畴。

拒绝服务

DoS 攻击如何运作?

拒绝服务攻击是通过指示计算机或攻击者控制的计算机网络向目标系统发送大量请求(通常格式错误)来执行的。 这将对 Web 服务器和其他资源造成压力,从而阻止合法请求(例如来自您的客户、潜在客户和其他站点访问者的请求)得到处理,最终导致拒绝服务。

如果系统受到 DoS 攻击,发送给它的任何合法请求都可能会排队并最终由于缺乏可用的计算资源而被丢弃。 访问网站时,如果看到请求超时错误消息,则表示浏览器无法与服务器建立连接,因为 Web 服务器过载,因此无法接受更多请求。

在执行 DoS 攻击时,攻击者会选择目标系统中的一个弱点,并使用它来设计发送的请求,从而导致更大的带宽消耗,从而导致网站拥塞并减慢响应速度。 根据目标网络端点或特定应用程序,拒绝服务攻击可以利用现有的可处理同时请求数限制、分配给特定服务的内存量或接收和输出缓冲区的大小,除其他事项外。

DoS 攻击的目的通常不仅仅是中断服务

拒绝服务攻击旨在通过为许多不同目的向网站和在线服务注入恶意流量来关闭网站和在线服务。 DoS 攻击针对人们日常依赖的许多资源,包括在线商店和市场、金融服务和媒体。

拒绝服务攻击主要出于三个原因:

  • 社会行动主义。 攻击者可能会使用拒绝服务作为批评公司政策和惩罚组织表现出不良行为的一种方式。
  • 勒索。 攻击者可能会试图通过要求付款来破坏公司服务的能力来获利。
  • 抢占市场份额。 采用反竞争的商业做法,企业可能会试图击败竞争对手的网站以增加其市场份额,尤其是在节假日期间。

虽然上述原因仍然有效,但拒绝服务攻击已经发展,现在被用来促进其他网络攻击。 同样,其他类型的恶意活动也可能导致拒绝服务。 犯罪分子同时使用多种恶意技术来执行最复杂的网络攻击的情况并不少见。

例如,暴力攻击和卡片攻击可能会导致资源耗尽,因为许多请求会发送到受害者的网站以获得未经授权的访问或验证被盗数据。 大多数时候,这些类型的攻击是从多个来源进行的,这将它们变成了分布式拒绝服务攻击。

拒绝服务 (DoS) 和分布式拒绝服务 (DDoS)。 有什么不同?

拒绝服务很少只涉及一台计算机作为攻击源。 为了阻止试图从有效请求中过滤掉恶意请求的防御措施,攻击者将选择使用多个 IP 地址、系统和位置来使检测变得更加困难。 DDOS 或分布式拒绝服务攻击顾名思义:使用分布式系统以受害者的网站或网络为目标的攻击。 这些类型的分布式攻击更难识别和缓解,而这正是 DoS 和 DDoS 攻击的不同之处。

拒绝服务和分布式拒绝服务之间的主要区别在于其规模和用于执行攻击的设备数量。 为执行 DDoS 攻击,攻击者通常使用称为僵尸网络的受感染计算机的分布式网络。

DDoS 攻击可以定义为大规模机器人驱动的资源耗尽攻击,它通过使用多个计算机系统对单个目标进行攻击来放大拒绝服务的概念。 它不仅使攻击变得更加危险,而且几乎不可能发现攻击背后的攻击者身份。

僵尸网络如何成为 DDoS 攻击的中心

僵尸网络是通过用恶意软件类型感染受感染的设备来构建的,这种恶意软件将在系统中处于休眠状态,直到攻击者的计算机(称为命令和控制中心 (C2))发送进一步的指令。 僵尸网络恶意软件可以感染所有类型的设备,并且通常难以识别和消除。 此外,该病毒会高速传播,进一步扩大特定僵尸网络的威力。

僵尸网络所有者经常将他们构建的受感染设备网络的计算能力出租给暗网上的其他攻击者,这通常被称为攻击即服务。 这使得进行拒绝服务攻击比以往任何时候都更容易、更容易获得。 尽管执法部门在过去几年中成功取缔了多个大型僵尸网络,但僵尸网络仍在快速增长。

衡量拒绝服务攻击的规模

由于 DoS 攻击代表向一个目的地发送的一系列恶意请求,您可以测量它们的大小以了解它们的规模。 拒绝服务攻击的规模是根据发送到受害系统的流量计算的,通常以千兆字节为单位。

也相当于攻击者发起的数据传输过程中目标计算机网络消耗的带宽。 研究表明,2022 年拒绝服务攻击的平均大小略高于 5 GB。

3 种类型的拒绝服务攻击

拒绝服务攻击可能因目标系统和执行方法的不同而有很大差异。 尽管攻击者通常会结合不同的方法,但 DoS 攻击可大致分为三大类——漏洞攻击、带宽泛滥和连接泛滥。

漏洞攻击

漏洞攻击是针对系统中特定弱点的 DoS 攻击。 它涉及向目标主机上运行的操作系统或易受攻击的应用程序发送大量精心设计的消息。 使用正确的数据包顺序,服务可以停止,或者整个主机可以崩溃。 缓冲区溢出攻击是最突出的漏洞攻击示例之一。

带宽泛滥

Bandwidth Flooding 通过向基础设施发送请求以耗尽服务器的容量来接受来自网络的任何流量,从而以受害者系统的带宽为目标。 攻击者将许多数据包定向到目标系统,导致目标的访问链路阻塞,从而阻止合法数据包到达服务器。

带宽泛滥主要利用数据包交换的存储和转发传输原理来淹没输出缓冲区。 存储和转发传输规定路由器必须先接收整个数据包,然后再将其进一步转发到目的地。 每个数据包都存储在输出缓冲区中,缓冲区空间的大小是有限的。 如果输出缓冲区中充满了等待传输的数据包,则会导致数据包丢失并导致目标系统无法访问。

连接泛滥

连接泛洪拒绝服务攻击通常以特定服务为目标,例如用于为特定网站或 Web 应用程序提供功能的 Web 或邮件服务器。 然后,攻击者与目标主机建立许多连接,因此它停止接受任何合法请求。 SYN、HTTP、ICMP 泛洪和 Slowloris 是连接泛洪攻击的一些示例。

重要的是要注意,这三个类别并不相互排斥,它们根据攻击者所采用的方法(他们选择针对的系统部分)来区分拒绝服务攻击。 这些方法为犯罪分子定义了路线,每一种路线都会导致他们耗尽受害者系统的计算资源。

针对 WordPress 的 3 种主要 DoS 攻击

作为动态 Web 应用程序,WordPress 依赖于服务器接收和处理传入请求的能力,以向网站访问者提供内容。 并且除非攻击者想要使用较低级别的拒绝服务攻击(例如 UDP 或 ICMP 洪水)使整个服务器过载,否则他们将针对 HTTP 服务器侦听端口 80 (HTTP) 和端口 443 (HTTPS) 上的传入请求. 这可能是 Apache、Nginx 或 LiteSpeed。

拒绝服务攻击主要分为三种类型,用于通过不同的方法使某个网站瘫痪或速度极慢:HTTP 泛洪、SYN 泛洪和 Slowloris

HTTP 洪水

HTTP 洪水利用目标 Web 服务器在特定时间内可以处理的 HTTP 请求数量限制。 让我们更详细地看一下它是如何工作的。

所有 Web 服务器的配置方式都限制了它们可以接受的同时连接数和它们可以处理的 HTTP 请求数。 更具体地说,Web 服务器可以创建的进程数量以及每个进程在新进程取代之前可以满足的请求数量是有限制的。

默认情况下,Web 服务器会创建少量进程,如果收到更多流量,此数量会增加。 除了高内存消耗外,频繁创建新的 HTTP 进程(称为请求工作者)将不可避免地导致 CPU 时间利用率增加。

如果传入请求的数量超过 Web 服务器的总容量,其中一些请求将排队并最终被丢弃,这将导致在浏览器中看到连接超时错误。 在 HTTP 洪水中,攻击者每秒可以向受害者的网站发送数千个 HTTP 请求。

同步洪水

SYN 泛洪是一种 DoS 攻击,它通过利用 TCP 使用的三向握手(HTTP 和 HTTPS 使用的底层传输层协议)使 Web 服务器不堪重负。 由于 HTTPS 依赖于 TLS 来增强 TCP,这为建立初始连接的过程增加了额外的安全层,显着扩展了它,因此大多数拒绝服务攻击都是通过 HTTP 进行的。

虽然 HTTP 泛洪用于通过请求淹没服务器,但 SYN 泛洪的主要目标是让系统将资源分配给半开连接,直到它变得不堪重负而无法满足合法请求。 为此,攻击者会向 Web 服务器发送一系列 SYN 段。

大多数时候,攻击者的主机会引用一个完全不同的系统作为请求的来源,以欺骗受害服务器将确认数据包发送到不同的目的地,而不是发起连接的计算机。 这样,在服务器以确认数据包响应后,握手的第三步将永远不会完成。

由于 SYN 段的大量涌入,受害服务器的资源很快就会耗尽,因为它们被分配给大量半开连接,而合法网站访问者则被拒绝服务。

在现代系统中,此漏洞已通过实施 Syn Cookies 得到部分解决,Syn Cookies 是一种机制,可防止在连接收到确认段并验证它来自最初发送请求的主机之前将资源分配给连接。 然而,这种机制并不能完全阻止 Syn 泛洪的发生,这些攻击仍然对网站和 Web 应用程序构成威胁。

懒猴

Slowloris 是另一种针对 WordPress 网站的应用层拒绝服务攻击。 它通过从同一 IP 地址建立多个 HTTP 连接并尽可能长时间地保持打开状态,从而有效地减慢 Web 服务器的速度。

默认情况下,如果在一段时间内没有请求发送,Web 服务器将终止 HTTP 连接。 为了防止这种情况发生并保持连接打开,攻击者会定期发送不完整或格式错误的请求。 延长每个恶意连接的持续时间,Slowloris 攻击很容易使系统过载并显着降低受害者的网站速度。

如何检测拒绝服务攻击?

与其他网络攻击相比,无论目标资源如何,拒绝服务攻击都相对容易检测。 以下是针对网站、服务器或网络的持续 DoS 攻击的三组常见指标。

网站级指标

如果您的网站受到拒绝服务攻击,您会看到性能显着下降,同时流量突然激增。 网站可能需要很长时间才能加载或抛出错误消息,例如“ERR_CONNECTION_TIMED_OUT”或“503 服务不可用”。

服务器级别指标

如果您有权访问托管您网站的服务器,在登录后,您会看到它处于高负载状态,这意味着主动要求 CPU 时间的进程比服务器当前可以处理的要多。 负载数表示有多少进程等待 CPU 的注意。

如果 WordPress 站点受到攻击,经过进一步检查,您可能会注意到运行了过多的 HTTP 和 PHP 进程。 请注意,您的数据库服务器使用大量 CPU 时间来处理查询。

网络级别指标

网络监控和维护属于托管服务提供商的职责范围,托管服务提供商需要确保核心路由器能够处理所有传入流量而不会出现任何明显的延迟。 较小的 DoS 攻击很少被注意到并从其站点采取行动。 但是,如果针对网站或服务器的大规模拒绝服务攻击开始影响其他主机,您的托管服务提供商将采取行动。

减轻影响整个网络的攻击的最有效方法之一是将受攻击主机设为空路由,直到恶意活动平息。 空路由服务器意味着通过丢弃所有到达它的方式的数据包来暂时将它从网络中移除,这样它就无法再通过 Internet 访问。

如何通过 3 个步骤缓解 DoS 攻击

拒绝服务攻击缓解涉及通过启用更激进的防火墙规则和手动拒绝访问某些 IP 地址和 IP 范围来分析传入流量和阻止恶意请求。 结合这两种方法是处理持续资源耗尽攻击的行业标准。 让我们逐步回顾这个过程。

分析传入流量

实时分析传入流量可以帮助您评估情况并确定用于使您的服务器停机的拒绝服务攻击的类型。 最好能够对托管您网站的服务器进行系统访问,但您也可以使用其他来源,例如基于云的 Web 应用程序防火墙保留的日志。

通过对服务器的 root 访问权限,您可以使用网络诊断工具,例如套接字统计 (ss) 和 tcpdump,以及您的 Web 服务器保留的域日志 (domlogs)。 这种方法将帮助您了解发送到服务器的恶意流量的数量,以及攻击者针对哪些网站和网站上的特定 URL。

如果发生分布式拒绝服务攻击,恶意流量将来自多个来源。 但是,大多数攻击仍然会从相对较少的设备上执行。 在大多数情况下,您应该能够识别一些有问题的 IP 范围。

对于 WordPress 站点,拒绝服务攻击通常针对 WordPress 管理登录页面和 XML-RPC。 分析最近的 Web 服务器活动,您会看到许多指向 wp-login.php、wp-admin 和 xmlrpc.php 的 GET 和 POST 请求。

启用速率限制和更积极的防火墙规则

防火墙在开放系统互连 (OSI) 网络模型的不同级别上充当您网站的第一道防线。 启用更积极的防火墙规则将帮助您成功缓解拒绝服务攻击。

一般方法包括启用速率限制——限制 IP 地址在特定时间内打开的连接数量,并根据许多其他参数过滤传入流量,例如 IP 地址的信誉评分、国家/地区产地等等。

使用 ConfigServer 防火墙缓解拒绝服务攻击

如果您使用的是 ConfigServer 防火墙 (CSF)——一种基于 iptables 的软件防火墙,您可以通过将 CT_Limit 配置设置为所需的值来对传入流量进行速率限制。 将 CT_PORTS 设置为 80 和 443 只会限制您的 Web 服务器正在侦听的端口的速率限制。 CSF 还允许您配置 SYNFLOOD_RATE——每个 IP 地址每秒允许的 SYN 数据包数。

请注意,激进的速率限制将不可避免地导致阻止合法请求,因此只能在您的服务器受到攻击并在成功缓解后不久被禁用时实施。 最好让有经验的系统管理员配置任何特定的防火墙规则。

使用 Cloudflare WAF 缓解 DoS 攻击

Cloudflare 可以通过启用内容交付网络提供的“受到攻击”模式,帮助您成功缓解网站级别的拒绝服务攻击。 作为此内置攻击缓解工具的一部分,Cloudflare 实施了额外的流量分析方法,并向每位访问者提出基于 JavaScript 的挑战。

除此之外,Cloudflare 还可以根据从 Project Honey Pot 收集的大量托管规则集和 IP 信誉评分过滤掉恶意流量。 将 Cloudflare 安全级别设置为高,以阻止来自威胁评分超过 0 的 IP 地址的所有传入流量。

阻止恶意机器人流量

虽然新实施的防火墙规则应该成功过滤掉绝大多数恶意请求,但阻止违规 IP 地址和 IP 范围将迫使系统丢弃来自特定来源的所有数据包,而无需让防火墙检查每个请求。 通过拒绝某些 IP 地址访问服务器来阻止恶意流量将节省服务器资源并帮助您的网站更快地全面运行。

如何防止拒绝服务? WordPress 的 3 大推荐

WordPress 网站仍然是黑客的重中之重,并且经常成为拒绝服务和暴力攻击的目标。 虽然系统提供了针对基于恶意软件的攻击和数据注入攻击的高级别保护,但您需要额外的安全措施来抵御资源耗尽攻击。

下面,我们提供了前三项 WordPress 安全建议,以实施以防止拒绝服务。 安装强大的托管防火墙规则集、配置 HTTP/2 以及限制对 WordPress 登录和 XMLRPC 的访问将显着降低成为 HTTP 洪水、SYN 洪水和 Slowloris 攻击受害者的可能性。

配置强大的托管防火墙规则集

基于主机和基于云的 Web 应用程序防火墙 (WAF) 都支持安装专门为防御拒绝服务和其他危险的网络攻击而开发的不同托管规则集。 托管规则集由知名安全供应商维护并定期接收更新。

最强大的托管防火墙规则集之一是由 OWASP 基金会开发的 OWASP 核心规则集。 该规则集与大多数主机和基于云的 WAF 兼容,包括 ModSecurity——安装在 Linux 服务器上的最流行的基于主机的 Web 应用程序防火墙 (WAF)。

使用 HTTP/2

HTTP/2 是 HTTP 协议的新规范,旨在通过解决其前身的一些缺点来减少延迟并加快内容交付。 HTTP/2 允许网络服务器为单个请求发送多个响应,从而消除了打开多个连接来传送单个网页的需要。

使用 HTTP/2 可以显着降低服务器资源的利用率,从而显着提高性能。 这有助于抵御小型拒绝服务攻击,而无需调用任何额外的保护措施。

减少攻击面

网站安全事项和网站级安全措施极为重要。

您可以通过限制对 WordPress 网站关键区域(例如 XMLRPC 和 WordPress 登录)的访问来防御大多数网络攻击,包括拒绝服务。 正如我们之前所讨论的,这些是 WordPress 网站上 DoS 和暴力攻击的两个最常见的目标。

WordPress 安全最佳实践包括禁用 XML-RPC 并将对 WordPress 登录的访问限制在受信任的 IP 地址和 IP 范围列表中。 启用双因素身份验证对于防止恶意行为者未经授权访问您的网站并将其关闭同样重要。

使用 iThemes Security Pro 补充您的防御

iThemes 使每个人都可以访问 WordPress 安全性。 iThemes Security Pro 提供了三十种方法来保护您的 WordPress 站点免受所有已知的网络攻击。 通过先进的全天候安全监控和漏洞扫描,iThemes Security Pro 将代表您自动采取行动,以阻止自动攻击、阻止恶意行为者并保护您网站的关键区域。

如果您管理多个 WordPress 站点,iThemes Sync Pro 通过提供具有正常运行时间监控和高级分析的单一管理仪表板来帮助自动执行日常管理任务。 当您的团队中有这些个人网站助理时,iThemes Training 将帮助您成为 WordPress 专家并将您的业务提升到一个新的水平。