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

?

基于TextCNN的加密惡意流量檢測方法

2022-04-22 07:47楊彥召朱程威童詠昕
關(guān)鍵詞:數(shù)據(jù)包加密卷積

楊彥召, 朱程威, 仇 晶, 童詠昕

(1.中汽智創(chuàng)科技有限公司, 江蘇 南京 211100; 2.廣州大學(xué) 網(wǎng)絡(luò)空間先進技術(shù)研究院, 廣東 廣州 510006; 3.北京航空航天大學(xué) 計算機學(xué)院, 北京 100191)

隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)成為生活中不可或缺的一部分。與此同時,網(wǎng)絡(luò)數(shù)據(jù)包的安全性和完整性的研究,成為了工業(yè)界和學(xué)術(shù)界共同關(guān)注的重要課題。在這樣的背景下,SSL(Secure Socket Layer 安全套接層)[1]和TLS(Transport Layer Security 傳輸層安全)[2-3]等網(wǎng)絡(luò)安全協(xié)議運營而生。SSL/TLS協(xié)議,工作在TCP/IP的傳輸層之上,具有模糊應(yīng)用數(shù)據(jù)、驗證終端身份和數(shù)據(jù)完整性檢驗等功能,從而為應(yīng)用數(shù)據(jù)提供隱私和完整性保障。

合法用戶使用SSL/TLS協(xié)議對數(shù)據(jù)加密,保護數(shù)據(jù)的隱私,防止中間人竊聽。惡意軟件的作者也使用SSL/TLS協(xié)議,對惡意軟件在通信過程中產(chǎn)生的流量進行加密,產(chǎn)生加密的惡意流量。該流量能夠躲避安全設(shè)備的檢查,對合法用戶實施攻擊[4]。

為了在大規(guī)模的加密流量中,檢測惡意流量,目前的研究主要集中在使用傳統(tǒng)機器學(xué)習(xí)和基于深度學(xué)習(xí)的異常檢測方法上?;趥鹘y(tǒng)機器學(xué)習(xí)的檢測方法[5-11]需要人工提取特征,使用KNN、邏輯回歸、SVM、決策樹和隨機森林等傳統(tǒng)機器算法訓(xùn)練惡意流量分類器。隨著加密算法不斷升級,例如,TLSv1.3在TLSv1.2的基礎(chǔ)上加強了加密的力度,在發(fā)送了Server Hello報文后,后續(xù)的數(shù)據(jù)包都被加密[10],這將導(dǎo)致可提取的特征越來越少。此外,專家經(jīng)驗的片面性,將會極大地限制模型的通用性。

基于深度學(xué)習(xí)的異常檢測方法[12-17],通常把網(wǎng)絡(luò)流量中報文頭部或者指定數(shù)量的數(shù)據(jù)包,轉(zhuǎn)換為灰度圖片的形式,輸入到CNN深度神經(jīng)網(wǎng)絡(luò)中,進行異常檢測分類器的訓(xùn)練。將原始流量處理成灰度圖片的方法,數(shù)據(jù)預(yù)處理方式復(fù)雜,同時,無法很好地對原始流量進行表達,只攜帶部分的報文特征。

本文將深度學(xué)習(xí)算法與加密惡意流量檢測領(lǐng)域相結(jié)合,提出了基于TextCNN的惡意流量檢測方法,該方法的優(yōu)勢總結(jié)如下:

(1)將數(shù)據(jù)樣本轉(zhuǎn)換為一維序列,作為模型的輸入,既保留了原始流量的表現(xiàn)形式和報文特征,又簡化數(shù)據(jù)預(yù)處理的過程;

(2)根據(jù)實際數(shù)據(jù),自定義TextCNN深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),該模型能夠自動地進行特征提取,從而避免專家經(jīng)驗的不足和片面性;

(3)模型泛化能力強,在未知的數(shù)據(jù)集中,能有較高的分類精度和較低的誤報率。

本文內(nèi)容如下:第一部分,相關(guān)工作,介紹現(xiàn)有的惡意流量檢測方法;第二部分,詳細介紹基于TextCNN的加密惡意流量檢測方法和設(shè)計思路;第三部分,進行實驗評估;第四部分為總結(jié)和展望。

1 相關(guān)工作

