国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于卷積神經(jīng)網(wǎng)絡的應用層協(xié)議識別方法

2019-01-06 07:27馮文博洪征吳禮發(fā)李毅豪林培鴻
計算機應用 2019年12期
關鍵詞:卷積神經(jīng)網(wǎng)絡

馮文博 洪征 吳禮發(fā) 李毅豪 林培鴻

摘 要:針對傳統(tǒng)網(wǎng)絡協(xié)議識別方法中人工提取特征困難以及識別準確率低等問題,提出了一種基于卷積神經(jīng)網(wǎng)絡(CNN)的應用層協(xié)議識別方法。首先,基于完整的傳輸控制協(xié)議(TCP)連接或用戶數(shù)據(jù)報協(xié)議(UDP)交互劃分原始網(wǎng)絡數(shù)據(jù),從中提取出網(wǎng)絡流;其次,通過數(shù)據(jù)預處理將網(wǎng)絡流轉化為二維矩陣,便于CNN的分析處理;然后,利用訓練樣本集合訓練CNN模型,自動化提取出網(wǎng)絡協(xié)議特征;最終,基于訓練成熟的CNN模型進行應用層網(wǎng)絡協(xié)議的識別。實驗結果表明,所提方法的總體協(xié)議識別準確率約為99.70%,能有效實現(xiàn)應用層協(xié)議的識別。

關鍵詞:應用層協(xié)議;網(wǎng)絡流;協(xié)議識別;特征工程;卷積神經(jīng)網(wǎng)絡

中圖分類號: TP393.0(一般性問題) 文獻標志碼:A

Application protocol recognition method based on convolutional neural network

FENG Wenbo1, HONG Zheng1*, WU Lifa2, LI Yihao1, LIN Peihong1

(1. College of Command and Control Engineering, Army Engineering University of PLA, Nanjing Jiangsu 210007, China;

2. College of Computer Science and Technology, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210023, China)

Abstract: To solve the problems in traditional network protocol recognition methods, such as difficulty of manual feature extraction and low recognition accuracy, an application protocol recognition method based on Convolutional Neural Network (CNN) was proposed. Firstly, the raw network data was divided according to Transmission Control Protocol (TCP) connection or User Datagram Protocol (UDP) interaction, and the network flow was extracted. Secondly, the network flow was converted into a two-dimensional matrix through data prepocessing to facilitate the CNN analysis. Then, a CNN model was trained using the training set to extract protocol features automatically. Finally, the trained CNN model was used to recognize the application network protocols. The experimental results show that, the overall recognition accuracy of the proposed method is about 99.70%, which can effectively recognize the application protocols.

Key words: application protocol; network flow; protocol recognition; feature engineering; Convolutional Neural Network (CNN)

0 引言

應用層協(xié)議識別是指通過人工分析或自動化手段從IP協(xié)議承載的網(wǎng)絡流量中提取出能夠標識網(wǎng)絡應用層協(xié)議的關鍵特征,然后以這些特征為基礎準確標識網(wǎng)絡流量所隸屬的應用層協(xié)議[1-3]。應用層協(xié)議識別技術有助于對網(wǎng)絡流量的組成進行分析,能夠為網(wǎng)絡管理與維護、網(wǎng)絡內容審計、網(wǎng)絡安全防御等多個研究領域提供數(shù)據(jù)支撐。

根據(jù)對人力的依賴程度,應用層協(xié)議識別可以分為人工分析和自動分析兩類。人工分析方法依靠研究人員的領域經(jīng)驗或先驗知識獲取協(xié)議特征信息,進而對網(wǎng)絡流量進行協(xié)議識別。而自動分析方法則基于模式識別、機器學習等理論從網(wǎng)絡流量中自動化提取協(xié)議特征,并以此特征作為協(xié)議識別的根據(jù),減少了人工開銷。本文工作針對自動分析方法進行研究。

網(wǎng)絡協(xié)議自動識別方法主要包括基于預設規(guī)則的協(xié)議識別方法、基于載荷特征的協(xié)議識別方法、基于主機行為的協(xié)議識別方法以及基于機器學習的協(xié)議識別方法四種。

基于預設規(guī)則的協(xié)議識別方法中最典型的方法是利用端口進行協(xié)議識別。但是隨著網(wǎng)絡應用的快速發(fā)展,很多應用都向用戶提供了自定義端口的功能,用戶可以根據(jù)自己的喜好設置網(wǎng)絡應用所使用的端口,這使得基于傳統(tǒng)的互聯(lián)網(wǎng)數(shù)字分配機構(Internet Assigned Numbers Authority, IANA)的端口分配規(guī)則[4]越來越難準確識別協(xié)議類型。

基于載荷特征的協(xié)議識別方法主要是使用深度包檢測和正則表達式技術,通過匹配數(shù)據(jù)包載荷中預定義的固定特征串,來進行協(xié)議識別。這種識別方法簡單、準確度較高,但不能識別加密協(xié)議,而且特征串的數(shù)量較多時,計算開銷將顯著增長,識別效果可能降低。

基于主機行為的協(xié)議識別方法主要利用了網(wǎng)絡流量的統(tǒng)計特性,如數(shù)據(jù)流持續(xù)時間、字節(jié)數(shù)、傳輸間隔時間等在網(wǎng)絡數(shù)據(jù)傳輸過程可直接測量的統(tǒng)計參數(shù)。此類方法有效避免前兩種方法的特征提取操作,但因統(tǒng)計信息采集繁瑣,且受網(wǎng)絡環(huán)境影響,統(tǒng)計結果可能不穩(wěn)定,協(xié)議識別的準確度偏低。

