基于卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用層協(xié)議識別方法_第1頁
基于卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用層協(xié)議識別方法_第2頁
基于卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用層協(xié)議識別方法_第3頁
基于卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用層協(xié)議識別方法_第4頁
基于卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用層協(xié)議識別方法_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、    基于卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用層協(xié)議識別方法    馮文博洪征吳禮發(fā)李毅豪林培鴻摘 要:針對傳統(tǒng)網(wǎng)絡(luò)協(xié)議識別方法中人工提取特征困難以及識別準(zhǔn)確率低等問題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(cnn)的應(yīng)用層協(xié)議識別方法。首先,基于完整的傳輸控制協(xié)議(tcp)連接或用戶數(shù)據(jù)報協(xié)議(udp)交互劃分原始網(wǎng)絡(luò)數(shù)據(jù),從中提取出網(wǎng)絡(luò)流;其次,通過數(shù)據(jù)預(yù)處理將網(wǎng)絡(luò)流轉(zhuǎn)化為二維矩陣,便于cnn的分析處理;然后,利用訓(xùn)練樣本集合訓(xùn)練cnn模型,自動化提取出網(wǎng)絡(luò)協(xié)議特征;最終,基于訓(xùn)練成熟的cnn模型進(jìn)行應(yīng)用層網(wǎng)絡(luò)協(xié)議的識別。實驗結(jié)果表明,所提方法的總體協(xié)議識別準(zhǔn)確率約為99.7

