Group of Software Security In Progress

Defense Mechanisms Against DDoS Attacks in a Cloud Computing Environment-State-of-the-Art and Research Challenges

作者:Neha Agrawal;Shashikala Tapaswi

单位:Amity University Gwalior; Indian Institute of Technology Indore

来源:IEEE COMMUNICATIONS SURVEYS & TUTORIALS 2019.11

连接:Defense Mechanisms Against DDoS Attacks in a Cloud Computing Environment: State-of-the-Art and Research Challenges

Abstract

云计算所具有的显著优点(如按需服务、资源池、广泛的网络访问、快速的弹性服务)正在被攻击者所利用,并以此发送日益严重的分布式拒绝服务攻击(DDoS)。在这种情况之下,DDoS攻击通常是通过大量(高速率)的恶意流量来耗尽服务器的资源。由于恶意流量是如此之大,这样的高速率攻击就去很容易检测到,因此攻击者逐步开始研究低速率的DDoS攻击。低速率的DDoS攻击由于其隐蔽、低速的特征很难被现有的防御机制所检测到。本文主要研究了在云计算环境中的各种DDoS攻击及其检测、防御和缓解方法。

云计算中所面临的DDoS攻击

尽管云计算在按需自助服务、资源池、广泛的网络访问和弹性服务上带来了诸多好处,但该技术仍然面临诸多威胁,在所有安全问题中,可用性被认为是最重要的问题,因为云计算的主要功能就是提供按需服务,对于云计算服务和资源可用性最大的威胁就是DDoS攻击。

DDoS攻击是一种特定类型的拒绝服务攻击,其中多台分布式受损机器也被称为BOT,目标则是受害者的云服务器。在云环境的DDoS攻击主要分为暴力攻击和语义两大类。蛮力攻击(也称为洪泛型/高速率DDoS)是指攻击者向目标云服务器发送大量恶意请求,耗尽其网络带宽,很容易被防御机制检测到。相反语义攻击(也称漏洞攻击/慢速率DDoS)则是利用协议的弱点,而不是耗尽网络带宽或云计算计算。攻击者产生少量的恶意流量,以攻击特定的协议或应用程序。这种低速率的攻击看起来与合法流量相似,因此很难被识别。

随着技术的进步,云平台在资源方面日益强大,由于云端的资源池很大,攻击者即使使用高速率的DDoS攻击也很难耗尽所有资源,因此低速率的攻击变得更受青睐。现在攻击者试图通过复制的低速率DDoS攻击,在没有早起检测的情况下降低云服务的质量。根据攻击发起策略,可将低速率的DDoS攻击分为四类:shrew攻击、RoQ攻击、LoRDAS攻击、EDoS攻击。在低速率攻击中,EDoS攻击受到广泛的关注。2015年亚马逊的EC2遭受到严重EDoS攻击,每日损失超过3万美金。

云计算中的DDOS攻击场景

高速率DDoS攻击

传统情况下发动DDoS攻击需要在短时间内感染足够多的BOT这并不是一件容易的事情,但是在云计算情况下这种事情变得容易到多,云计算按需服务的特性,使得攻击者可以创建起一个强大的僵尸网络。

一般情况下高速率DDoS攻击是指攻击网络带宽大于500Gbps的海量请求攻击,低速率DDoS攻击请求是周期性的,脉冲性的,消耗更小的网络带宽(单位为Mbps)。

在高速DDoS攻击中,攻击者会发送大量的恶意请求来中断云服务或用户的连接。连接中断是由耗尽路由器处理能力、网络带宽能力或资源所引起的。这种攻击被称为网络或传输级的洪泛攻击,常见的有TCP-FLOOD、UDP-FLOOD、ICMP-FLOOD

低速率DDoS攻击

