亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CNN-SIndRNN 的惡意TLS 流量快速識(shí)別方法

        2022-04-18 10:56:34李小劍謝曉堯張思聰
        計(jì)算機(jī)工程 2022年4期
        關(guān)鍵詞:字節(jié)加密卷積

        李小劍,謝曉堯,,徐 洋,張思聰

        (1.貴州師范大學(xué) 數(shù)學(xué)科學(xué)學(xué)院 貴陽 550001;2.貴州師范大學(xué) 貴州省信息與計(jì)算科學(xué)重點(diǎn)實(shí)驗(yàn)室 貴陽 550001)

        0 概述

        惡意軟件利用加密信道和流量加密技術(shù)實(shí)施惡意行為,該惡意行為隱藏較深且變種頻繁,難以被發(fā)現(xiàn)。2018 年Cisco 發(fā)布的安全報(bào)告指出,為避免攻擊行為的暴露,有超過70%的惡意軟件通信流量使用了TLS(Transport Layer Security)加密技術(shù)[1]。由于勒索病毒、廣告木馬、挖礦程序等惡意軟件與命令控制服務(wù)器的通信方法從傳統(tǒng)的HTTP 協(xié)議請(qǐng)求逐漸向加密流量技術(shù)轉(zhuǎn)變,因此基于明文的DPI、DFI[2]檢測方法已不再適用。解密行為需耗費(fèi)大量計(jì)算資源和時(shí)間,在不對(duì)流量解密的前提下如何精準(zhǔn)識(shí)別和快速分類惡意軟件加密流量成為當(dāng)前研究熱點(diǎn)之一。

        TLS 加密協(xié)議位于傳輸層與應(yīng)用層之間,由于其具有良好的擴(kuò)展性和兼容性,常用于HTTP、SMTP、POP3等應(yīng)用層協(xié)議中以保護(hù)2 個(gè)通信應(yīng)用進(jìn)程間數(shù)據(jù)的完整性和保密性。加密技術(shù)的初衷是保護(hù)信息內(nèi)容安全與用戶隱私,但也容易被不法分子用以掩飾其網(wǎng)絡(luò)違法活動(dòng),這給網(wǎng)絡(luò)安全監(jiān)管帶來了新的挑戰(zhàn)。由于加密后流量的上層封裝信息不可見,因此研究人員將研究重點(diǎn)轉(zhuǎn)向基于流量行為模式的機(jī)器學(xué)習(xí)技術(shù)上。已有研究表明,雖然惡意加密流量也采用標(biāo)準(zhǔn)的TLS 協(xié)議傳輸,但其在TLS 流協(xié)商機(jī)制、分組長度、幀到達(dá)時(shí)間、字節(jié)分布等方面與正常流量有明顯區(qū)別[3]?;谏鲜鲫P(guān)鍵特征,可以利用隨機(jī)森林、SVM[4]等經(jīng)典的機(jī)器學(xué)習(xí)方法區(qū)分惡意流量與正常流量,但機(jī)器學(xué)習(xí)方法通常需要人工選擇流量特征,要求研究人員具有相關(guān)專業(yè)背景和豐富的機(jī)器學(xué)習(xí)經(jīng)驗(yàn),且特征選擇優(yōu)秀與否將直接影響檢測模型最終性能的好壞。近年來,有研究人員使用深度學(xué)習(xí)技術(shù)提高惡意TLS 流量檢測準(zhǔn)確率,1D_CNN[5]、CNN-LSTM[6]、BotCatcher[7]等深度學(xué)習(xí)模型被陸續(xù)提出。這些模型雖然在一定程度上改善了識(shí)別效果,但仍存在流量表征不足、模型結(jié)構(gòu)復(fù)雜、參數(shù)眾多等問題,無法同時(shí)滿足流量檢測實(shí)時(shí)性與效果要求,也難以落實(shí)到資源配置有限、對(duì)實(shí)時(shí)性要求較高的應(yīng)用場景中。

        針對(duì)上述問題,本文提出一種基于CNN-SIndRNN端到端的惡意TLS 流量自動(dòng)檢測方法。利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)與循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)各自的優(yōu)點(diǎn),充分學(xué)習(xí)原始流量數(shù)據(jù)的局部相關(guān)特征與時(shí)序特征。同時(shí),從具體循環(huán)單元結(jié)構(gòu)和網(wǎng)絡(luò)計(jì)算方式2 個(gè)層面對(duì)傳統(tǒng)RNN 網(wǎng)絡(luò)模型改進(jìn),采用獨(dú)立循環(huán)神經(jīng)網(wǎng)絡(luò)(Independently Recurrent Neural Network,IndRNN)單元結(jié)構(gòu)作為循環(huán)單元,改善傳統(tǒng)RNN 存在的長期依賴問題。在此基礎(chǔ)上,采用切片循環(huán)神經(jīng)網(wǎng)絡(luò)(Sliced Recurrent Neural Network,SRNN)并行計(jì)算方式代替?zhèn)鹘y(tǒng)RNN 串行計(jì)算方式,在保證檢測性能的前提下,大幅提高模型訓(xùn)練和檢測速度,最終構(gòu)建完成CNNSIndRNN 檢測模型。

        1 相關(guān)工作

        目前對(duì)基于TLS 加密協(xié)議的惡意流量檢測仍以識(shí)別流量行為模式為主。主要有2 種檢測方法:

        1)利用TCP/IP 層數(shù)據(jù)流元數(shù)據(jù),包括分組平均長度、分組到達(dá)時(shí)間間隔、客戶端公鑰長度、服務(wù)器證書有效天數(shù)等統(tǒng)計(jì)特征進(jìn)行學(xué)習(xí)建模,檢測惡意TLS 流量。文獻(xiàn)[8]從流量行為、TLS 明文信息、證書3 個(gè)維度出發(fā),構(gòu)建在線隨機(jī)森林模型以實(shí)時(shí)區(qū)分惡意加密流量。文獻(xiàn)[9]結(jié)合報(bào)文負(fù)載和流指紋特征,在不依賴五元組信息的條件下,基于邏輯回歸模型提高了復(fù)雜網(wǎng)絡(luò)環(huán)境下加密惡意流量檢測率。上述方法利用統(tǒng)計(jì)特征進(jìn)行機(jī)器學(xué)習(xí)建模。在攻擊者對(duì)惡意代碼進(jìn)行更新升級(jí)后,流量的行為模式在特征集上也隨之變化,可能會(huì)使部分依據(jù)專家經(jīng)驗(yàn)挑選出的特征失效,導(dǎo)致識(shí)別率下降。此外,原始流量數(shù)據(jù)中隱含的與識(shí)別結(jié)果強(qiáng)相關(guān)的抽象特征難以被特征工程提取。

        2)基于惡意TLS 加密協(xié)議上下文相關(guān)流量,如DNS、HTTP 等特征檢測方法。文獻(xiàn)[10]通過檢測算法生成DGA 域名的方式對(duì)失陷主機(jī)DNS 請(qǐng)求報(bào)文中的惡意域名進(jìn)行分析檢測,但該類方法無法檢測直接使用IP 地址或以P2P 形式構(gòu)造的僵尸網(wǎng)絡(luò)。

        深度學(xué)習(xí)作為一種端到端的學(xué)習(xí)框架,在計(jì)算視覺任務(wù)和自然語言處理等領(lǐng)域有著出色的表現(xiàn)。在惡意流量識(shí)別領(lǐng)域,越來越多的研究人員開始構(gòu)建各種類型結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),并采取不同的訓(xùn)練機(jī)制以自動(dòng)提取流量特征。WANG 等[11]將惡意軟件流量數(shù)據(jù)轉(zhuǎn)化為灰度圖,提出基于CNN 的流量分類方法,該項(xiàng)工作是將學(xué)習(xí)方法應(yīng)用于惡意軟件原始流量分類任務(wù)的首次嘗試。CHENG 等[12]利 用Word2vec 模型將流量負(fù)載轉(zhuǎn)換為句子向量并通過多核一維卷積實(shí)現(xiàn)惡意加密C&C 流量識(shí)別。CNN 善于捕捉序列數(shù)據(jù)的局部模式特征,但卻難以獲取動(dòng)態(tài)時(shí)序信息和進(jìn)行長距離記憶。ZHOU 等[13]對(duì)加密會(huì)話中包長傳輸模式與包傳輸時(shí)間序列進(jìn)行訓(xùn)練,利用長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)模型進(jìn)行自動(dòng)特征提取,并對(duì)惡意加密流量和正常流量進(jìn)行分類,其準(zhǔn)確率超過傳統(tǒng)的基于流量統(tǒng)計(jì)特征的機(jī)器學(xué)習(xí)方法。但由于循環(huán)神經(jīng)網(wǎng)絡(luò)依賴前一時(shí)間步的計(jì)算結(jié)果,無法充分利用GPU 實(shí)現(xiàn)大規(guī)模并行運(yùn)算,訓(xùn)練和檢測速度較慢。上述檢測方法的檢測精度和效率仍存在較大的上升空間。

        2 惡意TLS 流量識(shí)別方法

        本文所提TLS 惡意流量識(shí)別方法主要包含3 個(gè)階段:1)流量數(shù)據(jù)預(yù)處理;2)網(wǎng)絡(luò)流量局部相關(guān)性與時(shí)序特征挖掘;3)流量分類檢測。首先從原始網(wǎng)絡(luò)流量文件中提取網(wǎng)絡(luò)流量字節(jié),對(duì)16 進(jìn)制表示的字節(jié)字符采用Tokenizer 分詞器進(jìn)行字節(jié)級(jí)分詞處理后,經(jīng)過Embedding(詞嵌入)轉(zhuǎn)換為字符向量序列;然后利用連續(xù)2 個(gè)卷積層自動(dòng)提取字符間局部組合信息以增強(qiáng)流量表征,并使用并行的SIndRNN 網(wǎng)絡(luò)捕獲會(huì)話流時(shí)序特征;最后將2 個(gè)深度神經(jīng)網(wǎng)絡(luò)挖掘出的特征進(jìn)行拼接,輸入到softmax/sigmoid 分類器中完成惡意TLS 流量的識(shí)別與分類。模型總體框架如圖1 所示。

        圖1 CNN-SIndRNN 模型總體框架Fig.1 Overall framework of CNN-SIndRNN model

        2.1 流量預(yù)處理與向量化

        本文主要關(guān)注隱藏于TLS 加密協(xié)議的惡意軟件通信行為流量。以TLS 加密數(shù)據(jù)傳遞之前的握手協(xié)商的數(shù)據(jù)報(bào)文,及與其前向相關(guān)的DNS 請(qǐng)求響應(yīng)報(bào)文組成TLS 會(huì)話流,作為特征挖掘空間,主要原因是:1)傳輸內(nèi)容已被TLS 協(xié)議加密,分析流量負(fù)載內(nèi)容難以發(fā)現(xiàn)惡意行為;2)TLS 握手協(xié)議中的ClientHello、ServerHello、Certificate、ClientkeyExchange 等消息中所包含加密套件、客戶公鑰長度、證書有效期、證書是否自簽名、前向相關(guān)DNS 報(bào)文中的請(qǐng)求域名、TTL 值等信息對(duì)識(shí)別惡意TLS 流量具有重要區(qū)分作用[14]。因此,流量預(yù)處理主要包含以下步驟:

        步驟1完成原始流量切分與數(shù)據(jù)包重組,并依據(jù)服務(wù)器端口和傳輸層協(xié)議從原始網(wǎng)絡(luò)流量中提取2 類通信流,一類是服務(wù)器端口號(hào)為53 的UDP 通信流即DNS 流,另一類是服務(wù)器端口號(hào)為443 的TCP通信流即TLS 通信流。

        步驟2根據(jù)2 類流中數(shù)據(jù)幀五元組信息進(jìn)行關(guān)聯(lián)匹配,最終將TLS 握手協(xié)商的9 個(gè)數(shù)據(jù)包(包含TCP 建立連接3 次握手)與前向關(guān)聯(lián)2 個(gè)DNS 報(bào)文按照通信時(shí)間先后順序合并為一條TLS 會(huì)話,握手協(xié)商過程如圖2 所示。

        圖2 TLS 加密會(huì)話流握手協(xié)商過程Fig.2 Handshake negotiation process of TLS encrypted session flow

        步驟3刪除數(shù)據(jù)包中特有的MAC 地址、IP 地址等對(duì)分類結(jié)果產(chǎn)生干擾的相關(guān)字符串。

        步驟4統(tǒng)一輸入大小。使用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練需固定維度地輸入數(shù)據(jù),經(jīng)過對(duì)數(shù)據(jù)分組長度進(jìn)行統(tǒng)計(jì)分析發(fā)現(xiàn),TLS 會(huì)話流中每個(gè)數(shù)據(jù)包平均字節(jié)數(shù)約為200。為縮減計(jì)算規(guī)模并保留分組頭部關(guān)鍵信息及方便后續(xù)使用切分循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行分層切片,提取會(huì)話流中每個(gè)數(shù)據(jù)包的前121 個(gè)字節(jié),超出長度則截?cái)啵蛔銊t在末尾補(bǔ)充0X00,并標(biāo)記其所屬類別。

        深度學(xué)習(xí)網(wǎng)絡(luò)模型輸入要求為數(shù)值型張量,需將TLS 會(huì)話流基于字節(jié)向量化。文獻(xiàn)[15]對(duì)每個(gè)數(shù)據(jù)分組向量進(jìn)行one-hot 編碼,并將每個(gè)字節(jié)編碼為256 維向量,但這種編碼方式容易造成生成的二維矩陣數(shù)據(jù)過于稀疏,且不能表達(dá)2 個(gè)字節(jié)間的有效關(guān)聯(lián)。本文利用Tokenizer 分詞器對(duì)每條會(huì)話流進(jìn)行分詞編號(hào),統(tǒng)計(jì)流量中出現(xiàn)的所有字節(jié)字符并生成字典,并對(duì)任意給定的會(huì)話流輸入,轉(zhuǎn)換為長度為n的向量表示,n為會(huì)話流最大截?cái)嚅L度,向量中的每一位元素表示字節(jié)在字典中的索引值。這種編碼方式簡單高效,同時(shí)也保存了字節(jié)間的前后順序信息。在此基礎(chǔ)上,利用Word Embedding 詞嵌入技術(shù)轉(zhuǎn)換為一個(gè)字節(jié)向量序列s1:n=w1⊕w2⊕···⊕wn。其中:wi∈Rk;k為嵌入層向量的維度;⊕表示拼接操作。這樣任一TLS會(huì)話流s可表示成一個(gè)n×k二維的稠密矩陣向量。

        2.2 基于CNN、SIndRNN 的特征提取

        經(jīng)2.1 節(jié)預(yù)處理后的網(wǎng)絡(luò)流量數(shù)據(jù)可視為按層次結(jié)構(gòu)組織的字節(jié)流序列。字節(jié)、數(shù)據(jù)分組、會(huì)話流與自然語言處理領(lǐng)域中的單詞、句子和文檔結(jié)構(gòu)非常相似。數(shù)據(jù)分組中特定的位置代表特定的語義信息,如Client Hello 分組的第55、56 字節(jié)0X0303 表示客戶端所支持TLS 協(xié)議版本號(hào)為1.2。在NLP 任務(wù)中,CNN 可以從句子中提取局部單詞組合信息。本文將一維卷積看作自然語言模型中的n元語法器(n-gram),自動(dòng)從TLS 會(huì)話流中提取字節(jié)組合信息。由于數(shù)據(jù)包內(nèi)部分字節(jié)之間具有前后相關(guān)性,聯(lián)系較為緊密,若采用傳統(tǒng)CNN 結(jié)構(gòu)中的卷積操作后緊接池化操作,有可能會(huì)過濾掉相關(guān)特征,造成信息損失。為此,連續(xù)采用2 個(gè)卷積層進(jìn)行特征提取,并從元語法的角度分析,多層卷積可以擴(kuò)大感受野,獲得更大值的語法信息[16]。在進(jìn)行第一層卷積操作時(shí),卷積核的寬度必須設(shè)置與會(huì)話流中字節(jié)向量表示的維度一致,卷積核只在流量矩陣s∈Rnxk垂直方向上自上而下滑動(dòng)遍歷。2 次卷積操作可表示為:

        其 中:l1、l2為卷積核的尺寸;step 為卷積步長;W1∈,W2∈為卷積核權(quán)值矩陣;f為非線性函數(shù),這里采用Relu 函數(shù)。2 層卷積計(jì)算后,使用全局最大池化(Global Max Pooling,GMP)代替全連接層以減少參數(shù)量。在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中,卷積層經(jīng)過下采樣操作后,通常會(huì)將結(jié)果打平并送入多個(gè)全連接層,這樣做會(huì)造成整個(gè)網(wǎng)絡(luò)模型參數(shù)量大,參數(shù)更新困難,且容易造成過擬合。假設(shè)經(jīng)過最后一次卷積操作后得到W×H×C個(gè)特征圖,全連接層有M個(gè)神經(jīng)元,僅全連接層需要更新的參數(shù)就達(dá)W×H×C×M個(gè)。全局池化是將池化的窗口大小設(shè)置成與特征圖大小一致,一張?zhí)卣鲌D輸出一個(gè)特征值。相比全連接層,其參數(shù)量為1×1×C=C。由于沒有參數(shù)設(shè)置且不需要優(yōu)化算法進(jìn)行調(diào)參,全局池化能夠降低模型過擬合風(fēng)險(xiǎn)。本文選擇全局最大池化來提取每張?zhí)卣鲌D中的最重要區(qū)域。

        CNN 善于捕捉序列型數(shù)據(jù)的局部模式特征,卻難以提取鏈?zhǔn)浇Y(jié)構(gòu)輸入集中的的的各單元之間依賴關(guān)系。在網(wǎng)絡(luò)流量層次結(jié)構(gòu)中,最底層為依時(shí)間順序排列的字節(jié)序列,字節(jié)序列又按照網(wǎng)絡(luò)協(xié)議類型聚合為上層的分組序列。為更深入挖掘TLS 數(shù)據(jù)流在時(shí)間序列上的特性以加強(qiáng)流量表征,本文在提取序列局部組合特征的同時(shí),并行設(shè)計(jì)了一種改進(jìn)的循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)間特征學(xué)習(xí)。經(jīng)預(yù)處理步驟得到的單個(gè)TLS 會(huì)話流字節(jié)序列長度達(dá)11×121=1 331,若采用經(jīng)典的RNN 網(wǎng)絡(luò)學(xué)習(xí),容易出現(xiàn)長期依賴關(guān)系能力差和訓(xùn)練時(shí)間過長2 大問題。LSTM 和GRU 網(wǎng)絡(luò)通過增加門控機(jī)制對(duì)RNN 循環(huán)單元進(jìn)行改進(jìn),雖在一定程度上改善了梯度消失和梯度爆炸問題,但由于使用tanh 和sigmoid 作為激活函數(shù),層與層之間梯度易衰減,因此構(gòu)建和訓(xùn)練深層循環(huán)神經(jīng)網(wǎng)絡(luò)存在困難。為解決惡意TLS 會(huì)話流字節(jié)序列輸入過長造成訓(xùn)練時(shí)間過長等問題,本文從具體循環(huán)單元結(jié)構(gòu)和網(wǎng)絡(luò)計(jì)算方式2 個(gè)層面對(duì)傳統(tǒng)RNN進(jìn)行改進(jìn),提出一種基于SIndRNN 的網(wǎng)絡(luò)模型挖掘字節(jié)序列長距離依賴關(guān)系。此外,本文選擇獨(dú)立循環(huán)神經(jīng)網(wǎng)絡(luò)的單元結(jié)構(gòu)代替?zhèn)鹘y(tǒng)RNN 循環(huán)單元,IndRNN[17]單元結(jié)構(gòu)如圖3 所示。

        圖3 IndRNN 單元結(jié)構(gòu)Fig.3 IndRNN unit structure

        與傳統(tǒng)RNN 網(wǎng)絡(luò)最大區(qū)別在于,IndRNN 算法中同一層的各神經(jīng)元之間相互獨(dú)立,每個(gè)神經(jīng)元僅接受當(dāng)前時(shí)刻的輸入信息和上一時(shí)間步的隱層狀態(tài)信息,以避免被同一時(shí)刻特征間關(guān)系所影響,同時(shí)消除同一時(shí)刻的冗余特征。當(dāng)堆疊2 層或多層神經(jīng)元時(shí),下一層每個(gè)神經(jīng)元獨(dú)立處理前一層所有神經(jīng)元的輸出,每個(gè)神經(jīng)元獨(dú)立處理一種類型的時(shí)間模式,增強(qiáng)了對(duì)更長序列的建模能力。IndRNN 在t時(shí)刻第n個(gè)神經(jīng)元狀態(tài)如式(3)所示:

        其中:xt、ht-1,n分別是t時(shí)刻的輸入和t-1 時(shí)刻的隱層狀態(tài);Wn表示輸入層到隱層權(quán)值;Un表示上一時(shí)刻隱層到當(dāng)前時(shí)刻隱層權(quán)值;⊙表示哈達(dá)馬積(hadamard product);σ為非飽和激活函數(shù)Relu。

        使用IndRNN 循環(huán)單元的另一個(gè)原因是其可以進(jìn)一步精簡神經(jīng)網(wǎng)絡(luò)的訓(xùn)練參數(shù)量。假設(shè)輸入序列向量表示維度為M,對(duì)于只有N個(gè)隱層單元的單層循環(huán)神經(jīng)網(wǎng)絡(luò)而言,RNN參數(shù)量為N(M+N),LSTM引入了4個(gè)門控單元,參數(shù)量為4N(M+N),而IndRNN 由于結(jié)構(gòu)上同層各神經(jīng)元間彼此獨(dú)立,沒有與上一時(shí)間步所有神經(jīng)元相連,參數(shù)量只有N(M+1)。使用切片循環(huán)神經(jīng)網(wǎng)絡(luò)SRNN[18]并行計(jì)算結(jié)構(gòu)代替經(jīng)典RNN 串行結(jié)構(gòu)。SRNN 將輸入序列切分為若干個(gè)等長子序列,每個(gè)子序列內(nèi)的循環(huán)單元并列工作,這樣可以減少同層相鄰循環(huán)單元之間的計(jì)算依賴時(shí)間。本文基于SRNN 網(wǎng)絡(luò)結(jié)構(gòu)建立SIndRNN 網(wǎng)絡(luò)模型。假設(shè)輸入序列X=[x1,x2,···,xT],其中:xi∈Rk表示每一時(shí)刻的輸入;T表示序列的總長度。對(duì)長度為T的序列X進(jìn)行k次分割,可分為若干個(gè)長度為n的子序列,此時(shí)有:

        對(duì)于原始網(wǎng)絡(luò)流量數(shù)據(jù)而言,數(shù)據(jù)分組與分組之間,分組內(nèi)字節(jié)之間存在前后依賴的時(shí)序關(guān)系。本文提取的TLS 會(huì)話流序列長度為1 331,選擇先從會(huì)話層進(jìn)行切分,再從數(shù)據(jù)分組層進(jìn)行切分,如此可得到3 個(gè)隱藏層。由式(4)可知,當(dāng)T=1 331,k=2時(shí),可得各隱藏層子序列長度n=11。第一次切分得到長度相等的11 個(gè)子序列,每個(gè)子序列長度為121,恰好對(duì)應(yīng)TLS 會(huì)話流中的11 個(gè)數(shù)據(jù)分組。再對(duì)每個(gè)子序列執(zhí)行相同的切分操作,得到最底層的最小子序列數(shù)s0=nk=112=121,每個(gè)子序列長度=11,SIndRNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。

        圖4 SIndRNN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 SIndRNN network structure

        對(duì)第0 隱藏層121 個(gè)最小子序列進(jìn)行并行訓(xùn)練,將得到的121 個(gè)最小子序列訓(xùn)練結(jié)果作為第1 隱藏層網(wǎng)絡(luò)的輸入。第1 隱藏層子序列的數(shù)量為11,同樣,將得到的11 個(gè)子序列并行訓(xùn)練的結(jié)果作為第2 隱藏層網(wǎng)絡(luò)的輸入。第2 隱藏層子序列的數(shù)量為1,通過3 層隱藏層計(jì)算后最終得到隱狀態(tài)F,以此作為整個(gè)SIndRNN網(wǎng)絡(luò)的輸出。這種切片計(jì)算方式,既保留了子序列內(nèi)部時(shí)序關(guān)系,也保留了子序列之間的時(shí)序信息,即網(wǎng)絡(luò)流中的數(shù)組分組間和數(shù)據(jù)分組內(nèi)字節(jié)間的時(shí)序特征。SIndRNN 網(wǎng)絡(luò)訓(xùn)練算法如下:

        SIndRNN訓(xùn)練速度優(yōu)勢(shì)分析:假設(shè)每個(gè)IndRNN單元處理數(shù)據(jù)的時(shí)間為t,輸入序列的長度為T,則IndRNN網(wǎng)絡(luò)訓(xùn)練所花費(fèi)的時(shí)間tIndRNN=T×t,SIndRNN 層子網(wǎng)訓(xùn)練所花費(fèi)的時(shí)間分別為n2×t、n×t、t,因此SIndRNN 網(wǎng)絡(luò)總訓(xùn)練時(shí)間tSIndRNN=n2×t+n×t+t=(n2+n+1)×t,相比于IndRNN,理論上可節(jié)約的訓(xùn)練時(shí)間treduce=tIndRNN-tSIndRNN=T×t-(n2+n+1)×t=(nk+1-n2-n-1)×t(已知T=nk+1)。在本文T=1331,k=2,n=11 的情況下,SIndRNN 與IndRNN相比,理論上訓(xùn)練時(shí)間下降了再加上IndRNN 相比于LSTM、RNN 訓(xùn)練參數(shù)量更少,因此SIndRNN 的訓(xùn)練速度具有較大的優(yōu)勢(shì)。

        2.3 CNN-SIndRNN 分類算法流程

        在進(jìn)行分類之前,需要將CNN 網(wǎng)絡(luò)與SIndRNN網(wǎng)絡(luò)輸出的2 種類型表征進(jìn)行聚合,為豐富原始流量表征,本文采用拼接方式將2 種類型的特征向量進(jìn)行串聯(lián),再輸入到分類函數(shù)中。對(duì)于二分類任務(wù),基于數(shù)據(jù)流特征,使用sigmoid 分類器判斷輸入數(shù)據(jù)流為正常加密流量還是惡意加密流量。代價(jià)函數(shù)選擇更適用于二分類場景的二元交叉熵?fù)p失函數(shù),函數(shù)公式如式(5)和式(6)所示:

        對(duì)于多分類任務(wù),輸出層神經(jīng)元激活函數(shù)選擇softmax 函數(shù),它將多個(gè)神經(jīng)元的輸出映射到(0,1)區(qū)間內(nèi),各個(gè)輸出之和為1,對(duì)應(yīng)于劃分到各個(gè)類別的概率。代價(jià)函數(shù)選擇適用于多分類場景的多元交叉熵?fù)p失函數(shù)Categorical Cross Entroy,函數(shù)式如式(7)和式(8)所示:

        其中:c表示分類類別數(shù)。

        模型訓(xùn)練采用Adam 優(yōu)化器,通過計(jì)算梯度一階矩估計(jì)和二階矩估計(jì),自適應(yīng)調(diào)整學(xué)習(xí)率,并根據(jù)損失函數(shù)計(jì)算偏導(dǎo)數(shù)以更新模型權(quán)值W與偏置b。設(shè)網(wǎng)絡(luò)模型第l層權(quán)值與偏置分別為W(l)、b(l),參數(shù)更新過程如式(9)和式(10)所示:

        其中:η為學(xué)習(xí)率。

        本文提出基于CNN_SIndRN 的惡意TLS 加密流量識(shí)別模型的算法流程分為4 個(gè)步驟:

        3 實(shí)驗(yàn)

        3.1 實(shí)驗(yàn)環(huán)境與設(shè)置

        本文實(shí)驗(yàn)環(huán)境運(yùn)行在Windows10操作系統(tǒng)上,CPU為Intel酷睿i5-9400 F/2.9 GH/6 cores,內(nèi)存16 GB,顯卡為英偉達(dá)GeForceGTX1660。網(wǎng)絡(luò)模型創(chuàng)建以及訓(xùn)練參數(shù)調(diào)優(yōu)采用深度學(xué)習(xí)平臺(tái)keras2.25,后端調(diào)用tensorflow-GPU1.8完成并行加速運(yùn)算,開發(fā)環(huán)境為python3.7.3。IndRNN 算法實(shí)現(xiàn)部分參考鏈接:https://github.com/titu1994/Keras-IndRNN/blob/master/ind_rnn.py。

        CNN_SIndRNN 模型網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示。超參數(shù)設(shè)置經(jīng)過多次實(shí)驗(yàn)調(diào)整,最終選擇結(jié)果如表2所示。實(shí)驗(yàn)結(jié)果采用五折交叉驗(yàn)證,將樣本平均分為5 份,輪流將其中4 份作為訓(xùn)練集,剩余1 份作為測試集,最終結(jié)果取5 次測試均值,訓(xùn)練集、驗(yàn)證集和測試集比例設(shè)置為8∶1∶1。

        表1 CNN_SIndRNN 模型網(wǎng)絡(luò)結(jié)構(gòu)Table 1 CNN_SIndRNN model network structure

        表2 模型參數(shù)設(shè)置Table 2 Model parameter setting

        3.2 實(shí)驗(yàn)數(shù)據(jù)

        本文實(shí)驗(yàn)數(shù)據(jù)中惡意樣本來源為CTU-Malware-Capture[19]和Malware-Traffic-Analysis[20]2 個(gè)公開的實(shí)驗(yàn)項(xiàng)目,樣本是通過在沙盒隔離環(huán)境內(nèi)運(yùn)行多款惡意軟件,并捕獲其在運(yùn)行過程中發(fā)送給遠(yuǎn)端控制服務(wù)器的網(wǎng)絡(luò)流量生成。正常流量使用CTU-Normal-Capture[21]數(shù)據(jù)集。原始流量文件格式為pcap,但并非完全都屬于TLS 類型流量。由于TLS 握手協(xié)商報(bào)文使用明文傳輸,因此在數(shù)據(jù)預(yù)處理階段,通過調(diào)用scapy 庫對(duì)捕獲的數(shù)據(jù)報(bào)頭部信息進(jìn)行解析,對(duì)于一個(gè)完整的TLS 會(huì)話,其通信過程一定包含ClientHello、Server Hello、Certificate、ServerKeyExchange 等特定類型消息。如果某個(gè)數(shù)據(jù)流中沒有檢測到以上消息,則可將其判定為非TLS 流。若數(shù)據(jù)流中檢測到以上部分消息,但由于網(wǎng)絡(luò)環(huán)境不穩(wěn)定,出現(xiàn)TCP、TLS 握手過程不完整、丟包等現(xiàn)象導(dǎo)致TLS 連接建立失敗,這類流量也被判定為非TLS流。經(jīng)過濾后得到的實(shí)驗(yàn)數(shù)據(jù)具體分布如表3所示。

        表3 數(shù)據(jù)集樣本分布Table 3 Data set sample distribution

        3.3 評(píng)估指標(biāo)

        實(shí)驗(yàn)采用精確率(Precision),召回率(Recall)、調(diào)和平均數(shù)(F1 值)、整體準(zhǔn)確率(Overall_ACC)及ROC 曲線來評(píng)估模型性能的指標(biāo)。計(jì)算公式如式(11)~式(14)所示:

        其中:TTPi表示屬于類別i的加密流量被正確識(shí)別為該類別數(shù)量表示不屬于類別i加密流量被識(shí)別為類別i的數(shù)量表示屬于類別i的加密流量被識(shí)別為非該類別的數(shù)量。ROC曲線的橫坐標(biāo)、縱坐標(biāo)分別由假陽率(FPR)和真陽率(TPR)繪制而成,對(duì)于二分類實(shí)驗(yàn),ROC 與坐標(biāo)軸圍成的面積(AUC)越大,表示分類模型性能越好。

        3.4 實(shí)驗(yàn)結(jié)果與分析

        為評(píng)估CNN_SIndRNN 模型各模塊設(shè)計(jì)合理性,在CTU-Malware-Capture 數(shù)據(jù)集上對(duì)訓(xùn)練損失函數(shù)的收斂性進(jìn)行對(duì)比。實(shí)驗(yàn)時(shí),序列長度T設(shè)置為1 331,時(shí)序特征提取子模塊分別采用RNN、GRU、LSTM 與IndRNN 循環(huán)單元。結(jié)果如圖5 所示,各循環(huán)單元采用相同參數(shù)設(shè)置與相同的切片分層方式。IndRNN 在4 種循環(huán)單元中收斂速度最快且趨勢(shì)較為平穩(wěn),GRU 及LSTM 均有小幅度振蕩,RNN 則出現(xiàn)收斂困難,性能最差,這說明IndRNN在多層循環(huán)神經(jīng)網(wǎng)絡(luò)捕獲長序列數(shù)據(jù)特征的優(yōu)勢(shì)。圖6 為消融實(shí)驗(yàn)中單獨(dú)使用CNN、SIndRNN及同時(shí)使用CNN 與SIndRNN 模塊訓(xùn)練準(zhǔn)確率對(duì)比,可以看出組合局部模式特征與時(shí)序特征在識(shí)別惡意TLS 流量時(shí),比單獨(dú)使用CNN 或SIndRNN更有效。

        圖5 訓(xùn)練誤差迭代對(duì)比Fig.5 Comparison of training error iterations

        圖6 訓(xùn)練準(zhǔn)確率對(duì)比Fig.6 Comparison of training accuracy

        3.4.1 二分類結(jié)果對(duì)比

        為驗(yàn)證本文所提CNN_SIndRNN模型在識(shí)別惡意TLS流量時(shí)的效果,在CTU-Malware-Capture數(shù)據(jù)集上與已有的自動(dòng)挖掘特征深度學(xué)習(xí)基準(zhǔn)模型1D-CNN、BotCatcher和經(jīng)典機(jī)器學(xué)習(xí)模型SVM、隨機(jī)森林進(jìn)行實(shí)驗(yàn)對(duì)比。在基于1D_CNN的分類實(shí)驗(yàn)中,采用文獻(xiàn)[5]提出的1D_CNN分類結(jié)構(gòu),提取TLS會(huì)話流前784個(gè)字節(jié),輸入2層一維卷積網(wǎng)絡(luò)提取字節(jié)序列局部特征組合。BotCatcher模型采用文獻(xiàn)[7]提出的分類模型,分別截取TLS會(huì)話流前1 024個(gè)字節(jié)和前10個(gè)數(shù)據(jù)包(不包含上關(guān)聯(lián)2個(gè)DNS數(shù)據(jù)包,每個(gè)數(shù)據(jù)包取前80個(gè)字節(jié)),分別輸入CNN與LSTM網(wǎng)絡(luò),其中LSTM采用2層雙向網(wǎng)絡(luò)結(jié)構(gòu)。SVM、隨機(jī)森林模型采用文獻(xiàn)[4]提出的基于TCP、UDP連接、TLS、X509證書日志三個(gè)維度共15個(gè)統(tǒng)計(jì)特征構(gòu)建分類器,其中SVM核函數(shù)采用線性核,隨機(jī)森林基分類器n_estimators設(shè)置為100,對(duì)惡意樣本的實(shí)驗(yàn)結(jié)果如表4所示,表中加粗?jǐn)?shù)據(jù)表示該組數(shù)據(jù)的最大值。

        表4 二分類實(shí)驗(yàn)結(jié)果對(duì)比Table 4 Comparison of two classification experiment results

        由表4 可知,CNN-SIndRNN 模型的召回率、F1 值分別為0.971 7、0.965 7,在5 種模型中最高,檢測出惡意樣本的效果最好。雖然經(jīng)典機(jī)器學(xué)習(xí)算法也能取得較好的檢測結(jié)果,但需要依據(jù)專家經(jīng)驗(yàn)構(gòu)建具有強(qiáng)分辨力的特征以區(qū)分惡意樣本與良性樣本,特征工程耗時(shí)復(fù)雜。而深度學(xué)習(xí)方法能夠自主選擇特征,不僅減少了工作量而且提升了分類效果。為更直觀評(píng)估本文模型在二分類實(shí)驗(yàn)性能,根據(jù)測試結(jié)果中的假陽率(FPR),真陽率(TPR)繪制ROC 曲線圖,結(jié)果如圖7 所示。CNN-SIndRNN 模型的ROC_curve 面積為0.994 5,在5 種模型中面積最大,說明本文所提出模型對(duì)二分類測試數(shù)據(jù)集的ROC 擬合程度最好。

        圖7 二分類ROCFig.7 ROC of two classification

        3.4.2 多分類結(jié)果對(duì)比

        在實(shí)際應(yīng)用中不僅需要通過通信流量鑒別惡意軟件,還需要對(duì)其所屬類別進(jìn)行標(biāo)記,并劃分至相應(yīng)家族以供安全人員研究。為此,在Malware-Traffic-Analysis數(shù)據(jù)集上對(duì)1D_CNN、BotCatcher、CNN-SIndRNN模型進(jìn)行多分類實(shí)驗(yàn),以驗(yàn)證模型的泛化能力。對(duì)3種模型采用早停(Early Stopping)策略動(dòng)態(tài)控制模型訓(xùn)練迭代次數(shù),容忍度統(tǒng)一設(shè)置為20,即訓(xùn)練模型過程中連續(xù)20次迭代后驗(yàn)證集損失函數(shù)值仍在上升則停止訓(xùn)練。3種模型訓(xùn)練迭代輪數(shù)平均值分別為21、23、22,取模型前20輪的訓(xùn)練準(zhǔn)確率變化進(jìn)行對(duì)比,結(jié)果如圖8 所示。BotCatcher、CNN-SIndRNN模型的初始驗(yàn)證集準(zhǔn)確率高于1D_CNN模型,對(duì)訓(xùn)練數(shù)據(jù)的擬合能力更強(qiáng),且隨著訓(xùn)練輪數(shù)增加,CNN-SIndRNN模型的準(zhǔn)確率達(dá)到最高。

        圖8 3 種模型前20 次訓(xùn)練過程驗(yàn)證集準(zhǔn)確率對(duì)比Fig.8 Comparison of accuracy rate of validation set in first 20 training processes of three models

        圖9 是3 種模型在測試集上進(jìn)行分類后輸出的8 維混淆矩陣,混淆矩陣主對(duì)角線上的數(shù)值為各類別被預(yù)測正確的比重(召回率,精確到小數(shù)點(diǎn)后2 位),惡意軟件家族識(shí)別結(jié)果F1 值及各模型整體準(zhǔn)確率如表5 所示,表中加粗?jǐn)?shù)據(jù)表示該組數(shù)據(jù)的最大值。1D_CNN 模型由于缺乏對(duì)流量層次結(jié)構(gòu)和上下文時(shí)序信息特征表達(dá),因此各類家族樣本的召回率和F1 值均低于BotCatcher 與CNN_SIndRNN 模型,整體準(zhǔn)確率也只有0.795 8。本文所提模型整體準(zhǔn)確率達(dá)0.848 9,比1D_CNN、BotCatcher 模型分別高出5.31%、0.32%,說明本文提出的組合模型在構(gòu)建的流量特征空間中,自動(dòng)挖掘惡意TLS 流量特征方面更有效。3 種深度學(xué)習(xí)模型對(duì)WannaCry 惡意樣本家族的識(shí)別率均較低,這是因?yàn)閃annaCry 和ZBot 木馬變種在與C&C 服務(wù)器建立連接時(shí)通信行為較為相似,相當(dāng)數(shù)量的WannaCry 樣本被誤判為ZBot,且該類別樣本數(shù)量較少,深度學(xué)習(xí)模型無法充分學(xué)習(xí)其隱含的高級(jí)抽象特征,導(dǎo)致識(shí)別效果欠佳。

        圖9 3 種模型測試集預(yù)測結(jié)果混淆矩陣Fig.9 Confusion matrix of prediction results of three models on test data

        表5 多分類實(shí)驗(yàn)F1 值與整體準(zhǔn)確率Table 5 F1 value and overall accuracy of multi classification experiment

        表6 為3 種模型參數(shù)量、訓(xùn)練、測試時(shí)間和模型大小對(duì)比結(jié)果,表中加粗?jǐn)?shù)據(jù)表示該組數(shù)據(jù)的最大值。訓(xùn)練時(shí)間是在約1 萬條訓(xùn)練樣本上單次迭代時(shí)間的平均值,測試時(shí)間表示在所有測試樣本(1 389 條)單次測試平均值。1D_CNN算法所用時(shí)間最少,CNN_SIndRNN訓(xùn)練時(shí)間和測試時(shí)間分別為7.499 s、0.453 s,比1D_CNN算法耗時(shí)稍長,說明影響模型整體運(yùn)行速度的主要因素為時(shí)序特征提取模塊,但本文的SIndRNN模塊對(duì)CNN并行處理速度影響較小。BotCatcher 模型訓(xùn)練耗時(shí)達(dá)489.902 s,在3 種模型中耗時(shí)最長,這是因?yàn)槠銵STM采用循環(huán)輸入方式,對(duì)流量字節(jié)逐個(gè)處理,每步計(jì)算依賴上一時(shí)間步計(jì)算結(jié)果。而SIndRNN 采用的IndRNN循環(huán)單元在每個(gè)子序列內(nèi)是并行工作的,在保證獲取長距離依賴關(guān)系前提下可大幅提高運(yùn)行速度,減少計(jì)算等待時(shí)間,與BotCatcher 相比,訓(xùn)練時(shí)間與測試時(shí)間分別節(jié)省了98.47%和98.28%。此外,本文還設(shè)計(jì)了變體模型CNN_IndRNN,即將流量字節(jié)視為整體處理,采用分層切片方式逐個(gè)輸入到IndRNN 模塊中,訓(xùn)練時(shí)間約為49.99 s。與之相比,本文模型訓(xùn)練時(shí)間可節(jié)省約85%,這也與2.2 節(jié)理論推算基本相符。本文設(shè)計(jì)的輕量級(jí)模型CNN_SIndRNN 模型 參數(shù)共有193 480 個(gè),模型大小僅為785 K,遠(yuǎn)低于1D_CNN與BotCatcher模型,在保證分類性能的前提下,縮短了模型訓(xùn)練、檢測時(shí)間,并簡化了模型結(jié)構(gòu),有效地做到了分類精度和運(yùn)行時(shí)間的均衡。CNN_SIndRNN 模型在計(jì)算實(shí)驗(yàn)環(huán)境中每秒可處理3 066 條TLS 會(huì)話流,可以滿足校園網(wǎng)級(jí)別的惡意TLS 流量實(shí)時(shí)檢測要求。

        表6 模型效果對(duì)比Table 6 Comparison of effect of models

        4 結(jié)束語

        本文基于CNN_SIndRNN 模型提出一種惡意TLS 流量快速識(shí)別方法,使用多層一維卷積在流量字節(jié)序列中提取局部模式特征,在不同層采用不同卷積核值以獲取更大局部感受野。為增強(qiáng)流量表征,并行設(shè)計(jì)一個(gè)IndRNN 網(wǎng)絡(luò)層用以挖掘流量字節(jié)間長距離依賴關(guān)系。此外,采用切片循環(huán)神經(jīng)網(wǎng)絡(luò)并行計(jì)算結(jié)構(gòu)代替經(jīng)典RNN 串行結(jié)構(gòu),從而大幅提高模型訓(xùn)練和檢測速度。實(shí)驗(yàn)結(jié)果表明,與BotCatcher相比,該方法在保證惡意TLS 識(shí)別效果的前提下,訓(xùn)練時(shí)間和檢測時(shí)間分別節(jié)省了98.47%和98.28%,并降低了模型復(fù)雜度。由于目前專門用于惡意軟件加密流量數(shù)據(jù)集相對(duì)較少,本文方法對(duì)少數(shù)類惡意加密流量的識(shí)別率及泛化能力仍有待提升。下一步將從數(shù)據(jù)層面處理樣本不均衡問題,對(duì)于少數(shù)類樣本采用上采樣方法并結(jié)合SMOTE 算法,根據(jù)Tomek link 距離合成新樣本。此外,嘗試在其他數(shù)據(jù)集上進(jìn)行測試,以提高模型的泛化能力。

        猜你喜歡
        字節(jié)加密卷積
        No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
        基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
        一種基于熵的混沌加密小波變換水印算法
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        簡談MC7字節(jié)碼
        認(rèn)證加密的研究進(jìn)展
        基于ECC加密的電子商務(wù)系統(tǒng)
        基于格的公鑰加密與證書基加密
        午夜熟女插插xx免费视频| 四虎无码精品a∨在线观看| 国产卡一卡二卡三| 乱码一二区在线亚洲| 熟女系列丰满熟妇av| 国产69精品麻豆久久| 波多野结衣不打码视频| 无码粉嫩虎白一线天在线观看| 久久九九青青国产精品| 中文字幕亚洲视频三区| 99国产精品久久99久久久| 欧美金发尤物大战黑人| 亚洲日本va99在线| 加勒比特在线视频播放| 日韩人妻另类中文字幕| 中国人妻被两个老外三p| 免费无码中文字幕A级毛片| 成人av在线免费播放| 风韵丰满熟妇啪啪区老老熟妇| 色一情一乱一伦一区二区三区日本 | 亚洲av无码久久精品狠狠爱浪潮| 日本成人久久| 亚洲成人免费久久av| 免费a级毛片又大又粗又黑| 国内精品伊人久久久久影院对白| 日本女优中文字幕看片| 久久久精品国产av麻豆樱花| 热re99久久精品国99热| 先锋影音av资源我色资源| 亚洲av五月天天堂网| 国产av剧情刺激对白| 国产操逼视频| 全部免费国产潢色一级| 中文字幕乱码一区在线观看| 精品成在人线av无码免费看| 人妻无码中文专区久久五月婷 | 含紧一点h边做边走动免费视频| 成人天堂资源www在线| 国产人妖赵恩静在线视频| 国产亚洲超级97免费视频| 久久水蜜桃亚洲av无码精品麻豆|