鄧軍 薛輝
摘要 最近跟蹤發(fā)現(xiàn)目前現(xiàn)有網(wǎng)絡協(xié)議異常檢測技術(shù)只是對常見的協(xié)議進行檢測,具有一定的片面性,對DoS攻擊中的SYN Flooding攻擊無法檢測到.為了提高檢測性能的實用性和實時性,應用協(xié)作式方法將基于馬爾可夫鏈檢測法和均值評估法共同實現(xiàn)了協(xié)議異常檢測建模,分析了模型建立的過程并提出了模型系統(tǒng)架構(gòu).論述了在馬爾可夫鏈的基礎上建立異常檢測子模型以及如何使用均值評估法建立檢測模型.結(jié)果表明該模型對應用層的多種協(xié)議和傳輸層TCP協(xié)議進行異常檢測以及對SYN Flooding攻擊檢測效果明顯.該算法不僅具有一定的理論創(chuàng)新,還具有較強的實用價值.
關(guān)鍵詞入侵檢測;拒絕服務攻擊;SYN Flooding攻擊;協(xié)議異常檢測;馬爾可夫鏈;數(shù)據(jù)包
中圖分類號TP393文獻標識碼A文章編號10002537(2015)01005806
目前入侵檢測(Intrusion detection)技術(shù)取得了很大的發(fā)展,其中最具代表性的就是網(wǎng)絡協(xié)議異常檢測技術(shù),該技術(shù)在商業(yè)領域使用比較廣泛.其基本原理是針對協(xié)議的使用行為建模,如果有偏離此模型的行為都可認為是入侵行為.技術(shù)較成熟的有基于馬爾可夫[1]、基于神經(jīng)網(wǎng)絡和基于遺傳算法[2]3種協(xié)議異常檢測技術(shù).其中第一種技術(shù)在入侵檢測領域應用最廣泛,檢測效果也非常顯著,但誤報率太高.國內(nèi)當前具有代表性的是文獻[3]和由湖南大學秦拯教授2013年研發(fā)的國家發(fā)改委信息安全系列產(chǎn)品.前者主要論述一種分布式防御系統(tǒng)的建模過程,該模型針對應用層的多種協(xié)議和傳輸層TCP協(xié)議的異常檢測能力較強,但對未知的攻擊檢測能力有限且實時檢測不夠;后者主要解決如何將多種算法(主要算法在文獻[4]和文獻[5])集成在一起,共同完成協(xié)議異常檢測.作者作為后者課題組成員,最近跟蹤發(fā)現(xiàn)該系統(tǒng)只是對常見的協(xié)議進行檢測,具有一定的片面性,對DoS攻擊中的SYN Flooding攻擊無法檢測到且時效性也差,很難在實踐中發(fā)揮應有的效果.基于上述原因,為了提高檢測性能的實用性和實時性,本課題組決定對以上幾種典型算法模型進行綜合和改良,形成一種新的協(xié)作式網(wǎng)絡協(xié)議異常檢測算法模型.
本文首先分析算法設計的基本思路,然后提出本次建模的體系架構(gòu),重點論述該算法中各子模型的設計以及關(guān)鍵模塊是如何改進的.最后通過實驗檢測算法模型對協(xié)議異常檢測的有效性.
目前入侵檢測(Intrusion detection)技術(shù)取得了很大的發(fā)展,其中最具代表性的就是網(wǎng)絡協(xié)議異常檢測技術(shù),該技術(shù)在商業(yè)領域使用比較廣泛.其基本原理是針對協(xié)議的使用行為建模,如果有偏離此模型的行為都可認為是入侵行為.技術(shù)較成熟的有基于馬爾可夫[1]、基于神經(jīng)網(wǎng)絡和基于遺傳算法[2]3種協(xié)議異常檢測技術(shù).其中第一種技術(shù)在入侵檢測領域應用最廣泛,檢測效果也非常顯著,但誤報率太高.國內(nèi)當前具有代表性的是文獻[3]和由湖南大學秦拯教授2013年研發(fā)的國家發(fā)改委信息安全系列產(chǎn)品.前者主要論述一種分布式防御系統(tǒng)的建模過程,該模型針對應用層的多種協(xié)議和傳輸層TCP協(xié)議的異常檢測能力較強,但對未知的攻擊檢測能力有限且實時檢測不夠;后者主要解決如何將多種算法(主要算法在文獻[4]和文獻[5])集成在一起,共同完成協(xié)議異常檢測.作者作為后者課題組成員,最近跟蹤發(fā)現(xiàn)該系統(tǒng)只是對常見的協(xié)議進行檢測,具有一定的片面性,對DoS攻擊中的SYN Flooding攻擊無法檢測到且時效性也差,很難在實踐中發(fā)揮應有的效果.基于上述原因,為了提高檢測性能的實用性和實時性,本課題組決定對以上幾種典型算法模型進行綜合和改良,形成一種新的協(xié)作式網(wǎng)絡協(xié)議異常檢測算法模型.
本文首先分析算法設計的基本思路,然后提出本次建模的體系架構(gòu),重點論述該算法中各子模型的設計以及關(guān)鍵模塊是如何改進的.最后通過實驗檢測算法模型對協(xié)議異常檢測的有效性.
圖2中,數(shù)據(jù)包捕獲器負責捕獲設定條件的各種網(wǎng)絡數(shù)據(jù)包傳入給數(shù)據(jù)分流器,數(shù)據(jù)分流器負責按照數(shù)據(jù)包的報頭所對應的端口號分別傳遞給各自的協(xié)議會話重組模塊,重組應用層會話數(shù)據(jù)流,提供比如HTTP、FTP、TELNET和SMTP等會話過程(本文僅重點描述FTP協(xié)議,其他協(xié)議異常檢測方法類似).協(xié)議會話重組后,傳遞給各基于馬爾可夫鏈的協(xié)議異常檢測模型.由于該模型無法檢測到SYN Flooding攻擊,所以再將被檢測的協(xié)議交給基于均值評估法協(xié)議異常檢測模型,檢測是否有SYN Flooding攻擊.兩者形成互補,避免以前的單獨檢測.協(xié)議檢測完成后交分類器,分類器負責分析該報文是正常還是異常,若是異常,則提交報警器報警.下文就兩者如何協(xié)同進行分述.
3馬爾可夫鏈協(xié)議異常檢測算法改良
3.1馬爾可夫鏈
馬爾可夫過程最顯著的特征就是無后效性.具體是指在隨機過程中,設在T時刻的狀態(tài)為S1,那么在T+1時刻所處狀態(tài)S2有且僅與T時刻的S1有關(guān),而與此過程的T時刻前發(fā)送的狀態(tài)都不相關(guān),這些離散的時間集和狀態(tài)集就認為是一個馬爾可夫鏈[3].
為此可建立馬爾可夫鏈數(shù)學模型,設隨機變量序列{F(n),n=1,2,…,j,…,n}是馬爾可夫鏈的狀態(tài)空間,j是一個離散值,設過程F(n)=F(tn)為狀態(tài)集{s1,s2,…,sj, …}的任意值,如果在任意時刻n,以及任意狀態(tài)s1,s2,…,si,sj,有下面概率公式成立:
P{Fn=Si|Fn-1=s1,…,F(xiàn)1=s1}=P{Fn=Fn-1=si}=Pij(n-1,n).
則稱{F(n),n=1,2,…}為一個馬爾可夫鏈.Pij(n-1,n)為n-1時刻的一步轉(zhuǎn)移概率.
3.2馬爾可夫鏈協(xié)議算法的改進
3.2.1數(shù)據(jù)樣本改進以前的馬爾可夫鏈協(xié)議算法所能檢測到的數(shù)據(jù)樣本空間不大,僅一天內(nèi)的網(wǎng)絡流量,這種統(tǒng)計的結(jié)果值肯定與實際值有偏差.因此,本文采用MITLincoln實驗室的DARPA1999[9]數(shù)據(jù)檢測法評估數(shù)據(jù),這些評估數(shù)據(jù)包含兩個星期的網(wǎng)絡流量.第一周是正常狀態(tài)下的網(wǎng)絡數(shù)據(jù)流量,第三周是數(shù)據(jù)包中含有攻擊性的網(wǎng)絡數(shù)據(jù)流量.雖然樣本空間增大,必然加重服務器的負荷,但是可增加一個數(shù)據(jù)庫服務器單獨進行數(shù)據(jù)處理.這樣建立的算法檢測模型通過實踐證明更能反映正常狀態(tài)下實際網(wǎng)絡中的協(xié)議使用情況.
3.2.2數(shù)據(jù)包標識化調(diào)整一般來說,一個TCP數(shù)據(jù)包的標志位可用圖3來標識.
圖3中如果TCP首部標志字段的值為000010,表示SYN位置為l,將其轉(zhuǎn)換成相應十進制的值為2,那么可以用2來標識這個數(shù)據(jù)包.同理,圖4中如果TCP首部標志字段的值為000011,表示SYN和ACK都置1,那么相應的十進制數(shù)的值為3,就用3來標識這種類型的數(shù)據(jù)包,這樣TCP的數(shù)據(jù)包表示的數(shù)據(jù)范圍為[0,26-1],但必須說明的是并不是在此范圍的數(shù)都是合法的.
按該圖4計算出的十進制數(shù)肯定和圖3計算出的值不同,但這些十進制數(shù)只不過是對TCP每種數(shù)據(jù)包進行標識而已,所以并不影響算法的建立.
圖5FTP狀態(tài)轉(zhuǎn)換圖
Fig.5FTP state transition diagram
3.2.3狀態(tài)轉(zhuǎn)換過程設置FTP在網(wǎng)絡傳輸時要經(jīng)歷3次握手過程,每個過程經(jīng)歷的數(shù)據(jù)包狀態(tài)也不同,主要是5個狀態(tài),根據(jù)圖4,分別是:1,2,3,6和34.我們可以繪制出FTP的狀態(tài)轉(zhuǎn)換圖,見圖5.首先用tcpdump[10]指令對DARPA 1999的評估數(shù)據(jù)進行協(xié)議分離(通過端口號),然后對FTP協(xié)議建立模型,圖中每個頂點代表狀態(tài), 頂點中間的數(shù)字代表調(diào)整后的TCP六位二進制數(shù)首部標志字段所對應的十進制數(shù), 頂點中第二個小數(shù)代表該狀態(tài)空間中每個狀態(tài)所占的比例,頂點之間的箭頭上的數(shù)字表示各個狀態(tài)之間可能發(fā)生的轉(zhuǎn)換概率.正常情況下隨著三次握手的變化,數(shù)據(jù)包首部標志字段也將發(fā)生變化.我們設定如果各狀態(tài)間轉(zhuǎn)移的概率在圖中設置值以內(nèi),則認為FTP正常,反之FTP流量為異常狀態(tài).
3.2.4馬爾可夫算法改進馬爾可夫鏈算法模型的核心是公式(1).公式中的Π=(pi)表示為圖5中各個狀態(tài)的最初概率值.E={e1,e2,…,eT}用來表示圖4中協(xié)議所對應的標志字段的標識序列值.
MAP(t)=πet∏T-1tAetet-1,(1)
將圖5的數(shù)據(jù)代入到公式(1)確實可以檢測到是否出現(xiàn)協(xié)議異常,但網(wǎng)絡流量數(shù)據(jù)包一旦出現(xiàn)SYN Flooding攻擊時,MAP(t)的值會很快逼近E,這樣系統(tǒng)無法判定是否出現(xiàn)了此類異常.但此類攻擊現(xiàn)在卻十分頻繁,為此特引入均值評估法到模型中來,并對其進行改進,與馬爾可夫模型共同協(xié)作完成協(xié)議異常檢測.
具體方法采用取MAP(t)對數(shù)值的方法,這樣數(shù)值可變得均勻而且密集,便于采樣和分析,見公式(2).
log(MAP(t))=log(πet)+∑T-1tlog(AetAet-1).(2)
首先由馬爾可夫鏈協(xié)議異常檢測模型進行初次檢測,分析得到FTP檢測數(shù)據(jù)報告;然后再在此基礎上作為數(shù)據(jù)源,對圖5中狀態(tài)2和3的狀態(tài)轉(zhuǎn)換的值作為公式(2)的輸入數(shù)據(jù),由公式(2)求得log(MAP(t))的值,評估系統(tǒng)是否受到攻擊,這種計算的代價比較小,并不太影響系統(tǒng)性能.然后管理員根據(jù)提供的閾值來判斷該協(xié)議是否受到SYN Flooding攻擊.最后由分類器負責分類處理報警.
4算法測試調(diào)整
4.1訓練過程
本次算法訓練建過程,見圖6所示.
圖6算法訓練過程
Fig.6Markov chain training modelling process
訓練數(shù)據(jù)來源按照DARPA提供的網(wǎng)絡數(shù)據(jù)獲得,并對其進行量化,根據(jù)本次算法建模體系架構(gòu),首先按照RCF的規(guī)范和圖4的設計對協(xié)議中的報文進行規(guī)范重組后,再按照圖5進行狀態(tài)轉(zhuǎn)換,每個狀態(tài)轉(zhuǎn)換的值作為本次檢測模型的訓練輸入數(shù)據(jù).
4.2測試數(shù)據(jù)設置
根據(jù)上文規(guī)定,本次測試采用DARPA第一周和第三周的數(shù)據(jù)作為測試樣本.
第一周部分測試數(shù)據(jù)為真實正常網(wǎng)絡環(huán)境下采集1 182 980個數(shù)據(jù)包.
第三周部分測試數(shù)據(jù)設計為有攻擊特性的數(shù)據(jù)包:
1) 取10 000個數(shù)據(jù)包,有6個報文含有DoS攻擊、10個含有probe;
2) 取33 690個數(shù)據(jù)包,有8個報文含有DoS攻擊、11個含有probe、2個R2L、2個U2R;
3) 取66 030個數(shù)據(jù)包,有15個報文含有DoS攻擊、11個含有probe、2個R2L、5個U2R.
定義公式(3)為t(小時)時刻數(shù)據(jù)流量值與最近t-1時刻數(shù)據(jù)流量值之間的差值.對FTP協(xié)議異常檢測時,設定閾值為2.
D(t)=logMAP(t)-logMAP(t-1).(3)
測試環(huán)境在網(wǎng)絡負載500 Mb/s局域網(wǎng)下進行,使用一臺intel 2.8G、2G內(nèi)存,且安裝了linux9.0軟件作為服務器,另一臺為數(shù)據(jù)庫服務器,用于及時更新協(xié)議規(guī)則庫,共同測試算法程序.實驗測試結(jié)果見圖7和圖8.
圖7正常情況下log(MAP(t))和D(t)變化情況
Fig.7FTP flow log(MAP(t)) and D(t) changes in normal circumstances
圖7測試結(jié)果顯示log(MAP(t))值的范圍基本接近直線,D(t)的曲線波峰值集中在閾值2以下,實驗表明第一周系統(tǒng)流量正常.
當使用第三周含有攻擊性數(shù)據(jù)包時,由圖8可知在每次出現(xiàn)協(xié)議異常時log(MAP(t))的值就下降一次,圖中顯示一共出現(xiàn)了5次,在D(t)的曲線也顯示說明在每次受到攻擊時波峰立刻出現(xiàn)較大波動,明顯高于閾值2.由此可以判定該段時間內(nèi)出現(xiàn)了5次協(xié)議異常,實驗表明系統(tǒng)第三周出現(xiàn)了異常.當然閾值的大小設定有很大關(guān)系,需要管理員根據(jù)實際情況設定適當?shù)闹?測試過程中如果大于規(guī)定閾值都認為是出現(xiàn)了協(xié)議異常.由此可以得出結(jié)論,本次算法建模是有效的.
圖8異常情況下log(MAP(t))和D(t)變化情況
Fig.8FTP flow log(MAP(t)) and D(t) changes in abnormal circumstances
5結(jié)束語
本文提出的基于協(xié)作的網(wǎng)絡協(xié)議異常檢測算法建模過程,是在分析幾種典型的協(xié)議異常檢測模型的基礎上對其進行改良,采用協(xié)作式的方法提高了協(xié)議異常檢測能力.不僅對應用層常見的協(xié)議(如HTTP、FTP、TELNET)異常進行有效的檢測,對DoS攻擊中的SYN Flooding攻擊也具有很好的檢測效果,此外、本次算法建模還具有較好的擴展性,實施時采用組件技術(shù)即可完成,對同類或同層協(xié)議可對模型進行橫向擴展,對其他類型的檢測方法進行眾向擴展即可.對于協(xié)議規(guī)則庫采用在線部署的方式,可以避免協(xié)議規(guī)則的滯后性,提高了模型的實時檢測能力.因此算法不僅具有一定的理論創(chuàng)新,還具有較強的實用價值.但是該算法模型中閾值大小值仍然取決于管理員的經(jīng)驗和人為因素,如何避免或減少人工的取值是我們以后重點需要解決的任務.
參考文獻:
[1]尹清波,張汝波,李雪耀.基于線性預測與馬爾可夫模型的入侵檢查技術(shù)研究[J].計算機學報, 2010,28(5):900907.
[2]李曉華,董曉梅,于戈.基于免疫原理的數(shù)據(jù)庫入侵檢測方法研究[J].小型微型計算機系統(tǒng), 2009,30(12):23432347.
[3]李勇征.具有免疫響應能力的入侵防御關(guān)鍵技術(shù)研究[D].秦皇島:燕山大學, 2013.
[4]李娜,秦拯,張大方.基于MarkovChain的協(xié)議異常檢測模型[J].計算機科學, 2011,31(10):6668.
[5]秦拯,李娜,張大方. Chisquare Distance在協(xié)議異常檢測中的應用[J].湖南大學學報:自然科學版, 2012,32(5):99103.
[6] 鄧軍.基于CMMI的企業(yè)軟件過程與質(zhì)量管理平臺設計[J].湖南師范大學自然科學學報, 2014,37(1):6368.
[7] GANAPATHY S, KULOTHUNGAN K, YOGESH P, et al. A novel weigthed fuzzy CMeans clustering based on Immune genetic algorithm for intrusion detection[J].Procedia Engin, 2012,38(10):17501757.
[8] YE N, CHEN Q, CONNIE M B. EWMA forecast of normal system activity for computer intrusion detection[J].IEEE Transactions on Reliability, 2011,53(4):557566.
[9] LEE C H, LIN C H, JUANG B H. A study on speaker adaptation of the parameters of continuous density hidden markov models[J].IEEE Trans on Signal Proc, 2011,39(4):806814.
[10]穆成坡.網(wǎng)絡入侵分析與入侵響應[M].北京:北京理工大學出版社, 2011.
(編輯陳笑梅)