拒绝服务攻击(DDOS)亦称洪水攻击,是一种网络攻击手法,其目的在于使目标计算机的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。当黑客使用网络上两个或以上被攻陷的计算机作为“僵尸”向特定的目标发动“拒绝服务”式攻击时,称为分布式拒绝服务攻击(distributed denial-of-service attack,简称 DDoS 攻击)。
据 2014 年统计,被确认为大规模 DDoS 的攻击已达平均每小时 28 次。DDoS 发起者一般针对重要服务和知名网站进行攻击,如银行、信用卡支付网关、甚至根域名服务器等。
DoS 也常见于部分网络游戏,被心怀不满的玩家或是竞争对手广泛使用。DoS 也常被用于抗议,自由软件基金会创办人理查德·斯托曼曾表示,DoS 是“网络街头抗议”的一种形式。
DDoS攻击方式
DDoS 攻击可以具体分成两种形式:带宽消耗型以及资源消耗型。它们都是透过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的。
带宽消耗型攻击
DDoS 带宽消耗攻击可以分为两个不同的层次;洪泛攻击或放大攻击。洪泛攻击的特点是利用僵尸程序发送大量流量至受损的受害者系统,目的在于堵塞其带宽。放大攻击与其类似,是通过恶意放大流量限制受害者系统的带宽;其特点是利用僵尸程序通过伪造的源 IP(即攻击目标 IP)向某些存在漏洞的服务器发送请求,服务器在处理请求后向伪造的源 IP 发送应答,由于这些服务的特殊性导致应答包比请求包更长,因此使用少量的带宽就能使服务器发送大量的应答到目标主机上。
UDP 洪水攻击(User Datagram Protocol floods)
UDP(用户数据报协议)是一种无连接协议,当数据包通过 UDP 发送时,所有的数据包在发送和接收时不需要进行握手验证。当大量 UDP 数据包发送给受害系统时,可能会导致带宽饱和从而使得合法服务无法请求访问受害系统。遭受 DDoS UDP 洪泛攻击时,UDP 数据包的目的端口可能是随机或指定的端口,受害系统将尝试处理接收到的数据包以确定本地运行的服务。如果没有应用程序在目标端口运行,受害系统将对源 IP 发出 ICMP 数据包,表明“目标端口不可达”。某些情况下,攻击者会伪造源 IP 地址以隐藏自己,这样从受害系统返回的数据包不会直接回到僵尸主机,而是被发送到被伪造地址的主机。有时 UDP 洪泛攻击也可能影响受害系统周围的网络连接,这可能导致受害系统附近的正常系统遇到问题。然而,这取决于网络体系结构和线速。
ICMP 洪水攻击(ICMP floods)
ICMP(互联网控制消息协议)洪水攻击是通过向未良好设置的路由器发送广播信息占用系统资源的做法。
死亡之 Ping(ping of death)
死亡之 Ping 是产生超过 IP 协议能容忍的数据包数,若系统没有检查机制,就会死机。
泪滴攻击
每个数据要发送前,该数据包都会经过切割,每个小切割都会记录位移的信息,以便重组,但此攻击模式就是捏造位移信息,造成重组时发生问题,造成错误。
资源消耗型攻击
协议分析攻击(SYN flood,SYN 洪水)
传送控制协议(TCP)同步(SYN)攻击。TCP 进程通常包括发送者和接受者之间在数据包发送之前创建的完全信号交换。启动系统发送一个 SYN 请求,接收系统返回一个带有自己 SYN 请求的 ACK(确认)作为交换。发送系统接着传回自己的 ACK 来授权两个系统间的通讯。若接收系统发送了 SYN 数据包,但没接收到 ACK,接受者经过一段时间后会再次发送新的 SYN 数据包。接受系统中的处理器和内存资源将存储该 TCP SYN 的请求直至超时。DDoS TCP SYN 攻击也被称为“资源耗尽攻击”,它利用 TCP 功能将僵尸程序伪装的 TCP SYN 请求发送给受害服务器,从而饱和服务处理器资源并阻止其有效地处理合法请求。它专门利用发送系统和接收系统间的三向信号交换来发送大量欺骗性的原 IP 地址 TCP SYN 数据包给受害系统。最终,大量 TCP SYN 攻击请求反复发送,导致受害系统内存和处理器资源耗尽,致使其无法处理任何合法用户的请求。
LAND 攻击
这种攻击方式与 SYN floods 类似,不过在 LAND 攻击包中的原地址和目标地址都是攻击对象的 IP。这种攻击会导致被攻击的机器死循环,最终耗尽资源而死机。
CC 攻击(Distributed HTTP flood,分布式 HTTP 洪水攻击)
CC 攻击是 DDoS 攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求(通常使用 HTTP GET)。CC(Challenge Collapsar,挑战黑洞)根据其工具命名,攻击者创造性地使用代理机制,利用众多广泛可用的免费代理服务器发动 DDoS 攻击。许多免费代理服务器支持匿名模式,这使追踪变得非常困难。
僵尸网络攻击
僵尸网络是指大量被命令与控制(C&C)服务器所控制的互联网主机群。攻击者传播恶意软件并组成自己的僵尸网络。僵尸网络难于检测的原因是,僵尸主机只有在执行特定指令时才会与服务器进行通讯,使得它们隐蔽且不易察觉。僵尸网络根据网络通讯协议的不同分为 IRC、HTTP 或 P2P 类等。
应用程序级洪水攻击(Application level floods)
与前面叙说的攻击方式不同,应用程序级洪水攻击主要是针对应用软件层的,也就是高于 OSI 的。它同样是以大量消耗系统资源为目的,通过向 IIS 这样的网络服务程序提出无节制的资源申请来迫害正常的网络服务。
DDoS防御方式
拒绝服务攻击的防御方式通常为入侵检测,流量过滤和多重验证,旨在堵塞网络带宽的流量将被过滤,而正常的流量可正常通过。
防火墙
防火墙可以设置规则,例如允许或拒绝特定通讯协议,端口或 IP 地址。当攻击从少数不正常的 IP 地址发出时,可以简单的使用拒绝规则阻止一切从攻击源 IP 发出的通信。
复杂攻击难以用简单规则来阻止,例如 80 端口(网页服务)遭受攻击时不可能拒绝端口所有的通信,因为其同时会阻止合法流量。此外,防火墙可能处于网络架构中过后的位置,路由器可能在恶意流量达到防火墙前即被攻击影响。然而,防火墙能有效地防止用户从启动防火墙后的计算机发起攻击。
交换机
大多数交换机有一定的速度限制和访问控制能力。有些交换机提供自动速度限制、流量整形、后期连接、深度包检测和假 IP 过滤功能,可以检测并过滤拒绝服务攻击。例如 SYN 洪水攻击可以通过后期连接加以预防。基于内容的攻击可以利用深度包检测阻止。
路由器
和交换机类似,路由器也有一定的速度限制和访问控制能力,而大多数路由器很容易受到攻击影响。
黑洞引导
黑洞引导指将所有受攻击计算机的通信全部发送至一个“黑洞”(空接口或不存在的计算机地址)或者有足够能力处理洪流的网络设备商,以避免网络受到较大影响。
流量清洗
当流量被送到 DDoS 防护清洗中心时,通过采用抗 DDoS 软件处理,将正常流量和恶意流量区分开。正常的流量则回注回客户网站。这样一来可站点能够保持正常的运作,处理真实用户访问网站带来的合法流量。