梁曉萌,嚴(yán) 明,2,吳 杰,2
(1.復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 200433;2.教育部網(wǎng)絡(luò)信息安全審計(jì)與監(jiān)控工程研究中心,上海 200433)
流量識(shí)別技術(shù)是網(wǎng)絡(luò)運(yùn)營(yíng)商用以對(duì)流量進(jìn)行監(jiān)控的重要手段。近年來(lái),互聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展使得用戶能夠在加密自身信息元素的情形下對(duì)網(wǎng)絡(luò)進(jìn)行訪問(wèn),因此,及時(shí)、準(zhǔn)確的流量特征的反饋,已經(jīng)成為運(yùn)營(yíng)商能夠成功進(jìn)行流量監(jiān)控、網(wǎng)絡(luò)監(jiān)管的重要挑戰(zhàn)之一。
國(guó)內(nèi)外學(xué)者對(duì)Tor 匿名加密流量[1]的識(shí)別與分類進(jìn)行了研究。CHAKRAVARTY 等[2]提出一種針對(duì)Tor 網(wǎng)絡(luò)的攻擊,目的是暴露客戶端的身份(IP 地址),并給出一種主動(dòng)流量分析攻擊方法,在服務(wù)器端(串通服務(wù)器)故意干擾用戶流量。根據(jù)統(tǒng)計(jì)相關(guān)性觀察到在客戶端也存在類似的干擾,該方法在實(shí)驗(yàn)室測(cè)試中達(dá)到100% 的準(zhǔn)確率,實(shí)際實(shí)驗(yàn)超過(guò)81%。HE 等[3]提出一種基于HMM(Hidden Markov Models)的方法,將加密的Tor 流量分為P2P、FTP、IM 和Web(其他情況未知)4 類。作為分類器(特征),使用從Tor 流中提取的burst 體積和方向,并運(yùn)用HMM 構(gòu)建不同應(yīng)用程序類型(P2P、FTP、IM 和Web)的模型。HABIBI 等[4]提出一種基于時(shí)間分析方法來(lái)提取匿名加密流量特征,實(shí)驗(yàn)結(jié)果表明,僅通過(guò)時(shí)間特征可以有效地檢測(cè)出加密流量的類別,且流量的時(shí)間越短,識(shí)別率越高。該方法在不同的算法分類下的識(shí)別率范圍為70%~90%,但其提取的特征無(wú)法做到實(shí)時(shí)性。PAN 等[5]對(duì)深度學(xué)習(xí)在信息安全領(lǐng)域的優(yōu)勢(shì)做出了評(píng)判,對(duì)于大型數(shù)據(jù)集,基于深度學(xué)習(xí)的分類器通常優(yōu)于其他分類器,并且可以針對(duì)相似類型的應(yīng)用程序進(jìn)行推廣。例如,如果需要訓(xùn)練檢測(cè)使用Tor 的應(yīng)用程序,那么只需要重新訓(xùn)練輸出層,而其他所有層可以保持不變。對(duì)于其他機(jī)器學(xué)習(xí)分類器,則需要在整個(gè)數(shù)據(jù)集上重新訓(xùn)練。
在已有研究中可以發(fā)現(xiàn),很多研究通過(guò)從流中提取特征,但是很少有研究能夠?qū)崟r(shí)提取,以便及時(shí)識(shí)別分類Tor 等匿名加密流量的特征。本文將流量劃分為不同的類型,每種類型的流量來(lái)自于不同的應(yīng)用業(yè)務(wù),如從Hangouts、Facebook 和Skype 中獲取的VoIP 流量。在當(dāng)前使用機(jī)器學(xué)習(xí)模型進(jìn)行匿名加密流量處理的研究中,流量訓(xùn)練往往對(duì)設(shè)備性能要求過(guò)高,訓(xùn)練時(shí)間較長(zhǎng),不適合研究者進(jìn)行實(shí)驗(yàn)測(cè)試。本文設(shè)計(jì)一種實(shí)時(shí)流量檢測(cè)工具,并提出一種結(jié)合人工蜂群機(jī)制的基于深度學(xué)習(xí)的改進(jìn)邏輯回歸方法。該方法運(yùn)用文獻(xiàn)[4]公開(kāi)的流量數(shù)據(jù)集,根據(jù)Whonix[6]操作系統(tǒng),配置Tor 網(wǎng)絡(luò)路由獲取流量,從而得到對(duì)應(yīng)的數(shù)據(jù)。
為方便快捷地計(jì)算特征值,本文使用golang 語(yǔ)言,并參考使用谷歌的gopacket 包[7],gopacket 包構(gòu)建在libpcap[8]上,可以采集網(wǎng)絡(luò)中的流量信息。本文通過(guò)匹配seq、ack 號(hào)聚合數(shù)據(jù)包為一條數(shù)據(jù)流。
對(duì)于Tor 等類型的匿名加密流量,源IP、源端口等TCP 字段是無(wú)法區(qū)分流量類型的,需要找到這些流量與非加密流量的區(qū)別。本文考慮2 種選擇特征的方法:一是測(cè)量基于時(shí)間的特征,如2 條連續(xù)數(shù)據(jù)包之間的間隔時(shí)間[9];二是控制時(shí)間測(cè)量其他變量,如1 s 內(nèi)數(shù)據(jù)包數(shù)量[10]。本文選擇了能夠在線實(shí)時(shí)提取的特征,如表1 所示。
表1 初步特征選擇Table 1 Selection of preliminary feature
以上特征與最終的流量識(shí)別、分類結(jié)果相關(guān)性各不相同,且實(shí)時(shí)流量分析需要盡可能少的數(shù)據(jù)提取,因此需要篩選出相關(guān)性最高的幾個(gè)特征。在特征篩選方面,本文使用過(guò)濾的方法提取特征,在此之前需要將數(shù)據(jù)進(jìn)行預(yù)處理。
1)在計(jì)算各類特征值的過(guò)程中,有些數(shù)據(jù)流由于捕獲不全、數(shù)據(jù)異常等原因,無(wú)法作為自變量帶入神經(jīng)網(wǎng)絡(luò)中進(jìn)行運(yùn)算,因此需要對(duì)某些無(wú)法計(jì)算的特征進(jìn)行數(shù)據(jù)人工處理。對(duì)于計(jì)算后得出NaN 的字段,將該值處理為-1e20;對(duì)于計(jì)算后得出infinity 的字段,將該值處理為1e20。
2)需要將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。本文使用Max-Min算法,將所有特征值進(jìn)行線性變換,映射到區(qū)間[0,1]內(nèi),對(duì)于每一種特征序列x1,x2,…,xn,標(biāo)準(zhǔn)化處理公式如式(1)所示:
3)本文選擇Pearson 相關(guān)系數(shù)對(duì)各個(gè)特征與分類結(jié)果的相關(guān)性進(jìn)行檢驗(yàn),Pearson 相關(guān)系數(shù)計(jì)算公式如式(2)所示[11]:
其中:x為某一個(gè)樣本的特征值。通過(guò)計(jì)算每一個(gè)特征在所有分類結(jié)果中的Pearson 總值,即若流量總共有n種可能被識(shí)別、分類的結(jié)果,并分別記錄在每一個(gè)識(shí)別、分類結(jié)果中,該特征在所有樣本中的x值和平均值,并根據(jù) 式(2)計(jì)算出ri(i=1,2,…,n),r=對(duì)于流量識(shí)別實(shí)驗(yàn),本文設(shè)定Tor 流量的標(biāo)簽y為1,非Tor 流量的標(biāo)簽y為0;對(duì)于流量分類實(shí)驗(yàn),本文設(shè)置8 個(gè)分類結(jié)果標(biāo)簽Y={y1,y2,…,y8,},yi為1表示它屬于第i種流量,yi為0 表示它不屬于第i種流量。Pearson 相關(guān)系數(shù)的絕對(duì)值越大,說(shuō)明這個(gè)特征與分類結(jié)果的相關(guān)性越強(qiáng)。本文最終選取相關(guān)系數(shù)絕對(duì)值最大的5 個(gè)特征作為本文工具(ABC-LR)用來(lái)進(jìn)行流量識(shí)別、分類的特征。
給定一組訓(xùn)練集{(x1,y1)(,x2,y2),…(,xn,yn)},邏輯回歸模型按式(3)進(jìn)行分類:
由于本文實(shí)驗(yàn)為多分類,因此當(dāng)多個(gè)類別的概率高于0.5 時(shí),選取概率最高的類別作為結(jié)論。
在神經(jīng)網(wǎng)絡(luò)的邏輯回歸模型[12]設(shè)計(jì)中,本文使用m層全連接網(wǎng)絡(luò)[13],每層分為線性層[14]和激活層[15],線性層包括線性變換權(quán)重和偏置:
其中:weight 為權(quán)重;bias 為偏置;out 為該網(wǎng)絡(luò)神經(jīng)元個(gè)數(shù);in 為前一層網(wǎng)絡(luò)神經(jīng)元個(gè)數(shù)。使用ReLu()函數(shù)作為激活函數(shù)將其線性單元進(jìn)行修正,這樣可以做到一次非線性變換。在輸出層,首先使用Linear()函數(shù)將從最后一層隱藏層[16]映射到輸出,再使用激活函數(shù)將輸出映射到(0,1)之間,用于對(duì)接分類任務(wù)。
對(duì)于m層全連接網(wǎng)絡(luò)和分類輸出層,公式表示分別如式(7)~式(9)所示:
其中:X是從數(shù)據(jù)流中抽取的特征,是一個(gè)n維向量;Hi是隱藏層,為hi維向量;Wi是hi×hi-1的參數(shù)矩陣;bi是hi維的貝葉斯偏置向量;Wout是輸出層1×hm的參數(shù)矩陣;bout是輸出層的貝葉斯偏置值;ReLu 和σ為激活函數(shù)。
對(duì)于一條數(shù)據(jù)流,它屬于某一類流量和非該類流量的概率分別如式(10)和式(11)所示:
本文使用邏輯回歸模型進(jìn)行分類,即激活函數(shù)σ選擇sigmoid 函數(shù)。
輸入特征數(shù)、層數(shù)、每一層的隱元數(shù),網(wǎng)絡(luò)架構(gòu)[17]如圖1 所示。
圖1 深度學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)Fig.1 Network architecture of deep learning
網(wǎng)絡(luò)輸出分類概率后,使用交叉熵?fù)p失函數(shù)計(jì)算損失值,如式(13)所示:
其中:yi表示該流是否屬于某一類流量,是正則化參數(shù)。
邏輯回歸模型的分類計(jì)算方法是通過(guò)最小化損失函數(shù),即通過(guò)一個(gè)算法對(duì)參數(shù)w學(xué)習(xí)迭代優(yōu)化,常見(jiàn)的方法是梯度下降方法,如式(14)所示,直至滿足終止條件(如收斂)為止。
其中:α為學(xué)習(xí)率,影響學(xué)習(xí)模型收斂到局部最小值的速度。
盡管梯度下降算法常用于學(xué)習(xí)模型的訓(xùn)練,但是梯度下降并不能保證收斂到全局最優(yōu)解,當(dāng)損失函數(shù)不可導(dǎo)時(shí)無(wú)法使用。此外,由于每一個(gè)樣本都要計(jì)算微積分,當(dāng)訓(xùn)練樣本較大時(shí),很容易導(dǎo)致服務(wù)器性能不夠、運(yùn)算速度比較慢。若是使用隨機(jī)梯度下降法,則數(shù)據(jù)樣本不夠全面,導(dǎo)致分類結(jié)果不理想。基于此,本文研究設(shè)計(jì)一種加入人工蜂群機(jī)制的新學(xué)習(xí)方法。
人工蜂群算法[18]模擬了蜂群的智能覓食行為,它沒(méi)有關(guān)于函數(shù)和參數(shù)搜索空間的假設(shè)條件限制。在該算法中有3 種人工蜜蜂,分別是雇傭蜂、跟隨蜂以及偵查蜂。食物源的位置即為對(duì)應(yīng)的解,食物源的花蜜量即為對(duì)應(yīng)的解的適合度,人工蜂群機(jī)制具體算法如算法1 所示。
算法1ABC 算法
ABC 算法步驟如下:
1)設(shè)定參數(shù):食物源即雇用蜂數(shù)量(SN)、最大循環(huán)數(shù)(MCN)、未被更新的極限次數(shù)(limit)。
2)利用下式生成初始食物源,并對(duì)這些解進(jìn)行評(píng)估:
其中:xij是第i個(gè)解的第j個(gè)參數(shù),i∈{1,2,…,SN},j∈{1,2,…,D},SN和D是食物源個(gè)數(shù)和優(yōu)化參數(shù)個(gè)數(shù);Rand(0,1)是區(qū)間(0,1)內(nèi)均勻分布的隨機(jī)數(shù);分別是第j個(gè)參數(shù)的上界和下界。
3)雇傭蜂階段:通過(guò)下式對(duì)每個(gè)解進(jìn)行局部搜索,并進(jìn)行貪婪選擇:
其中:φij是一個(gè)在區(qū)間[-1,1]之內(nèi)均勻分布的隨機(jī)數(shù),j∈{1,2,…,D},k∈{1,2,…,SN},均是隨機(jī)選取的索引,其中i≠k。
4)通過(guò)下式為每個(gè)解計(jì)算出一個(gè)與其質(zhì)量成比例的概率值:
其中:fi是第i個(gè)解的適應(yīng)度;max(f)是所有解中的最大適應(yīng)度。
6)記錄最優(yōu)解。
7)偵查蜂階段:檢查是否有要放棄的解,若有,則使用第2 步的公式生成一個(gè)新解。
8)重復(fù)第3 步~第7 步,直到達(dá)成終止條件。
在本文基于深度學(xué)習(xí)的邏輯回歸模型內(nèi),權(quán)重W和偏置b(包括式(8)與式(9)中的W和b參數(shù))等參數(shù)對(duì)應(yīng)于人工蜂群算法中食物源的位置。因此,首先由算法生成權(quán)重和偏置的初始值,隨后利用3 種蜂群對(duì)應(yīng)的算法階段,計(jì)算出模型的損失函數(shù),即式(13)最?。ㄟm應(yīng)度最高)最佳的參數(shù)。
本文算法使用式(15)初始化wij(W、b)中每一個(gè)參數(shù):
其中:wij表示第i個(gè)食物源,即第i個(gè)解,i∈{1,2,…,SN},SN為食物源個(gè)數(shù),即本文算法可行解數(shù)量,需預(yù)先設(shè)定為固定值;rand(0,1)是區(qū)間(0,1)內(nèi)均勻分布的隨機(jī)數(shù);分別是式(8)W和b向量眾多參數(shù)中第j個(gè)參數(shù)的上界和下界,j∈{1,2,…,N},N是要優(yōu)化的參數(shù)總數(shù)量,即|W|+|b|。
利用當(dāng)前產(chǎn)生的參數(shù)值計(jì)算實(shí)際的分類效果與當(dāng)前參數(shù)計(jì)算出的分類效果的差值,根據(jù)式(13),這個(gè)值由式(16)的適應(yīng)度表示,對(duì)于每一條輸入流量是否為Tor 流量或某一類型流量的分類結(jié)果,適應(yīng)度Ei由式(17)計(jì)算。這個(gè)適應(yīng)度函數(shù)及誤差計(jì)算能夠使得本文模型更容易在搜索空間內(nèi)找到適合的解。
其中:K是總共要分類的種類數(shù)量,對(duì)于流量識(shí)別實(shí)驗(yàn),K為2,表示是否為Tor 流量,對(duì)于流量分類實(shí)驗(yàn),K為流量類型數(shù);M是輸入樣本數(shù),yj∈{0,1},表示是否為該類型流量。通過(guò)3 種蜂群算法進(jìn)行每輪迭代,直至滿足終止條件,迭代停止。
(1) 需求管理.新設(shè)備開(kāi)發(fā)的動(dòng)力往往來(lái)源于新的任務(wù)需求.需求的多樣化發(fā)展要求涉及團(tuán)體將需求信息集中進(jìn)行管理,包括需求轉(zhuǎn)換及需求信息統(tǒng)計(jì)分析等,根據(jù)客戶需求的趨勢(shì)性發(fā)展來(lái)指導(dǎo)新設(shè)備開(kāi)發(fā).
本文算法在雇傭蜂階段對(duì)內(nèi)存中的每個(gè)解進(jìn)行局部搜索,對(duì)于每個(gè)現(xiàn)存的解W、b,通過(guò)式(18)得到一個(gè)新的解:
對(duì)于每個(gè)解,本文只選擇第j個(gè)參數(shù)W、b進(jìn)行修改,生成新的解,j∈{1,2,…,D}是隨機(jī)生成的,為提高收斂速度,本文利用式(19)進(jìn)行貪婪選擇,Rij、MR為均勻分布的[0,1]區(qū)間之內(nèi)隨機(jī)抽取的浮點(diǎn)數(shù),但MR 在算法最初預(yù)先定義好,不再作更改。
當(dāng)所有解完成該階段后,需要用式(20)確定是否有解參數(shù)W、b超出了預(yù)先設(shè)置好的參數(shù)邊界。
算法進(jìn)入跟隨蜂階段后,根據(jù)每個(gè)解W、b的適應(yīng)度選擇一個(gè)最優(yōu)解,通過(guò)式(18)產(chǎn)生一個(gè)新解W、b,并在原有解和新解之間進(jìn)行貪婪選擇。最后在偵查蜂算法階段,本文檢查每個(gè)解是否已被耗盡,即沒(méi)有被更新的次數(shù)是否超過(guò)了預(yù)先設(shè)置好的limit 值,若有解滿足被耗盡的條件,則認(rèn)為這個(gè)解陷入了局部最優(yōu),因此,需要產(chǎn)生一個(gè)新解W、b替代這個(gè)原有解。直至算法滿足終止迭代條件后,本文選取適合度最高的解作為本文最終的解。
對(duì)于同一個(gè)解,由于W、b等參數(shù)的迭代優(yōu)化不具有邏輯相關(guān)性,因此使用并行方式進(jìn)行新解的計(jì)算,這使得本文算法在時(shí)間效率方面有極大的提升。
基于1.2 節(jié)、1.3 節(jié)的計(jì)算結(jié)果,本文設(shè)計(jì)了一個(gè)旁路式的Tor流量實(shí)時(shí)識(shí)別、分類工具,將上述算法、模型應(yīng)用到現(xiàn)實(shí)流量監(jiān)管場(chǎng)景中。本工具既提供了Netflow[19]、nProb[20]等網(wǎng)絡(luò)流量分析技術(shù)的接口,實(shí)現(xiàn)實(shí)時(shí)的高并發(fā)流量的測(cè)試統(tǒng)計(jì),也可將具體的數(shù)據(jù)流通過(guò)交換機(jī)鏡像方式直接輸入到工具中,進(jìn)行實(shí)時(shí)識(shí)別和分類。輸入流量只支持TCP 形式的數(shù)據(jù)流。
本工具包含流量輸入模塊、數(shù)據(jù)處理模塊、分類形式選擇模塊、在線測(cè)試模塊和結(jié)果輸出模塊,具體邏輯實(shí)現(xiàn)過(guò)程如圖2 所示。數(shù)據(jù)處理模塊以10 s為單位,自動(dòng)提取出所需特征,并對(duì)每個(gè)特征進(jìn)行數(shù)據(jù)預(yù)處理,即將空值或超過(guò)閾值的數(shù)據(jù)處理為可以放進(jìn)工具中進(jìn)行分類的數(shù)據(jù);分類形式選擇模塊為想要選擇的分類模型,包括流量識(shí)別、流量分類2 種模式,工具會(huì)根據(jù)用戶所選擇的工作模式,提供對(duì)應(yīng)的ABC-LR 算法所計(jì)算生成的特征參數(shù);在線測(cè)試模塊能夠每10 s 檢測(cè)出先前10 s 讀取的數(shù)據(jù)是否為某一類流量。
圖2 在線流量識(shí)別系統(tǒng)流程Fig.2 Procedure of online traffic identification system
對(duì)于本文工具,如果需要訓(xùn)練檢測(cè)使用Tor的應(yīng)用程序,那么只需要重新訓(xùn)練輸出層,更改識(shí)別算法即可。
本文的實(shí)驗(yàn)環(huán)境采用實(shí)驗(yàn)室服務(wù)器,操作系統(tǒng)為CentOS Linux release 7.7.1908,內(nèi)核為3.10.0-693.el7.x86_6,CPU 為Intel?Xeon?Gold 6242 CPU 2.8 GHz 16cor,內(nèi)存為128 GB。
實(shí)驗(yàn)數(shù)據(jù)使用了文獻(xiàn)[2]公開(kāi)的網(wǎng)絡(luò)數(shù)據(jù)集。該數(shù)據(jù)集分為2 個(gè)部分:一部分是利用校園網(wǎng)抓包獲取的已分好類別的Tor 和非Tor 數(shù)據(jù)包;另一部分是包含來(lái)自18 個(gè)代表性應(yīng)用程序(如facebook、skype、spotify、gmail 等)的8 種類型的Tor 流量(瀏覽、聊天、音頻流、視頻流、郵件、VOIP、P2P 和文件傳輸),基本能夠包含人們?nèi)粘J褂靡蛱鼐W(wǎng)生成的數(shù)據(jù)類型。本文分別針對(duì)以上2 個(gè)數(shù)據(jù)集做流量識(shí)別、流量分類2 類實(shí)驗(yàn)。
本文實(shí)驗(yàn)采用了直接將流量輸入工具的方法,將數(shù)據(jù)流量進(jìn)行回放。
首先對(duì)1.1節(jié)列出的17個(gè)特征進(jìn)行了相關(guān)度計(jì)算,由于實(shí)時(shí)識(shí)別、分類工具每10 s 輸出一次結(jié)果,因此本文在上述數(shù)據(jù)集基礎(chǔ)上,截取8萬(wàn)余條時(shí)長(zhǎng)為10 s的Tor/非Tor 數(shù)據(jù)流作為特征相關(guān)性判斷的樣本。在將數(shù)據(jù)進(jìn)行如1.1 節(jié)所述的預(yù)處理后,2 個(gè)實(shí)驗(yàn)的特征相關(guān)度結(jié)果分別如表2、表3 所示。根據(jù)特征提取所消耗的時(shí)間,本文將特征數(shù)量固定在5 個(gè),以保證提取時(shí)長(zhǎng)不超過(guò)10 s。最 終,本文選取了fpps_c2s、fat_min、at_c2s_min、at_s2c_std、fat_mean 等特征作為流量識(shí)別實(shí)驗(yàn)的特征,fat_min、active、fat_mean、fat_std、at_s2c_std等特征作為流量分類實(shí)驗(yàn)的特征,因?yàn)樗鼈兿嚓P(guān)度的絕對(duì)值更大,相關(guān)性更高。
表2 流量識(shí)別特征相關(guān)度Table 2 Traffic identification feature correlation
表3 流量分類特征相關(guān)度Table 3 Traffic classification feature correlation
在神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)中,取特征數(shù)n=5,層數(shù)m=3,第1 層隱元數(shù)量h1=30,第2 層隱元數(shù)量h2=30,第3 層隱元數(shù)量h3=30。
在本文實(shí)驗(yàn)中,隨機(jī)選取80%的數(shù)據(jù)作為訓(xùn)練集,剩余的20%數(shù)據(jù)作為測(cè)試集。最大循環(huán)數(shù)MCN 設(shè)置為500,在使用本文實(shí)驗(yàn)算法(ABC-LR)時(shí),損失函數(shù)變化如圖3 所示,可見(jiàn)該算法對(duì)于基于深度學(xué)習(xí)的邏輯回歸算法損失函數(shù)收斂是具有效果的。
圖3 ABC-LR 算法下?lián)p失函數(shù)變化Fig.3 Change of loss function under ABC-LR algorithm
為證明本文實(shí)驗(yàn)算法的準(zhǔn)確率,將該算法與邏輯回歸(LR)、隨機(jī)森林、KNN 做對(duì)比,如圖4~圖6 所示。邏輯回歸算法不包含本文算法中的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),使用隨機(jī)梯度下降法作為參數(shù)迭代算法,最終根據(jù)參數(shù)與特征的計(jì)算將流量進(jìn)行多分類;隨機(jī)森林算法從原始數(shù)據(jù)集中抽樣選取子數(shù)據(jù)集,通過(guò)構(gòu)建多個(gè)決策樹(shù)對(duì)流量進(jìn)行識(shí)別和分類;KNN 算法通過(guò)查找每個(gè)數(shù)據(jù)最相似的數(shù)據(jù)結(jié)果來(lái)確定這條數(shù)據(jù)的類別。本文實(shí)驗(yàn)以精確率、召回率作為衡量指標(biāo),其中,精確率為正確預(yù)測(cè)為正的占全部預(yù)測(cè)為正的比例,召回率為正確預(yù)測(cè)為正的占全部實(shí)際為正的比例。
圖4 不同算法流量的識(shí)別精確率與召回率Fig.4 Identification accuracy rate and recall rate of different algorithms traffic
圖5 不同算法流量的分類精確率Fig.5 Classification accuracy rate of different algorithms traffic
圖6 不同算法流量的分類召回率Fig.6 Classification recall rate of different algorithms traffic
由實(shí)驗(yàn)數(shù)據(jù)可知,本文算法(ABC-LR)相比起一些其他常見(jiàn)的有監(jiān)督學(xué)習(xí)算法,準(zhǔn)確性更高。在流量識(shí)別實(shí)驗(yàn)中,精確率和召回率分別達(dá)到了90%、92%左右;而在流量分類實(shí)驗(yàn)中,各類應(yīng)用程序流量的分類精確率、召回率平均達(dá)到了90%左右。
為證明本文迭代算法的準(zhǔn)確性以及對(duì)于計(jì)算大量數(shù)據(jù)的適合性,本實(shí)驗(yàn)選取了8 萬(wàn)余條時(shí)長(zhǎng)為10 s的數(shù)據(jù)流,其中包含8 種應(yīng)用類型的Tor/非Tor 流量作為實(shí)驗(yàn)數(shù)據(jù)。在參數(shù)的迭代計(jì)算中,分別使用梯度下降算法以及本文算法(ABC-LR)。首先計(jì)算出8 萬(wàn)余條數(shù)據(jù)流的5 種特征值,并對(duì)數(shù)據(jù)進(jìn)行清洗和預(yù)處理,統(tǒng)一初始化參數(shù),只統(tǒng)計(jì)從特征輸入到分類結(jié)束的時(shí)長(zhǎng)。統(tǒng)計(jì)指標(biāo)準(zhǔn)確率的數(shù)值為分類正確的數(shù)據(jù)流數(shù)量與總數(shù)據(jù)流數(shù)量的比值,如表4 所示。
表4 ABC-LR 與梯度下降的處理時(shí)間及準(zhǔn)確率Table 4 Processing time and accuracy of ABC-LR and gradient descent in traffic identification
通過(guò)表4 可以看出,相比梯度下降,本文算法(ABC-LR)對(duì)于大量流量的處理更具有適合性,同時(shí)準(zhǔn)確率也更高。
為了檢測(cè)本文所設(shè)計(jì)的基于ABC-LR 算法的流量識(shí)別、分類工具是否能夠?qū)崟r(shí)、準(zhǔn)確地輸出較高流量的狀態(tài),本實(shí)驗(yàn)將網(wǎng)絡(luò)吞吐率設(shè)置在10 000 pps,工具每10 s 會(huì)對(duì)進(jìn)入系統(tǒng)的流量進(jìn)行一次分類。當(dāng)系統(tǒng)開(kāi)啟后,如在08:00:00 時(shí)刻,會(huì)輸出07:59:50-08:00:00 出現(xiàn)的所有數(shù)據(jù)流的種類。本文對(duì)2 類數(shù)據(jù)均做了實(shí)時(shí)有效性實(shí)驗(yàn)。由圖7 和圖8 數(shù)據(jù)可知,本文工具可以實(shí)時(shí)對(duì)匿名流量進(jìn)行識(shí)別及分類,并達(dá)到90%以上的精確率及召回率。
圖7 基于ABC-LR 算法工具長(zhǎng)時(shí)間流量識(shí)別精確率與召回率Fig.7 Accuracy rate and recall rate of long time traffic identified based on ABC-LR algorithm tool
圖8 基于ABC-LR 算法工具長(zhǎng)時(shí)間流量分類精確率與召回率Fig.8 Accuracy rate and recall rate of long time traffic classification based on ABC-LR algorithm tool
本文提出一種基于人工蜂群算法的Tor 流量在線識(shí)別方法,通過(guò)計(jì)算特征匹配度篩選出適合實(shí)時(shí)提取的特征,將深度學(xué)習(xí)與流量分類相結(jié)合,構(gòu)造基于邏輯回歸的神經(jīng)網(wǎng)絡(luò)模型。對(duì)于模型迭代方式,設(shè)計(jì)加入人工蜂群機(jī)制的回歸模型,融入人工蜂群機(jī)制計(jì)算消耗小、對(duì)特征數(shù)據(jù)關(guān)聯(lián)性敏感度低的特性。此外,基于以上算法模型開(kāi)發(fā)一種在線實(shí)時(shí)進(jìn)行Tor 等匿名流量分類識(shí)別的工具,既可獨(dú)立使用,也可結(jié)合已有系統(tǒng)配合使用。實(shí)驗(yàn)結(jié)果表明,本文算法及工具解決了傳統(tǒng)算法存在的各類問(wèn)題,大幅提高了識(shí)別準(zhǔn)確率。由于本文所選數(shù)據(jù)集來(lái)自高校學(xué)生日常使用流量數(shù)據(jù),因此下一步考慮將研究范圍擴(kuò)大至整個(gè)社會(huì)領(lǐng)域,獲取更多職業(yè)的人群Tor 流量使用數(shù)據(jù),從而驗(yàn)證本文工具的準(zhǔn)確性。