999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于孿生神經網絡的惡意流量檢測方法

2022-07-21 09:45:18李道全魯曉夫楊乾乾
計算機工程與應用 2022年14期
關鍵詞:分類檢測方法

李道全,魯曉夫,楊乾乾

青島理工大學 信息與控制工程學院,山東 青島 266525

隨著互聯網技術的發展,網絡流量正在迅速增加,用戶訪問互聯網所產生的流量部分來源于傳統的網絡服務,例如網頁瀏覽、電子郵件,另一部分則來源于種類繁多的多媒體服務,例如P2P文件共享、游戲、社交平臺等等。互聯網的總體流量正在迅速增加,必然需要對流量進行監控和分類,以實現高效的網絡管理,為用戶提供更好的服務質量。網絡流量的分類是一系列捕獲來自網絡的數據包,確定其身份的過程,例如可從捕獲到的網絡數據包中找出對應的應用程序名稱。流量的正確分類可以實現:服務質量保證、惡意流量檢測、惡意軟件檢測以及入侵檢測等目的[1]。本文通過對流量的正確分類達到惡意流量檢測的目的。

針對流量分類的主要方法有三大類:基于端口的、基于有效載荷的(如深度包檢測技術(deep packet inspection,DPI))、基于統計特征的(如使用機器學習進行特征分類)等方法。文獻[2]提出了一種基于固定IP端口的流量分類方法,通過簡單的數據包報頭與收集到的固定IP端口進行匹配,快速、準確地完成了流量的分類。基于端口的流量分類方法在早期的互聯網中取得了不錯的效果,但隨著互聯網的快速發展,端口跳變、偽裝技術的出現,導致此類方法的分類準確度越來越低,不再可靠。文獻[3]使用DPI對流量進行分類識別,該技術解決了之前利用端口進行流量分類的不足,然而該技術需要占用大量的計算資源,雖然文獻[3]在原有的基礎上進行了改進提升,但它仍不適合用在現如今的高速網絡上進行在線的流量分類。基于端口、深度包檢測的流量分類方法,都是按照人們預先設定好的匹配規則來解析網絡數據包中固有的成分而完成流量的分類[4]。隨后,研究人員將統計特征應用于流量的分類領域。文獻[5]使用機器學習中的K均值聚類算法(K-means),作者對其稍加改進使其應用于流量分類中,最終取得了良好的效果,但該方法仍有著明顯的不足,即數據樣本中特征選取的好壞對最終的準確率影響較大。

傳統的機器學習算法應用于流量的分類領域,解決了此前基于端口、有效載荷方法的不足,但傳統的機器學習算法需要在預先選定好特征的前提條件下才能完成后續的分類工作,即面對一個流量數據集,特征選定的好壞直接影響最終的分類準確率。該問題一直阻礙著傳統的機器學習算法在這一領域的進一步研究。

深度學習技術[6]屬于機器學習的子領域,近些年在計算機視覺、自然語言處理等領域有著快速的發展。深度學習中的多層學習結構可在分布式的特征中發現高級的抽象特征,其中卷積神經網絡(convolutional neural networks,CNN)是一種典型的深度學習技術,在圖像和語音識別方面都取得了出色的表現。已經有大量的文獻證明,深度學習在流量分類領域也取得了出色的表現。文獻[7]使用卷積神經網絡提出了一種惡意軟件的流量分類方法,該方法首先將原始的流量數據轉化成可供CNN訓練學習的樣本,接著將這些樣本導入到算法模型中進行預訓練,再通過訓練后的模型對樣本數據進行識別,最終實現了惡意流量的分類檢測。文獻[8]設計了一種新的一維卷積神經網絡(1D CNN)模型,從網絡結構、超參數空間以及參數優化方面入手,構造了最優分類模型,相比于傳統的1D CNN模型,在時間和準確率上都有著明顯的進步。文獻[9]將CNN和長短期記憶網絡(long short-term memory,LSTM)結合在一起,提出了一種新的分類模型,在該模型中將一個預處理后的數據包導入到CNN中,由其完成一次特征的提取,然后再將任意三次連續輸出的特征導入到LSTM,最終進一步提高了分類的準確率。文獻[7]、文獻[8]、文獻[9]都是使用傳統意義上的深度學習技術進行分類識別的,通過訓練學習能夠自主選擇特征,解決了傳統機器學習中特征值選取的問題,并且在識別準確度上也有著優異的表現。

