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