安強(qiáng)強(qiáng),張峰,李趙興,張雅瓊
(榆林學(xué)院陜西榆林719000)
VoIP的全稱為Voice Over Internet Protocol[1]。該系統(tǒng)具備比較顯著的優(yōu)點(diǎn),比如成本比較低,部署起來難度小,當(dāng)今其在語音通信業(yè)務(wù)當(dāng)中得到了十分廣泛的應(yīng)用,雖然其帶來了較好的發(fā)展機(jī)遇,但是同時(shí)也為網(wǎng)絡(luò)的安全運(yùn)行帶來了很大的挑戰(zhàn)[2-5]。所以需要合理管控VoIP業(yè)務(wù),怎樣提高在線流量識(shí)別的精度也成為了不少學(xué)者所研究的重難點(diǎn)。
當(dāng)前,VoIP系統(tǒng)比較常見的識(shí)別方法主要有兩類:第一是以流特征為基礎(chǔ)進(jìn)行識(shí)別,第二是以機(jī)器學(xué)習(xí)為基礎(chǔ)進(jìn)行識(shí)別[6]。已有的研究當(dāng)中,關(guān)于以機(jī)器學(xué)習(xí)為基礎(chǔ)的識(shí)別方法主要是集中在線下領(lǐng)域,關(guān)于在線識(shí)別的研究并不多。有學(xué)者設(shè)計(jì)了以WEKA庫文件為基礎(chǔ)的Skype流量在線檢測(cè)工具,但是存在算法單一、無可視化界面等相應(yīng)的缺陷[7-9]。
本次研究將以當(dāng)前關(guān)于機(jī)器學(xué)習(xí)為基礎(chǔ)流量在線識(shí)別系統(tǒng)中普遍存在的問題進(jìn)行設(shè)計(jì)并且采用具體的試驗(yàn)論證,以希望達(dá)到在線識(shí)別的目的,同時(shí)提高識(shí)別的精度。
在本次所開展的具體設(shè)計(jì)過程中,將數(shù)據(jù)流進(jìn)行專門的界定,主要是將其定位成將兩個(gè)主機(jī)進(jìn)行交換的連續(xù)數(shù)據(jù)包。在同一條數(shù)據(jù)流當(dāng)中包含的數(shù)據(jù)包的源地址、傳輸協(xié)議、目的地址以及源、目的端口等都是相同的。訓(xùn)練集的構(gòu)建過程就是對(duì)數(shù)據(jù)包分流的過程[10]。結(jié)合思科分流的相關(guān)定義來看,單條的TCP流必須要包含開始與結(jié)束時(shí)刻,同時(shí)還應(yīng)當(dāng)包含完整的語義[11]。
在線識(shí)別系統(tǒng)不僅包含在線識(shí)別,同時(shí)也包含了離線分類器[12]。其中圖1為離線分類器的主要工作原理。
圖1 離線分類器工作流程圖
本次所設(shè)計(jì)的在線識(shí)別系統(tǒng)主要以離線分類器為基礎(chǔ),構(gòu)建抓包與檢測(cè)同時(shí)進(jìn)行的機(jī)制,借助于JPcap庫來編寫探嗅器,抓取相應(yīng)的數(shù)據(jù)包,同時(shí)分流模塊會(huì)對(duì)流特征進(jìn)行統(tǒng)計(jì)以及數(shù)據(jù)包的分流,設(shè)計(jì)相應(yīng)的累積時(shí)間。每次閾值時(shí)間達(dá)到30 s時(shí),就會(huì)將已經(jīng)統(tǒng)計(jì)好的數(shù)據(jù)直接送入到分類器當(dāng)中進(jìn)行相應(yīng)的識(shí)別,此處的分類器是處于離線狀態(tài)的。同時(shí)會(huì)以IP地址的形式將識(shí)別出的流量傳輸?shù)浇缑娈?dāng)中,同時(shí)也會(huì)對(duì)VoIP的電話狀態(tài)進(jìn)行動(dòng)態(tài)顯示。圖2為本次設(shè)計(jì)的VoIP系統(tǒng)的主要流程圖。
圖2 VoIP系統(tǒng)流程圖
預(yù)處理模塊的相關(guān)設(shè)計(jì)與工作需要在離線狀態(tài)下開展。此模塊的主要功能就是搭建更為完整的訓(xùn)練集。預(yù)處理模塊分別包含文件格式、數(shù)據(jù)集的獲取以及分流統(tǒng)計(jì)[13]。
1.2.1 數(shù)據(jù)集獲取
數(shù)據(jù)集的獲取則需要借助于Wireshark軟件,該軟件會(huì)從PC當(dāng)中抓取一些特定類型的軟件,借助于配置交換機(jī)鏡像端口來抓取不同的PC所產(chǎn)生的流量,進(jìn)而將其擴(kuò)展到整個(gè)局域網(wǎng)領(lǐng)域當(dāng)中。另外,本次研究過程中所采用的數(shù)據(jù)集也包含Moore數(shù)據(jù)集以及Skype數(shù)據(jù)集。為了使VoIP系統(tǒng)同時(shí)具備識(shí)別PC-PHONE與PC-PC端的能力,也增加了PCPHONE類型流量。
1.2.2 轉(zhuǎn)換文件格式
設(shè)計(jì)過程中所采用的軟件其存儲(chǔ)文件的格式主要為PCAP形式,其文件頭分別包含UDP包頭或者是14B包頭+20B IP包頭等。預(yù)處理模塊的工作需要通過分析PCAP軟件頭的信息,對(duì)五元組進(jìn)行編程,再提取數(shù)據(jù)包長(zhǎng)等相關(guān)的信息,最終將默認(rèn)的儲(chǔ)存形式實(shí)現(xiàn)向CSV儲(chǔ)存形式的轉(zhuǎn)化。
1.2.3 構(gòu)建訓(xùn)練集
構(gòu)建訓(xùn)練集則首先需要滿足五元組相同,同時(shí)還需要符合思科關(guān)于分流的相關(guān)定語[14]。然后才可以借助于本次設(shè)計(jì)選擇的軟件來對(duì)抓取的數(shù)據(jù)包進(jìn)行分流。分流的具體實(shí)現(xiàn)需要在Linux當(dāng)中實(shí)現(xiàn)。在數(shù)據(jù)包完成了分流之后,再對(duì)數(shù)據(jù)流的相關(guān)特征進(jìn)行統(tǒng)計(jì)分析,并且需要確定最終的訓(xùn)練集。
已有學(xué)者通過研究,對(duì)數(shù)據(jù)流進(jìn)行了分類,并且認(rèn)為流特征有249種,如果對(duì)每種流特征進(jìn)行專門的研究分析,將會(huì)耗費(fèi)大量的時(shí)間,而且也會(huì)消耗大量的成本[15]。其實(shí),并不是所有的流特征都是和采用VoIP系統(tǒng)來進(jìn)行識(shí)別。這就需要對(duì)一些冗余和不相關(guān)的流特征進(jìn)行去除,從而使模型的精確度得到提高[16],減少系統(tǒng)實(shí)際運(yùn)行過程中需要的時(shí)間。本次研究則首先需要初步對(duì)數(shù)據(jù)流的篩選,然后再選出特定的數(shù)據(jù)流,產(chǎn)生專門的特征子集,利用評(píng)價(jià)函數(shù)來進(jìn)行評(píng)價(jià),再對(duì)停止準(zhǔn)則與評(píng)價(jià)函數(shù)展開相應(yīng)的比較,如果得到的函數(shù)結(jié)果優(yōu)于準(zhǔn)則,就可以停止,反之,則需要繼續(xù)開展工作,再得到新的特征子集,一直到獲得滿意的特征子集。文中所開展的VoIP系統(tǒng)研究中,在產(chǎn)生特征子集與評(píng)價(jià)時(shí)分別采用不同的算法。表1為最優(yōu)特征子集。
本次設(shè)計(jì)研究中所采用的機(jī)器學(xué)習(xí)算法為C4.5決策算法樹,為了使系統(tǒng)的可擴(kuò)展性得到增強(qiáng),另外還需要采用SVM算法與樸素貝葉斯算法。
首先,C4.5決策樹算法屬于一種比較經(jīng)典的回歸與分類算法。決策樹就像是樹的枝干與葉子一樣,分別包含葉子結(jié)點(diǎn)與內(nèi)部結(jié)點(diǎn),內(nèi)部結(jié)點(diǎn)所代表的是特征屬性,而葉子結(jié)點(diǎn)所表示的則是類別。算法處理過程比較繁雜。具體過程如下;
表1 最優(yōu)特征子集
1)熵的計(jì)算,這是不純度度量標(biāo)準(zhǔn),所采用的公式為:
第i類發(fā)生可能性或者是發(fā)生概率大小采用Pi表示。
屬性為A的信息熵在上述公式當(dāng)中采用HA(D)來進(jìn)行表示。
除了采用決策樹方法之外,本次設(shè)計(jì)研究也采用樸素貝葉斯算法來作為輔助算法,該算法主要是以獨(dú)立假設(shè)特征條件以及以貝葉斯定理作為標(biāo)準(zhǔn)。對(duì)于已經(jīng)給定的訓(xùn)練集,會(huì)首先對(duì)學(xué)習(xí)輸入、輸出的概率分布情況進(jìn)行獨(dú)立假設(shè),然后再輸入給定的x值。想要得到最終輸出的最大Y值,則需要借助于貝葉斯定理。
另外本次研究也采用了SVM算法,其中文名稱為支持向量機(jī)算法,該算法模型就是以間隔最大化為基本,然后求解凸二次規(guī)劃的相關(guān)問題。
在線識(shí)別技術(shù)的落實(shí),需要在短時(shí)間內(nèi)進(jìn)行在線抓包與識(shí)別目標(biāo)流量。本次研究采用的正是JPcap系統(tǒng)抓包工具。該抓包工具屬于JAVA庫類,可以實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲與發(fā)送。Java語言可以較好的定義TCP/UDP的傳輸,但是在網(wǎng)絡(luò)層以下控制能力卻比較弱。而JPcap系統(tǒng)抓包工具所起到的作用就是提供一個(gè)公共數(shù)據(jù)接口,然后再對(duì)Jini數(shù)據(jù)進(jìn)行調(diào)用,最終得到JAVA庫中的數(shù)據(jù)。
JPcap系統(tǒng)抓包工具抓包與檢測(cè)功能同時(shí)實(shí)現(xiàn),還需要借助于JPcap來進(jìn)行在線抓包。當(dāng)然,該系統(tǒng)的抓包對(duì)象為單個(gè)數(shù)據(jù)包,因此在抓包的過程中可以按照五元組分流進(jìn)行數(shù)據(jù)的獲取與統(tǒng)計(jì)。
為了驗(yàn)證所設(shè)計(jì)系統(tǒng)的可行性,需要設(shè)計(jì)專門的試驗(yàn)來進(jìn)行驗(yàn)證。試驗(yàn)所需要的硬件設(shè)備包含個(gè)人PC,操作系統(tǒng)為Windows 7,交換機(jī)為華為S5000,數(shù)據(jù)挖掘平臺(tái)為weka3.6,基于JAVA開發(fā)。
本次試驗(yàn)所采用的評(píng)價(jià)指標(biāo)分別包含精度、F1值和召回率等。具體試驗(yàn)時(shí),需要將非VoIP值納入到負(fù)類當(dāng)中,另外則是將VoIP值納入到正類當(dāng)中。分類器的預(yù)測(cè)結(jié)果只有兩種情況,即正確或者錯(cuò)誤。
本次開展具體實(shí)驗(yàn)過程中所采用的數(shù)據(jù)流為1.5G Skype數(shù)據(jù)流,其中包含了10個(gè)不同的版本,數(shù)據(jù)流總數(shù)達(dá)到了1 374條,其中通過實(shí)驗(yàn)發(fā)現(xiàn)來自于PC-PHONE的數(shù)據(jù)端中的數(shù)據(jù)流總數(shù)為371條。另外,也需要使用1G的非VoIP流量,數(shù)據(jù)集的收取需要采用鏡像端口以及Moore來獲取。在整個(gè)實(shí)驗(yàn)過程中所獲得的數(shù)據(jù)流共計(jì)35 371條,流量類型共計(jì)15種。
本次研究對(duì)平均誤差最小的分類器進(jìn)行評(píng)估,所采用的評(píng)估方法為10折交叉驗(yàn)證法,根據(jù)研究結(jié)果可以發(fā)現(xiàn)。本次研究中,分類器的識(shí)別精度可以達(dá)到99.7%,召回率則是99.5%。另外,因?yàn)楸敬窝芯亢Y選了數(shù)據(jù)流的特征及管件屬性,這也使得及機(jī)器學(xué)習(xí)的能力及識(shí)別性能得到大大提升。圖3為3種不同算法所得到的結(jié)果比較,圖4為分類器識(shí)別結(jié)果。
為了驗(yàn)證該系統(tǒng)的在線識(shí)別準(zhǔn)確度,又繼續(xù)開展了100多次專門的試驗(yàn),試驗(yàn)結(jié)果顯示,設(shè)計(jì)的在線識(shí)別系統(tǒng)的識(shí)別精度可以達(dá)到91.4%。除了需要考慮在線識(shí)別精度之外,還需要考慮到實(shí)時(shí)性。本次實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),基于C4.5算法的在線識(shí)別系統(tǒng)所花費(fèi)的時(shí)間為最短,為0.53 s。
圖3 不同算法得到結(jié)果比較
圖4 分類器識(shí)別結(jié)果
通過對(duì)當(dāng)前已有的關(guān)于在線流量監(jiān)測(cè)系統(tǒng)的研究結(jié)果進(jìn)行研究,發(fā)現(xiàn)關(guān)于在線流量檢測(cè)系統(tǒng)研究較少,而且即便是開展研究在精確度與實(shí)時(shí)性方面均不容樂觀。因此本次設(shè)計(jì)以機(jī)器學(xué)習(xí)為基礎(chǔ),構(gòu)建專門的VoIP在線流量檢測(cè)系統(tǒng),通過研究及實(shí)驗(yàn)證實(shí),該系統(tǒng)精確度與實(shí)時(shí)性分別為91.4%與0.53 s,值得推廣。