DDoS 攻击和如何保护您的网站的初学者指南

作为网站管理员,您可能听说过 DDoS 和 DoS 作为网络安全风险这一术语。尽管有些人可以互换使用这些术语,但它们是不同类型的攻击。您的虚拟主机尽其所能防御攻击,但知识就是力量,如果您知道攻击的迹象以及可以采取哪些措施来防御攻击,它会帮助您的业务。也许您只是想大致了解一下,并且(如果是这种情况)本指南适合您。

基本网络通信

在我们进入 DDoS 之前,让我们先来看看 Web 通信是如何工作的。当您在浏览器中键入 URL 时,它会对域进行 DNS 查找,找到 IP 地址,然后调用域的 Web 服务器请求访问内容。作为网站管理员,您可能知道每天获得的平均流量。您在服务器上购买资源以计算平均流量并确保您的网站始终快速运行。推荐阅读:《网站被DDos攻击该怎么办》

在您的旺季,您可能会扩大一点以应对流量的增加。大多数网站管理员都明白,更多的流量意味着需要额外的服务器资源。

网站管理员之间的一个常见误解是带宽与网络速度相同。在讨论 DDoS 攻击时应该注意,带宽是在给定时间段内可以传输的数据量。将带宽视为水管。您只能在软管中装入这么多的水,然后将其从龙头射到开口处。如果您需要在固定时间内输送更多的水,则需要扩大软管的周长。

您的 Web 服务器只能处理这么多事务,而您的带宽只能容纳这么多数据。这些核心组件是 DDoS 攻击的目标。

注意:为了简单起见,我们专注于 Web 服务器,但 DDoS 攻击可能会发生在众多服务中,包括 DNS、DHCP、聊天室,甚至打印机。

DoS 的早期阶段

拒绝服务攻击在 Internet 上并不是什么新鲜事。回到互联网的早期,一个人拥有一台电脑可能会导致拒绝服务。事实上,第一次 DoS 攻击是在1974 年,由一名 13 岁的伊利诺伊州学生创建。

早期互联网的日子并没有占用太多的计算机能力或带宽。我们现在拥有的资源和带宽在当时甚至都不可用。每月有 1000 名访问者访问您的网站已经很多了,而对 Web 服务器的数千次调用并不需要太多的计算能力。

1990 年代随着互联网变得越来越流行,其中一种常见的 DoS 攻击被称为“smurf 攻击”。它的工作方式可以追溯到互联网上的传输方式。当您的浏览器与服务器建立连接时,它会建立“SYN-ACK 握手”。

您的浏览器向服务器发出 SYN(同步)请求。服务器接收请求并将 SYN-ACK(同步确认)消息发送回您的浏览器。SYN-ACK 消息发送后,服务器等待您的响应。然后,您的浏览器将另一个 ACK​​(确认)消息发送回服务器。你们都建立了连接,因为你们都同步并确认了握手。你们都知道对方的存在,一旦你们握手,你们和服务器都可以传输数据。

我们已经强调了这个过程的重要部分。服务器等待来自发送方的返回 ACK。如果发件人消失或发件人的 IP 地址是伪造的会发生什么?SYN-ACK 响应进入一个黑暗的空白,没有返回任何内容。这些断开的连接中的一两个是可以的,但是当有数千个连接时会发生 DoS。

请记住,服务器正在使用资源来等待响应。使用 DoS 攻击时,会发送数千个这样的请求,并且发送者的 IP 被欺骗(伪造)。SYN-ACK 步骤进入空白,没有响应的希望。随着请求的不断增加,服务器一直在等待。更多的请求被排队,但没有做出任何响应,让服务器继续排队越来越多的消息。最终,服务器资源被填满,没有更多资源可用于合法请求。

这是成功的老式 DoS 攻击的核心。服务器资源被伪造的消息耗尽,这些消息可能来自少数几台计算机才能成功。

继续 DDoS 攻击

老派 DoS 攻击对攻击者非常有效,直到服务器资源如此强大以至于它可以处理任何一台计算机可以发送给它的内容。事实上,攻击者的计算机会在服务器崩溃之前崩溃。如果一台计算机试图用数千个请求攻击它,今天可用的 Web 服务器不会跳过一个节拍。像往常一样,网络攻击者总是想方设法绕过防御,因此他们想出了一种在服务器上发送拒绝服务的新方法。我们谈论的是分布式拒绝服务。推荐阅读:《服务器如何应对和预防DDoS攻击》

