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