分布式拒绝服务攻击 (DDoS) 是一种网络攻击。在此类攻击中,攻击者通过发送大量恶意流量造成网站、服务器或网络资源不堪重负,从而导致目标无法工作或崩溃,拒绝向合法用户提供服务,使得合法流量无法到达其目的地。
概括来说,DDoS 或 DoS 攻击就如同成百上千个虚假拼车请求所导致的意外交通堵塞。这些请求在拼车服务看来似乎合法,因此服务会调度驾驶员接人,从而不可避免地使城市街道拥堵。这会导致正常的合法流量无法到达目的地。
针对一家公司的网站、Web 应用程序、API、网络或数据中心基础架构发起的 DDoS 攻击会造成停机,导致合法用户无法购买产品、使用服务、获取信息或者访问其他资源。
DDoS 攻击的工作原理是什么?
构建僵尸网络 ——为了发起 DDoS 攻击,攻击者会使用恶意软件创建一个爬虫程序网络。这个网络由感染了恶意软件的联网设备组成,攻击者可以通过控制这些设备向目标发送大量流量。这种爬虫程序网络或 僵尸网络可能包括物联网(IoT 设备)、智能手机、个人电脑等端点,以及路由器和网络服务器。每个受感染的设备都能够将恶意软件传播到其他设备,进一步扩大了攻击的规模。
我们可以参考 HBO 剧集《权力的游戏》中的情节,思考一下夜王是如何创造一支异鬼军队的。夜王创造了最初的异鬼。这些异鬼攻击人类,把他们变成新的异鬼,因此军队不断扩大。军队中的每一个成员都由夜王控制。
发起攻击 ——一旦攻击者建立了僵尸网络,他们就会通过远程指令控制爬虫程序,指示它们向目标服务器、网站、Web 应用程序、API 或网络资源发送请求和流量。这会导致大量流量涌向目标,从而引发拒绝服务,阻止正常流量访问目标。
DDoS 作为服务 ——有时,僵尸网络及其中的爬虫程序会通过“雇佣攻击”服务的形式出租给其他有意发起攻击的人。这让那些没有接受过训练、缺乏经验的恶意攻击者也能轻松自行发动 DDoS 攻击。
DDoS 攻击的目的
DDoS 攻击的目的是为了严重拖慢合法流量的速度,或者阻止合法流量到达其预定目的地。例如,这可能意味着用户无法正常访问网站、购买产品或服务、观看视频,或者无法在社交媒体上进行互动。此外,DDoS 会造成资源不可用或性能下降,导致业务陷入停滞。它可能导致员工无法访问电子邮件或 Web 应用,或让他们无法照常处理工作。
发起 DDoS 攻击可能出于几个原因
黑客行动主义。攻击者可能会对与他们在理念或思想上存在分歧的公司或网站发起 DDoS 攻击。
网络战争。政府可能会利用 DDoS 等网络威胁来破坏敌对国的关键基础设施。
敲诈勒索。攻击者经常利用 DDoS 威胁向公司敲诈勒索资金。
娱乐。许多攻击是由黑客发起的,他们只想通过制造破坏或尝试网络犯罪来获得乐趣和刺激。
商业竞争。一家公司可能会对另一家公司发起 DDoS 攻击,以试图获得市场竞争优势。
DDoS 攻击的类型
DDoS 攻击分为许多不同类型,网络犯罪分子经常混合使用多种攻击来给目标造成严重破坏。DDoS 攻击通常针对开放系统互连 (OSI) 模型中描述的七个不同的计算机网络层之一。 OSI 模型的每一层都有独特的用途,就像一栋办公楼中每个楼层都有不同的业务功能。攻击者根据他们想要破坏的网络或面向互联网的资产类型,针对不同的层次发起攻击。
有四种攻击类型:
应用层攻击
协议攻击
DNS 放大/反射攻击
容积攻击
应用层 DDoS 攻击
应用层 DDoS 攻击(第 7 层 DDoS 攻击)针对 Web 应用程序的特定漏洞,导致应用程序无法正常运行。这些 DDoS 攻击通常针对两个应用程序通过互联网进行数据交换所使用的通信协议。虽然这类 DDoS 攻击难以预防和抵御,但发动起来却非常容易。
HTTP 泛洪攻击
HTTP 泛洪攻击利用 HTTP 互联网协议的漏洞,该协议用于在互联网上传输网页或发送内容。HTTP 泛洪攻击通过大量 HTTP GET 或 POST 请求让服务器、网站或 Web 应用程序不堪重负,导致其运行速度缓慢或发生崩溃。
低速缓慢攻击
低速缓慢攻击是一种拒绝服务 (DoS) 攻击,其目的是通过以非常缓慢的速度发送看似合法的流量和 HTTP 请求,从而规避检测。低速缓慢攻击所需的带宽较低,因此可以从一台计算机或僵尸网络发起。低速缓慢攻击中的流量很难被检测到,因为它表现为合法的第 7 层流量,并且以不会触发安全告警的速率发送。
Slowloris 攻击
Slowloris DDoS 攻击的目的是通过向 Web 服务器同时建立和维持大量 HTTP 连接,从而让目标服务器不堪重负,导致其无法正常处理请求。Slowloris 攻击通过发送除了更慢,但在其他方面表现得像标准流量的请求,从而耗尽服务器资源。攻击者利用了 HTTP 协议的一项独有特性:客户端能够将 GET 或 POST 请求拆分成多个数据包。 Slowloris 攻击可建立多个连接并让这些连接尽可能长时间地处于打开状态,从而破坏目标 Web 服务器。这是通过发送永远都不会完成的不完整的 HTTP 请求来实施的。
协议 DDoS 攻击
协议攻击主要针对 OSI 模型中的第 3 层和第 4 层互联网通信协议的弱点和漏洞。这些攻击通过发送利用 传输控制协议 (TCP) 或互联网控制消息协议 (ICMP) 的恶意连接请求来消耗并耗尽各种网络基础架构资源(如服务器或防火墙)的计算容量。
SYN 泛洪
人们连接到互联网应用的主要方式之一是通过 TCP。这种连接需要从 TCP 服务(如 Web 服务器)进行三方握手,涉及到从用户连接到服务器的位置发送 SYN(同步)数据包,然后服务器返回一个 SYN-ACK(同步确认)数据包,最终通过最后的 ACK(确认)通信作为应答,以此完成 TCP 握手。在 SYN 泛洪攻击中,恶意客户端发送大量 SYN 数据包(通常在握手的第一部分),但永远不会发送确认以完成握手。这使得服务器一直等待对于这些半开放的 TCP 连接的响应。最终,服务器会耗尽容量,导致无法接受跟踪连接状态的新连接。
如果我们将这种网络攻击比喻为拼车,那么可以想象有成千上万甚至更多的虚假请求被发送到拼车公司。出租车司机等待乘客上车并开始旅程,但由于乘客从未出现,最终导致所有空车资源都被耗尽,使得合法的乘车需求无法得到满足。
Smurf DDoS 攻击
这种 DDoS 攻击的名称来源是:众多规模较小的攻击者凭借纯粹的数量优势来压倒更大规模的对手,就像童话故事里的蓝精灵 (Smurf) 一样。在 Smurf DDoS 攻击中,攻击者使用某个 IP 广播地址,向计算机网络广播大量带有目标仿冒源 IP 的 ICMP 数据包。默认情况下,网络上的大多数设备将通过向该源 IP 地址发送回复的方式来做出响应。根据网络上机器数量的不同,受害计算机的速度可能会因为流量泛洪而被严重拖慢。
DNS 放大/反射 DDoS 攻击
域名系统或 DNS 放大/反射攻击是一种容积 DDoS 攻击媒介,黑客通过伪装其目标的 IP 地址,向开放的 DNS 服务器发送大量请求。作为回应,这些 DNS 服务器通过伪造的 IP 地址响应恶意请求,大量的 DNS 答复形成洪流,从而构成预定目标的攻击。很快,通过 DNS 答复产生的大量流量就会造成受害企业的服务不堪重负、无法使用,并造成合法流量无法到达其预定目的地。
我们用拼车的比喻来解释这种攻击,想象一下,如果有数百或数千个拼车请求被发送到受害者的地址,要求派车前来。这些拼车车辆现在堵塞了通往受害者家的街道,阻止了合法乘客到达该地址。这个比喻也可以用来解释下一节中讨论的容积 DDoS 攻击。
容积 DDoS 攻击
基于容积的 DDoS 攻击主要针对 OSI 第 3 层和第 4 层,通过向目标发送大量来自不同来源的流量,导致目标的可用带宽被完全消耗,从而引发网络变慢或崩溃。容积攻击通常用于转移人们对其他类型的 DDoS 攻击或更危险的网络攻击的注意力。
UDP 泛洪攻击
UDP 泛洪攻击经常被选择用于带宽较大的 DDoS 攻击。攻击者会试图用包含无状态 UDP 协议的 IP 数据包充塞目标主机上的端口。随后,受害主机寻找与 UDP 数据包相关的应用程序,如果没有找到,就向发送者回发一条“目标不可达”消息。攻击者经常通过冒用 IP 地址来隐藏自己的身份,一旦目标主机被攻击流量淹没,系统就会失去响应,造成合法用户无法正常使用。
ICMP 泛洪攻击
互联网控制消息协议 (ICMP) 主要用于错误信息传递,通常不会在系统之间交换数据。ICMP 数据包可能与传输控制协议 (TCP) 数据包一同传输,让应用程序和计算设备在连接到服务器时可以通过网络交换信息。 ICMP 泛洪攻击是一种第 3 层基础架构 DDoS 攻击方法,它使用 ICMP 消息来造成目标网络带宽超载。