2、0%,能有效實現(xiàn)應(yīng)用層協(xié)議的識別。關(guān)鍵詞:應(yīng)用層協(xié)議;網(wǎng)絡(luò)流;協(xié)議識別;特征工程;卷積神經(jīng)網(wǎng)絡(luò)中圖分類號: tp393.0(一般性問題) 文獻(xiàn)標(biāo)志碼:aapplication protocol recognition method based on convolutional neural networkfeng wenbo1, hong zheng1*, wu lifa2, li yihao1, lin peihong1(1. college of command and control engineering, army engineering university of pla, nan

3、jing 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 rec

4、ognition 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 extracte

5、d. 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 ne

6、twork 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 netwo

7、rk (cnn)0 引言應(yīng)用層協(xié)議識別是指通過人工分析或自動化手段從ip協(xié)議承載的網(wǎng)絡(luò)流量中提取出能夠標(biāo)識網(wǎng)絡(luò)應(yīng)用層協(xié)議的關(guān)鍵特征,然后以這些特征為基礎(chǔ)準(zhǔn)確標(biāo)識網(wǎng)絡(luò)流量所隸屬的應(yīng)用層協(xié)議1-3。應(yīng)用層協(xié)議識別技術(shù)有助于對網(wǎng)絡(luò)流量的組成進(jìn)行分析,能夠為網(wǎng)絡(luò)管理與維護(hù)、網(wǎng)絡(luò)內(nèi)容審計、網(wǎng)絡(luò)安全防御等多個研究領(lǐng)域提供數(shù)據(jù)支撐。根據(jù)對人力的依賴程度,應(yīng)用層協(xié)議識別可以分為人工分析和自動分析兩類。人工分析方法依靠研究人員的領(lǐng)域經(jīng)驗或先驗知識獲取協(xié)議特征信息,進(jìn)而對網(wǎng)絡(luò)流量進(jìn)行協(xié)議識別。而自動分析方法則基于模式識別、機器學(xué)習(xí)等理論從網(wǎng)絡(luò)流量中自動化提取協(xié)議特征,并以此特征作為協(xié)議識別的根據(jù),減少了人工開銷。

8、本文工作針對自動分析方法進(jìn)行研究。網(wǎng)絡(luò)協(xié)議自動識別方法主要包括基于預(yù)設(shè)規(guī)則的協(xié)議識別方法、基于載荷特征的協(xié)議識別方法、基于主機行為的協(xié)議識別方法以及基于機器學(xué)習(xí)的協(xié)議識別方法四種?;陬A(yù)設(shè)規(guī)則的協(xié)議識別方法中最典型的方法是利用端口進(jìn)行協(xié)議識別。但是隨著網(wǎng)絡(luò)應(yīng)用的快速發(fā)展,很多應(yīng)用都向用戶提供了自定義端口的功能,用戶可以根據(jù)自己的喜好設(shè)置網(wǎng)絡(luò)應(yīng)用所使用的端口,這使得基于傳統(tǒng)的互聯(lián)網(wǎng)數(shù)字分配機構(gòu)(internet assigned numbers authority, iana)的端口分配規(guī)則4越來越難準(zhǔn)確識別協(xié)議類型?;谳d荷特征的協(xié)議識別方法主要是使用深度包檢測和正則表達(dá)式技術(shù),通過匹配數(shù)據(jù)包

9、載荷中預(yù)定義的固定特征串,來進(jìn)行協(xié)議識別。這種識別方法簡單、準(zhǔn)確度較高,但不能識別加密協(xié)議,而且特征串的數(shù)量較多時,計算開銷將顯著增長,識別效果可能降低。基于主機行為的協(xié)議識別方法主要利用了網(wǎng)絡(luò)流量的統(tǒng)計特性,如數(shù)據(jù)流持續(xù)時間、字節(jié)數(shù)、傳輸間隔時間等在網(wǎng)絡(luò)數(shù)據(jù)傳輸過程可直接測量的統(tǒng)計參數(shù)。此類方法有效避免前兩種方法的特征提取操作,但因統(tǒng)計信息采集繁瑣,且受網(wǎng)絡(luò)環(huán)境影響,統(tǒng)計結(jié)果可能不穩(wěn)定,協(xié)議識別的準(zhǔn)確度偏低。機器學(xué)習(xí)是人工智能領(lǐng)域的一項重要技術(shù),機器學(xué)習(xí)利用計算機對大規(guī)模數(shù)據(jù)進(jìn)行挖掘,分析數(shù)據(jù)特征之間的規(guī)律5。基于機器學(xué)習(xí)的協(xié)議識別方法可以分為淺層學(xué)習(xí)和深度學(xué)習(xí)兩類6。淺層學(xué)習(xí)算法本質(zhì)上屬于

10、淺層結(jié)構(gòu)算法,主要包括支持向量機(support vector machine, svm)、樸素貝葉斯、決策樹、k-means等機器學(xué)習(xí)算法。這些算法難以表示復(fù)雜的非線性函數(shù)關(guān)系,處理復(fù)雜問題的泛化能力有限7。深度學(xué)習(xí)算法主要包括卷積神經(jīng)網(wǎng)絡(luò)、長短期記憶網(wǎng)絡(luò)等,采用多層神經(jīng)網(wǎng)絡(luò)進(jìn)行特征學(xué)習(xí),其中淺層神經(jīng)元負(fù)責(zé)提取簡單的低層特征,深層神經(jīng)元負(fù)責(zé)將低層特征組合成更加抽象、復(fù)雜的高層特征。深度學(xué)習(xí)主要應(yīng)用在自然語言處理、圖像分類與識別、語音識別等領(lǐng)域,且取得了很好的效果8。深度學(xué)習(xí)可以很好解決淺層學(xué)習(xí)在復(fù)雜非線性函數(shù)關(guān)系的表示問題。cybenko9使用嚴(yán)格數(shù)學(xué)思維證明了單層神經(jīng)網(wǎng)絡(luò)具備表示任意復(fù)雜度

11、函數(shù)的能力。針對現(xiàn)有網(wǎng)絡(luò)協(xié)議識別方法存在人工提取特征困難的問題,結(jié)合深度學(xué)習(xí)在分類方面的優(yōu)勢,本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)協(xié)議識別方法。該方法能夠從訓(xùn)練數(shù)據(jù)中進(jìn)行隱式學(xué)習(xí),自動提取網(wǎng)絡(luò)流量的協(xié)議特征,有效克服人工特征選擇的不足,進(jìn)而提高協(xié)議識別的準(zhǔn)確率。鑒于協(xié)議數(shù)據(jù)的復(fù)雜性,本文通過優(yōu)化網(wǎng)絡(luò)層數(shù)、卷積核大小以及特征圖數(shù)量等參數(shù),促使模型在具有較高識別準(zhǔn)確率的同時,能夠快速準(zhǔn)確地收斂至全局最優(yōu)解。1 相關(guān)工作卷積神經(jīng)網(wǎng)絡(luò)是目前深度學(xué)習(xí)領(lǐng)域最為重要的分類模型,在很多領(lǐng)域的應(yīng)用超過了傳統(tǒng)模式識別與機器學(xué)習(xí)算法能夠達(dá)到的精度與性能10。近年來,研究人員相繼提出了許多關(guān)于卷積神經(jīng)網(wǎng)絡(luò)的協(xié)議識別方

12、法。文獻(xiàn)11較早使用深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)解決網(wǎng)絡(luò)協(xié)議識別問題,通過人工神經(jīng)網(wǎng)絡(luò)對傳輸控制協(xié)議(transmission control protocol, tcp)會話的前1024b數(shù)據(jù)進(jìn)行學(xué)習(xí)分類。該方法首先將數(shù)據(jù)轉(zhuǎn)化為一維向量,然后將向量輸入人工神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。實驗測試得到的已知協(xié)議識別平均準(zhǔn)確率達(dá)到97.9%。文獻(xiàn)12研究了采用不同優(yōu)化器訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)協(xié)議識別的性能影響,實驗結(jié)果表明,基于梯度下降法的優(yōu)化器性能最佳,但整體識別準(zhǔn)確率只有77.81%,且文獻(xiàn)11-12只考慮了基于tcp的應(yīng)用層協(xié)議。文獻(xiàn)13首次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到惡意流量分類領(lǐng)域,比較了使用所有協(xié)議層次數(shù)據(jù)以

