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

基于深度學習的惡意DGA域名檢測

2021-03-23 09:38:24王志強李舒豪池亞平張健毅
計算機工程與設計 2021年3期
關(guān)鍵詞:單詞深度檢測

王志強,李舒豪,池亞平+,張健毅

(1.北京電子科技學院 網(wǎng)絡空間安全系,北京 100070;2.國家信息中心 博士后科研工作站,北京 100045;3.公安部第三研究所 信息網(wǎng)絡安全重點實驗室,北京 100741)

0 引 言

Yu B等[1]指出,黑客通過域名產(chǎn)生算法(domain gene-ration algorithm,DGA)產(chǎn)生DGA惡意域名,竊取用戶主機上的個人信息和商業(yè)機密。目前主要使用深度學習來檢測DGA域名。如Woodbridge J等[2]和Bharathi B等[3]使用了循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN)中的長短期記憶網(wǎng)絡(long short-term memory,LSTM)對域名進行檢測。Saxe J等[4]使用了卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)結(jié)構(gòu)進行檢測。Dhingra B等[5]同時使用雙向LSTM檢測。Vosoughi S等[6]和劉洋等[7]將層疊CNN結(jié)構(gòu)與LSTM結(jié)構(gòu)進行結(jié)合。Zhang X等[8]單獨使用了層疊CNN結(jié)構(gòu)。裴蘭珍等[9]將CNN結(jié)構(gòu)與門控循環(huán)單元結(jié)合。基于深度學習的檢測方法使用深度學習網(wǎng)絡進行特征的自動提取。但是缺乏對詞組信息的分析,無法提取更深層次的信息。左雯[10]設計了基于關(guān)鍵詞的惡意域名檢測模型,結(jié)合詞嵌入技術(shù)與GRU模型進行檢測。楊路輝等[11]改進了檢測算法,在CNN結(jié)構(gòu)上增加了提取深層字符級特征的卷積分支。該類方法在提取域名特征方法存在不足,難以同時提取字符和詞組中包含的特征。Le H等[12]結(jié)合了字符嵌入與詞嵌入技術(shù),在向量嵌入階段改進了詞嵌入方式,同時提取域名的字符與詞組的特征。其使用固定的CNN結(jié)構(gòu)對域名進行檢測,無法根據(jù)輸入向量的維度調(diào)整模型參數(shù),很難在大范圍內(nèi)提取深層特征。在此基礎上,本文研究域名的嵌入表示方法,提取域名攜帶的深層次信息,并且設計檢測網(wǎng)絡結(jié)構(gòu),旨在根據(jù)輸入數(shù)據(jù)動態(tài)調(diào)整網(wǎng)絡參數(shù),從而獲得更優(yōu)的檢測效果。

1 域名檢測研究

在當前網(wǎng)絡空間安全形勢下,黑客往往使用域名產(chǎn)生算法獲取大量惡意域名,通過這些惡意域名與命令控制中心進行通信,從而竊取受感染主機的信息,導致用戶財產(chǎn)受到損失。隨機產(chǎn)生的惡意域名有效避開了基于“黑名單”的傳統(tǒng)檢測方法,傳統(tǒng)的檢測方法難以及時維護,在當前網(wǎng)絡空間形勢下不再適用。因此,如何有效地識別和檢測此類惡意域名成為網(wǎng)絡安全領(lǐng)域的研究重點。目前針對惡意域名的檢測方法大致可以分為兩類,分別是傳統(tǒng)機器學習檢測方法和基于深度學習的檢測方法。傳統(tǒng)機器學習方法需要對特征進行人工選取,依賴于專家的經(jīng)驗,黑客可以巧妙地修改域名中某些字段的信息來規(guī)避該檢測方法。并且該方法在更新維護方面存在局限性,難以適用于當前復雜多變的網(wǎng)絡場景。

