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