據(jù)Google透明度報告[18],于2021年8月,所有Google產(chǎn)品和服務(wù)啟用加密的已占95%。而隱藏在加密流量中惡意流量的比例也在逐年增加[6,19-20],目前的加密惡意流量檢測方法主要如下:

基于端口的惡意流量檢測[21],該方法利用傳輸層端口號與應(yīng)用層協(xié)議互相對應(yīng)的原理,根據(jù)傳輸層端口號的取值,對應(yīng)用數(shù)據(jù)進行分類。例如,80端口對應(yīng)HTTP協(xié)議,443端口對應(yīng)SSL/TLS協(xié)議等。該方法實現(xiàn)原理簡單,但是容易被攻擊者繞過。因為,惡意軟件的作者可以通過將惡意軟件產(chǎn)生的流量的端口號進行修改,修改為合法應(yīng)用的端口號,從而繞過檢測。

深度包檢測技術(shù)[22],該方法根據(jù)網(wǎng)絡(luò)工作者預(yù)先指定的匹配規(guī)則,例如,固定格式和關(guān)鍵字等,對數(shù)據(jù)包內(nèi)容進行檢測。該方法識別精度高,但是只能檢測未加密的數(shù)據(jù)。如果想要用該方法檢測加密流量,需要先對流量進行解密,然后再根據(jù)預(yù)先指定好的規(guī)則對流量內(nèi)容進行檢測。然而,對流量進行解密,違背了SSL/TLS協(xié)議設(shè)計的初衷,侵犯用戶數(shù)據(jù)的隱私,同時,對TLS協(xié)議加密后的數(shù)據(jù)進行解密,將會消耗大量的計算資源,極大地增加了網(wǎng)絡(luò)設(shè)備的負擔(dān)和數(shù)據(jù)包轉(zhuǎn)發(fā)延遲時間。

最近幾年,研究者的目光不再局限于基于模式匹配的流量檢測方法。開始將機器學(xué)習(xí)算法應(yīng)用于加密惡意流量檢測領(lǐng)域中,即基于統(tǒng)計和基于行為的檢測方法。

2016年,Anderson等[6]從TLS報文、DNS報文和HTTP報文中,提取密碼套件、擴展、服務(wù)器證書、DNS響應(yīng)報文和HTTP報頭中的上下文信息作為特征,選擇L1正則化的邏輯回歸作為分類模型。2017年,Anderson等[7]從惡意流量和良性流量中提取2個不同的特征集,對不同的傳統(tǒng)機器算法進行性能測試,驗證特征對模型性能的影響。

2018年,Stergiopoulos等[8]從惡意軟件、web攻擊和僵尸網(wǎng)絡(luò)等多種攻擊產(chǎn)生的網(wǎng)絡(luò)流量中提取TCP側(cè)信道特征,通過該特征對惡意流量和非惡意流量進行分類。2019年,Shekhawat等[9]通過開源網(wǎng)絡(luò)數(shù)據(jù)包分析工具zeek,從網(wǎng)絡(luò)流量中提取38個特征分別對SVM、隨機森林和XGBoost進行訓(xùn)練,模型訓(xùn)練好之后,使用上述3個模型對特征重要性進行分析。

2020年,Rong等[23]從原始數(shù)據(jù)包中提取統(tǒng)計特征和時序特征。其中,統(tǒng)計特征包括:源端口、目的端口、流的持續(xù)時間、發(fā)送的數(shù)據(jù)包數(shù)和返回的數(shù)據(jù)包數(shù)等。時序特征包括:數(shù)據(jù)包長度和達到時間的轉(zhuǎn)移序列、分位數(shù)序列和字節(jié)分布等。利用stacking思想,將隨機森林、XGBoost和LightGBM作為基分類,邏輯回歸作為元分類器,構(gòu)造一個集成學(xué)習(xí)模型。

上述方法,利用未加密的明文特征,或者與負載無關(guān)的統(tǒng)計特征和序列特征,對加密惡意流量進行識別。這些方法都需要人工提取特征,依賴專家經(jīng)驗,若專家經(jīng)驗不足或有片面性,將極大地影響模型的分類效果,限制模型的通有性。隨著加密算法的不斷更新?lián)Q代,以及網(wǎng)絡(luò)流量日趨復(fù)雜,數(shù)據(jù)包中可提取的明文特征將會越來越少,這將極大影響模型的性能。