針對上述問題,本文在現(xiàn)有的深度學習架構(gòu)上,提出了基于動態(tài)卷積算法(dynamic convolutional neural network,DCNN)的檢測方法。深度卷積模型是指將經(jīng)典的卷積層進行層疊排布,使用多層卷積對數(shù)據(jù)進行處理,挖掘深層次的有用信息。本文使用的基于DCNN的檢測模型整體架構(gòu)如圖1所示。因為待檢測域名中包含的字符數(shù)較少,區(qū)別于文本信息,因此本文適當縮減了卷積層的個數(shù),在整個檢測模型中使用了兩層卷積層。這樣做一方面可以簡化檢測模型,另一方面可以縮減模型訓練時間。首先,輸入的域名經(jīng)過預處理后,輸入到嵌入層,得到適合的向量表示。然后,這些向量在動態(tài)卷積層中訓練。動態(tài)卷積層包含兩層卷積層以及折疊層和池化層。最后,數(shù)據(jù)經(jīng)過一層全連接層,得到檢測結(jié)果。本章將介紹實驗中涉及到的數(shù)據(jù)預處理和向量嵌入方案。

圖1 基于DCNN的檢測模型

1.1 數(shù)據(jù)預處理

基于深度學習的檢測技術(shù)無需手動提取特征,僅以域名作為輸入。域名在訓練之前,需要經(jīng)過以下預處理過程:首先移除整個數(shù)據(jù)集中重復的域名和非法域名,其次將域名中包含的字符串轉(zhuǎn)換為小寫字母。對每條域名的標簽使用“獨熱編碼”,即惡意域名編碼為“10”,正常域名編碼為“01”。對于域名中包含的字符串,根據(jù)嵌入方式的不同,進行不同的后續(xù)處理。

如果采用字符嵌入作為向量嵌入方法,則需要將每個字符替換為相對應的ASCII碼(American standard code for information interchange)。如果采用詞嵌入的方式,需要對域名中的字符串進行分詞,用分割后的單詞建立一個字典,最后將域名字符串中包含的單詞替換為字典中相對應的索引。上述步驟完成以后,需要對得到的域名向量進行填充或者截短,使每條代表域名的向量保持相同的長度。

1.2 嵌入方式

(1)字符級別嵌入與單詞級別嵌入

嵌入方式是自然語言處理中的一個基本概念,是指將域名中包含的原始字符串通過特定的方式,映射為多維向量,深度學習模型使用嵌入后得到的向量進行訓練。本文使用了卷積神經(jīng)網(wǎng)絡,卷積神經(jīng)網(wǎng)絡從域名的字符級別或單詞級別的嵌入向量中學習有用信息。

如果使用字符級別的嵌入方式,需要先識別域名中包含的所有字符,不妨設每條域名包含長度為L1的字符,對于長度不足或超過L1的域名使用0進行填充或截短,每個字符轉(zhuǎn)換成一個k維的向量。每個字符的向量表示使用隨機數(shù)進行初始化,在訓練的過程中學習得到。字符的向量表示存儲在字符嵌入矩陣EMc∈RM×k,其中M表示訓練數(shù)據(jù)集中出現(xiàn)的所有字符數(shù),字符嵌入矩陣中每行表示一個字符的向量表示。通過上述操作,一條包含L1個字符的域名d轉(zhuǎn)換成一個L1行k列的矩陣,即d→DNc∈RL1×k。

如果使用單詞級別的嵌入,首先需要識別域名中包含的所有單詞,單詞的個數(shù)取決于數(shù)據(jù)集的大小。不妨設每條域名包含L2個單詞,對于長度不足或超過L2的域名,使用進行填充或截短。和字符嵌入類似,每個單詞將被轉(zhuǎn)換成一個k維的向量。每個單詞的向量表示使用隨機數(shù)進行初始化,隨后在訓練的過程中學習得到。單詞的向量表示存儲在單詞嵌入矩陣EMw∈RM′×k,M′表示訓練數(shù)據(jù)集中出現(xiàn)的所有單詞數(shù),單詞嵌入矩陣中每行即是一個單詞的向量表示。通過上述操作,一條包含L2個單詞的域名d轉(zhuǎn)換成一個L2行k列的矩陣,d→DNw∈RL2×k。

