本文通过对DDoS攻击原理的分析和研究,总结过往防护经验的最佳实践,提出了针对常见DDoS攻击的防护思路,可提升本地防护效果。
分布式拒绝服务(Distributed Denial of Service,又简称DDoS)攻击是通过使用大规模互联网流量淹没目标服务器或其基础网络设施,从而影响网络正常流量及服务的恶意行为。
恶意攻击者通过劫持连接互联网的计算机等设备建立僵尸网络,操纵僵尸设备发送大量请求,持续消耗目标系统的网络带宽和系统资源。Mirai等众所周知的僵尸网络,也被国家攻击组织和不断增长的犯罪组织所使用。此类恶意软件的长期持续存在,突显了其适应性,以及其感染各种物联网设备和危害新攻击媒介的潜力。目前Mirai仍然是主要的僵尸网络,但物联网恶意软件领域的威胁格局正在演变,已经出现了新的僵尸网络,如Zerobot和MCCrash。
从2022年的数据来看,物联网设备持续被用于DDoS攻击,并扩展到俄乌网络战中。越来越多的攻击重新利用现有恶意软件或利用僵尸网络的模块化特性来实施这些攻击。攻击者还在日益增长的犯罪黑市购买恶意软件和解决方案,以发展其恶意工具包。
自2017年以来,DDoS攻击数量已连续5年呈高速增长态势,仅2021年上半年,全球DDoS攻击就高达540万起。在此背景下,作为黑客攻击的首要目标,企业对DDoS攻击进行有效防范意义重大。
常见的DDoS攻击可分为流量型攻击和应用型攻击(如图1所示),流量型攻击主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务。
流量型攻击具有大流量、高拥塞等特点,且针对单个IP/域名的流量型攻击可能导致网络带宽或设备性能资源耗尽,从而影响其他IP/域名对外提供服务。应用型攻击则针对协议栈或应用层软件设计的缺陷或漏洞等进行攻击,消耗服务器的CPU和内存、数据库资源,使其无法响应正常请求。
常见DDoS攻击类型
DDoS攻击时可能出现的主要表现为:
(1)被攻击主机上有大量等待的TCP连接;
(2)网络中充斥着大量的无用的数据包,源地址为假;
(3)制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;
(4)利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求;
(5)严重时会造成系统死机。
参照业内最佳实践,企业大多采用“运营商云清洗+本地设备清洗”相结合的防护策略。在实际针对DDoS攻击的防护中,运营商侧清洗策略常常难以满足本地个性化定制需求,部分流量解密也涉及客户的数据安全问题。因此,本地清洗策略的及时、有效响应至关重要
1、SYNFlood攻击
(1)攻击原理解析
在正常的TCP会话中,服务器端收到SYN数据包后,会回复(SYN,ACK),并转为半开连接状态。此后如未能收到客户端的(ACK),服务器将保持半开连接状态。SYN Flood攻击短时间内发送大量伪造源IP地址、源端口的SYN数据包,持续消耗服务器TCP半开连接资源,导致服务器难以响应正常的连接请求。
(2)本地防护策略
无效连接监听及释放:持续监控当前服务器半开连接数,当半开连接数累计超出阈值时,将其视为无效连接并释放资源。
防火墙/防护设备代理:当流量路径上存在防火墙或防护设备时,利用其代理功能,在接收到客户端发送的SYN数据包后,由防护设备发送代理(SYN,ACK)数据包验证真实性。如发来的数据包中源IP地址真实,客户端将会响应代理设备的(SYN,ACK)数据包;如数据包中源IP地址为伪造,客户端将不会响应。
2、ACK Flood攻击
(1)攻击原理解析
TCP连接建立后会携带ACK标志位,服务器收到带标志位的TCP数据包后,优先查看数据包内是否包含连接四元组,不包含时回应RST报文。针对服务器回应报文的动作,攻击者短时间内发送大量ACK数据包,从而可能引发网络链路拥塞、设备性能下降、服务器资源耗尽。
(2)本地防护策略
ACK Flood具有“单包攻击”的特点,在大多情况下,数据传输双向的报文数量基本均衡。当单向报文数量远超平衡数量时,可基本判定存在攻击行为,因此采用以下方式防护:当ACK数据包传输速率超出阈值时,启用防护设备对新增连接进行首包检查,通过丢弃ACK数据包对报文序列号、重传时长进行确认,将符合要求的源IP地址加入白名单,不符合的源IP地址加入黑名单。
3、UDP Flood攻击
(1)攻击原理解析
UDP是一种无连接协议。服务器接收到UDP数据包后,根据目的端口号确认自身是否存在监听程序,不存在时,目的地址无法连接的数据包将返回至源IP地址。攻击者伪造源IP地址向目标地址发送大量UDP数据包,如命中提供服务的端口,即可影响相关业务;如未能命中提供服务的端口,也能迅速消耗网络带宽与设备资源。
(2)本地防护策略
限流
基于目的IP地址/安全区域的限流:统计访问特定IP/安全区域的UDP流量并进行限流。
基于会话的限流:统计单个UDP会话的报文速率,若报文速率高于告警阈值,防护设备将锁定该会话、阻断命中报文;当该会话在一定窗口内无流量后才能被解锁。
特征识别
UDP Flood攻击报文一般携带相同特征字段,如包含特定字符串等。该类字段多来自于攻击者常用的DDoS工具内嵌的默认字符串,防护设备可预先收集这类字符串,通过比对进行攻击判别。因攻击报文间相似度极高,比对字段相似程度可显著降低误判几率。
4、HTTP慢速攻击
(1)攻击原理解析
HTTP慢速攻击通过长期保持与HTTP服务器的连接来占用服务器资源,常见类型如下。
Slow POST:
攻击者向服务器发送POST报文请求提交数据,请求中将总报文长度预设为较大值,但在后续单次传输中每次仅传输长度较小的报文,导致服务器长期保持资源占用的等待状态。
Slow headers:
攻击者向服务器请求建立连接,传输完成后,服务器端将等待接收头字段发来的结束符以确认连接可关闭,但头字段持续发送其他字段使连接处于保活状态,导致连接持续被占用。
Slow read:
攻击工具向服务器发送read请求,请求以极小的TCP滑动窗口传输较大文件,文件传输过程中长时间滞留在服务器内存中并占用网络连接,从而消耗资源。
(2)本地防护策略
防护设备持续监测HTTP并发连接数,当并发连接数超出阈值时触发报文检查,如发现连续多个HTTP POST报文的总长度过长但载荷长度很小,或连续多个报文的报头缺少结束标识,则判定为遭到HTTP慢速攻击,将该源IP地址加入黑名单,并强制断开其与服务器的连接。
5、Challenge Collapsar攻击
Challenge Collapsar(CC)攻击是一类典型的应用型DDoS攻击,该类型攻击通过端口扫描程序在互联网上寻找匿名代理,模拟用户对服务器端需要进行大量数据处理的页面发起持续访问。HTTP Get/POST Flood攻击就是典型的CC攻击。
(1)攻击原理解析
HTTP客户端访问服务器时一般会发送Get或POST请求,Get请求用于检索标准静态内容,POST请求用于访问动态资源。攻击者通过向服务器发起大量需数据库参与操作或其他系统资源消耗的URI请求,在引发Web前端无法响应或响应缓慢的同时,甚至能间接影响后端业务层逻辑。
(2)本地防护策略
针对HTTP Get Flood攻击采用302重定向认证
使用防护设备替代服务器向客户端响应302状态码,通知客户端重定向至新的URL。真实客户端能够自动重定向发起访问请求,从而通过验证并被加入白名单;虚假源一般不会内置完整HTTP协议栈,无法完成自动重定向。
针对HTTP Post Flood攻击采用307重定向认证
使用防护设备替代服务器向客户端响应307状态码,并向客户端的浏览器注入Cookie,真实客户端再次发起请求时,会在HTTP报头上附加Cookie信息;虚假源或者不支持完整HTTP协议栈的攻击工具将无法重新发起请求。
防护设备将要求客户端输入验证码,以此来判断用户真实性。因验证码为随机生成,可有效过滤攻击流量。
软件定义网络(Software Defined Networking,SDN)通过将传统网络架构解耦为数据、控制和应用平面,实现网络架构的重建。原本依托于转发设备的控制功能被整合至控制器后,网络的灵活性、开放性、可编程性均得到了显著提升。同时,SDN集中化控制、OpenFlow协议不够成熟等特征也引发了新的安全威胁。本文仅对部分常见SDN的DDoS攻击防护思路作简要介绍。
1.基于数据包多特征联合熵的DDoS攻击检测方案
该方案以流量持续时间、数据包长度、源地址IP、目的端口作为检测DDoS攻击类型的关键指标,由控制器通过计算交换机上报的Packet-In消息得出的目的IP信息熵与阈值进行比较,当熵值小于阈值时,则判断存在DDoS攻击。
2.基于流表的路径图溯源方案
该方案利用网络流量的自相似性原理,通过计算自相似指数判断网络中是否存在网络攻击。在检测到网络存在攻击的情况下,基于网络中的主机和交换机以及交换机中的流表项建立有向图,从受到攻击的主机进行追踪溯源,从而找出攻击路径并找到实施攻击的节点。
TCP攻击是2022年遇到的最常见的DDoS攻击形式,占所有攻击流量的63%,包括所有TCP攻击类型:TCP SYN、TCP ACK、TCP洪水等。由于TCP仍然是最常见的网络协议,预计基于TCP的攻击将继续构成大多数DDoS攻击。
UDP攻击也很重要,占所有攻击的22%(包括UDP洪水和UDP放大攻击),而数据包异常攻击仅占攻击的15%。
-----------------------------------------------DDoS攻击类型 ------------------------------------------------------
在UDP洪水攻击中,“欺骗洪水”攻击占攻击总量的53%。其余的攻击是“反射放大攻击”,主要类型为CLDAP、NTP和DNS。
研究人员发现 “TCP反射放大攻击”越来越普遍,对Azure资源的攻击使用不同类型的反射器和攻击向量。这种新的攻击向量利用了中间盒(如防火墙和深度数据包检测设备)中不正确的TCK堆栈实现,以引发放大的响应,在某些情况下可以达到无限放大。例如,在2022年4月,研究人员监测到对亚洲Azure资源的反射放大SYN+ACK攻击。攻击达到每秒3000万包(pps),持续15秒。攻击吞吐量不是很高,但涉及900个反射器,每个反射器都有重传,导致pps率很高,可能会降低主机和其他网络基础设施。
--------------------------------------------DDoS攻击持续时间-----------------------------------------------------------
在过去的一年中,持续时间较短的DDoS攻击更为常见,89%的攻击持续时间不到一小时。一到两分钟的攻击占全年攻击的26%。这并不是一个新趋势,因为短时攻击需要更少的资源,并且对于传统DDoS防御来说,更具挑战性。攻击者通常在数小时内使用多次短时攻击,以在使用最少资源的同时发挥最大影响。
短时攻击利用了系统检测攻击和缓解所需的时间。缓解时间可能只需要一两分钟,但这些短时攻击的信息可能会进入服务后端,影响合法使用。如果短时时间的攻击会导致系统重新启动,那么当每个合法用户同时尝试重新连接时,这可能会触发多个内部攻击。
DDoS攻击是一种常见的网络攻击,它会使目标服务器或网络资源不可用。
1、流量清洗:流量清洗是一种常见的DDoS防护措施,它可以检测和过滤掉恶意流量,从而保护目标服务器或网络资源。
2、负载均衡:负载均衡可以将流量分散到多个服务器上,从而减轻单个服务器的负载,提高系统的可用性。
3、防火墙:防火墙可以过滤掉恶意流量,从而保护目标服务器或网络资源。
4、CDN加速:CDN可以将静态资源缓存到全球各地的服务器上,从而提高访问速度,减轻服务器的负载。
5、限制连接数:限制连接数可以防止攻击者通过大量的连接占用服务器资源,从而保护目标服务器或网络资源。
6、使用DDoS防护设备:DDoS防护设备可以检测和过滤掉恶意流量,从而保护目标服务器或网络资源。
本文通过剖析DDoS攻击原理,总结过往防护经验,提出了针对常见DDoS攻击的防护思路,可作为各类企业巩固本地防护、提高服务高可用性的有效参考。事实上,随着互联网业务的繁荣发展,DDoS攻击逐渐呈现出类型多样化、大流量常态化的趋势,这对防护系统的秒级攻击响应速度、扫段攻击防御能力提出了更高要求。在搭建层次化立体架构、部署合适的防御技术、兼顾成本与可扩展性的基础上,进一步完善运营商云端与本地清洗相结合的防护策略,培养一流的网络安全人才队伍,是企业预防网络攻击风险、消除潜在安全隐患的关键。