什么是 DDoS 攻击?

DDoS 攻击是当今 Internet 安全领域面临的首要隐患。 深入探索 DDoS 攻击的工作原理及其阻止方法。

Share facebook icon linkedin icon twitter icon email icon

DDoS

学习目标

阅读本文后,您将能够:

  • 定义 DDoS 攻击
  • 解释 DDoS 攻击的一般结构
  • 3 大类 DDoS 攻击的区别
  • 了解若干 DDoS防护策略

什么是 DDoS 攻击?

分布式拒绝服务 (DDoS) 攻击是一种恶意尝试,目的是通过大量 Internet 流量使目标或其周围基础设施不堪重负,进而破坏目标服务器、服务或网络的正常流量。DDoS 攻击通过利用多个受损的计算机系统作为攻击流量的来源实现有效性。被利用的机器包括计算机和其他网络资源,例如 IoT 设备。从较高的层次来看,DDoS 攻击就像是高速公路堵车,阻止正常的车流到达其期望的目的地。

DDoS Attack

DDoS 攻击的工作原理

DDoS 攻击要求攻击者获得对在线计算机网络的控制权才能进行攻击。计算机和其他机器(例如 IoT 设备)感染恶意软件,然后就会变成机器人(或僵尸)。然后,攻击者即可对一组机器人(统称为僵尸网络)进行远程控制。

建立僵尸网络之后,攻击者便可以通过远程控制方法向每个机器人发送更新的指令来控制机器。当僵尸网络将受害者的 IP 地址作为目标时,每个机器人都会向目标发送请求,这可能导致目标服务器或网络出现容量溢出,从而导致对正常流量拒绝服务。由于每个机器人都是合法的 Internet 设备,因此很难将攻击流量与正常流量分开。

常见的 DDoS 攻击有哪几类?

不同的 DDoS 攻击媒介针对网络连接的不同组件。要了解不同的 DDoS 攻击如何工作,就有必要知道网络连接是如何建立的。互联网上的网络连接由许多不同的组件或“层”组成。就像从打地基开始盖房子一样,模型中的每个步骤都有不同的用途。如下所示,OSI 模型是一个概念框架,用于描述 7 个不同层次中的网络连接。

The OSI Model

虽然几乎所有 DDoS 攻击都是利用流量让目标设备或网络不堪重负,但攻击可以分为三类。攻击者可能利用一种或多种不同的攻击媒介,或者潜在地根据目标采取的对策来循环攻击媒介。

应用程序层攻击

攻击目标:

这些攻击有时被称为第 7 层 DDoS 攻击(是指 OSI 模型的第 7 层),其目的是耗尽目标的资源。攻击的目标是服务器响应 HTTP 请求时生成网页并进行交付的层。单个 HTTP 请求在客户端执行的成本很低,而目标服务器响应的成本可能很高,因为服务器通常必须加载多个文件并运行数据库查询才能创建网页。第 7 层攻击很难防御,因为难以将流量标记为恶意流量。

应用程序层攻击示例:

HTTP 洪水

HTTP 洪水攻击类似于同时在大量不同计算机的 Web 浏览器中一次又一次地按下刷新 – 大量 HTTP 请求涌向服务器,导致拒绝服务。

这种类型的攻击有简单的,也有复杂的。较简单的实现可以使用相同范围的攻击 IP 地址、referrer 和用户代理访问一个 URL。复杂版本可能使用大量攻击性 IP 地址,并使用随机 referrer 和用户代理来针对随机网址。

协议攻击

攻击目标:

协议攻击(也称为状态耗尽攻击)通过消耗 Web 应用程序服务器或诸如防火墙和 Load Balancer 之类的中间资源的所有可用状态表容量,导致服务中断。协议攻击利用协议栈的第 3 层和第 4 层中的弱点使目标无法访问。

协议攻击示例:

Syn Flood DDoS Attack

SYN 洪水

SYN 洪水就好比供应室中从商店的前台接收请求的一名员工。员工收到一个请求,捡取包裹,然后等待确认,再把包裹拿到前台。然后,员工会收到更多包裹请求,但没有确认消息,一直到他们无法再携带其他包裹,变得不堪重负,并且请求开始无人响应。

这种攻击通过向目标发送大量带有欺骗性源 IP 地址的 TCP“初始连接请求”SYN 数据包来利用 TCP 握手。目标计算机响应每个连接请求,然后等待握手中的最后一步,但这一步确永远不会发生,因此在此过程中耗尽目标的资源。

容量耗尽攻击

攻击目标:

