《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 立體化網(wǎng)絡(luò)應(yīng)用層協(xié)議識別的研究與實現(xiàn)
立體化網(wǎng)絡(luò)應(yīng)用層協(xié)議識別的研究與實現(xiàn)
來源:電子技術(shù)應(yīng)用2014年第1期
朱 宇,,袁 帥
西安科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,,陜西 西安710054
摘要: 針對由于動態(tài)端口和加密通信協(xié)議的不斷使用、應(yīng)用層協(xié)議識別難度增加以及對高速網(wǎng)絡(luò)的快速識別需求提升的問題,,提出了一種立體化的應(yīng)用層協(xié)議識別方法。其依據(jù)樹形分類思想,,根據(jù)數(shù)據(jù)包的多元信息進(jìn)行分層過濾識別。通過加入表驅(qū)動方法,協(xié)議特征庫使用動態(tài)模塊化加載方式和改進(jìn)基于統(tǒng)計的識別算法,,采用SVM的分類模型,實現(xiàn)了準(zhǔn)確,、快速和易于擴(kuò)展的應(yīng)用層協(xié)議識別,。通過真實網(wǎng)絡(luò)環(huán)境下的測試結(jié)果得出,此系統(tǒng)能夠保證較小的延時和95%以上的識別率,。
中圖分類號: TP393.07
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)01-0060-04
Research and implementation of three-dimensional network application layer protocol identification
Zhu Yu,,Yuan Shuai
School of Computer Science and Technology, Xi′an University of Science and Technology, Xi′an 710054,China
Abstract: Aimming at the problem that dynamic port and the encryption communication protocol are frequently used,identification difficulty is increasing and and quickly identification requirements for high-speed network is also rising. The paper puts forward with a three-dimensional application layer protocol identification method. The method mainly is based on tree classification thought and uses the multi-information packets for hierachical filter identifying, which joined with table-driven technique, characteristic library used the dynamic module loading, and improved recognition algorithm based on statistical,combined with SVM classification model. It realized the three-dimensional application layer protocol for the accurate,fast and extensible identification. Finally,, the results show that the system able to ensure low latency and more than 95% identification rate according to the testing in the real network environment.
Key words : protocol identification,;SVM;application protocol,;network,;feature matching

    目前,諸多網(wǎng)絡(luò)流量識別技術(shù)[1]是根據(jù)數(shù)據(jù)包的IP地址,、端口和載荷對網(wǎng)絡(luò)流量進(jìn)行判斷,,但隨著應(yīng)用層協(xié)議種類在不斷增加,網(wǎng)絡(luò)流量逐漸龐大,,加之網(wǎng)絡(luò)代理,、端口的動態(tài)變化策略和協(xié)議加密等技術(shù)的采用[2],使得網(wǎng)絡(luò)管理愈加困難,。如P2P通信通常采用隨機(jī)端口[3],,迅雷的數(shù)據(jù)傳輸復(fù)用在HTTP業(yè)務(wù)之上等,而且這些數(shù)據(jù)所占比重越來越大,。因此,,有效地保障網(wǎng)絡(luò)安全,保證網(wǎng)絡(luò)資源的合理管理就顯得尤為重要,。而傳統(tǒng)的識別方式已不能有效地識別,。從目前來看,各種應(yīng)用層協(xié)議識別算法的研究已經(jīng)取得了一些成果,,但是還不足以解決當(dāng)前所存在的問題,。如將支持向量機(jī)方法應(yīng)用于P2P流的識別領(lǐng)域[4],基于行為特征加權(quán)的P2P流識別方法研究[5],,采用機(jī)器學(xué)習(xí)方法實現(xiàn)網(wǎng)絡(luò)協(xié)議識別[6]等,。這些方法基本上都引入了數(shù)理統(tǒng)計的思想,在一定程度上解決了傳統(tǒng)端口和特征識別對加密協(xié)議難以識別的問題,,但是效率仍然是制約其實際應(yīng)用的關(guān)鍵因素,。針對以上問題,,在分析現(xiàn)有協(xié)議識別方法的基礎(chǔ)上,結(jié)合用戶對網(wǎng)絡(luò)應(yīng)用識別準(zhǔn)確性,、高效性和擴(kuò)展性的要求,,提出了立體化的網(wǎng)絡(luò)應(yīng)用層協(xié)議識別。