傳統的深度學習技術雖然解決了特征選取的問題,但新的問題隨之而來,即樣本不均衡問題。不同類別的樣本數據量差別較大時稱之為樣本不均衡,使用樣本不均衡的數據集訓練出來的模型,泛化能力差且容易發生過擬合。本文結合目前對流量分類的研究,基于深度學習技術中的孿生神經網絡,通過對比樣本間的相似度提出了一種端到端的單樣本檢測方法,該方法可對應用程序的網絡數據包實施在線的流量分類識別,同時解決了樣本不均衡所導致的問題,實現了惡意流量的快速檢測,并且在準確度上有著良好的表現。

本文的創新點如下:

(1)將孿生神經網絡與惡意流量檢測相結合,提出了一種端到端的單樣本檢測方法。

(2)在樣本不均衡的分類問題上,提出了一種解決方案。

1 網絡流量分類問題的研究

1.1 網絡流量分析

當前互聯網標準框架為OSI(open system interconnect)參考模型,OSI參考模型共七層(應用層,表示層,會話層,傳輸層,網絡層,數據鏈路層,物理層)。一般來說,數據從一個終端產生后經過互聯網被轉移到另一個終端上需要經歷上述七層,其中的每一層都有著其相應的功能。例如應用層提供FTP、HTTP等協議,它們保障了文件的安全傳輸、網頁的正常瀏覽;數據鏈路層提供幀編碼和誤差糾正控制,以保證物理層和網絡層之間進行可靠的數據傳輸。

數據在上述七層中的每一層都可能包含一些流量的特征信息,研究人員可以利用這些流量的特征信息,如協議和端口號來識別大多數的應用程序,確定流量的性質。

1.2 分類問題描述

流量的正確分類可以轉化為對惡意流量的檢測,流量分類實際上是對惡意流量檢測的第一步。本文所討論的惡意流量來源于惡意應用程序所產生的流量,這些流量會降低網絡服務質量,并導致網絡犯罪。因此需要對網絡流量進行快速、準確的識別和分類,給用戶提供一個安全、可靠的網絡環境。

文獻[10]利用每個flow的前N個有效載荷的特征來分析流量。因為一般來說,一個flow或者session的前端部分,通常是連接數據和一些內容數據,應該最能反應flow或session的內在特征。本文在文獻[7]、文獻[10]的經驗基礎上,只使用每個flow的前784個字節。由于只使用了前幾百個字節,因此大大降低了計算成本,并能以較高的速度實現。

流量分類問題的傳統處理流程如圖1所示,特征的選取和樣本不均衡是流量分類問題的研究瓶頸。

圖1 傳統處理流程Fig.1 Traditional processing process

2 方案設計

2.1 數據集來源

本文將收集到的16種類型數據分為兩大部分,分別命名為A和B。數據集A是由正常樣本和惡意樣本兩大類組成,共10種類型,其中5種正常樣本是由IXIA BPS[11]所采集,5種惡意樣本則來自于CTU-13[12],數據集具體如表1所示。

表1 數據集ATable 1 Dataset A

小數據集B的來源和上述一致,共有6種類型,其中3種為正常3種為惡意,具體如表2所示。

表2 數據集BTable 2 Dataset B

上述的網絡流量均由真實的應用程序所產生,其中數據集A中的各類數據都是一些較大的流量,而小數據集B則是由一些規模比較小的流量構成。為了滿足本次實驗的要求,再隨機地從數據集A中選出30%的數據,10%組成數據集A1,用于測試模型分類的效果,剩下的20%分別組成數據集A2、A3,用于檢驗最終的檢測效果。小數據集B稍有不同,只隨機地選出20%的數據組成B1即可,其中B1也是用于測試最終的檢測效果。因為本方法需要通過相似度的對比來判定樣本x的好壞,所以還要有一個樣本庫提供樣本作對比,上述數據集A2和B相當于樣本庫,提供樣本數據y給x做相似度分析。