13、及僅使用應(yīng)用層協(xié)議數(shù)據(jù)的效果,將數(shù)據(jù)的前784b轉(zhuǎn)換為28×28的二維圖像后輸入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,分類結(jié)果表明使用所有協(xié)議層次數(shù)據(jù)作為研究對象達(dá)到的分類效果最佳。ma等14針對已知和未知流量的識別問題,提出基于卷積神經(jīng)網(wǎng)絡(luò)的未知流量識別方法。實驗選取13種協(xié)議組建數(shù)據(jù)集,其中10種協(xié)議作為已知協(xié)議,其余3種協(xié)議作為未知協(xié)議流量的模擬數(shù)據(jù),通過與傳統(tǒng)機器學(xué)習(xí)算法支持向量機、樸素貝葉斯分類模型進(jìn)行實驗對比,測試結(jié)果表明,卷積神經(jīng)網(wǎng)絡(luò)模型的識別效果都優(yōu)于傳統(tǒng)機器學(xué)習(xí)方法,但其方法不能對未知協(xié)議流量中包含的各種協(xié)議進(jìn)行準(zhǔn)確識別。陳雪嬌等15利用卷積神經(jīng)網(wǎng)絡(luò)的識別準(zhǔn)確率高和自主進(jìn)行特征選擇

14、的優(yōu)勢,將其應(yīng)用于加密流量的識別,測試結(jié)果表明該方法優(yōu)于深度包檢測(deep packet inspection, dpi)方法。葉松16提出了一種能夠應(yīng)用于高級持續(xù)性威脅(advanced persistent threat, apt)攻擊防御系統(tǒng)的協(xié)議識別技術(shù),通過對網(wǎng)絡(luò)流特征的深度學(xué)習(xí),建立起應(yīng)用層協(xié)議的特征庫,有助于apt攻擊防御的準(zhǔn)確判斷。ren等17提出了一種針對無線通信網(wǎng)絡(luò)的協(xié)議識別方法,首先利用一維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行自動化的特征提取,然后基于支持向量機(svm)對應(yīng)用層協(xié)議進(jìn)行分類。從現(xiàn)有研究可以看出,深度學(xué)習(xí)在協(xié)議識別領(lǐng)域的應(yīng)用尚處于起步階段,不同方法的數(shù)據(jù)集構(gòu)造方式不同,且多

15、使用一般結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò),未充分考慮網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù)對協(xié)議識別過程的影響。而在深度學(xué)習(xí)領(lǐng)域,模型結(jié)構(gòu)與參數(shù)對于分類效果有重要影響,隨著卷積神經(jīng)網(wǎng)絡(luò)層數(shù)的不斷增加,模型也越來越難訓(xùn)練,各種優(yōu)化網(wǎng)絡(luò)的方法不斷出現(xiàn),如采用新的激活函數(shù)修正線性單元(rectified linear unit, relu)以及解決神經(jīng)網(wǎng)絡(luò)過擬合問題的dropout機制。2 網(wǎng)絡(luò)協(xié)議識別網(wǎng)絡(luò)協(xié)議識別首先需要將連續(xù)的網(wǎng)絡(luò)流量按照一定粒度進(jìn)行劃分,常見的粒度包括bit-level、packet-level、flow-level、stream-level四類18。bit-level關(guān)注網(wǎng)絡(luò)流量的內(nèi)容特征;packet-leve

16、l關(guān)注數(shù)據(jù)包(packet)的內(nèi)容或統(tǒng)計特征;flow-level關(guān)注網(wǎng)絡(luò)流(flow)的內(nèi)容或統(tǒng)計特征,所涉及的網(wǎng)絡(luò)流可以是一個完整的tcp連接或者一次用戶數(shù)據(jù)報協(xié)議(user datagram protocol, udp)交互19;stream-level關(guān)注通信主機交互產(chǎn)生的流量。本文選擇flow的內(nèi)容特征作為分析對象,這也是目前協(xié)議識別領(lǐng)域采用較多的分析對象。同一種協(xié)議的網(wǎng)絡(luò)流之間存在一定的相似性,可以利用這種相似性區(qū)分不同協(xié)議產(chǎn)生的網(wǎng)絡(luò)流量20。利用網(wǎng)絡(luò)流的內(nèi)容信息或統(tǒng)計信息,建立一種函數(shù)映射關(guān)系:f:xc,其中:x表示待分類的網(wǎng)絡(luò)流集合,c表示協(xié)議類型集合,將網(wǎng)絡(luò)流映射為具體的協(xié)議

