胡中棟,石 林,孟祥茂
(江西理工大學(xué)信息工程學(xué)院,江西贛州341000)
近年來P2P(Peer-to-Peer)網(wǎng)絡(luò)因其獨(dú)特的技術(shù)優(yōu)勢迅速發(fā)展,使得P2P應(yīng)用的范圍日益增大。這些技術(shù)和應(yīng)用發(fā)展的同時,一方面,使得傳統(tǒng)業(yè)務(wù)的應(yīng)用流量越來越少,而以P2P應(yīng)用為代表所產(chǎn)生的網(wǎng)絡(luò)流量卻占據(jù)了互聯(lián)網(wǎng)總流量的60%以上[1],呈現(xiàn)不斷增長趨勢;另一方面,P2P流量致使網(wǎng)絡(luò)性能和服務(wù)質(zhì)量下降,導(dǎo)致一些傳統(tǒng)關(guān)鍵業(yè)務(wù)應(yīng)用無法得到保障,甚至給網(wǎng)絡(luò)帶來一定的安全隱患。因此,展開準(zhǔn)確而高效的流量識別技術(shù)的研究對實現(xiàn)網(wǎng)絡(luò)流量實時監(jiān)控具有重大意義。
本文通過比較分析常用流量識別方法的特點(diǎn),提出了一種基于應(yīng)用層簽名的P2P流量識別和控制的方法,并通過實驗驗證了該方法高精確性和對流量控制的有效性。
通常流量識別的過程,就是將數(shù)據(jù)流量正確地標(biāo)記為產(chǎn)生該流量的應(yīng)用程序的過程?;ヂ?lián)網(wǎng)上的流量一般可分為兩大類,一類是以FTP,Web,Email業(yè)務(wù)為主的傳統(tǒng)業(yè)務(wù)流量,另一類是P2P流量。絕大多數(shù)流量根據(jù)不同應(yīng)用類型又可以如文獻(xiàn)[2-3]進(jìn)行具體分類。而流量識別的方法根據(jù)是否對協(xié)議載荷(即是否涉及到傳輸層上層數(shù)據(jù)信息)進(jìn)行分析,可分為載荷分析法和非載荷分析法兩種。根據(jù)識別所依據(jù)的具體信息的不同,可大概將其分為以下4種:基于IP地址的流量識別方法[4],該方法易理解,但實際操作困難;基于端口的流量識別方法[5],該方法簡單直接,但動態(tài)隨機(jī)端口和端口偽裝技術(shù)使得該方法的準(zhǔn)確率越來越低;基于流行為的流量識別方法[6-7],該方法可識別加密流量,但不能進(jìn)行精確協(xié)議分類,且易受網(wǎng)絡(luò)環(huán)境穩(wěn)定性的影響難以實時控制;基于應(yīng)用層簽名的流量識別方法,該方法易理解、維護(hù)簡單,更因其誤報率低[8](小于10%)而廣受歡迎。
提取簽名特征就是通過跟蹤分析大量的數(shù)據(jù)報文,在應(yīng)用層數(shù)據(jù)中找出獨(dú)特的、穩(wěn)定的、可區(qū)分應(yīng)用程序的特征字符串,并按照既定格式書寫成識別規(guī)則的過程。首先,應(yīng)根據(jù)業(yè)務(wù)需求利用抓包軟件對所分析的應(yīng)
基于應(yīng)用層簽名的識別方法也稱為深度包檢測(Deep Packet Inspection,DPI),即通過捕獲相關(guān)應(yīng)用產(chǎn)生的數(shù)據(jù)包,并對數(shù)據(jù)包應(yīng)用層負(fù)載數(shù)據(jù)進(jìn)行分析,提取出相應(yīng)的特征簽名,然后通過模式匹配來識別相應(yīng)的應(yīng)用流量。利用DPI技術(shù)進(jìn)行流量識別的關(guān)鍵有兩個,一是應(yīng)用層簽名特征提取,另一個是識別算法。
用軟件進(jìn)行特定場景抓包。然后,對所抓取的數(shù)據(jù)報文進(jìn)行應(yīng)用層數(shù)據(jù)分析。最后,將提取出來的簽名特征書寫成協(xié)議規(guī)則。如圖1所示是CCTV應(yīng)用程序的應(yīng)用層報文。
圖1CCTV應(yīng)用層報文(截圖)
圖2是根據(jù)圖1所示的簽名特征寫成的協(xié)議規(guī)則。不同的應(yīng)用軟件產(chǎn)生的應(yīng)用層數(shù)據(jù)包內(nèi)容各不相同,因此可將簽名特征提取分為單包提取規(guī)則和多包提取規(guī)則。單包提取時,需要多流橫向同包對比;多包提取時,需要同流縱向多包對比。另外,由于00和FF在計算機(jī)內(nèi)存常被用作填充字節(jié),故提取簽名特征是應(yīng)該盡量避開這樣的字段。同時,考慮到對識別精度和識別效率的影響,特征字符串長度應(yīng)該適中。因為特征串太短,則容易產(chǎn)生誤報(每字節(jié)占8位,那么它的誤報概率就是1/28);而字符串過長則影響識別匹配效率。表1列舉部分常用的應(yīng)用軟件的部分簽名特征。
圖2CCTV簽名特征規(guī)則(截圖)
表1 常用軟件的部分應(yīng)用層簽名特征
基于DPI技術(shù)應(yīng)用層簽名特征的流量識別,就是對網(wǎng)絡(luò)中的流量進(jìn)行實時的模式匹配,判斷該數(shù)據(jù)流中是否包含某一應(yīng)用的簽名特征字符串。如果匹配成功,則標(biāo)記該流量為相應(yīng)應(yīng)用的數(shù)據(jù)流。如果有需要,則利用相關(guān)設(shè)備對已標(biāo)記的流量進(jìn)行監(jiān)管。如圖3所示是整個DPI流量識別系統(tǒng)的工作原理圖。
圖3 DPI流量識別系統(tǒng)工作原理圖
從圖3可以看出,整個DPI流量識別系統(tǒng)主要的模塊有兩個,協(xié)議識別引擎模塊和特征知識庫模塊。特征知識庫模塊是通過新簽名特征提取和已有協(xié)議維護(hù)累積而來。DPI協(xié)議識別引擎模塊則是協(xié)議識別過程的核心,它涵蓋了識別過程中的主要方法。圖4是DPI協(xié)議識別引擎的工作流程圖。
圖4 DPI識別引擎流程圖
由圖4可看出,關(guān)聯(lián)識別優(yōu)先級較高,但它是在已識別流量的基礎(chǔ)上提出的一種快速匹配方法,而端口識別的方法優(yōu)先級別低,是作為一種補(bǔ)充方式而存在,故最重要的識別方式是簽名特征匹配識別。用偽代碼將算法流程表示如下:
為了說明識別算法的識別精度,常采用正確識別率和錯誤識別率[9]來進(jìn)行評判。式(1)和(2)分別給出了它們的計算公式
實驗過程中,首先利用wireshark、tcpdump等抓包分析工具對一些常見P2P、VoIP應(yīng)用軟件的通信過程進(jìn)行抓包、分析、提取特征。然后利用DPI流量識別系統(tǒng)對所抓取的報文進(jìn)行跑識別率、誤報率等進(jìn)行阻斷測試。
抓取風(fēng)行、愛奇藝、優(yōu)酷應(yīng)用程序的報文,然后通過簽名特征的提取,并將所提取的特征規(guī)則寫入識別引擎。利用DPI識別引擎對所抓取的報文進(jìn)行識別驗證。報文識別結(jié)果如圖5~圖7所示。
圖5 風(fēng)行報文識別率(截圖)
從上面3個軟件的識別結(jié)果可以看出,unknown的流量都是很少的(正常業(yè)務(wù)要求小于5%),軟件本身流量的識別率平均可以達(dá)到90%以上。iQiYi的識別結(jié)果中存在TaoBao流量,是由于播放頁面中的鏈接到淘寶廣告流量引起的,并不是誤識別;YouKu的識別中存在SinaTV_HTTP的流量是播放頁面中有SinaTV的資源鏈接,也不是誤識別,所以,也不存在誤識別的情況。很多流媒體應(yīng)用程序的本身支持CloudAcc協(xié)議,而且眾多流媒體相互之間可能有資源相互鏈接的現(xiàn)象,而上面驗證的,3個流媒體軟件識別結(jié)果正好說明這一點(diǎn)。由此可以看出,基于應(yīng)用層簽名的流量識別方法的識別準(zhǔn)確度是很高的。圖8給出了風(fēng)行、愛奇藝、優(yōu)酷3種應(yīng)用程序的識別率對比效果。
圖8 3種應(yīng)用的識別效果對比
從圖8可以看出,數(shù)據(jù)包的識別率有時候會低于數(shù)據(jù)流的識別結(jié)果。這是因為基于UDP傳輸?shù)牧髁繎?yīng)用層特征有時候并不在一個數(shù)據(jù)包中,可能存在于多個數(shù)據(jù)包中,而分析人員抓包分析過程可能會有難以避免丟包的情況,以致細(xì)微地影響了識別的結(jié)果。
為了充分說明DPI流量識別的方法準(zhǔn)確性,還對一些常用的軟件的識別情況作了一個統(tǒng)計,如表2所示。
表2 部分常用軟件的識別率 %
DPI技術(shù)主要是為了解決網(wǎng)絡(luò)流量識別問題,實現(xiàn)對流量的監(jiān)測控制。通過上面的實驗可以發(fā)現(xiàn),基于應(yīng)用層簽名的DPI流量識別技術(shù)對網(wǎng)絡(luò)流量識別具有高精度性。而阻斷控制測試一方面不僅能幫助協(xié)議分析人員正確定位漏識別部分的流量(若存在),以更好地提高DPI的精確度,另一方面還能實現(xiàn)對流量的實時監(jiān)控,包括限流和阻斷,以更好地幫助網(wǎng)絡(luò)服務(wù)管理員優(yōu)化網(wǎng)絡(luò)環(huán)境。通過下面的阻斷測試實驗,可以驗證其管控效果。
阻斷測試的網(wǎng)絡(luò)拓?fù)鋱D如圖9所示,測試環(huán)境為Windows XP或Windows 7操作系統(tǒng),測試主機(jī)的網(wǎng)關(guān)設(shè)置為測試網(wǎng)關(guān),IP地址設(shè)為網(wǎng)關(guān)內(nèi)IP。阻斷測試之前,被測試軟件可以正常使用,通過查看流量監(jiān)測的日志文件可以發(fā)現(xiàn)被測試軟件產(chǎn)生的流量識別后的狀態(tài)標(biāo)記為mark 0,即非阻斷狀態(tài)。進(jìn)行阻斷測試時,先登錄Web服務(wù)器,手動更新升級特征知識庫之后,找到并加載被測軟件所屬大類及標(biāo)記的策略,然后在被測主機(jī)上使用被測軟件,如果阻斷成功,則被測軟件無法正常使用,日志文件中將該軟件產(chǎn)生的流量識別后狀態(tài)標(biāo)記為mark 5000,即阻斷狀態(tài)。阻斷測試的結(jié)果表明,風(fēng)行、愛奇藝、優(yōu)酷的應(yīng)用程序在加載阻斷策略后,都不能正常播放在線視頻。換句話說,該方法能有效地控制流量。
圖9 阻斷測試網(wǎng)絡(luò)拓?fù)鋱D
在實際應(yīng)用中,各種識別方法的識別效果差異很大,根據(jù)現(xiàn)網(wǎng)中數(shù)據(jù)流量的識別情況,圖10給出了基于端口識別、基于流行為識別以及基于應(yīng)用層簽名識別3種方法在同等條件下的識別效果。
圖10 3種識別方法的識別效果對比圖
通過對上圖的觀察分析,可以得出基于端口的方法的正確識別率已經(jīng)比較低,遠(yuǎn)遠(yuǎn)無法達(dá)到流量控制的要求;基于流行為的識別方法雖然正確識別率也比較高,但是波動性較大,實時控制效果較差;而基于識別應(yīng)用層簽名的識別方法不僅正確的識別率比前面的兩種方法要高,而且識別的效果平穩(wěn),受實時環(huán)境的影響小,由此也可以看出這種方法的識別控制效果比另外兩種識別方法都要更好。
流量識別及控制一直是網(wǎng)絡(luò)流量工程的研究熱點(diǎn)。通過分析獲取3種主流P2P流媒體和一些其他主流P2P應(yīng)用軟件的應(yīng)用層簽名,并通過實驗驗證了基于應(yīng)用層簽名的識別方法具有高精確、低誤報以及能有效控制流量特點(diǎn)。但是,盡管DPI技術(shù)的優(yōu)勢已經(jīng)在商業(yè)應(yīng)用中取得了很好的效果,它對加密的應(yīng)用層數(shù)據(jù)的識別仍存在較大的局限性,而且當(dāng)特征知識庫中的特征規(guī)則到達(dá)一定數(shù)量后,后期的維護(hù)工作量也將不斷增加。因此今后的DPI技術(shù)發(fā)展應(yīng)該更多地結(jié)合其他識別方法,以提高它的應(yīng)用性。
:
[1]余浩,徐明偉.P2P流檢測技術(shù)研究綜述[J].清華大學(xué)學(xué)報:自然科學(xué)版,2009(4):616-620.
[2]張廣興,陳敏,謝高崗,等.一種 VoIP流量識別的新方法[J].計算機(jī)應(yīng)用研究,2008,25(4):1186-1188.
[3]陳敏,張廣興,畢經(jīng)平.基于 SIP的VoIP流量識別方法研究[J].計算機(jī)應(yīng)用研究,2007,24(4):301-303.
[4]方瑩.基于應(yīng)用層簽名特征的P2P流量識別[J].計算機(jī)工程與應(yīng)用,2012,48(3):73-75.
[5] ROUGHAN M,SEN S,SPATSCHECK O,et al.Class-of-service mapping for QoS:a statistical signatu-re-based approach to IP traffic classification[C]//Proc.the 4th ACM SIGCOMM Conference on Internet Measurement.[S.l.]:ACM Press,2004:135-148.
[6]鄔書躍,余杰,樊曉平.基于流量與行為特征的P2P流量識別模型[J].計算機(jī)工程,2012,38(16):182-184.
[7]劉許剛,黃海,杜錫壽,等.基于流統(tǒng)計特征的VoIP媒體網(wǎng)關(guān)檢測方法倡[J].計算機(jī)應(yīng)用研究,2011,28(12):4721-4725.
[8] SEN S,SPATSCHECK O,WANG D.Accurate,scalable in-network identificationof P2P traffic using application signatures[C] //Proc.13th International Conference on World Wide Web.[S.l.]:ACM Press,2004:512-521.
[9]李明偉,張大方,曾彬,等.基于有效載荷分析的BT流量識別技術(shù)[J].計算機(jī)應(yīng)用,2008,27(9):2230-2232.