摘 要:目前的協(xié)議識別技術(shù)主要是基于端口映射或靜態(tài)報文特征匹配的。隨著網(wǎng)絡(luò)協(xié)議的發(fā)展,一些新的協(xié)議采用動態(tài)端口進(jìn)行通信或不具有明顯的靜態(tài)報文特征,且部分協(xié)議采用了加密技術(shù)。這使得傳統(tǒng)的識別技術(shù)準(zhǔn)確率大幅下降。針對傳統(tǒng)協(xié)議識別技術(shù)的局限性,這里提出一種基于隱馬爾可夫模型(Hidden Markov Model,HMM)的協(xié)議識別技術(shù)。它是一種基于統(tǒng)計特性的識別方法,選用對于加密不敏感的特征如包的大小、達(dá)到時間等來實現(xiàn)協(xié)議的識別。實驗結(jié)果證明,與傳統(tǒng)識別技術(shù)相比,它能有效地提高協(xié)議識別的準(zhǔn)確率,并能用于加密條件下的協(xié)議識別。
關(guān)鍵詞:隱馬爾可夫模型;協(xié)議識別;特征選擇;Viterbi分類器
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2008)24-131-04
Technique of Protocol Identification Using Profile Hidden Markov Model
ZHU Shuyong,ZHANG Quan,TANG Chaojing
(Electronic Science and Engineering College,National University of Defence Technology,Changsha,410073,China)
Abstract:Recently,protocol identification techniques are mostly based on port mapping or static characters matching.With the development of network protocols,some new protocols use dynamic pots or messages without obvious static characters,or some protocols are encrypted.These make the accuracy with traditional identification techniques significantly reduced.Considering the limits of traditional techniques,this paper proposes a protocol identification technique using Profile Hidden Markov Model (HMM).It is based on statistic characteristics and selects those features that remain intact after encryption such as packet sizes,arrival times etc.Experiment results show that compared with traditional techniques,it can substantially increase recognition accuracy and can be applied in encrypted environment.
Keywords:hidden Markov model;protocol identification;feature selection;Viterbi classifier
1 引 言
目前常用的協(xié)議識別技術(shù)主要是基于端口映射表或靜態(tài)的報文特征來識別網(wǎng)絡(luò)報文所屬的協(xié)議類型[1],這樣做的依據(jù)是大多數(shù)操作系統(tǒng)和應(yīng)用軟件都是在假定RFC被嚴(yán)格遵守的情況下編寫的。在協(xié)議規(guī)范公開的同時已經(jīng)設(shè)定好該協(xié)議默認(rèn)使用的通信端口并且假定使用者們都會遵守這些規(guī)范。但是近年來,隨著網(wǎng)絡(luò)協(xié)議的發(fā)展出現(xiàn)了一批新型的協(xié)議,包括SIP(Session Initiation Protocol)和P2P(Peer to Peer Protocol)協(xié)議等,它們并不采用固定協(xié)議端口,而是在協(xié)議運動過程中動態(tài)地協(xié)商端口;此外,目前各種木馬、P2P軟件為躲避檢測都采用了一些特殊的處理方式[2],主要表現(xiàn)在:
(1) 不使用固定通信端口進(jìn)行通信;
(2) 復(fù)用公開端口進(jìn)行私有協(xié)議通信(比如QQ2006版開始實用80端口并且數(shù)據(jù)報中沒有明顯特征字串);
(3) 采用已知公開協(xié)議的傳輸工具(比如迅雷采用HTTP傳輸);
(4) 有些通信業(yè)務(wù)采用了加密技術(shù),這就使得特有的靜態(tài)特征無法進(jìn)行有效的提取。
以上這些特征都給協(xié)議的準(zhǔn)確識別帶來了困難。對于加密后的協(xié)議報文識別,某些技術(shù)將變得不再適用[3]。本文針對這些問題提出基于隱馬爾可夫模型的協(xié)議識別技術(shù)。實驗結(jié)果證明,這種技術(shù)能有效地解決上述的實際問題,比傳統(tǒng)的基于端口映射和靜態(tài)特征匹配協(xié)議識別技術(shù)具有較大的優(yōu)越性。
2 隱馬爾可夫模型(HMM)簡介
隱馬爾可夫模型是一種用參數(shù)表示的,用于描述隨機過程統(tǒng)計特性的概率模型[4],它是由馬爾可夫鏈[5]演變而來的。這里所說的隨機過程,一般都是有限長的隨機序列。它可能是一維的觀察值序列或編碼符號序列,也可以是多維的矢量序列。比如一個語音段(如詞、音素或短語)可以用一串特征矢量表示,這就是一個觀察矢量序列,如果把這一串矢量逐個地進(jìn)行矢量量化,每個矢量用一個編碼符號代表,這就變成了觀察符號序列。不管它是觀察矢量序列還是觀察符號序列,統(tǒng)稱觀察序列,記為O=o1o2…oT,它當(dāng)然是一種隨機序列。一個有N個狀態(tài)(記為S1,S2,…,SN)的HMM是由三元組參數(shù)λ={π,A,B}表示的用于描述一種隨機序列的統(tǒng)計特性的概率模型[9],其中:
(1) π=[π1,π2,…,πN]為初始分布,用于描述觀察序列O在t=1時刻所處狀態(tài)q1屬于模型中各狀態(tài)的概率分布,即:
πi=P(q1=Si),i=1,2,…,N
它當(dāng)然滿足:
∑Ni=1πi=1
(2) A={aij|i,j=1,2,…,N}為狀態(tài)轉(zhuǎn)移概率矩陣,這里只考慮一階HMM,當(dāng)前所處狀態(tài)qt只與前一時刻所處狀態(tài)qt-1有關(guān),即:
aij=P(qt=Sj|qt-1=Si,qt-2=Sk,…)
=P(qt=Sj|qt-1=Si)
它滿足:
∑Ni=1aij=1
(3) B為觀察序列O中任一觀察(它是隨機變量或隨機矢量在各狀態(tài)的觀察概率空間中的分布。這個分布有離散型HMM和連續(xù)型HMM兩類,分別相應(yīng)于離散和連續(xù),其分布分別為:
在離散HMM情況下,觀察序列為符號序列,B為一概率矩陣:
B={bj(k),j=1,2,…,N;k=1,2,…,M}
它滿足:
∑Ni=1bj=1
其中M為編碼符號集中符號的總數(shù),在用矢量量化編碼時,M就是碼書大小。
在連續(xù)HMM情況下,觀察序列為矢量序列(設(shè)維數(shù)為D),B就是N個D維的概率密度函數(shù)的集合B={bj(O),j=1,2,…,N}
其中O為觀察矢量空間中的任一矢量,每一個密度函數(shù)都滿足歸一的條件,即:
∫Ωjbj(O)dO=1
其中Ωj表示第j狀態(tài)的觀察概率空間,它可以是矢量O所在的全空間,也可以是其中的一個子空間或一個區(qū)域。以上就是隱馬爾可夫模型的完整的定義及說明。從這個定義可以看出,HMM與有限狀態(tài)的一階馬爾可夫鏈一樣地用初始分布、狀態(tài)轉(zhuǎn)移概率矩陣描述有限長隨機序列的統(tǒng)計特性,但它不同于馬爾可夫鏈由每一觀察即可確知當(dāng)前所處狀態(tài),而是由每一觀察僅能估算出當(dāng)前處于各種狀態(tài)的概率。這就是說,它具有雙重隨機性,是一種雙重隨機過程。
3 識別算法
本方法選用包的大小、包的到達(dá)時間等對加密不敏感的特征,利用隱馬爾可夫模型(HMM)對特征進(jìn)行建模,然后采用Viterbi分類器進(jìn)行分類。整個過程如圖1所示,分為3個階段:
(1) 數(shù)據(jù)采集和預(yù)處理;
(2) 特征選擇,建模和模型選擇;
(3) 實驗數(shù)據(jù)分類和識別器性能評估。
圖1 基于HMM的協(xié)議識別器建立過程
3.1 數(shù)據(jù)采集和特征選擇
對于每個截獲的TCP連接,按照每個包到達(dá)的時間順序記錄下連接中每個數(shù)據(jù)包的序列長度和到達(dá)時間。將包的到達(dá)方向編碼到包大小的符號位,因此編碼后從服務(wù)器到客戶端的包大小小于零,而從客戶端到服務(wù)器端的包大小大于零。有成果表明,對于非交互性協(xié)議,到達(dá)時間服從指數(shù)分布。而交互性的協(xié)議并不服從指數(shù)分布,其拖尾較長,可能更適合用對數(shù)正態(tài)分布。在到達(dá)時間獨立的條件下,包到達(dá)時間在不同延遲上的自相關(guān)函數(shù)會非常接近零,但是自相關(guān)函數(shù)為零并不意味著一定是獨立的。應(yīng)用層協(xié)議對于一定的延遲都表現(xiàn)出明顯的自相關(guān)特性。有文獻(xiàn)研究了包大小的自相關(guān)函數(shù),結(jié)果表明在一定的延遲上,對于同一次的網(wǎng)絡(luò)會話,包的大小也是明顯相關(guān)的,因此包大小也作為構(gòu)建識別模型時的一個特征。
3.2 HMM建模
圖1概括了建模的整個過程。給定一個訓(xùn)練序列的集合,首先構(gòu)建一個初始模型,在模型中狀態(tài)鏈的長度等于訓(xùn)練集中序列的平均長度(以包為單位)。每一步為所有包分配均勻概率的初始參數(shù)。
利用Baum-Welch算法迭代尋找使得訓(xùn)練序列模型似然函數(shù)最大化的HMM參數(shù)。應(yīng)用聚類算法重復(fù)進(jìn)行上面的過程來對一個給定的協(xié)議構(gòu)建多個HMM,然后將多個HMM合并為一個最終的混合模型。建立各種協(xié)議的識別模型是一項重要的工作,圖2是給出了用訓(xùn)練數(shù)據(jù)構(gòu)建HMM的一般過程。
圖2 對于訓(xùn)練數(shù)據(jù)構(gòu)建HMM的過程
如圖3所示,HMM模型的構(gòu)建可以用一個從左到右模型來很好的表征,圍繞2條長的并行隱式狀態(tài)鏈,每條鏈有TCP連接中的1個狀態(tài)。每個狀態(tài)以一定的概率發(fā)射1個符號,概率對應(yīng)于其在鏈中的位置,這些鏈中的狀態(tài)稱為“Match”狀態(tài),因為其符號發(fā)射的概率分布“匹配”于包的一般結(jié)構(gòu)。一般的HMM只有一個單一的“Match”狀態(tài)鏈,本方法采用2個“Match”狀態(tài)鏈。每個位置處的第二個“Match”狀態(tài)可以更好地表示TCP連接中的連續(xù)包的相關(guān)性。由于TCP利用滑動窗和握手機制來獲得可靠的數(shù)據(jù)傳輸,包的傳輸方向通常是與前一個包的傳輸方向非常相關(guān)的(正相關(guān)或負(fù)相關(guān))。因此“Server Match”狀態(tài)匹配從客戶端到服務(wù)器端所觀察到的數(shù)據(jù)包。例如,從“Client Match”狀態(tài)到“Server Match”的轉(zhuǎn)移表示觀察到了給定協(xié)議下從客戶端到服務(wù)器的數(shù)據(jù)傳輸。
圖3 每位置兩個“Match”狀態(tài)的HMM
用于描述同一協(xié)議的TCP連接中的變化,模型對于鏈中的每個位置都有2個額外的狀態(tài),一個稱為“Insert”,用于描述1個或多個額外包“插入”到另外的一個序列。另一個稱為“Delete”狀態(tài),用于描述在給定位置從序列中刪除一個通常的包。實際中,“Insert”狀態(tài)表示復(fù)制包和重新傳輸,而“Delete”狀態(tài)說明網(wǎng)絡(luò)中的包丟失或者被檢測器去除。兩類狀態(tài)也可以表示協(xié)議棧的高層中有關(guān)協(xié)議的變化。
3.3 模型修正
為迭代找出模型的合適長度,應(yīng)用一種啟發(fā)式的稱為“模型修正”的技術(shù)。模型修正是基于這樣一種思想,即鏈中所有位置都應(yīng)該表示一個序列中包的相同部分,“Match”狀態(tài)應(yīng)該表示一個給定位置中最典型的特性。同樣以訓(xùn)練集中長度等于平均包數(shù)目的模型開始,在每次迭代中,構(gòu)建和訓(xùn)練當(dāng)前長度的模型,然后檢查鏈中每個位置的4種狀態(tài)。如果“Insert”狀態(tài)是最可能的狀態(tài),意味著模型將失去訓(xùn)練集中的一些關(guān)鍵特性,這會在由鏈中給定位置的Match狀態(tài)表示的特性之前發(fā)生。為更好地捕捉到這種特性,將模型的長度增加1,反過來,如果“Delete”狀態(tài)是最有可能的狀態(tài),將當(dāng)前的長度減小。重復(fù)這個過程直到最大的步數(shù)或者直到當(dāng)前的長度不再變化。
3.4 Viterbi分類器
基于模型的分類器將完成的任務(wù)是,給定一個觀測序列Ο和一個集合C(集合中共有k類,模型為λ=λ1,λ2,…,λk,要找出c∈C中的哪一類,即c=class(O)。第一種分類器較為簡單,根據(jù)最大似然方法判斷屬于哪一種協(xié)議。就是選擇class(O)=arg maxc(O|λc),其中arg maxc表示O中產(chǎn)生最大似然值的類c[7]。第二類分類器跟第一類類似,用到了著名的Viterbi分類器算法,尋找對于一個給定的輸出序列O和λ最可能的狀態(tài)序列。Viterbi算法可以用于找出最可能的狀態(tài)序列(即Viterbi路徑),與之相關(guān)的概率為Pviterbi(O,λ)=maxSP(O,S|λ)。給定一個輸出序列O,Viterbi分類器對于每個模型λi中的序列找出Viterbi路徑,選擇產(chǎn)生最優(yōu)Viterbi路徑的模型,數(shù)學(xué)表達(dá)式可以表示為class(O)=arg maxcPviterbi(O,λc)。
3.5 多特征識別
如果將大小和時間信息融合為一個模型則可以進(jìn)一步提高識別性能,采用矢量量化技術(shù)將二維包數(shù)據(jù)變換為一個符號,從而可以利用統(tǒng)一類型的模型和技術(shù)同時處理大小和時間信息。矢量量化技術(shù)描述如下:給定每一個包的數(shù)據(jù)<到達(dá)時間,大小>,對時間進(jìn)行對數(shù)變換以減小其動態(tài)范圍,為時間和大小分配相等的權(quán)值,將<到達(dá)時間的對數(shù),大小>歸一化到<-1,+1>區(qū)間。
所建立的HMM模型對于不同的包要按照其傳輸方向區(qū)別處理。可以將數(shù)據(jù)包分為2類:客戶端到服務(wù)器和服務(wù)器到客戶端。然后對每個矢量集獨立利用k均值聚類算法,對于集合中的數(shù)據(jù)包找出一個代表性的矢量集或者碼字。對于一個有N個碼字的碼書的量化器,隨機選擇k=N/2個矢量作為聚類的中心,然后在每次迭代中,對于每個<到達(dá)時間、大小>矢量,找出其最近的中心,為相應(yīng)的聚類分配矢量。在每次迭代結(jié)束后重新計算每個中心,作為當(dāng)前分配給聚類的所有矢量的均值。當(dāng)從一個聚類移動到另一個聚類的矢量的一部分低于一定的門限時停止迭代。
對于2個包矢量集合聚類完成之后,將中心矢量的列表作為量化器的碼書。為量化一個包的矢量表示,找出離矢量最近的碼字,將包編碼為碼書中給定碼字的索引。在完成對于訓(xùn)練序列的矢量量化之后,就可以像上面一樣構(gòu)建離散的HMM,利用碼字?jǐn)?shù)目作為HMM的輸出符號表。在對測試序列進(jìn)行分類之前,同樣需要依據(jù)構(gòu)建序列碼書的方式對其進(jìn)行量化。
4 實驗結(jié)果
本實驗所采用的數(shù)據(jù)均來自于國防科技大學(xué)校園主干網(wǎng),由實驗室的高速網(wǎng)絡(luò)采包器采集。對TRACE的詳細(xì)描述請見表1(所指的流均為雙向流)。TRACE1被用來對模型進(jìn)行訓(xùn)練,以得出最符合的模型參數(shù)。TRACE2被用來對該模型的識別效果進(jìn)行驗證。
表1 實驗數(shù)據(jù)描述
流開始時間結(jié)束時間
TRACE12008-01-15 12:002008-01-15 13:00
TRACE22008-02-25 22:00 2008-02-25 23:00
流采集長度/B報文總數(shù)/GB流數(shù)/MB
TRACE1601.130.2
TRACE2 701.938.5
利用上述算法建模,然后用數(shù)據(jù)TRACE1對模型參數(shù)進(jìn)行訓(xùn)練,得到最佳的識別模型。在把數(shù)據(jù)TRACE2加密后,用傳統(tǒng)的基于端口映射和靜態(tài)特征匹配的方法進(jìn)行識別,其準(zhǔn)確率均在50%以下,而用該HMM模型技術(shù)進(jìn)行識別,識別結(jié)果見表2。
表2 協(xié)議識別結(jié)果
協(xié)議類別
識別率/%
ftpsmtpaimhttp none
ftp83.20.00.00.016.8
smtp2.596.50.00.20.8
aim1.32.681.90.014.2
http1.30.60.594.33.3
5 結(jié) 語
針對傳統(tǒng)協(xié)議識別技術(shù)的局限性,提出了一種基于隱馬爾可夫模型的協(xié)議識別技術(shù),并對如何建立準(zhǔn)確的HMM識別模型給出了詳細(xì)的闡述。該技術(shù)不僅對傳統(tǒng)的通信協(xié)議具有較高的識別準(zhǔn)確率,而且對于新的網(wǎng)絡(luò)應(yīng)用協(xié)議如SIP,P2P協(xié)議以及未知協(xié)議等仍能進(jìn)行準(zhǔn)確的識別。由于該技術(shù)選用包的大小、傳輸方向等對于加密不敏感的特征進(jìn)行建模,使它能有效地識別加密條件下的網(wǎng)絡(luò)應(yīng)用協(xié)議。與傳統(tǒng)的識別技術(shù)相比,具有較好的可用性與有效性。
參考文獻(xiàn)
[1]Charls Writht,F(xiàn)abian Monrose.HMM Profiles for Network Traffic Classification[J].VizSEC/DMSEC′04:Proceedings of the 2004 ACM Workshop on Visualization and Data Mining for Computer Security,2004:9-15.
[2]Sebasion Zander,Thuy Nguyen.Automated Traffic Classified Application Identification Using Machine Lerarning[A].In: Proceedings of the IEEE Conference on Local Computer Networks 30th Anniversary.2005.
[3]Matthew Gebski,Alex Penev,Raymond K Wong.Protocol Identification of Encrypted Network Traffic[A].In:Proceedings of the 2006 IEEE/WIC/ACM/ International Conference on Web Intelligence,2006 IEEE.2006
[4]Anonymized.HMM Profiles for Network Traffic Classification(Extended Abstract)[A].In: Proceedings of the 2004 ACM Workshop on Visualization and Data Mining for Computer Security.2004:9-15.
[5]Ye N.A Markov Chain Model of Temporal Behavior for Anomaly Detection[A].In:Proceedings of the IEEE Symposium on Security and Privacy.2002.
[6]陳亮,龔儉,徐選.應(yīng)用層協(xié)議識別算法綜述[J].計算機科學(xué),2007,34(7):73-75.
[7]Baum L E,Petrie T,Soules G.A Maximization of Technique Occurring in the Statistical Analysis of Probabilistic Functions of Markov Chains[J].Annals of Mathematical Statistics,1970,41(1):164-171.
[8]Sebanstian Zander,Thuy Nguyen,Grenville Armitage.Automated Traffic Classification and Application Identification using Machine Learning[A].In: Proceedings of the IEEE Conference on Local Computer Networks 30th Anniversary.2005.
[9]Schliep A,Schonhuth A,Steinhoff C.Using Hidden Markov Models to Analyze Gene Expression Time Course Data[J].In:Bioioformatics,2003,19(1):255-263.
[10]陳亮,龔儉,徐選.基于特征串的應(yīng)用層協(xié)議識別[J].計算機工程與應(yīng)用,2006,42(24):16-19,86.
[11]易克初,田斌,付強.語音信號處理[M].北京:國防工業(yè)出版社,2000.
[12]溫超,鄭雪峰,戚翔,等.基于流量分析的P2P協(xié)議識別方法的研究[J].微計算機應(yīng)用,2007,28(7):714-717.
作者簡介 朱樹永 男,1984年出生,河南濮陽人,碩士研究生。研究方向為網(wǎng)絡(luò)信息安全。
張 權(quán) 男,副教授,碩士生導(dǎo)師。主要研究方向為網(wǎng)絡(luò)協(xié)議與密碼技術(shù)。
唐朝京 男,教授,博士生導(dǎo)師。主要研究方向為網(wǎng)絡(luò)攻防技術(shù)。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文