亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于堆棧式自動編碼器的加密流量識別方法

        2018-11-20 06:08:56陳雪嬌
        計算機工程 2018年11期
        關鍵詞:類別加密分組

        王 攀,陳雪嬌

        (1.南京郵電大學 現(xiàn)代郵政學院,南京 210003; 2.南京信息職業(yè)技術學院 通信學院,南京 210023)

        0 概述

        流量分類與識別是提升網(wǎng)絡管理與安全監(jiān)測水平,改善服務質量的基礎,也是網(wǎng)絡設計與規(guī)劃等網(wǎng)絡行為的前提。隨著用戶隱私保護和安全意識的增強,SSL、SSH、VPN和Tor等技術得到了越來越廣泛的應用,導致加密流量在網(wǎng)絡傳輸中的比重越來越高。

        因采用應用層加密,傳統(tǒng)的端口匹配[1]、DPI深度包檢測[2-4]等技術無法準確識別這類加密應用流量,相關研究人員也一直在嘗試通過各種機器學習方法,如SVM、決策樹、樸素貝葉斯等[5-7],圍繞流特征、凈荷特征以及混合特征進行識別和分類。然而這些方法都存在2個問題,一個就是機器學習的特征提取和選擇非常復雜,耗時耗力,且非常依賴特征專家的知識面和經(jīng)驗;另一個就是分類準確率不高。

        相比其他機器學習方法,深度學習具有深層結構的特點,而其他淺層結構模型,如最大熵和Softmax回歸、SVM等方法的局限性主要是依賴于有標記的樣本、對復雜函數(shù)難以表示和陷入局部最優(yōu)化,或者泛化能力受到樣本數(shù)據(jù)量的影響較大,如BP算法。深度學習采用訓練多個單層非線性網(wǎng)絡,組合底層特征構成數(shù)據(jù)的抽象表示,從而發(fā)現(xiàn)并且刻畫問題內部復雜的結構特征,故而表達數(shù)據(jù)的本質特征。

        鑒于上述深度學習的優(yōu)點,研究人員開始探討深度學習方法在流量識別中的應用。文獻[8]嘗試用深度學習的方法來識別流量,采用堆棧式自動編碼器(Stacked Autoencoder,SAE)來識別協(xié)議及應用,并對未知流量進行識別,達到了較好的準確率,但文中所采用的數(shù)據(jù)集為非公開數(shù)據(jù)集,無法進行驗證對比。文獻[9]提出采用SAE和卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)對加密流量進行識別,但對于數(shù)據(jù)的預處理和模型參數(shù)的選擇等方面論述得不夠清晰。文獻[10]提出一種基于CNN的流量分類算法,分別采用公開數(shù)據(jù)集和實際數(shù)據(jù)集進行測試,并與傳統(tǒng)分類方法相比,提高了流量分類的精度,減少了分類使用的時間,但并未涉及對加密流量的分類識別。文獻[11]提出基于馬爾科夫模型的半監(jiān)督學習分類器進行流量分類。

        本文提出一種基于SAE的加密流量識別方法,一方面利用SAE的無監(jiān)督特性及在數(shù)據(jù)降維方面的優(yōu)勢,結合多層感知機(Multi-Layer Perceptron,MLP)的有監(jiān)督分類學習,實現(xiàn)對加密應用流量的準確識別;另一方面考慮到樣本數(shù)據(jù)集的類別不平衡性對分類精度的影響,本文采用SMOTE過抽樣方法對不平衡數(shù)據(jù)集進行處理。

        1 SAE

        自動編碼器是一種多層神經(jīng)網(wǎng)絡,屬于非監(jiān)督學習,不需要對訓練樣本進行標記,其輸入層和輸出層表示相同的含義——具有的節(jié)點數(shù)。自動編碼器學習的是一個輸入輸出相同的“恒等函數(shù)”,其意義在于中間層,這一層是輸入向量的特征表達。其原理表示如下:

        假設輸入一個n維信號x(x∈[0,1]),經(jīng)過輸入層到達中間層,信號變?yōu)閥,可以用下式表示:

        y=a(Wx+b)

        (1)

        其中,a()表示激活函數(shù),如Sigmoid函數(shù)、ReLU函數(shù)等,實現(xiàn)非線性變換,W為權值,b為偏置。信號y經(jīng)過解碼層解碼,輸出到輸出層,輸出層和輸入層一樣有n個神經(jīng)元,假設輸出信號為z,計算公式如下:

        z=a(W′y+b′)

        (2)

        則z為x的預測值,W′、b′同樣分別表示權值與偏置,以區(qū)別于W、b。通過調整網(wǎng)絡參數(shù),使得最終輸出的z與原始輸入的x盡可能相近??赏ㄟ^損失/誤差函數(shù)進行最小化運算得到,損失/誤差函數(shù)可以是均方差(MSE)、交叉熵(Cross Entropy)等。

        SAE是深度學習領域常用的一個深度學習模型,由多個自動編碼器堆疊而成,其目的是為了逐層提取輸入數(shù)據(jù)的高階特征,常被稱為逐層貪婪訓練學習過程,在此過程中逐層降低輸入數(shù)據(jù)的維度,將一個復雜的輸入數(shù)據(jù)轉化成了一個系列簡單的高階特征,然后再把這些高階特征輸入一個分類器進行分類[12]。如圖1所示,SAE的訓練過程主要分為以下4步:

        1)給定初始輸入Y,采用無監(jiān)督方式訓練第一層自動編碼器V,輸出為Y′,設定輸入Y和輸出Y′的損失函數(shù),或者叫做重構誤差,最小化損失函數(shù)以減少重構誤差達到設定值。

        2)把第一個自動編碼器(AE1)隱含層的輸出V作為第二個自動編碼器(AE2)的輸入,采用以上同樣的方法訓練自動編碼器Z。

        3)重復第2步直到初始化完成所有自動編碼器。

        4)把最后一個SAE的隱含層輸出(如圖1中的Z)作為分類器的輸入,然后采用有監(jiān)督的方法訓練分類器的參數(shù)。

        圖1 SAE訓練過程

        2 基于SAE的加密流量識別方法

        2.1 數(shù)據(jù)預處理

        網(wǎng)絡流量數(shù)據(jù)與圖像既有相同之處,也有不同之處。相同之處在于網(wǎng)絡數(shù)據(jù)包分組中的每一個字節(jié)都是由8 bit構成,取值范圍為0~255,非常類似于黑白圖片中的一個灰度像素,可以借鑒很多圖像識別的深度學習方法;不同之處在于數(shù)據(jù)包分組的長度,即每個數(shù)據(jù)包所包含的字節(jié)數(shù)長短不一,因而無法直接作為深度學習模型的輸入,必須進行數(shù)據(jù)預處理。圖2為樣本數(shù)據(jù)的預處理過程。

        圖2 數(shù)據(jù)預處理流程

        數(shù)據(jù)預處理流程如下:

        步驟1樣本數(shù)據(jù)包文件導入:流量樣本數(shù)據(jù)集有各種形式,比如原始數(shù)據(jù)包、包特征文件等。為獲取流量樣本文件中所存儲的分組信息,一般首先對樣本文件頭部進行讀取,以獲得該樣本文件的概要信息,比如總共有多少分組或有哪些特征項。如果是原始數(shù)據(jù)包形式,還需要進行數(shù)據(jù)包過濾。原因在于樣本數(shù)據(jù)包文件往往不夠純凈,即其中雖包含大量的準確樣本數(shù)據(jù)包,但也包含部分其他數(shù)據(jù)包,比如APR、DHCP等局域網(wǎng)數(shù)據(jù),這些數(shù)據(jù)的濾除對于后期的訓練和測試都是有意義的。

        步驟2循環(huán)讀取數(shù)據(jù)包:預處理過程逐個讀取流量樣本數(shù)據(jù)集中每一個分組,對該分組完成預處理之后再讀取下一個分組,直至文件中最后一個分組為止。

        步驟3分組截斷(Truncation)和補零(zero-padding):形成分組字節(jié)矩陣(Packet Byte Matrix,PBM)作為深度學習模型的輸入。其中,PBM的每一行都是流量樣本中的一個分組,也是網(wǎng)絡的輸入基本單元,稱為分組字節(jié)向量(Packet Byte Vector,PBV)??紤]到深度學習的輸入維度需統(tǒng)一,而每個分組的大小都不一樣,因此需要考慮要么統(tǒng)一截斷,要么長度不足的補零。定義Truncation_len為截斷長度,需要考慮如下3個問題:

        1)每個分組的大小最大值為MTU,即1 500 Byte,即以太網(wǎng)傳輸?shù)淖畲驣P報文(包含IP頭部)是1 500 Byte。所以,Truncation_len值的理論范圍為0 Byte~1 500 Byte。

        2)Truncation_len的選值。該值過大,會造成深度學習訓練的輸入?yún)?shù)過多,從而加大訓練的復雜度;該值過小,則會犧牲識別的準確性,因為有可能被截斷的凈荷內容中是包含有流量識別的特征信息。

        3)數(shù)據(jù)集中的分組大小分布。從數(shù)據(jù)集中的分組大小的分布可以看出,分組大小主要分布在頭部(前300 Byte)和尾部(后1 200 Byte~1 500 Byte)。因此,本文從保障準確性的角度出發(fā),選擇Truncation_len為最大值,即1 500 Byte。

        步驟4歸一化(Normalization):為了提升訓練的性能,將每個分組歸一化至0~1。每個分組大小為0~255,因此每個分組大小均除以256。

        步驟5類別不平衡的樣本數(shù)據(jù)集處理。詳述見節(jié)2.2。

        步驟6樣本標記:根據(jù)流量樣本數(shù)據(jù)集對數(shù)據(jù)包文件的標記。對PBM進行標記,可以通過在矩陣中增加一列用于標記每一行,即PBV,也可單獨建立標記向量用于標記PBV。

        2.2 類別不平衡的樣本數(shù)據(jù)集處理

        無論是淺層機器學習,還是深度學習,分類識別研究基礎都是基于一種假設:各種網(wǎng)絡應用流都是均勻分布在網(wǎng)絡中,即網(wǎng)絡數(shù)據(jù)流的應用類別是平衡的。然而,現(xiàn)實網(wǎng)絡中各種加密應用數(shù)據(jù)流分布很不均衡,比如通過加密協(xié)議承載的音、視頻流遠大于即時通信、純網(wǎng)頁加密流等。網(wǎng)絡流類別不平衡是指流量樣本數(shù)據(jù)集中存在的類別樣本數(shù)量不均衡,通過訓練,這些分類算法可能會忽略少數(shù)類別的流樣本導致欠擬合,或重視少數(shù)類的差別造成過擬合[13]。

        在進行深度學習訓練之前,本文采用過抽樣和欠抽樣2種辦法來處理不平衡數(shù)據(jù)集。對于比例過大的樣本采用欠抽樣方法來減少樣本數(shù)量;對于比例過小的樣本采用過抽樣技術提高樣本的可分性,拓展分類的決策邊界。SMOTE算法是一種隨機過抽樣方法,其主要思想是應用K-最近鄰方法,在少數(shù)類樣本之間利用線性插值生成新的樣本,從而增加少數(shù)類樣本的數(shù)量,使數(shù)據(jù)集的類別數(shù)量相對平衡[14]。SMOTE 算法按照一定規(guī)則,利用插值方法合成新樣本有良好的泛化作用,避免了隨機復制原有樣本的盲目和局限。沒有引進少數(shù)類的冗余信息,擴展決策區(qū)域,避免過擬合問題,改善了數(shù)據(jù)集的可分性。

        本文所采用的數(shù)據(jù)來源于“ISCX VPN-non VPN traffic dataset”[15],該數(shù)據(jù)集包括常規(guī)加密和VPN隧道傳輸?shù)?類加密應用。本文選擇常規(guī)加密流量中的15種應用作為訓練和測試的樣本數(shù)據(jù),樣本數(shù)據(jù)集均為PCAP文件格式。為了說明不平衡樣本對性能的影響,同時給出了平衡樣本,詳細描述見表1。從表1可以看出,不平衡樣本中比例最高的netflix可以達到27.701%,比例最少的aim_chat僅有0.663%;對于樣本量少的類別采用SMOTE過抽樣方法,而對于樣本量多的類別采用欠抽樣方法,通過這2種方式預處理之后可以看出,樣本基本都在5%~8%。

        表1 樣本數(shù)據(jù)集描述

        2.3 基于SAE的模型架構及加密流量識別算法

        根據(jù)第1節(jié)所述的SAE模型的訓練過程,可將基于SAE的加密流量識別模型的搭建和訓練分為2大階段:第一階段是SAE的訓練過程,這一深度學習訓練過程是無監(jiān)督的,稱之為SAE訓練過程;第二階段是將訓練好的SAE與分類輸出相連,完成一個基于MLP的分類模型的訓練,這一階段是有監(jiān)督的,稱之為SAE分類器訓練過程?;谏鲜龅?個訓練過程,本文所提出的SAE模型架構也分為2個部分:SAE訓練過程和SAE分類器訓練過程。

        如圖3所示,第一階段,SAE訓練過程中由3個自動編碼器堆疊而成。

        圖3 SAE模型架構

        訓練過程分為如下幾步:

        Z=∑WY+b

        (3)

        計算后得到的結果采用ReLu作為激活函數(shù),其公式表示如下:

        ReLU(Z)=max[0,Z]

        (4)

        輸出層與輸入層相同,由1 500個神經(jīng)元構成。定義損失函數(shù)為MSE,為盡可能減少重構誤差,實質上就是最小化輸入與輸出的誤差,假設n為輸出神經(jīng)元個數(shù),則定義如下:

        (5)

        在反向傳播的過程中,采用隨機梯度下降(Stochastic gradient descent,SGD)算法更新權值W、偏置b以最小化損失函數(shù),計算公式如下:

        (6)

        (7)

        其中,ρ為學習速率。

        第1階段整體處理過程總結見算法1,即SAE模型訓練算法。

        算法1SAE模型訓練算法

        輸入Y={y1,y2,…,yk},k=1 500,即PBV

        1.設定相關初始化參數(shù)。激活函數(shù)α= ReLU; е為訓練周期,即epoches;τ為mini_batch的大小;

        2.for t from 1 to e do

        3.for each τ do

        4.針對每一個流量樣本y∈Y,執(zhí)行如下步驟:

        5.前向傳播:計算式(3);

        6.激活函數(shù):計算式(4);

        7.計算損失函數(shù)并最小化:計算式(5);

        8.反向傳播更新權值:計算式(6)和式(7);

        9.end for

        10.end for

        第2個階段是SAE分類器訓練過程,如圖3所示,由1個輸入層、3個隱藏層和1個輸出層構成,訓練過程分為如下6步:

        步驟1輸入數(shù)據(jù)采用第2.1節(jié)所描述的數(shù)據(jù)預處理后所得到的PBV,訓練數(shù)據(jù)輸入維度為1 500,即輸入為1 500個神經(jīng)元。

        步驟23個隱藏層分別使用SAE模型中訓練好的Autoencoder1、Autoencoder2和Autoencoder3,神經(jīng)元個數(shù)分別為740、92和32,對輸入數(shù)據(jù)進行加權、偏置,見式(3)。

        步驟3計算后得到的結果均采用ReLu作為激活函數(shù),見式(4)。

        (8)

        步驟5在模型訓練過程中,采用交叉熵作為損失函數(shù),假設L表示損失函數(shù),則定義如下:

        (9)

        步驟6在反向傳播的過程中,同樣采用SGD算法更新權值W、偏置b以最小化損失函數(shù),見式(6)和式(7)。

        第2階段整體處理過程總結見算法2,即SAE分類模型訓練算法。

        算法2SAE分類模型訓練算法

        輸入Y={y1,y2,…,yk},k=1 500,即PBV

        1.設定相關初始化參數(shù)。隱藏層激活函數(shù)α= ReLU; 分類激活函數(shù)s = Softmax;е為訓練周期,即epoches;τ為mini_batch的大小;

        2.for t from 1 to e do

        3.for each τ do

        4.針對每一個流量樣本y∈Y,執(zhí)行如下步驟:

        5.前向傳播:計算式(3);

        6.激活函數(shù):計算式(4);當?shù)竭_輸出層時,計算式(8);

        7.計算損失函數(shù)并最小化:計算式(9);

        8.反向傳播更新權值:計算式(6)和式(7);

        9.end for

        10.end for

        3 實驗與結果分析

        3.1 實驗設置

        為了測試并對比SAE的流量識別性能,本文選擇最基本的深度學習模型——MLP來與之對比,實驗環(huán)境參數(shù)見表2。本文設計了一個簡單的MLP模型用于加密流量識別,模型采用1個輸入層,1 500個神經(jīng)元;2個隱藏層,分別為128和32個神經(jīng)元,激活函數(shù)為ReLU;1個輸出層,15個神經(jīng)元,激活函數(shù)為Softmax用于分類。

        表2 實驗環(huán)境參數(shù)

        在訓練過程中,將數(shù)據(jù)集隨機的分成2部分:一部分是訓練集,占比為60%;剩下的40%為測試集。深度學習的模型訓練過程中所采用的優(yōu)化器、損失函數(shù)、epoches以及mini_batch等參數(shù)信息見表3。

        表3 模型訓練參數(shù)設置

        圖4為SAE模型的訓練過程中準確率和損失率的變化趨勢。可以看出,在200個訓練周期中,SAE模型的準確率穩(wěn)定攀升,直至0.99,最后趨于穩(wěn)定;而損失率持續(xù)下降并趨于穩(wěn)定。

        圖4 訓練過程中的準確率和損失率變化曲線

        3.2 性能參數(shù)

        為了評估模型的性能,本文采用以下2類指標:

        1)精確率和召回率

        誤報(False Positive,FP)是指非類別C(C指代一個特定的類別)的流量被分類成為類別C;真陰性(True Negative,TN)是指非類別C的流被分成非類別C;漏報(False Negative,FN)是指屬于類別C的流量被分類為非類別C;真陽性(True Positive,TP)是指屬于類別C的流量而被分類成類別C。

        精確率(Precision)和召回率(Recall)計算如下:

        (10)

        (11)

        2)F1-Score

        F1-Score是精確率和召回率加權調和平均,用于綜合反映整體的指標[18],最常見的F1-Score計算公式為:

        (12)

        3.3 基于平衡與不平衡數(shù)據(jù)集的對比

        為了驗證不平衡數(shù)據(jù)集與平衡數(shù)據(jù)集對分類性能的影響,本文分別用節(jié)2.2中所描述2種數(shù)據(jù)集,采用基于MLP的深度學習方法進行模型訓練和測試,得出的分類混淆矩陣如圖5所示。在該矩陣中,對角線上的元素代表分類正確的樣本數(shù)量,其他元素均為誤判??梢苑浅C黠@地看出,圖5(a)中有不少分類錯誤的樣本,而圖5(b)中分類性能較好??梢钥闯?不平衡數(shù)據(jù)集對于分類器的性能有直接的影響,因此本文中后續(xù)的實驗均基于第2.2節(jié)所描述的平衡數(shù)據(jù)集,以期最大程度上減少對分類性能的影響。

        圖5 基于平衡、不平衡數(shù)據(jù)集的MLP識別方法混淆矩陣

        3.4 分類實驗結果

        圖6展示了基于平衡數(shù)據(jù)集訓練出來的MLP和SAE 2種加密流量識別方法的分類混淆矩陣。從對角線上的元素數(shù)量,也即分類正確的樣本數(shù)量來看,基于SAE的分類方法要高于MLP方法。比如,對于aim_chat與ICQ這2種加密應用而言,因均為聊天類的應用,所以流量特征方面較為相近,容易造成誤判。在MLP識別方法中,aim_chat被誤判為ICQ的樣本數(shù)量高達174,已接近測試集的10%;而在SAE識別方法中,aim_chat被誤判為ICQ的樣本數(shù)量僅為59,大致為測試集的3%。

        圖6 基于SAE、MLP的加密流量識別方法混淆矩陣

        從混淆矩陣中還不能直觀的反映出2種方法的分類性能,圖7和圖8分別展示了MLP和SAE 2種加密流量識別方法在精確度、召回率和F1-Score 3個指標上的對比。雖然基于MLP的加密流量識別方法顯示出比較好的性能,但可以明顯看出,在aim_chat、Facebook、hangout和ICQ這4種流量特征相近的即時通信類加密應用的分類性能上,有比較大的差距。而圖8所展示出的基于SAE的加密流量識別方法則展示出了很好的分類性能。從表4中更能清晰地看到每一種加密應用的3項指標,尤其是總體指標,可以看出,基于SAE的加密流量識別方法在分類精度、召回率和F1-Score 3項指標均達到99%,高于基于MLP的加密流量識別方法的指標(96%),顯示出了優(yōu)秀的分類性能。

        圖7 基于MLP方法的精度、召回率和F1-Score

        圖8 基于SAE方法的精度、召回率和F1-Score

        表4 SAE、MLP的精確度、召回率和F1-Score

        4 結束語

        本文提出一種基于SAE的深度學習方法對加密應用流量進行分類識別,利用SAE的無監(jiān)督特性及在數(shù)據(jù)降維方面的優(yōu)勢,并結合MLP的有監(jiān)督分類學習,實現(xiàn)對加密流量的準確識別。同時考慮到樣本數(shù)據(jù)集的類別不平衡性對分類精度的影響,本文采用SMOTE過抽樣方法對不平衡數(shù)據(jù)集進行處理。實驗結果表明,該方法在樣本數(shù)據(jù)集類別平衡的情況下識別精確度和召回率可以達到99%。在未來工作中,將進一步減少訓練參數(shù),并研究采用非監(jiān)督的方式對加密應用實現(xiàn)準確識別。

        猜你喜歡
        類別加密分組
        一種基于熵的混沌加密小波變換水印算法
        分組搭配
        怎么分組
        分組
        認證加密的研究進展
        服務類別
        新校長(2016年8期)2016-01-10 06:43:59
        基于ECC加密的電子商務系統(tǒng)
        論類別股東會
        商事法論集(2014年1期)2014-06-27 01:20:42
        基于格的公鑰加密與證書基加密
        中醫(yī)類別全科醫(yī)師培養(yǎng)模式的探討
        18禁男女爽爽爽午夜网站免费| 日本精品女优一区二区三区| 丝袜美腿一区二区三区| 性大片免费视频观看| 中文字幕久久久久久久系列| 麻豆三级视频网站在线观看| 无码国产精成人午夜视频一区二区| 日本乱偷人妻中文字幕在线| 九九免费在线视频| 久久精品亚洲国产成人av| 国产av精品一区二区三区久久 | 国产免费一区二区三区免费视频| 香蕉视频www.5.在线观看| 亚洲无码毛片免费视频在线观看| 亚洲av色av成人噜噜噜| 国产三级av在线播放| 狠狠色狠狠色综合久久第一次| 国产美女自拍国语对白| 在线播放草猛免费视频| 精品人妻中文无码av在线| 黄色网址国产| 国产91成人自拍视频| 精品日韩亚洲av无码| 国内精品无码一区二区三区| 98精品国产高清在线xxxx| 亚洲第一黄色免费网站| 国产女人的高潮国语对白| 美女啪啪国产| 国产一区二区三区特黄| 亚洲午夜av久久久精品影院色戒| 无码精品a∨在线观看十八禁 | 免费人成黄页网站在线一区二区| 五月天国产成人av免费观看| 亚洲熟妇少妇69| 又爽又猛又大又湿的视频| 加勒比色老久久爱综合网| 在线亚洲人成电影网站色www| 久久99国产亚洲高清观看首页| 国产av一级片在线观看| 吃奶摸下激烈床震视频试看| 91亚洲人成手机在线观看|