機器學習是人工智能領域的一項重要技術,機器學習利用計算機對大規(guī)模數(shù)據(jù)進行挖掘,分析數(shù)據(jù)特征之間的規(guī)律[5]?;跈C器學習的協(xié)議識別方法可以分為淺層學習和深度學習兩類[6]。淺層學習算法本質上屬于淺層結構算法,主要包括支持向量機(Support Vector Machine, SVM)、樸素貝葉斯、決策樹、K-means等機器學習算法。這些算法難以表示復雜的非線性函數(shù)關系,處理復雜問題的泛化能力有限[7]。深度學習算法主要包括卷積神經(jīng)網(wǎng)絡、長短期記憶網(wǎng)絡等,采用多層神經(jīng)網(wǎng)絡進行特征學習,其中淺層神經(jīng)元負責提取簡單的低層特征,深層神經(jīng)元負責將低層特征組合成更加抽象、復雜的高層特征。深度學習主要應用在自然語言處理、圖像分類與識別、語音識別等領域,且取得了很好的效果[8]。深度學習可以很好解決淺層學習在復雜非線性函數(shù)關系的表示問題。Cybenko[9]使用嚴格數(shù)學思維證明了單層神經(jīng)網(wǎng)絡具備表示任意復雜度函數(shù)的能力。

針對現(xiàn)有網(wǎng)絡協(xié)議識別方法存在人工提取特征困難的問題,結合深度學習在分類方面的優(yōu)勢,本文提出了一種基于卷積神經(jīng)網(wǎng)絡的網(wǎng)絡協(xié)議識別方法。該方法能夠從訓練數(shù)據(jù)中進行隱式學習,自動提取網(wǎng)絡流量的協(xié)議特征,有效克服人工特征選擇的不足,進而提高協(xié)議識別的準確率。鑒于協(xié)議數(shù)據(jù)的復雜性,本文通過優(yōu)化網(wǎng)絡層數(shù)、卷積核大小以及特征圖數(shù)量等參數(shù),促使模型在具有較高識別準確率的同時,能夠快速準確地收斂至全局最優(yōu)解。

1 相關工作

卷積神經(jīng)網(wǎng)絡是目前深度學習領域最為重要的分類模型,在很多領域的應用超過了傳統(tǒng)模式識別與機器學習算法能夠達到的精度與性能[10]。近年來,研究人員相繼提出了許多關于卷積神經(jīng)網(wǎng)絡的協(xié)議識別方法。文獻[11]較早使用深度學習和神經(jīng)網(wǎng)絡解決網(wǎng)絡協(xié)議識別問題,通過人工神經(jīng)網(wǎng)絡對傳輸控制協(xié)議(Transmission Control Protocol, TCP)會話的前1024B數(shù)據(jù)進行學習分類。該方法首先將數(shù)據(jù)轉化為一維向量,然后將向量輸入人工神經(jīng)網(wǎng)絡模型進行訓練。實驗測試得到的已知協(xié)議識別平均準確率達到97.9%。文獻[12]研究了采用不同優(yōu)化器訓練的卷積神經(jīng)網(wǎng)絡對網(wǎng)絡協(xié)議識別的性能影響,實驗結果表明,基于梯度下降法的優(yōu)化器性能最佳,但整體識別準確率只有77.81%,且文獻[11-12]只考慮了基于TCP的應用層協(xié)議。文獻[13]首次將卷積神經(jīng)網(wǎng)絡應用到惡意流量分類領域,比較了使用所有協(xié)議層次數(shù)據(jù)以及僅使用應用層協(xié)議數(shù)據(jù)的效果,將數(shù)據(jù)的前784B轉換為28×28的二維圖像后輸入卷積神經(jīng)網(wǎng)絡進行分類,分類結果表明使用所有協(xié)議層次數(shù)據(jù)作為研究對象達到的分類效果最佳。Ma等[14]針對已知和未知流量的識別問題,提出基于卷積神經(jīng)網(wǎng)絡的未知流量識別方法。實驗選取13種協(xié)議組建數(shù)據(jù)集,其中10種協(xié)議作為已知協(xié)議,其余3種協(xié)議作為未知協(xié)議流量的模擬數(shù)據(jù),通過與傳統(tǒng)機器學習算法支持向量機、樸素貝葉斯分類模型進行實驗對比,測試結果表明,卷積神經(jīng)網(wǎng)絡模型的識別效果都優(yōu)于傳統(tǒng)機器學習方法,但其方法不能對未知協(xié)議流量中包含的各種協(xié)議進行準確識別。陳雪嬌等[15]利用卷積神經(jīng)網(wǎng)絡的識別準確率高和自主進行特征選擇的優(yōu)勢,將其應用于加密流量的識別,測試結果表明該方法優(yōu)于深度包檢測(Deep Packet Inspection, DPI)方法。葉松[16]提出了一種能夠應用于高級持續(xù)性威脅(Advanced Persistent Threat, APT)攻擊防御系統(tǒng)的協(xié)議識別技術,通過對網(wǎng)絡流特征的深度學習,建立起應用層協(xié)議的特征庫,有助于APT攻擊防御的準確判斷。Ren等[17]提出了一種針對無線通信網(wǎng)絡的協(xié)議識別方法,首先利用一維卷積神經(jīng)網(wǎng)絡進行自動化的特征提取,然后基于支持向量機(SVM)對應用層協(xié)議進行分類。