深度學(xué)習(xí)算法能夠在訓(xùn)練過程中,自動進行特征提取,避免了人工提取特征的缺陷。此外,與傳統(tǒng)機器學(xué)習(xí)相比,深度學(xué)習(xí)具有更強的學(xué)習(xí)能力。結(jié)合這2點優(yōu)勢,深度學(xué)習(xí)成為了惡意流量檢測的理想方法。

2017年,Wang等[12]將PCAP格式的網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)換為IDX3和IDX1的數(shù)據(jù)格式,通過卷積神經(jīng)網(wǎng)絡(luò),從數(shù)據(jù)包中自動提取特征,并對惡意流量和良性流量進行分類。2018年,Millar等[13]使用數(shù)據(jù)包前50字節(jié)的有效負載,將網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)換為圖片和提取元數(shù)據(jù)特征2種方式,分別對數(shù)據(jù)進行處理,輸入到DNN和CNN網(wǎng)絡(luò)中進行訓(xùn)練和分類。

2019年,Hwang等[14]將包報頭中的一個字段視為一個單詞,并將包修剪為n=54字節(jié)的固定長度作為LSTM網(wǎng)絡(luò)的輸入。2020年,Hwang等[16]從數(shù)據(jù)流中選取前n個數(shù)據(jù)包,將n數(shù)據(jù)包的長度修剪為固定長度l,構(gòu)成n*l的灰度圖像,使用的網(wǎng)絡(luò)模型由一維卷積和Autoencoder組成。

上述方法存在以下幾個問題:①使用的數(shù)據(jù)集中,多數(shù)為未加密的數(shù)據(jù);②數(shù)據(jù)預(yù)處理方式復(fù)雜,數(shù)據(jù)處理之后,攜帶的信息較少;③網(wǎng)絡(luò)結(jié)構(gòu)簡單,泛化能力差。針對上述問題,本文提出基于TextCNN的加密惡意流量檢測方法,根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包的特性對數(shù)據(jù)進行處理,數(shù)據(jù)預(yù)處理方式簡單,能夠攜帶更多的網(wǎng)絡(luò)流量特征。此外,在加密的未知數(shù)據(jù)上,具有較高精度和較低的誤報率。

2 方法和思路

在這個章節(jié)中,將從以下3個部分介紹本文提出的方法和具體思路。首先,對本文中使用的數(shù)據(jù)集的來源和保存形式進行介紹。然后,介紹輸入模型的數(shù)據(jù)的具體表現(xiàn)形式。最后,介紹TextCNN網(wǎng)絡(luò)模型。

2.1 數(shù)據(jù)集介紹

本文中使用的數(shù)據(jù)集,為2020年datacon大數(shù)據(jù)安全分析競賽中加密惡意流量賽道的公開數(shù)據(jù)集。該數(shù)據(jù)源于2020年2月至6月,在沙箱中運行惡意軟件和正常軟件,收集軟件運行過程中產(chǎn)生的數(shù)據(jù)流量[24]。其中,惡意軟件運行產(chǎn)生的流量,標記為惡意流量,正常軟件運行產(chǎn)生的流量,標記為良性流量。樣本均以PCAP文件格式保存,如圖1所示。流量的內(nèi)容經(jīng)過SSL/TLS協(xié)議加密,如圖2所示。

圖1 PCAP文件Fig.1 PCAP files

圖2 TLS加密流量Fig.2 TLS encrypted traffic

2.2 數(shù)據(jù)的表征

將深度學(xué)習(xí)算法與加密惡意流量檢測領(lǐng)域相結(jié)合時,存在4個問題需要進一步解決:①數(shù)據(jù)集中,不同的PCAP文件具有不同的通信時長和報文信息,需要將PCAP文件切分為具有相同粒度的數(shù)據(jù)單元;②部分的PCAP文件中,缺失了區(qū)分惡意流量和良性流量樣本的關(guān)鍵信息,該類數(shù)據(jù)將會極大地影響模型的檢測精度;③網(wǎng)絡(luò)數(shù)據(jù)包樣本為PCAP文件格式,該數(shù)據(jù)形式無法輸入到模型中進行訓(xùn)練;④不同的客戶端和服務(wù)器之間,一次通信發(fā)送的數(shù)據(jù)包數(shù)量和長度存在差異,但是神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)需要固定的輸入。在本節(jié)中,將針對上述問題提出解決方法和思路。

