胡 陽 , 余翔湛, 李 凱
(哈爾濱工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 哈爾濱 150001)
隨著城市無線局域網(wǎng)和第四代移動通信蜂窩數(shù)據(jù)網(wǎng)絡(luò)覆蓋度的不斷擴大,移動數(shù)據(jù)網(wǎng)絡(luò)終端設(shè)備用戶數(shù)目的不斷增加[1],移動數(shù)據(jù)網(wǎng)絡(luò)終端設(shè)備用戶對基于互聯(lián)網(wǎng)的即時通訊服務(wù)的需求已經(jīng)尤顯迫切,即時通訊軟件的用戶數(shù)目正呈現(xiàn)著快速增長的態(tài)勢,研發(fā)即時通訊軟件的廠商也在陸續(xù)增加,即時通訊軟件的數(shù)目在近幾年間正日漸繁多。不同即時通訊軟件由于其功能和性能上的不同設(shè)定,目前已有的TCP/IP上的應(yīng)用層協(xié)議并不能完全滿足開發(fā)的需要,因此,研發(fā)即時通訊軟件的廠商大多選擇自行研發(fā)私有協(xié)議。由于即時通訊軟件的種類各異,而各家研發(fā)廠商又趨向于使用自行設(shè)計的私有協(xié)議,導(dǎo)致目前被廠商使用的即時通訊軟件私有協(xié)議的數(shù)目已然跡近龐大,并且各種協(xié)議也未能建立統(tǒng)一的標準。
由于網(wǎng)絡(luò)管理、網(wǎng)絡(luò)服務(wù)質(zhì)量保證、隱私保護、輿情監(jiān)控管理、國防等目的推動[2],需要對即時通訊軟件進行有效的監(jiān)管??紤]到即時通訊軟件沒有采用公開的已有協(xié)議,而是使用了私有協(xié)議,并且沒有公開協(xié)議的具體信息,因此為了對即時通訊軟件形成系統(tǒng)完善的監(jiān)管,就需要對私有協(xié)議進行檢測識別與分析。
在網(wǎng)絡(luò)流量較大或能夠提供用于流量分類的包數(shù)量有限的情況以及在流量的早期識別分類時,不能將每個流的所有數(shù)據(jù)包都用于流量分類識別,只能使用有限的數(shù)據(jù)包進行流量識別。在數(shù)據(jù)包有限的情況下,并不是包的數(shù)量越多分類效果越好,因而還要對包的數(shù)量與分類效果之間的關(guān)系展開研究。
協(xié)議的安全性決定了即時通訊服務(wù)的安全性,為了挖掘即時通訊服務(wù)可能存在的安全漏洞,需要分析協(xié)議在攻擊下的工作狀態(tài)。采用形式化的方法對即時通訊協(xié)議進行描述,并將攻擊行為轉(zhuǎn)化為網(wǎng)系統(tǒng)結(jié)構(gòu)的調(diào)整,通過對網(wǎng)的分析來研究討論協(xié)議安全性,可以對協(xié)議狀態(tài)實現(xiàn)充分的檢驗,從而避免了人工分析的不確定性和局限性。
在網(wǎng)絡(luò)流量超出常規(guī)的情況下,為每個流提供大量數(shù)據(jù)包用于分析會導(dǎo)致內(nèi)存的可觀消耗引起系統(tǒng)總體性能的下降。這種情況下,需要對包數(shù)限定范圍內(nèi)的數(shù)據(jù)包進行流量檢測分析。在流量傳輸?shù)脑缙陔A段分類時,為了能夠盡早識別現(xiàn)有流量,提高系統(tǒng)的分析識別速度,需要僅通過早期的數(shù)據(jù)包來研究流量分類[3]。上述2個條件下的分類需求都對分類時使用的包數(shù)目制定了限制,在包數(shù)受限條件下進行流量分類時,需要分析當(dāng)分類效率達到最高的包數(shù)目。
互信息是信息論中提出的用于度量隨機變量之間相關(guān)性的信息量,即一個隨機變量X能夠給另一隨機變量Y提供的信息量[4]。互信息已廣泛用于特征選取、圖像識別、語音識別、生物特征識別等領(lǐng)域。互信息的計算公式為:
(1)
若變量X和變量Y并非離散取值,即變量X和變量Y是連續(xù)的,則可將求和轉(zhuǎn)化為二重積分運算:
(2)
本文使用捕獲的微信在發(fā)送文字消息、發(fā)送圖片消息、語音呼叫、視頻呼叫四種功能下的網(wǎng)絡(luò)數(shù)據(jù)流量作為流量檢測的樣本,將這4種功能下的數(shù)據(jù)流分別作為4種不同類型的數(shù)據(jù)集。在捕獲的流量中,只選擇載荷不為零的數(shù)據(jù)包。
互信息分析結(jié)果如圖1所示。文字消息和圖片消息的前兩個包的互信息比語音呼叫和視頻呼叫的包的互信息要高,語音呼叫和視頻呼叫的互信息相差不足0.1。這意味著前兩個包并不能為流量識別分類帶來足夠的信息,而對于2~4個數(shù)據(jù)包的互信息分析中,文字消息和圖片消息的結(jié)果有了顯著的提高。文字消息的8~9個數(shù)據(jù)包為流量識別提供了較高價值的信息,圖片消息的7~8個數(shù)據(jù)包為流量識別提供了較高價值的信息,語音呼叫的6~7個數(shù)據(jù)包為流量識別提供了較高價值的信息,視頻呼叫的數(shù)據(jù)包相比其余3種功能的數(shù)據(jù)包較為不同,共有19~20個數(shù)據(jù)包為流量識別提供了較高價值的信息。
圖1 互信息分析結(jié)果
本文對即時通訊流量進行分類所使用的機器學(xué)習(xí)分類器有5類,分別為貝葉斯分類器、元分類器、規(guī)則分類器、決策樹以及支持向量機。其中,貝葉斯分類器是基于貝葉斯理論的分類器,目前正流行應(yīng)用于機器學(xué)習(xí)領(lǐng)域中。本文使用了貝葉斯網(wǎng)絡(luò)以及樸素貝葉斯分類器來對流量進行識別。元分類器應(yīng)用Bagging算法[5]以及AdaBoost算法[6]來構(gòu)建分類能力較強的分類器。Bagging算法首先利用訓(xùn)練集來訓(xùn)練弱分類器,通過多次學(xué)習(xí)得到分類能力較強的分類器。AdaBoost算法則通過將多個不同的弱分類能力分類器使用相同的訓(xùn)練集訓(xùn)練之后,集合而形成分類能力強的分類器。規(guī)則分類器使用一定策略建立分類規(guī)則,之后依據(jù)規(guī)則對流量進行分類。本文使用了OneR和PART規(guī)則分類器對流量來設(shè)計生成識別分類。決策樹也可稱作統(tǒng)計分類器。C4.5、樸素貝葉斯樹、隨機森林[7]算法是業(yè)界公認的典型決策樹算法,本文使用上述決策樹算法對流量進行識別分類。支持向量機也可稱為有監(jiān)督的機器學(xué)習(xí)算法,在分類領(lǐng)域已獲得了大規(guī)模運用。支持向量機在分類和回歸這兩類研究中均已獲得比較好的效果。本文采用上述5類、共10種分類器進行流量的分類,分別為貝葉斯網(wǎng)絡(luò)、樸素貝葉斯、支持向量機、Adaboost、Bagging、OneR、PART、NB樹、C4.5、隨機森林。
圖2為文字消息流量分類的精確度,而與其對應(yīng)的ROC結(jié)果即如圖3所示。由圖2、圖3中可以看出,前2~3個數(shù)據(jù)包很明顯不能為流量分類提供足夠的作用,而隨著包的數(shù)量從4增加到20,各個分類器的ROC結(jié)果都呈現(xiàn)出持續(xù)的提高??偠灾蟛糠值姆诸惼鞫寄苓_到比較好的ROC結(jié)果,但是支持向量機和OneR分類器的結(jié)果卻未能臻至理想。在前述的精確性分析中,樸素貝葉斯分類器、霍夫丁分類器、隨機森林分類器的分類精確度都不高,但是ROC分析的結(jié)果卻較好,這就說明文字消息數(shù)據(jù)集中存在不均衡的數(shù)據(jù)。
圖2 分類精確度
圖3 ROC分析結(jié)果
研究中得到文字消息流量分類精確度檢驗的弗里德曼檢驗結(jié)果,詳見表1。弗里德曼檢驗結(jié)果顯示,包數(shù)為19的時候,精確度檢驗結(jié)果是最佳的。當(dāng)對p值采取對比研究,并調(diào)整p值時,包數(shù)10~12的p值比調(diào)節(jié)后的p值要低,包數(shù)15~17時p值也比調(diào)節(jié)后的p值要低,因此包數(shù)10~12和包數(shù)15~17是性能最佳的包數(shù)值。
為了更好地理解弗里德曼檢驗結(jié)果,本文使用了威爾科克森符號秩檢驗,可得檢驗結(jié)果見表2。從表2中可以看出包數(shù)為20的p值比包數(shù)為19的p值高不超過0.05,因此可以得出如下結(jié)論,即:包數(shù)為20時候的分類效果不會比19有顯著的差別。
表1 弗里德曼檢驗結(jié)果
表2 威爾科克森符號秩檢驗結(jié)果
從上述分析結(jié)果可以看出,即時通訊軟件早期的通訊數(shù)據(jù)包攜帶了足夠的信息,可供流量識別分類,除了支持向量機和OneR分類器以外,其余機器學(xué)習(xí)分類器都能通過早期的流量數(shù)據(jù)包進行有效的流量識別分類。但是前3個數(shù)據(jù)包在流量早期分類識別時不足以提供足夠的信息,只使用3個數(shù)據(jù)包進行分析無法得到理想的分類結(jié)果。通過分類精確度的分析結(jié)果,可以看出由于數(shù)據(jù)集中的不平衡數(shù)據(jù),有些情況下各種分類器能夠達到很高的分類能力,而有些情況下分類能力就并不顯著。支持向量機和OneR分類器在非零數(shù)據(jù)包增加的情況下,分類能力也未見到可觀改善,這2種分類器的性能表現(xiàn)與其余分類器的表現(xiàn)尤為不同,對于即時通訊軟件的早期流量分類識別來說并非有效選擇。在被測試的10種分類器中,隨機森林分類器的表現(xiàn)最為突出,是比較適合進行即時通訊軟件流量分類識別的分類器。
Petri網(wǎng)[8]可用三元組來表示,網(wǎng)N=(P,T;F)中,P被稱為庫所集,P中的元素為庫所,T被稱為變遷集,T中的元素為變遷,F(xiàn)被稱為流。對于網(wǎng)N=(P,T;F),正整數(shù)集N,ω為無窮,且ω=ω+1=ω-1=ω+ω,K:P→N∪{ω}被稱為網(wǎng)的容量函數(shù)。對于網(wǎng)N=(P,T;F),非負整數(shù)集N0,M:P→N0稱為N的一個標識的條件是?p∈P:M(p)≤K(p)。將(N,M)稱為標識網(wǎng)。對于網(wǎng)N=(P,T;F),W:F→N稱為網(wǎng)N上的權(quán)函數(shù),對(x,y)∈F,W(x,y)=W((x,y))被稱為(x,y)上的權(quán)。
將協(xié)議對應(yīng)的Petri網(wǎng)和攻擊過程用矩陣進行表示,Petri網(wǎng)的運行過程就可以轉(zhuǎn)化為矩陣的乘法運算。協(xié)議在攻擊前的狀態(tài)S0對應(yīng)的Petri網(wǎng)標識為M0,協(xié)議攻擊成功的狀態(tài)對應(yīng)的Petri網(wǎng)標識為Mc,根據(jù)Petri網(wǎng)標識可達的充分必要條件,如果存在序列M0[Y0]>M1[Y1]>M2[Y2]>M3…Mn[Yn]>Mc,其中n為正整數(shù),即這一序列是個有限的序列,針對協(xié)議的攻擊是可以成功的。
對于等式Mc=M0+AT×X,可以將其轉(zhuǎn)化為如下方程組:
(3)
β=x11α1+x21α2+x31α3+…+xn1αn
(4)
若存在不全為零的ki,i∈{1,2,3,…,n},使得:
(5)
則方程組的解是存在的。
上述的Petri網(wǎng)矩陣運算分析的過程,將協(xié)議轉(zhuǎn)化為網(wǎng)的形式,攻擊行為也轉(zhuǎn)化成了網(wǎng)的形式,將協(xié)議承受攻擊的情況轉(zhuǎn)化為網(wǎng)運行情況的分析。采用形式化方式分析協(xié)議的攻擊情況,一方面可以使得分析過程更加清晰,分析結(jié)果更加明確,另一方面也可以避免非形式化分析協(xié)議時狀態(tài)檢驗不全導(dǎo)致的分析不全面的可能性。矩陣運算是一種便于計算機操作的運算,同時可以使用GPU進行加速處理,在分析的性能上具有較好的表現(xiàn)[9]。
流量檢測分析總體結(jié)構(gòu)如圖4所示。系統(tǒng)共分為6個模塊,總控制模塊負責(zé)系統(tǒng)的整體運行控制。配置管理模塊將讀入并配置各模塊運行參數(shù)或?qū)⒏暮蟮呐渲眯畔⒋嫒肱渲梦募泄┫麓问褂?。包處理模塊向內(nèi)為系統(tǒng)提供待處理的數(shù)據(jù)包,向外負責(zé)與外部系統(tǒng)進行待處理數(shù)據(jù)包的獲取或響應(yīng)數(shù)據(jù)包的傳遞工作,包處理模塊為系統(tǒng)中需要使用通訊流量的模塊指定了統(tǒng)一的數(shù)據(jù)包接口。受限包數(shù)流量分類模塊使用前文所述的即時通訊流量分類方法,利用有限數(shù)目的數(shù)據(jù)包進行流量的分類識別。Petri網(wǎng)分析模塊對協(xié)議的攻擊行為進行模擬計算,通過網(wǎng)矩陣運算解存在性的分析進行網(wǎng)攻擊成功可能性的判斷。內(nèi)容還原模塊為將即時通訊流量中傳輸?shù)恼Z音、圖片等實體信息還原出來。
圖4 流量檢測分析系統(tǒng)
系統(tǒng)測試采用捕獲的CocoVoice即時通訊軟件的通訊數(shù)據(jù)包進行處理,流量檢測分析系統(tǒng)讀入捕獲的包含有CocoVoice文字、語音、視頻呼叫、音頻呼叫等4種功能的流量數(shù)據(jù),對流量進行識別分類,并從分類后的流量中提取出實際傳輸?shù)南嶓w。為了測試系統(tǒng)對包數(shù)選取的效果,限制系統(tǒng)用于分類可以使用的包數(shù),與其相對比的是直接使用分類器進行分類,包數(shù)限制為從2~20,共進行19次測試,對每次分類后的分類結(jié)果開展精確度計算。圖5即為系統(tǒng)對流量進行分類的精確度結(jié)果。結(jié)果顯示,本系統(tǒng)能夠根據(jù)可用于分類的最大包數(shù),動態(tài)地調(diào)整用于分類的包數(shù)目,保證系統(tǒng)整體分類精確度維持在一個比較穩(wěn)定的水平。而直接使用分類器進行分類,分類器的分類能力受到包數(shù)目變化的影響較大,無法達到穩(wěn)定的分類效果。
圖5 分類精確度
圖6為系統(tǒng)提取出的消息實體,說明系統(tǒng)成功地識別了CocoVoice即時通訊軟件的流量,內(nèi)容還原模塊將CocoVoice即時通訊流量中傳輸?shù)膶嶋H消息圖片還原出來,并保存成為圖片文件。
圖6 系統(tǒng)提取出的消息內(nèi)容
本文針對即時通訊軟件流量,從識別分類與協(xié)議分析兩個方面進行研究。在流量識別分析方面,提出了包數(shù)受限條件下的流量分類識別方法,通過互信息分析計算不同數(shù)量的數(shù)據(jù)包,為流量分類提供信息量,從信息量的角度來對包數(shù)受限條件下的流量分類提供包數(shù)選擇的依據(jù)。利用弗里德曼檢驗和威爾科克森符號秩檢驗兩種統(tǒng)計學(xué)檢驗方法以及基于混淆矩陣的分類性能評價方法對機器學(xué)習(xí)分類器的分類能力進行分析,并得出使各種機器學(xué)習(xí)分類器達到最佳分類狀態(tài)時用于檢測的包數(shù)量,從各種分類器與在不同包數(shù)下的分類性能角度,得出了有限包數(shù)下的流量分類的分類器以及包數(shù)選取。在協(xié)議分析方面,本文提出了基于Petri網(wǎng)的即時通訊協(xié)議攻擊可能性分析方法,使用Petri網(wǎng)描述即時通訊協(xié)議系統(tǒng),將攻擊者的攻擊轉(zhuǎn)化為插入Petri網(wǎng)中的元素,通過分析網(wǎng)標識的可達性對攻擊的可能性進行判斷。本文提出的包數(shù)受限條件下的流量分類識別方法在有限的數(shù)據(jù)包情況下,能夠選擇效率最高的數(shù)據(jù)包數(shù)目,使得分類器的分類能力與供分類的數(shù)據(jù)包數(shù)達到最佳的匹配?;赑etri網(wǎng)的協(xié)議分析使用了便于計算機計算的矩陣運算,通過形式化的分析對攻擊的可能性進行判斷,避免了人工分析的不全面性。