2.2 數據預處理

由于現實環境中捕獲到的網絡流量通常是一段連續的數據流,在基于深度學習的網絡流量分類之前,需要將連續的數據流拆分為離散單元,以某種粒度拆分后的數據可以作為深度學習訓練的樣本。因此在訓練模型之前,需要對這些數據進行預處理,文獻[7]開發了一種數據預處理工具“USTC-TK2016”,該工具可對捕獲到的原始流量進行流量拆分、流量清洗、圖像生成等操作。本文結合主流的流量分類方法最終采用該工具中的“All+Flow”的處理方式對數據集進行預處理,其中All是指OSI的全部七層,Flow是指具有相同五元組的所有包,即相同的源IP地址、源端口、目的IP地址、目的端口、應用協議。本文的數據預處理流程如圖2所示。

圖2 預處理流程Fig.2 Pre-processing process

因為以太網頭中的物理鏈路信息對應用程序標識或流量分類任務來說沒有什么具體意義,所以首先刪除以太網頭。在建立連接或完成連接的過程中會生成標志段SYN、ACK、FIN,而這些字段用于主機名的解析,是在訪問建立連接的過程中所產生的,也和本文中的流量分類無關,因此這些信息都可以刪除。傳輸控制協議(TCP)和用戶數據報協議(UDP)的報頭大小不一,TCP的報頭長度一般為20個字節,而UDP為8個字節,為了使傳輸層段長度一致,在UDP段頭的末尾添加0,使其與TCP段頭的長度相等。最后通過流量清洗,對一些其他不相關的內容進行刪除,如一些數據包沒有應用層,所以最終的結果文件夾為空;又如用于域名解析的一些字段,這些無關的內容都可以刪除。

由于一個字節等于8 bit,而這8個bit正好可以被解釋為0到255之間的無符號整數[13],轉換為十進制數方式如下:

例如二進制數10000101按照上述公式可以轉化為十進制數133,一個字節代表一個像素點,對應的無符號整數0代表黑色,255代表白色。因此最終可以按照“一字節一像素點”的方式,把784字節的文件轉化成為一張28×28的灰度圖像。因為圖像的尺寸越小可獲得的特征也會越少,所以本文在文獻[7]的基礎上稍作修改,本文以784個字節為一個單元,使用9個連續的單元組成一個新的數據樣本,此時會得到一個84×84(7 056 Byte)的灰度圖像,如圖3所示。

圖3 尺寸轉化Fig.3 Size conversion

從數據集A中隨機選取兩種,從圖4的對比中可以看出,圖像的紋理有著明顯的差異,這為本文所使用的方法提供了可能。

圖4 差異對比Fig.4 Difference comparison

2.3 孿生神經網絡

孿生神經網絡(Siamese neural network)簡單來說就是連體的神經網絡,一般所討論的孿生神經網絡是由兩個結構相同,且權重共享的神經網絡拼接而成的。如圖5所示,Network1和Network2可以是同一個CNN或LSTM。

圖5 孿生神經網絡簡圖Fig.5 Simplified diagram of Siamese neural network

當輸入兩個樣本時,Network1和Network2會各自映射出樣本的特征向量,difference計算出兩個特征向量間的歐氏距離[14]來表示向量之間的差異,最后通過這個距離來擬合輸入圖像的相似度差異,結果保存在similarity中,similarity中的值介于0到1之間,越接近1表示越相似,反之則表示越不相似。計算歐氏距離的公式如下,本文采用L1距離,則公式為:

x和y為需要進行對比的樣本數據,C表示把輸入數據轉化為一組特征向量,D用于衡量兩個輸入向量之間的距離。