1 現(xiàn)有協(xié)議識別方法與存在問題
    傳統(tǒng)的協(xié)議識別方法主要有基于端口的識別和基于負(fù)載的識別兩種[7],。隨著Internet數(shù)據(jù)流量的不斷增大,、屬性的不斷變化,基于行為分析的協(xié)議識別算法也成為學(xué)者們研究的熱點(diǎn),。就目前來看,,不管是從最簡單的端口識別到最繁雜的負(fù)載識別,還是最新的協(xié)議行為分析,,都存在各自的不足,,無法滿足實際應(yīng)用對協(xié)議分析的要求。
    (1)基于端口的識別,。根據(jù)分析數(shù)據(jù)包的端口號來識別協(xié)議[8],。這種算法最大的優(yōu)點(diǎn)是效率高、能夠準(zhǔn)確識別標(biāo)準(zhǔn)協(xié)議,,但是現(xiàn)有的很多協(xié)議使用的端口均是非知名端口,、并處于動態(tài)變化中,因此基于端口的協(xié)議識別也就逐漸失去效力,。
    (2)基于載荷的協(xié)議識別,。通過對數(shù)據(jù)包內(nèi)容進(jìn)行深度分析和檢測,掃描協(xié)議特征,,對數(shù)據(jù)流進(jìn)行分類,。典型的開源包如IPP2P和OPENDPI等,都是根據(jù)協(xié)議的載荷特征進(jìn)行分類,?;谳d荷的算法仍然屬于一元判別方法,從理論上講,,只要有足夠的工作量,,該算法即可以準(zhǔn)確識別所有的非加密協(xié)議,但隨著協(xié)議不斷更新和加密協(xié)議的應(yīng)用,,這種方法工作量大,,并且不能識別加密協(xié)議和大多數(shù)P2P協(xié)議。
    (3)基于行為分析的識別算法[9],。利用協(xié)議規(guī)范的不同所造成的行為特征的差異區(qū)分協(xié)議,。目前這種算法還在研究當(dāng)中,但是從目前來看,準(zhǔn)確性在70%~90%之間,,而且效率較低,經(jīng)常出現(xiàn)延時和丟包等現(xiàn)象,。
2 立體化協(xié)議識別系統(tǒng)設(shè)計
    為了彌補(bǔ)單一采用上述方法的缺陷和協(xié)議特征庫更新難的問題,,在基于Linux內(nèi)核的環(huán)境下,秉承模塊化的設(shè)計思想,,結(jié)合上網(wǎng)行為管理系統(tǒng),,通過不斷實踐與測試,采用樹形分類結(jié)構(gòu),,加入表驅(qū)動的查找方法,,改進(jìn)DPI的統(tǒng)計識別算法和借鑒Linux驅(qū)動的加載模式,力求提高協(xié)議識別的準(zhǔn)確性,、高效性和可維護(hù)性,。
2.1 系統(tǒng)識別方案
    立體化的協(xié)議識別系統(tǒng)主要借鑒了樹形分類思想,從上至下,,由標(biāo)準(zhǔn)簡單協(xié)議到繁雜協(xié)議逐層分類識別,。其識別流程為:數(shù)據(jù)流首先進(jìn)入數(shù)據(jù)包緩存,將五元組信息按照設(shè)定好的數(shù)據(jù)格式存儲并做相應(yīng)的處理,;然后進(jìn)入到協(xié)議識別分析器進(jìn)行協(xié)議匹配,,最終輸出結(jié)果。
    立體化協(xié)議識別系統(tǒng)主要包括初級層,、中級層,、高級層。在初級層主要是根據(jù)數(shù)據(jù)包的五元組進(jìn)行分流,,統(tǒng)計數(shù)據(jù)包的多元信息,,方便快速識別;中級層以端口和首字節(jié)[10](載荷的第一位)的協(xié)議鏈為切入,,協(xié)議特征庫為依托,,實現(xiàn)基于端口和載荷的協(xié)議識別,主要針對RFC標(biāo)準(zhǔn)協(xié)議和部分P2P協(xié)議,,承擔(dān)了70%左右數(shù)據(jù)包的協(xié)議識別,;高級層主要是基于SVM機(jī)器學(xué)習(xí)的協(xié)議行為分析識別,實現(xiàn)對加密協(xié)議和P2P協(xié)議的自主學(xué)習(xí)識別,。這部分一般占流量的30%左右,,是識別的最后方法。立體化的協(xié)議識別流程如圖1所示,。

