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

基于Deep-IndRNN的DGA域名檢測方法

2020-04-10 02:15:14劉伯成王浩宇李向軍肖聚鑫肖楚霽
南昌大學學報(理科版) 2020年6期
關鍵詞:分類特征實驗

劉伯成,王浩宇,李向軍,*,肖聚鑫,肖楚霽,孔 珂

(南昌大學a.軟件學院,江西 南昌 330047;b.計算機科學與技術系,江西 南昌 330031)

隨著互聯(lián)網(wǎng)技術的快速發(fā)展,網(wǎng)絡已經(jīng)服務于在各個行業(yè),域名的數(shù)量更是與日俱增,惡意域名的檢測變得愈來愈困難且更加重要。域名生成算法(Domain Generation Algorithm,DGA)常常被惡意軟件利用,以提高其與C&C服務器的通信可靠度,從而避免常規(guī)的黑名單檢測。由此可見,DGA域名是惡意軟件的重要特征之一,通過對這一特征的有效分析、檢測,及時準確地確定惡意軟件也成為保證C&C服務器正常通信的重要環(huán)節(jié)。通信安全檢測能力的提升對于構(gòu)建穩(wěn)定、安全的網(wǎng)絡空間也極具現(xiàn)實意義。

DGA檢測初期,安全工作人員通常采用的方法是基于黑名單過濾[1],機器學習、特征統(tǒng)計[2-8]等方法。這些方法往往存在一定的弊端,黑名單過濾方法雖準確率較高,但需要人工對黑名單之外的DGA域名補充,難以解決DGA域名飛速增長帶來的問題;機器學習檢測需通過技術人員實驗構(gòu)造特征值,采用相應的機器學習方法設計檢測算法,實現(xiàn)對未知DGA域名的檢測,但存在人工提取特征工程量大且無法準確提取所需全部特征、檢測速度慢、檢測率低等問題。針對以上問題,研究人員采用深度學習[9]的方法對DGA域名檢測,深度學習具有訓練數(shù)據(jù)量大、無需人工提取特征,在圖像識別、語音識別、自然語言處理等多種應用場景都有顯著的成效。

基于深度學習的DGA域名檢測成為一種新的主流方法[10-15],研究者大多選擇循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)用于DGA域名檢測,例如長短期記憶網(wǎng)絡(Long Short-Term Memory,LSTM)、雙向長短期記憶網(wǎng)絡(Bi-directional Long Short-Term Memory,BiLSTM)等,這些方法可將域名序列化分類。對于LSTM而言,隨著網(wǎng)絡層數(shù)的增加,檢測準確率隨之增高,但訓練與檢測速度會大幅降低。獨立循環(huán)神經(jīng)網(wǎng)絡[16](Independently Recurrent Neural Network,IndRNN),在能夠解決傳統(tǒng) RNN 時間步長過長時的梯度消失和梯度爆炸問題基礎上學習長期依賴關系[17],因其獨立神經(jīng)元的結(jié)構(gòu),當堆疊多層IndRNNs形成深度IndRNN (Deep Independently Recurrent Neural Network,Deep-IndRNN)時也可進行端到端的訓練?;诖?,本文提出一種基于Deep-IndRNN的DGA域名檢測方法。

本文主要貢獻:將IndRNN用于DGA域名檢測,充分利用Deep-IndRNN的特點并結(jié)合單步處理拼接后單向量的方式,提出一種基于Deep-IndRNN的DGA域名檢測方法。方法包括域名分析、域名向量化、上下文信息提取、分類輸出等四個步驟。首先采用詞袋模型對域名向量化,然后通過Deep-IndRNN提取域名字符上下文信息特征,同時將Deep-IndRNN多序列輸入拼接為單向量輸入,以單步處理代替循環(huán)處理,最后,使用Sigmoid分類函數(shù)對域名分類檢測。平衡數(shù)據(jù)集和非平衡數(shù)據(jù)集上的實驗結(jié)果表明,本文方法在保證DGA域名檢測準確率和精確度較高的前提下,訓練和檢測速度有顯著提高。

1 相關工作

DGA惡意域名的檢測問題已經(jīng)上升到國家安全層面,國內(nèi)外研究人員從最初的黑名單篩選,分析DNS查詢數(shù)據(jù),機器學習特征分類到現(xiàn)如今的基于深度學習的神經(jīng)網(wǎng)絡模型預測等,提出了眾多的檢測方法。其中Sato等[1]設計了一種使用DNS流量數(shù)據(jù)和黑名單檢測未知惡意域名方法。Lee等[2]提出DNS失敗圖概念,檢查訪問已知惡意域名的客戶端的DNS查詢信息,通過與已知惡意域名的順序關系和統(tǒng)計共性找到未知的惡意域名。Bilge等[3]基于決策樹算法,通過提取DNS流量中的時間屬性、request及response信息、TTL信息、DNS域名信息等15個特征判別僵尸網(wǎng)絡[18]。Grill等[4]提出一種統(tǒng)計算法,用收集來的NetFlow/IPFIX統(tǒng)計數(shù)據(jù)來檢測DGA域名。Antonakakis等[5]發(fā)現(xiàn)具有相同的DGA算法的域名產(chǎn)生類似的NXDomain,提出一種基于NXDomain特性聚類和分類的檢測算法,聚類算法根據(jù)域名構(gòu)成和相似性對域名聚類,分類算法利用生成的簇給已知DGA域名分類檢測,對于未被分到已知簇的域名,可以推測為一種新型的DGA惡意域名。相比于整個DNS查詢流量,NXDomain流量要小很多,因此輕量級的NXDomain特性檢測算法的檢測速度更快,但是該算法在實際應用時需要一個較大時間窗口的統(tǒng)計信息,無法做到實時檢測。