從孿生神經網絡的結構可知,其具有兩個輸入,當兩個輸入為同一個類型的樣本時,標簽為1;當兩個輸入為不同類型的樣本時,標簽為0。本文所使用的Loss為二分類的交叉熵損失函數[15],其公式如下:

其中,z是標簽(相同類型為1,不同類型時為0),p(z)是N次對比為相同類型的預測概率。對于每次對比為相同類型(z=1),它都會將lnp(z)添加到損失中,即為相同類型的對數概率。相反,它為不相同類型時(z=0),添加ln(1-p(z))到損失中,即為不相同類型的對數概率。在實際的實驗中表現為,對于錯誤的預測,應該返回高值,對于良好的預測,應該返回低值。這也是損失函數的目的,最終通過Loss的計算,評價兩個輸入的相似度。

表3為本文卷積網絡部分五個卷積層參數的詳細說明。孿生神經網絡結構中的CNN是用來提取特征的,如LeNet、AlexNet、VGG等都可以適用,本文的CNN采用的是VGG16。VGG16一般是由五個block組成,3×3的卷積核,共13個;層與層之間使用最大池化(max_pooling),2×2的池化核,共5個;再接3個全連接層。本章對該模型稍作修改,將第5個block的池化核調整為1×1。

表3 卷積層參數Table 3 CNN paraments

灰度圖像通過CNN會轉化成為一個多維特征,此時使用flatten函數將其平鋪到一維上,因為是孿生網絡,所以最終會有兩個一維向量。將這兩個一維向量相減,然后再進行絕對值求和,相當于計算了兩個特征向量差值的L1范數,也就是計算了兩個一維向量的距離,最后對這個距離再使用兩次全連接,將第二次全連接的結果用sigmoid函數輸出,使輸出值介于0到1之間,這個值代表兩個輸入樣本間的相似程度。

2.4 惡意流量檢測方法實現

人類可以從極少量的樣本中識別一個新物體,但目前計算機卻很難做到。目前傳統的深度學習技術先通過較大的數據集進行模型預訓練,再將其分類能力泛化到測試集中,每個類至少需要上千張樣本圖像才能使模型具有較好的性能表現。但現實中,有些類很難收集到足夠的樣本,不均衡的樣本經過復雜網絡訓練出來的模型,泛化能力差且容易發生過擬合。

如何解決數據集中因部分樣本過少而導致的過擬合問題,一直都是研究人員所探討的。最直接的做法如文獻[7],他們將過小的樣本進行了合并,過大的樣本只選取部分,當然,這并不是一個好的解決方案。孿生神經網絡具有一個顯著的特性,就是可以識別不在訓練集里的類,即unseen類[16],本文正是利用這一特性來處理樣本不均衡的數據集。首先用一個較大的數據集訓練孿生神經網絡,讓其獲得分辨各類別圖像之間異同的能力,然后依據孿生神經網絡的特性,將該分辨能力用于分類識別小樣本數據集(傳統的方法無法泛化到unseen類中)。這些小樣本數據集中各類型的樣本數量很少,且是神經網絡訓練時不曾見過的類型,本文使用小數據集B(unseen類數據集)來驗證。

圖6為本文檢測方法的簡略流程圖,使用數據集A訓練完成之后,即本方法獲得了分辨各類別圖像之間異同的能力之后,采用輪詢的方式從數據集A2(樣本庫)中輸出y(1,2代表輪詢的順序,即等惡意樣本全部輸出結束后再輸出正常樣本),x為實時獲取的一個未知流量(由數據集A3提供)。通過CNN將x和y轉化為特征向量,經過相似度對比后得出結果,結果值為sv保存在similarity樣本庫中,最終再結合y的性質來定性x。

上述檢測流程的代碼實現部分如下:

相似度計算:

1.image=input(請輸入待檢測樣本x:)

2.#對字典A進行遍歷,依次提供樣本y和樣本x進行相似度的比較;

此處的樣本數據經CNN處理后轉化為相應的特征向量。字典A中為樣本標簽和樣本數據,以鍵值對的形式存儲。其中鍵值為偶數,對應的值為正常樣本;鍵值為奇數,則對應的值為惡意樣本。