2.2 改進(jìn)的端口和載荷識別方法
    由于單純采用端口和載荷識別有其局限性,,屬于一元判別,因此這里使用了將端口和首字節(jié)作為協(xié)議鏈進(jìn)行二元匹配,同時生成哈希表,。根據(jù)數(shù)據(jù)包的端口和首字節(jié)將數(shù)據(jù)包分為有端口有首字節(jié)(優(yōu)先級最高),、有端口無首字節(jié)(優(yōu)先級次之)、無端口有首字節(jié)(優(yōu)先級其后)和無端口無首字節(jié)(優(yōu)先級最低)4種情況,。當(dāng)有新的協(xié)議鏈要注冊時,,會按照優(yōu)先級狀態(tài)加入到協(xié)議鏈。如QQ的443端口0x00首字節(jié)的協(xié)議鏈:
    {"tcp_qq_443_0x00",tcp_qq_443_0x00,exist_fiby,IP_TCP,  most,0x00,443}
表明這是QQ的443端口,,存在首字節(jié)0x00,,屬于TCP協(xié)議,優(yōu)先級最高,,掛載在443端口下,。在協(xié)議鏈內(nèi)部,結(jié)合協(xié)議特征庫通過字符串,、特征比對的方式進(jìn)行進(jìn)一步識別,。如上述協(xié)議鏈的內(nèi)部特征:
    if((*(payload+1)==0xb0)||(*(payload+2)==0x2c)||
(*(payload+0)==0x2c))
{
    return PRO_QQ;
}
    當(dāng)數(shù)據(jù)包通過時,首先通過表驅(qū)動對應(yīng)到具體的端口首字節(jié)協(xié)議鏈,,然后依據(jù)協(xié)議特征庫比對,,進(jìn)一步準(zhǔn)確識別。這樣不僅解決了單純采用端口和載荷識別一元信息單一的問題,,而且提高了效率和識別的準(zhǔn)確性,。與此同時,系統(tǒng)已經(jīng)收集了100多種協(xié)議特征,,工作量浩大,。為了以后維護(hù)升級方便,根據(jù)每一個具體協(xié)議特征,,將其獨(dú)立為C文件,,組成一個協(xié)議特征庫。具體實現(xiàn)如下:借鑒Linux驅(qū)動模塊的加載方式,,將每一種應(yīng)用層協(xié)議以模塊的形式定義,,當(dāng)需要注冊使用時,通過包含進(jìn)其頭文件,,加入注冊函數(shù),,動態(tài)加載后即完成新協(xié)議的注冊。通過采用這種方式,,可以方便快捷地更改或添加協(xié)議特征庫,,從而實現(xiàn)協(xié)議庫的升級,解決了協(xié)議載荷特征維護(hù)繁雜的問題,,大大提高了系統(tǒng)的可維護(hù)性,。
2.3 高級層識別方法
    由于基于行為的識別方法具有機(jī)器學(xué)習(xí)的能力,,是一個多維空間的統(tǒng)計判別方法,如何選擇盡可能少的屬性特征值是影響算法的重要因素[11],。目前針對P2P協(xié)議和加密協(xié)議,,主要借助于支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)和統(tǒng)計的方法,,適合于粗粒度分類,。
    高級層識別方法算法的主要思想是:利用SVM的分類算法,統(tǒng)計在單位時間t內(nèi),,相同IP通信的連接數(shù)M,高端口通信率H,,發(fā)送包方差Q,,流量占有率V,持續(xù)時間T這5個屬性分別作為二分類訓(xùn)練,,用于P2P和非P2P的分類,;將雙向連接率B、等長度數(shù)據(jù)包率S作為精確P2P訓(xùn)練屬性,,最終實現(xiàn)對數(shù)據(jù)包的準(zhǔn)確分類,。
2.3.1 屬性選取
    通過包屬性來區(qū)分包類別,需要選取各個數(shù)據(jù)包中差別較大的特征,。在實際網(wǎng)絡(luò)環(huán)境中,,隨著帶寬的不同及網(wǎng)絡(luò)設(shè)備的差異,所提取的特征屬性之間相互關(guān)聯(lián),。因此,,從易于分析、差異較大的角度考慮,,選取了9種屬性特征,。具體特征如表1所示。

 

 