此类攻击试图通过消耗目标与较大的 Internet 之间的所有可用带宽来造成拥塞。攻击运用某种放大攻击或其他生成大量流量的手段(如僵尸网络请求),向目标发送大量数据。

放大示例:

NTP Amplification Attack

DNS 放大

DNS 放大就好比有人打电话给餐馆说“每一道菜都订一份,请给我回电话,说明整个订单”,提供的回叫电话号码是目标号码。仅需少量投入,就能产生较长的响应。

通过从具有欺骗性 IP 地址(目标的真实 IP 地址)向开放式 DNS 服务器发出请求,目标 IP 地址将收到来自服务器的响应。攻击者以特殊方式构建请求,使 DNS 服务器以大量数据响应目标。结果,目标收到的是攻击者初始查询的放大结果。

如何防护 DDoS 攻击?

缓解 DDoS 攻击的关键问题是区分攻击流量和正常流量。例如,如果某个产品发布的公司网站挤满了热切的客户,那么切断所有流量就是一个错误。但如果该公司的突然流量来自已知的不良行为者,则可能有必要采取措施减轻攻击。困难在于,很难区分真正的客户流量和攻击流量。

在现代 Internet 中,DDoS 流量以多种形式出现。流量在设计上可能有所不同,从非欺骗性单源攻击到复杂的自适应多方位攻击无所不有。多媒介 DDoS 攻击使用多种攻击途径,以不同的方式使目标不堪重负,并且可以分散任何一条轨道上的缓解工作。同时针对协议栈的多个层次,例如 DNS 放大(针对第 3/4 层)与 HTTP 洪水(针对第 7 层)结合攻击,就是多媒介 DDoS 攻击的一种。

防护多媒介 DDoS 攻击需要多种策略来应对不同的轨道。一般而言,攻击越复杂,流量就越难与正常流量区分 - 攻击者的目标是尽可能深入地混淆,从而降低防护效率。如果在防护时不加选择地丢弃或限制流量,可能会将正常流量一起丢弃,而攻击也可能会更改和调整以规避对策。为克服复杂的破坏手段,采用分层解决方案效果最理想。

黑洞路由

几乎所有网络管理员都可以使用的解决方案是创建黑洞路由,并将流量汇入该路由。在最简单的形式下,当在没有特定限制条件的情况下实施黑洞筛选时,合法网络流量和恶意网络流量都将路由到空路由或黑洞,并从网络中丢弃。如果 Internet 设备遭受 DDoS 攻击,则该设备的 Internet 服务提供商 (ISP) 可能会将站点的所有流量发送到黑洞中作为防御。

Rate Limiting

限制服务器在特定时间范围内接受的请求数也是防护拒绝服务攻击的一种方法。虽然速率限制有助于减慢 Web 爬虫窃取内容的速度,并有助于防护暴力攻击登录尝试,但仅靠速率限制可能不足以有效地处理复杂的 DDoS 攻击。尽管如此,速率限制仍然是有效的 DDoS 防护策略中的有用组成部分。了解 Cloudflare 的速率限制

Web Application Firewall

Web 应用程序防火墙 (WAF) 是可帮助防护第 7 层 DDoS 攻击的工具。通过将 WAF 放在 Internet 和源站之间,WAF 可以充当反向代理,保护目标服务器免受某些类型的恶意流量的侵害。通过基于一系列用于识别 DDoS 工具的规则筛选请求,可以阻止第 7 层攻击。有效的 WAF 的一个关键价值是能够快速实施自定义规则以应对攻击。了解 Cloudflare 的 WAF

Anycast Network 扩散

这种防护方法使用 Anycast 网络将攻击流量分散到分布式服务器网络中,直至网络吸收流量。这种方法就好比将湍急的河流引入若干独立的小水渠,将分布式攻击流量的影响分散到可以管理的位置,从而分散破坏力。

Anycast 网络防护 DDoS 攻击的可靠性取决于攻击的规模以及网络的规模和效率。使用 Anycast 分布式网络是 Cloudflare 实施的 DDoS 防护措施的重要部分。Cloudflare 拥有 30 Tbps 的网络,比有记录的最大 DDoS 攻击大一个数量级。

如果您目前正受到攻击,则可以采取一些措施摆脱压力。如果您已经在使用 Cloudflare,则可以按照以下步骤进行来防护攻击。我们在 Cloudflare 实施的 DDoS 防护是多方面的,可防护许多可能的攻击媒介。了解有关 Cloudflare 的 DDoS 保护及其工作原理的更多信息。