3 實驗

3.1 實驗環境

TensorFlow由谷歌創建,于2015年開源,它是一個面向數據流的機器學習庫,用于處理復雜數學問題,近些年來被廣泛的應用于深度學習領域。表4為本次實驗所使用的環境和配置。

圖6 流程簡圖Fig.6 Flow chart

表4 環境與配置Table 4 Environment and configuration

3.2 實驗結果分析

本文先使用一個較大的數據集A訓練出一個模型,使得該模型有著辨別本次實驗中各類灰度圖像異同的能力。如圖7所示,損失值loss最終定在0.056 1,該值比較小,表明擬合良好,分類的準確率最終定在98.65%。

圖7 分類結果Fig.7 Classification result

在模型訓練完成之后,從數據集A3中隨機挑選一張圖像x,再從數據集A2中以輪詢的方式依次挑選出圖像y,其中的兩次對比結果如圖8、圖9所示。

圖8 對比結果-1Fig.8 Comparison results-1

圖9 對比結果-2Fig.9 Comparison results-2

圖像x與數據集A2中的圖像依次比較,當similarity的值接近0時,判定其為不相同,接近1時判定為相同。圖8中的兩張圖像的相似度接近0,判定圖像x和當前圖像不相同,而圖9中的兩張圖像相似度為0.999 007 165,是接近1的一個值,判定x圖像和當前圖像相同。假設y恰好是惡意樣本,依據當前圖像y的性質,結合similarity的值,最終判定x圖像為惡意樣本,即x所表示的流量為惡意流量。將數據集A3中的所有樣本進行檢測后,最終得出惡意流量檢測的準確率為97.93%。

小數據集B中各類型的樣本數量比較少,樣本數量最多的只有幾百個,若直接將這些類型的樣本放入到數據集A中一起進行訓練,則會導致泛化能力變弱,容易發生過擬合。本文利用孿生神經網絡的一個特性,即可用于識別unseen類,恰好可用來解決樣本不均衡的問題,對小樣本部分做出很好的處理。本文先在完全使用數據集A的情況下訓練出一個模型(小數據集B中的6種類型的數據都不參加訓練),接著使用該模型對小數據集B進行檢測。從小數據集B1中隨機挑選一張圖像x,再從小數據集B中以輪詢的方式依次挑選出圖像y,實驗結果表明本文所使用的方法可對小數據集B進行分類檢測,且檢測效果良好。其中的兩次對比結果如圖10、圖11所示。

圖10 對比結果-3Fig.10 Comparison results-3

圖11 對比結果-4Fig.11 Comparison results-4

將小數據集B1中的所有樣本進行檢測后,得出檢測的準確率為92.15%,則本實驗最終對整個數據集,即A+B總的檢測準確率為95.04%。

本文嘗試使用文獻[7]、文獻[8]中的方法對總數據集A+B進行了分類實驗,但由于小數據集B的直接加入,總數據集中的各類型圖像樣本多的上萬,少的幾百,嚴重不均衡,導致模型的泛化能力變弱,出現了過擬合現象,實驗表現為:訓練集上效果良好,但測試集上表現較差,部分類型的樣本甚至出現檢測準確率為0的現象。因此本文采用文獻[7]中做法,將總數據集中一些過大的流量,只使用了一部分,對于一些規模過小的流量,對它們進行合并。此時再使用文獻[7]、文獻[8]中的方法進行分類實驗,最終得出相應的惡意流量檢測準確率為98.81%、83.26%,如表5所示。

表5 總體準確率對比Table 5 Overall accuracy comparison

表5總結了四種方法對數據集A+B中惡意流量檢測的準確率,其中SIFT+SVM[17](尺度不變特征變換(scaleinvariant feature transform,SIFT),支持向量機(support vector machine,SVM))是傳統的機器學習圖像分類方法。通過對比可看出,本文所提出的方法要明顯優于SIFT+SVM和文獻[8]中的方法,其中文獻[7]的方法是最佳的。SIFT+SVM、文獻[7]、文獻[8]都需要在樣本較均衡的前提下才能達到上述的準確率,而現實生活中所收集到的樣本很難做到恰好是均衡的。雖然文獻[7]在準確率方面有著優異的表現,但該方法在數據集的選取時,為了達到樣本均衡,對于過大和過小的流量需要采取刪除和合并的措施,而本文所使用的方法不僅規避了這一問題,而且在檢測的準確率上也有著良好的表現。

