本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,特別是涉及一種基于特征自學(xué)習(xí)的加密流量識別方法及裝置。
背景技術(shù):
:隨著網(wǎng)絡(luò)的不斷發(fā)展和普及,要求網(wǎng)絡(luò)監(jiān)管機構(gòu)能對各種網(wǎng)絡(luò)流量進行有效地識別、分類和控制,從而極大提高網(wǎng)絡(luò)管理的有效性和安全性。但是隨著網(wǎng)絡(luò)發(fā)展,流量出現(xiàn)的形式千變?nèi)f化,使得流量識別的復(fù)雜度也在提高,其中加密流量在網(wǎng)絡(luò)中占有相當(dāng)大的比重,給流量識別帶來了新的挑戰(zhàn)。現(xiàn)有流量識別技術(shù)的缺陷包括:1、無法識別采用動態(tài)端口和常用協(xié)議端口的流量,一些應(yīng)用軟件為了躲避檢測和監(jiān)管,會采用隱藏或假冒端口號,如改用動態(tài)端口或常用協(xié)議端口,使得基于端口的識別方法準(zhǔn)確率降低。2、上述方法通過對數(shù)據(jù)包的應(yīng)用層數(shù)據(jù)進行特征匹配來識別流量,但是加密的流量其數(shù)據(jù)包內(nèi)容不能明文訪問,使得無法提取特征,進而無法有效識別。3、逆向破解技術(shù)需要人工根據(jù)經(jīng)驗進行分析,比較耗費人力,同時無法實現(xiàn)大規(guī)模處理。4、現(xiàn)有技術(shù)所使用的特征需要根據(jù)經(jīng)驗提前進行人工抽取和選擇。隨著流量復(fù)雜度的提高,人工提取和選擇特征帶來的人力成本過高,尤其當(dāng)流量數(shù)據(jù)規(guī)模很大時,也有由于主觀性帶來的所選特征不夠準(zhǔn)確的問題。因此對加密流量進行識別逐漸成為亟需解決的問題,同時加密流量識別對網(wǎng)絡(luò)犯罪行為分析、輿情分析、國家信息安全等也具有重要意義。技術(shù)實現(xiàn)要素:為了克服上述現(xiàn)有技術(shù)的缺陷,本發(fā)明要解決的技術(shù)問題是提供一種基于特征自學(xué)習(xí)的加密流量識別方法及裝置,用以提高現(xiàn)有技術(shù)中加密流量的識別率。為解決上述技術(shù)問題,本發(fā)明中的一種基于特征自學(xué)習(xí)的加密流量識別方法,包括:將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化數(shù)值或歸一化灰度值;將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化數(shù)值保存到文本文件中;或者將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化灰度值生成灰度圖像,并保存到圖片文件中;將所述文本文件或所述圖片文件作為預(yù)先訓(xùn)練得到的加密流量分類器的測試輸入;通過所述加密流量分類器識別所述當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包的流量類型。為解決上述技術(shù)問題,本發(fā)明中的一種基于特征自學(xué)習(xí)的加密流量識別裝置,包括:預(yù)處理模塊,用于將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化數(shù)值或歸一化灰度值;存儲模塊,將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化數(shù)值保存到文本文件中;或者將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化灰度值生成灰度圖像,并保存到圖片文件中;識別模塊,用于將所述文本文件或所述圖片文件作為預(yù)先訓(xùn)練得到的加密流量分類器的測試輸入;通過所述加密流量分類器識別所述當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包的流量類型。本發(fā)明有益效果如下:本發(fā)明中方法及裝置可以有效識別加密流量,并具有高精準(zhǔn)識別率,同時具有自動抽取特征和選擇特征的能力,也可以批量處理流量識別任務(wù)。附圖說明圖1是本發(fā)明實施例中一種可選地基于特征自學(xué)習(xí)的加密流量識別方法的具體流程圖;圖2是本發(fā)明實施例中一種訓(xùn)練和測試預(yù)處理實施流程圖;圖3是本發(fā)明實施例中另一種訓(xùn)練和測試預(yù)處理實施流程圖;圖4是本發(fā)明實施例中一種可選地加密流量識別方法訓(xùn)練和測試階段的詳細流程圖;圖5是本發(fā)明實施例中算法實施過程的流程圖。具體實施方式為了解決現(xiàn)有技術(shù)提高現(xiàn)有技術(shù)中加密流量的識別率的問題,本發(fā)明提供了一種基于特征自學(xué)習(xí)的加密流量識別方法及裝置,以下結(jié)合附圖以及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不限定本發(fā)明。本發(fā)明實施例中一種基于特征自學(xué)習(xí)的加密流量識別方法,包括:將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化數(shù)值或歸一化灰度值;將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化數(shù)值保存到文本文件中;或者將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化灰度值生成灰度圖像,并保存到圖片文件中;將所述文本文件或所述圖片文件作為預(yù)先訓(xùn)練得到的加密流量分類器的測試輸入;通過所述加密流量分類器識別所述當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包的流量類型。其中,流量類型具體為網(wǎng)絡(luò)加密流量和網(wǎng)絡(luò)非加密流量。本發(fā)明實施例匯總方法能夠有效地識別網(wǎng)絡(luò)加密流量,對于特征不是很明顯的加密流量都有顯著效果,對提高實際流量識別準(zhǔn)確率有很大的意義;同時,本發(fā)明提出的方法不需要任何人工干預(yù)就可以完成特征的自動抽取和選擇,極大減少了人力成本和人的主觀性對所選特征質(zhì)量的影響,有效提高最終的識別準(zhǔn)確率。具體說明本發(fā)明實施例,如圖1所示,本發(fā)明實施例中方法包括:S101,抓取待測加密流量數(shù)據(jù),經(jīng)預(yù)處理后作為測試輸入;S102,根據(jù)訓(xùn)練得到的加密流量分類器確定屬于各流量類型的概率;S103,取概率最大的流量類型為最終預(yù)測結(jié)果。也就是說,本發(fā)明實施例中使用抓包工具獲取流量數(shù)據(jù),經(jīng)過跟圖2中所示測試預(yù)處理一樣的過程得到測試輸入數(shù)據(jù),它包括多條待測試流量數(shù)據(jù);將測試數(shù)據(jù)輸入已經(jīng)訓(xùn)練好的算法分類器,分類器會分析并計算出每條待測試數(shù)據(jù)屬于各個類別的概率,并將概率最大的類別作為最終結(jié)果。進一步說,所述當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包為十六進制字符串;所述將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化數(shù)值,包括:將所述十六進制字符串中每兩位字符為一組,轉(zhuǎn)換為十進制數(shù),然后進行歸一化,形成格式統(tǒng)一的數(shù)值;所述將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化灰度值,包括:將所述十六進制字符串中每兩位字符為一組,轉(zhuǎn)換為灰度值。其中,格式統(tǒng)一的數(shù)值為0~1之間的浮點數(shù)。詳細說明,如圖4所示,本發(fā)明實施例中方法分為訓(xùn)練和測試兩個階段。其中訓(xùn)練階段主要有訓(xùn)練預(yù)處理、構(gòu)建算法模型、生成分類器三個模塊;測試階段主要包括測試預(yù)處理和預(yù)測處理。(1)訓(xùn)練預(yù)處理:通過抓包工具抓取應(yīng)用樣本流量數(shù)據(jù)包作為原始數(shù)據(jù),對原始數(shù)據(jù)的格式進行統(tǒng)一處理并歸一化,并人工標(biāo)記應(yīng)用類別,將其保存為文本格式文件,文本文件中每一行表示一個流量包。原始數(shù)據(jù)各個類別樣本數(shù)量不均衡,通過人工根據(jù)經(jīng)驗篩選樣本進行數(shù)量均衡,同時降低計算復(fù)雜度。具體實現(xiàn)方式一如圖2所示,上述原始數(shù)據(jù)是以文本形式保存的連續(xù)的十六進制字符串?dāng)?shù)據(jù)流量包,需要將其每兩位為一組轉(zhuǎn)換成十進制數(shù)值,轉(zhuǎn)換后的十進制數(shù)值范圍為0~255,再進行歸一化處理為0~1之間的浮點數(shù),歸一化是為了使數(shù)值都介于一定范圍之內(nèi),同時也可簡化計算。具體實現(xiàn)方式二如圖3所示,使用抓包工具獲取網(wǎng)絡(luò)流量數(shù)據(jù)包,每個包是一串連續(xù)的十六進制字符串。將這個字符串每兩位十六進制字符為一組,轉(zhuǎn)換為一個0~255的灰度值,生成對應(yīng)灰度圖像,并保存到.jpg文件中。(2)構(gòu)建算法模型:本發(fā)明采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)構(gòu)建算法模型,它可以通過學(xué)習(xí)一種深層的非線性網(wǎng)絡(luò)結(jié)構(gòu)來彌補淺層特征學(xué)習(xí)方法的不足,展現(xiàn)了強大的特征學(xué)習(xí)能力。CNN的特征抽取和特征選擇與其他分類算法相比其過程是透明的且無需人工參與。而CNN模型的稀疏連接和權(quán)值共享兩個特點可以減少神經(jīng)網(wǎng)絡(luò)的訓(xùn)練參數(shù),使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更簡單,同時降低了指數(shù)級的計算量,適應(yīng)性變得更強。訓(xùn)練過程中卷積層和采樣層交叉進行,整個過程依次包括有輸入層、卷積層、采樣層、卷積層、采樣層、輸出層共六層網(wǎng)絡(luò)。在開始訓(xùn)練前,所有的權(quán)重都用一些不同的小隨機數(shù)進行初始化。其中核函數(shù)的大小在訓(xùn)練過程中不斷進行調(diào)整,當(dāng)損失函數(shù)最小時達到最優(yōu)。(3)生成加密流量分類器:通過構(gòu)建算法模型過程中的多次迭代,最終獲得了最佳連接權(quán)重值,這樣就學(xué)習(xí)到一個最優(yōu)分類器。(4)測試預(yù)處理:和訓(xùn)練預(yù)處理的處理過程是一樣的,唯一不同的是訓(xùn)練預(yù)處理需要保存數(shù)據(jù)的標(biāo)簽,而測試預(yù)處理本來就不知道類別,也就無類別標(biāo)簽可保存。(5)預(yù)測處理:根據(jù)訓(xùn)練構(gòu)建的分類器為測試樣本預(yù)測類別,并保存測試結(jié)果。也就是說,所述將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化數(shù)值或歸一化灰度值之前,還包括:獲取至少兩種流量類型的網(wǎng)絡(luò)流量數(shù)據(jù)包樣本;采用卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練所述網(wǎng)絡(luò)流量數(shù)據(jù)包樣本,學(xué)習(xí)所述模型的訓(xùn)練參數(shù),生成加密流量分類器。其中,訓(xùn)練過程中的具體實現(xiàn)流程如圖4所示。具體說,CNN算法共有六層,除輸入層外,每層都包含可訓(xùn)練參數(shù)(連接權(quán)重)。進一步說,所述卷積神經(jīng)網(wǎng)絡(luò)模型包括輸入層、第一卷積層、第一采樣層、第二卷積層、第二采樣層和輸出層;所述輸入層為M*M的二維矩陣;M是由上述十六進制每兩位一組劃分后的總組數(shù)的開方,比如288位十六進制劃分后就是144組,即M=12(M*M=144))。至于選取多少字節(jié)的十六進制,是經(jīng)過反復(fù)試驗測試,選取使模型結(jié)果最優(yōu)的字節(jié)數(shù),說明此長度的字節(jié)數(shù)既沒有信息丟失也沒有冗余。所述第一卷積層有m個第一特征圖,每個所述第一特征圖中每個神經(jīng)元與所述輸入層中a*a的鄰域相連;所述第一特征圖的大小為(M-a+1)*(M-a+1);所述第一采樣層有m個N*N的第二特征圖,每個所述第二特征圖中每個單元與所述第一特征圖的b*b鄰域連接;所述第二特征圖大小是所述第一特征圖的1/(b*b);所述第二卷積層通過n個c*c的卷積核去所述第一卷積層,得到n個(N-c+1)*(N-c+1)大小的第三特征圖;所述第二采樣層有n個P*P大小的第四特征圖構(gòu)成;每個所述第四特征圖中每個神經(jīng)元與所述第二卷積層的d*d鄰域相連;所述輸出層是一個全連接卷積層,所述輸出層具有跟流量類型數(shù)相等的多個單元,每個單元與所述第二采樣層的n個特征圖連接;其中,a、m、b、n、c、P和d均為訓(xùn)練參數(shù)。詳細說,輸入層是一個M*M大小的二維矩陣。C1層為一個卷積層,由m個特征圖FeatureMap構(gòu)成。特征圖中每個神經(jīng)元與輸入中a*a的鄰域相連。特征圖大小為(M-a+1)*(M-a+1)。S2層是一個下采樣層,下采樣即對圖像進行子抽樣,可以減少數(shù)據(jù)處理量同時保留有用信息。S2有m個N*N的特征圖,特征圖中每個單元與C1中相對應(yīng)特征圖的b*b鄰域連接。S2中每個特征圖大小是C1中的1/(b*b).C3層又是一個卷積層,它通過n個c*c的卷積核去卷積層S2,然后得到n個(N-c+1)*(N-c+1)大小的特征圖Featuremap。S4是一個下采樣層,有n個P*P大小的特征圖構(gòu)成。特征圖中每個神經(jīng)元與C3中相應(yīng)特征圖的d*d鄰域相連,跟C1和S2之間的連接一樣。輸出層是一個全連接卷積層,即S4層到輸出層是全連接層,卷積核大小和上一層核大小一樣,最終生成跟類別數(shù)相等的多個單元,每個類別一個單元。每個單元與上一層的n個特征圖連接。訓(xùn)練過程中除了輸出層外每層的參數(shù)都是根據(jù)反復(fù)實驗、測試所得,根據(jù)經(jīng)驗在一定范圍進行調(diào)優(yōu),選取使結(jié)果最優(yōu)的參數(shù)。其中,各參數(shù)范圍如下:M:8~32;m:6~8;a:2~4;b:2~4;N=(M-a+!)*(M-a+1)/(b*b);n:6~8;c:2~4;d::2~4;P=(N-c+1)*(N-c+1)/(d*d)。本發(fā)明提出的基于特征自學(xué)習(xí)的加密流量識別方法,能夠有效地識別網(wǎng)絡(luò)加密流量,對于特征不是很明顯的加密流量都有顯著效果,對提高實際流量識別準(zhǔn)確率有很大的意義;同時,本發(fā)明提出的方法不需要任何人工干預(yù)就可以完成特征的自動抽取和選擇,極大減少了人力成本和人的主觀性對所選特征質(zhì)量的影響,也可以一定程度上提高最終的識別準(zhǔn)確率。為了驗證本發(fā)明提出方法的有效性,以實驗中對自由門和非自由門(包括暴風(fēng)、風(fēng)行、酷狗、迅雷、皮皮影音等)的加密流量進行了捕獲分析為例,以識別是否是自由門為目標(biāo),即最終目標(biāo)是解決一個二分類問題。實驗中的訓(xùn)練集和測試集數(shù)據(jù)規(guī)模如下表:表(1)數(shù)據(jù)規(guī)模數(shù)據(jù)集規(guī)模訓(xùn)練集210848(free占比50%)測試集52712(free占比50%)從表中可見,訓(xùn)練集和測試集中自由門和非自由門樣本的數(shù)量分別占比50%,這樣可以保證不同類別下樣本量的均衡性,使最終結(jié)果更符合客觀規(guī)律,更準(zhǔn)確。基于上述訓(xùn)練集和測試集,采用3.2中所述的流程進行訓(xùn)練和測試,實驗結(jié)果如下表:表(2)實驗結(jié)果數(shù)據(jù)上表中第一行是算法輸入所取字節(jié)數(shù),用于構(gòu)建CNN算法模型,實驗證明當(dāng)流量數(shù)據(jù)取前288字節(jié)時效果最好,準(zhǔn)確率為72.63%,耗時約3.5分鐘。第一列是各個指標(biāo)參數(shù),本發(fā)明算法進行了四次迭代,表中列出了當(dāng)取不同字節(jié)時每次迭代后模型精度的變化情況,可見隨著迭代次數(shù)增加,精度也在提高。Precise行是測試的準(zhǔn)確率結(jié)果,Elapsedtime是所耗費時間。本發(fā)明實驗數(shù)據(jù)雖然是針對自由門和迅雷等加密流的,但經(jīng)分析和推斷,其結(jié)果的有效性也同樣適用于翻墻路由器、無界一點通和火鳳凰等的加密流量識別,同時在特征比較明顯的普通協(xié)議識別上效果更明顯。本發(fā)明進一步提出一種基于特征自學(xué)習(xí)的加密流量識別裝置。本發(fā)明實施例中一種基于特征自學(xué)習(xí)的加密流量識別裝置,包括:預(yù)處理模塊,用于將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化數(shù)值或歸一化灰度值;存儲模塊,將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化數(shù)值保存到文本文件中;或者將所述當(dāng)網(wǎng)網(wǎng)絡(luò)流量數(shù)據(jù)包對應(yīng)的歸一化灰度值生成灰度圖像,并保存到圖片文件中;識別模塊,用于將所述文本文件或所述圖片文件作為預(yù)先訓(xùn)練得到的加密流量分類器的測試輸入;通過所述加密流量分類器識別所述當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包的流量類型。進一步說,所述當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包為十六進制字符串;所述將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化數(shù)值,包括:將所述十六進制字符串中每兩位字符為一組,轉(zhuǎn)換為十進制數(shù),然后進行歸一化,形成格式統(tǒng)一的數(shù)值;所述將獲取的當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)包轉(zhuǎn)換為歸一化灰度值,包括:將所述十六進制字符串中每兩位字符為一組,轉(zhuǎn)換為灰度值。具體說,格式統(tǒng)一的數(shù)值為0~1之間的浮點數(shù)。進一步說,所述裝置還包括:訓(xùn)練模塊,用于用于獲取至少兩種流量類型的網(wǎng)絡(luò)流量數(shù)據(jù)包樣本;采用卷積神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練獲取并經(jīng)預(yù)處理后的網(wǎng)絡(luò)流量數(shù)據(jù)包樣本,學(xué)習(xí)所述相關(guān)參數(shù),訓(xùn)練生成加密流量分類器。具體說,所述卷積神經(jīng)網(wǎng)絡(luò)模型包括輸入層、第一卷積層、第一采樣層、第二卷積層、第二采樣層和輸出層;所述輸入層為M*M的二維矩陣;所述第一卷積層有m個第一特征圖,每個所述第一特征圖中每個神經(jīng)元與所述輸入層中a*a的鄰域相連;所述第一特征圖的大小為(M-a+1)*(M-a+1);所述第一采樣層有m個N*N的第二特征圖,每個所述第二特征圖中每個單元與所述第一特征圖的b*b鄰域連接;所述第二特征圖大小是所述第一特征圖的1/(b*b);所述第二卷積層通過n個c*c的卷積核去所述第一卷積層,得到n個(N-c+1)*(N-c+1)大小的第三特征圖;所述第二采樣層有n個P*P大小的第四特征圖構(gòu)成;每個所述第四特征圖中每個神經(jīng)元與所述第二卷積層的d*d鄰域相連;所述輸出層是一個全連接卷積層,所述輸出層具有跟流量類型數(shù)相等的多個單元,每個單元與所述第二采樣層的n個特征圖連接;其中,M、a、m、b、n、c、P、d均為訓(xùn)練參數(shù)。訓(xùn)練過程中除了輸出層外每層的參數(shù)都是根據(jù)反復(fù)實驗、測試所得,根據(jù)經(jīng)驗在一定范圍進行調(diào)優(yōu),選取使結(jié)果最優(yōu)的參數(shù)。其中:各參數(shù)范圍如下:M:8~32;m:6~8;a:2~4;b:2~4;N=(M-a+!)*(M-a+1)/(b*b);n:6~8;c:2~4;d::2~4;P=(N-c+1)*(N-c+1)/(d*d)。進一步說,本發(fā)明實施例中裝置還可以包括計算模塊:訓(xùn)練階段主要用于算法參數(shù)的調(diào)整,如構(gòu)建網(wǎng)絡(luò)過程中連接權(quán)重的更新等;測試階段主要是使用訓(xùn)練好的分類器為每條待測數(shù)據(jù)計算類別概率。本發(fā)明實施例中裝置能夠有效地識別網(wǎng)絡(luò)加密流量,對于特征不是很明顯的加密流量都有顯著效果,對提高實際流量識別準(zhǔn)確率有很大的意義;同時,本發(fā)明提出的方法不需要任何人工干預(yù)就可以完成特征的自動抽取和選擇,極大減少了人力成本和人的主觀性對所選特征質(zhì)量的影響,有效提高最終的識別準(zhǔn)確率。雖然本申請描述了本發(fā)明的特定示例,但本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明概念的基礎(chǔ)上設(shè)計出來本發(fā)明的變型。本領(lǐng)域技術(shù)人員在本發(fā)明技術(shù)構(gòu)思的啟發(fā)下,在不脫離本
發(fā)明內(nèi)容的基礎(chǔ)上,還可以對本發(fā)明做出各種改進,這仍落在本發(fā)明的保護范圍之內(nèi)。當(dāng)前第1頁1 2 3