從現(xiàn)有研究可以看出,深度學習在協(xié)議識別領域的應用尚處于起步階段,不同方法的數(shù)據(jù)集構造方式不同,且多使用一般結構的卷積神經(jīng)網(wǎng)絡,未充分考慮網(wǎng)絡結構與參數(shù)對協(xié)議識別過程的影響。而在深度學習領域,模型結構與參數(shù)對于分類效果有重要影響,隨著卷積神經(jīng)網(wǎng)絡層數(shù)的不斷增加,模型也越來越難訓練,各種優(yōu)化網(wǎng)絡的方法不斷出現(xiàn),如采用新的激活函數(shù)修正線性單元(Rectified Linear Unit, ReLU)以及解決神經(jīng)網(wǎng)絡過擬合問題的Dropout機制。

2 網(wǎng)絡協(xié)議識別

網(wǎng)絡協(xié)議識別首先需要將連續(xù)的網(wǎng)絡流量按照一定粒度進行劃分,常見的粒度包括Bit-level、Packet-level、Flow-level、Stream-level四類[18]。Bit-level關注網(wǎng)絡流量的內容特征;Packet-level關注數(shù)據(jù)包(Packet)的內容或統(tǒng)計特征;Flow-level關注網(wǎng)絡流(Flow)的內容或統(tǒng)計特征,所涉及的網(wǎng)絡流可以是一個完整的TCP連接或者一次用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol, UDP)交互[19];Stream-level關注通信主機交互產(chǎn)生的流量。本文選擇Flow的內容特征作為分析對象,這也是目前協(xié)議識別領域采用較多的分析對象。

同一種協(xié)議的網(wǎng)絡流之間存在一定的相似性,可以利用這種相似性區(qū)分不同協(xié)議產(chǎn)生的網(wǎng)絡流量[20]。利用網(wǎng)絡流的內容信息或統(tǒng)計信息,建立一種函數(shù)映射關系:f:X→C,其中:X表示待分類的網(wǎng)絡流集合,C表示協(xié)議類型集合,將網(wǎng)絡流映射為具體的協(xié)議類型?;跈C器學習的協(xié)議識別分為訓練和測試兩個階段[21]。在訓練階段,首先對網(wǎng)絡流進行預處理;然后通過特征工程方法進行特征提取;最后通過機器學習算法構造分類器,并對分類器進行訓練。在測試階段,將經(jīng)過預處理和特征提取后的網(wǎng)絡流輸入訓練好的分類器,對網(wǎng)絡流進行協(xié)議類型預測。網(wǎng)絡流的所有字段以及傳輸過程中的所有特性都可以作為特征用于協(xié)議識別,然而如何選出最有效的特征是協(xié)議識別領域的突出問題。

2)卷積神經(jīng)網(wǎng)絡要求輸入數(shù)據(jù)大小是固定的,因此只能選取固定長度、并且能夠反映流量特征的網(wǎng)絡流,選取784B是流的前半部分數(shù)據(jù)更能反映流量特征,后半部分數(shù)據(jù)更多的是協(xié)議的數(shù)據(jù)部分,這種處理與目前一些流量分析方法的特征選取思路[24]相同。

從必要性的角度看:同一種協(xié)議的網(wǎng)絡流存在一定相似性,這種相似性具體表現(xiàn)為網(wǎng)絡流的某些特定位置上出現(xiàn)一些固定取值或頻繁出現(xiàn)的字段,如版本號字段、服務類型字段、標識符等信息,這種現(xiàn)象的產(chǎn)生主要是因為流量特征受到協(xié)議字段的語法約束或網(wǎng)絡環(huán)境限制。

3.3 分類模型構建

為了將卷積神經(jīng)網(wǎng)絡應用于應用層協(xié)議識別,首先需要針對流量識別的需求設計卷積神經(jīng)網(wǎng)絡的結構,此后,利用訓練數(shù)據(jù)集對二維卷積神經(jīng)網(wǎng)絡進行訓練,使卷積神經(jīng)網(wǎng)絡具有識別網(wǎng)絡流量所對應的應用層協(xié)議的能力。

3.3.1 卷積神經(jīng)網(wǎng)絡基本結構

卷積神經(jīng)網(wǎng)絡的工作流程如圖2所示。首先,對于輸入訓練樣本,經(jīng)過若干交替的卷積層和池化層處理,自動提取訓練樣本的特征;然后,將提取出的特征交給一個或多個包含不同神經(jīng)元數(shù)量的全連接層進行處理,逐層處理縮減向量的維數(shù);進而,將縮減向量傳遞至輸出層,得到練樣本標簽預測值,計算預測值與真實值之間的差異,將差異情況輸入損失函數(shù)轉化為損失值;最后,利用損失值作為反饋信息對權重值進行調整,促使優(yōu)化器朝著損失值減小的方向調節(jié)。

卷積神經(jīng)網(wǎng)絡需要逐層搭建,基本結構包括輸入層、卷積層、池化層、全連接層和輸出層。輸入層和輸出層相對簡單,輸入層用于數(shù)據(jù)輸入,所包含的神經(jīng)元個數(shù)等于特征向量的維數(shù)。輸出層是輸出識別結果,其包含神經(jīng)元的個數(shù)等于要分類的類別總數(shù)。下面重點對卷積層、池化層和全連接層進行介紹。