為方便記憶,通常選擇英文單詞作為合法域名的主體,如“youtobe.com”,“weiko.com”等,而DGA域名為了避免與合法域名沖突,域名字符明顯帶有隨機性。利用DGA域名與合法域名之間的語言特征來分類域名成為檢測DGA域名的新研究方向[15]。Yadav等[6]分析了域名中字母數(shù)據(jù)unigrams和bigrams分別的信息熵,通過將訓練集分為DGA生成集和合法域名集,計算兩個集合中unigrams和bigrams的分布,再通過比較兩個集合的KL達到分類效果。Tong等[7]利用n-gram出現(xiàn)的頻率、熵和分類得到的馬氏距離等域名自身的語義統(tǒng)計測度對DGA域名進行檢測。張維維等[8]提出一種輕量級檢測算法,通過提取域名字符蘊含的詞素特征,在降低內(nèi)存開銷的基礎上能夠快速準確鎖定可疑域名。上述的研究均需要手工提取特征,對于不同類型的DGA要提取不同特征,否則就會存在統(tǒng)計信息不顯著的問題。特征工程是一項十分困難的工作,并且很難保證提取的特征是確切需要的,所以上述的檢測方法準確率也是相對較低。

近幾年,隨著DGA生成算法的不斷改進,生成的惡意域名也不再是一串簡單錯亂的隨機字符,反而越來越“像”合法域名,而上述的檢測方法都是基于惡意域名和合法域名之間存在較明顯的語言特征差異,故無法有效檢測現(xiàn)階段惡意域名。深度學習在計算機視覺,自然語言處理等方面取得了顯著的效果,從自然語言角度展開對DGA域名檢測成為熱門的檢測方法。Woodbridge等[11]利用詞嵌入技術將域名字符轉(zhuǎn)換為向量,然后再使用長短期記憶神經(jīng)網(wǎng)絡LSTM對域名進行分類。LSTM可以很好的學習到字符間前后信息(要在一串字符完全輸入情況下),因此Woodbridge所提出方法無需人工提取特征,便可準確的對DGA域名分類。林思明等[12]提出一種基于BiLSTM的檢測方法,BiLSTM同時考慮域名的過去特征和未來特征,通過將兩個LSTM的正反向序列提取的上下文信息結(jié)合來分類檢測DGA域名,進一步提高分類檢測準確度。劉洋等[13]提出一種基于深度學習的快速DGA域名分類算法,利用多層一維卷積網(wǎng)絡提取域名局部信息特征,再與LSTM提取到域名上下文信息特征融合,將LSTM多序列輸入轉(zhuǎn)化為單向量輸入,進一步提高訓練和檢測速度。

2 基于Deep-IndRNN的DGA域名檢測方法

基于Deep-IndRNN的DGA域名檢測方法包括域名分析、域名向量化、上下文信息提取、分類輸出等四個步驟。方法實現(xiàn)過程將Deep-IndRNN多序列輸入拼接為單向量輸入,以單步處理代替循環(huán)處理,并充分利用Deep-IndRNN能保留長期記憶、有效解決梯度爆炸、多層IndRNNs可有效堆疊并與剩余連接性能較好等優(yōu)勢,從而保證檢測準確率較高的基礎上,提升訓練、檢測速度。

2.1 域名分析

完整的域名通常由兩個或者兩個以上的部分組成,各個部分以英文字符‘·’分隔開。例如“www.csdn.net”、“www.taobao.com”中“net,com”是頂級域名,“csdn,taobao”是二級域名,以此類推在其他域名中還會存在三級、四級域名。DGA域名主要是作為除頂級外的其他級別域名使用,所以將除頂級外其他級別域名作為本文方法的訓練數(shù)據(jù)(如無特別說明,后面所指域名均為除頂級外其他級別域名)。

2.2 域名向量化

將域名作為模型輸入前需將域名向量化,常見的向量化方法包括詞袋模型(Bag-of-Words,BoW)、獨熱(One-Hot)編碼、n元語法(n-gram)等多種編碼方式。n-gram在早期的自然語言處理中常見,但在使用較大的n時會導致向量空間過大,無法使用的同時會造成數(shù)據(jù)稀疏等問題。BoW[19]可以理解為一種直方圖統(tǒng)計,只記錄了字符串中出現(xiàn)的字符,而忽略字符串中的語法和語序等要素,只是作為若干詞匯的集合。本文研究中通過統(tǒng)計數(shù)據(jù)集所有的字符生成字符字典,以鍵值對(字符:數(shù)字)形式存儲,如表1所示:

使用字符字典將域名字符串轉(zhuǎn)換為L長的字符向量,L是數(shù)據(jù)集中最長域名長度,本文設置為59。對于向量長度不足L的在向量前填充 0,以保證模型輸入形狀統(tǒng)一,字符向量化結(jié)果如表2所示:

2.4 上下文信息提取

合法域名和DGA域名都是由n個字符組成的字符串,也是自然語言的一種表現(xiàn)形式。形式雖然自由,但從合法域名和DGA域名在字符排列有序性上的差異可以看出其結(jié)構(gòu)上仍存在上下文關系,在大量數(shù)據(jù)的比對下能夠很準確的發(fā)現(xiàn)兩者存在語言特征差異[20]。

將轉(zhuǎn)化后的字符向量輸入詞嵌入層(Embedding)映射輸出字符向量序列w1:L=w1,w2,w3,…,w4其中wL∈Rd,d為嵌入層維度,本文研究中設置d為128以保留足夠的上下文信息,便于后續(xù)提取信息特征。

表1 字符字典

表2 字符向量化結(jié)果

經(jīng)典的RNN在自然語言處理中能夠很好的做到保留上下文信息,但RNN在訓練學習時隨著時間增加、輸入數(shù)據(jù)的增多,對已往信息感知能力下降,產(chǎn)生梯度消失或者梯度爆炸問題[21]。IndRNN不僅可以解決經(jīng)典的RNN存在的上述問題,同時使用非飽和激活函數(shù)ReLU,訓練之后的性能表現(xiàn)良好[17]。

IndRNN中哈達瑪積(Hadamard)信息流處理具體計算公式如式(1)所示:

ht=σ(Wxt+u⊙ht-1+b)

(1)

其中xt∈RM和ht∈RN分別代表時間步長為t時的輸入和隱藏狀態(tài);循環(huán)權(quán)重u是一個向量;⊙表示Hadamard乘積;σ為激活函數(shù)。在t時刻,每個神經(jīng)元只接受此刻的輸入以及將t-1時刻自身的狀態(tài)作為輸入。對于第n個神經(jīng)元,hn,t隱藏狀態(tài)計算公式如式(2)所示:

hn,t=σ(wnxt+unhn,t-1+bt)

(2)

其中wn和un分別是第n行的輸入權(quán)重和循環(huán)權(quán)重。處于同層的神經(jīng)元相對獨立,通過堆疊多層的IndRNNs來實現(xiàn)神經(jīng)元之間的連接,因其特殊的結(jié)構(gòu)使得每個神經(jīng)元僅在前一時間步從輸入和它自己的隱藏狀態(tài)中接收信息,這是一種每個神經(jīng)元相對獨立的信息處理時空模型。

對于每一層的梯度反向傳播,一個IndRNN的梯度可以獨立計算每個神經(jīng)元,因為它們之間沒有相互作用。在忽略第n個神經(jīng)元hn,t中偏置的情況下,假設其在時間步長T最小的目標是Jn,梯度反向傳播到時間步t為:

(3)

基礎的IndRNN結(jié)構(gòu)如圖1所示:

其中Weight和Recurrent+ReLU表示每一步處理輸入的循環(huán)過程,ReLU是激活函數(shù)。另外,在激活函數(shù)之前或之后也可采用批標準化BN。通過堆疊這種基礎結(jié)構(gòu),可以創(chuàng)建一個深層IndRNN網(wǎng)絡,同一層中的神經(jīng)元彼此獨立,神經(jīng)元之間的相互依賴可以靠層間交互來完成。即下一層的神經(jīng)元會接受上一層所有神經(jīng)元的輸出作為輸入(相當于全連接層)。隨著時間步的增加,提取到的信息在多層IndRNNs之間高效傳播,從而保留更長時間的上下文信息,且輸入(Wxt+b)的處理在不同的時間步上是獨立的,可以擴展到一個卷積的IndRNN,通過卷積運算處理(W*xt,*為卷積運算符),而不是使用全連接的權(quán)重(Wxt)來處理每個時間步驟的輸入。

由上述分析以及文獻[16]中實驗結(jié)果可知,IndRNN解決了梯度隨時間推移而爆炸和消失的問題,可以在不同的時間步長上有效地傳播梯度,因此,Deep-IndRNN能夠提取到更長時間的上下文信息。

hf,t=σ(WfXt+uf⊙hf,t-1+bf)

(4)

hs,t=σ(Wshf,t+us⊙hs,t-1+bs)

(5)

hd,t=σ(Wdhs,t+ud⊙hd,t-1+bd)

(6)

隨著時間步長t的增加,Deep-IndRNN不斷將當前輸入及上一時刻的自身狀態(tài)同時作為輸入,得到的信息在多層IndRNNs之間傳播保留,從而提取到豐富的上下文信息特征,以實現(xiàn)域名分類。

2.4 域名分類

基于Deep-IndRNN的DGA域名檢測方法是一種通過提取域名字符間特征來實現(xiàn)域名分類的檢測方法。域名分類過程如圖2所示:

由圖2可見,基于Deep-IndRNN的DGA域名分類主要步驟包括:

(1) 域名向量化:根據(jù)數(shù)據(jù)集中所有域名包含的字符生成字符字典,利用此字典將域名轉(zhuǎn)換為字符向量作為訓練輸入,具體操作見2.2節(jié)。

(2) Embedding層:嵌入層,利用字符字典對字符向量編碼,映射成字符向量序列w1:L,生成式如式(7)所示:

w1:L=w1,w2,w3…,wL

(7)

L是輸入向量長度,本文為59;w1,w2,w3…,wL是域名中每個字符映射的字符向量,其中wL∈Rd,d為嵌入層維度,本文設置為128;嵌入層輸出w1:L是根據(jù)字符字典生成大小為(L,d)的字符向量序列。同時,本層在學習訓練時可設置屏蔽字符向量因長度不足而填補的0值。

(3) Flatten層:將嵌入層映射得到的w1:L拼接成單向量X,拼接過程如式(8)所示:

X=⊕(w1:L)

(8)

⊕是拼接操作符,將w1:L轉(zhuǎn)換為大小(1,L*d)的單向量,使得Deep-IndRNN在提取上下文信息時采用單步處理,提高訓練、檢測速率。

(4) IndRNNs層:多層IndRNN堆積而成的Deep-IndRNN,本文方法堆積3層IndRNN,隱層大小均為128,默認使用ReLU激活函數(shù)。IndRNN的輸入是三維張量(單個數(shù)據(jù)必須是二維),因此無法將Flatten層輸出直接作為本層的輸入,于是采用Keras中的Lambda方法對上層輸出增維,增維公式如式(9)所示:

X=Lambda(expand_dims(X))

(9)

最后通過隱藏層提取域名上下文信息特征以式(10)形式輸出,具體提取過程見2.3節(jié)。

ht=Deep-IndRNN(Xt)

(10)

Xt表示時間步長為t時的Deep-IndRNN輸入;ht表示時間步長為t時的Deep-IndRNN輸出。

(5) Dense層:全連接層,與Deep-IndRNN中第三層的全部神經(jīng)元連接,實現(xiàn)特征的非線性組合。同時,在Dense與Deep-IndRNN之間使用正則化方法-隨機失活(Dropout),暫時丟棄一部分神經(jīng)元及其連接來控制過擬合問題,本文將神經(jīng)元被丟棄概率設置為0.5[14]。

(6) 輸出:最終模型的輸出是從全連接層直接輸入到二分類函數(shù)Sigmoid。模型輸出如式(11)所示,分類函數(shù)Sigmoid如式(12)所示:

(11)

(12)

在模型訓練過程中使用二元交叉熵作為評價分類結(jié)果的損失函數(shù),二元交叉熵計算公式如式(13)所示:

(13)

向量y為實際目標值,DGA惡意域名為1、合法域名為0。同時,使用Adam優(yōu)化算法最小化損失函數(shù),提高模型性能。

給定n個長度為L的域名,d為嵌入層維度,h為隱層大小,本文方法的時間復雜度分析如下:

(1) 域名向量化:此階段將域名轉(zhuǎn)換成固定長度L=59的向量,故T(n)=O(n*L)=O(n);

(2) Embedding層:將域名向量映射成向量序列,映射方式為矩陣相乘且僅進行一次,其中d=128,故T(n)=O(n*1*L*d)=O(n);

(3) Flatten層:將大小為(n,L,d)向量序列拼接成單向量,T(n)=O(n*L*d)=O(n);

(4) IndRNNs層:n個單向量通過三層的IndRNN,每一層的計算方式與輸入、隱藏及輸出大小有關,且僅進行一次,其中h=128,故T(n)=O(n*(8h2+(L*d)h))=O(n);

(5) Dense層以及輸出:將每個輸入都執(zhí)行h*1次公式(10),故T(n)=O(n*h*1*Sigmoid)=O(n);

除域名向量化外,其他過程均屬于神經(jīng)網(wǎng)絡的前向傳播過程,且模型參數(shù)均已設定為常數(shù),在不考慮機器的計算能力影響下,本方法的計算復雜度僅和樣本數(shù)量n相關,最好情況最壞情況的時間復雜度T(n)=O(5n)=O(n);

綜上,本文提出方法只需要將域名轉(zhuǎn)化為固定長度的向量后作為模型輸入,再依據(jù)訓練后模型中保存的權(quán)重計算便可得到分類檢測結(jié)果,相比傳統(tǒng)的檢測方法更為合理。

3 實驗結(jié)果與分析

3.1 實驗環(huán)境

本文使用Python作為開發(fā)語言,深度模型基于Keras、Tensorflow框架搭建。具體實驗環(huán)境如表3所示:

3.2 實驗數(shù)據(jù)

