APP下载

云环境下的“云滴冻结”攻击

2014-06-09王一川马建峰张留美孟宪佳

西安电子科技大学学报 2014年3期
关键词:云滴监控器僵尸

王一川,马建峰,卢 笛,张留美,孟宪佳

(西安电子科技大学 计 算机学院,陕西 西 安 710071)

在过去的20多年里,互联网技术深刻地影响着人们生活的方方面面.特别是在近几年,云计算技术的出现和推广为用户使用互联网资源提供了极大的便利.云计算的思想是采用一种普适的、便捷的、按需的方式,可配置地组织和共享各种资源(包括网络、服务器、存储、应用等)[1].因此,“多租户”是云计算技术的重要特征.以虚拟机为代表的虚拟化技术成为了云计算环境下的关键技术之一;同时,云计算环境下的安全问题也引起了产业界、学术界、政府等各界人士的关注[2].特别是虚拟机技术的广泛应用,对传统网络的安全问题提供了新的解决思路,同时也带来了新的安全隐患.在云计算环境下,虚拟机的数据隔离、快照和动态迁移等相关技术确实在用户隐私保护、服务可生存性等方面发挥了较强的优势,然而对某些网络攻击却也提供了更好的温床[3].

比如僵尸网络.僵尸网络是指用恶意程序感染大量主机,使控制者能够通过若干计算机直接向受感染主机发送指令的攻击网络[4].分布式拒绝服务(DDoS)攻击是僵尸网络的主要攻击形式,同时也是资源耗尽型攻击的主要攻击形式[5].分布式拒绝服务攻击是指网络控制者控制多个受感染主机同时向目标服务器发动攻击,其攻击目的是减慢服务器服务响应速度或者直接使其目标服务器/网站崩溃.2010年,安全供应商Arbor Networks关于僵尸网络的报告[6]表明,分布式拒绝服务攻击次数较往年呈现更频繁和复杂的趋势.在云计算环境下,发动分布式拒绝服务攻击变得更为方便.攻击者可在非常短的时间内,使用少量投资租用云服务商提供的大量虚拟机来实施攻击.以Amazon EC2为例,使用小型的Linux/Unix服务仅需要0.06美元/小时,最高的8倍超大型 Windows服务仅需要4.931美元/小时(引自http://aws.amazon.com/cn/ec2/pricing/).如果攻击者的攻击目标直接是云服务器集群,事情将变得更具威胁性.正如Arbor Networks公司第8份世界基础设施年度安全报告指出的一样,云计算服务和数据中心正在遭受越来越多的网络攻击[7].

结合云计算环境下服务器集群部署的特征,笔者提出一种实用的、新型的分布式拒绝服务攻击模型——“云滴冻结”攻击(Cloud-Droplets-Freezing,CDF).通过攻击实验,验证这种攻击不仅可以对云服务器集群的带宽产生严重的拥塞,而且能够极大地消耗物理主机的内存和CPU等资源,这使得本来能够分配给合法虚拟机的资源被非法占用,从而达到拒绝服务的效果.

1 “云滴冻结”攻击

1.1 网络模型

设网络模型为典型的云服务器集群部署拓扑环境,如图1所示.云服务器集群中存在P台物理服务器,每台物理服务器上通过虚拟机监控器(Virtual Machine Monitor,VMM)运行和控制若干台虚拟机服务器,这些虚拟机服务器对因特网用户提供相应的云计算服务.其中某些虚拟机被僵尸网络所控制.物理服务器通过云集群的核心交换机相连.云集群通过防火墙连接因特网服务提供商,并对因特网用户提供云服务.防火墙中部署有入侵/保护(IDS/IPS)系统,负责对服务器集群与因特网的网络连接进行分析、过滤和保护.攻击者通过因特网连接至云服务器集群,并对受控的僵尸虚拟机发布控制命令.

图1 网络模型

1.2 攻击目标

传统的拒绝服务攻击目标通过外部连接请求耗尽集群核心交换机与路由器之间的网络带宽资源.然而,入侵检测系统一旦发现来自服务器集群外部的恶意连接则会更新防火墙策略,从而断开该恶意连接.因此,随着入侵检测技术的不断升级,传统的拒绝服务攻击效果受到很大限制.

“云滴冻结”攻击的目标和思路与传统拒绝服务有很大差别,其攻击思路是消耗云服务器集群内部的物理服务器的计算资源和集群内部通信链路的带宽资源,从而降低甚至“冻结”物理服务器处理合法用户服务的能力,增加物理服务器与核心交换机的通信时延,最终达到拒绝服务攻击的效果,如图2所示.因此,其攻击目标可以分为3种:

(1)云服务器集群中以核心交换机为中心的网络核心带宽资源;

(2)云服务器集群中僵尸虚拟机所在物理服务器的CPU资源;

(3)云服务器集群中僵尸虚拟机所在物理服务器的内存资源.

图2 攻击目标

1.3 攻击方法

“云滴冻结”攻击者利用服务器集群中受控的僵尸虚拟机,在其之间相互发送网络消息来拥塞网络和过载物理服务器的CPU负载.发动“云滴冻结”攻击需要以下3个步骤:

(1)攻击者选择云服务器集群P作为攻击目标;

(2)在目标云服务器中租赁或者感染N台虚拟机作为僵尸虚拟机;

(3)在 N 台 虚拟机中,两两互相发送网络数据包{Sbot[i],Dbot[j],T,M|i∈ N ,j∈N,i≠j},以过载云服务器集群的资源.SD表示网络消息的源/目的地址,T表示网络协议,M表示网络消息.网络消息可以是未加密的,但笔者建议采用加密形式,因为这样可以尽可能地消耗物理机的CPU资源.

1.4 实验设置

实验采用两台物理服务器,其中物理机I上运行僵尸虚拟机A~C,物理机Ⅱ上运行僵尸虚拟机D~E.当其受到僵尸网络控制者(攻击者)发来的攻击指令后即开始实施攻击行动.为了说明攻击的效果,实验实时地记录下物理服务器Ⅰ和Ⅱ的CPU、内存和网络负载等资源的使用情况.实验的设备配置清单见表1.

表1 试验设备配置清单

在本实验中,虚拟机监控器采用广泛使用的、高效的、轻量的QEMU-KVM.虚拟机之间发送消息的方式采用安全壳(Secure SHell,SSH)协议.SSH协议是目前广泛采用的消息加密传输协议,由IETF的网络工作小组制定,是一项创建在应用层和传输层基础上的安全协议.

1.5 实验结果

在实验中,攻击虚拟机开始发动攻击的时刻为第140秒,实验数据记录的结束时刻为第540秒.

图3(a)显示的是物理服务器Ⅰ的物理网卡的负载情况.不难发现,攻击开始后网络带宽迅速被攻击虚拟机之间发送的消息数据所占用,并持续维持在90%左右.图3(b)显示从物理服务器Ⅰ向物理服务器Ⅱ发送ICMP数据包的响应延迟时间.在攻击发生之前,ICMP数据包的响应延时不足1ms;在攻击发生后,响应延时上升到20ms左右.图3(c)显示了物理服务器Ⅰ的CPU使用率,在攻击发生后CPU使用率持续升高,最终维持在90%左右.

图3 试验结果

图4(a)显示的是物理服务器Ⅰ在5s内的硬中断数目,可见攻击发生前后,硬中断数目变化不大.对比图4(b)显示的物理服务器Ⅰ在5s内的软中断数目,可见攻击发生后,软中断数目从攻击前的几乎为0次(5s内)急剧升高,其峰值达到了140次(5s内)以上.物理服务器CPU使用率的升高主要与两个因素有关:虚拟机通信中的虚拟中断升高导致物理服务器软中断数目增加;虚拟机发送网络消息本身产生的CPU占用增加.从攻击效果而言,达到了预期的攻击目标.图4(c)显示了软中断所占用物理服务器Ⅰ的CPU时间比例,其峰值达到了7.5%以上.考虑到共有18条攻击虚拟机通信的路径经过该虚拟机监控器,因此在笔者设置的实验环境下,每条攻击通信路径大约产生0.4%的软中断CPU时间开销.该结论在不同的实验设置中也得到了证实.图5(a)显示为用户进程占用CPU时间比例,其中主要为虚拟机监控器所占用的CPU时间.在攻击发生后,其使用率从原来的2.5%迅速升高到40%以上.其原因主要为实验中攻击虚拟机通信采用SSH协议,其通信数据在发送前需要经过加密过程,在接收数据后需要执行解密过程,因此加大了虚拟机CPU的占用,并最终影响到了物理服务器.图5(b)显示物理服务器Ⅰ的内存使用率.显然,在攻击发生后,物理服务器Ⅰ的内存使用率也是迅速升高,并很快维持在96%以上,这是由于数据发送和接收都需要占用大量的内存空间.

图4 试验结果

图5 试验结果

试验结果表明,在攻击发生后,物理服务器Ⅰ和Ⅱ已经丧失了继续提供云计算服务的能力,即被“冻结”.更进一步地说,如果在这两台物理服务器的虚拟机监控器上运行有合法用户的虚拟机,则当“云滴冻结”服务发生后,该虚拟机将不能再给合法用户提供任何服务.

2 攻击原理

为了解释攻击原理,针对云服务器集群内部网络带宽、物理服务器的CPU和内存资源进行分析.

(1)云服务器集群中以核心交换机为通信中心的内部网络物理带宽资源.

假设在云服务集群中共存在N台僵尸虚拟机,其分布在相同或者不同的P台物理服务器之上,则按照“云滴冻结”的攻击方法,在这N个虚拟机间存在N×(N-1)条通信连接.这种攻击的思路跟文献[8]中提出的“熔芯”攻击类似.对于任意一条边建立独立的socket连接,僵尸虚拟节点间便形成有向完全图的通信连接.假设第i台物理服务器上存在Ni台僵尸虚拟机,则通过该物理服务器与核心交换机之间的物理链路的通信连接数Ci=2 Ni(N-Ni).假设每条通信连接占用带宽资源β>0,则每条物理链路被“云滴冻结”攻击占用的资源Bi=Ciβ.该云服务器集群中内部网络带宽资源被“云滴冻结”攻击占用总量为

实验数据表明,该方法确实能起到很好的拥塞云服务器集群中网络核心带宽资源的效果.

(2)云服务器集群中僵尸虚拟机所在物理服务器的CPU资源.

首先简要回顾虚拟机驱动模型的工作机制.为了提高虚拟机的执行效率,现有的绝大多数虚拟机监控器都采用分离式设备驱动模型[9],如Xen,VirtualBox.其工作原理如图6所示.

前端驱动位于虚拟机中,负责接收虚拟机的I/O处理请求,经过虚拟机监控器传递给位于虚拟机管理模块的后端驱动,并将接收来自后端的处理结果返回给虚拟机.对于不同的虚拟机软件,其虚拟机管理模块所处的位置不太一样.比如在Xen中,其独立于虚拟机监控器,位于Domain0中,而在KVM中其位于虚拟机监控器内部.后端驱动负责接收来自前端的I/O处理请求,并把请求交给虚拟机管理模块中的本地驱动来处理,随后把处理结果返回给前端驱动,从而完成虚拟机的I/O操作.特别地,对于网络I/O而言,物理网卡(如eth0)会以桥接模式(如br0)与虚拟机使用的虚拟网卡相连.在这种架构下,当虚拟机1向虚拟机2发送数据包时,虚拟机首先在自己的网络协议栈上创建该报文,然后将其拷贝到自己的内核,接着前端会通过页映射机制将数据包拷贝到后端并通过br0进行转发,后端会将报文拷贝到虚拟机2的前端驱动.如果两台虚拟机位于不同的物理服务器上,则中间还需要通过核心路由器完成两台物理服务器br0之间的socket通信.

图6 分离式设备驱动模型

在这种通信模型下,所有的数据通信路径都被延长了.对于一个

全虚拟化的虚拟机而言,当应用程序要进行一次网络I/O时,为了读写网卡寄存器,首先需要陷入到虚拟机监控器,接着切换到虚拟机管理模块去读写由QEMU模拟的寄存器.这样,一次读写网卡寄存器的路径就被延长了很多,从而造成了更大的开销.被延长的不仅仅是数据请求的路径,中断处理的路径也被延长了.在每一页大小的数据包传输的过程中,虚拟机都要发生一次软中断,而所有的虚拟中断必须由QEMU来处理.因此,物理机的软中断次数和CPU的软中断处理时间被增加了.

对于具有P台物理服务器的云服务集群,若其中共运行着N台僵尸虚拟机,则按照“云滴冻结”的攻击方法,在这N台僵尸虚拟机间存在N×(N-1)条通信连接.假设第i台物理服务器上存在Ni台僵尸虚拟机,则通过该物理服务器虚拟机监控器的通信连接数Ei=2 Ni(N-Ni)+Ni(Ni-1).假设每条通信连接占用CPU时间资源ξ>0,则每台物理服务器被“云滴冻结”攻击占用的CPU资源Si=Eiβ.

定理1 对于给定的具有P台物理服务器的云服务器集群,若每条“云滴冻结”攻击通信连接消耗CPU时间资源ξ>0,设每台物理服务器配置大致相同且CPU资源耗尽门限值为ΓCPU,则使得该云服务器集群中至少一台物理服务器CPU资源耗尽所需要僵尸虚拟机数目的充分条件是

证明 对于运行有Ni台僵尸虚拟机的第i台物理机而言,“云滴冻结”攻击通信连接数目Ei=2 Ni(N-Ni)+Ni(Ni-1).对其求一阶偏导数∂Ei∂Ni=2 N-2 Ni-1,当1≤Ni< N -1/2时,∂Ei∂Ni>0.因为ξ>0,故“云滴冻结”攻击对第i台物理服务器的CPU时间消耗量Si=Eiξ,为增函数(当1≤Ni<N-1/2时).对于N台僵尸虚拟机,“云滴冻结”攻击共能产生攻击通信连接数目为N2-N.因此,在最好的负载均衡情况下,每台物理机上运行的僵尸虚拟机相同,即Ni=N P.

故Si= ( (2P-1)N2-NP P2)ξ.使得至少该云服务器集群中一台物理服务器CPU资源耗尽,则

成立.证毕.

在笔者设置的实验环境下,每条穿过虚拟机监控器的通信路径产生的物理服务器的软中断所消耗的物理机CPU时间开销约为0.4%.可以估算出,15台僵尸虚拟机所产生的240条通信路径就足以占用当前物理服务器所有的CPU资源,从而产生拒绝服务的效果.这种资源消耗攻击是由于虚拟机监控器本身机制造成的,因此,若不改变现有虚拟机的分离式设备驱动模型,则不可避免地将受其影响.

(3)云服务器集群中僵尸虚拟机所在物理服务器的内存资源.

当僵尸虚拟机启动攻击后,对物理服务器内存消耗的攻击效果取决于物理服务器分配给僵尸虚拟机的内存所占物理机的比例.如果分配给虚拟机使用的内存资源占物理服务器的比例比较小,且该物理服务器的虚拟机监控器上运行的攻击虚拟机比较少,则攻击的效果可能不明显.就本文中的实验而言,物理内存已被占用殆尽.

由此可见,“云滴冻结”攻击方式简单,易于实现,而且能对物理服务器的网络带宽、CPU和内存资源起到较显著的拒绝服务攻击效果.

3 讨论与结论

“云滴冻结”攻击与传统分布式拒绝服务攻击有明显的区别.以传统分布式拒绝服务攻击的主要形式Flooding攻击为例,其主要包括SYN Flooding攻击,UDP Flooding攻击和Smurf攻击.

SYN Flooding攻击的原理是通过发送大量伪造的TCP连接请求,导致服务器半开连接堆栈溢出,并因无法接受新的连接请求而出现拒绝服务状态[10].如果使用真实IP,攻击主机在收到服务端SYN ACK后,可能会因无应用程序需要建立连接而发送一个RST回应来取消连接,释放服务器上的半开连接.因此,攻击者通常会使用伪造的IP地址,这样不但可以掩饰真正的攻击源,还可以使受害者必须等到连接超时才能释放半开连接.UDP Flooding攻击通常是通过发送洪水般的UDP数据包占用网络带宽,造成网络阻塞以达到攻击的目的[11].Smurf攻击是利用ICMP欺骗和ICMP回应使大量ICMP应答消息被发送到受害者主机以实现攻击的[12].由此可见,传统的分布式拒绝服务攻击具备伪造源或目标IP、多对一发起连接的特点,因此容易被现有的基于能力和过滤的拒绝服务攻击检测/保护(IDS/IPS)系统的跟踪.而笔者描述的“云滴冻结”攻击则不同,由于发送和接收消息的虚拟机都存在于云服务器集群内部,不存在虚假的数据发送源IP地址、目的IP地址欺骗和畸形数据包.并且,从攻击行为上来讲,不存在明显的多对单的连接请求形式.因此,传统IDS/IPS不能对“云滴冻结”产生有效的防御.

Studer等[8]提出了“熔芯”(Coremelt)攻击的概念.“熔芯”攻击是一种特殊的分布式拒绝服务攻击,其攻击目标是核心网络的带宽,通过大量受控主机相互发送数据包来拥塞可信网络带宽,最终达到拒绝服务的效果.但是,由于核心网络带宽相对较大,因此攻击者发动该攻击需要的感染主机数目也相对较多.而且由于这种网络攻击针对的是核心网络,其受攻击目标的定向性较差.其攻击效果要么不明显,要么不仅是受攻击目标主机遭到了拒绝服务攻击,而且所有连在该核心网络链路上的服务器均受到了该攻击的影响.因此,这种攻击并不实用.“云滴冻结”攻击是针对某一云服务器集群,攻击目标明确且易于实现.“云滴冻结”攻击能对云物理服务器的CPU资源产生非法占用,正如前面的分析,其攻击原理是由于驱动模型设计缺陷造成的,因此如果不改变当前广泛采用的分离式驱动模型,则“云滴冻结”攻击的效果是确定的.同时,“云滴冻结”攻击还能对物理服务器内存产生非法占用,这些都是“熔芯”攻击所不具备的.可见,“云滴冻结”攻击是一种新型的、实用的、有效的分布式拒绝服务攻击模型.

可能的解决思路是研究更好的基于虚拟机行为分析的内部威胁检测和控制方法,包括以下两个方面:

(1)资源配额管理.对虚拟机的网络带宽、CPU、内存等资源实施更为全面的配额管理策略.现有方法中存在的不足为:只限制虚拟机与云服务器集群外部通信的网络带宽,而忽视了虚拟机之间的通信带宽;只限制了CPU的型号和内存的大小,却忽视了隐形调用所消耗的CPU和内存资源.

(2)基于虚拟机监控器/Hypervisor数据包分析的虚拟机行为检测机制.该机制应结合基于虚拟机自省的入侵检测系统(VMI-IDS)和基于网络的入侵检测系统(NIDS)的优点,通过对虚拟机网络数据包的分析检测虚拟机恶意行为.

结合云计算环境下服务器集群部署的特征,笔者提出一种实用的、新型的分布式拒绝服务攻击模型——“云滴冻结”攻击,并详细地从对物理服务器网络带宽的拥塞、CPU和内存资源的非法占用等方面分析了形成该攻击的原因.攻击实验表明,攻击者通过控制僵尸虚拟机发动“云滴冻结”攻击,不仅可以对云服务器集群的带宽产生严重的拥塞效果,而且能够极大地消耗物理主机的内存和CPU等资源,使得本来能够分配给合法虚拟机的资源被非法占用,从而达到拒绝服务的效果.对攻击原理的分析表明,传统的拒绝服务攻击防御系统和技术对该攻击无效,可能的抵御思路是研究更好的基于虚拟机行为分析的内部威胁检测和控制方法.

[1] Jansen W,Timothy G.Security Guidance for Critical Areas of Focus in Cloud Computing v3.0[M].Phoenix:Cloud Security Alliance,2011.

[2] 冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,2011,22(1):71-83.Feng Dengguo,Zhang Min,Zhang Yan,et al.Study on Cloud Computing Security[J].Journal of Software,2011,22(1):71-83.

[3] Modi C,Patel D,Borisanyia B,et al.A Survey on Security Issues and Solutions at Different Layers of Cloud Computing[J].Journal of Supercomputing,2013,63(2):561-592.

[4] Choi H,Lee H.Identifying Botnets by Capturing Group Activities in DNS Traffic[J].Computer Networks,2012,56(1):20-33.

[5] Hunt N,Bergan T,Ceze L,et al.DDOS:Taming Nondeterminism in Distributed Systems[C]//Proceedings of the 18th International Conference on Architectural Support for Programming Languages and oPerating Systems.New York:ACM,2013:499-508.

[6] Botezatu B.Anatomy of a Botnet[R].Burlington:Arbor Networks,2010.

[7] Arbor Networks.8th Annual Worldwide Infrastructure Security Report[R].Burlington:Arbor Networks,2013.

[8] Studer A,Perrig A.The Coremelt Attack[C]//Lectures Notes in Computer Science.Heidelberg:Springer,2009:37-52.

[9] Liu Jiuxing,Huang Wei,Abali B,et al.High Performance VMM-bypass I/O in Virtual Machines[C]//Proceedings of the Annual Conference on USENIX:6.Berkeley:USENIX Association,2006:3.

[10] Wang Haining,Zhang Danlu,Shin K G.Detecting SYN Flooding Attacks[C]//Proceedings of IEEE 21st Annual Joint Conference on Computer and Communications Societies:3.Piscataway:IEEE,2002:1530-1539.

[11] Manikopoulos C,Papavassiliou S.Network Intrusion and Fault Detection:a Statistical Anomaly Approach [J].IEEE Communications Magazine,2002,40(10):76-82.

[12] Mirkovic J,Reiher P.A Taxonomy of DDoS Attack and DDoS Defense Mechanisms[J].Computer Communication

Review,2004,34(2):39-53.

猜你喜欢

云滴监控器僵尸
福建九仙山一次佛光的云滴粒子尺度分析*
笔记本电脑“僵尸”
关于MK10 型下滑仪近场监控参数超标的故障检修
你不知道的雷雨知识
你愿意当吸血鬼还是僵尸?
一种自动监控系统的输液监控器的设计
在舌尖上筑牢抵御“僵尸肉”的防火墙
App已死?80%的僵尸应用带来的困惑
雨,一滴滴落下
基于云编码算法的图像增强研究