摘 要:隨著互聯(lián)網(wǎng)科技的進一步革命,在它給我們帶來大量便利的同時,其引發(fā)的安全問題也一直讓眾多用戶感到頭疼?;诖耍紤]到隱馬模型(Hidden Markov Model,HMM)具有的模型理論透徹、算法成熟、分類器學習性能高等優(yōu)點,很多學者都曾研究過基于HMM的主機入侵檢測。常規(guī)的方法是以系統(tǒng)調(diào)用作為模型觀測值,以程序中出現(xiàn)的系統(tǒng)調(diào)用總數(shù)作為模型狀態(tài)數(shù)。但由于訓練分類器的觀測序列過長會導致模型參數(shù)不易收斂等問題。文章將提出一種基于數(shù)據(jù)為特征的網(wǎng)絡入侵檢測方式。
關鍵詞:入侵檢測;異常檢測;數(shù)據(jù)特征;隱馬爾可夫模型
中圖分類號:TP393.08 文獻標識碼:A
Abstract: With the further revolution,the Internet technologies bring us more convenience,as well as some problems bothering users all the time so that considering the HMM has numerous advantages,a lots of scholars have studyed the host intrusion detection based on HMM.The conventional measure is that viewing system calls as observed values and regarding the number of system calls existing in the processes the number of model's status.The model's parameters are hard to converge due to the long observed value sequence so that the article illustrates a measure of network intrusion detection based on the data feature's analyses.
Key words: intrusion detection; anomaly detection; data feature; hidden markov model
1 引言
網(wǎng)絡入侵檢測作為一種重要的網(wǎng)絡安全防衛(wèi)系統(tǒng),主要是通過對計算機用戶的某些行為信息進行分析來檢測出對網(wǎng)絡的入侵。其存在的意義在于能夠分析用戶的行為和操作,然后高效的將正常行為和異常行為進行區(qū)分,并且對后者采取相應的策略。這樣可以讓網(wǎng)絡管理員更有效地審計和評估當前網(wǎng)絡的安全系數(shù),從而提高分析效率。
從目前應用現(xiàn)狀來看,應用于網(wǎng)絡入侵檢測的常規(guī)方案可以分為兩大類:誤用檢測(Misuse Detection)和異常檢測(Anomaly Detection)。
(1)誤用檢測:將所有已知的帶有入侵傾向的數(shù)據(jù)特征全部提取出然后存儲在一個特征數(shù)據(jù)庫內(nèi)。每當有數(shù)據(jù)包被檢測時,系統(tǒng)會將該數(shù)據(jù)包的相關特征與數(shù)據(jù)庫內(nèi)的特征進行匹配,凡是相符的都會引起檢測系統(tǒng)的阻止并報警。
(2)異常檢測:先利用訓練集對檢測系統(tǒng)進行學習或者訓練,讓其始終適應于正常的行為模式。此后每當有數(shù)據(jù)造成系統(tǒng)模型脫離正常行為模式的時候,就會自發(fā)的檢測到該異常并進行阻止和分析。
其中,誤用檢測雖然無需利用大量的訓練集來訓練系統(tǒng)模型,但是該方法十分依賴于對特征數(shù)據(jù)庫的更新,并且只能對已知的攻擊做出判斷,無法應對新型或是變種的攻擊,所以誤用檢測的“漏檢率”是相對高的。同樣的,異常檢測是通過對正常的行為進行建模,然后將所有使得正常輪廓發(fā)生偏離的行為都視為異常。這雖然在一定程度上彌補了誤用檢測的缺點,但若是訓練好的模型參數(shù)不夠精確的話,往往就會將正常的網(wǎng)絡行為判斷成攻擊行為,導致“過檢率”偏高。
2 系統(tǒng)設計
現(xiàn)如今,HMM作為一種描述離散時間內(nèi)觀測數(shù)據(jù)非常強大的統(tǒng)計學模型,在較多的研究領域都得到了很好的運用。本文研究的基于HMM的網(wǎng)絡入侵檢測模型旨在對帶有正常標簽和異常標簽的網(wǎng)絡數(shù)據(jù)進行區(qū)分并采取相應策略。總共分為訓練和檢測兩大模塊[1]。大體流程如圖1和圖2所示。
設計思路是利用對HMM分類器的訓練讓其一直處于正常模式的工作。在訓練好系統(tǒng)后,往后的數(shù)據(jù)包但凡有令系統(tǒng)脫離正常輪廓的趨勢(將對網(wǎng)絡數(shù)據(jù)的特征分析出的概率值與閾值進行比較),則將其標上異常標簽,留給管理員做進一步分析。若分析結(jié)果為誤判,則將其數(shù)據(jù)特征交給訓練模塊讓其完善模型參數(shù)的估計,以避免將來的類似誤判。系統(tǒng)的實現(xiàn)依賴于如何解決好HMM的學習問題和估值問題。前者在于對系統(tǒng)訓練的參數(shù)進行調(diào)整,后者在于求出數(shù)據(jù)集對于正常狀態(tài)的偏離度,一旦偏離過大則認為該數(shù)據(jù)存在異常。
2.1 訓練模塊
2.1.1 HMM參數(shù)表達
HMM是一系列可相互轉(zhuǎn)移的有限狀態(tài)的集合,這些狀態(tài)的轉(zhuǎn)移是不可見的,間接地通過觀察序列來描述,它是一個雙重隨機過程。HMM可以定義為={ N,M,A,B,π},參數(shù)的具體表達為幾種情況。
(1)模型的隱含狀態(tài)數(shù)為 N:這些狀態(tài)滿足了馬爾可夫性質(zhì),是馬爾可夫模型中實際所隱含的狀態(tài)。這些狀態(tài)無法通過直接觀測而得到,用S={ S1 ,S2 ,... ,SN }表示。
(2)模型的觀察值個數(shù)為 M:在模型中與隱含狀態(tài)相關聯(lián),可通過直接觀測而得到,用V={ V1 ,V2 ,... ,VM }表示。(可見符號的數(shù)目不一定和隱含狀態(tài)的數(shù)目一致)。
(3)狀態(tài)轉(zhuǎn)移概率矩陣 AN*N={ aij }:描述了HMM模型中各個狀態(tài)之間的轉(zhuǎn)移概率。其中aij=P(qt+1=Sj | qt=Si)= P(qt+1=Sj ,qt=Si)/ P(qt=Si);aij≥0, aij=1(j的范圍是1到N)。表示在t時刻狀態(tài)為Si的條件下,在t+1時刻狀態(tài)是Sj的概率。
(4)狀態(tài)輸出概率矩陣 BN*M={ Bj(k) }:Bj(k) = P(Vk at t | qt=Sj),表示模型在t時刻、隱含狀態(tài)是Sj的條件下,觀察值為Vk的概率。
(5)狀態(tài)初始概率矩陣π:表示隱含狀態(tài)在初始時刻t=1的概率矩陣。例如t=1時:P(q1=S1)=P1 ,P(q1=S2)=P2 ,P(q1=S3)=P3 ,... ,P(q1=SN)=PN,則初始狀態(tài)概率矩陣π=[ P1 ,P2 ,P3 ,... ,PN ]。
(6)觀測序列O={ O1 ,O2 ,... ,OT },表示觀測到的觀測值序列,T為序列長度,其中Oi屬于集合V。
2.1.2 系統(tǒng)訓練
曾在此領域研究過的其他學者通過對被攻擊者發(fā)送的響應包進行分析,得出了一個著名結(jié)論:大多數(shù)攻擊使用TCP包(94%),然后是UDP包(2%)和ICMP包。因此這里只考慮對TCP包建立HMM模型。
現(xiàn)設定所用模型的S空間只包含兩種狀態(tài):S0=0表示正常,S1=1表示異常,所以N=2。
根據(jù)對TCP包的6個標志位(URG、ACK、PSH、RST、SYN、FIN)進行下述方式的編碼[2]。通過將其二進制數(shù)轉(zhuǎn)換成十進制數(shù),就可以得到一系列的離散值序列。我們將這些離散值視為HMM的觀測值,則有M=26=64。
編碼方式:Oi=32*URG+16*ACK+8*PSH+4*RST+2*SYN+1*FIN
狀態(tài)轉(zhuǎn)移概率矩陣AN*N=[ a00=1,a01=0,a10=1,a11=0],表示在正常的行為中,無論當前時刻是正常狀態(tài)還是異常狀態(tài),在下一時刻都將以概率1轉(zhuǎn)為正常狀態(tài)。
關于狀態(tài)輸出概率矩陣BN*M={ Bj(k) },考慮到TCP協(xié)議的工作方式我們可以知道,通過上述編碼方式得到的64種觀測值中存在著大量的非法標志組合(即在正常網(wǎng)絡行為中通常不會出現(xiàn),但一旦出現(xiàn)該標志組合,就可以視其為異常行為或攻擊行為)。非法標志位組合的特點可以參考八點原則:(1)所有標志位都為0;(2)SYN和FIN同時被置1;(3)SYN和RST同時被置1;(4)FIN和RST同時被置1;(5)FIN位被置1,但ACK位沒有被置1;(6)PSH位被置1,但ACK位沒有被置1;(7)URG位被置1,但ACK位沒有被置1;(8)URG不能和PSH標志位同時使用。
將那些無效觀測值過濾后,最終能得到正常的觀測值數(shù)只剩下{2,4,16,17,18,20,24,25,26}一共9個。假設:在正常情況下這9個正常觀測值的輸出概率Bj(2),Bj(4),Bj(16),Bj(17),Bj(18),Bj(20),Bj(24),Bj(25),Bj(26)服從均勻分布,其它55個非法值的概率為無窮?。划惓顟B(tài)則反過來,55個非法值概率服從均勻分布,而Bj(2),Bj(4),Bj(16),Bj(17),Bj(18),Bj(20),Bj(24),Bj(25),Bj(26)這9個概率為無窮小。
初始狀態(tài)概率矩陣為π=[1,0],表示在初始時刻數(shù)據(jù)包是正常數(shù)據(jù)包的概率為1。
針對系統(tǒng)的訓練問題,可以采用Baum-Welch算法[3]來對參數(shù)組進行重估計從而得到λ'。再將λ'代替,調(diào)用算法不停的調(diào)整最新參數(shù),直到'收斂為止,其收斂條件為P(O |λ') < P(O |λ)。需要注意的是,在訓練過程中采取的數(shù)據(jù)包一定要是正常的不含攻擊行為的數(shù)據(jù)包,因為只有這樣才能保證我們所得的觀測序列是不含攻擊的觀測序列。
2.2 檢測模塊
待參數(shù)的訓練值趨于穩(wěn)定后,可以利用測試集來進行檢測。通過對數(shù)據(jù)的標志位進行量化和編碼,能夠得到一組觀測序列O={ O1 ,O2 ,... ,OT }。此時運用前向算法[4]來計算概率P(O |λ'),該概率表示在已知最新參數(shù)集'的條件下,出現(xiàn)觀測序列O的條件概率值。若該概率值很小,則說明觀測序列脫離正常輪廓的可能性很大,即所對應的網(wǎng)絡數(shù)據(jù)的特征帶有的攻擊傾向性就很大。
那么問題來了,到底這個概率值要多小才判斷成是異常數(shù)據(jù)包呢?這其中涉及到一個很重要的點——閾值的確定[5]。因為其直接影響了系統(tǒng)檢測的準確率。閾值的確定過程需要結(jié)合訓練模塊訓練的多次結(jié)果??梢杂靡韵鹿絹磉M行選取:Δ=min{ P(L |λ') }。其中L表示觀測序列O中長度為的子序列,將每一次計算的概率保存下來,然后將子序列后移一位并繼續(xù)計算概率值。直到整個觀測序列中最后一個子序列被訓練完。然后選取這些概率中的最小值為整個檢測系統(tǒng)的閾值。最終比較閾值和概率P(O |λ')的大小,如果P(O |λ')≥Δ。則認為該序列對應的數(shù)據(jù)包是正常數(shù)據(jù)包,否則將該數(shù)據(jù)包標記為異常,等待人工分析,看是否系統(tǒng)出現(xiàn)過度檢測。
3 結(jié)束語
本文所設計的方案雖然基于的是異常檢測,但卻能有效的解決“過檢率”太高的問題。檢測模塊對使系統(tǒng)脫離正常工作模式的異常數(shù)據(jù)包,會在阻止后記錄在網(wǎng)絡日志中以備系統(tǒng)管理員分析。若是入侵檢測系統(tǒng)真的產(chǎn)生了“過度檢測”行為,那么管理員會將該數(shù)據(jù)包進行特征分析,并且放入訓練模塊做進一步的參數(shù)重估計,以免往后類似的正常數(shù)據(jù)包再次被阻擋。
參考文獻
[1] 趙玉明.基于隱馬爾可夫模型的網(wǎng)絡入侵檢測系統(tǒng)研究 [D].2005,48-49.
[2] Estevez Tapiador J M,Garcia Teodoro P,Diaz Verdejo J E.Stochastic protocol modeling for anomaly based network intrusion detection [C] Proc of IEEE IWIA03.Piscataway,NJ:IEEE,2003:3-12.
[3] Rabiner L.A tutorial on hidden Markov models and selected applications in speech recognition [C] Proc of IEEE.San Francisco:Morgan Kaufmann,1990,267-296.
[4] Dempster A P,Laird N M,Robin D B.Maximum likelihood from incomplete data via the EM algorithm [J].Journal of the Royal Statistical Society,1977,39(1):1-38.
[5] 韓景靈.基于協(xié)議的隱馬爾可夫網(wǎng)絡入侵檢測系統(tǒng)研究[D].2007,21-22.
[6] 趙靜,黃厚寬,田盛豐.基于隱Markov模型的協(xié)議異常檢測[J].計算機研究與發(fā)展,2010,47(4):621-627.
[7] 任幸東,王劍.基于隱馬爾可夫模型的滑窗寬度可變異常檢測[J].網(wǎng)絡空間安全,2015,07,33-37.
[8] 孫永強,徐昕,黃遵國.基于HMM的分布式拒絕服務攻擊檢測方法[J].微電子學與計算機,2006, 23(10):176-177.
[9] 李冠廣,王占杰.貝葉斯分類器在入侵檢測中的應用 [J].網(wǎng)絡空間安全.2010,09,63-66.
作者簡介:
潘秋羽(1994-),男,漢族,四川成都人,西安工程大學計算機科學學院,碩士研究生;主要研究方向和關注領域:智能信息處理。