周 康,萬(wàn) 良,丁紅衛(wèi)
1.貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽(yáng)550025
2.貴州大學(xué) 軟件與理論研究所,貴陽(yáng)550025
當(dāng)前,各種針對(duì)網(wǎng)絡(luò)通信域名服務(wù)系統(tǒng)的攻擊層出不窮。通過(guò)注冊(cè)惡意域名植入軟件,引誘用戶(hù)訪(fǎng)問(wèn)該域名而非目標(biāo)網(wǎng)站,進(jìn)行違法違紀(jì)等活動(dòng),已成為威脅互聯(lián)網(wǎng)安全運(yùn)行的重要問(wèn)題之一。
垃圾郵件、僵尸網(wǎng)絡(luò)、釣魚(yú)欺詐以及遠(yuǎn)控木馬等惡意攻擊往往需要進(jìn)行惡意域名解析。所謂惡意域名解析實(shí)際上是利用了域名解析中的遞歸查詢(xún)流程,將用戶(hù)正常DNS(Domain Name System)請(qǐng)求解析到攻擊者的惡意服務(wù)器上?;谠撛恚诳屯ㄟ^(guò)域名生成算法隨機(jī)注冊(cè)少數(shù)域名就可以對(duì)目標(biāo)主機(jī)實(shí)施攻擊。目前主流的惡意域名檢測(cè)方法包括傳統(tǒng)方法和深度學(xué)習(xí)方法。傳統(tǒng)方法,通過(guò)分析惡意域名生成算法的域名特征建立域名檢測(cè)分類(lèi)器,并建立域名黑名單。通過(guò)嗅探DNS請(qǐng)求人工提取特征,尋找惡意域名并提醒自動(dòng)分類(lèi)工具或用戶(hù)進(jìn)行防御。文獻(xiàn)[1-3]方法通過(guò)將域名集分組聚類(lèi)為每個(gè)組設(shè)定數(shù)據(jù)屬性,在不斷訓(xùn)練和測(cè)試數(shù)據(jù)之后建立規(guī)則庫(kù)來(lái)區(qū)分潛在惡意域名。但這些方法忽略上下文信息,比如HTTP頭、NXDomain、被動(dòng)DNS域。當(dāng)數(shù)據(jù)信息量過(guò)少時(shí),將導(dǎo)致檢測(cè)精度不高。文獻(xiàn)[4-5]和上述方法類(lèi)似,通過(guò)對(duì)域名進(jìn)行字符串分析,如字符串長(zhǎng)度、元/輔音字母?jìng)€(gè)數(shù)、熵等,針對(duì)惡意域名特點(diǎn)人工設(shè)計(jì)一些特征,再利用現(xiàn)有傳統(tǒng)分類(lèi)器進(jìn)行檢測(cè)。首先,此類(lèi)方法未利用上下文信息,但當(dāng)有子更新時(shí)就需要重新設(shè)計(jì)特征,計(jì)算量大。其次,人工提取特征的方法是一種耗時(shí)的過(guò)程,檢測(cè)效率低。深度學(xué)習(xí)方法相較于傳統(tǒng)方法,可以獲取更多有效的文本特征,其準(zhǔn)確率和召回率比較高。國(guó)內(nèi)外學(xué)者在深度學(xué)習(xí)方法上進(jìn)行了大量的研究,但在惡意域名檢測(cè)領(lǐng)域的研究較少。呂品等[6]設(shè)計(jì)了一種編輯距離的惡意域名檢測(cè)系統(tǒng),利用雙向LSTM(Long Short-Term Memory network)檢測(cè)誤植域名,雖然不需要人工提取特征,但使用獨(dú)熱編碼導(dǎo)致數(shù)據(jù)稀疏程度大,維度過(guò)高,計(jì)算效率差。在特征降維方面,前人已提出很多降維方法[7-8],主要可分為線(xiàn)性和非線(xiàn)性?xún)深?lèi)。線(xiàn)性降維方法主要有主成分分析(Principal Component Analysis,PCA)和線(xiàn)性判別分析(Linear Discriminant Analysis,LDA)等,它們?cè)诰哂芯€(xiàn)性結(jié)構(gòu)的高維數(shù)據(jù)集上具有良好的降維效果。但當(dāng)數(shù)據(jù)呈現(xiàn)非線(xiàn)性稀疏結(jié)構(gòu)時(shí),這些方法難以表達(dá)數(shù)據(jù)集的主要特征。自編碼網(wǎng)絡(luò)(Autoencoder Network,AN)模型將高維、非線(xiàn)性的數(shù)據(jù)雙向映射到低維空間,建立高維空間到低維空間的自編碼網(wǎng)絡(luò),進(jìn)而使用自編碼網(wǎng)絡(luò)權(quán)值微調(diào)重構(gòu)低維空間數(shù)據(jù)的最優(yōu)高維表示,具有優(yōu)良的降維能力且易于其他神經(jīng)網(wǎng)絡(luò)模型結(jié)合。
本文旨在消除冗余信息,降低計(jì)算復(fù)雜度和提高域名檢測(cè)能力,提出了一種基于AN和LSTM結(jié)合的域名檢測(cè)方法(AN Combined with Attention Mechanism and LSTM,AN-At-LSTM)。該方法結(jié)合自編碼網(wǎng)絡(luò)對(duì)數(shù)據(jù)優(yōu)良的降維能力,以及LSTM能快速適應(yīng)不斷變化的異常行為而不需要人工提取特征和對(duì)長(zhǎng)程依賴(lài)信息最大化保留能力,在面對(duì)高維復(fù)雜海量數(shù)據(jù)時(shí)具有較強(qiáng)的潛力,比起傳統(tǒng)檢測(cè)惡意域名方法具有更高的檢測(cè)率和較短的檢測(cè)時(shí)間。
本章主要介紹域名檢測(cè)問(wèn)題的形式化定義,以及針對(duì)該問(wèn)題提出的基于AN-At-LSTM訓(xùn)練結(jié)構(gòu)圖。
對(duì)域名文本序列數(shù)值化處理需要使用自然語(yǔ)言處理領(lǐng)域的方法,即對(duì)列表元素進(jìn)行向量空間嵌入,該思想最早由Hinton于1986年提出[9]。將單詞語(yǔ)義研究轉(zhuǎn)化為對(duì)應(yīng)的n維實(shí)數(shù)向量的運(yùn)算,并取得了很好的效果[10]。目前最流行的向量空間嵌入方法是word2vec,它是2013年Mikolov等在谷歌實(shí)驗(yàn)室發(fā)明的一種方法[11],解決了常用的獨(dú)熱編碼表示中忽略上下文信息,向量維度大,矩陣稀疏容易造成維度災(zāi)難的問(wèn)題。該分布式表示方法將所有詞語(yǔ)映射到一個(gè)抽象的向量空間,計(jì)算詞語(yǔ)之間的相似度,得到關(guān)鍵特征詞。
具體的,本文構(gòu)建文本詞向量方法是將文本信息轉(zhuǎn)化為向量形式,每個(gè)文本序列轉(zhuǎn)換為一個(gè)多維矩陣。給定文本序列S,其中包含多個(gè)字符W(w1,w2,…,wm),提取到的文本序列S的文本特征集為K(k1,k2,…,kn),m為文本序列S的字符個(gè)數(shù),n為每個(gè)文本序列提取到的文本特征個(gè)數(shù),第t個(gè)字符提取到的第i個(gè)文本特征表示為。本文采取的文本特征方法為位置標(biāo)注,對(duì)文本信息進(jìn)行詞向量化處理:
其中,rw是字符w的詞向量表示;Wword∈Rl×||m表示文本詞向量矩陣,m表示文本序列中字符的個(gè)數(shù),l表示詞向量的維數(shù),本文采用word2vec訓(xùn)練文本詞向量矩陣,詞向量初始維數(shù)為128維;Vw為字符w的分布式表示。向量化后的第t個(gè)詞表示為:
最后得到特征向量表示為:
基于AN-At-LSTM的域名檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
主要分為數(shù)據(jù)特征降維、離線(xiàn)模型訓(xùn)練和在線(xiàn)域名判定分類(lèi)三個(gè)階段。數(shù)據(jù)特征降維主要是利用自編碼網(wǎng)絡(luò)對(duì)域名數(shù)值化信息流進(jìn)行處理,離線(xiàn)模型主要對(duì)降維后的數(shù)據(jù)進(jìn)行訓(xùn)練,在線(xiàn)域名判定主要為域名生成算法生成惡意域名進(jìn)行在線(xiàn)測(cè)試。
圖1 AN-At-LSTM模型訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)圖
具體方法如下:
首先將域名對(duì)(正常域名,測(cè)試域名)根據(jù)ASSIC碼數(shù)值化,根據(jù)域名中字符編碼最大序列長(zhǎng)度進(jìn)行0編碼補(bǔ)齊。
其次通過(guò)數(shù)據(jù)集的嵌入層,將向量化數(shù)據(jù)集存入N位狀態(tài)寄存器進(jìn)行編碼嵌入表示。例如將DGA數(shù)值化序列s=[v1v2…vk],vk∈Cv,其中Cv為嵌入表,vk為每一個(gè)序列元素,通過(guò)訓(xùn)練集訓(xùn)練判斷vk是否在Cv中,若vk?Cv,則取Cv的第一個(gè)位置嵌入表示為v0,反之,則取對(duì)應(yīng)序列id為vi。經(jīng)過(guò)嵌入層處理,每個(gè)token的id變成了相應(yīng)嵌入表示Cs=[cv1cv2…cvk]。相比于其他嵌入表示(如Brown聚類(lèi))具有低維稠密、計(jì)算高效的優(yōu)勢(shì)。
接著通過(guò)自編碼網(wǎng)絡(luò)訓(xùn)練初始維度輸入為128,經(jīng)過(guò)編碼器壓縮和解碼器解壓縮操作將高維數(shù)據(jù)雙向映射到低維空間,得到高維數(shù)據(jù)的最優(yōu)低維表示。
然后使用了加入Attention機(jī)制的LSTM層捕獲數(shù)據(jù)的時(shí)序性和長(zhǎng)程依賴(lài)性。該機(jī)制能解決LSTM中輸入編碼為固定長(zhǎng)度,難以合理表示向量,丟失長(zhǎng)序列信息的缺點(diǎn)。Attention機(jī)制保留LSTM編碼器對(duì)輸入序列的中間輸出結(jié)果,訓(xùn)練一個(gè)模型對(duì)這些輸入進(jìn)行選擇性學(xué)習(xí)并且在模型輸出時(shí)進(jìn)行輸出序列關(guān)聯(lián)。其中Permute為換維層,Dense為全連接層,用來(lái)還原維度,Merge為融合層,用來(lái)進(jìn)行特征融合。與ANLSTM模型不同的是,在ANLSTM基礎(chǔ)上加入了Attention機(jī)制,提高對(duì)數(shù)據(jù)的邊緣檢測(cè)能力。
最后使用激活函數(shù)轉(zhuǎn)化為0/1分類(lèi)標(biāo)簽。標(biāo)簽為1表示域名為惡意域名,標(biāo)簽為0表示不是惡意域名。
其中對(duì)自編碼網(wǎng)絡(luò)采用反向傳播算法重構(gòu)誤差迭代達(dá)到最小值。對(duì)概率輸出層、嵌入層使用反向傳播算法進(jìn)行誤差的反向傳播。而對(duì)于LSTM層,采用后向傳播算法進(jìn)行誤差的反向傳播。
自編碼網(wǎng)絡(luò)(AN)是非監(jiān)督學(xué)習(xí)領(lǐng)域中的一種可以自動(dòng)從無(wú)標(biāo)注的數(shù)據(jù)中學(xué)習(xí)特征,以重構(gòu)輸入信息為目標(biāo)的神經(jīng)網(wǎng)絡(luò)。它通過(guò)學(xué)習(xí)具體特征向量獲得數(shù)據(jù)集的壓縮編碼,達(dá)到降維的目的[12]。其本質(zhì)是學(xué)習(xí)一個(gè)hw,b(x)≈x的函數(shù),使得輸出x?接近于輸入x。該網(wǎng)絡(luò)由三部分構(gòu)成:編碼器、代碼層和解碼器。每?jī)蓪訛橐粋€(gè)受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM),AN通過(guò)多個(gè)堆疊的RBM組成。通過(guò)RBM每層前后向傳播來(lái)重構(gòu)誤差,直到目標(biāo)函數(shù)達(dá)到最小值。其中目標(biāo)函數(shù)定義為:
其中,f(X)為sigmoid激活函數(shù)函數(shù)。
該網(wǎng)絡(luò)激活方式是隱藏層h1輸入由上一層h0的輸出x和它的權(quán)重W乘積激活。h2的輸入同樣由h2的輸出x′和它的權(quán)重W′乘積激活,直到所有的隱藏層都被激活。
其實(shí)現(xiàn)過(guò)程包括三個(gè)步驟:
(1)預(yù)訓(xùn)練過(guò)程:通過(guò)RBM預(yù)訓(xùn)練獲得生成模型權(quán)值參數(shù),計(jì)算W和b的殘差,利用梯度下降法更新W和b,使得輸出更好地表示輸入。
(2)展開(kāi):在經(jīng)過(guò)多層RBM網(wǎng)絡(luò)預(yù)訓(xùn)練后,編碼器和解碼器使用得到的權(quán)值作為自編碼網(wǎng)絡(luò)的初始權(quán)值。將預(yù)訓(xùn)練得到的RBM網(wǎng)絡(luò)連接起來(lái)并按照自編碼網(wǎng)絡(luò)結(jié)構(gòu)展開(kāi)。
(3)權(quán)值微調(diào):按照重構(gòu)誤差最小化原則對(duì)自編碼網(wǎng)絡(luò)進(jìn)行調(diào)整,依次經(jīng)過(guò)解碼器和編碼器利用反向傳播算法[2]對(duì)整個(gè)自編碼網(wǎng)絡(luò)進(jìn)行權(quán)值微調(diào)。通過(guò)前向傳播方法,對(duì)每一層的神經(jīng)元進(jìn)行前向傳導(dǎo)計(jì)算,利用前向傳播公式,得到各層的激活值。
基于此,本文設(shè)計(jì)的自編碼網(wǎng)絡(luò)初始維度128,經(jīng)過(guò)2層隱藏層分別降維到64維和9維,將word2vec向量化數(shù)據(jù)集詞向量矩陣進(jìn)行最大最小歸一化處理(見(jiàn)4.2節(jié)),映射到[0,1]之間,作為AN輸入。該部分對(duì)向量化數(shù)據(jù)集進(jìn)行降維,保留原始數(shù)據(jù)語(yǔ)序關(guān)系,降低了高維數(shù)據(jù)計(jì)算復(fù)雜度。
為了捕獲數(shù)據(jù)的時(shí)序性和長(zhǎng)程依賴(lài)性,在自編碼網(wǎng)絡(luò)降維之后得到特征向量矩陣,作為L(zhǎng)STM架構(gòu)的網(wǎng)絡(luò)輸入層。LSTM層由多個(gè)共享權(quán)值的LSTM區(qū)塊按時(shí)序連接而成。在每個(gè)時(shí)序上,LSTM輸出將由遺忘門(mén)ft、輸入門(mén)it、輸出門(mén)ot協(xié)同控制,其中每個(gè)門(mén)都是一個(gè)關(guān)于歷史區(qū)塊輸出bt-1和當(dāng)前時(shí)間的輸入xt的矢量函數(shù),這些門(mén)共同決定如何更新當(dāng)前狀態(tài)。使用dimn來(lái)表示細(xì)胞狀態(tài)的維度。在時(shí)序t上,LSTM區(qū)塊對(duì)xt按式(4)~(9)進(jìn)行處理。
其中,σ是一個(gè)邏輯函數(shù),tanh為非線(xiàn)性雙曲正切激活函數(shù)。遺忘門(mén)ft可視為控制舊區(qū)塊信息以多大程度被丟棄的函數(shù),輸入門(mén)it控制有多少信息需要被存儲(chǔ)在當(dāng)前記憶細(xì)胞中,而輸出門(mén)ot表示當(dāng)前記憶細(xì)胞狀態(tài)的輸出。
LSTM模型用來(lái)處理序列標(biāo)注問(wèn)題,能夠充分利用文本序列信息,包括各個(gè)字符之間的相互關(guān)系信息。引入Attention機(jī)制使得LSTM模型能彌補(bǔ)長(zhǎng)序列文本時(shí)難以學(xué)習(xí)到合理的向量表示、性能差的缺點(diǎn),并能對(duì)獲取到的信息進(jìn)行更加有效的學(xué)習(xí)。該模型結(jié)構(gòu)如圖2。
圖2 Attention機(jī)制模型
圖2中Xi(1≤i≤n)為DGA文本序列單詞,hi(1≤i≤n)為每個(gè)單詞對(duì)應(yīng)的LSTM隱層節(jié)點(diǎn)細(xì)胞狀態(tài)。要計(jì)算i時(shí)刻每個(gè)Xi單獨(dú)對(duì)Yi的注意力分配概率,那么可以將i時(shí)刻的隱層節(jié)點(diǎn)狀態(tài)Hi去和輸入Xi通過(guò)函數(shù)F(hj,Hi)對(duì)比補(bǔ)齊。經(jīng)過(guò)softmax歸一化就得到了概率分布區(qū)間的注意力分配數(shù)值。利用注意力機(jī)制計(jì)算注意力概率。注意力概率可以突出特定的單詞對(duì)于整個(gè)句子的重要程度,引入注意力機(jī)制考慮了更多的上下文語(yǔ)義關(guān)聯(lián)。以L(fǎng)STM單元輸出門(mén)最后輸出為例,將Xi導(dǎo)入LSTM模型中,獲取輸出特征值Fhi。第t個(gè)詞對(duì)第i個(gè)詞的注意力概率ait為:
其中,Ua、Ub和Uc表示注意力機(jī)制的權(quán)值矩陣;ba為偏置向量。獲取到的第t個(gè)詞的新的輸出特征值為:
經(jīng)過(guò)LSTM網(wǎng)絡(luò)處理后,將最后一步的LSTM區(qū)塊輸出作為該序列的表示rs,即:
其中,rs代表序列的抽象標(biāo)識(shí);T表示LSTM網(wǎng)絡(luò)輸入的最大長(zhǎng)度,即自編碼網(wǎng)絡(luò)輸出Ys的最大長(zhǎng)度,若|Ys|<T,則用0向量補(bǔ)齊;FHT表示處理第T步的序列值為L(zhǎng)STM區(qū)塊的輸出。
最后用一個(gè)全連接層直接對(duì)該序列進(jìn)行處理,該層使用激活函數(shù)計(jì)算該正常序列的概率Pθ(s),對(duì)于二分類(lèi)采用非線(xiàn)性tanh激活函數(shù),對(duì)于多分類(lèi)采用線(xiàn)性linear激活函數(shù)。這里統(tǒng)一用f表示,概率Pθ(s)計(jì)算公式如下:
其中,θ為模型參數(shù);Sθ(s)為模型訓(xùn)練后的輸出值。
該模型由AN降維到9維后,通過(guò)每個(gè)序列長(zhǎng)度為1的窗口滑動(dòng),進(jìn)行序列輸入訓(xùn)練。
實(shí)驗(yàn)數(shù)據(jù)集由白樣例和黑樣例組成。白樣例來(lái)自Alexa全球域名排名,共1 000 078條。黑樣例來(lái)自360安全實(shí)驗(yàn)室公布的惡意域名,分60類(lèi)1 687 806條。
訓(xùn)練集由所有白樣例和隨機(jī)選取的50類(lèi)黑樣例組成,每一類(lèi)都隨機(jī)抽取80%樣本組成數(shù)據(jù)集。測(cè)試集由訓(xùn)練集以外的部分組成,用來(lái)檢測(cè)新出現(xiàn)的DGA家族域名的檢測(cè)能力。該數(shù)據(jù)構(gòu)成如表1。
數(shù)據(jù)集處理主要包括正則化、數(shù)值化和向量化。首先通過(guò)正則表達(dá)式將原始域名中數(shù)字、字符泛化。具體的,正則表達(dá)式去掉標(biāo)點(diǎn)、http頭、特殊字符。將數(shù)字常量設(shè)為“8”,將正則化后的文本數(shù)據(jù)集通過(guò)word2vec向量化并使用最大最小歸一化方法,如式(15),得到主要特征:
其中,x?為歸一化后的數(shù)據(jù),x為當(dāng)前原始數(shù)據(jù),xmin為當(dāng)前屬性中的最小數(shù)據(jù)值,xmax為當(dāng)前屬性中的最大數(shù)據(jù)值。其數(shù)據(jù)處理結(jié)果如表2。
表1 數(shù)據(jù)集組成表
表2 數(shù)據(jù)處理結(jié)果
使用本文提出的技術(shù)構(gòu)建了一個(gè)在線(xiàn)域名檢測(cè)系統(tǒng),通過(guò)域名生成算法[13]生成惡意域名參與在線(xiàn)檢測(cè)。本文的神經(jīng)網(wǎng)絡(luò)模型是基于Keras構(gòu)建的,運(yùn)行環(huán)境為16 GB、8核CPU的虛擬服務(wù)器。對(duì)比實(shí)驗(yàn)采用了目前最常用的檢測(cè)惡意域名的算法和判定方案。
在線(xiàn)域名檢測(cè)系統(tǒng)需要域名生成算法生成域名進(jìn)行系統(tǒng)檢測(cè)。常用的域名生成算法通過(guò)隨機(jī)字符來(lái)生成域名,該隨機(jī)字符通過(guò)某些特定程式構(gòu)建算法,通過(guò)原始字符串變換得到域名,如添加日期、隨機(jī)數(shù)、哈希值、替換字符、偏移字符等。本文選取了幾個(gè)常用的域名生成算法,如banjori、corebot、cryptolocker、fibonacci、kraken、ramdo、ramnit等,用來(lái)在線(xiàn)生成域名,從而測(cè)試系統(tǒng)檢測(cè)能力。
模型的激活函數(shù)分別選用linear、relu、tanh函數(shù)進(jìn)行對(duì)比,Hinton的相關(guān)研究指出3層RBM網(wǎng)絡(luò)已能提取有效的特征用于分類(lèi)任務(wù)[14]。自編碼網(wǎng)絡(luò)層數(shù)為3個(gè),隱層節(jié)點(diǎn)數(shù)分別為128,64,9,采用softmax作為激活函數(shù)。為防止過(guò)擬合現(xiàn)象,采用L2正則化方法對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行約束,訓(xùn)練過(guò)程中引入dropout策略。另外,采用交叉熵?fù)p失函數(shù)和批量的rmsprop優(yōu)化方法用于模型訓(xùn)練,批量大小取50,訓(xùn)練輪數(shù)為500。對(duì)于LSTM嵌入層為9,dropout為0.5,dense為1,激活函數(shù)為sigmoid,損失函數(shù)為交叉熵函數(shù),優(yōu)化方法為rmsprop,batch_size和epoch分別設(shè)置為100和50。
對(duì)本文的工作主要從分類(lèi)器和整體系統(tǒng)模型兩方面來(lái)度量。分類(lèi)器和整體系統(tǒng)模型評(píng)價(jià)指標(biāo)包括精確率、F1值、召回率。
5.5.1 整體分析
為比較全連接層上激活函數(shù)對(duì)分類(lèi)效果的影響,將常用的三種激活函數(shù)做了對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表3。
表3 整體性能指標(biāo)表 %
表中,PR為精確度,Re為召回率,TPR為假負(fù)率,F(xiàn)PR為假正率。
由實(shí)驗(yàn)結(jié)果可知,經(jīng)過(guò)自編碼網(wǎng)絡(luò)降維的LSTM在各類(lèi)評(píng)價(jià)標(biāo)準(zhǔn)上均有一定的提高,在加入了Attention機(jī)制后,LSTM對(duì)文本序列邊緣檢測(cè)能力有所加強(qiáng),使用非線(xiàn)性tanh激活函數(shù)的混合模型在各類(lèi)指標(biāo)上效果最好。
表4 對(duì)比分類(lèi)結(jié)果表(精確度PR)
5.5.2 對(duì)比實(shí)驗(yàn)
對(duì)比實(shí)驗(yàn)列出的參數(shù)是每一類(lèi)的精度PR,在域名分類(lèi)中使用tanh激活函數(shù)的AN-At-LSTM模型檢測(cè)效果最好。傳統(tǒng)安全領(lǐng)域中,使用HMM、Bigram方法[2,15]對(duì)DGA的檢測(cè)獲得了較好的成果,并已運(yùn)用于安全軟件中。在降維算法方面,由于自編碼網(wǎng)絡(luò)降維屬于PCA降維的一種擴(kuò)展方法,前者的優(yōu)勢(shì)在于無(wú)需人工選擇特征,計(jì)算效率高。在相同實(shí)驗(yàn)數(shù)據(jù)集條件下分別對(duì)這幾種算法做實(shí)驗(yàn)對(duì)比。這里以DGA的二分類(lèi)效果進(jìn)行對(duì)比,其中AN-At-LSTM采用tanh激活函數(shù)。對(duì)比實(shí)驗(yàn)結(jié)果如表4。
beebone是一類(lèi)特殊的DGA域名,它不是通過(guò)隨機(jī)種子與時(shí)間生成的,而是有固定的格式,每部分都是從一個(gè)詞庫(kù)中隨機(jī)抽樣產(chǎn)生的,比如ns1.backdates13.biz和ns1.backdates0.biz、matsnu和beebone類(lèi)似。
這種類(lèi)型的域名在訓(xùn)練集中是從未出現(xiàn)過(guò)的,因此無(wú)法識(shí)別出來(lái)。如果這兩種類(lèi)型的域名不參與訓(xùn)練的話(huà),用其他模型也無(wú)法識(shí)別。
AUC為ROC曲線(xiàn)與坐標(biāo)軸圍成的面積,值越大,說(shuō)明性能越優(yōu),結(jié)果如圖3。
圖3 不同模型ROC曲線(xiàn)圖
為測(cè)試本文算法模型的檢測(cè)速率和實(shí)時(shí)性,利用域名生成算法生成數(shù)據(jù)集來(lái)檢測(cè)本文算法和其他算法模型測(cè)試時(shí)間和準(zhǔn)確率。結(jié)果如表5。
本文算法模型的檢測(cè)時(shí)間并不是最優(yōu),但準(zhǔn)確率最高。在GPU運(yùn)行環(huán)境下,該模型檢測(cè)時(shí)間和統(tǒng)計(jì)模型HMM檢測(cè)時(shí)間相差不大,具有較好的實(shí)時(shí)性,也優(yōu)于其他算法。本文提出的自編碼網(wǎng)絡(luò)特征降維結(jié)合加入Attention機(jī)制的LSTM模型具有較高的檢測(cè)率和實(shí)時(shí)性,性能上優(yōu)于HMM、Bigram和LSTM算法。
表5 不同算法模型測(cè)試時(shí)間
檢測(cè)DGA異常行為,需要檢測(cè)龐大復(fù)雜的數(shù)據(jù)流量,特征選擇的好壞直接影響檢測(cè)效果。針對(duì)網(wǎng)絡(luò)數(shù)據(jù)流量存在稀疏性、類(lèi)型復(fù)雜多樣的特點(diǎn),本文將自編碼網(wǎng)絡(luò)特征降維結(jié)合LSTM的深度學(xué)習(xí)方法應(yīng)用于DGA信息流數(shù)據(jù)上,并提出了一種縮短檢測(cè)時(shí)間、提高檢測(cè)率的AN-At-LSTM混合模型。通過(guò)與兩種傳統(tǒng)算法進(jìn)行對(duì)比實(shí)驗(yàn),證明了自編碼網(wǎng)絡(luò)特征降維LSTM算法模型具有較好的檢測(cè)性能。在部署系統(tǒng)上,比起傳統(tǒng)算法不需要人工設(shè)計(jì)特征,節(jié)省了大量的人力成本。而且在訓(xùn)練集比較完善的情況下,LSTM模型能夠得到非常好的識(shí)別效果。該模型是目前DGA域名檢測(cè)研究中較先進(jìn)的模型。