焦文歡,馮興杰
(中國民航大學a.信息網(wǎng)絡中心;b.教務處,天津 300300)
隨著Internet在全球的迅速發(fā)展和各種互聯(lián)網(wǎng)應用的快速普及,網(wǎng)絡已成為人們?nèi)粘9ぷ?、生活中不可或缺的信息承載工具[1]。然而,網(wǎng)絡給人們的工作與生活帶來便利的同時,其安全問題也日益突出。入侵檢測(intrusion detection)技術作為網(wǎng)絡信息安全領域的關鍵技術,對保護網(wǎng)絡與系統(tǒng)的安全起到了至關重要的作用[2]。
目前,通過對網(wǎng)絡流量進行檢測分析來識別入侵仍然是研究的一個熱點?;谇蠼釮urst參數(shù)[3]并根據(jù)其變化情況來檢測異常的方法有效地提高了檢測率,但是由于正常的突變流量也會引起Hurst參數(shù)的異常變化,從而導致該方法無法區(qū)分突變的正常流量與異常流量;另外,直接對報文類型進行統(tǒng)計分析雖然具有一定的有效性,但是在大部分情況下,網(wǎng)絡處于正常狀態(tài),頻繁地對網(wǎng)絡報文進行統(tǒng)計分析不僅沒必要,而且一定程度上也會影響檢測系統(tǒng)的實時性,降低檢測效率。
針對以上提出的入侵檢測領域存在的不足,本文從對TCP流的檢測出發(fā),設計了一種面向TCP流的異常檢測模型。由于網(wǎng)絡流量的自相似性,首先采用小波法求解自相似參數(shù)(即Hurst參數(shù)),并根據(jù)其變化情況判斷是否存在異常流量;如果Hurst差值超過了閾值范圍,則根據(jù)TCP流的3次握手和4次揮手協(xié)議對該時間段的報文類型做進一步的分析,判斷TCP報文是否具有完整性,最終準確地判定該流量是否為異常流量。
由于數(shù)據(jù)流的大規(guī)模以及實時性特點,要維護所有流信息需大量內(nèi)存空間,因此采用Sketch進行數(shù)據(jù)流概要存儲。Sketch概要數(shù)據(jù)結(jié)構(gòu)是一種高效的信息存儲、查詢技術,該方法主要是通過哈希函數(shù)把報文流信息映射到較小空間進行存儲,不用在內(nèi)存中維護整個流表信息,因此能夠很好地適應數(shù)據(jù)流到達速度快、海量和單遍掃描等特點。Krishnamurthy等人將Sketch用于異常檢測并提出一種啟發(fā)式方法自動設置Sketch的參數(shù)[4]。該數(shù)據(jù)處理技術并不保存整個數(shù)據(jù)集,僅維護一個遠小于其原始規(guī)模的概要數(shù)據(jù)結(jié)構(gòu),因而能夠常駐內(nèi)存[5]。
為了降低哈希函數(shù)的沖突率,現(xiàn)有方法大多采用多函數(shù)多空間來處理沖突問題。這里引入具有異或運算的哈希函數(shù)[6]來提高隨機性,并且為每個哈希函數(shù)單獨配備一個獨立的存儲空間,從而可在很少的哈希函數(shù)映射下減少哈希沖突,在保證較低沖突率的同時有效地節(jié)省存儲空間。文獻[7]中提出了一種高效的哈希大頂堆算法解決哈希沖突,但是由于該算法需要得到數(shù)據(jù)流信息出現(xiàn)的先驗概率,所以不適合網(wǎng)絡流的異常檢測。概要數(shù)據(jù)結(jié)構(gòu)如圖1所示。
圖1 概要數(shù)據(jù)結(jié)構(gòu)示意框圖Fig.1 Schematic diagram of synopsis data structure
假設 x={xj,j=1,2,…}為一協(xié)方差平穩(wěn)隨機序列,即x具有恒定均值μ=E[xj]和有限方差σ2=E[(xjμ)2],其自相關函數(shù)
僅與k有關,即r(k)~k-βL1(k),k→∞,其中0<β<1;
對于?x>0,L1滿足
2018年6月15日,在河南省鄭州市鄭東新區(qū),位于七里河南路與康平路交叉口的宏光意中大廈配樓同文酒店的門前人潮涌動。所有的來賓都滿懷期待地邁向二樓,在兩側(cè)擺滿祝賀花籃的大廳正中是一面墻,墻上呈現(xiàn)河南著名書法家王澄所題的“國學博覽館”五個行楷大字。這一天是宏光集團公司歷時5年,由王澄嘔心瀝血、殫精竭慮擔綱策劃,開創(chuàng)國學博覽館開館揭幕的大喜之日。
H被稱為Hurst參數(shù),反映網(wǎng)絡流量長相關以及自相似性的重要指標,能很好地反映自相似度。大量研究表明,正常網(wǎng)絡流量具有自相似性,而異常流量的產(chǎn)生會對網(wǎng)絡流量的自相似性產(chǎn)生明顯影響。為此,通過持續(xù)監(jiān)測網(wǎng)絡流量的Hurst參數(shù),并分析其變化即可判定當前網(wǎng)絡是否發(fā)生了異常。
常用的Hurst參數(shù)求解方法有:小波分析法、R/S分析法、Variance-time法、殘差方差法等。在小波分析法中,主要有3種利用小波分析求解Hurst值的方法:能量法、譜估計法和小波系數(shù)方差法,都是基于能量的方法來分析自相似信號。本文將使用小波系數(shù)方差法求解Hurst參數(shù),其基本思想是對自相似信號進行離散小波變換后的小波系數(shù)求方差,然后根據(jù)該方差與小波分解尺度的關系求出Hurst參數(shù)值。小波系數(shù)方差法的算法實現(xiàn)過程可參考文獻[8]。
TCP報文完整性是指通過TCP 3次握手建立連接和4次揮手斷開連接時產(chǎn)生的若干種TCP報文必須滿足TCP協(xié)議的數(shù)量比例關系,否則TCP建立連接或者斷開連接就是不完整的,而惡意的網(wǎng)絡入侵是造成TCP報文不完整的重要原因。
在研究中發(fā)現(xiàn),通過Hurst指數(shù)法可以判斷大部分的異常網(wǎng)絡流量,但對一些突變的正常流量,仍被視為異常流量,這將增加模型的誤報率。為了解決該問題,需對經(jīng)過Hurst指數(shù)判斷并且被認為是異常的流量做進一步分析。由于網(wǎng)絡中大約有90%的流量為傳輸控制協(xié)議(TCP)流,這使得TCP流的變化情況在很大程度上主導了網(wǎng)絡流量的變化,因此為了更準確地掌握網(wǎng)絡流量的狀態(tài),本文將根據(jù)TCP協(xié)議的特點,從TCP建立連接、拆除連接過程中報文的完整性出發(fā),進一步判斷該流量是否是異常流量。
在獲取TCP報文概要計數(shù)之后,可采用多種方法來分析判斷TCP報文是否完整。常用的方法是進行數(shù)值比較,如比較SYN報文量是否與SYN+ACK報文量匹配、RST和FIN數(shù)量是否存在異常等。由于實際網(wǎng)絡里會存在服務質(zhì)量問題或不正確的用戶行為,這會導致網(wǎng)絡存在一些不完整的TCP連接,因而實際的TCP各類報文間的數(shù)量關系會比理論情況更為復雜。對于完整的TCP流,本文在一個觀測時間段內(nèi),采用以下約束對報文數(shù)量進行檢測分析
本文提出的異常檢測模型主要分為2個部分:數(shù)據(jù)流的概要存儲部分和異常入侵檢測部分。模型的具體實現(xiàn)流程,如圖2所示。
圖2 面向TCP流的異常檢測模型Fig.2 Anomaly detection model oriented to TCP flow
為了實現(xiàn)數(shù)據(jù)流的概要存儲,采用哈希函數(shù)DEK、JS等將IP字符串哈希到相應的哈希桶內(nèi),并將字符串添加到相應的鍵值鏈表中,具體流程如圖3所示。
圖3 概要數(shù)據(jù)結(jié)構(gòu)生成過程Fig.3 Formation of synopsis data structure
步驟如下:
2)將該TCP報文的信息字符串添加到對應Key值后面的List中,作為異常地址的溯源。重復1)、2)步直到一個觀測單位時間結(jié)束。
3)將概要映射的結(jié)果輸出到異常檢測部分,作為小波系數(shù)方差法求解Hurst參數(shù)和進行TCP報文完整性驗證的數(shù)據(jù)源。
4)清空該概要數(shù)據(jù)結(jié)構(gòu),進行下一個時間段的概要映射。
模型的異常檢測部分,如圖4所示。
圖4 異常檢測部分流程圖Fig.4 Anomaly detection flow chart
步驟如下:
1)對從概要數(shù)據(jù)結(jié)構(gòu)中讀取的統(tǒng)計數(shù)據(jù)做小波系數(shù)方差分析,求得在該時間段上的自相似Hurst參數(shù)。
2)計算當前Hurst參數(shù)值與同時間段正常網(wǎng)絡流量的Hurst參數(shù)差值,如果該差值沒有超過閾值范圍,則認為該時間段的流量為正常流量,返回第1)步;如果該差值超過了閾值范圍,則對該時間段的SYN、SYN+ACK、FIN+ACK等報文進行完整性驗證分析,進一步判斷此時的TCP報文是否完整。
3)如果根據(jù)TCP報文的類型判斷得出該時間段的TCP報文完整,則可認定,雖然該時間段的網(wǎng)絡流量發(fā)生很大變化,但主要是由于突變的正常流量引起的,不應當視為異常流量,返回第1)步;如果TCP報文的內(nèi)容顯示TCP連接極不完整,則可斷定此時出現(xiàn)了異常流量,應當采取有效措施阻止異常的繼續(xù)發(fā)生。
實驗一 基于TCP流的異常檢測中,所采用的數(shù)據(jù)集應體現(xiàn)出隨時間變化的特點,以便能夠更準確地對入侵檢測模型進行評價,因此本次實驗選擇DARPA 1999數(shù)據(jù)集[9]作為測試集。DARPA數(shù)據(jù)集包含7個星期網(wǎng)絡流量的tcpdump數(shù)據(jù),經(jīng)過處理大約有500萬條連接記錄。數(shù)據(jù)中包含4種主要的攻擊類型:①DoS,拒絕服務攻擊;②R2L,對遠程主機的未授權的訪問;③U2R,對本地超級用戶權限的未授權的訪問;④Probe,掃描與探測行為。
首先,實驗選用DARPA數(shù)據(jù)集中第1周第1天的正常數(shù)據(jù)進行分析。為了實現(xiàn)小波系數(shù)的快速提取,實驗以10 s為單位統(tǒng)計各TCP報文數(shù)量,以100 s(即10個統(tǒng)計單位)為一個時間窗計算Hurst值。另外,在小波系數(shù)方差法求Hurst參數(shù)時,采用誤差較小的Db3[8]小波進行Hurst參數(shù)的計算。Hurst值求解結(jié)果,如圖5所示。
圖5 正常網(wǎng)絡流量的Hurst參數(shù)曲線Fig.5 Hurst line of normal network flow
其次,實驗對第4周星期一的異常數(shù)據(jù)集做檢測分析。由于該數(shù)據(jù)集比較大,大約1 400 000個報文。為此,截取其中80 min左右的Trace數(shù)據(jù)進行分析,仍以10 s為單位統(tǒng)計TCP報文數(shù)量,以100 s為一個時間窗計算Hurst值,并將檢測數(shù)據(jù)的Hurst參數(shù)繪制,如圖6所示。
圖6 檢測數(shù)據(jù)的Hurst參數(shù)曲線Fig.6 Hurst line of test data
實驗將閾值定為0.2,即如果正常流量的Hurst參數(shù)與檢測流量的Hurst參數(shù)差值小于0.2,則該時間段的網(wǎng)絡流量為正常流量;否則,應當對該時段的TCP報文完整性做進一步的驗證。驗證結(jié)果如下:
表1第1列的內(nèi)容為異常時刻點,是由基于Hurst參數(shù)的異常檢測模型檢測出來的,其中包含了大部分的正確檢測結(jié)果和小部分的誤報時刻點。后面的列顯示的是TCP各類報文的數(shù)量統(tǒng)計值。標有記號的時刻點是進行TCP報文完整性驗證后得到新的異常時刻點。
表1 TCP報文完整性驗證結(jié)果Tab.1 Result of TCP message integrity
通過建模驗證實驗得出,對一些超過閾值的準異常點,經(jīng)過報文完整性驗證后發(fā)現(xiàn)其仍然不符合TCP連接和斷開時的協(xié)議規(guī)則,可以斷定這些時間點存在異常流量,很可能是網(wǎng)絡遭到入侵后的反應;而對于另外一些時間點,雖然經(jīng)過網(wǎng)絡自相似檢測以后被確認為異常點,但是從TCP協(xié)議的角度分析,其滿足正常通信時報文的完整性,很可能是突變的正常流量或是其他原因造成的正常流量。因此,這些流量不應當被視為異常流量。
從實驗的最終結(jié)果可以發(fā)現(xiàn),通過采用TCP報文完整性驗證的方法,模型在不顯著提高算法時間復雜度的基礎上,檢測率相比基于自相似指數(shù)模型有了明顯的提高。
實驗二 為了對模型做進一步的驗證,實驗選用真實的網(wǎng)絡數(shù)據(jù)流進行異常檢測。模型通過Sniffer軟件從校園網(wǎng)服務器上采集流量數(shù)據(jù),集中在星期一的早上網(wǎng)絡繁忙時進行,仍采用10 s為一個統(tǒng)計單位,持續(xù)監(jiān)測30 min。檢測數(shù)據(jù)集包含2個高峰正常流量,異常流量部分使用模擬軟件向測試服務器發(fā)起DOS攻擊形成,攻擊共有8次,每次2 min。對該測試數(shù)據(jù)集采用上述相同的步驟進行TCP流的異常檢測分析,最后與小波Hurst參數(shù)模型進行比較,結(jié)果如表2所示。
表2 實驗結(jié)果對比Tab.2 Comparision of two experiments
從表2可以看出,模型在檢測異常流量時能正確地區(qū)分突變正常流量和異常流量,有效地降低誤報率,準確率較高。
通過2組實驗驗證了本文模型的有效性,分別從異常流量部分和突變正常流量部分進行了對比驗證。實驗結(jié)果進一步說明,本方法在對TCP流進行異常檢測時能有效地區(qū)分突變正常流量和異常流量。
通過對網(wǎng)絡流量的檢測分析,討論了一種面向TCP流的異常檢測方法,該方法能夠在有限系統(tǒng)資源的情況下,以較快的速度保存與維護網(wǎng)絡流的概要統(tǒng)計信息,并利用該統(tǒng)計信息實現(xiàn)對網(wǎng)絡異常和入侵行為的檢測,改善了以往模型直接對數(shù)據(jù)流進行統(tǒng)計分析而導致檢測效率低的狀況。由于該模型根據(jù)網(wǎng)絡流量的自相似性和基于TCP建立連接與斷開連接時報文完整性來檢測TCP流是否出現(xiàn)異常,因此在保證較高運算效率的同時,有效解決了對突變正常流量與異常流量進行區(qū)分的問題,降低了模型的誤檢率。
理論分析與實驗驗證的結(jié)果顯示,該方法能夠有效地檢測DDoS、掃描等攻擊行為,并且具有較高的檢測率和較低的誤檢率,因此能夠較好地應用于網(wǎng)絡異常檢測。
[1]肖志新,楊岳湘,楊 霖.基于小波技術的網(wǎng)絡異常流量檢測與實現(xiàn)[J].計算機科學,2006,33(10):116-118.
[2]俞 研,郭山清,黃 皓.基于數(shù)據(jù)流的異常入侵檢測[J].計算機科學,2007,34(5):66-71.
[3]張小明,許曉東,朱士瑞.基于Hurst指數(shù)方差分析的DDoS攻擊檢測方法[J].計算機工程,2008,34(14):149-151.
[4]KRISHNAMURTHY B,SEN S,ZHANG Y,et al.Sketch-Based Change Detection:Methods,Evaluation,and Applications[C]//Proc of the ACM SIGCOMM Internet Measurement Conf.New York:ACM Press,2003:234-247.
[5]金澈清,錢衛(wèi)寧,周傲英.流數(shù)據(jù)分析與管理綜述[J].軟件學報,2004,15(8):1172-1180.
[6]ARASH PARTOW.General Purpose Hash Function Algorithms[EB/OL].[2012-07-01].http://www.partow.net.
[7]張朝霞,劉耀軍.有效的哈希沖突解決辦法[J].計算機應用,2010,30(1):2965-3004.
[8]任勛益,王汝傳,王海艷,等.基于自相似檢測DDOS攻擊的小波選擇[J].南京航空航天大學學報,2007,39(5):588-592.
[9]DARPA.DARPA 1999 Intrusion Detection Evaluation[EB/OL].[2013-06-09].http://www.ll.mit.edu/mission/communications/cyber/CSTcorpora/ideval/data/1999data.html.