2.3.2 SVM的機(jī)器識別實現(xiàn)思路
    一對多SVM分類原理簡單,,容易實現(xiàn),,其基本思想為:k(k>2)類SVM分類,將類1視為一類,,其余k-1類作為另一類,,將k類分類問題轉(zhuǎn)化成二分類問題[12]。協(xié)議識別問題本質(zhì)是一個分類問題,,協(xié)議識別模型是建立在通過大量已知流的屬性數(shù)據(jù)得到的,。一個具有良好性能的支持向量機(jī)的關(guān)鍵在于模型的建立、核函數(shù)的選擇以及一些參數(shù)的選定,。SVM的協(xié)議識別模型如圖2所示,,數(shù)據(jù)包特征提取模塊主要負(fù)責(zé)從數(shù)據(jù)包緩存中獲取數(shù)據(jù),統(tǒng)計數(shù)據(jù)包特征值;數(shù)據(jù)包預(yù)處理模塊負(fù)責(zé)過濾掉雜包,、緩存并轉(zhuǎn)換成SVM能夠執(zhí)行的標(biāo)準(zhǔn)格式,;SVM訓(xùn)練模塊完成數(shù)據(jù)的特征訓(xùn)練。SVM支持向量機(jī)庫主要采用了臺灣林智仁教授的LibSVM庫,,該軟件屬于開源的包,,支持多種語言?;赟VM的反饋學(xué)習(xí)主要是通過設(shè)定一個識別的預(yù)設(shè)值,,當(dāng)識別率低于這一值時,將其放入反饋表中,??傮w而言,RBF核函數(shù)是一個普遍使用的核函數(shù),,能夠適用于所有分布樣本,。在參數(shù)選擇方面使用了python語言、gunplot以及LibSVM提供的tools交叉驗證選擇最優(yōu)的c和g,。


3 實驗數(shù)據(jù)
3.1 實驗數(shù)據(jù)收集

    為了驗證本文方法的實驗效果,,分別在不同網(wǎng)絡(luò)環(huán)境下收集網(wǎng)絡(luò)數(shù)據(jù)包。圖3所示是實驗網(wǎng)絡(luò)拓?fù)鋱D,。為了保證采集數(shù)據(jù)包的純凈性,,每次在IP地址為192.168.1.161的機(jī)子上只運(yùn)行一款軟件,通過Wireshark網(wǎng)絡(luò)封包分析軟件抓取各協(xié)議的數(shù)據(jù)包保存,。

3.2 準(zhǔn)確性與延時分析
3.2.1 應(yīng)用準(zhǔn)確性分析

      通過上述數(shù)據(jù)收集,,對常見的幾種P2P與非P2P協(xié)議包進(jìn)行了測試。其中,,包總數(shù)指經(jīng)過Wireshark過濾后純凈包的總數(shù)據(jù)包個數(shù),;識別數(shù)指經(jīng)過協(xié)議分析后,能夠返回正確識別結(jié)果包個數(shù),。表2為協(xié)議識別系統(tǒng)對一些協(xié)議包的分析結(jié)果統(tǒng)計,。通過分析發(fā)現(xiàn),對于標(biāo)準(zhǔn)協(xié)議識別率高于流媒體和P2P下載,,這主要是因為機(jī)器學(xué)習(xí)分類方式是一種粗粒度分類方法,容易受到網(wǎng)絡(luò)環(huán)境的影響,。

3.2.2 網(wǎng)絡(luò)延時分析
    實驗中,利用Linux下TC對數(shù)據(jù)包打標(biāo)命令,,對某一條數(shù)據(jù)包打標(biāo),,同時返回其經(jīng)過協(xié)議模塊一(端口載荷識別)和模塊二(機(jī)器學(xué)習(xí)識別)的標(biāo)簽;然后計算其經(jīng)過系統(tǒng)分析后所花費(fèi)的時間,,得出每一協(xié)議延時量的平均值并統(tǒng)計出分別經(jīng)過模塊一和模塊二的包總個數(shù),。系統(tǒng)延時如表3所示,,其中,包總數(shù)指的是實驗中所分析數(shù)據(jù)包的總個數(shù),,占有率指數(shù)據(jù)包分別經(jīng)過模塊一和模塊二包個數(shù)占統(tǒng)計包總個數(shù)比值,。可以看出,,由于標(biāo)準(zhǔn)協(xié)議只經(jīng)過初級層和中級層的分析,,因此延時量相對較小,;而需要進(jìn)行機(jī)器學(xué)習(xí)方式識別的P2P和流媒體協(xié)議,,其延時量比較大,這主要由于SVM不斷學(xué)習(xí)反饋導(dǎo)致,。但進(jìn)入高級層識別數(shù)據(jù)包相對較少,,基本在容忍范圍之內(nèi)。

