什么是 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 攻击的工作原理,必需掌握建立网络连接的方式。Internet 网络连接由许多不同的组件或“层”构成。就像打地基盖房子一样,模型中的每一步都有不同的目的。OSI 模型(如下图所示)是一个概念框架,用于描述 7 个不同层级的网络连接。

The OSI Model

虽然几乎所有 DDoS 攻击都涉及用流量淹没目标设备或网络,但攻击可以分为三类。攻击者可能利用一种或多种不同的攻击手段,也可能根据目标采取的防范措施循环使用多种攻击手段。

应用程序层攻击

攻击目标:

有时称为第 7 层 DDoS 攻击(参考 OSI 模型第 7 层),此类攻击的目标是耗尽目标资源。攻击目标是生成网页并传输网页响应 HTTP 请求的服务器层。 在客户端执行一项 HTTP 请求费用很低,但目标服务器做出响应却可能比较昂贵,因为服务器通常必须加载多个文件并运行数据库查询才能创建网页。第 7 层攻击很难防御,因为很难确定流量是否存在恶意。

应用程序层攻击示例:

HTTP 洪水

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

此类攻击可繁可简。既可使用同一范围的攻击 IP 地址、引用网站和用户代理访问一个 URL 简单实现,也可使用大量攻击 IP 地址及通过随机引用网站和用户代理攻击随机 URL 发动复杂攻击。

协议攻击

攻击目标:

协议攻击(也称为状态表耗尽攻击)旨在耗尽 Web 应用程序服务器或中间资源(如防火墙和负载均衡器)的可用状态表容量,进而导致服务中断。协议攻击利用协议堆栈第 3 层和第 4 层的弱点致使目标无法访问。

协议攻击示例:

Syn Flood DDoS Attack

SYN 洪水

SYN 洪水就好比供应室工作人员接到商店前台的请求。工作人员接到请求,转身取包裹,等待确认,然后再将包裹带到前面。一时之间,工作人员收到太多包裹请求,来不及确认,无法处理更多包裹,实在不堪重负,无人对请求做出应答。

此类攻击利用 TCP 握手,通过向目标发送大量带有伪造源 IP 地址的 TCP“初始连接请求”SYN 数据包实现。目标机器逐个对每一项连接请求做出响应,而后等待执行握手过程的最后一步,然而绝不会执行握手,借此耗尽目标资源。

容量耗尽攻击

攻击目标:

此类攻击尝试耗尽目标和大型 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) 可能将全部网站流量发送到黑洞,以此抵御攻击。

速率限制

限制服务器在某个时间段接收的请求数量也是缓解拒绝服务攻击的一种方法。虽然速率限制对于减缓 Web 爬虫窃取内容及缓解暴力破解攻击很有帮助,但纯粹限制速率可能不足以有效应对复杂 DDoS 攻击。然而,在高效 DDoS 缓解策略中,速率限制不失为一种有效手段。了解 Cloudflare 速率限制

Web 应用程序防火墙

Web 应用程序防火墙 (WAF) 是一种有效工具,有助于缓解第 7 层 DDoS 攻击。在 Internet 和原始服务器之间部署 WAF 后,WAF 可以充当反向代理,保护目标服务器,防止其遭受特定类型的恶意流量入侵。根据用于识别 DDoS 工具的一系列规则过滤请求,将可阻止第 7 层攻击。高效 WAF 的一大关键特点在于,它能够快速实现自定义规则,对攻击做出响应。了解 Cloudflare WAF

任播网络扩散

此类缓解方法使用任播网络,将攻击流量分散至分布式服务器网络,直到网络融合流量为止。这种方法就好比将湍急的河流引入若干独立的小水渠,将分布式攻击流量的影响分散到可以管理的位置,从而分散破坏力。

任播网络在缓解 DDoS 攻击方面的可靠性取决于攻击规模及网络规模和效率。采用任播分布式网络是 Cloudflare 实施 DDoS 缓解策略的一个重要组成部分。Cloudflare 具有 25 Tbps 网络,比有史以来规模最大的一次 DDoS 攻击还要大一个数量级。

如果您目前恰好受到攻击,可以采取一些措施摆脱压力。如果已使用 Cloudflare,则可按照以下步骤缓解攻击。我们在 Cloudflare 实施多方位 DDoS 保护,从而缓解可能采用的大量攻击手段。了解有关 Cloudflare DDoS 防护及其工作原理的更多信息。