与高速率DDoS攻击不同,低速率DDoS攻击是一种复杂的攻击,由于其流量低、行为隐蔽,检测难度大。由于攻击者发送发送恶意请求的速度非常低,基于流量的防御机制仍然无法检出到此类攻击,攻击将影响合法用户的服务体验(QoS)而不是停止云服务。根据被利用漏洞、攻击目标和攻击参数的取值,低速率DDoS攻击可以分为四种类型:shrew攻击、RoQ攻击、LoRDAS攻击和EDoS攻击。这些攻击在攻击特征上有所不同,比如攻击长度(L)、攻击周期(T)和攻击速率(R)。攻击流量在较短时间为高强度,并在特定的周期后重复,呈现周期性和脉冲性。

  • 具体表现为:
  1. Shrew攻击:攻击者利用TCP Retransmission Timeout(RTO)机制存在的漏洞进行攻击。shrewd攻击的目的是通过发送低速率的攻击流量来挤压合法TCP流的传输空间,从而影响云应用。每当TCP发送端从超时中恢复时,攻击者立刻再次发送低速率流量,使得链路再次拥塞/超时,因此它使得合法TCP流的吞吐量非常低或接近零。shrew攻击具有两个重要的特性(a)shrew攻击的峰值速率保持不变,而TCP流的峰值速率线性增加;(b)攻击流周期性地到目的地,而(正常)TCP流则是连续性到达。根据这些特性,shrew攻击就可以被检测到。 shrew攻击模型 如图提出了一种shrew攻击的数学模型,该模型由三个参数组成:攻击周期Ts,攻击长度Ls和攻击强度Rs,其中Ts是使用来自合法来源的TCP RTO定时器计算的。有之前的研究表明发动攻击的周期Ts应该等于1秒(初始RTO),以最大化攻击造成的伤害,但是后续被证明这个结果是不准确的,因为它没有考虑到TCP拥塞窗口的适应行为。为了维持攻击不被发现,攻击时间必须大于1秒,同时Rs和Ls的值也应该提高。

  2. 降低质量(RoQ)攻击:攻击者利用了TCP加法增加乘法减少的拥塞避免算法(AIMD)的漏洞。这种攻击的目的是影响合法云用户的QoS体验。

  3. 针对服务器的低速率DDos(LoRDAS)攻击:通过产生低速率的恶意请求,耗尽云服务的资源。攻击者的目的是填充受害服务器的服务队列,攻击场景是一个托管于云上的服务器运行着大型应用程序,这些应用程序依靠有限的服务队列加以调度:每当请求到达时,它会等待轮询到自己的请求,当请求(基于队列的)被分配给服务器时,队列中就会有新的空间可以使用。攻击者会在释放队列的间隔周期内塞入新的请求到队列之中,因此合法用户的请求就会被丢弃。
  4. 经济Dos攻击:攻击者的目标是提供云服务的经济组件。因为云服务是动态供应的,可以根据用户的需求伸缩,EDoS攻击利用了云的自动伸缩特性,导致用户在本不必花钱的情况下安装新的虚拟机。一段时间后,CSP提供的服务就将变得不可持续。在DDoS攻击中,EDoS攻击是非常可怕的,因为它的目标是云的经济组件,与其他DDoS攻击试图阻止合法用户访问云服务不同,EDoS试图使CSP长时间无法提供云服务。

针对云计算环境下DDoS攻击的预防机制

针对高速率DDoS攻击的预防机制

  1. 弹性调度:该方法是由DDoS的可疑分配和弹性调度器组成。可疑分配为每个会话提供一个连续的值,调度程序利用这个值来决定是否以及何时调度会话的请求,依次增加在大规模云网络环境中的可扩展性。但是同时这种方法也一定程度上影响了性能。
  2. 网络流量管理:为了防止恶意攻击企图占用网络带宽的行为所提出的一种自适应的流量管理技术。有作者就提出了一种根据用户是合法用户的概率限制网络带宽的流量整形技术,在高流量负载下,该方法使源IP地址达到带宽限制。但是这种方法同样也因为限制了云的自动扩展特性从而影响到合法用户的使用体验。
  3. 隐藏服务器的端口:这种方法隐藏了服务器和客户端之间的直接通信链路,一般来引入了一个或多个中间节点(代理)来充当转发机构。转发机构平衡云服务器中间的负载,监控传入的流量并负责服务器的容错和恢复。

