代昆玉 ,胡濱,雷浩
拒絕服務(wù)DoS(Denial of Service)攻擊是指攻擊者通過(guò)向目標(biāo)主機(jī)發(fā)送大量數(shù)據(jù),消耗目標(biāo)主機(jī)的計(jì)算資源或網(wǎng)絡(luò)資源從而破壞目標(biāo)主機(jī)向其合法用戶提供服務(wù)。分布式拒絕服務(wù)DDoS(Distributed Denial of Service)攻擊是DoS攻擊的分布式形式。DDoS攻擊通過(guò)分布在整個(gè)因特網(wǎng)上的大量主機(jī)同時(shí)向受害主機(jī)發(fā)起大量的數(shù)據(jù)包, 使用多個(gè)受害系統(tǒng)運(yùn)行幾個(gè) DoS攻擊,協(xié)調(diào)一致的攻擊一個(gè)或多個(gè)受害主機(jī)。
隨著網(wǎng)絡(luò)層和傳輸層的 DDoS攻擊檢測(cè)技術(shù)已日漸成熟,防御措施不斷加強(qiáng),針對(duì)底層的DDoS攻擊已難于達(dá)到攻擊目的,攻擊者把攻擊目標(biāo)轉(zhuǎn)移到應(yīng)用層。應(yīng)用層DDoS攻擊通過(guò)消耗大量服務(wù)器的計(jì)算資源,阻止合法用戶的正常訪問(wèn)。由于應(yīng)用層攻擊使用高層協(xié)議,故可以利用合法的協(xié)議和服務(wù)發(fā)起攻擊,尤其與突發(fā)流量FC(Flash Crowd)非常相似。因此,傳統(tǒng)用于網(wǎng)絡(luò)層和傳輸層的DDoS攻擊檢測(cè)方法不能直接用于應(yīng)用層DDoS攻擊檢測(cè),研究針對(duì)應(yīng)用層DDoS攻擊檢測(cè)方法已成為近年來(lái)網(wǎng)絡(luò)安全領(lǐng)域的新熱點(diǎn)。
當(dāng)前,許多關(guān)于DDoS攻擊的研究都集中在網(wǎng)絡(luò)層和傳輸層。胡鴻等提出一種基于TCP 緩存的DDoS攻擊檢測(cè)算法,通過(guò)使用BP神經(jīng)網(wǎng)絡(luò)來(lái)檢測(cè)TCP緩存的異常程度,根據(jù)異常程度判斷攻擊是否發(fā)生[1]。Ejaz等提出了通過(guò)時(shí)間序列的變化點(diǎn),使用無(wú)參的累加和方法檢測(cè)SYN洪泛攻擊[2]。文獻(xiàn)[3]提出了一個(gè)以信息論為基礎(chǔ)的異常檢測(cè)算法,采用熵和條件熵,其可幫助異常檢測(cè)系統(tǒng)區(qū)分?jǐn)?shù)據(jù)和參數(shù)設(shè)置。
然而,對(duì)于應(yīng)用層的DDoS攻擊的研究相對(duì)較少。當(dāng)應(yīng)用層DDoS攻擊發(fā)生時(shí),其流量特征和FC非常相似,因此,正確的區(qū)分FC和DDoS攻擊流量是十分重要的。Jung等人在文獻(xiàn)[4]中詳細(xì)討論了應(yīng)用層DDoS和FC的區(qū)別。Li等人用混合測(cè)度來(lái)檢測(cè)流量分布的偏移,從而區(qū)分DDoS攻擊和FC事件[5]。王風(fēng)宇等通過(guò)分析Web通信的外聯(lián)行為特征的穩(wěn)定性,提出了一種應(yīng)用層DDoS攻擊的檢測(cè)方法[6]。
本文通過(guò)對(duì)網(wǎng)絡(luò)流量特征進(jìn)行分析,根據(jù)應(yīng)用層DDoS攻擊流量和正常流量的特征區(qū)別,提出一個(gè)DDoS攻擊的檢測(cè)模型,通過(guò)對(duì)源IP地址進(jìn)行分析,能夠有效地識(shí)別應(yīng)用層DDoS攻擊,并且針對(duì)DDoS攻擊流量和FC流量的相似性,詳細(xì)討論兩者的流量特征,選取主要特征正確區(qū)分兩者,減少誤報(bào)率和漏報(bào)率。
DDoS攻擊的檢測(cè)模型如圖1所示:
圖1 DDoS攻擊檢測(cè)模型
由于網(wǎng)絡(luò)環(huán)境處于正常狀態(tài)時(shí),其流量是有規(guī)律地變化的。一旦網(wǎng)絡(luò)流量發(fā)生突然改變,網(wǎng)絡(luò)流量分析模塊就發(fā)送一個(gè)警告信號(hào)給DDoS攻擊檢測(cè)模塊,DDoS攻擊模塊用于判斷是FC流量還是DDoS攻擊。當(dāng)DDoS攻擊被檢測(cè)到時(shí),攻擊響應(yīng)模塊被激活,以過(guò)濾掉惡意流量并對(duì)真正的用戶維持不間斷的服務(wù)。另一方面,檢測(cè)到FC時(shí),激活各種負(fù)載分擔(dān)機(jī)制,如內(nèi)容分發(fā)網(wǎng)絡(luò)能夠容納額外的合法的客戶端訪問(wèn)網(wǎng)絡(luò)資源,分擔(dān)網(wǎng)絡(luò)流量,確保網(wǎng)絡(luò)的正常運(yùn)行。
通過(guò)對(duì)源IP地址進(jìn)行分析來(lái)檢測(cè)DDoS攻擊。使用2個(gè)主要的模塊:源IP地址分析模塊和DDoS攻擊判定模塊。
源IP地址分析模塊從收到的網(wǎng)絡(luò)流量中抽取源IP地址信息并判斷其是一個(gè)新的還是舊的IP地址。為了實(shí)現(xiàn)該功能,在源IP地址分析模塊采用2個(gè)數(shù)組來(lái)保存源IP地址,即IPold和IPnew。數(shù)組IPold由已知的攻擊流量樣本和正常流量的源IP地址初始化。數(shù)組IPnew在系統(tǒng)開(kāi)始啟動(dòng)時(shí)初始化為空。IPnew數(shù)組被用來(lái)暫時(shí)保存從未見(jiàn)過(guò)的源IP地址,只有當(dāng)DDoS攻擊判定模塊中的detect函數(shù)確定系統(tǒng)不再遭受攻擊時(shí),才把IPnew數(shù)組中的數(shù)據(jù)復(fù)制到IPold數(shù)組中,以此保證IPold數(shù)組的安全性。如果detect函數(shù)確定系統(tǒng)正遭受攻擊,則丟棄IPnew數(shù)組。
在攻擊檢測(cè)模塊中,使用一個(gè)detect函數(shù)來(lái)檢查攻擊,其包含2個(gè)狀態(tài):有攻擊和無(wú)攻擊。文中假設(shè)系統(tǒng)開(kāi)始運(yùn)行時(shí)是處于無(wú)攻擊狀態(tài)。detect函數(shù)周期性的運(yùn)行,分析從未知源IP地址傳來(lái)的數(shù)據(jù)包的速率。使用狀態(tài)改變函數(shù)來(lái)檢測(cè)傳入的數(shù)據(jù)包速率的突發(fā)性變化。在此基礎(chǔ)上確定系統(tǒng)狀態(tài),即是從有攻擊到無(wú)攻擊,還是從無(wú)攻擊到有攻擊。detect函數(shù)偽碼如圖2所示:
圖2 detect函數(shù)偽碼表示
Detect函數(shù)中使用了一個(gè)狀態(tài)改變函數(shù)Statechange來(lái)檢查流量達(dá)到率的一個(gè)突發(fā)變化,以此來(lái)確定系統(tǒng)狀態(tài)的改變,該函數(shù)主要使用CUSUM算法。CUSUM算法是一個(gè)順序分析算法,該算法假設(shè)在網(wǎng)絡(luò)流量發(fā)生改變時(shí),統(tǒng)計(jì)屬性中被查參數(shù)的平均值。CUSUM 算法基于這一事實(shí):如果有變化發(fā)生,隨機(jī)序列的概率分布也會(huì)改變.針對(duì)實(shí)時(shí)網(wǎng)絡(luò)流量分析,在惡意事件發(fā)生前后要評(píng)估流量的分布都是很困難的,在變化檢查中,這一問(wèn)題可使用非參數(shù)的CUSUM算法解決[7]。文中使用非參數(shù)的CUSUM算法改變檢測(cè)技術(shù)來(lái)分析源IP地址。
由于DDoS攻擊和FC特征上的相似性,經(jīng)常會(huì)把DDoS攻擊誤認(rèn)為是FC事件,或者把FC事件誤認(rèn)為是DDoS攻擊,從而導(dǎo)致漏報(bào)和誤報(bào)。因此,要想正確的區(qū)分DDoS攻擊和FC事件,必需對(duì)其特征進(jìn)行詳細(xì)的討論。
在網(wǎng)絡(luò)環(huán)境中,突發(fā)流量是指大量合法用戶同時(shí)發(fā)送訪問(wèn)請(qǐng)求到服務(wù)器,它集中在某個(gè)特定的時(shí)間在網(wǎng)絡(luò)中的某個(gè)特定的網(wǎng)站。例如,突發(fā)的災(zāi)難(汶川地震),或重大運(yùn)動(dòng)賽事(世界杯的舉行)等都會(huì)引起FC的出現(xiàn)。這會(huì)導(dǎo)致傳入流量的顯著增加,從而導(dǎo)致服務(wù)質(zhì)量QoS(Quality-of-Service)降級(jí)。
DDoS攻擊也會(huì)帶來(lái)類似的結(jié)果,例如流量水平的突然改變,由大量的請(qǐng)求引起的網(wǎng)站不可用等。DDoS攻擊流量和FC流量有兩個(gè)共同的特征:一是它們都只有一個(gè)目標(biāo),所有的數(shù)據(jù)包都是發(fā)向該目標(biāo)。二是巨大的流量持續(xù)的送往目的地足以擁塞鏈路和主機(jī)。在這種情況下,服務(wù)器會(huì)因?yàn)橘Y源的限制和帶寬耗盡而無(wú)法提供正常的服務(wù)。
但是,DDoS和FC之間仍然存在一些細(xì)微差異,如訪問(wèn)意圖、客戶端的請(qǐng)求速率、源IP地址的分布情況等。DDoS和FC的詳細(xì)區(qū)別如表1所示:
表1 DDoS攻擊和FC特征比較
文中主要選取流量的變化率,新的源IP地址的變化率和源IP地址的請(qǐng)求分配率3個(gè)參數(shù)來(lái)分析網(wǎng)絡(luò)流量,幫助從FC流量中區(qū)分出DDoS攻擊流量。
由于公開(kāi)的應(yīng)用層DDoS攻擊和FC事件的真實(shí)數(shù)據(jù)集很少,故實(shí)驗(yàn)中需要模擬網(wǎng)絡(luò)流量。為了產(chǎn)生具有以上特征的網(wǎng)絡(luò)流量,使用IP別名和Wget工具相結(jié)合。IP別名是一個(gè)可用于眾多平臺(tái)的技術(shù),用于分配大量不同的IP到一個(gè)單一的硬件地址。wget是一個(gè)從網(wǎng)絡(luò)上自動(dòng)下載文件的自由工具,支持通過(guò)HTTP、HTTPS、FTP3個(gè)最常見(jiàn)的TCP/IP協(xié)議下載,并可以使用HTTP代理。因此,采用IP別名和Wget能夠創(chuàng)建一組“bot”機(jī)和合法用戶的現(xiàn)象,每一個(gè)都帶有一個(gè)有效的IP地址和硬件地址用于模擬真實(shí)的DDoS攻擊和FC。
實(shí)驗(yàn)環(huán)境由8個(gè)主機(jī)構(gòu)成,分別模擬“bot”機(jī)和合法用戶,由控制機(jī)統(tǒng)一控制,共同發(fā)送流量到目標(biāo)服務(wù)器??刂茩C(jī)發(fā)出命令啟動(dòng)每個(gè)參與的主機(jī)創(chuàng)建一個(gè)“bot”實(shí)例。除了目標(biāo)服務(wù)器外,其它所有的機(jī)器采用普通的PC機(jī)。實(shí)驗(yàn)環(huán)境初始化為所有的攻擊者或是目標(biāo)機(jī)的端口都通過(guò)交換機(jī)連接。每8個(gè)主機(jī)配置3200個(gè)“bot”,使用別名源IP綁定到硬件地址。每個(gè)“bot”配置一個(gè)唯一的源IP地址.
通過(guò)上述的配置,使用“bot”裝載產(chǎn)生合成的FC流量來(lái)進(jìn)行實(shí)驗(yàn),使用1998年世界杯半決賽的流量來(lái)產(chǎn)生合成流量。為了計(jì)算相關(guān)參數(shù),如數(shù)據(jù)包的數(shù)量,不同的源IP地址的數(shù)量,不同的訪問(wèn)資源的數(shù)量以及在各個(gè)采樣間隔采集的正常資源的熵等,對(duì)這些數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析?!癰ot”裝載者使用這些信息產(chǎn)生合成流量。
單位時(shí)間內(nèi)在目標(biāo)服務(wù)器注冊(cè)的源IP地址數(shù)量的變化如圖3所示:
圖3 源IP地址數(shù)量比較圖
不同的源IP地址的數(shù)量在模擬流量上非常接近原始的FC數(shù)據(jù),雖然在整個(gè)仿真過(guò)程中,目標(biāo)機(jī)看到的不同的源IP地址的總數(shù)略小于預(yù)期值。
對(duì)于FC事件,大部分用戶總是對(duì)特定事件的相關(guān)信息感興趣。這一特征對(duì)于客戶端來(lái)說(shuō)是一個(gè)相對(duì)恒定的請(qǐng)求,因此,對(duì)于進(jìn)入服務(wù)器的流量,客戶端數(shù)量以一個(gè)相似的形式變化,正如圖3所示。
文中,通過(guò)對(duì)網(wǎng)絡(luò)流量的分析,尤其是對(duì)源IP地址進(jìn)行分析來(lái)檢測(cè)應(yīng)用層DDoS攻擊,得到了較好的檢測(cè)結(jié)果,同時(shí),針對(duì)DDoS攻擊和FC流量的相似性,通過(guò)辨識(shí)各相關(guān)特征,能夠正確的區(qū)分二者,減少了誤報(bào)率和漏報(bào)率。文中對(duì)提出的模型只進(jìn)行了部分實(shí)驗(yàn),同時(shí),實(shí)驗(yàn)數(shù)據(jù)使用的是合成網(wǎng)絡(luò)流量數(shù)據(jù),下一步的工作是完成對(duì)整個(gè)模型的整體實(shí)驗(yàn)以及采用真實(shí)的網(wǎng)絡(luò)數(shù)據(jù)對(duì)模型進(jìn)行評(píng)估。
[1]胡鴻, 袁津生, 郭敏哲.基于 TCP 緩存的 DDoS 攻擊檢測(cè)算法[J].計(jì)算機(jī)工程, 2009, 35(16): 112-114.
[2]Ejaz Ahamed, George Mohay, AlanTickle, Sajal Bhatia,Use of IP Addresses for High Rate Flooding Attack Detection, [c]IFIP Advances in Information and Communication Technology, 2010, pp.124-135.
[3]Runyuan Sun, Bo Yang, Lizhi Peng, Zhenxiang Chen, Lei Zhang and Shan Jing, Traffic Classification Using Probabilistic Neural Network, [J]IEEE International Conference on Natural Computation (ICNC), 2010, pp.1914-1919.
[4]J.Jung, B.Krishnamurthy, and M.Rabinovich.Flash Crowds and Denial of Service Attacks: Characterization and Implications for CDNs and Web Sites.In Proc.[c]WWW’02, 2002, pp 293–304.
[5]Li K, Zhou W L, Li P, Hai J, Liu J W.Distinguishing DDoS attacks from fash crowds using probability metrics.In: Proc.Of the 3th Int’1 Coneon Network and System Security.2009, pp.9-17.
[6]王風(fēng)宇, 曹首峰, 肖軍等.一種基于Web群體外聯(lián)行為的應(yīng)用層 DDoS檢測(cè)方法[J].軟件學(xué)報(bào), 2013,24(6):1263-1273.
[7]Tartakovsky, A.G., et al.: A novel approach to detection of intrusions in computer networks via adaptive sequential and batch-sequential change-point detection methods.[c]IEEE Transactions on Signal Processing 54, 2006,pp.3372–3382.