如何阻止 DDoS 攻击

已发表: 2023-03-24

正常运行时间是前端和后端开发人员最关心的问题,但它对各种服务器端管理员也至关重要。 不幸的是,坏人破坏您网站的最有效方法之一是使用分布式拒绝服务 (DDoS) 攻击将其关闭并减少其正常运行时间。 因此,大多数与网站打交道的人都想知道如何阻止 DDoS 攻击,或者至少减轻它。

这篇文章将探讨如何阻止 DDoS 攻击。 但在我们开始具体步骤之前,让我们设置一下场景。 为此,我们将首先了解什么是 DDoS 攻击并学习如何识别 DDoS 攻击。

什么是 DDoS 攻击

一般而言,常规(非分布式)拒绝服务 (DoS) 攻击旨在淹没服务器资源以使站点离线。 不良行为者会使用多余的请求来破坏网络上主机的服务,导致合法请求无法到达该站点。

你可以把这想象成商店外的抗议。 如果人们挡住了大楼的入口,顾客就进不去,实际上,商店就无法进行最佳交易(甚至根本无法进行交易)。

DDoS(分布式拒绝服务)攻击使用网络中的许多远程计算机来实现此目标。 它实际上类似于“Slashdot 效应”,在这种情况下,前所未有的合法流量(通常是由于来自高流量网站的链接)会导致网站速度变慢或崩溃。 然而,尽管这是有正当理由的,但 DDoS 攻击始终是有计划的和恶意的。

例如,DDoS 攻击将使用的许多机器都遭受了漏洞利用或恶意软件注入。 攻击者将使用远程指令来控制这些“机器人”以针对特定 IP 地址,并且每个机器人看起来都是合法的。

DoS 攻击成功的关键因素之一是目标的互联网速度比攻击者慢。 现代计算技术使这变得困难,这就是为什么DDoS 攻击对不良行为者的表现要好得多。

总的来说,DDoS 攻击的分布式特性使得在典型情况下很难识别攻击。

如何识别 DDoS 攻击

如果您想了解如何阻止 DDoS 攻击,您需要先了解它的外观。 这可能很困难,因为您的高流量可能有正当理由。

在高层次上,如果站点速度变慢或崩溃,这是实施灾难计划的标志(稍后会详细介绍。)从那里,您需要注意一些明显的迹象:

  • 大量流量都呈现出共同的特征。 这可能意味着流量来自相同的 IP 地址或地址范围。 在其他情况下,您可能会发现来自类似位置、引荐网站或设备类型的流量。
  • 单个站点端点的流量也可能激增——通常是特定页面。 许多 404 错误也可能是一个明显的迹象。
  • 流量模式与您希望您的网站收到的内容不一致。 例如,这可能是您通常时间范围之外的高峰或非自然事件,例如上班时间的活动高峰。
  • 所有这些都可能是合法的,而不是恶意的。 因此,您需要依靠分析软件来找出相关和相关的内容。

您还应该记住,并不是所有的 DDoS 攻击都是相同的,不同的类型会使这个问题变得更加复杂。 因此,如果您想知道如何阻止 DDoS 攻击,了解这些类型非常重要。

您会遇到的不同类型的 DDoS 攻击

“网络连接”似乎是一个简单的短语来描述计算机在网络上的连接方式,但这是一个谬论。 开放系统互连 (OSI) 模型显示了网络连接和通信系统的实际分层复杂性:

OSI 理论层概述。
图片来源:Joe Manna

DDoS 攻击根据其目标层分为不同的类别。 尽管如此,您还是可以将它们分成不同的组。 虽然您可以在每层的基础上执行此操作,但也可以根据DDoS 攻击目标对它们进行分类。

例如,容量攻击看起来会淹没网络和传输层(三层和四层)。此处的攻击可以改变数据在网络上的移动方式以及传输协议的有效性。

一种类型——域名系统 (DNS) 放大攻击——使用“僵尸网络”来欺骗目标 IP 地址并向开放的 DNS 服务器发出请求。 这会导致服务器响应目标 IP 并淹没资源。

协议层攻击

协议或基础设施层攻击也针对第三层和第四层,是进行 DDoS 攻击的典型方式。 这是服务器资源和网络设备无法处理传入数据的地方。

这里的一个示例是用户数据报协议 (UDP) 反射攻击。 这利用了 UDP 的无状态特性。 您可以使用几乎任何编程语言创建有效的 UDP 请求数据包。 要成功实施攻击,只需将目标的 IP 地址列为 UDP 源地址即可。