1)卷積層使用卷積核矩陣按照自上而下、自左而右的順序掃描訓練,同時將卷積核矩陣的每個元素與掃描所覆蓋區(qū)域的每個元素相乘求和得到輸出值,這種處理過程被稱為卷積運算,因此每一個卷積核對應一種特征提取器。

2)池化層將訓練樣本劃分成互不相交的分塊,并選擇一個單值作為分塊輸出,通常選擇分塊中的最大值或均值。池化有助于縮減數(shù)據(jù)大小,提取出訓練樣本的顯著特征,降低噪聲對于數(shù)據(jù)處理的干擾。

3)全連接層的作用是整合具有類別區(qū)分能力的局部特征。全連接層的每個神經(jīng)元與上一層、下一層的所有神經(jīng)元都保持連接。由于神經(jīng)元之間是全連接關系,因此被稱為全連接層。

卷積神經(jīng)網(wǎng)絡是一種自動提取特征的深度學習模型,建立起一個從原始數(shù)據(jù)輸入到結果輸出的函數(shù)映射。卷積神經(jīng)網(wǎng)絡學習獲得的高層特征比基于專家經(jīng)驗的人工特征能夠更好完成分類任務。

3.3.2 卷積神經(jīng)網(wǎng)絡結構設計

針對網(wǎng)絡協(xié)議識別的實際需求,本文在設計卷積神經(jīng)網(wǎng)絡結構時考慮了如下因素:1)根據(jù)數(shù)據(jù)集的特征,設計輸入層的數(shù)據(jù)格式為28×28的矩陣。鑒于網(wǎng)絡協(xié)議數(shù)據(jù)的復雜性,為了提高協(xié)議識別的準確率,設計了包含多個卷積層、池化層、全連接層的卷積神經(jīng)網(wǎng)絡。2)針對網(wǎng)絡層數(shù)增加引發(fā)梯度消失、過擬合、退化等問題,采用了ReLU函數(shù)、Dropout機制、3×3或5×5卷積核。3)為了保證模型訓練的效率,加快算法的收斂速度,減少振蕩,采用了指數(shù)衰減的學習率。

所提出的卷積神經(jīng)網(wǎng)絡結構包括Input層、C1層、S2層、C3層、S4層、FC5層、FC6層、FC7層和Output層,其中C1層、C3層為卷積層,S2、S4為池化層,F(xiàn)C5層、FC6層、FC7層為全連接層,具體網(wǎng)絡結構如圖3所示。

為了多角度提取局部特征,C1層選用16個卷積核,C3層選用32個卷積核。由于參數(shù)誤差可能導致均值偏移,為了能夠盡可能地保留局部特征的紋理信息,S2層、S4層選用最大值采樣。

首先是兩個交替的卷積層和池化層。C1層是第一個卷積層,首先對Input層進行填充處理,使得卷積后映射的圖像與Input層的圖像大小相等;然后選取16個3×3卷積核,并與偏置項相加;最后使用ReLU激活函數(shù)激活,得到16張28×28特征圖像。S2層是第一個池化層,對C1層輸出圖像進行最大值池化,池化窗口設置為2×2,得到16張14×14特征圖像。C3層是第二個卷積層,使用32個5×5 卷積核,其處理方式與C1層相同,得到32個14×14特征圖像。S4層是第二個池化層,得到32張7×7特征圖像。

然后是兩個全連接層:FC5、FC6。FC5層有1568個神經(jīng)元,與S4層進行全連接,加上偏置項,使用ReLU函數(shù)激活。與FC5層進行全連接的FC6層有128個神經(jīng)元,加上偏置項,然后使用ReLU函數(shù)激活,采用Dropout策略,丟棄50%的特征。

最后一層是Output層,實際是一個SoftMax分類器,輸出的是樣本的概率分布。SoftMax分類器能夠將包含任意實數(shù)的K維向量轉化成另一個K維向量,使得新的K維向量的每個元素的取值在 0~1范圍,且所有元素的總和為1。這種轉化函數(shù)可以凸顯占比最大的項目,抑制遠小于最大項的其他分量。Output層有k個神經(jīng)元,k由應用層協(xié)議分類的數(shù)量決定。根據(jù)不同的協(xié)議識別問題,可以微調模型。

3.3.3 卷積神經(jīng)網(wǎng)絡訓練過程

卷積神經(jīng)網(wǎng)絡的訓練包括正向傳播和反向傳播兩部分。在訓練時,首先是對一批訓練樣本進行正向傳播,計算網(wǎng)絡每一層的輸出值,最終通過損失函數(shù)計算出卷積神經(jīng)網(wǎng)絡對于樣本標簽的預測值與真實標簽值之間的誤差。卷積神經(jīng)網(wǎng)絡訓練的實質就是求解損失函數(shù)的極小值,使誤差最低,這意味著卷積神經(jīng)網(wǎng)絡的分類結果越精確,這種最優(yōu)化問題可以用梯度下降法進行求解。梯度下降法的原理是沿著梯度向量的反方向進行迭代以期能夠達到損失函數(shù)的極值點。梯度下降法在反向傳播的過程中實施。但是,為了實施梯度下降法,需要在正向傳播的階段收集一些數(shù)據(jù)。其中,最主要的是在正向傳播時,計算每個樣本的損失函數(shù)在每一層的權值參數(shù)以及偏置參數(shù)的梯度值,進而通過計算一批訓練樣本的梯度的均值,得到整體梯度值。

