王一川,馬建峰,盧 笛,張留美,孟憲佳
(西安電子科技大學(xué) 計(jì) 算機(jī)學(xué)院,陜西 西 安 710071)
在過去的20多年里,互聯(lián)網(wǎng)技術(shù)深刻地影響著人們生活的方方面面.特別是在近幾年,云計(jì)算技術(shù)的出現(xiàn)和推廣為用戶使用互聯(lián)網(wǎng)資源提供了極大的便利.云計(jì)算的思想是采用一種普適的、便捷的、按需的方式,可配置地組織和共享各種資源(包括網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)、應(yīng)用等)[1].因此,“多租戶”是云計(jì)算技術(shù)的重要特征.以虛擬機(jī)為代表的虛擬化技術(shù)成為了云計(jì)算環(huán)境下的關(guān)鍵技術(shù)之一;同時(shí),云計(jì)算環(huán)境下的安全問題也引起了產(chǎn)業(yè)界、學(xué)術(shù)界、政府等各界人士的關(guān)注[2].特別是虛擬機(jī)技術(shù)的廣泛應(yīng)用,對(duì)傳統(tǒng)網(wǎng)絡(luò)的安全問題提供了新的解決思路,同時(shí)也帶來了新的安全隱患.在云計(jì)算環(huán)境下,虛擬機(jī)的數(shù)據(jù)隔離、快照和動(dòng)態(tài)遷移等相關(guān)技術(shù)確實(shí)在用戶隱私保護(hù)、服務(wù)可生存性等方面發(fā)揮了較強(qiáng)的優(yōu)勢(shì),然而對(duì)某些網(wǎng)絡(luò)攻擊卻也提供了更好的溫床[3].
比如僵尸網(wǎng)絡(luò).僵尸網(wǎng)絡(luò)是指用惡意程序感染大量主機(jī),使控制者能夠通過若干計(jì)算機(jī)直接向受感染主機(jī)發(fā)送指令的攻擊網(wǎng)絡(luò)[4].分布式拒絕服務(wù)(DDoS)攻擊是僵尸網(wǎng)絡(luò)的主要攻擊形式,同時(shí)也是資源耗盡型攻擊的主要攻擊形式[5].分布式拒絕服務(wù)攻擊是指網(wǎng)絡(luò)控制者控制多個(gè)受感染主機(jī)同時(shí)向目標(biāo)服務(wù)器發(fā)動(dòng)攻擊,其攻擊目的是減慢服務(wù)器服務(wù)響應(yīng)速度或者直接使其目標(biāo)服務(wù)器/網(wǎng)站崩潰.2010年,安全供應(yīng)商Arbor Networks關(guān)于僵尸網(wǎng)絡(luò)的報(bào)告[6]表明,分布式拒絕服務(wù)攻擊次數(shù)較往年呈現(xiàn)更頻繁和復(fù)雜的趨勢(shì).在云計(jì)算環(huán)境下,發(fā)動(dòng)分布式拒絕服務(wù)攻擊變得更為方便.攻擊者可在非常短的時(shí)間內(nèi),使用少量投資租用云服務(wù)商提供的大量虛擬機(jī)來實(shí)施攻擊.以Amazon EC2為例,使用小型的Linux/Unix服務(wù)僅需要0.06美元/小時(shí),最高的8倍超大型 Windows服務(wù)僅需要4.931美元/小時(shí)(引自http://aws.amazon.com/cn/ec2/pricing/).如果攻擊者的攻擊目標(biāo)直接是云服務(wù)器集群,事情將變得更具威脅性.正如Arbor Networks公司第8份世界基礎(chǔ)設(shè)施年度安全報(bào)告指出的一樣,云計(jì)算服務(wù)和數(shù)據(jù)中心正在遭受越來越多的網(wǎng)絡(luò)攻擊[7].
結(jié)合云計(jì)算環(huán)境下服務(wù)器集群部署的特征,筆者提出一種實(shí)用的、新型的分布式拒絕服務(wù)攻擊模型——“云滴凍結(jié)”攻擊(Cloud-Droplets-Freezing,CDF).通過攻擊實(shí)驗(yàn),驗(yàn)證這種攻擊不僅可以對(duì)云服務(wù)器集群的帶寬產(chǎn)生嚴(yán)重的擁塞,而且能夠極大地消耗物理主機(jī)的內(nèi)存和CPU等資源,這使得本來能夠分配給合法虛擬機(jī)的資源被非法占用,從而達(dá)到拒絕服務(wù)的效果.
設(shè)網(wǎng)絡(luò)模型為典型的云服務(wù)器集群部署拓?fù)洵h(huán)境,如圖1所示.云服務(wù)器集群中存在P臺(tái)物理服務(wù)器,每臺(tái)物理服務(wù)器上通過虛擬機(jī)監(jiān)控器(Virtual Machine Monitor,VMM)運(yùn)行和控制若干臺(tái)虛擬機(jī)服務(wù)器,這些虛擬機(jī)服務(wù)器對(duì)因特網(wǎng)用戶提供相應(yīng)的云計(jì)算服務(wù).其中某些虛擬機(jī)被僵尸網(wǎng)絡(luò)所控制.物理服務(wù)器通過云集群的核心交換機(jī)相連.云集群通過防火墻連接因特網(wǎng)服務(wù)提供商,并對(duì)因特網(wǎng)用戶提供云服務(wù).防火墻中部署有入侵/保護(hù)(IDS/IPS)系統(tǒng),負(fù)責(zé)對(duì)服務(wù)器集群與因特網(wǎng)的網(wǎng)絡(luò)連接進(jìn)行分析、過濾和保護(hù).攻擊者通過因特網(wǎng)連接至云服務(wù)器集群,并對(duì)受控的僵尸虛擬機(jī)發(fā)布控制命令.
圖1 網(wǎng)絡(luò)模型
傳統(tǒng)的拒絕服務(wù)攻擊目標(biāo)通過外部連接請(qǐng)求耗盡集群核心交換機(jī)與路由器之間的網(wǎng)絡(luò)帶寬資源.然而,入侵檢測(cè)系統(tǒng)一旦發(fā)現(xiàn)來自服務(wù)器集群外部的惡意連接則會(huì)更新防火墻策略,從而斷開該惡意連接.因此,隨著入侵檢測(cè)技術(shù)的不斷升級(jí),傳統(tǒng)的拒絕服務(wù)攻擊效果受到很大限制.
“云滴凍結(jié)”攻擊的目標(biāo)和思路與傳統(tǒng)拒絕服務(wù)有很大差別,其攻擊思路是消耗云服務(wù)器集群內(nèi)部的物理服務(wù)器的計(jì)算資源和集群內(nèi)部通信鏈路的帶寬資源,從而降低甚至“凍結(jié)”物理服務(wù)器處理合法用戶服務(wù)的能力,增加物理服務(wù)器與核心交換機(jī)的通信時(shí)延,最終達(dá)到拒絕服務(wù)攻擊的效果,如圖2所示.因此,其攻擊目標(biāo)可以分為3種:
(1)云服務(wù)器集群中以核心交換機(jī)為中心的網(wǎng)絡(luò)核心帶寬資源;
(2)云服務(wù)器集群中僵尸虛擬機(jī)所在物理服務(wù)器的CPU資源;
(3)云服務(wù)器集群中僵尸虛擬機(jī)所在物理服務(wù)器的內(nèi)存資源.
圖2 攻擊目標(biāo)
“云滴凍結(jié)”攻擊者利用服務(wù)器集群中受控的僵尸虛擬機(jī),在其之間相互發(fā)送網(wǎng)絡(luò)消息來擁塞網(wǎng)絡(luò)和過載物理服務(wù)器的CPU負(fù)載.發(fā)動(dòng)“云滴凍結(jié)”攻擊需要以下3個(gè)步驟:
(1)攻擊者選擇云服務(wù)器集群P作為攻擊目標(biāo);
(2)在目標(biāo)云服務(wù)器中租賃或者感染N臺(tái)虛擬機(jī)作為僵尸虛擬機(jī);
(3)在 N 臺(tái) 虛擬機(jī)中,兩兩互相發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包{Sbot[i],Dbot[j],T,M|i∈ N ,j∈N,i≠j},以過載云服務(wù)器集群的資源.SD表示網(wǎng)絡(luò)消息的源/目的地址,T表示網(wǎng)絡(luò)協(xié)議,M表示網(wǎng)絡(luò)消息.網(wǎng)絡(luò)消息可以是未加密的,但筆者建議采用加密形式,因?yàn)檫@樣可以盡可能地消耗物理機(jī)的CPU資源.
實(shí)驗(yàn)采用兩臺(tái)物理服務(wù)器,其中物理機(jī)I上運(yùn)行僵尸虛擬機(jī)A~C,物理機(jī)Ⅱ上運(yùn)行僵尸虛擬機(jī)D~E.當(dāng)其受到僵尸網(wǎng)絡(luò)控制者(攻擊者)發(fā)來的攻擊指令后即開始實(shí)施攻擊行動(dòng).為了說明攻擊的效果,實(shí)驗(yàn)實(shí)時(shí)地記錄下物理服務(wù)器Ⅰ和Ⅱ的CPU、內(nèi)存和網(wǎng)絡(luò)負(fù)載等資源的使用情況.實(shí)驗(yàn)的設(shè)備配置清單見表1.
表1 試驗(yàn)設(shè)備配置清單
在本實(shí)驗(yàn)中,虛擬機(jī)監(jiān)控器采用廣泛使用的、高效的、輕量的QEMU-KVM.虛擬機(jī)之間發(fā)送消息的方式采用安全殼(Secure SHell,SSH)協(xié)議.SSH協(xié)議是目前廣泛采用的消息加密傳輸協(xié)議,由IETF的網(wǎng)絡(luò)工作小組制定,是一項(xiàng)創(chuàng)建在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議.
在實(shí)驗(yàn)中,攻擊虛擬機(jī)開始發(fā)動(dòng)攻擊的時(shí)刻為第140秒,實(shí)驗(yàn)數(shù)據(jù)記錄的結(jié)束時(shí)刻為第540秒.
圖3(a)顯示的是物理服務(wù)器Ⅰ的物理網(wǎng)卡的負(fù)載情況.不難發(fā)現(xiàn),攻擊開始后網(wǎng)絡(luò)帶寬迅速被攻擊虛擬機(jī)之間發(fā)送的消息數(shù)據(jù)所占用,并持續(xù)維持在90%左右.圖3(b)顯示從物理服務(wù)器Ⅰ向物理服務(wù)器Ⅱ發(fā)送ICMP數(shù)據(jù)包的響應(yīng)延遲時(shí)間.在攻擊發(fā)生之前,ICMP數(shù)據(jù)包的響應(yīng)延時(shí)不足1ms;在攻擊發(fā)生后,響應(yīng)延時(shí)上升到20ms左右.圖3(c)顯示了物理服務(wù)器Ⅰ的CPU使用率,在攻擊發(fā)生后CPU使用率持續(xù)升高,最終維持在90%左右.
圖3 試驗(yàn)結(jié)果
圖4(a)顯示的是物理服務(wù)器Ⅰ在5s內(nèi)的硬中斷數(shù)目,可見攻擊發(fā)生前后,硬中斷數(shù)目變化不大.對(duì)比圖4(b)顯示的物理服務(wù)器Ⅰ在5s內(nèi)的軟中斷數(shù)目,可見攻擊發(fā)生后,軟中斷數(shù)目從攻擊前的幾乎為0次(5s內(nèi))急劇升高,其峰值達(dá)到了140次(5s內(nèi))以上.物理服務(wù)器CPU使用率的升高主要與兩個(gè)因素有關(guān):虛擬機(jī)通信中的虛擬中斷升高導(dǎo)致物理服務(wù)器軟中斷數(shù)目增加;虛擬機(jī)發(fā)送網(wǎng)絡(luò)消息本身產(chǎn)生的CPU占用增加.從攻擊效果而言,達(dá)到了預(yù)期的攻擊目標(biāo).圖4(c)顯示了軟中斷所占用物理服務(wù)器Ⅰ的CPU時(shí)間比例,其峰值達(dá)到了7.5%以上.考慮到共有18條攻擊虛擬機(jī)通信的路徑經(jīng)過該虛擬機(jī)監(jiān)控器,因此在筆者設(shè)置的實(shí)驗(yàn)環(huán)境下,每條攻擊通信路徑大約產(chǎn)生0.4%的軟中斷CPU時(shí)間開銷.該結(jié)論在不同的實(shí)驗(yàn)設(shè)置中也得到了證實(shí).圖5(a)顯示為用戶進(jìn)程占用CPU時(shí)間比例,其中主要為虛擬機(jī)監(jiān)控器所占用的CPU時(shí)間.在攻擊發(fā)生后,其使用率從原來的2.5%迅速升高到40%以上.其原因主要為實(shí)驗(yàn)中攻擊虛擬機(jī)通信采用SSH協(xié)議,其通信數(shù)據(jù)在發(fā)送前需要經(jīng)過加密過程,在接收數(shù)據(jù)后需要執(zhí)行解密過程,因此加大了虛擬機(jī)CPU的占用,并最終影響到了物理服務(wù)器.圖5(b)顯示物理服務(wù)器Ⅰ的內(nèi)存使用率.顯然,在攻擊發(fā)生后,物理服務(wù)器Ⅰ的內(nèi)存使用率也是迅速升高,并很快維持在96%以上,這是由于數(shù)據(jù)發(fā)送和接收都需要占用大量的內(nèi)存空間.
圖4 試驗(yàn)結(jié)果
圖5 試驗(yàn)結(jié)果
試驗(yàn)結(jié)果表明,在攻擊發(fā)生后,物理服務(wù)器Ⅰ和Ⅱ已經(jīng)喪失了繼續(xù)提供云計(jì)算服務(wù)的能力,即被“凍結(jié)”.更進(jìn)一步地說,如果在這兩臺(tái)物理服務(wù)器的虛擬機(jī)監(jiān)控器上運(yùn)行有合法用戶的虛擬機(jī),則當(dāng)“云滴凍結(jié)”服務(wù)發(fā)生后,該虛擬機(jī)將不能再給合法用戶提供任何服務(wù).
為了解釋攻擊原理,針對(duì)云服務(wù)器集群內(nèi)部網(wǎng)絡(luò)帶寬、物理服務(wù)器的CPU和內(nèi)存資源進(jìn)行分析.
(1)云服務(wù)器集群中以核心交換機(jī)為通信中心的內(nèi)部網(wǎng)絡(luò)物理帶寬資源.
假設(shè)在云服務(wù)集群中共存在N臺(tái)僵尸虛擬機(jī),其分布在相同或者不同的P臺(tái)物理服務(wù)器之上,則按照“云滴凍結(jié)”的攻擊方法,在這N個(gè)虛擬機(jī)間存在N×(N-1)條通信連接.這種攻擊的思路跟文獻(xiàn)[8]中提出的“熔芯”攻擊類似.對(duì)于任意一條邊建立獨(dú)立的socket連接,僵尸虛擬節(jié)點(diǎn)間便形成有向完全圖的通信連接.假設(shè)第i臺(tái)物理服務(wù)器上存在Ni臺(tái)僵尸虛擬機(jī),則通過該物理服務(wù)器與核心交換機(jī)之間的物理鏈路的通信連接數(shù)Ci=2 Ni(N-Ni).假設(shè)每條通信連接占用帶寬資源β>0,則每條物理鏈路被“云滴凍結(jié)”攻擊占用的資源Bi=Ciβ.該云服務(wù)器集群中內(nèi)部網(wǎng)絡(luò)帶寬資源被“云滴凍結(jié)”攻擊占用總量為
實(shí)驗(yàn)數(shù)據(jù)表明,該方法確實(shí)能起到很好的擁塞云服務(wù)器集群中網(wǎng)絡(luò)核心帶寬資源的效果.
(2)云服務(wù)器集群中僵尸虛擬機(jī)所在物理服務(wù)器的CPU資源.
首先簡(jiǎn)要回顧虛擬機(jī)驅(qū)動(dòng)模型的工作機(jī)制.為了提高虛擬機(jī)的執(zhí)行效率,現(xiàn)有的絕大多數(shù)虛擬機(jī)監(jiān)控器都采用分離式設(shè)備驅(qū)動(dòng)模型[9],如Xen,VirtualBox.其工作原理如圖6所示.
前端驅(qū)動(dòng)位于虛擬機(jī)中,負(fù)責(zé)接收虛擬機(jī)的I/O處理請(qǐng)求,經(jīng)過虛擬機(jī)監(jiān)控器傳遞給位于虛擬機(jī)管理模塊的后端驅(qū)動(dòng),并將接收來自后端的處理結(jié)果返回給虛擬機(jī).對(duì)于不同的虛擬機(jī)軟件,其虛擬機(jī)管理模塊所處的位置不太一樣.比如在Xen中,其獨(dú)立于虛擬機(jī)監(jiān)控器,位于Domain0中,而在KVM中其位于虛擬機(jī)監(jiān)控器內(nèi)部.后端驅(qū)動(dòng)負(fù)責(zé)接收來自前端的I/O處理請(qǐng)求,并把請(qǐng)求交給虛擬機(jī)管理模塊中的本地驅(qū)動(dòng)來處理,隨后把處理結(jié)果返回給前端驅(qū)動(dòng),從而完成虛擬機(jī)的I/O操作.特別地,對(duì)于網(wǎng)絡(luò)I/O而言,物理網(wǎng)卡(如eth0)會(huì)以橋接模式(如br0)與虛擬機(jī)使用的虛擬網(wǎng)卡相連.在這種架構(gòu)下,當(dāng)虛擬機(jī)1向虛擬機(jī)2發(fā)送數(shù)據(jù)包時(shí),虛擬機(jī)首先在自己的網(wǎng)絡(luò)協(xié)議棧上創(chuàng)建該報(bào)文,然后將其拷貝到自己的內(nèi)核,接著前端會(huì)通過頁映射機(jī)制將數(shù)據(jù)包拷貝到后端并通過br0進(jìn)行轉(zhuǎn)發(fā),后端會(huì)將報(bào)文拷貝到虛擬機(jī)2的前端驅(qū)動(dòng).如果兩臺(tái)虛擬機(jī)位于不同的物理服務(wù)器上,則中間還需要通過核心路由器完成兩臺(tái)物理服務(wù)器br0之間的socket通信.
圖6 分離式設(shè)備驅(qū)動(dòng)模型
在這種通信模型下,所有的數(shù)據(jù)通信路徑都被延長(zhǎng)了.對(duì)于一個(gè)
全虛擬化的虛擬機(jī)而言,當(dāng)應(yīng)用程序要進(jìn)行一次網(wǎng)絡(luò)I/O時(shí),為了讀寫網(wǎng)卡寄存器,首先需要陷入到虛擬機(jī)監(jiān)控器,接著切換到虛擬機(jī)管理模塊去讀寫由QEMU模擬的寄存器.這樣,一次讀寫網(wǎng)卡寄存器的路徑就被延長(zhǎng)了很多,從而造成了更大的開銷.被延長(zhǎng)的不僅僅是數(shù)據(jù)請(qǐng)求的路徑,中斷處理的路徑也被延長(zhǎng)了.在每一頁大小的數(shù)據(jù)包傳輸?shù)倪^程中,虛擬機(jī)都要發(fā)生一次軟中斷,而所有的虛擬中斷必須由QEMU來處理.因此,物理機(jī)的軟中斷次數(shù)和CPU的軟中斷處理時(shí)間被增加了.
對(duì)于具有P臺(tái)物理服務(wù)器的云服務(wù)集群,若其中共運(yùn)行著N臺(tái)僵尸虛擬機(jī),則按照“云滴凍結(jié)”的攻擊方法,在這N臺(tái)僵尸虛擬機(jī)間存在N×(N-1)條通信連接.假設(shè)第i臺(tái)物理服務(wù)器上存在Ni臺(tái)僵尸虛擬機(jī),則通過該物理服務(wù)器虛擬機(jī)監(jiān)控器的通信連接數(shù)Ei=2 Ni(N-Ni)+Ni(Ni-1).假設(shè)每條通信連接占用CPU時(shí)間資源ξ>0,則每臺(tái)物理服務(wù)器被“云滴凍結(jié)”攻擊占用的CPU資源Si=Eiβ.
定理1 對(duì)于給定的具有P臺(tái)物理服務(wù)器的云服務(wù)器集群,若每條“云滴凍結(jié)”攻擊通信連接消耗CPU時(shí)間資源ξ>0,設(shè)每臺(tái)物理服務(wù)器配置大致相同且CPU資源耗盡門限值為ΓCPU,則使得該云服務(wù)器集群中至少一臺(tái)物理服務(wù)器CPU資源耗盡所需要僵尸虛擬機(jī)數(shù)目的充分條件是
證明 對(duì)于運(yùn)行有Ni臺(tái)僵尸虛擬機(jī)的第i臺(tái)物理機(jī)而言,“云滴凍結(jié)”攻擊通信連接數(shù)目Ei=2 Ni(N-Ni)+Ni(Ni-1).對(duì)其求一階偏導(dǎo)數(shù)?Ei?Ni=2 N-2 Ni-1,當(dāng)1≤Ni< N -1/2時(shí),?Ei?Ni>0.因?yàn)棣危?,故“云滴凍結(jié)”攻擊對(duì)第i臺(tái)物理服務(wù)器的CPU時(shí)間消耗量Si=Eiξ,為增函數(shù)(當(dāng)1≤Ni<N-1/2時(shí)).對(duì)于N臺(tái)僵尸虛擬機(jī),“云滴凍結(jié)”攻擊共能產(chǎn)生攻擊通信連接數(shù)目為N2-N.因此,在最好的負(fù)載均衡情況下,每臺(tái)物理機(jī)上運(yùn)行的僵尸虛擬機(jī)相同,即Ni=N P.
故Si= ( (2P-1)N2-NP P2)ξ.使得至少該云服務(wù)器集群中一臺(tái)物理服務(wù)器CPU資源耗盡,則
成立.證畢.
在筆者設(shè)置的實(shí)驗(yàn)環(huán)境下,每條穿過虛擬機(jī)監(jiān)控器的通信路徑產(chǎn)生的物理服務(wù)器的軟中斷所消耗的物理機(jī)CPU時(shí)間開銷約為0.4%.可以估算出,15臺(tái)僵尸虛擬機(jī)所產(chǎn)生的240條通信路徑就足以占用當(dāng)前物理服務(wù)器所有的CPU資源,從而產(chǎn)生拒絕服務(wù)的效果.這種資源消耗攻擊是由于虛擬機(jī)監(jiān)控器本身機(jī)制造成的,因此,若不改變現(xiàn)有虛擬機(jī)的分離式設(shè)備驅(qū)動(dòng)模型,則不可避免地將受其影響.
(3)云服務(wù)器集群中僵尸虛擬機(jī)所在物理服務(wù)器的內(nèi)存資源.
當(dāng)僵尸虛擬機(jī)啟動(dòng)攻擊后,對(duì)物理服務(wù)器內(nèi)存消耗的攻擊效果取決于物理服務(wù)器分配給僵尸虛擬機(jī)的內(nèi)存所占物理機(jī)的比例.如果分配給虛擬機(jī)使用的內(nèi)存資源占物理服務(wù)器的比例比較小,且該物理服務(wù)器的虛擬機(jī)監(jiān)控器上運(yùn)行的攻擊虛擬機(jī)比較少,則攻擊的效果可能不明顯.就本文中的實(shí)驗(yàn)而言,物理內(nèi)存已被占用殆盡.
由此可見,“云滴凍結(jié)”攻擊方式簡(jiǎn)單,易于實(shí)現(xiàn),而且能對(duì)物理服務(wù)器的網(wǎng)絡(luò)帶寬、CPU和內(nèi)存資源起到較顯著的拒絕服務(wù)攻擊效果.
“云滴凍結(jié)”攻擊與傳統(tǒng)分布式拒絕服務(wù)攻擊有明顯的區(qū)別.以傳統(tǒng)分布式拒絕服務(wù)攻擊的主要形式Flooding攻擊為例,其主要包括SYN Flooding攻擊,UDP Flooding攻擊和Smurf攻擊.
SYN Flooding攻擊的原理是通過發(fā)送大量偽造的TCP連接請(qǐng)求,導(dǎo)致服務(wù)器半開連接堆棧溢出,并因無法接受新的連接請(qǐng)求而出現(xiàn)拒絕服務(wù)狀態(tài)[10].如果使用真實(shí)IP,攻擊主機(jī)在收到服務(wù)端SYN ACK后,可能會(huì)因無應(yīng)用程序需要建立連接而發(fā)送一個(gè)RST回應(yīng)來取消連接,釋放服務(wù)器上的半開連接.因此,攻擊者通常會(huì)使用偽造的IP地址,這樣不但可以掩飾真正的攻擊源,還可以使受害者必須等到連接超時(shí)才能釋放半開連接.UDP Flooding攻擊通常是通過發(fā)送洪水般的UDP數(shù)據(jù)包占用網(wǎng)絡(luò)帶寬,造成網(wǎng)絡(luò)阻塞以達(dá)到攻擊的目的[11].Smurf攻擊是利用ICMP欺騙和ICMP回應(yīng)使大量ICMP應(yīng)答消息被發(fā)送到受害者主機(jī)以實(shí)現(xiàn)攻擊的[12].由此可見,傳統(tǒng)的分布式拒絕服務(wù)攻擊具備偽造源或目標(biāo)IP、多對(duì)一發(fā)起連接的特點(diǎn),因此容易被現(xiàn)有的基于能力和過濾的拒絕服務(wù)攻擊檢測(cè)/保護(hù)(IDS/IPS)系統(tǒng)的跟蹤.而筆者描述的“云滴凍結(jié)”攻擊則不同,由于發(fā)送和接收消息的虛擬機(jī)都存在于云服務(wù)器集群內(nèi)部,不存在虛假的數(shù)據(jù)發(fā)送源IP地址、目的IP地址欺騙和畸形數(shù)據(jù)包.并且,從攻擊行為上來講,不存在明顯的多對(duì)單的連接請(qǐng)求形式.因此,傳統(tǒng)IDS/IPS不能對(duì)“云滴凍結(jié)”產(chǎn)生有效的防御.
Studer等[8]提出了“熔芯”(Coremelt)攻擊的概念.“熔芯”攻擊是一種特殊的分布式拒絕服務(wù)攻擊,其攻擊目標(biāo)是核心網(wǎng)絡(luò)的帶寬,通過大量受控主機(jī)相互發(fā)送數(shù)據(jù)包來擁塞可信網(wǎng)絡(luò)帶寬,最終達(dá)到拒絕服務(wù)的效果.但是,由于核心網(wǎng)絡(luò)帶寬相對(duì)較大,因此攻擊者發(fā)動(dòng)該攻擊需要的感染主機(jī)數(shù)目也相對(duì)較多.而且由于這種網(wǎng)絡(luò)攻擊針對(duì)的是核心網(wǎng)絡(luò),其受攻擊目標(biāo)的定向性較差.其攻擊效果要么不明顯,要么不僅是受攻擊目標(biāo)主機(jī)遭到了拒絕服務(wù)攻擊,而且所有連在該核心網(wǎng)絡(luò)鏈路上的服務(wù)器均受到了該攻擊的影響.因此,這種攻擊并不實(shí)用.“云滴凍結(jié)”攻擊是針對(duì)某一云服務(wù)器集群,攻擊目標(biāo)明確且易于實(shí)現(xiàn).“云滴凍結(jié)”攻擊能對(duì)云物理服務(wù)器的CPU資源產(chǎn)生非法占用,正如前面的分析,其攻擊原理是由于驅(qū)動(dòng)模型設(shè)計(jì)缺陷造成的,因此如果不改變當(dāng)前廣泛采用的分離式驅(qū)動(dòng)模型,則“云滴凍結(jié)”攻擊的效果是確定的.同時(shí),“云滴凍結(jié)”攻擊還能對(duì)物理服務(wù)器內(nèi)存產(chǎn)生非法占用,這些都是“熔芯”攻擊所不具備的.可見,“云滴凍結(jié)”攻擊是一種新型的、實(shí)用的、有效的分布式拒絕服務(wù)攻擊模型.
可能的解決思路是研究更好的基于虛擬機(jī)行為分析的內(nèi)部威脅檢測(cè)和控制方法,包括以下兩個(gè)方面:
(1)資源配額管理.對(duì)虛擬機(jī)的網(wǎng)絡(luò)帶寬、CPU、內(nèi)存等資源實(shí)施更為全面的配額管理策略.現(xiàn)有方法中存在的不足為:只限制虛擬機(jī)與云服務(wù)器集群外部通信的網(wǎng)絡(luò)帶寬,而忽視了虛擬機(jī)之間的通信帶寬;只限制了CPU的型號(hào)和內(nèi)存的大小,卻忽視了隱形調(diào)用所消耗的CPU和內(nèi)存資源.
(2)基于虛擬機(jī)監(jiān)控器/Hypervisor數(shù)據(jù)包分析的虛擬機(jī)行為檢測(cè)機(jī)制.該機(jī)制應(yīng)結(jié)合基于虛擬機(jī)自省的入侵檢測(cè)系統(tǒng)(VMI-IDS)和基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)(NIDS)的優(yōu)點(diǎn),通過對(duì)虛擬機(jī)網(wǎng)絡(luò)數(shù)據(jù)包的分析檢測(cè)虛擬機(jī)惡意行為.
結(jié)合云計(jì)算環(huán)境下服務(wù)器集群部署的特征,筆者提出一種實(shí)用的、新型的分布式拒絕服務(wù)攻擊模型——“云滴凍結(jié)”攻擊,并詳細(xì)地從對(duì)物理服務(wù)器網(wǎng)絡(luò)帶寬的擁塞、CPU和內(nèi)存資源的非法占用等方面分析了形成該攻擊的原因.攻擊實(shí)驗(yàn)表明,攻擊者通過控制僵尸虛擬機(jī)發(fā)動(dòng)“云滴凍結(jié)”攻擊,不僅可以對(duì)云服務(wù)器集群的帶寬產(chǎn)生嚴(yán)重的擁塞效果,而且能夠極大地消耗物理主機(jī)的內(nèi)存和CPU等資源,使得本來能夠分配給合法虛擬機(jī)的資源被非法占用,從而達(dá)到拒絕服務(wù)的效果.對(duì)攻擊原理的分析表明,傳統(tǒng)的拒絕服務(wù)攻擊防御系統(tǒng)和技術(shù)對(duì)該攻擊無效,可能的抵御思路是研究更好的基于虛擬機(jī)行為分析的內(nèi)部威脅檢測(cè)和控制方法.
[1] Jansen W,Timothy G.Security Guidance for Critical Areas of Focus in Cloud Computing v3.0[M].Phoenix:Cloud Security Alliance,2011.
[2] 馮登國(guó),張敏,張妍,等.云計(jì)算安全研究[J].軟件學(xué)報(bào),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.