文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.033
中文引用格式: 劉建明,,唐霞,,李龍. 基于機器學(xué)習(xí)的VoIP流量在線識別系統(tǒng)[J].電子技術(shù)應(yīng)用,2016,,42(8):133-137.
英文引用格式: Liu Jianming,,Tang Xia,Li Long. Real-time detection system of VoIP traffic based on machine learning[J].Application of Electronic Technique,,2016,,42(8):133-137.
0 引言
VoIP(Voice over Internet Protocol)業(yè)務(wù)成本低、部署方便,,在語音通信業(yè)務(wù)中的比例持續(xù)上升,,其發(fā)展帶來機遇的同時也給網(wǎng)絡(luò)安全運行帶來了巨大挑戰(zhàn)[1]。因此,,對VoIP業(yè)務(wù)進行管控非常重要,,高精度在線流量識別也成為眾多研究領(lǐng)域的熱點與難點。
目前,主流VoIP流量識別方法主要包括兩大類:基于流特征的VoIP流量識別與基于機器學(xué)習(xí)的VoIP流量識別,。文獻[2]最早利用流特征進行流量分類,,提出249種具體的流特征,并提供10組可用的流量數(shù)據(jù)集,。文獻[3]針對數(shù)據(jù)流中一段時間內(nèi)的數(shù)據(jù)包長和包時間間隔,,統(tǒng)計其分布范圍、均值,、中值與方差等特征作為VoIP流量識別的依據(jù),。上述文獻識別精度不高,基于流特征的識別方法對不同類型的網(wǎng)絡(luò)流量適應(yīng)性也較低,?;跈C器學(xué)習(xí)的識別方法主要集中于離線識別,對于在線VoIP流量識別的研究并不多[4-7],。文獻[4]實現(xiàn)了基于WEKA庫文件的Skype流量在線檢測工具,,但存在無netAI工具更新、無可視化界面,、算法單一等缺陷,。文獻[5]改進了支持向量機算法,能夠節(jié)省1/4的識別時間,,但仍然無法滿足在線識別的實時性要求,。文獻[6]基于流統(tǒng)計特征,利用機器學(xué)習(xí)算法構(gòu)建分類器模型,,系統(tǒng)在線識別精度為93%,。其不足之處在于,沒有研究在線識別系統(tǒng)的實時性,,并不是真正意義上的在線識別,。文獻[7]基于開源數(shù)據(jù)挖掘工具WEKA中的機器學(xué)習(xí)算法,針對特定應(yīng)用Skype提出并設(shè)計出一種基于決策理論的識別工具,,然而只能達到82%的精度,,無法滿足大流量環(huán)境下的高精度識別。從目前的研究成果來看,,在線識別的難點主要在兩方面:一是無法滿足較高實時性要求,,二是無法實現(xiàn)高精度識別。
針對以上問題,,本文設(shè)計了VoIP流量在線識別系統(tǒng),,不僅能實現(xiàn)實時在線識別,且識別精度高達到92%,。
1 VoIP流量在線識別系統(tǒng)
本文所設(shè)計的系統(tǒng)中,,數(shù)據(jù)流定義為兩個主機之間交換的連續(xù)數(shù)據(jù)包,。同一條流中所有數(shù)據(jù)包的五元組相同(五元組包括源地址、目的地址,、源端口,、目的端口和傳輸協(xié)議)。構(gòu)建訓(xùn)練集的過程需對數(shù)據(jù)包進行分流,,根據(jù)思科分流定義,,單條TCP流須包含完整語義的開始時刻(SYN)和結(jié)束時刻(FIN/RST),UDP流中兩個包之間的時間間隔不超過30 s[8],。
1.1 在線識別系統(tǒng)原理
在線識別系統(tǒng)分為離線分類器建模和在線識別,。其中,離線分類器建模如圖1所示,,預(yù)處理模塊對PCAP文件格式的數(shù)據(jù)集進行分流,,并轉(zhuǎn)化為WEKA工具所能識別的CSV文件格式,同時統(tǒng)計每個數(shù)據(jù)流的流特征構(gòu)建成訓(xùn)練集,。算法學(xué)習(xí)模塊采用Best first search算法和CSF算法去除候選特征中的冗余且不相關(guān)的流特征,,獲得最優(yōu)特征子集,再調(diào)用機器學(xué)習(xí)算法對訓(xùn)練集進行學(xué)習(xí)并搭建分類器模型,。最后,,通過相關(guān)指標評估獲得最優(yōu)分類器模型。
圖1 離線分類器框圖
如圖2所示,,本文所設(shè)計的在線識別系統(tǒng)建立在獲得離線分類器的基礎(chǔ)上,,提出JPcap邊抓包邊檢測機制,利用JPcap庫編寫探嗅器控制底層網(wǎng)卡抓取數(shù)據(jù)包,,同時分流模塊對數(shù)據(jù)包分流并統(tǒng)計流特征,。設(shè)定流量累積時間,每次達到閾值時間30 s,,將統(tǒng)計好的數(shù)據(jù)流作為測試集送入離線狀態(tài)下構(gòu)建好的分類器進行識別,,并將識別出的VoIP流量以IP地址的形式輸出到系統(tǒng)界面,動態(tài)顯示網(wǎng)絡(luò)中VoIP電話狀態(tài),。
圖2 在線識別系統(tǒng)
1.2 預(yù)處理模塊
預(yù)處理模塊在離線狀態(tài)進行,,為系統(tǒng)搭建分類器提供完整訓(xùn)練集。該模塊包括獲取數(shù)據(jù)集,、文件格式轉(zhuǎn)換與分流統(tǒng)計構(gòu)建訓(xùn)練集。
1.2.1 獲取數(shù)據(jù)集
使用Wireshark軟件抓取PC中運行的特定應(yīng)用類型流量獲取數(shù)據(jù)集,,通過配置交換機鏡像端口將抓取單個PC產(chǎn)生的流量擴展為整個局域網(wǎng)產(chǎn)生的流量,。同時使用文獻[4]中提到的Moore數(shù)據(jù)集與Tstat網(wǎng)[9]提供的Skype數(shù)據(jù)集。此外,,在數(shù)據(jù)集中新增PC-PHONE端的VoIP類型流量,,使系統(tǒng)同時具備PC-PC端與PC-PHONE端VoIP電話的識別能力。
1.2.2 文件格式轉(zhuǎn)換
Wireshark軟件數(shù)據(jù)包的存儲格式為PCAP格式。PCAP文件頭包括:數(shù)據(jù)鏈路層14 B包頭+20 B IP包頭+20 B TCP或UDP包頭,。預(yù)處理模塊通過分析PCAP文件頭信息,,編程實現(xiàn)五元組、時間戳及數(shù)據(jù)包長等流特征信息的提取,,并轉(zhuǎn)換為WEKA能識別的CSV文件格式,。
1.2.3 分流統(tǒng)計構(gòu)建訓(xùn)練集
首先在五元組相同且滿足思科分流定義的條件下,對Wireshark抓取的數(shù)據(jù)包進行分流,,利用文獻[2]提供的fullstats分流器,,在Linux系統(tǒng)中實現(xiàn)分流。完成數(shù)據(jù)包分流后,,統(tǒng)計數(shù)據(jù)流的相關(guān)流特征,,并將統(tǒng)計后的數(shù)據(jù)流作為最終訓(xùn)練集。
1.3 流特征選擇
文獻[2]提出了249種流特征,,若對每個特征進行統(tǒng)計,,將耗費大量的計算時間,成本過高,,且并不是所有流特征都適用于VoIP流量識別,,因此需要去除不相關(guān)且冗余的流特征,以達到提高模型精確度,,減少運行時間的目的,。本設(shè)計根據(jù)VoIP語音電話特有的通信屬性對其進行初步篩選,得出20個候選流特征再進行特征選擇,。特征選擇首先從候選特征集中產(chǎn)生一個特征子集,,然后用評價函數(shù)對該特征子集進行評價,將評價的結(jié)果與停止準則進行比較,,若評價結(jié)果比停止準則好就停止,,否則就繼續(xù)產(chǎn)生下一組特征子集,直到獲得評價最高的特征子集,。本文使用Best first search搜索算法從候選特征集中產(chǎn)生特征子集,,然后用CFS(Correalation-based Feature Selection)算法進行評估,得到12個相關(guān)性最好,、得分最高的特征子集,,如表1所示。
1.4 機器學(xué)習(xí)算法
本文著重研究C4.5決策樹算法,,為增強系統(tǒng)可擴展性,,另在系統(tǒng)中集成了樸素貝葉斯算法(NaiveBayes)與支持向量機算法(SVM)。
C4.5決策樹是一種經(jīng)典的分類與回歸算法,。決策樹的數(shù)據(jù)結(jié)構(gòu)由內(nèi)部節(jié)點和葉子節(jié)點組成,,內(nèi)部節(jié)點代表一個特征屬性,,葉子節(jié)點代表一個類別[10]。算法的處理過程分為以下幾個步驟:首先,,計算數(shù)據(jù)集D的經(jīng)驗熵H(D),,熵是一種不純度度量準則:
式中,pi是屬于第i類的概率,。其次,,計算特征A對數(shù)據(jù)集D的經(jīng)驗條件熵H(D|A):
進一步得出信息增益為:
信息增益比為:
式中HA(D)為屬性A的信息熵。依次選取信息增益比最大的特征Ag分割數(shù)據(jù)集D為Di,,將Di中最大的類作為子節(jié)點再遞歸調(diào)用得到子樹Ti,。最終經(jīng)過“悲觀剪枝”修剪決策樹得到損失函數(shù)最小的子樹。
樸素貝葉斯是基于貝葉斯定理與特征條件獨立假設(shè)的分類方法,。對于給定的訓(xùn)練集,,首先基于特征條件獨立假設(shè)學(xué)習(xí)輸入/輸出的聯(lián)合概率分布,再基于此模型,,對給定的輸入x,,利用貝葉斯定理求出后驗概率最大的輸出y。樸素貝葉斯的算法效率高,,是一種常用的分類算法,。
支持向量機是一種二分類模型,基本模型是定義在特征空間上的間隔最大的線性分類器,。其學(xué)習(xí)策略是間隔最大化,,可形式化為一個求解凸二次規(guī)劃的問題,也等價于正則化的合頁損失函數(shù)的最小化問題,。
1.5 在線識別——JPcap邊抓包邊檢測機制
在線識別的關(guān)鍵技術(shù)是實現(xiàn)在線抓包同時短時間內(nèi)識別出目標流量,。本文致力于尋找一個能實現(xiàn)Window系統(tǒng)下在線抓包的工具,而JPcap庫正是實現(xiàn)這一想法的重要類庫,。
JPcap庫是Keita Fujiiy開發(fā)的一套能夠捕獲,、發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包的Java類庫[11]。Java語言雖然在TCP/UDP傳輸方面給予了良好的定義,,但對于網(wǎng)絡(luò)層以下的控制卻無能為力,。JPcap類庫給Java語言提供一個公共接口,類庫使用libpcap和原始套接字API,,調(diào)用Jini獲得JavaAPI中的數(shù)據(jù),,實現(xiàn)Java語言對底層網(wǎng)卡的控制與鏈路層數(shù)據(jù)包的獲取。
本文提出JPcap邊抓包邊檢測機制,,基于JPcap庫編寫探嗅器實現(xiàn)在線抓包,。利用JPcap庫所抓取的數(shù)據(jù)包對象是單個數(shù)據(jù)包。因此,,系統(tǒng)在抓包的同時能實現(xiàn)對單個數(shù)據(jù)包按五元組分流并統(tǒng)計其流特征,。每當(dāng)統(tǒng)計時間達到所設(shè)置的閾值時間30 s時,便將這段時間內(nèi)統(tǒng)計好的數(shù)據(jù)流作為測試集送入分類器進行識別,,輸出識別的VoIP流IP地址,,動態(tài)顯示網(wǎng)絡(luò)中VoIP的狀態(tài),實現(xiàn)真正意義上的VoIP流量實時在線識別系統(tǒng),。
2 實驗結(jié)果與分析
實驗環(huán)境:新西蘭懷卡托大學(xué)基于Java開發(fā)的開源數(shù)據(jù)挖掘平臺weka3.6,、一臺裝有Windows 7操作系統(tǒng)和Eclipes的個人PC、一臺華為S5000交換機,。
2.1 評價指標
評價二分類類型的分類器性能指標為:精度(precision),、召回率(recall)、F1值,。實驗以VoIP類為正類,,非VoIP類為負類,分類器在測試集上預(yù)測結(jié)果為正確或錯誤,??赡艹霈F(xiàn)的4種情況記:TP,將正類預(yù)測為正類數(shù),;FN,,將正類預(yù)測為負類數(shù);FP,,將負類預(yù)測為正類數(shù),;TN,將負類預(yù)測為負類數(shù),。進一步,,得到精度:
召回率為:
F1值為精度和召回率的調(diào)和均值:
2.2 實驗數(shù)據(jù)
本次實驗使用1.5G Skype流,包含了Skype 10個版本,,共計1 371條流,,其中371條為PC-PHONE端VoIP流量。非VoIP流量1G,,使用文獻[2]中提到的Moore數(shù)據(jù)集與通過鏡像端口抓取到的數(shù)據(jù)集,。整個訓(xùn)練集共34 371條數(shù)據(jù)流,覆蓋14種流量類型,,具體見表2,。
2.3 離線分類器模型結(jié)果分析
系統(tǒng)識別結(jié)果如圖3所示。離線建模過程如圖3上半部分所示,,步驟包括打開訓(xùn)練集文件,、選擇機器學(xué)習(xí)算法、建模,,圖中所示J48即C4.5決策樹算法,,結(jié)果框為分類器識別結(jié)果,,具體如圖4所示。
圖3 系統(tǒng)識別結(jié)果
圖4 分類器識別結(jié)果
實驗使用10折交叉驗證法評估出平均測試誤差最小的分類器,,由圖4可知,,分類器識別精度為99.9%,召回率為99.6%,。圖4最下方為混淆矩陣,,對于二分類問題,用2×2矩陣表示,,正對角線上表示正確分類的樣本,,反對角線表示被錯誤分類的樣本數(shù),結(jié)果顯示有2個非VoIP樣本被分類成VoIP類,,6個Skype樣本被分類成非VoIP類,。實驗結(jié)果表明,本文所選取的最優(yōu)特征子集大幅提高了分類器的性能指標,。由于本文針對VoIP流包長,、時間間隔等關(guān)鍵屬性對流特征進行篩選,增強了機器學(xué)習(xí)算法的學(xué)習(xí)能力,,從而使得分類器識別性能大大提高,。
同樣地,對NaiveBayes和SVM算法分別進行實驗,,3個算法搭建的分類器識別結(jié)果對比圖如圖5所示,。可知,,基于C4.5決策樹算法分類器的3個評價指標均最高,。這是因為C4.5決策樹算法建模時不依賴于網(wǎng)絡(luò)流量類型的分布,對于不同類型的流量數(shù)據(jù)有更強的適應(yīng)能力,,在分析較大訓(xùn)練集時優(yōu)于依賴先驗概率的NaiveBayes算法,,且內(nèi)存需求小于SVM算法,因此得到了最好的識別精度,。
圖5 3種算法分類器結(jié)果對比
2.4 在線分類器識別結(jié)果分析
在線識別如圖3下半部分所示,。首先打開本地網(wǎng)卡開始抓包,設(shè)定混雜模式抓取流經(jīng)本地網(wǎng)卡的所有數(shù)據(jù)包,,同時對數(shù)據(jù)包進行分流并統(tǒng)計流特征,。每達到設(shè)定的30 s閾值時,選擇對應(yīng)算法的分類器對測試集進行在線識別,,識別出VoIP類型流量并以IP地址形式輸出到圖示結(jié)果框,。圖3僅是一次測試結(jié)果,3個IP地址均為VoIP通話主機地址,結(jié)果表明系統(tǒng)實時準確識別出了當(dāng)前網(wǎng)絡(luò)中的VoIP通話,。
接下來,,累積進行100次在線實驗,對比3種分類器在線識別精度,,結(jié)果如表3所示,。由表3可知,在線識別精度最高的分類器為基于C4.5算法的分類器,。
而作為在線識別系統(tǒng),除精度以外,,還需考慮第二個核心指標——實時性,。這里也對3種算法的建模時間與識別時間進行對比,結(jié)果如表4所示,。由表4可得,,基于C4.5算法的在線識別時間最短,建模時間略低于NaiveBayes算法,,而NaiveBayes在線識別時間低于C4.5算法,,SVM建模與識別時間均最長。由于C4.5決策樹模型處理樣本時,,僅需根據(jù)網(wǎng)絡(luò)流流特征值自頂向下進行比較,,找到相應(yīng)葉節(jié)點即可,處理簡單,,處理效率更高,,因此識別速度更快。
結(jié)合表3,、表4的結(jié)果對精度與實時性指標進行分析,,得到C4.5決策樹算分類器識別精度最高,且在線實時性最好,;NaiveBayes分類器雖然建模時間短,,但在線實時性略差,且精度較低,;SVM分類器精度與實時性均不佳,。在實際應(yīng)用中應(yīng)同時保證高識別精度與實時性,因此本文選擇C4.5決策樹為系統(tǒng)的核心算法,。實驗結(jié)果表明,,本文所設(shè)計的VoIP流量在線識別系統(tǒng)確實能同時滿足高精度與實時性。
3 結(jié)束語
本文設(shè)計并實現(xiàn)了基于機器學(xué)習(xí)的VoIP流量在線識別系統(tǒng),,在大幅提高VoIP流量識別精度的同時保證了系統(tǒng)的實時性,,且有良好可視化界面。實驗結(jié)果表明,,本文所設(shè)計的VoIP流量在線識別系統(tǒng)離線識別精度達99.9%,,在線識別精度達92%,,且識別時間短,能夠快速識別出目標流量并顯示VoIP流量活動的IP地址,。不過,,本文的訓(xùn)練集未能涵蓋更多種類的流量類型,對未知流量識別仍有待提高,。未來的工作旨在建立一種更優(yōu)化的在線識別系統(tǒng),,繼續(xù)增強樣本容量,增加更多種類的流量類型并支持更多的算法,。
參考文獻
[1] 梁偉,,陳福才,李海濤.一種基于C4.5決策樹的VoIP流量識別方法[J].計算機應(yīng)用研究,,2012,,29(9):3418-3421.
[2] MOORE A,ZUEV D,,CROGAN M.Discriminators for use in flow-based classification[M].Queen Mary and Westfield College,,Department of Computer Science,2005.
[3] OKABE T,,KITAMURA T,,SHIZUNO T.Statistical traffic identification method based on flow-level behavior for fair VoIP service[C].VoIP Management and Security,2006.1stIEEE Workshop on.IEEE,,2006:35-40.
[4] CALCHAND A O,,DINH V T,BRANCH P,,et al.Skype
[5] 魯剛,,張宏莉,葉麟.P2P流量識別[J].軟件學(xué)報,,2011,,22(6):1281-1298.
[6] GU C,ZHANG S,,SUN Y.Realtime encrypted traffic identification using machine learning[J].Journal of Software,,2011,6(6):1009-1016.
[7] DI MAURO M,,LONGO M.Skype traffic detection:A decision theory based tool[C].Security Technology(ICCST),,2014International Carnahan Conference on.IEEE,2014:1-6.
[8] 魯剛,,張宏莉,,葉麟.P2P流量識別[J].軟件學(xué)報,2011,22(6):1281-1298.
[9] TCP statistic and analysis tool.[EB/OL].[2016-01-02].http://tstat.tlc.polito.it/.
[10] 李航. 統(tǒng)計學(xué)習(xí)方法[M].北京:清華大學(xué)出版社,,2012.
[11] 石慧慧.基于Jpcap的網(wǎng)絡(luò)流量采集監(jiān)控系統(tǒng)研究與設(shè)計[D].南京:南京林業(yè)大學(xué),,2010.