针对低速率DDoS攻击的预防机制

  1. shrew攻击的预防机制
    • shrew攻击主要利用了TCP RTO机制的漏洞进行攻击,这种攻击没有预防机制,只有检测方法。
  2. 低速率RoQ攻击预防机制
    • 有人提出了一种防止攻击者获得所有服务队列位置和估计服务器读取队列行为的一种预防方法。这种方法通过修改服务器对传入请求的处理模式实现预防RoQ攻击的目的。
  3. 低速率LoRDAS预防机制
    • 有研究人员在模拟环境中分析了LoRDAS攻击的影响,通过预测请求的响应时间,可以使攻击流量最小化。低速率LoRDAS预防机制上表比较了集中不同的LoRDAS防御机制,包括它们实验的对象,使用的方法,测试的方法、输入和输出的参数等,结果说明发动LoRDAS攻击可行并且难以被识别,攻击者甚至可以采用更加负载的发送测量,因此还需要设计出更有效的方法来防御这一类的攻击。
  4. EDoS攻击防御机制
    • 有人提出了一种基于加密难题(crypt-puzzle-based)的解决方案来预防EDoS攻击。谜题难度级别由真正想要访问云资源的云用户定义,用户必须解决所要访问的云服务器的加密难题。由于资源限制,请求在给定的时间内没有被接收,那么解决密码谜题的难度就会增加。但是这一类的方案是容易遭受到谜题累计攻击(攻击者请求一个谜题而没有任何意图去解决它们),并且在功耗对比和误报率上存在缺陷。如果攻击者拥有足够的计算能力来解决谜题,这些方法可能会提供假阴性,如果合法用户缺憾足够的计算能力,这些方法又可能提供假阳性,从而影响合法用户的性能。

针对云计算环境下DDoS攻击的检测方法

针对高速DDoS攻击的检测方法

检测方法主要分为两类,一是基于签名,二是基于异常。基于签名的检测方法中,将捕获的网络流量与定义明确的攻击模式(如字节或包序列)进行比较,与基于异常的方法相比,这种方法更容易开发和理解,结果更为准确。但是局限在于只能对已知的攻击模式进行识别。

基于异常的检测方法重点在于攻击检测。对于合法的用户行为进行分析,如果合法的用户行为出现了任何偏差,就会发出攻击信号,该方法可以检测未知的攻击,但不能提供很好的准确性。

常见的方法有:

  1. 基于VM的检测方法。在每一台云服务器中安装了IDS用于分析进出的网络流量,IDS检测到DDoS攻击后就会从攻击源丢弃进入的流量。
  2. 模式与指纹匹配:在高速DDoS的攻击场景下,一般为伪造源IP地址,通过主动建立TCP连接确认源地址是否为有效地址。此外还可以检测DDos的攻击路径指纹。
  3. 基于过滤的DDoS攻击检测:该方法是由一些列的过滤器组成,用于检测和解决基于HTTP、XML、RESET等的DDoS攻击。过滤器可以包括对应属性出现的频率、匹配TTL值等方法。
  4. 基于跳数的DDoS攻击检测:攻击者可以伪造TCP/IP报头的任何字段,唯独不能伪造其TTL字段,因此可以利用TTL值来检查欺骗的IP报文。
  5. 基于熵的攻击检测:使用信息距离(metric)生成熵进行攻击检测。
  6. 基于变更点检测:使用变更点检测技术识别洪泛式DDoS攻击,比如通过比较报文的特征(如IP流量、源IP地址、目的IP地址等)和正常报文的特征来检查攻击。
  7. 基于数据挖掘的攻击检测:基于Hadoop、MapReduce的HTTP GET FLOOD攻击检测技术。
  8. 基于特征选择:有人提出了一种基于协方差矩阵的云环境DDoS攻击检测方案。将进入网络的流量转换为协方差矩阵,并将基线配置文件进行比较,进行攻击检测。基线配置文件是从合法流量中特征生成的。