為了測量模型預測類型與實際類型之間的偏差,本文定義交叉熵為損失函數(shù),利用L2正則化對權重的平方和進行量化調整,如式(1)所示:

L(W)=-12m∑mi=1yTln y*+λ2‖W‖2(1)

其中:等式右側第一項為交叉熵項,第二項為正則化項;W是神經(jīng)網(wǎng)絡需要學習得到的參數(shù);y是樣本真實標簽值,即只有一個分量為1、其余為0的向量;y*是分類模型預測的概率分布值;m是訓練樣本數(shù)量;λ是正則化系數(shù),本文取值0.01。

反向傳播過程將對卷積神經(jīng)網(wǎng)絡中的參數(shù)進行更新,其起點是輸出層,終點是輸入層。通過不斷迭代,促使參數(shù)更新朝著卷積神經(jīng)網(wǎng)絡收斂的方向進行,最終獲得使損失函數(shù)達到極小值。為了求解極小值,本文使用了Mini-Batch隨機梯度下降法,該方法將數(shù)據(jù)集分成若干批,采用部分樣本代替全部樣本,按批計算損失函數(shù),能夠保證參數(shù)更新朝著模型收斂的方向進行。各層權值和偏置參數(shù)的調整方向如式(2)和式(3)所示:

W(l)←W(l)-α(ΔW(l)/m+λW(l))(2)

b(l)←b(l)-α·Δb(l)/m (3)

其中,α是學習率,初始學習率為0.01,衰減系數(shù)1E-6。

4 實驗與結果分析

4.1 實驗數(shù)據(jù)

目前協(xié)議識別領域的網(wǎng)絡流量收集有兩種途徑:一種是在受控環(huán)境中部署目標應用,然后模擬應用狀態(tài),從而獲得目標協(xié)議產(chǎn)生的網(wǎng)絡流量;另一種采用包捕獲的方式,根據(jù)經(jīng)驗自動或采用人工的方法收集網(wǎng)絡流量,如對于端口固定的協(xié)議,可以采用端口監(jiān)聽的方式進行收集。但數(shù)據(jù)收集可能含有非目標協(xié)議的網(wǎng)絡數(shù)據(jù)包,就需要領域專家的參與,選擇適合的訓練樣本。本文采取第二種方法進行數(shù)據(jù)集的構建。為了確保數(shù)據(jù)的代表性,本文實驗選用了MIT林肯實驗室提供的DARPA[25]數(shù)據(jù)集。

本文選取了DARPA數(shù)據(jù)集中的4種協(xié)議進行測試,分別是超文本傳輸協(xié)議(Hyper Text Transfer Protocol, HTTP)、文件傳輸協(xié)議(File Transfer Protocol, FTP)、簡單郵件傳輸協(xié)議 (Simple Mail Transfer Protocol, SMTP)、域名系統(tǒng)(Domain Name System, DNS)。這些協(xié)議中既有基于TCP的應用層協(xié)議,也有基于UDP的應用層協(xié)議,既有二進制協(xié)議,也有文本類協(xié)議。

本文實驗隨機選取數(shù)據(jù)集75%用于分類模型的訓練,剩余數(shù)據(jù)集的25%用于分類模型的測試。選用四種應用層協(xié)議進行分類識別,所以N取4,設置對應的四種協(xié)議類型標簽:[1,0,0,0]T,[0,1,0,0]T,[0,0,1,0]T,[0,0,0,1]T分別對應HTTP、FTP、SMTP、DNS協(xié)議。

4.2 實驗設置與實驗指標

實驗使用Python語言進行編程,利用Keras[26]和Tensorflow[27]深度學習框架搭建分類模型。為了驗證本文方法的有效性,進行了如下兩組實驗:1) 不同網(wǎng)絡流長度對識別性能的影響;2) 與其他機器學習方法的識別性能對比。

實驗結果的評價指標主要包括兩個部分:1)協(xié)議識別的性能指標;2)分類模型的測試時間。協(xié)議識別的性能指標包括總體識別性能指標(準確率Accuracy)和單一類別識別性能指標(精確率Precision、召回率Recall、F值F1-Measure)。分類模型的測試時間是指使用分類模型檢測樣本類別的時間,測試時間與分類模型的復雜度有關,越復雜的分類模型,計算量越大,測試時間也會相應增加。

假設待檢測數(shù)據(jù)集中包括目標協(xié)議A、其余協(xié)議Not-A。實驗相關指標定義如下:

Accuracy=(TP+TN)/(TP+FN+FP+TN)

P=TP/(TP+FP)

R=TP/(TP+FN)

F1-Measure=2PR/(P+R)

其中;P表示精確率Precision,R表示召回率Recall;TP表示正確分類為協(xié)議A的實例數(shù);TN表示正確分類為協(xié)議Not-A的實例數(shù);FP表示錯誤分類為協(xié)議A的實例數(shù);FN表示錯誤分類為協(xié)議Not-A的實例數(shù)。準確率Accuracy用于衡量數(shù)據(jù)集的整體識別效果,準確率的值越高,總體識別效果越好;精確率Precision是指協(xié)議A的識別結果中被正確識別的比例;召回率Recall是指協(xié)議A的所有實例中被正確識別的比例;F值(F1-Measure)綜合考慮了精確率和召回率,對這兩個指標進行加權平均調和,F(xiàn)值越大,單一類別識別效果越好。實驗采用Accuracy和F值進行數(shù)據(jù)分析,能夠準確地評估方法對于網(wǎng)絡協(xié)議的識別效果。