2.2.1 數(shù)據(jù)切分粒度

為了將PCAP文件轉(zhuǎn)換為相同粒度的數(shù)據(jù)單元,本文使用PCAP文件處理工具SplitCap[25],對PCAP文件進行分割,在對PCAP文件進行切分時,存在以下切分依據(jù):IP地址、MAC地址、流(flow)、會話(session)和數(shù)據(jù)包數(shù)量等。其中,具有相同的源IP地址、目的IP地址、源端口、目的端口和協(xié)議號的數(shù)據(jù)包組成流,因此,流是單向的。而會話由雙向的流組成。由于一個會話代表著客戶端和服務(wù)器的一次完整通信,攜帶的特征數(shù)量比一個流要多。因此,將會話作為切分PCAP文件的依據(jù)。

在分割PCAP文件時,可以選擇從數(shù)據(jù)包中提取所有層的信息,或者僅提取應(yīng)用層的信息。由于所有層的信息中,包含傳輸層字段信息、TLS報文頭部信息和應(yīng)用層有效負載,因此,比僅提取應(yīng)用層信息得到的數(shù)據(jù)包特征更加豐富。當(dāng)對數(shù)據(jù)包進行處理切分時,應(yīng)當(dāng)提取數(shù)據(jù)包中所有層的信息。

根據(jù)上述要求,對原始PCAP文件進行切分之后,會得到多個小的PCAP文件,每個小的PCAP文件對應(yīng)一個會話,即每個小的PCAP文件中包含某一客戶端和某一服務(wù)器之間的某一次會話的所有通信數(shù)據(jù)。

2.2.2 數(shù)據(jù)清洗

經(jīng)過上述的處理流程,不同的PCAP文件轉(zhuǎn)換成了相同粒度的數(shù)據(jù)單元。但是,部分PCAP文件中可能丟失了對異常流量和正常流量進行區(qū)分的關(guān)鍵信息。而這一部分的數(shù)據(jù),如果輸入到模型中進行訓(xùn)練,將會極大地影響模型的分類性能。因此,需要從數(shù)據(jù)集中清除缺失關(guān)鍵信息的數(shù)據(jù)。

為了解決這個問題,首先需要了解什么樣的通信是完整的。假設(shè),一個客戶端和一個服務(wù)器之間進行通信,在通信過程中使用TLS協(xié)議對數(shù)據(jù)進行加密。以目前常用的TLSv1.2為例,該會話將會包括以下3個階段:①TCP 3次握手,建立TCP連接通道;②TLS握手,該階段會交互TLS協(xié)議報文,包括client hello、server hello、certificate、server key exchange和client key exchange報文等,對服務(wù)器身份進行驗證,對密鑰信息進行協(xié)商;③交互應(yīng)用數(shù)據(jù),該數(shù)據(jù)使用TLS協(xié)議進行加密。

綜上所述,一個完整的TLS通信會話的標志是完成了TLS握手,互相進行了應(yīng)用數(shù)據(jù)的交互。因此,將沒有完成TLS握手,或者沒有交互應(yīng)用數(shù)據(jù)的會話進行丟棄,從而實現(xiàn)數(shù)據(jù)的清洗。

2.2.3 數(shù)據(jù)轉(zhuǎn)換

為了讓TextCNN深度神經(jīng)網(wǎng)絡(luò)從報文中學(xué)習(xí)上下文信息,需要將PCAP文件轉(zhuǎn)換為能夠輸入模型的數(shù)據(jù)格式。而在數(shù)據(jù)轉(zhuǎn)換過程中,保留數(shù)據(jù)原始結(jié)構(gòu)和足夠多的報文特征至關(guān)重要。

網(wǎng)絡(luò)數(shù)據(jù)包在傳遞過程中,即在物理層中,以0和1組成的二進制比特流的形式進行傳遞。每8 bit的二進制數(shù)值對應(yīng)數(shù)據(jù)包中的某一個字段信息。數(shù)據(jù)包的信息嚴格按照TCP/IP協(xié)議棧的形式進行封裝,例如,一個web訪問中,服務(wù)器發(fā)送的數(shù)據(jù)包的結(jié)構(gòu)分為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層[26-27]。如圖3所示,網(wǎng)絡(luò)數(shù)據(jù)包每個層次、每個字段之間有著嚴格的順序關(guān)系。