17、類型?;跈C器學(xué)習(xí)的協(xié)議識別分為訓(xùn)練和測試兩個階段21。在訓(xùn)練階段,首先對網(wǎng)絡(luò)流進(jìn)行預(yù)處理;然后通過特征工程方法進(jìn)行特征提取;最后通過機器學(xué)習(xí)算法構(gòu)造分類器,并對分類器進(jìn)行訓(xùn)練。在測試階段,將經(jīng)過預(yù)處理和特征提取后的網(wǎng)絡(luò)流輸入訓(xùn)練好的分類器,對網(wǎng)絡(luò)流進(jìn)行協(xié)議類型預(yù)測。網(wǎng)絡(luò)流的所有字段以及傳輸過程中的所有特性都可以作為特征用于協(xié)議識別,然而如何選出最有效的特征是協(xié)議識別領(lǐng)域的突出問題。2)卷積神經(jīng)網(wǎng)絡(luò)要求輸入數(shù)據(jù)大小是固定的,因此只能選取固定長度、并且能夠反映流量特征的網(wǎng)絡(luò)流,選取784b是流的前半部分?jǐn)?shù)據(jù)更能反映流量特征,后半部分?jǐn)?shù)據(jù)更多的是協(xié)議的數(shù)據(jù)部分,這種處理與目前一些流量分析方法的特征

18、選取思路24相同。從必要性的角度看:同一種協(xié)議的網(wǎng)絡(luò)流存在一定相似性,這種相似性具體表現(xiàn)為網(wǎng)絡(luò)流的某些特定位置上出現(xiàn)一些固定取值或頻繁出現(xiàn)的字段,如版本號字段、服務(wù)類型字段、標(biāo)識符等信息,這種現(xiàn)象的產(chǎn)生主要是因為流量特征受到協(xié)議字段的語法約束或網(wǎng)絡(luò)環(huán)境限制。3.3 分類模型構(gòu)建為了將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于應(yīng)用層協(xié)議識別,首先需要針對流量識別的需求設(shè)計卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),此后,利用訓(xùn)練數(shù)據(jù)集對二維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使卷積神經(jīng)網(wǎng)絡(luò)具有識別網(wǎng)絡(luò)流量所對應(yīng)的應(yīng)用層協(xié)議的能力。3.3.1 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)卷積神經(jīng)網(wǎng)絡(luò)的工作流程如圖2所示。首先,對于輸入訓(xùn)練樣本,經(jīng)過若干交替的卷積層和池化層處理,自動

19、提取訓(xùn)練樣本的特征;然后,將提取出的特征交給一個或多個包含不同神經(jīng)元數(shù)量的全連接層進(jìn)行處理,逐層處理縮減向量的維數(shù);進(jìn)而,將縮減向量傳遞至輸出層,得到練樣本標(biāo)簽預(yù)測值,計算預(yù)測值與真實值之間的差異,將差異情況輸入損失函數(shù)轉(zhuǎn)化為損失值;最后,利用損失值作為反饋信息對權(quán)重值進(jìn)行調(diào)整,促使優(yōu)化器朝著損失值減小的方向調(diào)節(jié)。卷積神經(jīng)網(wǎng)絡(luò)需要逐層搭建,基本結(jié)構(gòu)包括輸入層、卷積層、池化層、全連接層和輸出層。輸入層和輸出層相對簡單,輸入層用于數(shù)據(jù)輸入,所包含的神經(jīng)元個數(shù)等于特征向量的維數(shù)。輸出層是輸出識別結(jié)果,其包含神經(jīng)元的個數(shù)等于要分類的類別總數(shù)。下面重點對卷積層、池化層和全連接層進(jìn)行介紹。1)卷積層使用卷

20、積核矩陣按照自上而下、自左而右的順序掃描訓(xùn)練,同時將卷積核矩陣的每個元素與掃描所覆蓋區(qū)域的每個元素相乘求和得到輸出值,這種處理過程被稱為卷積運算,因此每一個卷積核對應(yīng)一種特征提取器。2)池化層將訓(xùn)練樣本劃分成互不相交的分塊,并選擇一個單值作為分塊輸出,通常選擇分塊中的最大值或均值。池化有助于縮減數(shù)據(jù)大小,提取出訓(xùn)練樣本的顯著特征,降低噪聲對于數(shù)據(jù)處理的干擾。3)全連接層的作用是整合具有類別區(qū)分能力的局部特征。全連接層的每個神經(jīng)元與上一層、下一層的所有神經(jīng)元都保持連接。由于神經(jīng)元之間是全連接關(guān)系,因此被稱為全連接層。卷積神經(jīng)網(wǎng)絡(luò)是一種自動提取特征的深度學(xué)習(xí)模型,建立起一個從原始數(shù)據(jù)輸入到結(jié)果輸出