(2)基于字符嵌入的高級詞嵌入

本文借鑒了Le H等[12]的研究方法,使用了高級詞嵌入技術(shù),其結(jié)合了字符嵌入和詞嵌入的優(yōu)點,在此基礎上進行了改進,主要體現(xiàn)在兩方面。

1)將域名包含的特殊字符視為一個單詞進行處理。這樣做的原因是,域名中頻繁出現(xiàn)的特殊字符,往往包含一些有用信息,這些信息可以用作判斷域名是否惡意。

2)上述詞嵌入方法在遇到訓練集之外的新詞時無法進行嵌入,因此無法獲得訓練集中新詞的信息。為了解決這個問題,基于字符嵌入的高級詞嵌入除了獲取詞嵌入表示,另外獲取了每個詞中包含的字符嵌入表示。具體來說,高級詞嵌入方法獲取詞嵌入矩陣EMw∈RL2×k和字符嵌入矩陣EMc∈RL1×k,獲取矩陣EMc是為了更有效提取單詞中包含的有用信息。當對一條域名進行檢測時,首先通過EMw獲取該域名的詞嵌入表示DNw∈RL2×k。 不妨設每個單詞包含L3個字符,使用EMc將每個單詞表示為一個L3×k的矩陣,將這個矩陣逐行相加,得到1×k的向量。上述操作應用到域名包含的L2個單詞上,最終得到該域名字符級別的詞嵌入表示DNcw∈RL2×k。 域名的最終表示為兩個矩陣之和,即DNw+DNcw。 基于字符嵌入的高級詞嵌入的示例如圖2所示,為說明問題,此處設每條域名包含8個詞,每個詞包含5個字符,1個字符嵌入后得到1×5的向量,1個詞嵌入后同樣得到1×5的向量。高級詞嵌入包含兩個分支。第一個分支是詞嵌入,通過詞嵌入矩陣,每條域名經(jīng)嵌入后得到8×5的矩陣。第二個分支是字符嵌入,因為詞包含5個字符,每個詞經(jīng)字符嵌入矩陣得到 5×5 的矩陣。又因為一條域名中包含8個詞,所以得到 8×5×5 的矩陣。通過將5個矩陣對應行相加,得到8×5的基于字符的詞嵌入矩陣。最后將詞嵌入矩陣和基于字符的詞嵌入矩陣相加,得到最終表示。高級詞嵌入方法有助于獲取測試集中新詞的有用信息,有效提升檢測效果。

圖2 基于字符嵌入的高級詞嵌入示例

2 神經(jīng)網(wǎng)絡模型

2.1 卷積神經(jīng)網(wǎng)絡

卷積神經(jīng)網(wǎng)絡原本被用于圖像處理領(lǐng)域,用來處理輸入的像素信息,識別圖像模式。后來一維卷積網(wǎng)絡被用于字符級別的文本分類問題。研究人員提出了用于處理自然語言信息的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)。該網(wǎng)絡結(jié)構(gòu)包含6個層疊排布的卷積層。因為相對于自然語言,域名長度較短,并且不包含完整語法結(jié)構(gòu),因此本文將層疊的卷積層結(jié)構(gòu)縮短至2層,減少每層卷積包含的卷積核數(shù)量。

2.2 動態(tài)卷積神經(jīng)網(wǎng)絡

本小節(jié)描述本文使用的動態(tài)卷積算法,用于DGA惡意域名的檢測。本文對傳統(tǒng)的深度卷積結(jié)構(gòu)進行改進,新增加了折疊層,并且將池化層替換為動態(tài)k值池化和最大ktop值池化。動態(tài)卷積算法由以下幾個部分組成,分別是卷積層、折疊層、動態(tài)k值池化層、最大ktop值池化層、全連接層。動態(tài)卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)示例如圖3所示,為便于說明,設嵌入層維度是4,該網(wǎng)絡包含兩層卷積,每層卷積有兩個特征映射。第一層卷積使用寬度為3的卷積核,第二層卷積使用寬度為2的卷積核。兩個池化層中的k值分別取5和3。

