趙靜,谷鵬飛,何亞南,延霞
(1. 深圳信息職業(yè)技術(shù)學(xué)院計(jì)算機(jī)學(xué)院,廣東 深圳 518172;2. 中廣核工程有限公司 核電安全監(jiān)控技術(shù)與裝備國(guó)家重點(diǎn)實(shí)驗(yàn)室,廣東 深圳 518000)
入侵檢測(cè)[1,2]通過監(jiān)控、分析網(wǎng)絡(luò)和系統(tǒng)的行為來(lái)發(fā)現(xiàn)是否存在違反安全策略的行為和被攻擊的跡象。與建立防火墻來(lái)防止攻擊的被動(dòng)防御方式不同,入侵檢測(cè)可以提前檢測(cè)出攻擊行為并進(jìn)行主動(dòng)防御,但是這依賴于低誤報(bào)率和高分類精度。入侵檢測(cè)技術(shù)可以分為誤用檢測(cè)和異常檢測(cè)[3]。傳統(tǒng)的異常檢測(cè)方法采用統(tǒng)計(jì)分析、機(jī)器學(xué)習(xí)等方法,使用網(wǎng)絡(luò)數(shù)據(jù)的統(tǒng)計(jì)特征訓(xùn)練模型來(lái)區(qū)分異常行為。該方法雖然可以識(shí)別未知攻擊,但是模型不夠精確導(dǎo)致高誤報(bào)率。協(xié)議異常檢測(cè)[4,5]是異常檢測(cè)的一個(gè)新技術(shù),該技術(shù)根據(jù)RFC(Request For Comments)文檔對(duì)協(xié)議建模,建立的模型準(zhǔn)確度高,比傳統(tǒng)的異常檢測(cè)模型更易于建立。
條件隨機(jī)場(chǎng)[6]在計(jì)算機(jī)視覺處理[7]、數(shù)據(jù)處理[8]和圖像處理[9]等領(lǐng)域的序列數(shù)據(jù)分析中得到了廣泛的應(yīng)用,但在入侵檢測(cè)領(lǐng)域還處于初始階段。Gupta等人[10]研究了條件隨機(jī)場(chǎng),提出層次式入侵檢測(cè)系統(tǒng)(Layer-Based Intrusion Detection System,LIDS),層次式方法極大的減少了計(jì)算成本,提高了算法的檢測(cè)效率,與其它檢測(cè)方法相比,對(duì)U2R類攻擊的檢測(cè)率提高了34.8%,對(duì)R2L類攻擊的檢測(cè)率提高了34.5%。Guo Yi[11]等人利用條件隨機(jī)場(chǎng)構(gòu)建了一個(gè)分類模型,該模型可以分類未標(biāo)記的網(wǎng)絡(luò)流量,以推斷是否存在針對(duì)BGP會(huì)話的LDoS攻擊,并達(dá)到了很好的檢測(cè)效果。
本文給出了基于CRF的協(xié)議異常檢測(cè)模型的訓(xùn)練和檢測(cè)過程,旨在使用該模型區(qū)分攻擊和正常網(wǎng)絡(luò)數(shù)據(jù),并在DARPA 1999年的數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試,最后給出結(jié)果和分析。
其中w~v表示w和v是G中的相鄰節(jié)點(diǎn),邊集合E表示結(jié)點(diǎn)之間的關(guān)系,那么(X, Y)為一個(gè)條件隨機(jī)場(chǎng)[6]。在給定觀測(cè)序列X的條件下,標(biāo)記序列Y的聯(lián)合分布為:
公式(2)給出了CRF模型的數(shù)學(xué)表達(dá)式,從中可以看出節(jié)點(diǎn)i處的后驗(yàn)概率包含,同時(shí)利用了節(jié)點(diǎn)i和與i相鄰節(jié)點(diǎn)的標(biāo)記,因此CRF能夠表達(dá)上下文信息。不同于馬爾科夫隨機(jī)場(chǎng)(Markov Random Field,MRF),CRF不需要考慮各個(gè)特征的分布,因此還具有利用多個(gè)特征的能力。
在協(xié)議異常檢測(cè)中,將網(wǎng)絡(luò)數(shù)據(jù)包作為觀測(cè)序列X,每個(gè)數(shù)據(jù)包Xi對(duì)應(yīng)一個(gè)標(biāo)記yi,標(biāo)記該數(shù)據(jù)包是正常還是異常,每個(gè)數(shù)據(jù)包有兩個(gè)特征:Flag和Frequency,如圖1所示。
圖1 用條件隨機(jī)場(chǎng)描述特征之間的關(guān)系Fig.1 Relationships between features represented by CRF
(1) 觀測(cè)序列X:每個(gè)觀測(cè)序列對(duì)應(yīng)一個(gè)連接,序列中Xi與連接中的數(shù)據(jù)包一一對(duì)應(yīng),觀測(cè)序列的長(zhǎng)度等于所對(duì)應(yīng)連接的長(zhǎng)度N,
(3) 特征集合F:我們選取數(shù)據(jù)包的標(biāo)志位和其頻率分布作為特征進(jìn)行建模,F(xiàn)=(Flag, Frequency),F(xiàn)lag表示數(shù)據(jù)包的標(biāo)志位,,F(xiàn)requency表示該標(biāo)志位在所屬連接中出現(xiàn)的頻率,
特征矩陣M:M是N× 2階的矩陣,第i行為數(shù)據(jù)包Xi的特征值,元素(i, j)表示數(shù)據(jù)包Xi的第j個(gè)特征的取值,。當(dāng)yi=0時(shí),第i行的特征值置0。
我們?cè)趯?shí)驗(yàn)中使用DARPA 1999數(shù)據(jù)集,首先根據(jù)端口號(hào)分離各個(gè)協(xié)議數(shù)據(jù),然后提取網(wǎng)絡(luò)數(shù)據(jù)包Xi首部中的標(biāo)志位,并按照[12]給出的數(shù)據(jù)包首部量化方法將標(biāo)志位轉(zhuǎn)化為十進(jìn)制數(shù)字,得到的數(shù)字為Xi的標(biāo)志位特征值。然后計(jì)算該標(biāo)志位在所屬連接中出現(xiàn)的頻率,作為Xi的頻率分布特征值。
以FTP協(xié)議為例,圖2給出FTP數(shù)據(jù)中一個(gè)連接的示例。該連接對(duì)應(yīng)觀測(cè)序列和標(biāo)記序列,在訓(xùn)練階段置yi=1。量化每個(gè)數(shù)據(jù)包首部的標(biāo)志位得到標(biāo)志位特征Flag=(1,3,2,6,2,2,6,6,34,2,34,2),通過計(jì)算每個(gè)標(biāo)志位的頻率分布,進(jìn)而得到頻率特征Frequency=(1,1,3,3,3,3,2,2,1,1,1,1)。
圖2 FTP數(shù)據(jù)連接的示例Fig.2 An example of FTP connections
為了更好的描述標(biāo)志位之間的聯(lián)系,我們使用滑動(dòng)窗口(ω= 7)代替連接的實(shí)際長(zhǎng)度來(lái)計(jì)算某個(gè)標(biāo)志位的出現(xiàn)次數(shù),從而反映標(biāo)志位的上下文信息,其中ω=7是一個(gè)完整連接的最短長(zhǎng)度。表1給出觀測(cè)序列X的特征矩陣M。
表1 觀測(cè)序列X的特征矩陣Tab.1 Feature matrix M
計(jì)算CRF模型參數(shù)時(shí),我們采取L-BFGS訓(xùn)練算法(Limited-memory Broyden-Fletcher-Goldfarb-Shanno, L-BFGS)[13],L-BFGS已被證明適合于處理大規(guī)模問題,因此在入侵檢測(cè)中處理海量網(wǎng)絡(luò)數(shù)據(jù)時(shí)有一定的優(yōu)勢(shì)。L-BFGS只要求提供似然函數(shù)的一階導(dǎo)數(shù),使用以前的梯度和修正值來(lái)近似曲率值的二階方法。給定訓(xùn)練數(shù)據(jù)的一組樣本集合,對(duì)數(shù)-似然函數(shù)可以表示為:
訓(xùn)練過程如圖3所示,具體的訓(xùn)練算法如下:
步驟2.計(jì)算梯度向量?θ:
如果k<K,取出一個(gè)訓(xùn)練序列Xk,k=k+1;否則,轉(zhuǎn)(3)。
根據(jù)Xk構(gòu)建CRF模型,用θ計(jì)算前向向量α和后向向量β,修正?θ。
用公式(3)計(jì)算對(duì)數(shù)似然函數(shù)L(θ)。
圖3 CRF模型的訓(xùn)練過程Fig.3 The training process of CRF models
步驟3.計(jì)算參數(shù)向量θ:將梯度向量?θ和L(θ) 代入L-BFGS算法器,得到修正后的θ。當(dāng)滿足L-BFGS算法的停止條件或超過最大迭代次數(shù)時(shí),轉(zhuǎn)步驟4;否則轉(zhuǎn)步驟2。
步驟4. 輸出θ。
圖4給出了具體的檢測(cè)過程,包括如下五個(gè)步驟:
步驟1. 根據(jù)端口號(hào)對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分離,得到所需的協(xié)議數(shù)據(jù)流。
步驟3. 量化連接中數(shù)據(jù)包的標(biāo)志位,并計(jì)算出現(xiàn)頻率,生成特征矩陣M。
對(duì)觀測(cè)序列中每個(gè)數(shù)據(jù)包Xi,模型都給出標(biāo)記Yi,因此對(duì)觀測(cè)序列X對(duì)應(yīng)的連接計(jì)算D':
其中n為連接中被標(biāo)記為正常的數(shù)據(jù)包的個(gè)數(shù),N為連接中數(shù)據(jù)包總數(shù)。
步驟5. 設(shè)定閾值K,比較閾值K和D'。如果,則該連接是正常的,否則是異常行為。
圖4 CRF模型的檢測(cè)過程Fig.4 The detection process of CRF models
我們采用DARPA 1999檢測(cè)數(shù)據(jù)集對(duì)以上檢測(cè)方法的性能進(jìn)行了實(shí)驗(yàn),用查準(zhǔn)率(Precision),查全率(Recall),準(zhǔn)確度(Accuracy),F(xiàn)度量(F-Value)和誤報(bào)率作為衡量標(biāo)準(zhǔn),并且這些衡量標(biāo)準(zhǔn)在計(jì)算時(shí)不需要考慮訓(xùn)練和檢測(cè)數(shù)據(jù)集的大小,定義如下:
其中TN是被模型分類為正常的正常數(shù)據(jù),TP是被模型分類為異常的異常數(shù)據(jù),F(xiàn)N是被模型分類為正常的異常數(shù)據(jù),F(xiàn)P是被模型分類為異常的正常數(shù)據(jù),β用來(lái)衡量查準(zhǔn)率和查全率,在本實(shí)驗(yàn)中設(shè)為1。FPR表示誤報(bào)率。
表2 FTP協(xié)議的CRF模型實(shí)驗(yàn)結(jié)果Tab.2 The experimental results of CRF model for FTP
表2給出了FTP協(xié)議的CRF模型對(duì)不同種攻擊的實(shí)驗(yàn)效果,其中CRF對(duì)DoS類攻擊的檢測(cè)效果最好,準(zhǔn)確度達(dá)到了98.58%,查準(zhǔn)率和查全率分別為97.86%和96.32%,F(xiàn)度量的值為97.08%,誤報(bào)率不到1%;其次是對(duì)Probe類攻擊的檢測(cè),多數(shù)衡量標(biāo)準(zhǔn)的取值都達(dá)到了90%以上,查全率89.43%,誤報(bào)率達(dá)到了1.19%;CRF模型對(duì)R2L類攻擊的檢測(cè)率要小于其它兩種攻擊,誤報(bào)率也達(dá)到了2.84%。R2L攻擊是入侵者非法獲取系統(tǒng)的信息,冒充有效賬戶進(jìn)入系統(tǒng)的一系列行為,檢測(cè)這種攻擊需要同時(shí)檢測(cè)數(shù)據(jù)的網(wǎng)絡(luò)特征和主機(jī)特征,但在本實(shí)驗(yàn)中我們只對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行檢測(cè),因此對(duì)此類攻擊的檢測(cè)效果低于其它兩類攻擊。
表3 CRF模型的實(shí)驗(yàn)結(jié)果Tab.3 The experimental results for CRF models
表3給出了三種協(xié)議的CRF模型對(duì)不同種攻擊的實(shí)驗(yàn)效果,三種CRF模型對(duì)檢測(cè)數(shù)據(jù)的正確分類達(dá)到90%以上,其中FTP協(xié)議的CRF模型的準(zhǔn)確度最高,達(dá)到97.16%;FTP協(xié)議和HTTP協(xié)議的CRF模型能夠有效檢測(cè)到異常數(shù)據(jù),并且將正常數(shù)據(jù)判斷為異常的情況較少,使得精確度都達(dá)到92%以上;FTP協(xié)議的CRF模型將正常數(shù)據(jù)判斷為異常的情況最少,誤報(bào)率是1.5%,該模型對(duì)異常數(shù)據(jù)的正確判斷能力也要高于其它兩種模型,查全率達(dá)到92.22%;HTTP協(xié)議和SSH協(xié)議的CRF模型雖然準(zhǔn)確度都達(dá)到90%以上,但是誤報(bào)率也超過了8%,說明模型對(duì)正常數(shù)據(jù)的分類能力要低于FTP協(xié)議的CRF模型??傊?,F(xiàn)TP協(xié)議的CRF模型的性能要高于其它兩種協(xié)議的模型。因?yàn)樵谟?xùn)練和檢測(cè)數(shù)據(jù)集中,F(xiàn)TP協(xié)議數(shù)據(jù)最多,包含的攻擊數(shù)據(jù)在種類和數(shù)量上也高于其它兩種協(xié)議數(shù)據(jù),因此在訓(xùn)練和檢測(cè)時(shí),F(xiàn)TP協(xié)議的CRF模型的各種性能普遍高于其它兩種協(xié)議。
表4 CRF模型和HMM的檢測(cè)率Tab.4 The detection rate for the two detection models
表4給出了三種協(xié)議的CRF模型和HMM模型的檢測(cè)率,從中可以看出,三種協(xié)議的CRF模型的檢測(cè)率都要高于HMM模型的檢測(cè)率。在訓(xùn)練HMM模型時(shí),對(duì)于FTP協(xié)議HMM只需模擬1,2,3,6,34這五個(gè)可見狀態(tài),而建立HTTP協(xié)議和SSH協(xié)議的HMM模型時(shí)則分別增加可見狀態(tài)8(RST)和38(FIN+PSH+ACK),但是這兩個(gè)狀態(tài)在連接中出現(xiàn)概率遠(yuǎn)遠(yuǎn)小于其它幾個(gè)狀態(tài),所以HMM模型準(zhǔn)確性也隨之降低。這導(dǎo)致了FTP協(xié)議的HMM模型的檢測(cè)率要高于其它兩種協(xié)議。
圖5 一個(gè)HTTP協(xié)議的連接示例Fig. 5 An example of HTTP connections
圖5所示給出了訓(xùn)練數(shù)據(jù)中一個(gè)HTTP協(xié)議的連接片段,對(duì)應(yīng)的標(biāo)志位特征序列為(SYN,ACK+PSH, ACK, ACK+FIN)和(SYN, ACK, RST, ACK,ACK+FIN)。為便于解釋,設(shè)狀態(tài)1,狀態(tài)2,狀態(tài)3和狀態(tài)4為中間狀態(tài)(實(shí)際上并不存在)。從SYN通過ACK可到達(dá)狀態(tài)1和狀態(tài)2,那么P(1|ACK, SYN)= P(2|ACK, SYN) = 0.5。狀態(tài)轉(zhuǎn)移到1或2時(shí),因?yàn)橛?xùn)練數(shù)據(jù)中出現(xiàn)過多次ACK+PSH,RST很少出現(xiàn),那么在HMM中從狀態(tài)2轉(zhuǎn)移到狀態(tài)4的概率要遠(yuǎn)遠(yuǎn)大于從狀態(tài)1轉(zhuǎn)移到狀態(tài)3的概率。而且HMM為有向圖模型,在用Viterbi算法推導(dǎo)到當(dāng)前狀態(tài)為止的最佳路徑時(shí),不考慮之后的狀態(tài)及其標(biāo)記概率。但CRF模型有效利用多個(gè)特征,同時(shí)考慮標(biāo)志位特征和其出現(xiàn)頻率,并加入遠(yuǎn)距離約束,避免了HMM的獨(dú)立性假設(shè);采用無(wú)向圖模型,對(duì)整個(gè)標(biāo)記序列求解聯(lián)合概率,在整個(gè)序列范圍內(nèi)歸一化,較HMM具有更合理的數(shù)學(xué)理論基礎(chǔ),同時(shí)也避免了因求解局部觀察值概率所帶來(lái)的標(biāo)記偏置問題。
本文介紹了條件隨機(jī)場(chǎng)的基本概念和原理,提出一種基于條件隨機(jī)場(chǎng)的協(xié)議異常檢測(cè)模型。這種方法將連接中的數(shù)據(jù)包作為觀測(cè)序列,量化數(shù)據(jù)包首部的標(biāo)志位,計(jì)算標(biāo)志位在連接中的出現(xiàn)頻率作為觀測(cè)序列的兩個(gè)特征,模型的訓(xùn)練和檢測(cè)使用DARPA 1999年的數(shù)據(jù)集,實(shí)驗(yàn)結(jié)果驗(yàn)證了所建立模型的準(zhǔn)確性,同基于隱馬爾科夫模型的檢測(cè)方法相比,提出的方法在各個(gè)衡量標(biāo)準(zhǔn)上都要高于后者。