3.2.3 對比分析
    為了驗證本文方法在識別率和效率兩方面的提高,,實驗對一些常用協(xié)議分別采用端口識別法、載荷識別法,、傳統(tǒng)統(tǒng)計識別法和本文方法進(jìn)行測試對比,。從準(zhǔn)確性上進(jìn)行比較,如圖4所示,??梢钥闯觯诙丝诘淖R別正確率接近于0,,基于載荷的識別對HTTP和QQ登錄識別較高,,而對采用加密的迅雷和FTP較低,而本文所采用的方法都高于它們,。從效率上比較,,如圖5所示,在相同的網(wǎng)絡(luò)環(huán)境下,,端口和載荷的識別消耗時間都不會很大,,統(tǒng)計的方法延時較高,而本文的方法介于兩者之間,,因此該識別方法是行之有效的,。

    應(yīng)用層協(xié)議識別作為計算機(jī)網(wǎng)絡(luò)研究的一個熱點(diǎn),但其又必須兼顧準(zhǔn)確性,、實時性和維護(hù)性的設(shè)計要求,,系統(tǒng)在傳統(tǒng)的協(xié)議識別的基礎(chǔ)上,通過添加基于機(jī)器學(xué)習(xí)的行為特征分析提高P2P協(xié)議分析的準(zhǔn)確性,,并采用表驅(qū)動的方法盡可能地改善系統(tǒng)運(yùn)行效率,。通過借鑒Linux驅(qū)動的模塊加載方式,,將端口和首字節(jié)作為整體自動掛載到協(xié)議鏈,將每一種應(yīng)用層協(xié)議以協(xié)議鏈的形式完成加載,,提高了特征庫的可維護(hù)性,。總之,,通過不斷的改進(jìn)與完善,,基于立體化的應(yīng)用層協(xié)議識別系統(tǒng)已被成功應(yīng)用。但就目前來看,,單獨(dú)的協(xié)議分析作用是有限的,,它必須配合于其他模塊才能更好地發(fā)揮作用。為了使協(xié)議分析應(yīng)用范圍更廣,、效率更高以及更加準(zhǔn)確,,下一步工作將會結(jié)合審計和流控,繼續(xù)改進(jìn)對加密協(xié)議,、非標(biāo)準(zhǔn)協(xié)議的識別,。
參考文獻(xiàn)
[1] 陳偉,胡磊,,楊龍.基于載荷特征的加密流量快速識別技術(shù)[J].計算機(jī)工程,,2012,38(12):1-4.
[2] 徐莉,,趙曦,,趙群飛,等.利用統(tǒng)計特征的網(wǎng)絡(luò)應(yīng)用協(xié)議識別方法[J].西安交通大學(xué)學(xué)報,,2009,,43(2):43-47.
[3] 魏永,周云峰,,郭利超.OpenDPI報文識別分析[J].計算機(jī)工程,,2011,37(S1):98-101.
[4] 盤善榮.基于SVM的P2P流量識別方法研究[D].湖南:長沙理工大學(xué),,2009.
[5] 崔燕,,汪斌強(qiáng),陳庶樵.基于行為特征加權(quán)的P2P流識別方法研究[J].計算機(jī)工程與設(shè)計,,2009,,30(20):4805-4807.
[6] WU Amei,Dong Huailin,,Wu Qingfeng,,et al.A survey of application-level protocol identification based on machine learning[C].Proceedings of the 2011 International Conference on Information Management,2011.
[7] 劉元勛,,徐秋亮,,云曉春.面向入侵檢測系統(tǒng)的通用應(yīng)用層協(xié)議識別技術(shù)研究[J].山東大學(xué)學(xué)報(工學(xué)版),,2007,37(1):65-69.
[8] 陳亮,,龔儉,,徐選.應(yīng)用層協(xié)議識別算法綜述[J].計算機(jī)科學(xué),2012,,34(7):73-75.
[9] 王明麗,,傅彥,高輝.基于行為特征的P2P協(xié)議識別[C]. 中國計算機(jī)網(wǎng)絡(luò)安全應(yīng)急年會信息內(nèi)容安全分會,,2008.
[10] 牟喬.準(zhǔn)確高效的應(yīng)用層協(xié)議分析識別方法[J].計算機(jī)工程與科學(xué),,2010,32(8):39-45.
[11] 陳佳.應(yīng)用層協(xié)議快速識別的研究與實現(xiàn)[D].北京:北京郵電大學(xué),,2010.
[12] 李衛(wèi)星.基于SVM的機(jī)器學(xué)習(xí)識別P2P流的方法的研究與實現(xiàn)[D].北京:北京郵電大學(xué),,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。