局限性:现有的检测方法中,基于异常的检测虽然可以解决签名方法的局限性,但是仍然不能提供较高的检测精度,同时需要中间中间路由设备的配合,需要较高的计算和通信复杂度。因此在具有可伸缩性的云环境中可能无法获得更好的性能,因此还需要一种更有效的检测方法来检测出性能更好的DDoS攻击。

针对低速DDoS攻击的检测方法

  1. shrew攻击的检测方法
    • 基于DFT(离散小波变换),现有的频域方法可以分析频谱分析、拥塞参与率(CPR),网络流分组、信息熵和自相似性。
  2. 低速率RoQ攻击检测方法
    • 有人提出基于路由器的检测和减少RoQ攻击的方法。第一阶段在路由器上为每个流量信息检测RoQ攻击,第二阶段使用过滤算法丢弃RoQ包。
  3. 低速率LoRDAS检测方法
    • 有研究者讨论了对HTTP服务器的低速率DDoS攻击的检测,它利用了Apache HTTP 1.1 的服务器处理持久连接的弱点,同时发现针对HTTP/2的研究发现,它比HTTP/1更容易受到攻击,提出了一种利用合法流量与攻击流量之间的卡方距离的入侵检测方法。
  4. EDoS攻击检测方法
    • EDoS对于攻击者的发动要求很低,但是检测却比较困难,EDoS攻击效果取决于资源分配策略、攻击强度、攻击持续时间、攻击类型和云基础设施的大小。

针对云计算环境下DDoS攻击的缓解机制

缓解是防御生命周期的最后阶段,缓解方法的目的是通过在正确的时间采取适当的行动将DDoS攻击的影响降至最低。现有的缓解方法可以大致分为两类:协作和非协作。在协作缓解方法中,多个中间路由器之间相互协作,有效地抵御DDoS攻击。在非协作方法中,路由器不存在协作,他们独立工作减轻DDoS攻击的影响。

针对高速率DDoS攻击的缓解机制

  1. 协作式:
    • 分布式协同检测和缓解DDoS攻击方法:自主系统的多个路由器使用速率限制测量将小部分传入的攻击流量进行丢弃。
    • 协作延迟防御模型缓解方法:一个安全设备将攻击流量的信息推送到其他安全设备,该模型被称为Codef,它涉及路由器之间的协作,并执行两种功能,路由和速率控制。
    • 负载均衡器:由两个模块组成,检测和缓解,检测模块将结果转发给缓解模块。
  2. 非协作式:
    • 基于OpenFlow协议的静态限速DDoS防御方法:利用无监督人工神经网络(ANN)和自组织映射(SOM)提取相关特征,并将流量分类为恶意或者合法。
    • 基于NetFLOW的源地址验证体系结构:VAVE验证数据包的源是否有效,如果发现该报文是恶意的则丢弃响应的路由表项,

针对低速率DDoS攻击的缓解机制

  • DDoS shield:一种验证验证传入请求合法性的方法。主要思想是检测请求是来自僵尸网络还是合法用户。第一个传入的请求转发到验证者节点,该节点使用图像图灵测试验证请求,并更新防火墙的黑/白名单,根据第一个请求的验证结果处理后续请求。此外还有人对上述方法进行了改进。在黑白名单中添加TTL值,当一个请求进入验证过程时,它的TTL值将被存储。

  • 有人提出了基于云计算自动伸缩性的动态资源分配策略。

  • 还有人利用了平均CPU利用阈值和持续时间作为检测参数,一旦利用率超过上限,就会进入怀疑模式,但是局限性是合法用户的自动扩展特性会收到影响。

几点总结

  1. 现有的高速DDoS攻击检测方法主要是集中在时域,而低速率DDoS攻击行为具有周期性和脉冲性,利用时域流量分析方法对周期性的脉冲进行检查是比较困难的,因此对低速率DDoS攻击的检测是在频域进行的,现有的频域方法像DFT计算复杂度比较高。
  2. 现有检测方法一般无法进行实时流量分析,有很高的攻击报告时间和受害者服务停机时间,响应的攻击缓解成本也比较高,需要有更有效的方法及时抵御DDoS攻击。