圖3 網(wǎng)絡(luò)數(shù)據(jù)包Fig.3 Network data package

為了還原和保留數(shù)據(jù)包在網(wǎng)絡(luò)中的原始狀態(tài),將PCAP文件轉(zhuǎn)換為一維序列的形式,作為模型的輸入。操作流程如圖4所示,惡意流量和良性流量的PCAP文件經(jīng)過切分之后,變成多個小的PCAP文件。將小的PCAP文件以二進制的形式進行讀取,以8 bit為一組進行分組。然后,將8bit的二進制數(shù)轉(zhuǎn)換為對應(yīng)的十進制數(shù)值,得到元素為十進制數(shù)值的一維數(shù)組。例如,二進制的0000 0000,對應(yīng)十進制的0。二進制的1111 1111,對應(yīng)十進制的255。因此,該十進制一維數(shù)組中每個元素都在[0,255]之間。而每個數(shù)據(jù)的標簽,由原來數(shù)據(jù)集中PCAP文件的類型決定。

圖4 數(shù)據(jù)處理流程Fig.4 Data processing process

2.2.4 數(shù)據(jù)裁剪

不同的通信會話中,傳遞的網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量和大小存在差異,使得轉(zhuǎn)換后得到的十進制一維數(shù)組的長度存在差異。由于網(wǎng)絡(luò)結(jié)構(gòu)是固定的,輸入網(wǎng)絡(luò)的數(shù)據(jù)的形狀也是固定的。因此,需要將所有的十進制一維數(shù)組轉(zhuǎn)換為相同長度。

本文中,固定長度的取值L,通過對切分后的數(shù)據(jù)包的長度進行統(tǒng)計獲得,如果十進制一維數(shù)組的長度小于或等于L的數(shù)量N,占所有樣本數(shù)量M的比例為71%。同時,在L之上,長度增加200,增加5次,每次增加數(shù)據(jù)包長度時,占比的增加均小于1%,則將所有數(shù)據(jù)的長度都轉(zhuǎn)換為L。數(shù)據(jù)包長度和占比如圖5所示。

圖5 數(shù)據(jù)包長度和占比Fig.5 Package length and proportion

如圖5所示,橫坐標為數(shù)據(jù)包長度,縱坐標為某長度的數(shù)據(jù)包數(shù)量占所有數(shù)據(jù)樣本的比例。其中,數(shù)據(jù)包長度小于等于1 200的數(shù)據(jù)包所有樣本比例約71%,在1 200之上,長度增加200,增加5次,占比變化均小于1%。因此,本文中使用的固定長度為1 200,當(dāng)數(shù)組長度大于1 200時,只保留前1 200個數(shù)值。當(dāng)數(shù)組長度小于1 200時,用0填充至1 200。

上述方法的好處有:①保存了盡可能多的數(shù)據(jù)信息;②確保較短的數(shù)據(jù),不會被大量的0填充;③避免輸入數(shù)據(jù)長度過大,導(dǎo)致模型訓(xùn)練速度慢的問題。

2.3 TextCNN模型

本文中設(shè)計的TextCNN網(wǎng)絡(luò)結(jié)構(gòu),如表1所示。網(wǎng)絡(luò)層次包括:輸入層、詞嵌入層、SpatialDropout1D、5對并行的一維卷積和一維全局最大池化層、Dropout、批標準化、全連接層、Dropout、批標準化、全連接層、Dropout、批標準化與輸出層等。

該網(wǎng)絡(luò)結(jié)構(gòu)中詞嵌入層,從多個維度對單詞進行描述,將一個單詞轉(zhuǎn)換為對應(yīng)的多維向量。多個不同種類的單詞組合在一起,就形成了詞嵌入表。該詞嵌入表能夠很好地表示不同單詞之間的關(guān)系,在文本分類任務(wù)中,能夠很好地表示詞與詞之間的上下文關(guān)系。在加密惡意流量檢測領(lǐng)域中,利用詞嵌入層的優(yōu)點,對數(shù)據(jù)包各個層次、各個字段之間的上下文關(guān)系進行描述。由于十進制一維數(shù)組的每個元素取值范圍都在0到255之間,一共256種取值。因此,建立了一張詞嵌入表,其單詞種類數(shù)為256,每個單詞的維度為256。

