• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2021-03-23 09:38:24王志強李舒豪池亞平張健毅
    計算機工程與設計 2021年3期
    關鍵詞:域名字符卷積

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

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

    0 引 言

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

    1 域名檢測研究

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

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

    圖1 基于DCNN的檢測模型

    1.1 數據預處理

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

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

    1.2 嵌入方式

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

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

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

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

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

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

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

    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的向量。高級詞嵌入包含兩個分支。第一個分支是詞嵌入,通過詞嵌入矩陣,每條域名經嵌入后得到8×5的矩陣。第二個分支是字符嵌入,因為詞包含5個字符,每個詞經字符嵌入矩陣得到 5×5 的矩陣。又因為一條域名中包含8個詞,所以得到 8×5×5 的矩陣。通過將5個矩陣對應行相加,得到8×5的基于字符的詞嵌入矩陣。最后將詞嵌入矩陣和基于字符的詞嵌入矩陣相加,得到最終表示。高級詞嵌入方法有助于獲取測試集中新詞的有用信息,有效提升檢測效果。

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

    2 神經網絡模型

    2.1 卷積神經網絡

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

    2.2 動態(tài)卷積神經網絡

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

    圖3 動態(tài)卷積網絡結構示例

    (1)卷積層

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

    (2)折疊層

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

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

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

    (1)

    (4)最大ktop值池化

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

    3 實驗結果與分析

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

    表1 數據集劃分

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

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

    為了說明基于DCNN的檢測方法的檢測效果,本文使用了常規(guī)的深度卷積方法作為對比實驗。深度卷積方法使用常規(guī)的詞嵌入方法,以及層疊CNN結構。本文以精度(accuracy)、F1度量(F1-score)、查準率(precision)、查全率(recall)作為衡量訓練模型的指標,各個指標的計算見式(2)~式(5)。其中,TP(true positive)指測試集中被預測為正例,實際為正例的樣本總數;FP(false positive)指測試集中被預測為正例,實際為反例的樣本總數;TN(true negative)指測試集中被預測為反例,實際為反例的樣本總數;FN(false negative)指測試集中被預測為反例,實際為正例的樣本總數。為了直觀的對實驗進行比較,本文繪制了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)卷積網絡,其實驗結果見表3。改進前的深度卷積方法作為對比,其實驗結果見表4。從實驗結果中可以看出,基于DCNN的檢測方法的各方面性能指標均優(yōu)于現有的深度卷積方法,檢測精度從0.826提升至0.957。另外,為直觀的闡述基于DCNN的檢測方法的優(yōu)勢,本文對比了兩種方法的ROC曲線和AUC值,如圖4所示。實驗結果表明,相較于現有的深度卷積方法,基于DCNN的檢測方法AUC值有所提高,并獲得了較好的檢測效果。

    表3 基于DCNN的檢測方法實驗結果

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

    圖4 ROC曲線與AUC值對比

    4 結束語

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

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

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

    猜你喜歡
    域名字符卷積
    尋找更強的字符映射管理器
    基于3D-Winograd的快速卷積算法設計及FPGA實現
    字符代表幾
    一種USB接口字符液晶控制器設計
    電子制作(2019年19期)2019-11-23 08:41:50
    從濾波器理解卷積
    電子制作(2019年11期)2019-07-04 00:34:38
    消失的殖民村莊和神秘字符
    基于傅里葉域卷積表示的目標跟蹤算法
    如何購買WordPress網站域名及綁定域名
    騰訊八百萬美元收購域名
    一種基于卷積神經網絡的性別識別方法
    電視技術(2014年19期)2014-03-11 15:38:20
    永顺县| 博爱县| 兴义市| 唐山市| 牙克石市| 漯河市| 玉门市| 岳池县| 旬邑县| 普兰县| 麟游县| 勐海县| 达孜县| 开远市| 泸水县| 大英县| 宜良县| 广元市| 汤阴县| 海南省| 昂仁县| 潮州市| 沽源县| 区。| 江城| 白城市| 保德县| 阳曲县| 济南市| 东阿县| 天水市| 苏尼特右旗| 民乐县| 元氏县| 紫云| 夹江县| 航空| 上杭县| 内黄县| 东乡族自治县| 增城市|