21、的函數(shù)映射。卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)獲得的高層特征比基于專家經(jīng)驗的人工特征能夠更好完成分類任務(wù)。3.3.2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計針對網(wǎng)絡(luò)協(xié)議識別的實際需求,本文在設(shè)計卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)時考慮了如下因素:1)根據(jù)數(shù)據(jù)集的特征,設(shè)計輸入層的數(shù)據(jù)格式為28×28的矩陣。鑒于網(wǎng)絡(luò)協(xié)議數(shù)據(jù)的復(fù)雜性,為了提高協(xié)議識別的準(zhǔn)確率,設(shè)計了包含多個卷積層、池化層、全連接層的卷積神經(jīng)網(wǎng)絡(luò)。2)針對網(wǎng)絡(luò)層數(shù)增加引發(fā)梯度消失、過擬合、退化等問題,采用了relu函數(shù)、dropout機制、3×3或5×5卷積核。3)為了保證模型訓(xùn)練的效率,加快算法的收斂速度,減少振蕩,采用了指數(shù)衰減的學(xué)習(xí)率。所提出的卷積

22、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括input層、c1層、s2層、c3層、s4層、fc5層、fc6層、fc7層和output層,其中c1層、c3層為卷積層,s2、s4為池化層,fc5層、fc6層、fc7層為全連接層,具體網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。為了多角度提取局部特征,c1層選用16個卷積核,c3層選用32個卷積核。由于參數(shù)誤差可能導(dǎo)致均值偏移,為了能夠盡可能地保留局部特征的紋理信息,s2層、s4層選用最大值采樣。首先是兩個交替的卷積層和池化層。c1層是第一個卷積層,首先對input層進(jìn)行填充處理,使得卷積后映射的圖像與input層的圖像大小相等;然后選取16個3×3卷積核,并與偏置項相加;最后使用relu激

23、活函數(shù)激活,得到16張28×28特征圖像。s2層是第一個池化層,對c1層輸出圖像進(jìn)行最大值池化,池化窗口設(shè)置為2×2,得到16張14×14特征圖像。c3層是第二個卷積層,使用32個5×5 卷積核,其處理方式與c1層相同,得到32個14×14特征圖像。s4層是第二個池化層,得到32張7×7特征圖像。然后是兩個全連接層:fc5、fc6。fc5層有1568個神經(jīng)元,與s4層進(jìn)行全連接,加上偏置項,使用relu函數(shù)激活。與fc5層進(jìn)行全連接的fc6層有128個神經(jīng)元,加上偏置項,然后使用relu函數(shù)激活,采用dropout策略,丟棄50%的特

24、征。最后一層是output層,實際是一個softmax分類器,輸出的是樣本的概率分布。softmax分類器能夠?qū)我鈱崝?shù)的k維向量轉(zhuǎn)化成另一個k維向量,使得新的k維向量的每個元素的取值在 01范圍,且所有元素的總和為1。這種轉(zhuǎn)化函數(shù)可以凸顯占比最大的項目,抑制遠(yuǎn)小于最大項的其他分量。output層有k個神經(jīng)元,k由應(yīng)用層協(xié)議分類的數(shù)量決定。根據(jù)不同的協(xié)議識別問題,可以微調(diào)模型。3.3.3 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練包括正向傳播和反向傳播兩部分。在訓(xùn)練時,首先是對一批訓(xùn)練樣本進(jìn)行正向傳播,計算網(wǎng)絡(luò)每一層的輸出值,最終通過損失函數(shù)計算出卷積神經(jīng)網(wǎng)絡(luò)對于樣本標(biāo)簽的預(yù)測值與真實標(biāo)簽值之

25、間的誤差。卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的實質(zhì)就是求解損失函數(shù)的極小值,使誤差最低,這意味著卷積神經(jīng)網(wǎng)絡(luò)的分類結(jié)果越精確,這種最優(yōu)化問題可以用梯度下降法進(jìn)行求解。梯度下降法的原理是沿著梯度向量的反方向進(jìn)行迭代以期能夠達(dá)到損失函數(shù)的極值點。梯度下降法在反向傳播的過程中實施。但是,為了實施梯度下降法,需要在正向傳播的階段收集一些數(shù)據(jù)。其中,最主要的是在正向傳播時,計算每個樣本的損失函數(shù)在每一層的權(quán)值參數(shù)以及偏置參數(shù)的梯度值,進(jìn)而通過計算一批訓(xùn)練樣本的梯度的均值,得到整體梯度值。為了測量模型預(yù)測類型與實際類型之間的偏差,本文定義交叉熵為損失函數(shù),利用l2正則化對權(quán)重的平方和進(jìn)行量化調(diào)整,如式(1)所示:l(w)=