DDoS 的工作方式与 DoS 类似,但想象一下来自全球数千台计算机的请求。大多数标准强大的 Web 服务器每天都可以处理数千人浏览页面,但是当所有 10,000 人(例如)同时访问服务器时会发生什么?结果是即使是最强大的服务器也有有限的资源,最终足够多的请求会导致它崩溃。

DDoS 比 DoS 攻击复杂得多。首先,攻击者需要的不仅仅是一台本地计算机。它需要在数千台机器上分发恶意软件,使攻击者能够控制它们。攻击者的目标是控制全球范围内的机器,因此受害者不能只阻止 IP 范围的一个子集。其次,攻击者必须有一个中央服务器应用程序,告诉这些机器向目标服务器发送尽可能多的 ACK 请求。

我们可以回到服务器带宽作为数据的“软管”。主机只能同时传输这么多数据,您需要传输的数据越多,所有请求从 spigot(您客户的浏览器)到服务器所需的时间就越长。如果过多的数据淹没服务器,您的客户将在他们的计算机上收到超时错误。攻击者成功地中断了您的业务和销售。DDoS 是竞争对手破坏您业务的有效方式。

你怎么知道它正在发生?

让竞争对手破坏您的业务是一个可怕的提议。由于 DDoS 攻击来自全球范围内被黑客入侵的计算机,因此也很难确定它何时发生。您的第一反应可能是“我怎样才能检测到一个,以便保护我的网站?”

请放心,主机提供商拥有自己的 DDoS 警报、检测和防御措施。这些防御通常是有效的,因此您不需要任何类型的监控。对于非技术人员来说,攻击的唯一迹象是服务器上出现严重的性能问题。服务器甚至可能崩溃。

如果您具有查看服务器上连接列表的技术知识,您会注意到在连续端口号上具有来自同一 IP 范围的数百或数千个连接。您的服务器甚至可以开始响应 503 错误消息,这意味着“服务不可用”。

您的虚拟主机可能会在您之前知道发生了什么事,甚至可能会打电话给您。如果您重新启动服务器并且仍然存在性能问题,并且您的网站上的访问者数量异常多,请致电您的网络托管服务商。

有什么方法可以防止 DDoS 攻击?

云托管是帮助应对小型攻击的一种方式。另一个更有效的选择是使用CloudFlare等代理服务。对于遭受更多协作、战略攻击的大型站点,Arbor、NSFocus 和 Staminus 等企业解决方案更好。这些服务具有很大的带宽容量,它们可以处理数 GB 的流量、过滤流量并仅将合法流量传递到您的站点。

在防火墙和路由器上也会检测到 DDoS 攻击,但您不太可能访问这些资源。但是,您的主机会这样做,并且一旦发生攻击,他们将能够帮助防御。称为空路由,主机暂时关闭您的站点,更改您的 IP 并重新启用您的站点一段时间,直到攻击停止。

缓解 DDoS 攻击需要一些初步的防御,但也需要主机的一些支持。阻止 DDoS 攻击的最佳方法是在它发生之前就安装正确的缓解系统。以下是您可以采取哪些措施来防止攻击的摘要:

使用CloudFlare等代理。CloudFlare 有一个复杂的系统,可以检测和阻止UDP 和 ICMP 协议。它还可以检测 SYN/ACK、DNS 放大和第 7 层攻击。这对于大多数中小型攻击来说已经足够了。

如果您的站点是您的基础架构的关键骨干,并且收入受到攻击的严重影响,您可以合并更昂贵的过滤选项,例如 NSFocus、Arbor 或 Staminus。它的成本比 CloudFlare 高得多,但对于大规模、更大规模的攻击来说,资源更加安全。

使用“空路由”选项。您需要访问基础架构,因此对于大多数客户端,此选项仅在与您的主机协作时使用。请记住,此选项会暂时关闭站点,因此您将遇到短期中断。但是,这是缓解持续影响站点正常运行时间的持续攻击的有效方法,并且预防方法尚未到位。推荐相关阅读:《DDOS攻击和CC攻击之间的差异》