圖3 動態(tài)卷積網(wǎng)絡結(jié)構(gòu)示例

(1)卷積層

卷積層對輸入的數(shù)據(jù)進行卷積運算,從中提取出有用的信息。輸入矩陣u∈Rd×s,其中s代表每條域名的長度,d代表每個單詞嵌入后的維度。若使用一維卷積,需訓練的參數(shù)矩陣為v∈Rd×m,m代表卷積核寬度。輸出矩陣c的維度是d×(s+m-1)。 若使用二維卷積,需訓練的參數(shù)矩陣為v′∈Rd×m,m代表卷積核寬度。輸出矩陣c′的維度是d×(s+m-1)×n,n代表卷積核數(shù)目。

(2)折疊層

折疊層對上一層輸出的稀疏矩陣進行處理。本文使用一種簡單的方法,將矩陣進行折疊。具體來講,就是將矩陣的相鄰兩行進行相加,原本d行的矩陣通過折疊后變?yōu)閐/2行。這種方法無需引入?yún)?shù),縮減了矩陣的大小,將稀疏矩陣變?yōu)槌砻芫仃嚒?/p>

(3)動態(tài)k值池化

動態(tài)k值池化中,k值是一個函數(shù),與輸入字符串長度和網(wǎng)絡深度有關(guān)。本文選取以下函數(shù)對k值進行計算

(1)

(4)最大ktop值池化

對一個長度為p的序列q∈Rp,最大ktop值池化選取序列q中最大的ktop個值為子序列,子序列中元素的順序?qū)蛄衠中的順序。ktop值是固定的超參數(shù),按照經(jīng)驗,ktop值取為4。最大ktop值池化提取出不同位置的ktop個最具代表性的特征,并且保持特征的順序不變。最大ktop值池化應用于動態(tài)卷積神經(jīng)網(wǎng)絡的最后一層,使得動態(tài)卷積網(wǎng)絡的輸出與輸入的字符串長度無關(guān)。卷積處理完畢后,將數(shù)據(jù)輸入全連接層進行訓練,最后輸出結(jié)果。

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

本文收集了Bambenek網(wǎng)站2019年5月16日當天約83萬條DGA惡意域名,這些惡意域名來源于現(xiàn)實網(wǎng)絡。由于這些惡意域名中包含部分被錯誤判斷的正常域名,可能影響模型訓練效果,因此本文從中選取了前30萬條高可信度DGA惡意域名用于訓練,另外選取7.5萬條惡意域名用于驗證與測試。另外,本文收集了Alexa網(wǎng)站2019年5月17日公布的排名前100萬的域名作為正常域名。Alexa從網(wǎng)站訪問量及訪問次數(shù)等方面對域名進行綜合排名,其中包含了該網(wǎng)站的頂級域名和次級域名。在實驗中,本文從中挑選了與惡意域名數(shù)目相當?shù)那?0萬條正常域名用于訓練,另外選取7.5萬條正常域名用于驗證與測試。本文隨機劃分收集到的數(shù)據(jù)集,將80%的數(shù)據(jù)用于訓練,10%的數(shù)據(jù)用于訓練過程中進行驗證,10%的數(shù)據(jù)用于最終測試。數(shù)據(jù)集劃分見表1,本文總共使用75萬條域名進行訓練。其中訓練集占80%。驗證集和測試集各占10%。本次實驗所使用環(huán)境配置見表2。

表1 數(shù)據(jù)集劃分

表2 實驗環(huán)境配置