26、-12mmi=1ytln y*+2w2(1)其中:等式右側(cè)第一項為交叉熵項,第二項為正則化項;w是神經(jīng)網(wǎng)絡(luò)需要學(xué)習(xí)得到的參數(shù);y是樣本真實標(biāo)簽值,即只有一個分量為1、其余為0的向量;y*是分類模型預(yù)測的概率分布值;m是訓(xùn)練樣本數(shù)量;是正則化系數(shù),本文取值0.01。反向傳播過程將對卷積神經(jīng)網(wǎng)絡(luò)中的參數(shù)進(jìn)行更新,其起點是輸出層,終點是輸入層。通過不斷迭代,促使參數(shù)更新朝著卷積神經(jīng)網(wǎng)絡(luò)收斂的方向進(jìn)行,最終獲得使損失函數(shù)達(dá)到極小值。為了求解極小值,本文使用了mini-batch隨機梯度下降法,該方法將數(shù)據(jù)集分成若干批,采用部分樣本代替全部樣本,按批計算損失函數(shù),能夠保證參數(shù)更新朝著模型收斂的方向進(jìn)行。

27、各層權(quán)值和偏置參數(shù)的調(diào)整方向如式(2)和式(3)所示:w(l)w(l)-(w(l)/m+w(l)(2)b(l)b(l)-·b(l)/m (3)其中,是學(xué)習(xí)率,初始學(xué)習(xí)率為0.01,衰減系數(shù)1e-6。4 實驗與結(jié)果分析4.1 實驗數(shù)據(jù)目前協(xié)議識別領(lǐng)域的網(wǎng)絡(luò)流量收集有兩種途徑:一種是在受控環(huán)境中部署目標(biāo)應(yīng)用,然后模擬應(yīng)用狀態(tài),從而獲得目標(biāo)協(xié)議產(chǎn)生的網(wǎng)絡(luò)流量;另一種采用包捕獲的方式,根據(jù)經(jīng)驗自動或采用人工的方法收集網(wǎng)絡(luò)流量,如對于端口固定的協(xié)議,可以采用端口監(jiān)聽的方式進(jìn)行收集。但數(shù)據(jù)收集可能含有非目標(biāo)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包,就需要領(lǐng)域?qū)<业膮⑴c,選擇適合的訓(xùn)練樣本。本文采取第二種方法進(jìn)行數(shù)據(jù)集的

28、構(gòu)建。為了確保數(shù)據(jù)的代表性,本文實驗選用了mit林肯實驗室提供的darpa25數(shù)據(jù)集。本文選取了darpa數(shù)據(jù)集中的4種協(xié)議進(jìn)行測試,分別是超文本傳輸協(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的應(yīng)用層協(xié)議,也有基于udp的應(yīng)用層協(xié)議,既有二進(jìn)制協(xié)議,也有文本類協(xié)議。本文實驗隨機選取數(shù)據(jù)集75%用于分類模型的訓(xùn)練,

29、剩余數(shù)據(jù)集的25%用于分類模型的測試。選用四種應(yīng)用層協(xié)議進(jìn)行分類識別,所以n取4,設(shè)置對應(yīng)的四種協(xié)議類型標(biāo)簽:1,0,0,0t,0,1,0,0t,0,0,1,0t,0,0,0,1t分別對應(yīng)http、ftp、smtp、dns協(xié)議。4.2 實驗設(shè)置與實驗指標(biāo)實驗使用python語言進(jìn)行編程,利用keras26和tensorflow27深度學(xué)習(xí)框架搭建分類模型。為了驗證本文方法的有效性,進(jìn)行了如下兩組實驗:1) 不同網(wǎng)絡(luò)流長度對識別性能的影響;2) 與其他機器學(xué)習(xí)方法的識別性能對比。實驗結(jié)果的評價指標(biāo)主要包括兩個部分:1)協(xié)議識別的性能指標(biāo);2)分類模型的測試時間。協(xié)議識別的性能指標(biāo)包括總體識別性能

30、指標(biāo)(準(zhǔn)確率accuracy)和單一類別識別性能指標(biāo)(精確率precision、召回率recall、f值f1-measure)。分類模型的測試時間是指使用分類模型檢測樣本類別的時間,測試時間與分類模型的復(fù)雜度有關(guān),越復(fù)雜的分類模型,計算量越大,測試時間也會相應(yīng)增加。假設(shè)待檢測數(shù)據(jù)集中包括目標(biāo)協(xié)議a、其余協(xié)議not-a。實驗相關(guān)指標(biāo)定義如下: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表示正確

31、分類為協(xié)議not-a的實例數(shù);fp表示錯誤分類為協(xié)議a的實例數(shù);fn表示錯誤分類為協(xié)議not-a的實例數(shù)。準(zhǔn)確率accuracy用于衡量數(shù)據(jù)集的整體識別效果,準(zhǔn)確率的值越高,總體識別效果越好;精確率precision是指協(xié)議a的識別結(jié)果中被正確識別的比例;召回率recall是指協(xié)議a的所有實例中被正確識別的比例;f值(f1-measure)綜合考慮了精確率和召回率,對這兩個指標(biāo)進(jìn)行加權(quán)平均調(diào)和,f值越大,單一類別識別效果越好。實驗采用accuracy和f值進(jìn)行數(shù)據(jù)分析,能夠準(zhǔn)確地評估方法對于網(wǎng)絡(luò)協(xié)議的識別效果。4.3 結(jié)果分析為了確定網(wǎng)絡(luò)流的合適長度,卷積神經(jīng)網(wǎng)絡(luò)的輸入設(shè)定為32×3

