DDoS攻击的发展与防御综述
2021-03-24王印玺黄华雪
王印玺,黄华雪
(四川大学网络空间安全学院,成都610065)
分布式拒绝服务攻击(DDoS)给网络空间安全带来巨大的威胁,如何对DDoS攻击进行有效的防御是网络安全领域研究的热点。从DDoS攻击的不同时期进行研究,总结DDoS攻击在每个时期的攻击特性和主要的防御方法,重点论述DDoS攻击的发展趋势,对新一代DDoS攻击和防御方法进行分析与展望。
DDoS;DDoS防御;Botnet;网络安全
0 引言
分布式拒绝服务攻击(Distributed Denial of Ser⁃vice)破坏了信息安全的可用性。攻击者使用大量的流量消耗目标服务器的网络资源或服务资源,阻止合法用户正常地访问资源,给受害者带来巨大的经济损失。DDoS攻击能造成网络设备和基础设施的瘫痪,不仅严重影响个人生活和经济的发展,还严重威胁国家安全。
DDoS攻击按照攻击手段可以分为两种类型,第一种类型利用系统或服务存在的漏洞发起拒绝服务攻击[1]。如CVE-2019-0708漏洞,攻击者只需要发送一个精心构造的RDP数据包就能关闭一台Windows Server。第二种类型需要使用大量的无用数据包快速地占据受害者的资源,使得受害者不再有能力为合法用户提供服务。第一种类型的攻击通过打补丁能有效地进行防御,第二种类型的攻击需要准确地区分合法流量和DDoS流量,是学术界研究的重点。本文详细讨论的是第二种类型的攻击。
如今,DDoS攻击在因特网上及其常见且攻击次数逐年增加。报告指出2020年上半年DDoS百G以上攻击次数高达4000次,总攻击次数与2019年同期相比增长了45%[2]。针对DDoS攻击异常频繁且攻击强度高,总结了三种原因:
(1)DDoS攻击工具容易获得
在早期,攻击者需要手动构造特定的数据包,同时操控大量主机发动DDoS攻击。但随着互联网的发展,全自动化攻击工具常见且容易获得。这大大降低了发动攻击的成本和门槛。这使得一位电脑菜鸟也能使用攻击工具发起一次成功的DDoS攻击。
(2)因金钱或利益的驱动发动DDoS攻击
攻击者以DDoS攻击作为威胁,敲诈勒索受害者,达到非法牟利的目的。甚至建立专门的攻击平台,出租DDoS攻击流量进行非法盈利。如Webstreeser,欧洲最大的DDoS攻击出租平台,在2015到2018年间发动的DDoS攻击次数高达4千万次。
(3)DDoS攻击结合新技术进行演变
新技术的不断催生,导致DDoS攻击结合新技术演变出更多种类的攻击。如DDoS结合IoT的攻击,通过感染大量的物联网设备发起流量高达1TB每秒的攻击。以往的攻击很难企及如此大的流量。
深入剖析DDoS攻击的发展,对研究DDoS攻击的防御至关重要。本文研究DDoS攻击的演变进程与防御方法,首先介绍DDoS攻击的分类。其次,根据DDoS攻击在不同时间段的特性,将其分为三个时期:DDoS早期、Botnet时期和应用层时期,对每个时期的攻击方法,防御手段进行详细探讨。
1 DDoS攻击的分类
根据攻击的目的可以将DDoS攻击分为两类:网络层攻击和应用层攻击。网络层攻击意在消耗目标的带宽资源或是网络设备的资源。这类攻击包括:TCP SYNflood攻击、UDPflood攻击等。应用层攻击利用应用层协议大量消耗服务器的资源。这类攻击包括HTTP慢速攻击和CC攻击。
根据攻击的手段可以将DDoS攻击分为直接型和反射型。直接型攻击要求攻击者与目标主机会有直接的交互。直接型攻击通常会与网络层攻击联合使用,使用大量的数据包淹没受害者。反射型攻击存在中间服务器,攻击者通过将源IP地址伪造成目标主机,将大量的数据包发送至中间服务器,中间服务器收到请求后会返回大量的数据包至目标主机。这类攻击包括DNS反射攻击、SSDP反射攻击。因响应数据包与请求数据包的比值远远大于1,这类攻击又称为DDoS放大攻击。通过攻击目的和攻击手段这两个维度,将DDoS攻击细分为四种类型,如图1所示。
图1 DDoS分类图
2 DDoS早期
2.1 攻击特性
第一次检测到的DDoS攻击发生于1996年,攻击者发送大量的TCPSYNB包淹没目标主机,造成主机的瘫痪。在早期,网络设备和协议的设计缺乏足够的安全意识,这使得攻击者可以利用它们的缺陷轻松的发动DDoS攻击[3],此处总结了DDoS攻击在早期的三种特性。
(1)网络层的泛洪攻击是主要的攻击类型
攻击者主要使用TCP泛洪攻击和ICMP泛洪攻击,这种攻击简单且实用,能在短时间内大量消耗目标的网络资源。网络设备的带宽在早期及其有限,同时缺乏有效地防御手段,使得网络层的泛洪攻击效果显著,成为早期攻击的主流。
(2)攻击者手动地感染主机
攻击者为了成功地瘫痪目标主机,需要大量的网络资源。而更多的僵尸主机意味着更多的IP地址,更多的流量,更大的带宽。这使得存在安全缺陷的主机成了攻击者的目标。在早期,攻击者通过手动的方式去感染主机,在利用感染主机发动DDoS攻击。这也导致僵尸主机的增长比较平缓。
(3)攻击者倾向于伪造IP地址
因早期网络设施的缺陷,攻击者可以轻易地伪造IP地址,间接地增加攻击流量[4]。通过伪造源IP地址,受害者会误认为存在大量主机与其通信。伪造IP地址发动攻击的成本远远小于组建僵尸主机,且技术成本要求较低,使得伪造IP地址发动DDoS攻击在早期及其活跃。
2.2 防御方法
在早期,攻击者利用伪造IP地址产生大量的恶意流量,因此研究更侧重于对伪造IP地址的识别。识别方法包括Ingress/Egress过滤器[5]和攻击回溯[6]。前者检测IP地址的合法性,同时屏蔽伪造IP地址。后者通过伪造的IP地址去追溯攻击者的真实地址。
(1)Ingress/Egress过滤器
Ingress过滤器确保所有进入网络内部的数据包都来自受信任的域。Egress过滤器要求所有未经授权的数据包无法发送到网络外。该方法属于源端防御,根据IP地址域对伪造IP进行识别。它的防御效果取决于在网络中的部署范围。但是,如果伪造IP的攻击者在Ingress过滤器所信任的域内,那么该防御方法不再有效。
(2)攻击回溯
攻击回溯意在构建整体的攻击路径,该方法分为路径标注和路径推测两种类型。路径标注会在数据包通过路由节点时插入唯一的标识,不同的路由具有不同的标识符,根据标识符构建出整条路径。该类典型代表为ICMP回溯方法,文献[7]改进了ICMP回溯方法,追加标记路由下一跳的位置,使得回溯更加准确。文献[8]在ICMP数据包中增加额外的位表示路由的权值,使得构建回溯路径更加迅速。路径推测通过监控网络流量的变化,从而推断出数据包的来源。其中最著名的是基于哈希的攻击回溯[9],该方法使用源路径隔离引擎,对网络流量进行跟踪来回溯数据包的来源。文献[10]根据DDoS攻击与正常流量熵的不同,迭代的搜寻存在攻击流量的上游路由,直至回溯到攻击源。
源端防御的广泛部署使得伪造IP地址的方法不再适用,导致攻击者倾向于感染有缺陷的主机并组建僵尸网络,来增加攻击的强度。这使得DDoS早期开始向Botnet时期过渡。
3 Botnet时期
3.1 攻击特性
僵尸网络(Botnet)是指被恶意程序感染,收到攻击者控制的主机。随着互联网的发展,主机迅速地增长,但是人们对网络安全的意识相对较弱,给了攻击者可乘之机。漏洞信息的公开和黑客工具的轻易获得使得僵尸主机在网络空间中大量激增。在该时期大部分攻击流量由僵尸网络产生,该时期的攻击特性如下:
(1)攻击流量迅速地增加
攻击者通过感染大量主机,组建僵尸网络,具备产生大量攻击流量的能力。另一方面随着硬件成本的降低,目标主机具有更多的网络资源和计算资源,使得需要更多的攻击流量才能达到拒绝服务器的效果。DDoS攻击的峰值流量如图2所示。
图2 DDoS攻击峰值流量
(2)网络层攻击是主要攻击方法
自动化工具能轻松地生成网络层攻击,结合僵尸网络,攻击者能生大量的网络层流量,淹没目标。该攻击成本简单且易发起,报告指出网络层攻击在2015年至2018年占比最大[11],其中SYN泛洪攻击位列首榜,见图3。
图3 网络层攻击流量占比
在这个时期,攻击者利用僵尸主机来增加攻击流量,防御者需要对正常流量和攻击流量进行准确地识别,进而防御和缓解DDoS攻击。通过提取攻击流量的特征,建立检测模型,对流量进行准确地识别,该方法称为基于特征的检测方法。
3.2 防御方法
基于特征检测的方法需要提取数据集的特征,建立检测模型,利用测试样本评估模型的好坏。在正常情况下,TCP流入与流出数据包的比例是稳定,利用该特性,MULTOPS根据流入流出子网的数据包速率的差异来检测DDoS攻击[12],该方法能根据流量的变化实时调整检测的颗粒度,但是对内存空间消耗过大。根据发生DDoS攻击时,数据包头信息的统计分布与正常状态下存在差异,文献[13]提出一种基于IP数据包熵(IPSE)的DDoS检测方法,通过观察数据包熵的时间序列来检测攻击。根据TCP流量与RTT在通信过程中具有很强的周期性,文献[14]提出一种基于频谱分析的方法对DDoS攻击进行识别,它利用RTT间隔中数据包到达次数作为信号,估计信号的功率谱密度来检测TCP泛洪攻击。
在Botnet时期,攻击者更注重于攻击流量的大小,倾向于发动网络层攻击来消耗目标的带宽资源。防御方法注重于提取攻击的特征,对攻击流量进行识别。当攻击者更侧重于对主机资源进行消耗时,DDoS开始向下一个时期过渡。
4 应用层时期
4.1 攻击特性
应用层协议与网络层协议相比更加繁多且复杂,这使得每一个应用层协议都成了潜在的攻击面。在应用层时期,因防御方法的发展,攻击者更侧重与攻击的质量,通过精心构造的应用层DDoS攻击,达到比网络层攻击更好的效果。应用层时期的攻击特性如下所示:
(1)攻击者倾向于发动应用层攻击
报告显示了2017年到2019年间最频繁的三种DDoS攻击[15]。应用层攻击的占比在不断地增长,其中SSDP反射攻击和DNS反射攻击分别在2018年和2019年达到第一,见图4。但是网络层的攻击依然活跃,对于缺乏防御的主机,网络层攻击带来的效果仍然显著。
图4 DDoS攻击类型占比
(2)攻击趋于复杂化且多样化
攻击者不再满足于单一类的攻击,而是使用多种攻击相结合的方法。这类混合攻击破坏性更大,同时更加难以防御。
与网络层DDoS攻击相比,应用层攻击在网络层的流量是完全正常的,同时不同应用层协议差异很大,这使得利用特征提取的方法进行检测较为困难。基于应用层协议的复杂性,研究者提出了基于测试的识别方法和基于行为的检测。
4.2 防御方法
(1)基于测试的识别
基于测试的识别方法核心是图灵测试。其中,CAPTCHA和AYAH最为常用[16-17],它们根据识别图像或回答某种问题来区分人和自动化机器。同时阻止未通过测试的请求访问服务。但该类方法会影响用户对服务的正常访问,需要在测试强度和用户体验之间寻找平衡。Golle[18]通过一种无缝集成测试的方法,提高图灵测试的强度,该测试要求用户在线游玩游戏,在增加测试强度的同时保障用户体验。文献[19]提出一种基于图灵测试的系统,通过提取人类浏览Web页面的隐式模式,分析当前用户的浏览模式是否正常。与CAPTCHA相比,该方法不需要直接进行人工的交互。
(2)基于行为的检测
基于行为的检测需要首先建立基准行为模型,通过分析用户一段时间的行为,然后与基准行为模型进行对比,将偏离行为模型的用户判别为非法用户。文献[20]根据每个连接的统计属性,如请求率、访问时间、点击深度等,计算行为分数,将得分较低的连接判定为恶意连接。Xie等人提出一种基于隐式的半马尔科夫模型,用于识别用户浏览行为的异常。使用信息熵对HTTP请求进行建模,将偏离行为模型的用户识别为攻击者[21]。文献[22]对日志系统进行挖掘,通过对用户日志建立基准模型,来识别恶意行为。该方法不仅可以检测DDoS攻击,还能检测针对应用层的其他类型的攻击。
最近的报告显示应用层攻击次数仍然占首位,如今依然处于应用层时期。我们并不知道下一个阶段会是怎样的,具有哪些特性。但毋庸置疑的是,DDoS攻击会结合新技术不断地进行演变。
5 结语
本文按照时间顺序,回顾了DDoS的发展与演变过程。根据DDoS攻击者的倾向,将它们分为DDoS早期、Botnet时期和应用层时期。同时总结了攻击的特征和主要的防御方法。DDoS攻击会随着新技术的发展而不断演变,后续对于SDN和云服务的DDoS防御方法将会是研究重点。