在以下實驗中,本文將數(shù)據(jù)集分為多個批次進行訓練,每個批次包含100條域名,總共訓練10輪。其它的實驗參數(shù)分別是:根據(jù)不同的實驗,每條域名填充后的長度設為75,向量嵌入維度設為32。第一層卷積核的寬度設為3,第二層卷積核的寬度設為2。另外,本文使用了Adam(adaptive moment estimation)算法進行學習和計算網(wǎng)絡結(jié)構(gòu)的各層參數(shù)。

為了說明基于DCNN的檢測方法的檢測效果,本文使用了常規(guī)的深度卷積方法作為對比實驗。深度卷積方法使用常規(guī)的詞嵌入方法,以及層疊CNN結(jié)構(gòu)。本文以精度(accuracy)、F1度量(F1-score)、查準率(precision)、查全率(recall)作為衡量訓練模型的指標,各個指標的計算見式(2)~式(5)。其中,TP(true positive)指測試集中被預測為正例,實際為正例的樣本總數(shù);FP(false positive)指測試集中被預測為正例,實際為反例的樣本總數(shù);TN(true negative)指測試集中被預測為反例,實際為反例的樣本總數(shù);FN(false negative)指測試集中被預測為反例,實際為正例的樣本總數(shù)。為了直觀的對實驗進行比較,本文繪制了ROC曲線(receiver operating characteristic)進行對比,并且計算了AUC值(area under ROC curve)。ROC曲線以FPR(false positive rate)為橫軸,TPR(true positive rate)為縱軸,曲線整體越靠近坐標(0,1)點,代表檢測的效果越好。AUC值代表ROC曲線下的面積,AUC值越大,說明分類器效果更好

(2)

(3)

(4)

(5)

本文提出的基于DCNN的檢測方法使用了高級詞嵌入和動態(tài)卷積網(wǎng)絡,其實驗結(jié)果見表3。改進前的深度卷積方法作為對比,其實驗結(jié)果見表4。從實驗結(jié)果中可以看出,基于DCNN的檢測方法的各方面性能指標均優(yōu)于現(xiàn)有的深度卷積方法,檢測精度從0.826提升至0.957。另外,為直觀的闡述基于DCNN的檢測方法的優(yōu)勢,本文對比了兩種方法的ROC曲線和AUC值,如圖4所示。實驗結(jié)果表明,相較于現(xiàn)有的深度卷積方法,基于DCNN的檢測方法AUC值有所提高,并獲得了較好的檢測效果。

表3 基于DCNN的檢測方法實驗結(jié)果

表4 改進前的深度卷積方法實驗結(jié)果

圖4 ROC曲線與AUC值對比

4 結(jié)束語

本文基于深度學習網(wǎng)絡研究了DGA惡意域名檢測,在現(xiàn)有的研究基礎上,提出了基于DCNN的DGA域名檢測方案,并使用現(xiàn)實網(wǎng)絡中收集的70余萬條域名,在此基礎上對模型進行訓練與測試。實驗結(jié)果表明,基于動態(tài)卷積算法的檢測方法能夠達到95.7%的精度,驗證了方案的可行性。綜上,本文的主要貢獻如下:①在檢測DGA域名的向量嵌入階段,本文采用了基于字符嵌入的高級詞嵌入方法,與單一的詞嵌入方法相比,高級嵌入方法可以更有效表示域名,有助于提取域名中的信息;②在深度學習架構(gòu)的基礎上,本文借鑒自然語言處理中的動態(tài)卷積思想,針對DGA域名檢測重新設計了動態(tài)卷積算法,該算法能夠更有效識別惡意域名;③本文使用現(xiàn)實網(wǎng)絡中收集的大量域名數(shù)據(jù)對模型進行了訓練,對比了現(xiàn)有深度學習方法與本文使用的基于DCNN的檢測方法的性能,分析了兩種方法的多個檢測指標,直觀地闡述了基于DCNN的檢測方法具有的優(yōu)勢。實驗結(jié)果表明,相較于現(xiàn)有的深度學習方法,基于DCNN的檢測方法能夠提升DGA惡意域名的檢測效果。