32、2,若長度不足1024,則補0。在協(xié)議識別過程中,由于每個網(wǎng)絡(luò)流包含的數(shù)據(jù)包個數(shù)未知,每個數(shù)據(jù)包大小又是未知的,造成網(wǎng)絡(luò)流之間的長度差別很大。如何選取合適的網(wǎng)絡(luò)流長度,需要通過實驗確定。選取不同網(wǎng)絡(luò)流長度時,協(xié)議識別性能的對比如表1所示。表格(有表名)表1 不同網(wǎng)絡(luò)流長度時的識別性能tab. 1 recognition performance with different network flow size網(wǎng)絡(luò)流長度/b準(zhǔn)確率/%測試時間/s20098.836630098.875240098.885550098.884860098.875170098.926080098.935290096.4

33、662100096.5263從表1中可以看出,網(wǎng)絡(luò)流長度在700 800b之間識別準(zhǔn)確率最高,且長度大于800b時,識別準(zhǔn)確率明顯降低,產(chǎn)生過擬合。識別準(zhǔn)確率出現(xiàn)這種變化主要是因為網(wǎng)絡(luò)流的前部通常包含建立通信連接和少數(shù)包含協(xié)議字段的數(shù)據(jù)包,這些信息有助于識別網(wǎng)絡(luò)協(xié)議。由于實驗采取相同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),所以測試時間相近。因此,這里主要考慮識別準(zhǔn)確率,選取準(zhǔn)確率最高的范圍,進(jìn)而確定網(wǎng)絡(luò)流長度。經(jīng)典的lenet-5卷積神經(jīng)網(wǎng)絡(luò)的mnist圖像輸入大小是28×28,也在700 800b,同樣取得了很高的識別準(zhǔn)確率,說明無論輸入是網(wǎng)絡(luò)流還是圖像,卷積神經(jīng)網(wǎng)絡(luò)均具有遷移學(xué)習(xí)的能力,表明這種架構(gòu)的卷

34、積神經(jīng)網(wǎng)絡(luò)更能捕捉這個尺寸范圍數(shù)據(jù)的關(guān)鍵信息,因此本文后續(xù)分析選擇784b(28×28)作為分類模型的輸入大小。圖4比較了不同機器學(xué)習(xí)方法識別不同協(xié)議的f值差異。nb(naive bayes)、svc(support vector classification)和knn(k-nearest neighbors)是常用于協(xié)議識別的分類算法,文獻(xiàn)28方法是近期提出的基于卷積神經(jīng)網(wǎng)絡(luò)的流量識別方法。由于流量數(shù)據(jù)集、軟硬件平臺和具體實驗環(huán)境的差異,導(dǎo)致不同方法的性能對比難以開展,因此對比實驗均采取本文的數(shù)據(jù)預(yù)處理方法,且采用python的機器學(xué)習(xí)庫sklearn搭建nb、svc、knn分類模

35、型,其中:nb選擇高斯貝葉斯分類模型,svc選擇線性支持向量機分類模型,knn 選擇5個權(quán)重相當(dāng)?shù)淖罱従訕?gòu)造分類模型。另外,文獻(xiàn)28方法分類模型的搭建采用keras和tensorflow。從圖4中可以看出,五種分類方法中,knn、文獻(xiàn)28方法和本文方法識別不同協(xié)議時,f值均已超過98.00%,且本文方法識別dns、http協(xié)議時取得了最高f值100.00%,knn識別ftp協(xié)議時取得了最高f值99.20%, 文獻(xiàn)28方法識別smtp協(xié)議時取得了最高f值99.53%。本文方法識別ftp協(xié)議、smtp協(xié)議時f值分別取得了98.58%和99.29%。nb方法是基于特征向量各分量相互獨立的假設(shè),然而

36、原始流量存在協(xié)議識別的無效信息,如變量字段,因此識別效果比其他方法差。svc方法是尋找能夠分離樣本的超平面,對于類型較少的協(xié)議,如dns、http,識別效果較好;對于包含多種類型的協(xié)議,svc識別效果比knn、文獻(xiàn)28方法和本文方法差。knn是根據(jù)距離最近的k個實例進(jìn)行投票統(tǒng)計,選擇數(shù)量最多的類別作為預(yù)測的分類結(jié)果,knn識別不同協(xié)議的f值超過了98%。文獻(xiàn)28方法對ftp、smtp協(xié)議的識別效果優(yōu)于本文方法,而本文方法更擅長識別dns、http協(xié)議。本文方法屬于有監(jiān)督學(xué)習(xí),模型訓(xùn)練的前提是網(wǎng)絡(luò)流已知,根據(jù)人工判定的方式確定協(xié)議字段的差異情況,進(jìn)而判定協(xié)議相似程度。顯然,http和dns的協(xié)議