该数据前往的服务器将放大数据以创建更大的响应数据包,然后将其反射回目标 IP 地址。 因此,不良行为者在任何时候都不需要建立服务器连接,这生产起来很便宜。

当您连接到 Web 服务器时,您将在客户端和服务器之间执行“三次握手”,其中包括同步 ( SYN ) 和确认 ( ACK ) 数据包。 当服务器发送组合的SYN-ACK数据包时,客户端发送单个SYNACK数据包。

SYN泛洪攻击中,客户端(在本例中为恶意用户)发送多个SYN数据包,但不发送最终的ACK数据包。 这留下了许多半开传输控制协议 (TCP) 连接,这意味着服务器用完了接受新连接的容量。 这是使可用连接远离合法用户的另一种方法。

应用层攻击

您不会只在第三层和第四层看到 DDoS 攻击。 应用层——第七层——位于顶层。 这意味着它处理人机交互并允许应用程序访问网络服务。

因此,有很多 DDoS 攻击操纵这一层,通常使用 HTTP 请求。 对于客户端来说,一个 HTTP 请求很便宜,但是对于服务器来说,从技术的角度来说响应是昂贵的。 攻击可能看起来像合法流量,主要是因为它们使用相同的方法访问站点。

例如,HTTP 洪水很像在连续循环中按浏览器上的刷新按钮。 一旦这种类型的 DoS 交互成为DDoS ,它就会变得更加复杂。

HTTP flood 的样式也可以很复杂,它会使用许多不同的 IP 地址和随机签名来针对大量的 Web URL 以扩大攻击范围。 即使是针对单个 URL 的简单实现也会造成很大的损害。

对于黑客来说,Slowloris 攻击占用的带宽较少,但会造成更多混乱。 在这里,每个请求都需要花费无限多的时间来为服务器处理并独占所有可用的连接。 由于此攻击对可用并发连接相对较少的服务器有效,因此您会发现它经常影响较小的网站。

如何为 DDoS 攻击做准备

准备就是如何阻止 DDoS 攻击,因为越快恢复正常越好。 事实上,您可能无法完全消除威胁,但可以将潜在问题降至最低。

但在此之前,您需要“计算”您愿意花多少钱,因为现金流可以决定您如何阻止 DDoS 攻击的计划。 您应该从一次攻击会给您的企业造成多少损失开始,然后回过头来确定您可用的预算。 这不是你想要在攻击中进行的计算。

从那里,您需要注意三个关键领域,您应该在这些领域集中精力进行准备。

  • 制定灾难和恢复计划,因为这将明确详细地告诉团队中的每个人该做什么。
  • 从那里,您可以将部分预算分配用于专用的 DDoS 保护服务。 这将使专家到位来监控网站,“消除”您收到的一些恶意流量,等等。
  • 学会发现 DDoS 攻击何时开始。 您的网站分析在这里至关重要,因为您可以监控 DDoS 攻击的迹象并在灾难性事件发生之前做出反应。

在技​​术层面上,您可以做更多的事情来帮助在 DDoS 攻击开始之前将其阻止。 接下来我们将介绍这个。

如何缓解 DDoS 攻击

由于如何阻止 DDoS 攻击的最大问题之一是难以区分好流量和坏流量,因此您不能仅依靠一种解决方案来缓解它。 如果您查看“多向量”DDoS 攻击(即攻击多个 OSI 层的攻击),则尤其如此。

因此,您还需要将您的供应分层以帮助您进行防御。 有一些简单的方法可以做到这一点:

  • 黑洞路由。 这是您将流量过滤到空路由并将其从网络中删除的地方。 如果没有特定的过滤,您将丢弃所有流量,这并不理想。
  • 速率限制。 虽然这本身不足以阻止 DDoS 攻击,但您可以限制每个用户完成的操作数。
  • 网络扩散。 如果您将访问您站点的流量分散到分布式网络中,理论上您将分散 DDoS 攻击的影响。

因此,扩展带宽、网络连接和其他资源是抵御 DDoS 攻击的一些最佳方法。 我们稍后将讨论的一些解决方案以云服务的形式出现,它将流量分配作为防御。

您还可以使用现场解决方案(例如 CAPTCHA)来保护您网站上的重要端点。 这是您的登录页面需要高级别安全性的地方,因为您可以将站点的资源密集型元素放在登录屏幕或其他保护方面之后。

Google recaptcha 服务可以帮助您阻止 ddos​​ 攻击。