表1 TextCNN網(wǎng)絡(luò)結(jié)構(gòu)

TextCNN通過不同大小的卷積核提取詞嵌入表中的關(guān)鍵信息[28]。本文中利用5個不同大小的一維卷積核,對詞嵌入表進行上下文信息提取。在對詞嵌入表進行特征提取時,卷積核從上至下移動進行卷積運算(對應(yīng)位置相乘,然后相加,得到的值作為卷積運算的輸出)。

由于一個單詞的詞嵌入維度是固定的,因此,卷積核的寬度必須是固定的,寬度大小等于詞嵌入的維度。不同卷積核的高度不同,不同的高度從詞嵌入表中提取到不同特征值。假設(shè)卷積核的高度為h,詞嵌入的高度為H,則卷積運算后得到的特征圖為(H-h+1)*1。全局最大池化層對特征進行降維,從特征圖中選取最大值作為輸出。

5對并行的一維卷積層和全局最大池化層分別得到的輸出整合在一起,構(gòu)成TextCNN網(wǎng)絡(luò)的核心部分。將上述TextCNN的工作原理運用于惡意流量檢測中,能夠充分提取惡意樣本和良性樣本的字段和有效負載中存在明顯差異的上下文信息。

在網(wǎng)絡(luò)中加入Dropout和批標準化。Dropout,讓模型在訓(xùn)練時,隨機選擇部分的神經(jīng)元不參與訓(xùn)練,有助于防止過擬合。批標準化將數(shù)據(jù)進行歸一化處理,使其平均值接近于0,標準偏差將接近于1,使得數(shù)據(jù)分布更有規(guī)律,提升模型的訓(xùn)練速度。

全連接層是標準的神經(jīng)網(wǎng)絡(luò),主要的參數(shù)是神經(jīng)元的個數(shù)。將卷積和池化運算后得到的特征圖,輸入到全連接層中,進行進一步的特征提取。本文將神經(jīng)元個數(shù)為2的全連接層作為輸出層,選擇SoftMax作為激活函數(shù)。最終,得到輸入樣本屬于惡意流量概率值P1,以及良性流量的概率值P2、P1和P2之和為1,取值較大者將作為輸出結(jié)果。

3 實驗評估

在本章節(jié)中,將對實驗環(huán)境、步驟、結(jié)果和不同網(wǎng)絡(luò)模型之間的效果對比進行詳細描述。基于公開數(shù)據(jù)集,證明本文提出的基于TextCNN的加密惡意流量檢測方法的有效性。

3.1 實驗環(huán)境

實驗在操作系統(tǒng)為Ubuntu 20.04.2的服務(wù)器上進行,該服務(wù)器的CPU型號為Intel(R) Xeon(R) Gold 5218R CPU @ 2.10 GHz,其核數(shù)為20個。GPU型號為GeForce RTX 2080 Ti,顯存的大小為10 G。內(nèi)存空間為96 G。

在該服務(wù)器上,安裝Anaconda,一個集成的python開發(fā)環(huán)境。通過深度學(xué)習(xí)框架Tensorflow搭建TextCNN網(wǎng)絡(luò)結(jié)構(gòu),該網(wǎng)絡(luò)中SpatialDropout1D的隨機丟棄概率為0.15,Dropout的隨機丟棄概率為0.3。模型優(yōu)化器使用基于隨機梯度下架的Adam,該方法計算效率高,同時內(nèi)存消耗低,其學(xué)習(xí)率采用默認值0.001。由于數(shù)據(jù)的標簽為0或者1的整數(shù),因此,選擇稀疏類別交叉熵作為損失函數(shù)。

3.2 實驗步驟

如圖6實驗步驟所示,實驗分5個部分:①數(shù)據(jù)切分、清洗、轉(zhuǎn)換和裁剪;②劃分訓(xùn)練集和測試集;③模型的訓(xùn)練和驗證;④模型測試;⑤預(yù)測結(jié)果評估。

圖6 實驗步驟Fig.6 Experimental Procedure