37、格式有很大的不同,ftp和smtp在協(xié)議格式上有一定的相似之處,比如ftp和smtp都存在“220”,分類模型會認(rèn)為“220”既屬于ftp、又屬于smtp,這就導(dǎo)致了分類模型的誤判。表2比較了不同機器學(xué)習(xí)方法的識別準(zhǔn)確率差異,本文方法的準(zhǔn)確率是99.70%,優(yōu)于對比方法。隨著網(wǎng)絡(luò)流量的規(guī)模日益增加,面對成千上萬種協(xié)議,能夠準(zhǔn)確識別出更多網(wǎng)絡(luò)流量的協(xié)議類別,有助于網(wǎng)絡(luò)運營商對網(wǎng)絡(luò)資源進(jìn)行合理管理和配置??偟膩碚f,本文方法以網(wǎng)絡(luò)流作為輸入,通過cnn提取協(xié)議特征,對多種協(xié)議進(jìn)行測試,表現(xiàn)出良好的識別效果,與其他機器學(xué)習(xí)方法相比,在識別準(zhǔn)確率上有所提升,驗證了本文方法的有效性。5 結(jié)語利用網(wǎng)絡(luò)流量的

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

39、ces)1陳亮,龔儉,徐選.應(yīng)用層協(xié)議識別算法綜述j.計算機科學(xué),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王一鵬,云曉春,張永錚,等.基于主動學(xué)習(xí)和svm方法的網(wǎng)絡(luò)協(xié)議識別技術(shù)j.通信學(xué)報,2013(10):135-142.(wang y p, yun x c, zhang y z, et al. network protocol identif

40、ication based on active learning and svm algorithm j. journal on communications, 2013, 34(10): 135-142.)3鄒騰寬,汪鈺穎,吳承榮.網(wǎng)絡(luò)背景流量的分類與識別研究綜述j.計算機應(yīng)用,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

41、, 39(3): 802-811.)4joe t, eliot l, allison m, et al. service name and transport protocol port number registry eb/ol. 2019-09-23. https://assignments/service-names-port-numbers/service-names-port-numbers.xhtml.5張蕾,崔勇,劉靜,等.機器學(xué)習(xí)在網(wǎng)絡(luò)空間安全研究中的應(yīng)用j.計算機學(xué)報,2018,41(9):1943-1975.(zhang l, cui y, liu

42、j, et al. application of machine learning in cyberspace security research j. chinese journal of computers, 2018, 41(9): 1943-1975.)6余凱,賈磊,陳雨強,等.深度學(xué)習(xí)的昨天、今天和明天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 an

43、d development, 2013, 50(9): 1799-1804.)7bengio y. learning deep architectures for ai m/ foundations and trends in machine learning. hanover, ma: now publishers inc., 2009, 2(1): 1-127.8lecun y, bengio y, hinton g. deep learning j. nature, 2015, 521(7553): 436-444.9cybenko g. approximation by superpo

44、sitions of a sigmoidal function j. mathematics of control, signals, and systems, 1989, 2(4): 303-314.10周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述j.計算機學(xué)報,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.)11wang z. the applicati

45、ons of deep learning on traffic identification eb/ol. 2019-04-14. https:/12jain 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 in

46、telligence and computing, 4th international conference on big data intelligence and computing and cyber science and technology congress. piscataway: ieee, 2018: 1001-1007.13wang w, zhu m, zeng x, et al. malware traffic classification using convolutional neural network for representation learning c/

47、proceedings of the 2017 international conference on information networking. piscataway: ieee, 2017: 712-717.14ma 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:

48、 1195-1198.15陳雪嬌,王攀,俞家輝.基于卷積神經(jīng)網(wǎng)絡(luò)的加密流量識別方法j.南京郵電大學(xué)學(xué)報(自然科學(xué)版),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)絡(luò)的深度學(xué)習(xí)應(yīng)用協(xié)議識別技術(shù)研究與實現(xiàn)j.軟件導(dǎo)刊,

49、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.)17ren j, wang z. a novel deep learning method for application identification in wireless network j. china communicatio

50、ns, 2018, 15(10): 73-83.18熊剛,孟姣,曹自剛,等.網(wǎng)絡(luò)流量分類研究進(jìn)展與展望j.集成技術(shù),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.)19barakat 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張鳳荔,周洪川,張俊嬌,等.基于改進(jìn)凝聚層次聚類的協(xié)議分類算法j.計算機工程與科學(xué),2017,39(4):796-803.(z

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論