引 言
現(xiàn)代社會對計算機網(wǎng)絡(如互聯(lián)網(wǎng))的依賴性愈來愈強,,從而,網(wǎng)絡安全的重要性不言而喻,。在網(wǎng)絡安全方面,,檢測分布式拒絕服務攻擊(Distributed Denialof Service,DDoS" title="DDoS">DDoS)一直是重要研究內(nèi)容,。在入侵檢測方面有兩類系統(tǒng):基于主機的入侵檢測系統(tǒng)(IDS" title="IDS">IDS)和基于網(wǎng)絡的IDS,。基于網(wǎng)絡的IDS以網(wǎng)絡流量為檢測對象,,它又可分為兩類:誤用檢測和異常檢測" title="異常檢測">異常檢測,。誤用檢測基于以往攻擊事件的特征庫,故誤用檢測的IDS能準確檢測舊式攻擊,。誤用檢測對新變種的 DDoS攻擊顯得無力,,因為新變種的DDoS攻擊的新特征尚不在特征庫內(nèi),故可以百分之百地逃避誤用檢測,。本文工作屬異常檢測,。
異常檢測適合新變種的DDoS攻擊。但是,,若把異常流量判別為正常則出現(xiàn)漏報,。對于一次報警,把異常流量識別為異常的概率有多大?漏報概率有多大?這些是異常檢測的可靠報警問題,,也是異常檢測的棘手問題,。所謂可靠報警,是指所采用的異常檢測器在原理上就具備那樣的特性,,用戶可預先設定報警概率和漏報概率,。可靠報警是該文研究的IDS的主要特點,。
傳統(tǒng)DDoS攻擊的基本特點是數(shù)據(jù)速率特別高,。故IDS常按高速率檢測,包括以前的工作,。近年來,,出現(xiàn)了一種低速率" title="低速率">低速率DDoS攻擊,,其目的是逃避常規(guī)IDS。因此,,如何可靠地檢測低速率DDoS攻擊成了有意義的研究,。本文提出一種可靠檢測低速率DDoS攻擊的 IDS。它由三部分組成:網(wǎng)絡流量的實時采集模塊,;檢測決策模塊,;報警模塊。整個系統(tǒng),,其輸入是網(wǎng)絡流量,輸出是就異常流量發(fā)出的報警信號,。該系統(tǒng)的主要特點是能按用戶指定的檢測概率做出決策和報警,。
1低速率DDoS攻擊的特點
這里討論的低速率攻擊,是攻擊者以TCP協(xié)議為目標,,通過RTO計時器,,在鏈接中制造運行中斷,從而導致TCP控制機構(gòu)擁塞,。進行攻擊的數(shù)據(jù)流是具有一定周期的方波,。攻擊流量的速率低,卻有高的攻擊效率,。
TCP 協(xié)議中,,RTO是個重要的值。采用RTO是為了保證網(wǎng)絡有足夠的時間從擁塞中恢復過來,。如果RTO過大,,出現(xiàn)報文丟失,TCP需要等待過長的時間才能重傳報文,,增加了TCP報文傳輸時間,。如果RTO過小,會引起不必要的重傳,,同時會錯誤地觸發(fā)TCP的超時重傳算法,,降低了TCP的發(fā)送速率,從而降低了 TCP的性能,。下面介紹攻擊的原理,。
設TCP的RTO值為1 s,攻擊者在0時刻制造了一個運行中斷,。TCP發(fā)送者要等待1 s重傳并且將RTO加倍,。如果攻擊者在1 s和RTT間又制造了一個運行中斷,將迫使TCP再等2 s,,攻擊者可以利用KAM算法,,在3 s,,7 s,15 s,,…時通過制造相似的運行中斷,。如此,就能用很低的平均速率進行攻擊,,使服務器對TCP流拒絕服務,。可見,,若DDoS周期和RTO相近,,則TCP會一直發(fā)生丟包事件。于是,,結(jié)束超時重傳的狀態(tài)就一直不變,,最終導致吞吐量幾乎為0。因此,,低速率攻擊的關鍵就是攻擊者能否對RTO進行準確預測,。另外,脈沖持續(xù)時間長短也很重要,。文獻[5]指出,,當l=maxi{RTTi}且T=RTO時,攻擊效率很高,。
簡言之,,和高速率攻擊相比,低速率DDoS攻擊的一個最大特點就是集中在某一小時間范圍內(nèi)發(fā)送惡意數(shù)據(jù),,從而使得攻擊數(shù)據(jù)流的平均速率比較小,,以逃避常規(guī)IDS的檢測。
2 IDS結(jié)構(gòu)及功能
系統(tǒng)結(jié)構(gòu)與功能
本文討論的IDS主要由三個模塊組成,,各模塊的名稱及功能如下:
數(shù)據(jù)采集與萃取模塊 此模塊是基于LIBPCAP函數(shù)庫實現(xiàn)的,。封裝為C++類,可方便嵌入入侵檢測系統(tǒng),,作為前端流量采集與信息萃取模塊,。考慮到IDS是一類實時系統(tǒng),,該模塊的設計原則是所測流量足夠后面的異常檢測用即可,。就本文講述的系統(tǒng),信息萃取是從測得的數(shù)據(jù)包中提取包長度信息,。
攻擊識別與決策模塊 由用戶按設定的識別概率和漏報概率做異常流量檢測,。
報警模塊 根據(jù)用戶設定的識別概率和漏報概率對發(fā)生的攻擊采取多種方式進行報警。系統(tǒng)結(jié)構(gòu)如圖1所示,。下面分別描述各模塊的結(jié)構(gòu),。
2.2數(shù)據(jù)采集與萃取模塊
網(wǎng)絡數(shù)據(jù)包捕獲
利用LIBPCAP函數(shù)庫實現(xiàn)網(wǎng)絡數(shù)據(jù)包的捕獲,,該庫所提供的主要功能函數(shù)有(見LIBPCAP手冊):
pcap_open_live():獲取捕獲數(shù)據(jù)包的描述符,用于查看網(wǎng)絡數(shù)據(jù)包的傳輸,;
pcap_lookupdev():返回供pcap_open_live()使用的設備指針,;
pcap_open_offline():打開數(shù)據(jù)包文件以供離線分析;
pcap_dump_open():打開文件以供寫入數(shù)據(jù)包,;
pcap_setfilter():設置數(shù)據(jù)包過濾器程序,;
pcap_loop():啟動數(shù)據(jù)包捕獲。
數(shù)據(jù)包捕獲過程如圖2所示,。
2.2.2 數(shù)據(jù)包信息萃取
進行了包捕獲之后,,需要將捕獲到的數(shù)據(jù)包通過回調(diào)函數(shù)進行數(shù)據(jù)包的解析。因此在對回調(diào)函數(shù)進行封裝時,,必須借助一解析流程,,實現(xiàn)回調(diào)函數(shù)和線程類間的數(shù)據(jù)共享,再根據(jù)TCP/IP協(xié)議族層次結(jié)構(gòu)圖及各層數(shù)據(jù)包格式的定義,,對各層加入的頭和控制信息進行解封裝。詳細過程見文獻[9],。圖3是該解析流程的過程,。
上述實時采集及信息萃取模塊采用基于GUI的可重用設計方法。其流量解析結(jié)果以GUI界面輸出,,進行對入侵檢測系統(tǒng)的接口操作,,實現(xiàn)下一模塊:攻擊識別與決策的數(shù)據(jù)包采集與萃取的預處理過程。
2.3攻擊識別與決策模塊
此模塊的關鍵問題有兩個:一是根據(jù)識別方法選擇合適的檢測特征,;另一是如何實現(xiàn)可靠識別,。可靠識別的意思是指,,用戶可事先設定所需要的識別概率和漏報概率,。
設 x(t)為到達流量函數(shù)。其最小流量約束函數(shù)記做f(I)(I>0),。則在區(qū)間[0,,I]內(nèi),到達的累積流量不會小于 f(I)=min[x(t+I)-x(t)],。在時間區(qū)間[(n-1)I,,nI](n=1,2,,…,,N)內(nèi),f(I,,n)就是該區(qū)間內(nèi)的最小流量約束函數(shù),。它是關于n的隨機序列,。把各區(qū)間[(n-1)I,nI]都分成M段,。每段長度為L,。對第m段(m=1,2,,…,,M),取平均值E[f(I,,n)]m,。則當M>10時,E[f(I,,n)]m符合高斯分布
設置信系數(shù)為1-a1,,則統(tǒng)計下限為:
于是,得到模板η=E[f(I,,n)],。令閾值Vt=bf(M,α1),則低速率檢測概率和丟失概率分別為:
由此,,用戶可以預先設置α1值來得到給定的檢測概率和漏報概率,。當η≥Vl時,視數(shù)據(jù)流為正常,。
2.4報警模塊
IDS 檢測到低速率攻擊后,,向用戶報警并將該事件通知給安全管理中心,做出防衛(wèi)決策,。根據(jù)需要,,可將報警信息發(fā)給其他網(wǎng)絡,構(gòu)成全方位的,、立體的網(wǎng)絡安全解決方案,。當出現(xiàn)報警信息時可以采取的報警方式有:開啟警燈,彈出界面,,開啟警鈴,,發(fā)短信給高層決策者,發(fā)Email給高層決策者等,,這幾種報警方式可以單獨采用也可以集中相結(jié)合,。
警報出現(xiàn)時,還要通知安全管理中心,,如果是嚴重的大范圍攻擊,,則通知其他網(wǎng)絡,防止攻擊對網(wǎng)絡造成大范圍的破壞,;否則,,內(nèi)部處理,。
3實驗結(jié)果
采用以前的工作所述的方法仿真實驗用的網(wǎng)絡流量,分別用正常和非正常情況下的兩個數(shù)據(jù)流進行實驗,,并做一個對比,。
圖 5表示兩個數(shù)據(jù)流的x(t),圖6,,圖7表示兩種情況下的,,f(I,n)(n,,I=1,,2,…,,16),。由于版面限制,只給出前四種情況,。圖8,,圖9是兩種情況下的平均速率圖和速率的概率密度分布圖,由此可以清楚地看到,,此種方法能準確地分辨出低速率和正常的速率,,能夠用于低速率攻擊的檢測。
4結(jié)語
論述了一種可靠檢測低速率DDoS攻擊的系統(tǒng),,并做了仿真實驗驗證。通過網(wǎng)絡數(shù)據(jù)包實時采集與信息萃取模塊的預處理,,對數(shù)據(jù)包進行捕獲與解析,,接入到識別模塊,發(fā)現(xiàn)異常即啟動報警機制,。該系統(tǒng)可由用戶設定識別概率和漏報概率,。除可靠識別外,本文論述的系統(tǒng)還有個優(yōu)點,。它可方便地延拓到分級服務網(wǎng)中,。
例如,設xip,j,k(t)是來自連接j,,通過服務器k,,具有優(yōu)先級p的第i類的所有數(shù)據(jù)流,那么其最小流量約束函數(shù)是:,,把它用于2.3節(jié),,則整個系統(tǒng)就立即成了專門檢測到達流xip,j,k(t)是否異常的IDS。