使用的數(shù)據(jù)集和數(shù)據(jù)預(yù)處理的過程,在3.1和3.2節(jié)中已有詳細介紹。經(jīng)過數(shù)據(jù)預(yù)處理之后,惡意流量和良性流量的會話數(shù)量,如表2所示。此時,惡意流量和良性流量數(shù)據(jù),均以十進制一維數(shù)組的形式保存。

表2 會話統(tǒng)計

在流量劃分階段,為了更好地驗證模型的泛化能力,將惡意流量和良性流量會話隨機劃分為2個部分。其中,訓(xùn)練集占所有流量的比例為60%,測試集的占比為40%。

在模型訓(xùn)練和驗證階段,采用5折交叉驗證的方式進行,將訓(xùn)練集隨機劃分為5個部分,每一個部分輪流做一次驗證樣例,其余4個部分作為訓(xùn)練樣例[29]。這樣就得到5個模型和5個驗證結(jié)果,對5個驗證結(jié)果求和取平均,得到模型的驗證評分。

在5折交叉驗證的過程中,每一折訓(xùn)練的epoch為100,batch為64。通過Early Stopping,監(jiān)視每次訓(xùn)練的Validation Loss,如果Validation loss在3次驗證中都沒有提升,則提前終止訓(xùn)練過程。

3.3 模型評估指標

在模型測試階段,通過測試集對模型的泛化能力進行驗證。而模型的預(yù)測效果的評估指標為:精度(Accuracy)、查準率(Precision)、查全率(Recall)、F1值(F1-score)、真正例率(True Positive Rate TPR)和假正例率(False Positive Rate FPR)[30]。

計算上述指標之前,需要先了解TP、FP、TN和FN。TP(True Positive真正例),表示預(yù)測為惡意流量,實際也為惡意流量的樣本數(shù)量。FP(False Positive 假正例),表示預(yù)測為惡意流量,實際為良性流量的樣本數(shù)量。TN(True Negative 真負例),表示預(yù)測為良性流量,實際也為良性流量的樣本數(shù)量。FN(False Negative 假負例),表示預(yù)測為良性流量,實際為惡意流量的樣本數(shù)量。

精度:

查準率:

查全率:

F1值:

假正例率:

3.4 實驗結(jié)果

在實驗過程中,在不同的網(wǎng)絡(luò)模型上進行訓(xùn)練和測試,進行對比實驗。涉及的網(wǎng)絡(luò)模型包括本文提出的TextCNN網(wǎng)絡(luò)模型、CNN網(wǎng)絡(luò)模型的變體、LeNet-5[31]和ResNet-12[32],以及在文本分類中常用的LSTM、雙向LSTM、GRU和雙向GRU。

上述網(wǎng)絡(luò)模型中,在進行LeNet-5和ResNet-12實驗時,將十進制一維數(shù)組,轉(zhuǎn)換為32*32*1的灰度圖片作為模型的輸入。LeNet-5的網(wǎng)絡(luò)結(jié)構(gòu)如表3所示,ResNet-12的網(wǎng)絡(luò)結(jié)構(gòu)如表4所示。

表3 LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)

表4 ResNet-12網(wǎng)絡(luò)結(jié)構(gòu)

對比實驗中的LSTM、Bi-LSTM、GRU和Bi-GRU網(wǎng)絡(luò)結(jié)構(gòu),是在本文提出的TextCNN網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上進行修改得到的。將TextCNN的核心部分,5對并行的一維卷積層和最大池化層,更換為一層的LSTM、bi-LSTM、GRU和bi-GRU中之一,神經(jīng)元個數(shù)設(shè)置為256。

使用3.2節(jié)中提到的訓(xùn)練方法對上述模型進行訓(xùn)練,然后在測試集上進行測試。在訓(xùn)練時間方面,LeNet-5和ResNet-12訓(xùn)練時間最短,TextCNN的訓(xùn)練時間適中,而LSTM、Bi_LSTM、GRU和Bi-GRU的訓(xùn)練時間最長。各個網(wǎng)絡(luò)模型的測試結(jié)果如表5所示。

表5 實驗結(jié)果與對比

