鄧 軍,薛 輝
(1.湖南科技職業(yè)學院,中國長沙 410004;2.湖南涉外經(jīng)濟學院,中國長沙 410205)
目前入侵檢測(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é)議異常檢測的有效性.
協(xié)議異常檢測建模實際上主要涉及到信息特征的選擇、模型的設計和方法匹配[6].檢測從網(wǎng)絡上收集到大量的信息,這些信息的選擇是按其數(shù)據(jù)包中表現(xiàn)的特征進行的;檢測模型的功能就是分析這些數(shù)據(jù)包中的行為是否有入侵行為;模型中的算法實際上就是將這些特征和行為與模型中正常行為特征進行比較和分析[7].這三個要素共同一起決定模型系統(tǒng)的性能.
設來自網(wǎng)絡采集到的數(shù)據(jù)表示為向量N=(x1,x2,…,xn),經(jīng)過預處理的數(shù)據(jù)表示為向量M=(y1,y2,…,ym),m <n 且m,n 都屬于自然數(shù).模型可表示為
F 表示為模型集合,由若干個子模型組成,因此建模的關(guān)鍵就是模型算法的選擇.建模流程如圖1所示.
首先數(shù)據(jù)采集是來自網(wǎng)絡的數(shù)據(jù)包和主機日志.由數(shù)據(jù)包捕獲器按設定的規(guī)則和標準捕獲相關(guān)數(shù)據(jù)包后,再傳給協(xié)議檢測模型進行分析,分析的依據(jù)是協(xié)議規(guī)則庫,分析的結(jié)論作為參數(shù)傳遞給系統(tǒng)管理模塊.管理模塊主要負責處理協(xié)議規(guī)則庫的配置、修改數(shù)據(jù)包捕獲的規(guī)則和分析協(xié)議異常情況,并將分析結(jié)果以告警的方式通知管理人員進行相關(guān)處理.為了克服以前協(xié)議規(guī)則庫的滯后性,本次建模采用在線部署的方式,分時段升級或更新協(xié)議規(guī)則庫,這樣可以大大提高模型的實時檢測能力,協(xié)議規(guī)則的制定和設計由管理人員根據(jù)實際檢測需要及時修改或增加協(xié)議規(guī)則庫.圖1 中的關(guān)鍵部分主要是協(xié)議檢測模型的改良設計.因此,本文主要從這方面進行分析.
圖1 建模流程圖Fig.1 Modelling flow diagram
在協(xié)議異常檢測中,主要是對正常狀態(tài)下的基于主機的系統(tǒng)行為或基于網(wǎng)絡的數(shù)據(jù)包兩種建模.文獻[7~9]中和以前的大多數(shù)的算法或模型都是對在正常狀態(tài)下利用系統(tǒng)調(diào)用進行建模,通過分析判斷該調(diào)用序列來判斷協(xié)議是否異常.本文則采用MITLincoln 實驗室DARPA1999[10]數(shù)據(jù)檢測法,通過馬爾可夫鏈分析網(wǎng)絡流量值與設計的閾值相比較和應用層不同協(xié)議對應的端口號不同為依據(jù)分類進行檢測,兩者一起協(xié)同建立系統(tǒng)模型.模型系統(tǒng)架構(gòu)見圖2所示.
圖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é)同進行分述.
馬爾可夫過程最顯著的特征就是無后效性.具體是指在隨機過程中,設在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)移概率.
圖2 模型體系架構(gòu)圖Fig.2 Model architecture diagram
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 首部標志字段Fig.3 TCP header field
為了較好地檢測到SYN Flooding 攻擊,將圖3 的TCP 首部的標識位進行調(diào)整,見圖4.
圖4 調(diào)整后的TCP 首部標志字段Fig.4 TCP header field after adjusting
圖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ù)包進行標識而已,所以并不影響算法的建立.
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é)議所對應的標志字段的標識序列值.
圖5 FTP 狀態(tài)轉(zhuǎn)換圖Fig.5 FTP state transition diagram
將圖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).
首先由馬爾可夫鏈協(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 攻擊.最后由分類器負責分類處理報警.
本次算法訓練建過程,見圖6所示.
訓練數(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ù).
根據(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.
測試環(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.7 FTP 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.8 FTP flow log(MAP(t))and D(t)changes in abnormal circumstances
本文提出的基于協(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):900-907.
[2]李曉華,董曉梅,于 戈.基于免疫原理的數(shù)據(jù)庫入侵檢測方法研究[J].小型微型計算機系統(tǒng),2009,30(12):2343-2347.
[3]李勇征.具有免疫響應能力的入侵防御關(guān)鍵技術(shù)研究[D].秦皇島:燕山大學,2013.
[4]李 娜,秦 拯,張大方.基于MarkovChain 的協(xié)議異常檢測模型[J].計算機科學,2011,31(10):66-68.
[5]秦 拯,李 娜,張大方.Chi-square Distance 在協(xié)議異常檢測中的應用[J].湖南大學學報:自然科學版,2012,32(5):99-103.
[6]鄧 軍.基于CMMI 的企業(yè)軟件過程與質(zhì)量管理平臺設計[J].湖南師范大學自然科學學報,2014,37(1):63-68.
[7]GANAPATHY S,KULOTHUNGAN K,YOGESH P,et al.A novel weigthed fuzzy C-Means clustering based on Immune genetic algorithm for intrusion detection[J].Procedia Engin,2012,38(10):1750-1757.
[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):557-566.
[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):806-814.
[10]穆成坡.網(wǎng)絡入侵分析與入侵響應[M].北京:北京理工大學出版社,2011.