4.3 結果分析

為了確定網(wǎng)絡流的合適長度,卷積神經(jīng)網(wǎng)絡的輸入設定為32×32,若長度不足1024,則補0。在協(xié)議識別過程中,由于每個網(wǎng)絡流包含的數(shù)據(jù)包個數(shù)未知,每個數(shù)據(jù)包大小又是未知的,造成網(wǎng)絡流之間的長度差別很大。如何選取合適的網(wǎng)絡流長度,需要通過實驗確定。

選取不同網(wǎng)絡流長度時,協(xié)議識別性能的對比如表1所示。

表格(有表名)表1 不同網(wǎng)絡流長度時的識別性能

Tab. 1 Recognition performance with different network flow size

網(wǎng)絡流長度/B準確率/%測試時間/s20098.836630098.875240098.885550098.884860098.875170098.926080098.935290096.4662100096.5263

從表1中可以看出,網(wǎng)絡流長度在700 ~ 800B之間識別準確率最高,且長度大于800B時,識別準確率明顯降低,產(chǎn)生過擬合。識別準確率出現(xiàn)這種變化主要是因為網(wǎng)絡流的前部通常包含建立通信連接和少數(shù)包含協(xié)議字段的數(shù)據(jù)包,這些信息有助于識別網(wǎng)絡協(xié)議。由于實驗采取相同的神經(jīng)網(wǎng)絡結構,所以測試時間相近。因此,這里主要考慮識別準確率,選取準確率最高的范圍,進而確定網(wǎng)絡流長度。

經(jīng)典的LeNet-5卷積神經(jīng)網(wǎng)絡的MNIST圖像輸入大小是28×28,也在700 ~ 800B,同樣取得了很高的識別準確率,說明無論輸入是網(wǎng)絡流還是圖像,卷積神經(jīng)網(wǎng)絡均具有遷移學習的能力,表明這種架構的卷積神經(jīng)網(wǎng)絡更能捕捉這個尺寸范圍數(shù)據(jù)的關鍵信息,因此本文后續(xù)分析選擇784B(28×28)作為分類模型的輸入大小。

圖4比較了不同機器學習方法識別不同協(xié)議的F值差異。NB(Naive Bayes)、SVC(Support Vector Classification)和KNN(K-Nearest Neighbors)是常用于協(xié)議識別的分類算法,文獻[28]方法是近期提出的基于卷積神經(jīng)網(wǎng)絡的流量識別方法。

由于流量數(shù)據(jù)集、軟硬件平臺和具體實驗環(huán)境的差異,導致不同方法的性能對比難以開展,因此對比實驗均采取本文的數(shù)據(jù)預處理方法,且采用Python的機器學習庫Sklearn搭建NB、SVC、KNN分類模型,其中:NB選擇高斯貝葉斯分類模型,SVC選擇線性支持向量機分類模型,KNN 選擇5個權重相當?shù)淖罱従訕嬙旆诸惸P?。另外,文獻[28]方法分類模型的搭建采用Keras和Tensorflow。

從圖4中可以看出,五種分類方法中,KNN、文獻[28]方法和本文方法識別不同協(xié)議時,F(xiàn)值均已超過98.00%,且本文方法識別DNS、HTTP協(xié)議時取得了最高F值100.00%,KNN識別FTP協(xié)議時取得了最高F值99.20%, 文獻[28]方法識別SMTP協(xié)議時取得了最高F值99.53%。本文方法識別FTP協(xié)議、SMTP協(xié)議時F值分別取得了98.58%和99.29%。NB方法是基于特征向量各分量相互獨立的假設,然而原始流量存在協(xié)議識別的無效信息,如變量字段,因此識別效果比其他方法差。SVC方法是尋找能夠分離樣本的超平面,對于類型較少的協(xié)議,如DNS、HTTP,識別效果較好;對于包含多種類型的協(xié)議,SVC識別效果比KNN、文獻[28]方法和本文方法差。KNN是根據(jù)距離最近的K個實例進行投票統(tǒng)計,選擇數(shù)量最多的類別作為預測的分類結果,KNN識別不同協(xié)議的F值超過了98%。文獻[28]方法對FTP、SMTP協(xié)議的識別效果優(yōu)于本文方法,而本文方法更擅長識別DNS、HTTP協(xié)議。本文方法屬于有監(jiān)督學習,模型訓練的前提是網(wǎng)絡流已知,根據(jù)人工判定的方式確定協(xié)議字段的差異情況,進而判定協(xié)議相似程度。顯然,HTTP和DNS的協(xié)議格式有很大的不同,F(xiàn)TP和SMTP在協(xié)議格式上有一定的相似之處,比如FTP和SMTP都存在“220”,分類模型會認為“220”既屬于FTP、又屬于SMTP,這就導致了分類模型的誤判。