從表5中能夠發(fā)現(xiàn),本文提出的TextCNN網(wǎng)絡(luò)結(jié)構(gòu)在加密惡意流量檢測中,各項評估指標都取得了較高的分數(shù)。模型的預(yù)測精度為98.72%,查全率為98.91%,F(xiàn)1值為99.15%,誤報率為3.28%,在所有模型中表現(xiàn)最優(yōu)。而在查準率,即真正例率上,TextCNN和雙向GRU的得分非常接近。實驗數(shù)據(jù)說明,基于TextCNN的加密惡意流量檢測方法,具有較強的泛化能力,在未知數(shù)據(jù)集上,也能表現(xiàn)出不錯的效果,模型檢測精度高,同時誤報率低。

4 總結(jié)和展望

在不解密的前提下,從加密流量中檢測惡意流量,是一個非常熱門的課題?,F(xiàn)在常用的方法中,基于傳統(tǒng)機器學(xué)習(xí)的惡意流量檢查方法,需要花費大量時間,人工提取特征。基于深度學(xué)習(xí)的惡意流量檢測方法,數(shù)據(jù)預(yù)處理方式復(fù)雜,模型泛化能力差。對此,本文提出了一種基于TextCNN的加密惡意流量檢測方法。

該方法將惡意流量和良性流量的分類任務(wù),轉(zhuǎn)換為文本分類任務(wù)進行處理。結(jié)合網(wǎng)絡(luò)數(shù)據(jù)包按照TCP/IP協(xié)議棧的格式進行封裝的領(lǐng)域知識,將網(wǎng)絡(luò)流量根據(jù)會話切分,然后進行清洗、轉(zhuǎn)換和裁剪,處理為等長的十進制一維數(shù)組。通過詞嵌入層,充分描述網(wǎng)絡(luò)流量中的上下文關(guān)系,通過多組一維卷積,從原始的流量中自動學(xué)習(xí)上下文特征。將多組一維卷積中學(xué)習(xí)到的特征結(jié)合起來,對流量進行分類。

在實際的網(wǎng)絡(luò)流量數(shù)據(jù)上,進行實驗驗證,證明了基于TextCNN的加密惡意流量檢測方法的有效性。實驗結(jié)果顯示,該方法具有良好的性能,優(yōu)于CNN、LSTM和GRU等網(wǎng)絡(luò)模型。此外,該方法在實際的網(wǎng)絡(luò)流量數(shù)據(jù)上訓(xùn)練后,能夠在未知數(shù)據(jù)集上表現(xiàn)出較高的檢測精度和較低的誤報率,模型泛化能力強。

在未來的研究中,將會從以下3個方面進行嘗試:

(1)將最新的網(wǎng)絡(luò)模型和技術(shù),運用于加密惡意流量檢測中。

(2)將多任務(wù)共享參數(shù)的設(shè)想加入到加密惡意流量檢測中,對良性流量和惡意流量進行二分類任務(wù),同時對惡意流量進行更細致的多分類,區(qū)分是哪種攻擊產(chǎn)生的流量。

(3)本文中采用的是機器學(xué)習(xí)中有監(jiān)督學(xué)習(xí)的分類模型,流量樣本都經(jīng)過人工進行標簽的標注。但是,在實際網(wǎng)絡(luò)中,標注流量是比較困難的。因此,研究如何從少量帶標簽樣本和大量無標簽樣本中進行半監(jiān)督學(xué)習(xí),將會是加密流量檢測中的一個重要研究課題。

猜你喜歡
數(shù)據(jù)包加密卷積
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準確測定
二維隱蔽時間信道構(gòu)建的研究*
一種基于卷積神經(jīng)網(wǎng)絡(luò)的地磁基準圖構(gòu)建方法
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
一種并行不對稱空洞卷積模塊①
基于廣義logistic混沌系統(tǒng)的快速圖像加密方法
民用飛機飛行模擬機數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
保護數(shù)據(jù)按需創(chuàng)建多種加密磁盤
C#串口高效可靠的接收方案設(shè)計
加密與解密
家居| 东乡县| 治多县| 景宁| 泸定县| 肥城市| 泰安市| 泽普县| 南漳县| 杂多县| 东平县| 华宁县| 无极县| 乌审旗| 江西省| 黄石市| 方城县| 靖西县| 桂东县| 上犹县| 岳阳市| 获嘉县| 宿松县| 平阳县| 昔阳县| 科技| 凤冈县| 云南省| 开平市| 长泰县| 车险| 建水县| 故城县| 隆回县| 兴和县| 辰溪县| 西盟| 沛县| 湘潭市| 建阳市| 仙桃市|