更重要的是,您可以实施一些手动技术注意事项。 例如,您可以设置较低的 SYN 或 UDP 阈值,并使服务器上的半开连接超时。

如何阻止 DDoS 攻击的四步策略

在本文的其余部分,我们将向您展示如何通过四个步骤阻止 DDoS 攻击。 好消息是我们给出的建议不是规定性的和严格的。 因此,您可以根据自己的需要调整这些想法。

以下是我们将介绍的内容:

  • 响应计划和危机策略如何拯救你的培根。
  • 您应该使用什么方法来保护 Web 服务器。
  • 本地 DDoS 保护的优点和缺点。
  • 基于云的 DDoS 缓解可以为您做什么。

让我们从一个我们已经提到的话题开始——制定战略。

1. 制定策略和应对计划

在正式的灾难和响应计划中巩固你将要做的一切是一个绝妙的主意。 这应该是您企业中拥有的最详细的文档之一,包括您为阻止攻击和恢复资源将采取的所有步骤。

以下是一些需要注意的事项:

  • 当您响应 DDoS 攻击时,每个团队成员应按顺序执行的步骤。
  • 应该有针对团队外部人员的说明,这些人员必须与客户、客户、供应商、供应商和任何其他相关方沟通问题。
  • 您需要包括您的互联网服务提供商 (ISP)、DDoS 保护服务和前线其他人员的重要联系方式。

一旦到位,整个公司就会明白需要做什么来保护您网站的服务器。

2. 弄清楚如何保护您的网络服务器

DDoS 攻击有两个主要问题:

  1. 很难判断攻击何时发生。
  2. 如果您必须对正在进行的攻击做出反应,那就已经太晚了。

要解决这两个问题,您需要使用 DDoS 保护服务。 Cloudflare 是最好的之一,它包括全球范围内的专用服务器架构,可以相应地拦截、传播和过滤网络流量。

Cloudflare 的 DDoS 服务概述,包括它在 OSI 规模上保护的层。

考虑到这一点,您不会想要实施静态流量阈值或填满您的 IP 黑名单,因为这还不够,而且大多数时候是一种被动措施。 因为可扩展性是阻止 DDoS 攻击的最佳方法之一,所以“朴素”方法具有带宽限制,专用服务做得更好。

3.实施本地保护

本地 DDoS 保护使用网络上的硬件设备过滤掉受保护服务器的流量。 这可能是减轻和阻止 DDoS 攻击的一种可行且复杂的方法。

Radware 和 F5 生产硬件 DDoS 缓解单元,有些还生产硬件 WAF(Web 应用程序防火墙)。

显示硬件 WAF 单元的 Radware 网站 - 帮助了解如何阻止 ddos​​ 攻击。

然而,本地保护只能做这么多,无法阻止大规模攻击——尤其是 DDoS。 因此,您需要补充基于云的 DDoS 设置,以获得有关如何阻止 DDoS 攻击的最佳响应。

4. 考虑基于云的 DDoS 解决方案

实际上,更多站点依赖云保护,因为它具有可扩展性、始终在线且比硬件更便宜。 维护成本也很低。

您会发现一些 DDoS 服务仅适用于 ISP 级别,但那些在云中运行的服务具有更大的保护范围。 通常,这些服务有庞大的计算机网络来分配流量。

例如,Amazon 的 AWS Shield 利用其网络进行 DDoS 攻击的自动检测和缓解。 此外,您可以自定义该工具如何与第一方 WAF 一起保护您的服务器。

Amazon 的 AWS Shield 服务概述,展示了它如何阻止 DDoS 攻击。

Cloudflare 的 Magic Transit 可以很好地补充您现有的本地解决方案。 您还将获得一整套工具来帮助您管理虚拟网络,例如负载平衡器、高级数据包过滤等。

结论🔥

DDoS 攻击将使您的网站在面对使其崩溃的恶意企图时被击败。 虽然这似乎是失败主义者,但没有真正的方法可以完全阻止任何攻击,更不用说 DDoS 攻击了。 因此,如何阻止 DDoS 攻击的答案很复杂。

减轻攻击是一个很好的策略,您可以在服务器级别进行大量实施。 重要的是要弄清楚您的策略是什么,以及您希望如何保护您的网络服务器。 本地保护是一个绝妙的主意,WAF 几乎是必不可少的。 AWS Shield 等云解决方案以及 CAPTCHA 等现场云标准也适用。

您对如何阻止 DDoS 攻击有任何疑问吗? 在下面的评论部分提问!