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

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

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

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

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

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

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

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

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

1 相關工作

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

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

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

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

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

2.1 域名分析

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

2.2 域名向量化

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

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

2.4 上下文信息提取

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

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

表1 字符字典

表2 字符向量化結果

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

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

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

(1)

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

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

(2)

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

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

(3)

基礎的IndRNN結構如圖1所示:

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

由上述分析以及文獻[16]中實驗結果可知,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不斷將當前輸入及上一時刻的自身狀態同時作為輸入,得到的信息在多層IndRNNs之間傳播保留,從而提取到豐富的上下文信息特征,以實現域名分類。

2.4 域名分類

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

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

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

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

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

(7)

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

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

X=⊕(w1:L)

(8)

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

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

X=Lambda(expand_dims(X))

(9)

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

ht=Deep-IndRNN(Xt)

(10)

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

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

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

(11)

(12)

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

(13)

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

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

(1) 域名向量化:此階段將域名轉換成固定長度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層以及輸出:將每個輸入都執行h*1次公式(10),故T(n)=O(n*h*1*Sigmoid)=O(n);

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

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

3 實驗結果與分析

3.1 實驗環境

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

3.2 實驗數據

本文研究中,從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域名及標簽形成平衡數據集其中訓練集與測試集比例4:1非平衡數據集合法域名與DGA域名比例5:1,共60w,也按4:1比例劃分訓練集與測試集。數據集中部分合法域名、DGA域名樣例如表4所示:

表3 實驗環境

表4 數據集部分樣例

3.2 評價指標

根據實驗目標設計,選取了準確率(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個統計指標來分析實驗數據。相關指標的計算公式如式 (14)~(20) 所示。

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

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

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

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

(14)

(15)

(16)

(17)

(18)

(19)

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

(20)

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

3.4 實驗參數

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

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

表5 參數設置

3.5 平衡數據集上實驗結果與分析

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

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

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

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

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

表6 3種方法性能比較

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

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

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

3.5.2 同類方法性能比對分析

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

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

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

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

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

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

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

圖4~5為本文方法與同類檢測方法在平衡訓練集上的準確率、損失值隨訓練迭代的變化情況,實驗結果是反復實驗15次的平均值。由圖4~5可見,4種方法在平衡訓練集上都能夠很好的擬合,收斂的速度也都相對較快。相比之下,四種方法中,CNN- LSTM-Concat最先收斂,且準確率、損失值達到最優分別為99.52%、0.0142;本文方法在訓練初期表現良好,在最優參數控制下最終準確率高達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種方法在平衡數據集上的性能比較結果,表中數據是在訓練后在測試集上實驗15次的結果。由表8可知,在召回率方面,本文方法的均值優于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個百分點,相差非常小;由精確度方差比較可知,本文方法的精確度穩定性略低于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在平衡測試集上的性能大體相同,但各有優劣,導致這種情況原因可能為:本文方法沒有考慮域名字符局部信息特征的影響,在準確率、精確度方面要略差于CNN-LSTM-Concat;LSTM、BiLSTM僅考慮域名字符的上下文信息特征,由于BiLSTM通過堆疊正向LSTM與反向LSTM雙向循環處理向量序列,既考慮上文對下文的影響、也考慮下文度上文的影響、所以能比LSTM獲取到更多的信息特征;本文方法堆疊IndRNN形成深層網絡,通道間的信息會隨時間在多層IndRNNs之間傳播探索,從而保留更長時間的上下文信息,在提取特征上較優于LSTM、BiLSTM。因本文方法使用Flatten將向量序列進行拼接,難免會造成少量信息丟失,所以在性能穩定性上略差于結構較為簡單的CNN、LSTM、BiLSTM。

表8 平衡數據集下6種方法性能比較

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

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

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

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

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

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

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

3.6 非平衡數據集上實驗結果與分析

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

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

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

表11 非平衡數據集下4種方法性能比較

圖7是4種方法在非平衡數據集上的ROC曲線及AUC值,由圖中可以看出,4種方法在非平衡數據集上也都能表現出較好的分類效果,本文方法的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,幾乎可以忽略不計。

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

4 結語

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

猜你喜歡
分類特征實驗
記一次有趣的實驗
分類算一算
如何表達“特征”
做個怪怪長實驗
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
抓住特征巧觀察
NO與NO2相互轉化實驗的改進
主站蜘蛛池模板: 中文字幕色在线| 国产午夜无码专区喷水| 国内精品视频| 久久国产亚洲偷自| 欧美色图第一页| 国产一级特黄aa级特黄裸毛片| 国产91视频免费| 免费看a毛片| 免费三A级毛片视频| 日韩欧美成人高清在线观看| 老司机午夜精品网站在线观看| 国产一级妓女av网站| igao国产精品| 中文字幕va| 四虎国产永久在线观看| 免费在线成人网| 国产中文一区二区苍井空| 99精品高清在线播放| 亚洲人成影院在线观看| 中文字幕免费视频| 亚洲综合狠狠| 亚洲人成网站观看在线观看| 人人爱天天做夜夜爽| 国产爽爽视频| 久久综合结合久久狠狠狠97色| 亚洲色欲色欲www在线观看| 欧美区一区二区三| 国产日本欧美在线观看| 久久9966精品国产免费| 伊人色天堂| 人人爽人人爽人人片| 色综合手机在线| 中文字幕调教一区二区视频| 国产在线视频二区| 国产成人精品视频一区二区电影| 毛片三级在线观看| 久久国产精品波多野结衣| 五月激情婷婷综合| 中文字幕自拍偷拍| 99久久免费精品特色大片| 国产精品国产三级国产专业不| 免费观看国产小粉嫩喷水| 亚洲首页在线观看| 亚洲欧美日韩高清综合678| 高h视频在线| 婷婷午夜天| 日本手机在线视频| 亚洲不卡影院| 在线国产欧美| 九色最新网址| 久久久久人妻一区精品| 色偷偷综合网| 国产国模一区二区三区四区| 亚洲无码四虎黄色网站| 五月天香蕉视频国产亚| 97免费在线观看视频| 东京热一区二区三区无码视频| 成年片色大黄全免费网站久久| 国产精品久久久久久久久kt| 亚洲一区无码在线| 一级福利视频| 欧美日本在线| 国产熟女一级毛片| 思思热精品在线8| 免费观看国产小粉嫩喷水| 欧美日韩中文国产va另类| 国产高清不卡视频| 国产成人1024精品| 19国产精品麻豆免费观看| 欧美精品色视频| 国产成人久视频免费| 18禁影院亚洲专区| 欧美精品另类| 伊人网址在线| 国产69精品久久久久孕妇大杂乱| 久久久久国产一级毛片高清板| 亚洲中文字幕无码爆乳| 人妻丰满熟妇αv无码| 精品国产福利在线| 激情综合网激情综合| 欧美三级自拍| 久久久久国产一区二区|