表2比較了不同機器學習方法的識別準確率差異,本文方法的準確率是99.70%,優(yōu)于對比方法。隨著網(wǎng)絡流量的規(guī)模日益增加,面對成千上萬種協(xié)議,能夠準確識別出更多網(wǎng)絡流量的協(xié)議類別,有助于網(wǎng)絡運營商對網(wǎng)絡資源進行合理管理和配置??偟膩碚f,本文方法以網(wǎng)絡流作為輸入,通過CNN提取協(xié)議特征,對多種協(xié)議進行測試,表現(xiàn)出良好的識別效果,與其他機器學習方法相比,在識別準確率上有所提升,驗證了本文方法的有效性。

5 結語

利用網(wǎng)絡流量的字節(jié)傳輸和灰度圖字節(jié)存儲相似性,將卷積神經(jīng)網(wǎng)絡圖像識別技術應用于網(wǎng)絡協(xié)議的識別問題上,本文提出了一種能夠精確識別網(wǎng)絡應用層協(xié)議的協(xié)議識別方法。實驗結果表明,該方法在DARPA數(shù)據(jù)集上達到了99.7%的準確率,優(yōu)于NB、SVC等一般機器學習方法,接近實際應用水平。該方法實現(xiàn)簡單、效果顯著,通過深層卷積神經(jīng)網(wǎng)絡構建分類模型,節(jié)省了特征工程的工作量,也降低了任務的復雜度,實現(xiàn)了流量特征的自動學習,達到了協(xié)議精確識別的目的。在后續(xù)的研究中,將從以下兩個方面進行改進:一是區(qū)分格式相似的協(xié)議,提高相似協(xié)議的識別精度;二是結合無監(jiān)督學習方法,提高在協(xié)議數(shù)量未知情況下的協(xié)議識別能力。

參考文獻 (References)

[1]陳亮,龔儉,徐選.應用層協(xié)議識別算法綜述[J].計算機科學,2007,34(7):73-75.(CHEN L, GONG J, XU X. A survey of application-level protocol identification algorithm [J]. Computer Science, 2007, 34(7): 73-75.)

[2]王一鵬,云曉春,張永錚,等.基于主動學習和SVM方法的網(wǎng)絡協(xié)議識別技術[J].通信學報,2013(10):135-142.(WANG Y P, YUN X C, ZHANG Y Z, et al. Network protocol identification based on active learning and SVM algorithm [J]. Journal on Communications, 2013, 34(10): 135-142.)

[3]鄒騰寬,汪鈺穎,吳承榮.網(wǎng)絡背景流量的分類與識別研究綜述[J].計算機應用,2019,39(3):802-811.(ZOU T K, WANG Y Y, WU C R. Review of network background traffic classification and identification [J]. Journal of Computer Applications, 2019, 39(3): 802-811.)

[4]JOE T, ELIOT L, ALLISON M, et al. Service name and transport protocol port number registry [EB/OL]. [2019-09-23]. https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml.

[5]張蕾,崔勇,劉靜,等.機器學習在網(wǎng)絡空間安全研究中的應用[J].計算機學報,2018,41(9):1943-1975.(ZHANG L, CUI Y, LIU J, et al. Application of machine learning in cyberspace security research [J]. Chinese Journal of Computers, 2018, 41(9): 1943-1975.)

[6]余凱,賈磊,陳雨強,等.深度學習的昨天、今天和明天[J].計算機研究與發(fā)展,2013,50(9):1799-1804.(YU K, JIA L, CHEN Y Q, et al. Deep learning: yesterday, today, and tomorrow [J]. Journal of Computer Research and Development, 2013, 50(9): 1799-1804.)

[7]BENGIO Y. Learning deep architectures for AI [M]// Foundations and Trends in Machine Learning. Hanover, MA: Now Publishers Inc., 2009, 2(1): 1-127.

[8]LECUN Y, BENGIO Y, HINTON G. Deep learning [J]. Nature, 2015, 521(7553): 436-444.

[9]CYBENKO G. Approximation by superpositions of a sigmoidal function [J]. Mathematics of Control, Signals, and Systems, 1989, 2(4): 303-314.

[10]周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡研究綜述[J].計算機學報,2017,40(6):1229-1251.(ZHOU F Y, JIN L P, DONG J. Review of convolutional neural network [J]. Chinese Journal of Computers, 2017, 40(6): 1229-1251.)

[11]WANG Z. The applications of deep learning on traffic identification [EB/OL]. [2019-04-14]. https://www.blackhat.com/docs/us-15/materials/us-15-Wang-The-Applications-Of-Deep-Learning-On-Traffic-Identification-wp.pdf.

[12]JAIN A V. Network traffic identification with convolutional neural networks [C]// Proceedings of the IEEE 16th International Conference on Dependable, Autonomic and Secure Computing, 16th International Conference on Pervasive Intelligence and Computing, 4th International Conference on Big Data Intelligence and Computing and Cyber Science and Technology Congress. Piscataway: IEEE, 2018: 1001-1007.

[13]WANG W, ZHU M, ZENG X, et al. Malware traffic classification using convolutional neural network for representation learning [C]// Proceedings of the 2017 International Conference on Information Networking. Piscataway: IEEE, 2017: 712-717.

[14]MA R, QIN S. Identification of unknown protocol traffic based on deep learning [C]// Proceedings of the 3rd IEEE International Conference on Computer and Communications. Piscataway: IEEE, 2017: 1195-1198.

