高長喜,吳亞飚,王樅
(1.北京郵電大學(xué) 博士后流動(dòng)站,北京 100876;2. 北京天融信公司 企業(yè)博士后工作站,北京 100085)
網(wǎng)絡(luò)流量應(yīng)用協(xié)議識(shí)別是內(nèi)容過濾、QoS、流量分析、安全通信及互聯(lián)網(wǎng)監(jiān)管和運(yùn)維的基礎(chǔ)。在網(wǎng)絡(luò)安全領(lǐng)域,網(wǎng)絡(luò)流量主要可分為明文流量、加密流量、匿名通信流量、入侵/攻擊/滲透流量、病毒/木馬/蠕蟲/僵尸網(wǎng)絡(luò)異常流量等。下一代網(wǎng)絡(luò)中流量組成的復(fù)雜性及流量行為的多樣性,特別是流量加密、偽裝、隧道透?jìng)骱头制攘髁刻卣麟[藏技術(shù)使網(wǎng)絡(luò)流量應(yīng)用協(xié)議識(shí)別面臨著嚴(yán)峻的挑戰(zhàn)。
根據(jù)所采用的協(xié)議特征的不同,應(yīng)用協(xié)議識(shí)別方法可分為:基于端口、深度分組檢測(cè)(DPI,deep packet inspection)和動(dòng)態(tài)流檢測(cè)(DFI, dynamic flow inspection)[1]等?;诙丝诘膽?yīng)用協(xié)議識(shí)別方法將知名端口作為協(xié)議特征,例如 P2P應(yīng)用的固定服務(wù)端口、DNS的 53號(hào)端口等,然而動(dòng)態(tài)端口、端口復(fù)用等機(jī)制使該方法已不能對(duì)應(yīng)用流量進(jìn)行精確分類。DPI將數(shù)據(jù)分組載荷內(nèi)部位置固定或變動(dòng)的靜態(tài)字節(jié)序列作為協(xié)議特征,或者通過深入可識(shí)別的信令通道提取協(xié)商數(shù)據(jù)通道的 IP地址和端口而間接識(shí)別無特征數(shù)據(jù)流的應(yīng)用協(xié)議類型(例如SIP),支持?jǐn)?shù)據(jù)流中的單個(gè)數(shù)據(jù)分組或多個(gè)數(shù)據(jù)分組協(xié)議特征,并可實(shí)現(xiàn)細(xì)粒度應(yīng)用協(xié)議區(qū)分;然而隨著網(wǎng)絡(luò)應(yīng)用(如BitTorrent、eMule、Skype、Thunder 和 Tor 等)采用消息流加密或協(xié)議混淆來實(shí)現(xiàn)保密通信,除了極少數(shù)應(yīng)用可通過逆向算法實(shí)時(shí)解密獲取明文關(guān)鍵字特征之外,DPI已無法有效識(shí)別加密類應(yīng)用協(xié)議。DFI將傳輸層連接模式、流統(tǒng)計(jì)特性[2]等流量行為作為協(xié)議特征,并使用啟發(fā)式算法或機(jī)器學(xué)習(xí)方法進(jìn)行流量分類,既能進(jìn)行粗粒度應(yīng)用分類(例如P2P類、交互類等),又能進(jìn)行細(xì)粒度協(xié)議識(shí)別并且不依賴數(shù)據(jù)分組載荷內(nèi)容(例如SSH、HTTPS),因此該方法非常適用于加密流量應(yīng)用協(xié)議識(shí)別。
本文基于DPI和DFI混合方法,提出了一種基于假設(shè)檢驗(yàn)的加密流量應(yīng)用識(shí)別統(tǒng)計(jì)決策模型,并給出相應(yīng)的加密流量應(yīng)用識(shí)別算法。該方法首次將確定性抽樣數(shù)據(jù)分組序列的位置、方向、分組長度和連續(xù)性、有序性等流統(tǒng)計(jì)特征作為協(xié)議特征,給出了典型的分組長度統(tǒng)計(jì)簽名,并通過單數(shù)據(jù)分組的位置、方向約束及半流關(guān)聯(lián)動(dòng)作提升了傳統(tǒng)DPI方法。基于加密應(yīng)用BitTorrent和eMule評(píng)估數(shù)據(jù)集的實(shí)驗(yàn)驗(yàn)證了該加密流量應(yīng)用識(shí)別算法的有效性。
當(dāng)前加密流量應(yīng)用識(shí)別的研究主要采用流統(tǒng)計(jì)特征的DFI方法。文獻(xiàn)[3]基于流的指定方向上的前若干個(gè)數(shù)據(jù)分組的分組長度以及數(shù)據(jù)分組載荷前若干字節(jié)內(nèi)容的概率分布定義了 34種用于度量加密應(yīng)用協(xié)議行為的統(tǒng)計(jì)屬性指紋,提出了基于K-L散度(kullback-leibler divergence)的協(xié)議識(shí)別模型和算法,并通過實(shí)驗(yàn)評(píng)估了該算法識(shí)別混淆/加密協(xié)議的有效性;然而,該方法依賴載荷內(nèi)容并且未充分利用流之間的相關(guān)性。文獻(xiàn)[4]將流的支撐數(shù)據(jù)分組集合的分組長度分布作為協(xié)議特征,并根據(jù)端口局部性啟發(fā)將流分組為會(huì)話,進(jìn)而提出了一種基于距離相似性測(cè)度的會(huì)話級(jí)流分類方法,評(píng)估結(jié)果表明該方法對(duì)于流和會(huì)話都可以實(shí)現(xiàn)高準(zhǔn)確率的分類;不過,該方法沒有考慮到數(shù)據(jù)分組在流中的方向性。文獻(xiàn)[5]基于流的前若干個(gè)數(shù)據(jù)分組在指定方向上的分組個(gè)數(shù)、分組長度及其均值、方差等給出了17種流量統(tǒng)計(jì)特征參數(shù),提出了k-means和k-nearest neighbors機(jī)器學(xué)習(xí)算法相結(jié)合的加密流量混合分類算法,并在嵌入式實(shí)時(shí)環(huán)境中驗(yàn)證了該算法實(shí)時(shí)分類加密流量的可行性;但是,該方法未能將 DPI與統(tǒng)計(jì)方法有效結(jié)合起來實(shí)現(xiàn)多重識(shí)別。文獻(xiàn)[6]將流在指定方向上的分組長度與交互到達(dá)時(shí)間的最大值、最小值、均值、標(biāo)準(zhǔn)差和分組個(gè)數(shù)等作為流特征,并基于采集自不同網(wǎng)絡(luò)的數(shù)據(jù)集評(píng)估了 AdaBoost、支持向量機(jī)(SVM)、Na?ve Bayesian、RIPPER和C4.5等5種機(jī)器學(xué)習(xí)算法用于分類SSH和Skype加密流量的頑健性,實(shí)驗(yàn)結(jié)果表明 C4.5算法具有最優(yōu)的分類性能。文獻(xiàn)[7]將流的前若干個(gè)數(shù)據(jù)分組的帶有方向標(biāo)記的分組長度(經(jīng)過縮放預(yù)處理)作為協(xié)議特征,基于Gaussian mixture model和SVM分類器對(duì)SSH隧道承載的應(yīng)用協(xié)議進(jìn)行識(shí)別,并通過對(duì)經(jīng)過SSH加密的POP3、POP3S、HTTP和eMule的實(shí)驗(yàn)驗(yàn)證了該方法的有效性。文獻(xiàn)[8]對(duì)近年運(yùn)用機(jī)器學(xué)習(xí)方法進(jìn)行 IP流量分類的研究進(jìn)展進(jìn)行了綜述和評(píng)論,將分類方法分為聚類、有監(jiān)督的學(xué)習(xí)和混合方法等3類,并總結(jié)和比較了相關(guān)研究工作采用的具體機(jī)器學(xué)習(xí)算法、統(tǒng)計(jì)特征、評(píng)估數(shù)據(jù)集、待分類流量類型、分類粒度等策略以及準(zhǔn)確率、實(shí)時(shí)性、計(jì)算復(fù)雜度和流方向依賴性等分類性能。
基于假設(shè)檢驗(yàn)的加密流量應(yīng)用識(shí)別統(tǒng)計(jì)決策模型HTSDM (hypothesis testing-based statistical decision model) 定義如下。
定義1流方向
流方向定義為由五元組(源IP地址、源端口、目的IP地址、目的端口和傳輸協(xié)議號(hào))標(biāo)識(shí)的流的數(shù)據(jù)分組發(fā)送方向,記為DF={du,dd,db}。其中,du表示客戶端向服務(wù)器發(fā)送分組的上行流方向,dd表示服務(wù)器向客戶端發(fā)送分組的下行流方向,db表示不區(qū)分上下行的雙向流方向。
定義2分組序列位置
分組序列位置定義為某個(gè)流方向上的帶有有效負(fù)載的抽樣數(shù)據(jù)分組序列的位置編號(hào),并且位置編號(hào)在指定的流方向意義上針對(duì)全部帶有有效負(fù)載的數(shù)據(jù)分組獨(dú)立進(jìn)行,記為X={xi,…,xj|1≤xk≤N,1≤i≤k≤j≤N}。其中,xk表示單個(gè)數(shù)據(jù)分組的位置編號(hào),稱作分組位置;N表示所在流方向上可取的最大位置編號(hào)。
根據(jù)所取的抽樣位置序列{xi,…,xj}的不同,分組序列位置可分為單個(gè)固定位置、離散序列位置和連續(xù)區(qū)間位置。所謂的離散序列位置是指具有不等長間隔的抽樣位置序列,而連續(xù)區(qū)間位置是指步長固定為1的均勻位置序列。
定義3分組序列方向特征
分組序列方向特征定義為帶有有效負(fù)載的抽樣數(shù)據(jù)分組序列在流中出現(xiàn)時(shí)所位于的流方向,記為DP={di,…,dj|dk∈DF,1≤i≤k≤j≤N}。其中,dk表示分組位置為k的數(shù)據(jù)分組位于的流方向,稱作分組方向;N表示可取的最大分組位置。
定義4分組序列分組長度特征
分組序列分組長度特征定義為帶有有效負(fù)載的抽樣數(shù)據(jù)分組序列在流中指定的分組位置上的分組長度(即分組載荷長度)、分組長度序列、分組長度集合或分組長度統(tǒng)計(jì)量所應(yīng)滿足的特定閾值約束,記為L={li,…,lj|lk=[infk,supk],i≤k≤j}。其中,infk和supk分別表示分組長度特征分量lk的閾值下限和閾值上限,當(dāng)infk與supk相等時(shí),lk取固定值,否則取范圍值。
特別地,L可取位置分組長度變量,所謂的位置分組長度變量是指某個(gè)分組位置處的數(shù)據(jù)分組長度,該數(shù)據(jù)分組長度事先未知,而只能進(jìn)行動(dòng)態(tài)提取和確定。
定義5分組序列連續(xù)性
在流中指定的流方向DF上的數(shù)據(jù)分組序列在連續(xù)區(qū)間位置X上不間斷的一一出現(xiàn)并且滿足相應(yīng)的分組序列方向特征DP和分組序列分組長度特征L,則稱為分組序列滿足連續(xù)關(guān)系。分組序列連續(xù)關(guān)系記為Rc(DF,X,DP,L)={rcc,rcv},其中rcc表示分組序列連續(xù),rcv表示分組序列不必連續(xù)。
定義6分組序列有序性
在流中指定的流方向DF上的數(shù)據(jù)分組序列在指定的分組序列位置(離散序列位置或連續(xù)區(qū)間位置)X上按照指定的先后順序依次出現(xiàn)并且滿足相應(yīng)的分組序列方向特征DP和分組序列分組長度特征L,則稱為分組序列滿足有序關(guān)系。分組序列有序關(guān)系記為Rs(DF,X,DP,L)={rss,rsv},其中rss表示分組序列有序,rsv表示分組序列不必有序。
定義7分組長度分布特征
分組長度分布特征定義為帶有效負(fù)載的抽樣數(shù)據(jù)分組序列在流中指定的流方向DF、指定的分組序列位置X上應(yīng)存在一個(gè)長度為N的數(shù)據(jù)分組子序列并滿足分組序列方向特征DP、分組序列分組長度特征L、分組序列連續(xù)性Rc和分組序列有序性Rs約束,記為F(DF,X,DP,L,Rc,Rs,N) =DFXDPLRc Rs。
定義8分組長度統(tǒng)計(jì)簽名
分組長度統(tǒng)計(jì)簽名定義為應(yīng)用協(xié)議類型C已知的加密流量的分組長度分布特征F、統(tǒng)計(jì)量T以及統(tǒng)計(jì)量T的期望值Te,記為P(F,T,Te,C)。其中,Te=[tinf,tsup]。典型的分組長度統(tǒng)計(jì)簽名如表1所示,對(duì)于不同的統(tǒng)計(jì)簽名,Te表示數(shù)據(jù)分組子序列的長度或單個(gè)分組長度。
表1 典型的分組長度統(tǒng)計(jì)簽名
定義9分組長度統(tǒng)計(jì)簽名變量分組位置
分組長度統(tǒng)計(jì)簽名可以引用其他的分組長度統(tǒng)計(jì)簽名定義其分組序列位置。相對(duì)于當(dāng)前分組長度統(tǒng)計(jì)簽名所引用的分組長度統(tǒng)計(jì)簽名的命中位置、在某個(gè)流方向上的帶有有效負(fù)載的抽樣數(shù)據(jù)分組序列的偏移位置編號(hào),稱為分組長度統(tǒng)計(jì)簽名變量分組位置,記為j≤N}。其中,表示單個(gè)數(shù)據(jù)分組的偏移位置編號(hào);N表示所在流方向上可取的最大偏移位置編號(hào)。
分組長度統(tǒng)計(jì)簽名決策模型
零假設(shè)H0:加密流量應(yīng)用協(xié)議類型為C。
備擇假設(shè)H1:加密流量應(yīng)用協(xié)議類型不為C。
檢驗(yàn)值z(mì):分組長度統(tǒng)計(jì)簽名P的統(tǒng)計(jì)量T。
顯著性水平:α
定義10DFI特征
滿足一定的邏輯關(guān)系Rl的多個(gè)分組長度統(tǒng)計(jì)簽名P的集合,稱為DFI特征,記為FF({Pi};Rl)。其中,邏輯關(guān)系Rl支持AND、OR和邏輯表達(dá)式,缺省為 AND;邏輯表達(dá)式由 AND、OR和分組長度統(tǒng)計(jì)簽名P的編號(hào)組成。
定義11半流關(guān)聯(lián)特征
已識(shí)別應(yīng)用協(xié)議類型C的流的源(或目的)IP、源(或目的)端口port和指定的傳輸協(xié)議tp組成的二元組或三元組稱為半流關(guān)聯(lián)特征,記為RF(IP,port,tp,C)。其中,由IP、端口和傳輸協(xié)議組成的三元組稱為強(qiáng)關(guān)聯(lián)特征,而IP和傳輸協(xié)議組成的二元組稱為弱關(guān)聯(lián)特征;半流關(guān)聯(lián)特征RF中緩存有關(guān)聯(lián)的應(yīng)用協(xié)議類型C。
已識(shí)別應(yīng)用協(xié)議類型的流的半流關(guān)聯(lián)特征RF通過散列運(yùn)算生成關(guān)聯(lián)半流表(RT, relational table),后續(xù)可通過提取的強(qiáng)關(guān)聯(lián)特征直接進(jìn)行關(guān)聯(lián)查表確定流的應(yīng)用協(xié)議類型,或通過提取的弱關(guān)聯(lián)特征進(jìn)行預(yù)過濾以篩選出需根據(jù)指定了該弱關(guān)聯(lián)特征的規(guī)則進(jìn)行后續(xù)識(shí)別的流。
定義12單數(shù)據(jù)分組特征
單數(shù)據(jù)分組特征定義為在流中指定的流方向DF、指定的分組位置X和指定的分組方向DP上的單個(gè)數(shù)據(jù)分組應(yīng)滿足的關(guān)鍵字特征、分組長度特征、端口特征、IP地址特征或半流關(guān)聯(lián)特征等特征簽名sig,并且多個(gè)特征簽名之間滿足一定的邏輯關(guān)系Rl,記為PF((DF,X,DP, {sig});Rl)。其中,邏輯關(guān)系Rl支持AND、OR和邏輯表達(dá)式,缺省為AND;邏輯表達(dá)式由AND、OR和特征簽名sig的編號(hào)組成。
定義13提升型DPI規(guī)則
由規(guī)則頭HD、單數(shù)據(jù)分組特征PF和可選的關(guān)聯(lián)動(dòng)作ACT組成的應(yīng)用識(shí)別規(guī)則,稱為提升型bDPI(boosting DPI)規(guī)則,并記為DR(HD,PF,ACT)。其中,規(guī)則頭HD包括規(guī)則編號(hào)、應(yīng)用協(xié)議類型C、傳輸協(xié)議tp、優(yōu)先級(jí)prio等;關(guān)聯(lián)動(dòng)作ACT指定在規(guī)則命中時(shí)應(yīng)提取并添加到關(guān)聯(lián)半流表RT中的半流關(guān)聯(lián)特征RF。
定義14DFI規(guī)則
由規(guī)則頭HD、單數(shù)據(jù)分組特征PF和DFI特征FF組成的應(yīng)用識(shí)別規(guī)則,稱為DFI規(guī)則,并記為SR(HD,PF,FF)。其中,規(guī)則頭HD包括規(guī)則編號(hào)、應(yīng)用協(xié)議類型C、傳輸協(xié)議tp、優(yōu)先級(jí)prio等;單數(shù)據(jù)分組特征PF為在驗(yàn)證DFI特征FF之前應(yīng)首先滿足的預(yù)過濾條件。
DFI決策模型
預(yù)過濾條件H(PF):
決策規(guī)則H(DFI) =H(PF) ∧H(FF)
分組長度統(tǒng)計(jì)簽名匹配算法 PLSSI(packet length statistical signature identification)基于分組長度統(tǒng)計(jì)簽名決策模型實(shí)現(xiàn),其偽代碼如下文所示。
算法輸入:分組長度l,分組方向d,分組長度統(tǒng)計(jì)簽名P、分組長度統(tǒng)計(jì)簽名P的匹配狀態(tài)SP和流在各方向上的當(dāng)前分組位置cp[]。其中,匹配狀態(tài)SP包括當(dāng)前分組位置x、統(tǒng)計(jì)量T的當(dāng)前分組長度統(tǒng)計(jì)量l'、統(tǒng)計(jì)量T的當(dāng)前分組計(jì)數(shù)n、位置分組長度變量的當(dāng)前值l"、連續(xù)性狀態(tài)rc、有序性狀態(tài)rs、當(dāng)前識(shí)別狀態(tài)QP(PENDING、HIT、FAILED)。
算法輸出:帶更新狀態(tài)的分組長度統(tǒng)計(jì)簽名P。
算法描述:
HMETI(hybrid method for encrypted traffic identification)加密流量應(yīng)用識(shí)別算法基于 DFI決策模型實(shí)現(xiàn),分為預(yù)處理和識(shí)別2個(gè)階段。其中,預(yù)處理階段根據(jù)bDPI規(guī)則和DFI規(guī)則的單數(shù)據(jù)分組特征生成包括多模式匹配狀態(tài)機(jī)和散列表的DPI引擎,而識(shí)別階段則首先利用DPI引擎篩選出命中了預(yù)過濾條件的DFI規(guī)則集,然后基于HTSDM模型對(duì)初步命中的DFI規(guī)則進(jìn)行DFI特征的驗(yàn)證。通常情況下,需要對(duì)目標(biāo)流進(jìn)行多次識(shí)別,并且最多只處理流的前N(通常取N=60)個(gè)帶有效負(fù)載的數(shù)據(jù)分組。HMETI算法的偽代碼如下所示。
算法輸入:規(guī)則集合 SET,分組上下文pkt,流節(jié)點(diǎn)fn,關(guān)聯(lián)半流表RT。其中,規(guī)則集合 SET包括bDPI規(guī)則DR和DFI規(guī)則SR;分組上下文pkt包括當(dāng)前數(shù)據(jù)分組的分組長度l、分組方向d、載荷payload和五元組tuple等;流節(jié)點(diǎn)fn為會(huì)話流表節(jié)點(diǎn),包括流統(tǒng)計(jì)子節(jié)點(diǎn)鏈表fsnlist、流在各方向上的當(dāng)前分組位置cp[]、流識(shí)別狀態(tài)QF、流應(yīng)用協(xié)議類型cid等;流統(tǒng)計(jì)子節(jié)點(diǎn)fsn與DFI規(guī)則SR相對(duì)應(yīng),包括DFI規(guī)則SR的各個(gè)分組長度統(tǒng)計(jì)簽名P的匹配狀態(tài)SP和規(guī)則識(shí)別狀態(tài)QR。
算法輸出:帶有更新狀態(tài)的流節(jié)點(diǎn)fn。
算法描述:
為了對(duì)前文所述的加密流量應(yīng)用識(shí)別方法的有效性進(jìn)行評(píng)估,本文在 Linux平臺(tái)上實(shí)現(xiàn)了HMETI應(yīng)用識(shí)別引擎庫,并基于Libpcap和readline庫實(shí)現(xiàn)了相應(yīng)的驅(qū)動(dòng)測(cè)試平臺(tái) TrafficBench,支持規(guī)則集配置、報(bào)文回放、識(shí)別結(jié)果統(tǒng)計(jì)報(bào)表、基于識(shí)別結(jié)果的報(bào)文過濾及導(dǎo)出等功能。
網(wǎng)絡(luò)流量應(yīng)用識(shí)別方法準(zhǔn)確性的評(píng)價(jià)指標(biāo)主要有誤報(bào)率、精確率、召回率、總體準(zhǔn)確率和總體誤報(bào)率等幾種。此處討論的網(wǎng)絡(luò)流量應(yīng)用識(shí)別方法包括應(yīng)用協(xié)議識(shí)別算法和對(duì)應(yīng)的規(guī)則集合。
誤報(bào)(FP, false positive)是指將本不屬于某類應(yīng)用的流量識(shí)別為該類應(yīng)用;漏報(bào)(FN, false negative)是指將本屬于某類應(yīng)用的流量識(shí)別為其他類型應(yīng)用;真報(bào)(TP, true positive)是指將屬于某類應(yīng)用的流量識(shí)別為該類應(yīng)用。
表2 識(shí)別方法評(píng)價(jià)指標(biāo)的符號(hào)約定
假定測(cè)試樣本集由N類應(yīng)用的流量構(gòu)成,使用網(wǎng)絡(luò)流量應(yīng)用識(shí)別方法對(duì)該測(cè)試集進(jìn)行識(shí)別,按照表2給出的符號(hào)約定,第i類應(yīng)用協(xié)議識(shí)別的準(zhǔn)確性評(píng)價(jià)指標(biāo)定義如下。
總體誤報(bào)率(overall FPR)
如果上述定義采用不同的統(tǒng)計(jì)粒度(例如流、分組個(gè)數(shù)、字節(jié)數(shù)等),則可得到網(wǎng)絡(luò)流量應(yīng)用識(shí)別方法在不同維度的應(yīng)用協(xié)議識(shí)別準(zhǔn)確性評(píng)價(jià)指標(biāo)。
本文選取了支持協(xié)議加密/混淆的 P2P應(yīng)用BitTorrent(簡稱BT)和eMule評(píng)估前文所述加密流量應(yīng)用識(shí)別方法的有效性,其中,BitTorrent客戶端選用 BitTorrent V7.6.1和 uTorrent V3.3,eMule客戶端選用eMule V0.50a和easyMule V1.2.0,并且開啟了協(xié)議加密/混淆功能。
評(píng)估所用的數(shù)據(jù)集分別單獨(dú)按照不同應(yīng)用捕獲自實(shí)驗(yàn)室環(huán)境,如表3~表5所示。表3中的BitTorrent和eMule數(shù)據(jù)集1由19個(gè)Trace文件組成,每個(gè)Trace為BitTorrent或eMule產(chǎn)生的全部TCP和UDP混合流量,包括Web流量、明文數(shù)據(jù)流量和加密流量,并且濾除了 DNS、ARP等無關(guān)流量。表 4中的BitTorrent和eMule數(shù)據(jù)集2分為訓(xùn)練集和測(cè)試集2部分,其中,訓(xùn)練集為人工分類和標(biāo)注的TCP加密數(shù)據(jù)流,而測(cè)試集為從數(shù)據(jù)集1中過濾出的無法通過DPI識(shí)別的全部BitTorrent或eMule TCP數(shù)據(jù)流,具體的bDPI規(guī)則如下文表6所示。表5中的背景流量數(shù)據(jù)集3共計(jì)286個(gè)Trace文件,分別對(duì)應(yīng)各種常見的加密應(yīng)用和普通應(yīng)用(或協(xié)議),其中加密應(yīng)用占據(jù)了絕大部分流量。
表3 BitTorrent和eMule數(shù)據(jù)集1
表4 BitTorrent和eMule TCP數(shù)據(jù)集2
表5 背景流量數(shù)據(jù)集3
為了模擬真實(shí)網(wǎng)絡(luò)環(huán)境出口捕獲流量的特性,例如本地主機(jī)IP分布和不同應(yīng)用在本地主機(jī)上的分布,數(shù)據(jù)集的全部Trace統(tǒng)一進(jìn)行了單個(gè)本地主機(jī)IP的重新映射處理。本地主機(jī)IP的映射方法如下:1)預(yù)設(shè)私有IP地址池1和2,其中,IP地址池1容量設(shè)置為30,IP地址池2容量設(shè)置為200,并且IP地址池1為IP地址池2的子集;2)將每個(gè)BitTorrent或eMule Trace中的本地主機(jī)IP隨機(jī)映射為IP地址池1中的某個(gè)私有IP,將背景流量的每個(gè)Trace中的本地主機(jī)IP隨機(jī)映射為IP地址池2中的某個(gè)私有IP,并保證不同應(yīng)用類型Trace之間的本地主機(jī)IP、非知名端口和傳輸協(xié)議三元組無沖突。經(jīng)過重映射處理之后,數(shù)據(jù)集的Trace包含多個(gè)本地主機(jī),并且每個(gè)本地主機(jī)IP對(duì)應(yīng)一種或多種應(yīng)用,與實(shí)際網(wǎng)絡(luò)流量分布模型相一致。
實(shí)驗(yàn)采用的規(guī)則集包括 BitTorrent、eMule和Web的相應(yīng)bDPI規(guī)則和DFI規(guī)則。
由于BitTorrent、eMule和Web HTTP都屬于開源協(xié)議,其單數(shù)據(jù)分組特征較易于分析和提取,具體的bDPI規(guī)則如表6所示。為方便計(jì)算,bDPI規(guī)則的單數(shù)據(jù)分組特征的關(guān)鍵字特征采用正則表達(dá)式語法描述,在實(shí)際解析和預(yù)處理時(shí),應(yīng)分離出正則表達(dá)式的所有因子字符串并保留其在數(shù)據(jù)分組內(nèi)的位置信息和字符串之間的邏輯關(guān)系。作為典型的P2P應(yīng)用,BitTorrent和eMule使用UDP和單個(gè)端口與大量的節(jié)點(diǎn)進(jìn)行 DHT/Kad網(wǎng)絡(luò)通信以執(zhí)行查找資源、維護(hù)節(jié)點(diǎn)聯(lián)通性等功能或進(jìn)而進(jìn)行基于UDP的數(shù)據(jù)傳輸,因此,通過將相應(yīng)的bDPI規(guī)則關(guān)聯(lián)動(dòng)作設(shè)定為源強(qiáng)關(guān)聯(lián)以直接識(shí)別該類 UDP流量。由于BitTorrent在進(jìn)行TCP加密數(shù)據(jù)傳輸時(shí)必然伴隨著與 Tracker進(jìn)行通信,因此,通過將相應(yīng)的 bDPI規(guī)則關(guān)聯(lián)動(dòng)作設(shè)定為源弱關(guān)聯(lián)可輸出運(yùn)行BitTorrent應(yīng)用并可能進(jìn)行加密數(shù)據(jù)傳輸?shù)暮蜻x主機(jī),該弱關(guān)聯(lián)特征可作為進(jìn)行BitTorrent加密流量識(shí)別的先決條件。
表6 BitTorrent、eMule和Web應(yīng)用協(xié)議的bDPI規(guī)則
為了選擇和提取BitTorrent和eMule的DFI特征,基于數(shù)據(jù)集2中的訓(xùn)練集樣本和典型的分組長度統(tǒng)計(jì)簽名,考察BitTorrent和eMule在雙向流方向、上行流方向上的分組長度分布以及 BitTorrent的同向連續(xù)分組長度和,統(tǒng)計(jì)結(jié)果如圖1~圖4所示。
圖1為分別從BitTorrent和eMule的36條加密數(shù)據(jù)流中抽取的雙向流方向上的前30個(gè)數(shù)據(jù)分組的分組長度分布散點(diǎn)圖,其中,X軸表示雙向流方向上的分組位置,Y軸表示數(shù)據(jù)分組長度,正值表示分組方向?yàn)樯闲?,而?fù)值則表示分組方向?yàn)橄滦校ㄗ鴺?biāo)軸正負(fù)值含義下同)。由圖 1可知,BitTorrent加密數(shù)據(jù)流的首分組分組長度介于70~300,eMule首分組分組長度介于12~270,第2個(gè)分組的分組方向總為下行且分組長度介于6~261,第3個(gè)分組的分組方向總為上行且分組長度介于95~200,第4個(gè)分組的分組方向總為下行且分組長度介于86~358。
圖2為BitTorrent的36條加密數(shù)據(jù)流上行流方向上的第4~20分組位置上分組長度小于200的數(shù)據(jù)分組的分組長度分布散點(diǎn)圖,其中,X軸表示流編號(hào),Y軸表示在對(duì)數(shù)坐標(biāo)下的數(shù)據(jù)分組長度。由圖2可知,分組長度17和34為頻繁項(xiàng)并構(gòu)成所有流的集合覆蓋,這表明在BitTorrent加密數(shù)據(jù)流上行流方向的第4~20分組位置上至少存在1個(gè)分組長度等于17或34的數(shù)據(jù)分組。
圖1 BitTorrent和eMule加密流雙向前30個(gè)數(shù)據(jù)分組長度分布
圖2 BitTorrent加密流上行數(shù)據(jù)分組分組長度分布
圖3為eMule的36條加密數(shù)據(jù)流上行流方向上的第3~10分組位置上分組長度小于300的數(shù)據(jù)分組的分組長度分布散點(diǎn)圖,其中,X軸表示流編號(hào),Y軸表示在對(duì)數(shù)坐標(biāo)下的數(shù)據(jù)分組分組長度。由圖3可知,分組長度6、11和22為頻繁項(xiàng)并構(gòu)成所有流的集合覆蓋,這表明在eMule加密數(shù)據(jù)流的上行流方向的第3~10分組位置上至少存在1個(gè)分組長度等于6、11或22的數(shù)據(jù)分組。
圖3 eMule加密流上行數(shù)據(jù)分組分組長度分布
圖4為從BitTorrent的36條加密數(shù)據(jù)流中抽取的上行和下行流方向上同向連續(xù)數(shù)據(jù)分組分組長度和的散點(diǎn)圖,其中,X軸表示上/下行連續(xù)交替位置,Y軸表示同向連續(xù)分組長度和。由圖4可知,在BitTorrent加密數(shù)據(jù)流的上行流方向的第1~2輪同向連續(xù)數(shù)據(jù)分組的分組長度和分別介于 95~610和5~640,下行流方向的第1輪同向連續(xù)數(shù)據(jù)分組的分組長度和介于80~610。
圖4 BitTorrent同向連續(xù)數(shù)據(jù)分組的分組長度和
基于上述分析,可以得到 BitTorrent和 eMule的TCP加密協(xié)議DFI規(guī)則,如表7和表8所示。
以數(shù)據(jù)集3作為背景流量,基于上述BitTorrent和eMule TCP加密協(xié)議DFI規(guī)則,取顯著性水平α=0.01,運(yùn)用 HMETI算法對(duì)數(shù)據(jù)集 2的測(cè)試集樣本進(jìn)行加密流量識(shí)別,得到的識(shí)別結(jié)果如表9所示。由表9可知,BitTorrent加密流量識(shí)別的字節(jié)精確率和召回率可達(dá)98%以上,而eMule加密流量識(shí)別的字節(jié)精確率和召回率則分別為 100%和 99.9%;eMule誤報(bào)率為0%,而BitTorrent誤報(bào)率則相對(duì)較高,其字節(jié)誤報(bào)率接近2%。
表7 BitTorrent TCP加密協(xié)議DFI規(guī)則
表8 eMule TCP加密協(xié)議DFI規(guī)則
為了降低BitTorrent加密流量誤報(bào)率,考慮結(jié)合 bDPI方法進(jìn)一步加強(qiáng)預(yù)過濾條件進(jìn)行優(yōu)化,只對(duì)由bDPI判定為具有BitTorrent行為的主機(jī)進(jìn)行后續(xù)加密流量識(shí)別,為此,在表7中的DFI規(guī)則的單數(shù)據(jù)分組特征 PF中引入源弱關(guān)聯(lián)特征并且聯(lián)合表6中的 bDPI規(guī)則 BT-TCP-2,利用數(shù)據(jù)集 1中的BitTorrent Trace重復(fù)上述BitTorrent加密流量識(shí)別過程,得到的BitTorrent加密流量優(yōu)化識(shí)別結(jié)果如表10所示。與表9所示的優(yōu)化之前的識(shí)別結(jié)果相比,字節(jié)誤報(bào)率顯著降低,僅有0.364%,字節(jié)精確率提高到99.6%以上,而召回率保持不變。
表9 BitTorrent和eMule加密流量識(shí)別結(jié)果
表10 BitTorrent加密流量優(yōu)化識(shí)別結(jié)果
本文將HMETI算法與其他典型的加密流量應(yīng)用識(shí)別方法進(jìn)行了對(duì)比,結(jié)果如圖5所示。其中,SPID、SLFC和K-K算法分別由文獻(xiàn)[3~5]提出。由圖可知,無論是對(duì)于加密應(yīng)用BiTorrent還是eMule,本文提出的HMETI算法都具有比其他加密流量應(yīng)用識(shí)別方法更高的識(shí)別準(zhǔn)確率,這是由于 HMETI算法引入了確定性抽樣數(shù)據(jù)分組序列的位置、方向、分組長度和連續(xù)性、有序性等流統(tǒng)計(jì)特征,從而使該方法能夠成功捕獲加密應(yīng)用在流坐標(biāo)空間中獨(dú)特的統(tǒng)計(jì)流量行為。
最后,考察BitTorrent和eMule產(chǎn)生的全部應(yīng)用流量識(shí)別的總體準(zhǔn)確性。利用HMETI算法和包括所有bDPI規(guī)則和DFI規(guī)則在內(nèi)的規(guī)則集,取顯著性水平.α= 0.01,以數(shù)據(jù)集3作為背景流量,按照4種方法分別對(duì)數(shù)據(jù)集1進(jìn)行完全流量識(shí)別,得到的總體準(zhǔn)確率和總體誤報(bào)率如圖 6所示。其中,X軸表示識(shí)別方法,方法1使用傳統(tǒng)DPI規(guī)則(無關(guān)聯(lián)動(dòng)作),方法2使用bDPI規(guī)則(帶關(guān)聯(lián)動(dòng)作),方法3使用bDPI規(guī)則和未優(yōu)化的DFI規(guī)則(不含源弱關(guān)聯(lián)預(yù)過濾特征),方法4使用bDPI規(guī)則和優(yōu)化的DFI規(guī)則(含源弱關(guān)聯(lián)預(yù)過濾特征);Y軸表示在對(duì)數(shù)坐標(biāo)下的總體準(zhǔn)確率和總體誤報(bào)率。
圖5 各算法的加密應(yīng)用識(shí)別準(zhǔn)確率對(duì)比
圖6 全部應(yīng)用協(xié)議識(shí)別的總體準(zhǔn)確率和總體誤報(bào)率
由圖6可知,傳統(tǒng)DPI方法的字節(jié)總體準(zhǔn)確率僅有26.133 2%,這表明協(xié)議加密/混淆使傳統(tǒng)DPI方法已經(jīng)部分失效,而引入半流關(guān)聯(lián)方法和DFI方法之后的字節(jié)總體準(zhǔn)確率則逐步升高,在方法4時(shí)達(dá)到峰值,其字節(jié)總體準(zhǔn)確率為98.720 3%,這表明占據(jù)大部分比例且無DPI特征的TCP加密流量和UDP數(shù)據(jù)流量已被準(zhǔn)確識(shí)別。另外,不同統(tǒng)計(jì)粒度(字節(jié)、分組與流)的總體準(zhǔn)確率差別較大,這主要是由于在 P2P類應(yīng)用產(chǎn)生的大量會(huì)話中真正進(jìn)行業(yè)務(wù)數(shù)據(jù)傳輸?shù)牧鲾?shù)量非常少,大部分為短會(huì)話或無效流,并且有部分加密數(shù)據(jù)流無法被識(shí)別。
同時(shí),如圖6所示,BitTorrent和eMule流量識(shí)別的總體誤報(bào)率非常低,對(duì)于識(shí)別方法 4,其在達(dá)到最高字節(jié)總體準(zhǔn)確率的同時(shí),字節(jié)總體誤報(bào)率僅為0.138 5%,具有最優(yōu)的識(shí)別性能。從方法2到方法4時(shí)總體誤報(bào)率抖動(dòng)較大,原因是方法3引入了未優(yōu)化的DFI方法導(dǎo)致了較高的加密流量識(shí)別誤報(bào),而方法4則使用了優(yōu)化的DFI方法使加密流量識(shí)別的誤報(bào)數(shù)量迅速下降。
本文基于加密應(yīng)用在流坐標(biāo)空間中的分組序列統(tǒng)計(jì)特征和典型的分組長度統(tǒng)計(jì)簽名,提出了一種基于假設(shè)檢驗(yàn)的加密流量應(yīng)用識(shí)別統(tǒng)計(jì)決策模型 HTSDM,并給出了相應(yīng)的基于 DPI和 DFI混合方法的加密流量應(yīng)用識(shí)別算法 HMETI。最后,通過加密應(yīng)用BitTorrent和eMule數(shù)據(jù)集評(píng)估了 HMETI算法的有效性。實(shí)驗(yàn)結(jié)果表明,本文提出的加密流量應(yīng)用識(shí)別方法可以達(dá)到接近99%的字節(jié)總體準(zhǔn)確率,并且僅有約0.1%的字節(jié)總體誤報(bào)率。
HMETI算法依賴于數(shù)據(jù)分組在流中的位置和到達(dá)順序等,因此需要對(duì)待識(shí)別流進(jìn)行數(shù)據(jù)分組的去重傳、分片重組、亂序重排等預(yù)處理,并且通常只應(yīng)用于可靠有序的 TCP加密流。同時(shí),HMETI算法對(duì)非對(duì)稱路由[9]具有頑健性,對(duì)于無法獲取完整流的應(yīng)用場(chǎng)景,可使用單向流的分組序列統(tǒng)計(jì)特征。另外,由于采用了預(yù)過濾方法并且只需抽樣識(shí)別流的少量數(shù)據(jù)分組,因此HMETI算法具有較低的計(jì)算復(fù)雜度并可應(yīng)用到實(shí)時(shí)環(huán)境。
選取恰當(dāng)?shù)募用芰髁糠纸M序列統(tǒng)計(jì)特征和分組長度統(tǒng)計(jì)簽名是保證HMETI算法應(yīng)用識(shí)別準(zhǔn)確性的關(guān)鍵。目前,加密應(yīng)用的流量統(tǒng)計(jì)特征和分組長度統(tǒng)計(jì)簽名的提取主要是通過人工對(duì)捕獲的大量流量Trace的分類、標(biāo)注和分析進(jìn)行,提取效率、特征的顯著性和完整性都比較低。因此,下一步的研究工作將是利用數(shù)據(jù)挖掘算法進(jìn)行加密流量統(tǒng)計(jì)特征和分組長度統(tǒng)計(jì)簽名的自動(dòng)提取和驗(yàn)證。
[1] GOMES J V, INáCIO P R M, PEREIRA M,et al. Detection and classification of peer-to-peer traffic: a survey[J]. ACM Computing Surveys, 2013, 45(3):1-40.
[2] MOORE A, ZUEV D, CROGAN M. Discriminators for use in flow-based classification[R]. Technical Report RR-05-13, ISSN 1470-5559, University of London, 2005.
[3] HJELMVIK E, JOHN W. Breaking and improving protocol obfuscation[R]. Technical Report No.2010-05, ISSN 1652-926X, Chalmers University of Technology, 2010.
[4] LU C N, HUANG C Y, LIN Y D,et al. Session level flow classification by packet size distribution and session grouping[J]. Computer Networks, 2012, 56(1):260-272.
[5] BAR-YANAI R, LANGBERG M, PELEG D, RODITTY L. Realtime classification for encrypted traffic[A]. Proceedings of 9th International Symposium on Experimental Algorithms (SEA 2010)[C]. Naples,2010.373-385.
[6] ALSHAMMARI R, ZINCIR-HEYWOOD A N. Machine learning based encrypted traffic classification: identifying SSH and skype[A].Proceedings of the 2009 IEEE Symposium on Computation Intelligence in Security and Defense Applications (CISDA 2009)[C]. Ottawa,2009.1-8.
[7] DUSI M, ESTE A, GRINGOLI F, SALGARELLI L. Using GMM and SVM-based techniques for the classification of SSH-encrypted traffic[A]. Proceedings of the 44th IEEE International Conference on Communication(ICC’ 09)[C]. Dresden, 2009.1-6.
[8] NGUYEN T, ARMITAGE G. A survey of techniques for internet traffic classification using machine learning[J]. IEEE Communications Surveys & Tutorials, 2008, 10(4):56-76.
[9] CROTTI M, GRINGOLI F, SALGARELLI L. Impact of asymmetric routing on statistical traffic classification[A]. Proceedings of the 7th IEEE Global Communications Conference (GLOBECOMM 2009)[C].Honolulu, 2009.1-8.