本文研究中,從Netlab360(http://data.n-etlab.360.com/feeds/dga/dga.txt.)獲取90 wDGA域名,從Alexa(https://www.alexa.com /topsites)獲取90 w合法域名,將DGA域名標記為1,合法域名標記為0,共180 w域名及標簽形成平衡數(shù)據(jù)集其中訓練集與測試集比例4:1非平衡數(shù)據(jù)集合法域名與DGA域名比例5:1,共60w,也按4:1比例劃分訓練集與測試集。數(shù)據(jù)集中部分合法域名、DGA域名樣例如表4所示:

表3 實驗環(huán)境

表4 數(shù)據(jù)集部分樣例

3.2 評價指標

根據(jù)實驗目標設計,選取了準確率(Accuracy)、精確度(Precision)、召回率(Recall)、綜合評價(F1)、ROC(Receiver Operating Characteristic)曲線、AUC(Area Under Curve)值、訓練時間(Train Time,TT)、測試時間(Predict Time,PT)等8個評價指標檢驗方法的有效性和性能,采用了均值(Mean Value,簡記為M)與方差(Variance,簡記為S2)2個統(tǒng)計指標來分析實驗數(shù)據(jù)。相關指標的計算公式如式 (14)~(20) 所示。

True Positive(TP):預測為正例,實際為正例。

False Positive(FP):預測為正例,實際為負例。

True Negative(TN):預測為負例,實際為負例。

False Negative(FN):預測為負例,實際為正例。

(14)

(15)

(16)

(17)

(18)

(19)

ROC曲線是假正率(FPR)和真正率(TPR)為軸的曲線,實現(xiàn)了對FPR和TPR的權(quán)衡度量。其中TPR=Recall,計算公式如式(16)所示,F(xiàn)PR計算公式如式(20)所示:

(20)

ROC是通過分類器返回分數(shù)在不同闕值下計算TPR和FPR進行評估而產(chǎn)生的。將一系列的點對連接成平滑的曲線,就是ROC曲線。AUC是比較ROC曲線的常用度量,常用于二分類評價,其數(shù)值是ROC曲線下面積。AUC=1時表示完美分類,AUC=0.5時表示隨機分類,一般的AUC值都是介于0.5~1之間的。

3.4 實驗參數(shù)

參數(shù)的選擇對于DGA域名檢測的效果是十分關鍵的,本文在大量實驗基礎上得到效果最優(yōu)參數(shù),如表5所示:

除上述參數(shù)外,訓練過程中監(jiān)督驗證集的損失函數(shù)值,若訓練迭代兩次后損失函數(shù)值仍未下降,將學習率衰減為原來的0.8倍;若迭代三次后損失函數(shù)值仍未下降,提前終止訓練以得到最優(yōu)模型。

表5 參數(shù)設置

3.5 平衡數(shù)據(jù)集上實驗結(jié)果與分析

3.5.1 DGA域名檢測效果比對分析

本文將IndRNN用于DGA域名檢測,為驗證本文方法的有效可行性,在平衡數(shù)據(jù)集上設計實施了三組比對實驗,分別構(gòu)建單一IndRNN方法(以下簡記為IndRNN)、不含F(xiàn)latten層的Deep-IndRNN方法(以下簡記為無F深度IndRNN)以及本文方法,從準確率、精確度、召回率、綜合評價F1、訓練時間、測試時間等方面進行了DGA域名檢測效果的比對分析。實驗結(jié)果皆是在相同參數(shù)控制下反復實驗15次得到。

三種方法的準確率隨訓練迭代的變化情況如圖3所示。由于平衡訓練集共144w數(shù)據(jù),使得三種方法在初次訓練迭代時就具有較高的準確率。同時,由于實驗過程中設置了監(jiān)督函數(shù),IndRNN的損失值迭代8次時就已不再下降,提前停止訓練。為與其他兩種方法達到最優(yōu)迭代次數(shù)時的準確率相比較,選取其迭代8次時的準確率作為迭代9~12次時的準確率。

由圖3可見,本文方法的準確率高達99.47%,比IndRNN、無F深度IndRNN分別提高5.3個百分點和0.77個百分點。

為更好分析三種方法的性能,本文從Precision、Recall以及綜合評價F1等方面進行了驗證分析,并根據(jù)多次在平衡數(shù)據(jù)集上訓練后測試的數(shù)據(jù)計算出均值和方差,通過方差分析各類指標的離散程度。表6給出了三種方法各評價指標實驗結(jié)果,其中,綜合評價指標F1通過計算精確度和召回率的均值得到。由表6分析可見,本文方法召回率的均值優(yōu)于IndRNN、無F深度IndRNN,方差略高于無F深度IndRNN。在精確度方面,IndRNN的方差最小,均值卻明顯小于其他兩種方法,本文方法的均值與無F深度IndRNN的均值相當,但方差略高于后者。在綜合評價指標F1上,本文方法比IndRNN提高3.6個百分點,比無F深度IndRNN提高0.02個百分點。這說明,本文方法采用Flatten層將向量序列拼接成單向量并不會造成大量信息在提取過程丟失的問題,反而在準確率、F1等方面表現(xiàn)更好。

表6 3種方法性能比較

同時,對3種方法訓練和測試所耗費的時間進行了實驗比較,具體實驗結(jié)果如表7所示,其中,TT表示在訓練集上單次迭代時間,PT表示在測試集上單次測試時間(無特別說明外,訓練與測試過程均在有GPU加速的環(huán)境下進行)。由表7可知,本文方法的訓練、測試速度最穩(wěn)定且最快,比IndRNN快3.8倍以上;比無F深度IndRNN快10倍以上。

表7 3種方法運行時間比較

以上實驗結(jié)果與分析表明,相比于另兩種方法,本文方法在保證高準確率和精確度的前提下,顯著提高了訓練、檢測速度,具有較好的DGA域名檢測效果。

3.5.2 同類方法性能比對分析

在相同實驗環(huán)境下,使用平衡數(shù)據(jù)集作為實驗數(shù)據(jù),將本文方法與其他五種代表性的同類DGA域名檢測方法進行了性能對比分析。首先對域名數(shù)據(jù)使用字符字典轉(zhuǎn)換成實數(shù)向量;再將向量作為DNN方法、CNN方法、LSTM方法、BiLSTM方法、CNN-LSTM-Concat方法和本文方法的輸入;最后分別按照如下方式構(gòu)造DNN、CNN、LSTM[11]、BiLSTM[12]、CNN-LSTM-Concat[13]及本文方法:

(1) DNN:首先利用嵌入層將字符向量映射成字符向量序列;然后利用DNN提取域名信息特征;最后使用Sigmoid函數(shù)對域名分類。

(2) CNN:首先利用嵌入層將字符向量映射成字符向量序列;然后利用三層CNN提取局部信息特征;最后使用Sigmoid函數(shù)對域名分類。

(3) LSTM[11]:首先利用嵌入層將字符向量映射成字符向量序列;然后利用單一LSTM提取上下文信息特征;最后使用Sigmoid函數(shù)對域名分類。

(4) BiLSTM[12]:首先利用嵌入層將字符向量映射成字符向量序列;然后利用BiLSTM提取上下文信息特征;最后使用Sigmoid函數(shù)對域名分類。

(5) CNN-LSTM-Concat[13]:首先利用嵌入層將字符向量映射成字符向量序列;然后利用CNN提取局部信息特征,利用LSTM提取上下文信息特征,并融合特征;最后使用Sigmoid函數(shù)對域名分類。

(6) 本文方法:首先利用嵌入層將字符向量映射成字符向量序列;然后將序列拼接成單向量后再利用堆疊三層IndRNN的Deep-IndRNN提取上下文信息特征;最后使用Sigmoid函數(shù)對域名分類。

圖4~5為本文方法與同類檢測方法在平衡訓練集上的準確率、損失值隨訓練迭代的變化情況,實驗結(jié)果是反復實驗15次的平均值。由圖4~5可見,4種方法在平衡訓練集上都能夠很好的擬合,收斂的速度也都相對較快。相比之下,四種方法中,CNN- LSTM-Concat最先收斂,且準確率、損失值達到最優(yōu)分別為99.52%、0.0142;本文方法在訓練初期表現(xiàn)良好,在最優(yōu)參數(shù)控制下最終準確率高達99.47%,損失值為0.015 0。在準確率方面,本文方法比DNN、CNN、LSTM分別提高3.42個百分點、0.65個百分點、0.27個百分點,與BiLSTM、CNN-LSTM-Concat的準確率相當。

圖6給出了6種方法的ROC曲線及AUC值,從圖中可見,本文方法、CNN-LSTM-Concat以及BiLSTM的ROC曲線幾乎重合,最靠近左上方的是本文方法的ROC曲線,其TPR最先達到99%以上,最右下方的是DNN的ROC曲線,LSTM、CNN的ROC曲線位于中間。6種方法除DNN外的AUC值均達到0.995以上,分類效果都很良好。

表8給出了6種方法在平衡數(shù)據(jù)集上的性能比較結(jié)果,表中數(shù)據(jù)是在訓練后在測試集上實驗15次的結(jié)果。由表8可知,在召回率方面,本文方法的均值優(yōu)于DNN、CNN、LSTM、BiLSTM、CNN-LSTM-Concat,方差略高于CNN、LSTM、BiLSTM。在精確度方面,本文方法的均值比DNN、CNN、LSTM、BiLSTM分別提高2.65,0.3,0.18,0.03個百分點,僅比CNN-LSTM-Concat低0.03個百分點,相差非常?。挥删_度方差比較可知,本文方法的精確度穩(wěn)定性略低于CNN、LSTM和BiLSTM。在綜合評價F1方面,本文方法比DNN、CNN、LSTM、BiLSTM、CNN-LSTM-Concat分別提高3.5,0.63,0.2,0.05,0.01個百分點。

綜合比較6種方法的均值和方差,可以看出本文方法、BiLSTM以及CNN-LSTM-Concat在平衡測試集上的性能大體相同,但各有優(yōu)劣,導致這種情況原因可能為:本文方法沒有考慮域名字符局部信息特征的影響,在準確率、精確度方面要略差于CNN-LSTM-Concat;LSTM、BiLSTM僅考慮域名字符的上下文信息特征,由于BiLSTM通過堆疊正向LSTM與反向LSTM雙向循環(huán)處理向量序列,既考慮上文對下文的影響、也考慮下文度上文的影響、所以能比LSTM獲取到更多的信息特征;本文方法堆疊IndRNN形成深層網(wǎng)絡,通道間的信息會隨時間在多層IndRNNs之間傳播探索,從而保留更長時間的上下文信息,在提取特征上較優(yōu)于LSTM、BiLSTM。因本文方法使用Flatten將向量序列進行拼接,難免會造成少量信息丟失,所以在性能穩(wěn)定性上略差于結(jié)構(gòu)較為簡單的CNN、LSTM、BiLSTM。

表8 平衡數(shù)據(jù)集下6種方法性能比較

由圖4~6以及表8可以看出,除DNN外,本文方法與其他同類方法的分類檢測效果都很良好,雖在部分評價指標上各有優(yōu)劣,但整體差距非常小,無法做出確切比較。為體現(xiàn)本文方法較同類檢測方法更好的實用性,又設計了6種方法在平衡數(shù)據(jù)集上訓練和測試所耗費時間的實驗,實驗結(jié)果如表9所示。

表9 6種方法運行時間比較

考慮到檢測方法需應用于實際環(huán)境,所以PT需在普通用戶環(huán)境測試,TT仍為存在GPU加速環(huán)境的實驗數(shù)值。由表9可知,DNN的TT最少,為27.7s。本文方法的PT表現(xiàn)最優(yōu),為21.1s,在實際環(huán)境中測試速度最快。同時,根據(jù)方差可以看出本文方法PT的離散程度也是最小,測試速度最穩(wěn)定。本文方法在訓練速度上比CNN、LSTM、BiLSTM、CNN-LSTM-Concat分別快1.15,6.90,18.92,1.69倍;在測試速度上要明顯優(yōu)于其他5種方法,分別快1.64,4.63,3.54,14.08,5.89倍。

為驗證本文方法在測試速度上優(yōu)勢真實有效,從平衡數(shù)據(jù)集中分別抽取500,5 000,50 000,500 000個域名作為測試數(shù)據(jù),比較本文方法與同類方法在不同數(shù)量級數(shù)據(jù)上檢測速度,比較結(jié)果如表10所示,其中PT在數(shù)值上等于普通用戶環(huán)境測試15次平均值。從表10可以直觀的看出本文方法在不同數(shù)量級數(shù)據(jù)的測試時間均表現(xiàn)最優(yōu),檢測速度提高幅度顯著,比另外5種同類方法更具實用性。

分析其原因為:DNN結(jié)構(gòu)最簡單,故訓練、檢測速度較快且最穩(wěn)定;本文方法與CNN-LSTM-Concat在使用RNN時都將向量序列拼接成單向量后輸入,以單步處理代替循環(huán)處理,所以在速度上要快于LSTM和BiLSTM;CNN和CNN-LSTM-Concat等在模型中使用卷積神經(jīng)網(wǎng)絡CNN,在普通用戶環(huán)境(無GPU)是無法被加速運行的,因此在測試速度上明顯不如本文方法。

表10 6種方法在不同數(shù)量級數(shù)據(jù)的測試時間比較

經(jīng)測試本文方法在普通用戶環(huán)境下每秒鐘大概可檢測17 000多個域名,超過校園級流量的實時監(jiān)測惡意域名的速度標準,能夠完成更高級別流量的實時監(jiān)測任務。

3.6 非平衡數(shù)據(jù)集上實驗結(jié)果與分析

為模仿合法域名數(shù)量遠遠超過DGA域名數(shù)量的真實環(huán)境,本文在平衡數(shù)據(jù)集中抽取50w合法域名與10 wDGA域名組成非平衡數(shù)據(jù)集,并按照4:1比例劃分訓練集與測試集。

在非平衡數(shù)據(jù)集下對本文方法與同類方法中性能表現(xiàn)較好的LSTM、BiLSTM、CNN-LSTM-Concat設計相關實驗,實驗過程除使用的數(shù)據(jù)集與3.5.2節(jié)不一樣,其他條件都一致。選擇Precision、Recall、F1以及ROC曲線作為評價指標,以下圖表中數(shù)據(jù)均是在非平衡數(shù)據(jù)集下反復實驗15次得到。

表11給出了4種方法在非平衡數(shù)據(jù)集上的性能比較結(jié)果,與在平衡數(shù)據(jù)集實驗結(jié)果相似,本文方的召回率均值和綜合評價F1優(yōu)于其他3種方法。在精確度方面,本文方法的方差最優(yōu),均值比LSTM、BiLSTM分別提高0.26,0.02個百分點,僅比CNN-LSTM-Concat低0.04個百分點,相差非常小。在綜合評價F1方面,本文方法分別比其他3種方法分別高1.3,0.13,0.06個百分點。

表11 非平衡數(shù)據(jù)集下4種方法性能比較

圖7是4種方法在非平衡數(shù)據(jù)集上的ROC曲線及AUC值,由圖中可以看出,4種方法在非平衡數(shù)據(jù)集上也都能表現(xiàn)出較好的分類效果,本文方法的ROC曲線在BiLSTM、LSTM之上,僅在拐點處比CNN-LSTM-Concat的ROC曲線稍偏下一點,其他部分幾乎與CNN-LSTM-Concat重合;在AUC值方面,本文方法比BiLSTM、LSTM分別提高0.004 2、0.007 8,與CNN-LSTM-Concat的AUC值相當,僅差0.001,幾乎可以忽略不計。

實驗總結(jié):平衡數(shù)據(jù)集和非平衡數(shù)據(jù)集下實驗結(jié)果與分析表明,一方面,本文方法能有效進行DGA域名檢測且檢測效果優(yōu)良。另一方面,相比于DNN、CNN、LSTM、BiLSTM、CNN-LSTM-Concat等同類DGA域名檢測方法,本文方法能在保證高準確率和精確度的前提下,有效釋放深度學習時占用的GPU、CPU等系統(tǒng)資源,顯著提高訓練、檢測速度,實用性較強且能更好地完成實際分類檢測任務。

4 結(jié)語

本文提出了一種基于Deep-IndRNN的DGA域名檢測方法。該方法將嵌入層映射得到的向量序列拼接成單向量,以向量單步處理代替向量序列循環(huán)處理,并充分利用多層IndRNNs可以有效堆疊,梯度在不同時間步都能有效傳播等優(yōu)勢,在能夠提取到豐富的域名上下文信息特征的同時減少方法運行時間,從而更好地快速準確檢測DGA域名,更具實用性。實驗結(jié)果表明,在相同實驗環(huán)境和數(shù)據(jù)集下,與同類DGA域名檢測方法中性能表現(xiàn)較好的LSTM、BiLSTM、CNN-LSTM-Concat相比,本文提出的方法在準確率、精確度、召回率、F1、ROC等評價指標不低于同類檢測方法的前提下,在TT、PT等評價指標方面的表現(xiàn)明顯更優(yōu),顯著提高了訓練、檢測速度,方法是有效可行的,且在實際應用中能快速準確完成檢測任務。在今后的工作中,可以考慮提取域名字符局部信息特征并與上下文信息特征融合,在保證方法具有高訓練、檢測速度的前提下,更準確的檢測DGA域名,以適用于更高流量級的實際應用。

猜你喜歡
分類特征實驗
記一次有趣的實驗
分類算一算
如何表達“特征”
做個怪怪長實驗
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數(shù)據(jù)分析中的分類討論
教你一招:數(shù)的分類
抓住特征巧觀察
NO與NO2相互轉(zhuǎn)化實驗的改進
主站蜘蛛池模板: 在线观看免费黄色网址| 国产乱子伦精品视频| 成人av手机在线观看| 青草娱乐极品免费视频| 国产h视频在线观看视频| 中文字幕久久亚洲一区| 找国产毛片看| a级毛片网| 成人91在线| 97国产在线观看| 综合亚洲网| 亚洲精品黄| 99r在线精品视频在线播放| 国产黄色免费看| 亚洲精品天堂在线观看| 狠狠色婷婷丁香综合久久韩国| 九九九久久国产精品| 美女亚洲一区| 日本午夜三级| 97影院午夜在线观看视频| 丁香六月激情综合| 亚洲av无码久久无遮挡| 青青草国产精品久久久久| 国产人前露出系列视频| 欧美日韩国产在线播放| 久久人人97超碰人人澡爱香蕉 | 日韩免费成人| 国产成人综合亚洲网址| 91 九色视频丝袜| 久久香蕉国产线看观| 国产一区二区三区夜色| 免费a在线观看播放| 色天天综合| 国产精品主播| 重口调教一区二区视频| 伊人无码视屏| 日韩精品成人在线| 国产日本欧美亚洲精品视| 国产农村妇女精品一二区| 视频在线观看一区二区| 毛片在线播放a| 国产浮力第一页永久地址| 无码福利视频| 99精品视频在线观看免费播放| 国产极品美女在线观看| a级高清毛片| 九九免费观看全部免费视频| 亚洲精品第一在线观看视频| 中文字幕久久波多野结衣| 久久婷婷五月综合97色| 美女被狂躁www在线观看| 影音先锋亚洲无码| 在线亚洲精品福利网址导航| 亚洲乱码在线视频| 国产精品欧美激情| 色综合中文字幕| 亚洲成人在线免费观看| 国产激情无码一区二区APP| 国产欧美视频综合二区| 污网站免费在线观看| 亚洲天堂精品在线| 国产又大又粗又猛又爽的视频| AV无码一区二区三区四区| 2019年国产精品自拍不卡| 久久鸭综合久久国产| 久久综合九色综合97网| 亚洲一区二区约美女探花| 国产成人资源| 国产污视频在线观看| 少妇被粗大的猛烈进出免费视频| 九九热视频精品在线| 国产精品吹潮在线观看中文| 国产欧美综合在线观看第七页| 91久久青青草原精品国产| 国产午夜在线观看视频| V一区无码内射国产| 国产乱子伦无码精品小说| 国产91精品久久| 中文字幕人成人乱码亚洲电影| 久热re国产手机在线观看| 高潮毛片无遮挡高清视频播放| 高清色本在线www|