[15]陳雪嬌,王攀,俞家輝.基于卷積神經(jīng)網(wǎng)絡的加密流量識別方法[J].南京郵電大學學報(自然科學版),2018,38(6):36-41.(CHEN X J, WANG P, YU J H. CNN based encrypted traffic identification method [J]. Journal of Nanjing University of Posts and Telecommunications (Natural Science Edition), 2018, 38(6): 36-41)

[16]葉松.基于現(xiàn)代網(wǎng)絡的深度學習應用協(xié)議識別技術研究與實現(xiàn)[J].軟件導刊,2018,17(10):194-199.(YE S. Research and implementation of deep learning application protocol recognition technology based on modern network [J]. Software Guide, 2018, 17(10): 194-199.)

[17]REN J, WANG Z. A novel deep learning method for application identification in wireless network [J]. China Communications, 2018, 15(10): 73-83.

[18]熊剛,孟姣,曹自剛,等.網(wǎng)絡流量分類研究進展與展望[J].集成技術,2012,1(1):32-42.(XIONG G, MENG J, CAO Z G, et al. Research progress and prospects of network traffic classification [J]. Journal of Integration Technology, 2012, 1(1): 32-42.)

[19]BARAKAT C, THIRAN P, IANNACCONE G, et al. Modeling Internet backbone traffic at the flow level [J]. IEEE Transactions on Signal Processing, 2003, 51(8): 2111-2124.

[20]張鳳荔,周洪川,張俊嬌,等.基于改進凝聚層次聚類的協(xié)議分類算法[J].計算機工程與科學,2017,39(4):796-803.(ZHANG F L, ZHOU H C, ZHANG J J, et al. A protocol classification algorithm based on improved AGENS [J]. Computer Engineering and Science, 2017, 39(4): 796-803.)

[21]馮文博,洪征,吳禮發(fā),等.網(wǎng)絡協(xié)議識別技術綜述[J].計算機應用,2019,39(12):3604-3614.(FENG W B, HONG Z, WU L F, et al. Review of network protocol recognition techniques [J]. Journal of Computer Applications, 2019, 39(12): 3604-3614.)

[22]李芳馨,劉嘉勇.網(wǎng)絡數(shù)據(jù)流還原重組技術研究[J].通信技術,2011,44(7):113-114,117.(LI F X, LIU J Y. Study on reverting and restructuring of network data stream [J]. Communications Technology, 2011, 44(7): 113-114, 117.)

[23]HARRIS D, HARRIS S. Digital Design and Computer Architecture: 2nd Edition [M]. San Francisco, CA: Morgan Kaufmann, 2012: 129-133.

[24]CELIK Z B, WALLS R J, MCDANIEL P, et al. Malware traffic detection using tamper resistant features [C]// Proceedings of the 2015 IEEE Military Communications Conference. Piscataway: IEEE, 2015: 330-335.

[25]LIPPMANN R, CUNNINGHAM R K, FRIED D J, et al. Results of the DARPA 1998 offline intrusion detection evaluation [EB/OL]. [2019-04-14]. https://www.researchgate.net/publication/221427437_Results_of_the_DARPA_1998_Offline_Intrusion_Detection_Evaluation.

[26]CHOLLET F. Keras: deep learning for humans [EB/OL]. [2019-04-14]. https://github.com/fchollet/keras.

[27]ABADI M, AGARWAL A, BARHAM P, et al. TensorFlow: large-scale machine learning on heterogeneous distributed system [EB/OL]. [2019-04-14]. https://arxiv.org/pdf/1603.04467.pdf.

[28]王勇,周慧怡,俸皓,等.基于深度卷積神經(jīng)網(wǎng)絡的網(wǎng)絡流量分類方法[J].通信學報,2018,39(1):14-23.(WANG Y, ZHOU H Y, FENG H, et al. Network traffic classification method basing on CNN [J]. Journal on Communications, 2018, 39(1): 14-23.)

This work is partially supported by the National Key Research and Development Program of China (2017YFB0802900), the Startup Foundation for Advanced Talents of Nanjing University of Posts and Telecommunications (NY219004).

猜你喜歡
卷積神經(jīng)網(wǎng)絡
基于深度神經(jīng)網(wǎng)絡的微表情識別
卷積神經(jīng)網(wǎng)絡中減少訓練樣本時間方法研究
卷積神經(jīng)網(wǎng)絡語言模型研究
基于卷積神經(jīng)網(wǎng)絡的車輛檢索方法研究
基于卷積神經(jīng)網(wǎng)絡溫室智能大棚監(jiān)控系統(tǒng)的研究
基于深度卷積神經(jīng)網(wǎng)絡的物體識別算法
深度學習算法應用于巖石圖像處理的可行性研究
基于深度卷積網(wǎng)絡的人臉年齡分析算法與實現(xiàn)
深度學習技術下的中文微博情感的分析與研究
基于卷積神經(jīng)網(wǎng)絡的樹葉識別的算法的研究
石狮市| 长宁区| 辉县市| 乐至县| 星子县| 昌黎县| 习水县| 富裕县| 客服| 弋阳县| 犍为县| 台中市| 巴林左旗| 南投市| 长汀县| 会同县| 云安县| 无为县| 泰宁县| 双鸭山市| 河西区| 台北县| 澄迈县| 潜山县| 墨江| 凤庆县| 双桥区| 闽清县| 临夏县| 阳谷县| 农安县| 恩平市| 鄂尔多斯市| 疏附县| 宜丰县| 渝中区| 古交市| 灌南县| 莱西市| 萍乡市| 闽清县|