實驗結(jié)果表明,相較于現(xiàn)有的深度學習方法,基于DCNN的檢測方法可以獲得更好的檢測指標,提升檢測效果。通過實驗,可以得出如下結(jié)論,一方面對于類似域名的短小字符串,高級詞嵌入方法能夠更好進行向量表示;另一方面,動態(tài)卷積網(wǎng)絡中的參數(shù)是根據(jù)輸入字符串長度和網(wǎng)絡深度動態(tài)選擇得到,這樣有利于在更大范圍內(nèi)提取更深層的特征,提升模型訓練效果。

本文未來的工作將集中于域名檢測的多分類問題。另外,DGA域名僅僅包含頂級域名和二級域名,具有少量的字符,基于詞嵌入的復雜網(wǎng)絡結(jié)構(gòu)未能充分發(fā)揮其提取深層次特征的優(yōu)勢。相對于DGA域名,URL包含豐富的字符和詞組,深度學習可以充分提取有用信息。檢測DGA惡意域名的方法可以應用于檢測惡意URL。所以,對惡意URL的檢測也是本文未來的一個研究方向。

猜你喜歡
單詞深度檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
深度理解一元一次方程
單詞連一連
深度觀察
深度觀察
深度觀察
看圖填單詞
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 久久久精品久久久久三级| 免费激情网站| 一级毛片免费高清视频| 天天综合网色| 国产SUV精品一区二区| 国产成人乱码一区二区三区在线| 国产精品第一区在线观看| 高清乱码精品福利在线视频| 九九视频免费在线观看| 亚洲男人的天堂在线观看| 国产一级二级在线观看| 高潮爽到爆的喷水女主播视频| 国产精品自在自线免费观看| 国产一区二区三区精品欧美日韩| 国产精品精品视频| 午夜人性色福利无码视频在线观看| 国产激情无码一区二区APP| 一级爱做片免费观看久久 | 国产人成在线视频| 国产人前露出系列视频| 粉嫩国产白浆在线观看| 黄色免费在线网址| 91免费片| 国产视频久久久久| 欧美国产在线一区| 怡红院美国分院一区二区| 国产乱人视频免费观看| 亚洲精品日产精品乱码不卡| 蜜臀av性久久久久蜜臀aⅴ麻豆| 中文国产成人精品久久一| 又黄又湿又爽的视频| 91最新精品视频发布页| 91福利免费视频| 国产午夜不卡| 国产91精选在线观看| 国产熟睡乱子伦视频网站| 99re在线视频观看| 国产成人调教在线视频| 日本91视频| 国产精品jizz在线观看软件| 国产xxxxx免费视频| 欧美午夜久久| 91福利片| 欧美日韩高清在线| 亚洲中文字幕无码爆乳| 欧美一级色视频| AV不卡在线永久免费观看| 亚洲永久色| 国产精品欧美激情| 韩国v欧美v亚洲v日本v| 福利在线一区| 久久精品亚洲专区| 国产在线观看精品| 中文字幕 91| 亚洲欧美精品一中文字幕| 美女被操91视频| 国产成人亚洲综合A∨在线播放| 无码内射中文字幕岛国片| 久久精品91麻豆| 97国产精品视频人人做人人爱| 欧美国产日韩在线观看| 中文字幕人妻av一区二区| 精品一区二区三区四区五区| 久久综合国产乱子免费| 亚洲av无码人妻| 欧美国产日韩在线观看| 精品无码国产一区二区三区AV| 国产精品护士| 久久香蕉国产线看观| 亚洲自偷自拍另类小说| 亚洲精品国产自在现线最新| 成人国产一区二区三区| 国产精品刺激对白在线| 日韩精品中文字幕一区三区| 三区在线视频| 动漫精品中文字幕无码| 国产福利免费在线观看| 九九九精品视频| 国产永久无码观看在线| 91精品免费高清在线| 女人18毛片久久| 亚洲欧美自拍视频|