一種可靠檢測(cè)低速率DDoS攻擊的異常檢測(cè)系統(tǒng)
引 言
現(xiàn)代社會(huì)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)(如互聯(lián)網(wǎng))的依賴性愈來愈強(qiáng),從而,網(wǎng)絡(luò)安全的重要性不言而喻。在網(wǎng)絡(luò)安全方面,檢測(cè)分布式拒絕服務(wù)攻擊(Distributed Denialof Service,DDoS)一直是重要研究?jī)?nèi)容。在入侵檢測(cè)方面有兩類系統(tǒng):基于主機(jī)的入侵檢測(cè)系統(tǒng)(IDS)和基于網(wǎng)絡(luò)的IDS。基于網(wǎng)絡(luò)的IDS以網(wǎng)絡(luò)流量為檢測(cè)對(duì)象,它又可分為兩類:誤用檢測(cè)和異常檢測(cè)。誤用檢測(cè)基于以往攻擊事件的特征庫(kù),故誤用檢測(cè)的IDS能準(zhǔn)確檢測(cè)舊式攻擊。誤用檢測(cè)對(duì)新變種的DDoS攻擊顯得無力,因?yàn)樾伦兎N的DDoS攻擊的新特征尚不在特征庫(kù)內(nèi),故可以百分之百地逃避誤用檢測(cè)。本文工作屬異常檢測(cè)。
異常檢測(cè)適合新變種的DDoS攻擊。但是,若把異常流量判別為正常則出現(xiàn)漏報(bào)。對(duì)于一次報(bào)警,把異常流量識(shí)別為異常的概率有多大?漏報(bào)概率有多大?這些是異常檢測(cè)的可靠報(bào)警問題,也是異常檢測(cè)的棘手問題。所謂可靠報(bào)警,是指所采用的異常檢測(cè)器在原理上就具備那樣的特性,用戶可預(yù)先設(shè)定報(bào)警概率和漏報(bào)概率??煽繄?bào)警是該文研究的IDS的主要特點(diǎn)。
傳統(tǒng)DDoS攻擊的基本特點(diǎn)是數(shù)據(jù)速率特別高。故IDS常按高速率檢測(cè),包括以前的工作。近年來,出現(xiàn)了一種低速率DDoS攻擊,其目的是逃避常規(guī)IDS。因此,如何可靠地檢測(cè)低速率DDoS攻擊成了有意義的研究。本文提出一種可靠檢測(cè)低速率DDoS攻擊的IDS。它由三部分組成:網(wǎng)絡(luò)流量的實(shí)時(shí)采集模塊;檢測(cè)決策模塊;報(bào)警模塊。整個(gè)系統(tǒng),其輸入是網(wǎng)絡(luò)流量,輸出是就異常流量發(fā)出的報(bào)警信號(hào)。該系統(tǒng)的主要特點(diǎn)是能按用戶指定的檢測(cè)概率做出決策和報(bào)警。
1低速率DDoS攻擊的特點(diǎn)
這里討論的低速率攻擊,是攻擊者以TCP協(xié)議為目標(biāo),通過RTO計(jì)時(shí)器,在鏈接中制造運(yùn)行中斷,從而導(dǎo)致TCP控制機(jī)構(gòu)擁塞。進(jìn)行攻擊的數(shù)據(jù)流是具有一定周期的方波。攻擊流量的速率低,卻有高的攻擊效率。
TCP協(xié)議中,RTO是個(gè)重要的值。采用RTO是為了保證網(wǎng)絡(luò)有足夠的時(shí)間從擁塞中恢復(fù)過來。如果RTO過大,出現(xiàn)報(bào)文丟失,TCP需要等待過長(zhǎng)的時(shí)間才能重傳報(bào)文,增加了TCP報(bào)文傳輸時(shí)間。如果RTO過小,會(huì)引起不必要的重傳,同時(shí)會(huì)錯(cuò)誤地觸發(fā)TCP的超時(shí)重傳算法,降低了TCP的發(fā)送速率,從而降低了TCP的性能。下面介紹攻擊的原理。
設(shè)TCP的RTO值為1 s,攻擊者在0時(shí)刻制造了一個(gè)運(yùn)行中斷。TCP發(fā)送者要等待1 s重傳并且將RTO加倍。如果攻擊者在1 s和RTT間又制造了一個(gè)運(yùn)行中斷,將迫使TCP再等2 s,攻擊者可以利用KAM算法,在3 s,7 s,15 s,…時(shí)通過制造相似的運(yùn)行中斷。如此,就能用很低的平均速率進(jìn)行攻擊,使服務(wù)器對(duì)TCP流拒絕服務(wù)??梢?,若DDoS周期和RTO相近,則TCP會(huì)一直發(fā)生丟包事件。于是,結(jié)束超時(shí)重傳的狀態(tài)就一直不變,最終導(dǎo)致吞吐量幾乎為0。因此,低速率攻擊的關(guān)鍵就是攻擊者能否對(duì)RTO進(jìn)行準(zhǔn)確預(yù)測(cè)。另外,脈沖持續(xù)時(shí)間長(zhǎng)短也很重要。文獻(xiàn)[5]指出,當(dāng)l=maxi{RTTi}且T=RTO時(shí),攻擊效率很高。
簡(jiǎn)言之,和高速率攻擊相比,低速率DDoS攻擊的一個(gè)最大特點(diǎn)就是集中在某一小時(shí)間范圍內(nèi)發(fā)送惡意數(shù)據(jù),從而使得攻擊數(shù)據(jù)流的平均速率比較小,以逃避常規(guī)IDS的檢測(cè)。
2 IDS結(jié)構(gòu)及功能
系統(tǒng)結(jié)構(gòu)與功能
本文討論的IDS主要由三個(gè)模塊組成,各模塊的名稱及功能如下:
數(shù)據(jù)采集與萃取模塊 此模塊是基于LIBPCAP函數(shù)庫(kù)實(shí)現(xiàn)的。封裝為C++類,可方便嵌入入侵檢測(cè)系統(tǒng),作為前端流量采集與信息萃取模塊??紤]到IDS是一類實(shí)時(shí)系統(tǒng),該模塊的設(shè)計(jì)原則是所測(cè)流量足夠后面的異常檢測(cè)用即可。就本文講述的系統(tǒng),信息萃取是從測(cè)得的數(shù)據(jù)包中提取包長(zhǎng)度信息。
攻擊識(shí)別與決策模塊 由用戶按設(shè)定的識(shí)別概率和漏報(bào)概率做異常流量檢測(cè)。
報(bào)警模塊 根據(jù)用戶設(shè)定的識(shí)別概率和漏報(bào)概率對(duì)發(fā)生的攻擊采取多種方式進(jìn)行報(bào)警。系統(tǒng)結(jié)構(gòu)如圖1所示。下面分別描述各模塊的結(jié)構(gòu)。
2.2數(shù)據(jù)采集與萃取模塊
網(wǎng)絡(luò)數(shù)據(jù)包捕獲
利用LIBPCAP函數(shù)庫(kù)實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,該庫(kù)所提供的主要功能函數(shù)有(見LIBPCAP手冊(cè)):
pcap_open_live():獲取捕獲數(shù)據(jù)包的描述符,用于查看網(wǎng)絡(luò)數(shù)據(jù)包的傳輸;
pcap_lookupdev():返回供pcap_open_live()使用的設(shè)備指針;
pcap_open_offline():打開數(shù)據(jù)包文件以供離線分析;
pcap_dump_open():打開文件以供寫入數(shù)據(jù)包;
pcap_setfilter():設(shè)置數(shù)據(jù)包過濾器程序;
pcap_loop():?jiǎn)?dòng)數(shù)據(jù)包捕獲。
數(shù)據(jù)包捕獲過程如圖2所示。
評(píng)論