綜上所述,本文所提出的方法在檢測準確率和解決樣本不均衡的問題上都有著進步的意義。

4 結束語

本文將孿生神經網絡與惡意流量檢測相結合,從相似度入手,將分類問題轉化為檢測問題,在解決樣本不均衡問題的同時,依然有著良好的檢測效果,此方法對未來的流量分類和惡意流量檢測都有著參考的意義。

當然本文也有著不足之處,假如有一個新的惡意流量和現存的惡意流量完全不同,則檢測效果會很差,因此需要及時不斷地更新擴展樣本庫,才能保證此方法有一個良好的檢測效果。本文還有一個待解決的問題,就是在分析similarity樣本庫中的數據時,如何設定閾值問題,本文設定的是0.5,即低于0.5判定為不相似,高于或等于0.5時判定為相似,但這樣的設定方式過于直接、簡單,因此有待進一步的研究,并給出數學方面嚴謹的推導和證明。

猜你喜歡
分類檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
分類算一算
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 在线永久免费观看的毛片| 亚洲国产天堂久久综合226114| 91久久性奴调教国产免费| 高潮爽到爆的喷水女主播视频| 亚洲天堂网视频| 天堂在线www网亚洲| 日韩精品无码免费专网站| 国产本道久久一区二区三区| 国产麻豆91网在线看| 亚洲一区网站| 亚洲网综合| 青草视频在线观看国产| 在线日韩一区二区| 国产高潮流白浆视频| 亚洲国产综合第一精品小说| 国产人成网线在线播放va| 亚洲综合香蕉| 亚洲精品第五页| 国产精品无码久久久久久| 亚洲精品第五页| 成年人国产网站| 精品黑人一区二区三区| 国产成人一级| 亚洲人成影院午夜网站| 欧美yw精品日本国产精品| 久久夜色精品国产嚕嚕亚洲av| 亚洲综合在线最大成人| 亚洲欧美精品一中文字幕| 波多野结衣在线se| 久久精品国产精品青草app| 欧美三级视频网站| 91伊人国产| 成年人免费国产视频| 亚洲精品不卡午夜精品| h网站在线播放| 国产精品妖精视频| 亚洲精品国产自在现线最新| 精品91视频| 国产成人1024精品下载| 国产99视频在线| www中文字幕在线观看| 成人毛片在线播放| 刘亦菲一区二区在线观看| 国产理论一区| 国产亚洲精品精品精品| 国产1区2区在线观看| 国产va欧美va在线观看| 成人免费一级片| 全免费a级毛片免费看不卡| 日本国产在线| 欧美成人综合在线| 久久国产高清视频| 中文字幕天无码久久精品视频免费 | 国产精品视屏| 依依成人精品无v国产| 亚洲精品日产AⅤ| 亚洲高清中文字幕| 青草精品视频| av在线5g无码天天| 国内老司机精品视频在线播出| 亚洲国产综合自在线另类| 久久精品人人做人人爽电影蜜月 | 精品91在线| 黄色在线不卡| 国产极品美女在线| 午夜福利亚洲精品| 亚洲一区二区成人| 亚洲精品大秀视频| 欧美在线视频不卡第一页| 久草国产在线观看| 最近最新中文字幕在线第一页| 农村乱人伦一区二区| 一区二区日韩国产精久久| 久久动漫精品| 精品国产亚洲人成在线| 国产午夜精品一区二区三区软件| 亚洲人视频在线观看| 久久青草视频| 色偷偷av男人的天堂不卡| 亚洲精品免费网站| 中文字幕有乳无码| 午夜精品久久久久久久无码软件|