基于詞向量的DGA域名檢測深度學習模型與算法研究
發(fā)布時間:2020-11-16 11:05
網(wǎng)絡(luò)安全的主要威脅之一是僵尸網(wǎng)絡(luò)。僵尸網(wǎng)絡(luò)的命令與控制服務(wù)器常使用域名生成算法(Domain Generation Algorithm,DGA)生成海量的短生命周期的DGA域名,僵尸網(wǎng)絡(luò)的控制者通過DGA域名訪問命令與控制服務(wù)器,對僵尸網(wǎng)絡(luò)下達攻擊指令。為了防范僵尸網(wǎng)絡(luò),網(wǎng)絡(luò)安全研究者需要對DGA域名進行檢測與分類。正確高效地檢測DGA域名,將有助于研究者使僵尸網(wǎng)絡(luò)的控制信道失效,進而達到防范僵尸網(wǎng)絡(luò)的目的。因此DGA域名的自動檢測成為信息安全領(lǐng)域的重要研究內(nèi)容。近年來,機器學習方法廣泛應(yīng)用于DGA域名檢測任務(wù)中,特別是隨著深度學習的飛速發(fā)展,基于深度學習的DGA域名檢測算法取得了一定的進步。但當前方法的分類模型較簡單,對域名這類短文本的信息利用能力與特征提取能力有限,特別是在對DGA域名多分類的問題中,分類精度仍有較大的提升空間。本文從基于詞向量的DGA域名深度學習模型與算法入手,結(jié)合詞向量與深度學習模型等手段,對DGA域名檢測算法進行多個方面的研究,提高域名分類精度。本文主要研究內(nèi)容如下:(1)研究混合詞向量深度學習模型的DGA域名檢測方法。分析了基于字符和雙字符組級別的混合詞向量,以提高域名字符串的信息利用度,并建立了基于混合詞向量方法的深度學習模型。最后設(shè)計了包含多種對比模型的實驗,對混合詞向量的有效性進行驗證。實驗結(jié)果表明基于混合詞向量的深度學習模型在DGA域名檢測與分類任務(wù)中相比只基于字符級詞向量的模型有更好的分類性能,特別是在樣本數(shù)量較少的DGA域名類別上的分類性能更優(yōu),證明了該模型的有效性。(2)研究基于混合詞向量Transformer網(wǎng)絡(luò)的DGA域名檢測方法。構(gòu)建了改進Transformer網(wǎng)絡(luò)作為域名分類指示特征的提取網(wǎng)絡(luò),提高域名字符串有效特征的提取能力,并建立了基于混合詞向量方法的改進Transformer網(wǎng)絡(luò)DGA域名檢測模型。最后進行了包含多種模型的DGA域名檢測與分類對比實驗,在OSINT和Alexa公開數(shù)據(jù)集上進行實驗,將提出的算法與前沿DGA域名檢測與分類算法進行對比,實驗結(jié)果表明本文提出算法在DGA域名檢測與分類任務(wù)上更為準確,驗證了提出算法的有效性。本論文有圖14幅,表10個,參考文獻103篇。
【學位單位】:中國礦業(yè)大學
【學位級別】:碩士
【學位年份】:2020
【中圖分類】:TP18;TP391.1
【部分圖文】:
碩士學位論文122基本理論2BasicTheory本章介紹本文研究相關(guān)內(nèi)容的基本理論;谠~向量的DGA域名檢測深度學習模型與算法主要包含兩部分內(nèi)容,DGA域名的詞向量表示與適用于DGA域名檢測的深度學習模型與算法。為了使本文研究內(nèi)容更易理解,本章主要介紹國內(nèi)外研究現(xiàn)狀中DGA域名識別使用的深度學習模型與算法的基本理論,與詞向量表示的相關(guān)基本理論。2.1深度學習概述(IntroductionofDeepLearning)在第一章中本文介紹了若干種基于深度學習的DGA域名檢測算法。由于深度學習具有自動發(fā)現(xiàn)特征、算法健壯性強、實時性高等優(yōu)點,基于深度學習的DGA域名檢測算法已普遍優(yōu)于采用傳統(tǒng)機器學習方法的DGA域名檢測算法。深度學習算法是機器學習算法的一個子集,是監(jiān)督學習算法。深度學習的基本模型由人工神經(jīng)網(wǎng)絡(luò)[60-62](ArtificialNeuralNetwork)構(gòu)成。人工神經(jīng)網(wǎng)絡(luò)(以下簡稱神經(jīng)網(wǎng)絡(luò))受到人們對大腦結(jié)構(gòu)觀察的啟發(fā),由多層人工神經(jīng)元模型層層堆疊而成。人工神經(jīng)元模型是參數(shù)化表示的可微分函數(shù),神經(jīng)網(wǎng)絡(luò)包含多層神經(jīng)元,每層神經(jīng)元通過與前一層和后一層的連接相互作用,輸入信號逐層作用到神經(jīng)網(wǎng)絡(luò)上,層數(shù)逐漸加深,人們受此啟發(fā)提出深度學習的概念。人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2-1所示。圖2-1人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Figure2-1Structureofartificialneuralnetwork
碩士學位論文14函數(shù),常用的非線性激活函數(shù)有:sigmoid函數(shù),tanh函數(shù),ReLU函數(shù)[65]等。這些函數(shù)的公式如下所示。(2-3)(2-4)(2-5)對應(yīng)的函數(shù)圖像如圖2-2所示。圖2-2常用的非線性激活函數(shù)圖像Figure2-2Commonlyusednon-linearactivationfunctionimages這些非線性激活函數(shù)使得整個神經(jīng)網(wǎng)絡(luò)不僅僅由線性變換構(gòu)成,因此從理論上只要神經(jīng)網(wǎng)絡(luò)足夠復(fù)雜,就可以擬合出任一種由輸入序列到輸出序列的映射。2.1.2訓(xùn)練過程深度學習的學習目標就是找到合適的函數(shù),使得在輸入后能夠產(chǎn)生期望的輸出。非線性激活函數(shù)中不包含參數(shù),,但實際上在包含其他種類神經(jīng)網(wǎng)絡(luò)的深度學習模型中,還可包含其他的參數(shù),在這里為了表示方便我們僅以和為例進行說明。因此在整個函數(shù)空間上的搜索就退化成在參數(shù)空間上的搜索。那么如何在參數(shù)空間中搜索找到合適的參數(shù),使得神經(jīng)網(wǎng)絡(luò)接收一個輸入能夠盡可能的產(chǎn)生正確的輸出結(jié)果,這就是一個最優(yōu)化問題。我們將解決該最優(yōu)化問題的過程稱為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練[66](Training)。為了訓(xùn)練一個深度學習模型,我們需要一個包含大量的數(shù)據(jù)的數(shù)據(jù)集(DataSet)。在監(jiān)督學習問題中,這些數(shù)據(jù)包含標簽(Label),在分類問題中,標簽代表的數(shù)據(jù)的真實類別,也就是。為了使得訓(xùn)練過程能夠正常進行并檢驗該網(wǎng)絡(luò)的訓(xùn)練效果,我們通常將數(shù)據(jù)集劃分為訓(xùn)練集(TrainingSet)和測試集(Test1sigmoid()1xxe-=+tanh()xxxxeexee---=+0,0ReLU(),0xxxxì£=í>xy1:1:(;)kky=FxQ1:kx1:kyQ=W,bQWbQ1:ky
2基本理論19循環(huán)神經(jīng)網(wǎng)絡(luò)通常作為構(gòu)成大型網(wǎng)絡(luò)的組件,使用循環(huán)神經(jīng)網(wǎng)絡(luò)作為組件的各種體系結(jié)構(gòu)[88-89]。我們對循環(huán)神經(jīng)網(wǎng)絡(luò)進行抽象化表示。我們使用來表示輸入向量序列。從高層面看,循環(huán)神經(jīng)網(wǎng)絡(luò)是將任意長度的有序序列,長度記為,維度為,輸出到一個維度為的向量。(2-15)對于的前綴序列,由公式2-15隱式定義輸出向量,對于每個前綴序列,都有一個與之對應(yīng)。輸出向量常被用于后續(xù)預(yù)測工作。循環(huán)神經(jīng)網(wǎng)絡(luò)提供了一個用于對整個歷史信息的處理框架,同時不需要序列建模中傳統(tǒng)使用的馬爾可夫假設(shè)。循環(huán)神經(jīng)網(wǎng)絡(luò)是循環(huán)定義的。循環(huán)神經(jīng)網(wǎng)絡(luò)包含一個函數(shù),來接收上一個狀態(tài)的輸入,即狀態(tài)向量,和當前的輸入向量,函數(shù)通過計算返回一個表示當前狀態(tài)的新的狀態(tài)向量。之后狀態(tài)向量通過決策函數(shù)映射成輸出向量。循環(huán)神經(jīng)網(wǎng)絡(luò)的初始狀態(tài)向量作為輸入,共同構(gòu)成輸入的一部分。在構(gòu)造循環(huán)神經(jīng)網(wǎng)絡(luò)時,與構(gòu)造其他前向神經(jīng)網(wǎng)絡(luò)一樣,我們需要指定輸入序列和輸出向量的維度,狀態(tài)向量的維度可以與輸出向量的維度不同。循環(huán)神經(jīng)網(wǎng)絡(luò)的計算過程如下。(2-16)(2-17)(2-18)函數(shù)和在所有序列位置的計算過程中都是相同的,循環(huán)神經(jīng)網(wǎng)絡(luò)在計算過程中通過狀態(tài)向量追蹤不同序列位置的狀態(tài),最終給出輸出向量。循環(huán)神經(jīng)網(wǎng)絡(luò)單元的結(jié)構(gòu)如圖2-3所示。圖2-3循環(huán)神經(jīng)網(wǎng)絡(luò)單元Figure2-3RecurrentNeuralNetworkUnit循環(huán)神經(jīng)網(wǎng)絡(luò)計算流程如圖2-4所示。1:nxnindindixRoutdoutdnyR1:RNN()nny=x1:nx1:ixiy1:ixiyny1,...,ixxRi-1sixRisisOiy0sixiyis1:01:RNN(;)nn¢xs=y()iiy=Os1(,)iiiR-s=sxROisny
【參考文獻】
本文編號:2886106
【學位單位】:中國礦業(yè)大學
【學位級別】:碩士
【學位年份】:2020
【中圖分類】:TP18;TP391.1
【部分圖文】:
碩士學位論文122基本理論2BasicTheory本章介紹本文研究相關(guān)內(nèi)容的基本理論;谠~向量的DGA域名檢測深度學習模型與算法主要包含兩部分內(nèi)容,DGA域名的詞向量表示與適用于DGA域名檢測的深度學習模型與算法。為了使本文研究內(nèi)容更易理解,本章主要介紹國內(nèi)外研究現(xiàn)狀中DGA域名識別使用的深度學習模型與算法的基本理論,與詞向量表示的相關(guān)基本理論。2.1深度學習概述(IntroductionofDeepLearning)在第一章中本文介紹了若干種基于深度學習的DGA域名檢測算法。由于深度學習具有自動發(fā)現(xiàn)特征、算法健壯性強、實時性高等優(yōu)點,基于深度學習的DGA域名檢測算法已普遍優(yōu)于采用傳統(tǒng)機器學習方法的DGA域名檢測算法。深度學習算法是機器學習算法的一個子集,是監(jiān)督學習算法。深度學習的基本模型由人工神經(jīng)網(wǎng)絡(luò)[60-62](ArtificialNeuralNetwork)構(gòu)成。人工神經(jīng)網(wǎng)絡(luò)(以下簡稱神經(jīng)網(wǎng)絡(luò))受到人們對大腦結(jié)構(gòu)觀察的啟發(fā),由多層人工神經(jīng)元模型層層堆疊而成。人工神經(jīng)元模型是參數(shù)化表示的可微分函數(shù),神經(jīng)網(wǎng)絡(luò)包含多層神經(jīng)元,每層神經(jīng)元通過與前一層和后一層的連接相互作用,輸入信號逐層作用到神經(jīng)網(wǎng)絡(luò)上,層數(shù)逐漸加深,人們受此啟發(fā)提出深度學習的概念。人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2-1所示。圖2-1人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Figure2-1Structureofartificialneuralnetwork
碩士學位論文14函數(shù),常用的非線性激活函數(shù)有:sigmoid函數(shù),tanh函數(shù),ReLU函數(shù)[65]等。這些函數(shù)的公式如下所示。(2-3)(2-4)(2-5)對應(yīng)的函數(shù)圖像如圖2-2所示。圖2-2常用的非線性激活函數(shù)圖像Figure2-2Commonlyusednon-linearactivationfunctionimages這些非線性激活函數(shù)使得整個神經(jīng)網(wǎng)絡(luò)不僅僅由線性變換構(gòu)成,因此從理論上只要神經(jīng)網(wǎng)絡(luò)足夠復(fù)雜,就可以擬合出任一種由輸入序列到輸出序列的映射。2.1.2訓(xùn)練過程深度學習的學習目標就是找到合適的函數(shù),使得在輸入后能夠產(chǎn)生期望的輸出。非線性激活函數(shù)中不包含參數(shù),,但實際上在包含其他種類神經(jīng)網(wǎng)絡(luò)的深度學習模型中,還可包含其他的參數(shù),在這里為了表示方便我們僅以和為例進行說明。因此在整個函數(shù)空間上的搜索就退化成在參數(shù)空間上的搜索。那么如何在參數(shù)空間中搜索找到合適的參數(shù),使得神經(jīng)網(wǎng)絡(luò)接收一個輸入能夠盡可能的產(chǎn)生正確的輸出結(jié)果,這就是一個最優(yōu)化問題。我們將解決該最優(yōu)化問題的過程稱為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練[66](Training)。為了訓(xùn)練一個深度學習模型,我們需要一個包含大量的數(shù)據(jù)的數(shù)據(jù)集(DataSet)。在監(jiān)督學習問題中,這些數(shù)據(jù)包含標簽(Label),在分類問題中,標簽代表的數(shù)據(jù)的真實類別,也就是。為了使得訓(xùn)練過程能夠正常進行并檢驗該網(wǎng)絡(luò)的訓(xùn)練效果,我們通常將數(shù)據(jù)集劃分為訓(xùn)練集(TrainingSet)和測試集(Test1sigmoid()1xxe-=+tanh()xxxxeexee---=+0,0ReLU(),0xxxxì£=í>xy1:1:(;)kky=FxQ1:kx1:kyQ=W,bQWbQ1:ky
2基本理論19循環(huán)神經(jīng)網(wǎng)絡(luò)通常作為構(gòu)成大型網(wǎng)絡(luò)的組件,使用循環(huán)神經(jīng)網(wǎng)絡(luò)作為組件的各種體系結(jié)構(gòu)[88-89]。我們對循環(huán)神經(jīng)網(wǎng)絡(luò)進行抽象化表示。我們使用來表示輸入向量序列。從高層面看,循環(huán)神經(jīng)網(wǎng)絡(luò)是將任意長度的有序序列,長度記為,維度為,輸出到一個維度為的向量。(2-15)對于的前綴序列,由公式2-15隱式定義輸出向量,對于每個前綴序列,都有一個與之對應(yīng)。輸出向量常被用于后續(xù)預(yù)測工作。循環(huán)神經(jīng)網(wǎng)絡(luò)提供了一個用于對整個歷史信息的處理框架,同時不需要序列建模中傳統(tǒng)使用的馬爾可夫假設(shè)。循環(huán)神經(jīng)網(wǎng)絡(luò)是循環(huán)定義的。循環(huán)神經(jīng)網(wǎng)絡(luò)包含一個函數(shù),來接收上一個狀態(tài)的輸入,即狀態(tài)向量,和當前的輸入向量,函數(shù)通過計算返回一個表示當前狀態(tài)的新的狀態(tài)向量。之后狀態(tài)向量通過決策函數(shù)映射成輸出向量。循環(huán)神經(jīng)網(wǎng)絡(luò)的初始狀態(tài)向量作為輸入,共同構(gòu)成輸入的一部分。在構(gòu)造循環(huán)神經(jīng)網(wǎng)絡(luò)時,與構(gòu)造其他前向神經(jīng)網(wǎng)絡(luò)一樣,我們需要指定輸入序列和輸出向量的維度,狀態(tài)向量的維度可以與輸出向量的維度不同。循環(huán)神經(jīng)網(wǎng)絡(luò)的計算過程如下。(2-16)(2-17)(2-18)函數(shù)和在所有序列位置的計算過程中都是相同的,循環(huán)神經(jīng)網(wǎng)絡(luò)在計算過程中通過狀態(tài)向量追蹤不同序列位置的狀態(tài),最終給出輸出向量。循環(huán)神經(jīng)網(wǎng)絡(luò)單元的結(jié)構(gòu)如圖2-3所示。圖2-3循環(huán)神經(jīng)網(wǎng)絡(luò)單元Figure2-3RecurrentNeuralNetworkUnit循環(huán)神經(jīng)網(wǎng)絡(luò)計算流程如圖2-4所示。1:nxnindindixRoutdoutdnyR1:RNN()nny=x1:nx1:ixiy1:ixiyny1,...,ixxRi-1sixRisisOiy0sixiyis1:01:RNN(;)nn¢xs=y()iiy=Os1(,)iiiR-s=sxROisny
【參考文獻】
相關(guān)期刊論文 前2條
1 王海龍;龔正虎;侯婕;;僵尸網(wǎng)絡(luò)檢測技術(shù)研究進展[J];計算機研究與發(fā)展;2010年12期
2 諸葛建偉;韓心慧;周勇林;葉志遠;鄒維;;僵尸網(wǎng)絡(luò)研究[J];軟件學報;2008年03期
本文編號:2886106
本文鏈接:http://www.sikaile.net/shoufeilunwen/xixikjs/2886106.html
最近更新
教材專著