褚冰融,付海艷,劉 夢(mèng)
(海南師范大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 ???571127)
隨著網(wǎng)絡(luò)日新月異的發(fā)展,網(wǎng)絡(luò)攻擊也層出不窮。其中,僵尸網(wǎng)絡(luò)造成了巨大的威脅,黑客通過命令與控制(Command&Control,C&C)服務(wù)器[1]對(duì)受僵尸病毒感染的主機(jī)進(jìn)行控制,從而發(fā)起網(wǎng)絡(luò)攻擊。由于通過C&C服務(wù)器的IP地址可以被逆向或者列入黑名單以阻止攻擊,因此攻擊者為了使攻擊主機(jī)不易被發(fā)現(xiàn),使用域名生成算法DGA(Domain Generation Algorithms)[2]生成大量域名,以此快速變換域名對(duì)網(wǎng)絡(luò)進(jìn)行攻擊。
DGA的目標(biāo)是生成不存在的域名,因此DGA域名變化速率快且種類繁多。域名生成算法DGA主要分為兩種,一種是基于隨機(jī)字符的DGA,另一種是基于單詞字典[3]的DGA?;陔S機(jī)字符的DGA域名主要都是通過種子和算法進(jìn)行生成的[4]?;谧值涞腄GA域名是通過隨機(jī)字典中的合法詞匯而生成的,這類域名由于與合法域名過于形似,因此加大了檢測(cè)難度。一些常見類別的惡意域名見表1。由于DGA有不同的用途和類別,因此要對(duì)DGA進(jìn)行多分類,由此來判別其所生成的惡意軟件的類型,以便更好地應(yīng)對(duì)DGA 域名所帶來的危害。
表1 常見的DGA域名Table 1 Common DGA domain names
目前針對(duì)DGA 域名的檢測(cè)方法主要是基于深度學(xué)習(xí)的檢測(cè)方法,以循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Netwok)和卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)為主[5]。Yu 等[6]比較了堆疊CNN 和并行CNN(Parallel CNN)模型,Parallel CNN在檢測(cè)DGA域名時(shí)具有更高的精確度。為了解決正負(fù)樣本數(shù)據(jù)不均衡的問題,楊路輝等[7]提出了一種改進(jìn)的基于卷積神經(jīng)網(wǎng)絡(luò)的惡意域名檢測(cè)方法,通過引入一種聚焦損失函數(shù)提高了部分難檢測(cè)域名的檢測(cè)準(zhǔn)確率。Qiao 等[8]提出了一種基于長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)Long Short-Term Memory(LSTM)和注意力機(jī)制的DGA域名分類方法,其準(zhǔn)確率高于單一的LSTM模型。隨后,Namgung等[9]使用并行卷積神經(jīng)網(wǎng)絡(luò)(PCNN)結(jié)合基于注意力機(jī)制的雙向LSTM(BiLSTM),雖然整體檢測(cè)率高,但是對(duì)于locky、cryptolocker 這些基于隨機(jī)字符的域名檢測(cè)率依舊很低。Highnam 等[10]提出了CNN 與LSTM 并行使用的Bilbo-Hybrid模型,提高了對(duì)字典型DGA域名的檢測(cè)率。Ayub等[11]使用人工神經(jīng)網(wǎng)絡(luò)ANN(Artificial Netural Network)結(jié)合Word2vec模型對(duì)域名進(jìn)行檢測(cè),相比于單一的LSTM模型有更好的檢測(cè)率。
由此可知,目前DGA域名檢測(cè)所存在的主要問題是:(1)只對(duì)一些經(jīng)典的域名種類進(jìn)行檢測(cè);(2)無法同時(shí)檢測(cè)出基于字典的和基于隨機(jī)字符的DGA域名;(3)對(duì)于樣本分布不均衡的數(shù)據(jù)集域名檢測(cè)率低。因此,針對(duì)這些問題,本文構(gòu)建了改進(jìn)的CNN-LSTM算法,該算法結(jié)合了注意力機(jī)制、并行卷積神經(jīng)網(wǎng)絡(luò)(Parallel CNN)[12]和雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(BiLSTM),并且改進(jìn)了損失函數(shù),將focalloss 函數(shù)融入至算法中,即構(gòu)建了APCNN-BiLSTM-ATT(Attention Parallel CNN-Bidirectional LSTM-Attention)檢測(cè)算法進(jìn)行域名檢測(cè)。
該域名檢測(cè)算法主要分為3個(gè)步驟,分別為數(shù)據(jù)預(yù)處理、特征提取和特征融合。經(jīng)過上述3個(gè)步驟后便可以得到APCNN-BiLSTM-ATT算法模型,該模型的總體架構(gòu)如圖1所示。
圖1 模型總體架構(gòu)Figure 1 Overall structure of the model
數(shù)據(jù)預(yù)處理的步驟主要分為兩步,第一步是將域名文本轉(zhuǎn)化為數(shù)字序列,即進(jìn)行字符編碼和填充,第二步是將數(shù)字序列輸入至嵌入層,將其進(jìn)行向量化。
嵌入層的作用是將輸入的序列向量化,在嵌入層中,給定輸入矩陣Xn×t、權(quán)重矩陣Wt×m,該權(quán)重矩陣為模型在訓(xùn)練中學(xué)到的參數(shù),通過下列公式得到嵌入矩陣Yn×m:
數(shù)據(jù)預(yù)處理的算法步驟如下:
算法1 數(shù)據(jù)預(yù)處理算法
輸入:域名文本x
輸出:嵌入矩陣Y
(1)將域名文本x進(jìn)行字符編碼,得到數(shù)字序列xi;
(2)將xi進(jìn)行長(zhǎng)度標(biāo)準(zhǔn)化(為了統(tǒng)一輸入長(zhǎng)度),得到數(shù)字序列x′i;
(3)將輸入至嵌入層,通過式(1)得到嵌入矩陣Y。
特征提取由添加注意力機(jī)制的并行卷積神經(jīng)網(wǎng)絡(luò)(APCNN)和添加了注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(BiLSTM-ATT)兩部分組成,其APCNN層的作用是對(duì)特征向量進(jìn)行局部特征提取,BiLSTM層的作用是對(duì)特征向量進(jìn)行全局特征提取。
1.2.1 APCNN層
APCNN層是指添加了注意力機(jī)制的并行卷積神經(jīng)網(wǎng)絡(luò)層。
注意力機(jī)制(Attention 機(jī)制)最早在視覺圖像領(lǐng)域中被提出[13],在本文算法中所使用的注意力機(jī)制均為自注意力機(jī)制,它不需要依賴次序序列計(jì)算,可以有效地減少長(zhǎng)距離依賴,提取域名中的重要信息,減少了計(jì)算的復(fù)雜度,同時(shí)也增加了計(jì)算的并行性[14],在注意力機(jī)制中,給定3個(gè)輸入:Q(查詢Query)、K(鍵值Key)和V(內(nèi)容Value)。Q、K和V都是通過輸入矩陣Y和訓(xùn)練優(yōu)化得到的矩陣WQ、Wk和Wv進(jìn)行點(diǎn)積運(yùn)算得來的。然后將Q與K的轉(zhuǎn)置做點(diǎn)積運(yùn)算,接著除以一個(gè)縮放系數(shù),再使用softmax函數(shù)處理獲得結(jié)果,最后與V做張量乘法得到注意力的輸出結(jié)果Oatt,公式如下:
卷積神經(jīng)網(wǎng)絡(luò)(CNN)常用于處理圖像數(shù)據(jù),也可用來處理序列數(shù)據(jù),它通過從序列數(shù)據(jù)中提取特征來解決分類問題,其優(yōu)點(diǎn)是能學(xué)習(xí)局部信息,因此在本文的模型中,使用并行的卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)域名中的各類特征。該卷積神經(jīng)網(wǎng)絡(luò)由卷積層、池化層和隱藏層組成。其中,卷積層是核心部分,它將多個(gè)濾波器映射到輸入數(shù)據(jù),以找到合適的特征,通過將卷積核移動(dòng)k大小的窗口并在它們和整個(gè)輸入數(shù)據(jù)之間執(zhí)行卷積運(yùn)算來提取特征,公式如下:
其中,xt屬于注意力輸出結(jié)果Oatt中的向量,xt*xt-1表示卷積,k是卷積核的大小,C(t,k)是指卷積操作,R是卷積操作后得到的卷積結(jié)果,K是所有卷積核的大小,在本文中,K=[5, 6, 7]。
池化層的作用是對(duì)數(shù)據(jù)進(jìn)行降維,以此來提取重要特征,提高檢測(cè)率。池化層分為最大池化層和平均池化層,在該模型中,使用最大池化層,池化計(jì)算的公式如下:
將每一個(gè)卷積層的池化結(jié)果拼接起來,得到
隱藏層中包括全連接層、激活層和批處理規(guī)范化(Batch Normalization)和Dropout 層,其中,全連接層的作用是將提取的局部特征進(jìn)行特征融合,使用整流線性單元Re LU作為激活函數(shù),公式如下:
其中x∈P。
而當(dāng)學(xué)習(xí)率過高時(shí),會(huì)導(dǎo)致神經(jīng)元被置為0,使訓(xùn)練中斷,因此激活層中使用ELU函數(shù)以彌補(bǔ)ReLU函數(shù)的缺點(diǎn),可以讓激活的平均值接近于0,使其學(xué)習(xí)更快,然后使用批處理規(guī)范化使激活函數(shù)的結(jié)果服從正態(tài)分布,使模型可以學(xué)習(xí)而不是嚴(yán)重依賴于初始值,最后添加Dropout函數(shù)以防止過擬合,公式如下:
其中,γ和β為待學(xué)習(xí)的參數(shù),ε為偏置參數(shù)。
APCNN層的結(jié)構(gòu)圖如圖2所示,算法步驟如下:
圖2 APCNN結(jié)構(gòu)圖Figure 2 The structure diagram of APCNN
算法2 APCNN算法
輸入:嵌入矩陣Y
輸出:特征向量D
(1)將嵌入矩陣Y輸入至注意力機(jī)制,通過式(2)得到Oatt;
(2)將Oatt輸入至卷積層,通過式(4)得到R;
(3)將R輸入至池化層進(jìn)行降維,通過式(5)~(6)得到P;
(4)將P輸入至隱藏層,通過式(7)~(10)得到特征向量D。
1.2.2 BiLSTM-ATT層
這一層是由BiLSTM(雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò))和ATT(注意力機(jī)制)構(gòu)成。
LSTM是一種特殊的RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))[15],可以很好地解決長(zhǎng)時(shí)依賴問題,其結(jié)構(gòu)如圖3所示。
圖3 LSTM結(jié)構(gòu)圖Figure 3 The structure diagram of LSTM
由圖可知,LSTM由3個(gè)門來確定單元狀態(tài):遺忘門、輸入門和輸出門,具體公式如下:
其中,xt∈Y,是LSTM 網(wǎng)絡(luò)的輸入;ft是遺忘門得出的信息,決定需要丟棄的信息,然后進(jìn)入sigmoid 層;it是需要更新的值,再通過tanh 函數(shù)對(duì)狀態(tài)進(jìn)行更新,將舊狀態(tài)與ft相乘,丟棄掉確定需要丟棄的信息,接著加上it*C~t,便得到一個(gè)候選值;最后通過tanh 和sigmoid 兩個(gè)激活函數(shù)得到最終的輸出ht,其中Wi、Wc、Wo為權(quán)重矩陣。由模型的訓(xùn)練過程得出bi、bc和bo為偏置值,但LSTM 只能提取單向信息,這會(huì)降低準(zhǔn)確率。
因此提出了BiLSTM,BiLSTM 由前向LSTM和后向LSTM組成[16],可以同時(shí)提取前向和后向信息,輸出由前向輸入和反向輸入共同決定,相比于LSTM可以更好地捕捉雙向的語義依賴,用來提取域名中的字符雙向序列特征[17],結(jié)構(gòu)如圖4所示。
圖4 BiLSTM結(jié)構(gòu)圖Figure 4 The structure diagram of BiLSTM
其中,w1和w2屬于前向?qū)又袡?quán)重矩陣中的權(quán)重向量,w3和w5屬于后向?qū)又袡?quán)重矩陣中的權(quán)重向量,w4和w6屬于輸出層中權(quán)重矩陣的權(quán)重向量,ht是前向的輸出,是后向的輸出,兩者通過函數(shù)g得到BiLSTM層的輸出。然后將BiLSTM 層的輸出輸入至注意力層,通過1.2.1 節(jié)中的注意力機(jī)制公式得到該層的輸出O。
BiLSTM-ATT的結(jié)構(gòu)如圖5所示。
圖5 BiLSTM-ATT結(jié)構(gòu)圖Figure 5 The structure diagram of BiLSTM-ATT
算法步驟如下:
算法3 BiLSTM-ATT算法
輸入:嵌入矩陣Y
輸出:特征向量O
(1)將Y輸入至BiLSTM層,通過式(15)得到ot;
(2)將ot輸入至注意力層,通過式(2)得到特征向量O。
1.3 特征融合
在這一步中,將經(jīng)過局部特征提取后得到的結(jié)果和經(jīng)過全局特征提取后得到的結(jié)果進(jìn)行特征融合,即將APCNN層的輸出D和BiLSTM-ATT層的輸出O進(jìn)行拼接,公式如下:
然后通過全連接層進(jìn)行分類。全連接層的層數(shù)就是需要分類的DGA域名的種類數(shù)量,這一層的激活函數(shù)使用softmax函數(shù),該函數(shù)將多分類結(jié)果轉(zhuǎn)換為概率,公式如下:
特征融合的算法步驟如下:
算法4 特征融合算法
輸入:特征向量O,特征向量D
輸出:分類結(jié)果s
(1)將特征向量O和特征向量D通過concatenate函數(shù)進(jìn)行拼接,通過式(20)得到C;
(2)將C輸入至全連接層,使用softmax函數(shù)進(jìn)行分類,通過式(21)得到s= softmax(C);
(3)輸出分類結(jié)果s。
實(shí)驗(yàn)的數(shù)據(jù)集分為惡意域名數(shù)據(jù)集和良性域名數(shù)據(jù)集,惡意域名數(shù)據(jù)集中的數(shù)據(jù)主要是域名生成算法(DGA)自動(dòng)生成的惡意域名,現(xiàn)有的惡意域名數(shù)據(jù)集DGArchive[18]是公開的惡意域名數(shù)據(jù)集,良性域名數(shù)據(jù)集主要來自于文獻(xiàn)[19]。在本文中,DGA數(shù)據(jù)集中共有約85萬條數(shù)據(jù),良性數(shù)據(jù)集共有約76萬條數(shù)據(jù)。在評(píng)估模型的時(shí)候,使用交叉驗(yàn)證法劃分?jǐn)?shù)據(jù)集,將訓(xùn)練集、驗(yàn)證集和測(cè)試集的樣本數(shù)按照8∶1∶1的比例劃分。實(shí)驗(yàn)數(shù)據(jù)集的數(shù)量分布如表2所示。
表2 數(shù)據(jù)集數(shù)量分布Table 2 Distribution of the numbers of datasets
本文的實(shí)驗(yàn)環(huán)境如表3所示。
表3 實(shí)驗(yàn)環(huán)境Table 3 Experimental environment
(1)數(shù)據(jù)預(yù)處理
利用pandas 統(tǒng)計(jì)該數(shù)據(jù)集中域名的長(zhǎng)度,并且將其可視化,可視化得到的域名長(zhǎng)度分布如圖6所示,由此可知域名長(zhǎng)度最長(zhǎng)的不超過74,因此,在進(jìn)行數(shù)據(jù)預(yù)處理時(shí),對(duì)域名進(jìn)行字符編碼并將域名長(zhǎng)度填充至74,然后將其輸入至嵌入層進(jìn)行向量化。
圖6 域名長(zhǎng)度分布圖Figure 6 Distribution of domain name lengths
(2)特征提取
將經(jīng)過數(shù)據(jù)預(yù)處理的域名分別輸入至APCNN層進(jìn)行域名的局部特征提取,再輸入至BiLSTM-ATT層進(jìn)行域名的全局特征提取。
(3)特征融合
將上一步經(jīng)過局部特征提取后得到的結(jié)果和經(jīng)過全局特征提取后得到的結(jié)果進(jìn)行特征融合,然后通過全連接層進(jìn)行輸出。全連接層的層數(shù)就是需要分類的DGA域名的類別數(shù),因此在進(jìn)行二分類實(shí)驗(yàn)時(shí),全連接層的層數(shù)為2,在進(jìn)行多分類實(shí)驗(yàn)時(shí),全連接層的層數(shù)便是數(shù)據(jù)集域名的類別數(shù)48。
在APCNN 層中,卷積網(wǎng)絡(luò)的卷積核數(shù)量為3,卷積核大小為5、6、7,濾波器大小為256,激活函數(shù)是ReLU。在BiLSTM-ATT 層中,BiLSTM 層的維度 是128,激活函數(shù)為ReLU,該實(shí)驗(yàn)的損失函數(shù)為focalloss函數(shù),實(shí)驗(yàn)參數(shù)設(shè)置如表4所示。
表4 實(shí)驗(yàn)參數(shù)設(shè)置Table 4 Experimental parameter settings
由于實(shí)驗(yàn)數(shù)據(jù)集中惡意域名的數(shù)量分布不均,因此在進(jìn)行多分類域名檢測(cè)時(shí)導(dǎo)致部分?jǐn)?shù)據(jù)量很低的域名檢測(cè)率很低甚至為0,因此,在本算法進(jìn)行域名多分類時(shí),損失函數(shù)采用focalloss 函數(shù)[20]。focalloss 函數(shù)的公式如下:
其中,pt代表模型預(yù)測(cè)某類別的概率,α是類別權(quán)重,用來調(diào)和正負(fù)樣本的權(quán)重比,γ是用來調(diào)節(jié)樣本不均衡的問題,一般取γ≥1,對(duì)于易分類樣本的損失進(jìn)行一個(gè)冪函數(shù)的降低,因此(1 -pt)γ可以使模型更加關(guān)注于難分樣本,有利于模型預(yù)測(cè)能力的提高,因此在本實(shí)驗(yàn)中將focalloss函數(shù)作為損失函數(shù)。
為了驗(yàn)證該模型檢測(cè)DGA 域名的能力,本文的評(píng)價(jià)標(biāo)準(zhǔn)有準(zhǔn)確率(Accuracy,Acc)、精確率(Precision,Pr),召回率(Recall,Rc)和F1值(F1-score),計(jì)算公式如下:
其中,TP(True Positive)表示被正確歸為DGA類別的樣本數(shù);FP(False Positive)表示被錯(cuò)誤歸為良性域名的樣本數(shù);TN(True Negative)表示被正確歸為良性域名的樣本數(shù);FN(False Negative)表示被錯(cuò)誤歸為DGA 類別的樣本數(shù)。F1值是精確率和召回率的一個(gè)綜合評(píng)價(jià)指標(biāo),準(zhǔn)確率(Accuracy)是最基礎(chǔ)的評(píng)價(jià)指標(biāo),描述了整體檢測(cè)結(jié)果是否正確。在該實(shí)驗(yàn)中使用準(zhǔn)確率和F1值作為主要評(píng)價(jià)標(biāo)準(zhǔn),準(zhǔn)確率和F1值越大,說明模型性能越好。在多分類實(shí)驗(yàn)中,本文使用加權(quán)平均值中的評(píng)價(jià)指標(biāo)來驗(yàn)證模型的性能。加權(quán)平均(weighted avg)是指對(duì)每個(gè)類的指標(biāo)值進(jìn)行加權(quán)平均求和,它考慮了每個(gè)類別樣本數(shù)量在總樣本中的占比,因此可以用來判斷DGA域名的多分類檢測(cè)能力[21]。
在這一節(jié)中,對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,由于本算法中包含卷積神經(jīng)網(wǎng)絡(luò),因此卷積核的選擇很重要。首先使用不同的卷積核進(jìn)行實(shí)驗(yàn),在選擇好模型參數(shù)后進(jìn)行二分類和多分類實(shí)驗(yàn)分析。
2.6.1 卷積核的選擇
在選擇卷積核時(shí),選擇了幾種常見的卷積核組合進(jìn)行對(duì)比實(shí)驗(yàn),只改變卷積核的大小,其他實(shí)驗(yàn)參數(shù)不變。由表5可知,當(dāng)卷積核大小為5、6、7時(shí)實(shí)驗(yàn)的準(zhǔn)確率最高,且這個(gè)組合卷積核的數(shù)量少,可以減少計(jì)算時(shí)間,卷積核的濾波器的大小都是256。
表5 卷積核大小對(duì)比實(shí)驗(yàn)Table 5 Comparison of convolution kernel sizes
2.6.2 分類結(jié)果分析
在這一節(jié)中,本文使用并行CNN(Parallel CNN)、LSTM-ATT、Bilbo-Hybrid模型和本文提出的模型進(jìn)行二分類和多分類對(duì)比實(shí)驗(yàn),通過比對(duì)它們的準(zhǔn)確率和F1值驗(yàn)證DGA域名的檢測(cè)能力。二分類是指將域名分為DGA 域名和良性域名兩個(gè)類別。二分類實(shí)驗(yàn)結(jié)果表明,本文提出的模型在DGA 檢測(cè)上準(zhǔn)確率和F1 值(0.982 9、0.982 9)高于其他模型,計(jì)算時(shí)間也大都小于其他模型,這說明本文提出的模型對(duì)DGA域名檢測(cè)能力好于其他模型,結(jié)果如表6所示。
表6 二分類實(shí)驗(yàn)結(jié)果Table 6 Results of binary classification
隨后再進(jìn)行多分類對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)的準(zhǔn)確率如表7所示,結(jié)果表明,在進(jìn)行多分類實(shí)驗(yàn)時(shí),本文提出的算法檢測(cè)DGA域名的準(zhǔn)確率(0.929 2)高于其他模型,本文提出的算法在精確率、召回率和F1值這3個(gè)加權(quán)平均值的綜合評(píng)價(jià)指標(biāo)上均有提升(分別為0.931 0、0.929 2、0.928 2),訓(xùn)練時(shí)間也有所減短,這證明本文提出的模型檢測(cè)DGA域名的能力高于其他模型。
表7 多分類實(shí)驗(yàn)結(jié)果Table 7 Results of multi-classification
2.6.3 多分類對(duì)比實(shí)驗(yàn)
本文主要提升了字典型DGA 域名的分類能力,如mastnu、suppobox 和gozi 等域名。圖7 展示了字典型DGA域名的F1值,其中各字典型DGA域名的F1值都有所提升,大部分的字典型DGA域名的F1值幾乎達(dá)到了1,這說明本模型對(duì)于字典型DGA的檢測(cè)能力高于其他模型。由圖7可知,本模型對(duì)mastnu這一類別的字典型域名的F1值提升最多。圖8對(duì)mastnu 這一域名進(jìn)行了具體分析,該類域名的準(zhǔn)確率和F1值都有大幅度提升,本模型對(duì)于這一類別域名的召回率提升最多,由此可知,本文提出的模型對(duì)mastnu域名的檢測(cè)能力高于其他模型。
圖7 字典型DGA域名F1值Figure 7 F1-scores of dictionary-based DGA domain names
圖8 mastnu DGA域名精確率、召回率和F1值結(jié)果對(duì)比Figure 8 The precision, recall and F1-score comparison of mastnu DGA domain names
本文同時(shí)也提升了基于字符的DGA域名的F1值,但由于其他模型對(duì)于基于字符型的DGA域名的檢測(cè)率本身就不低,因此本模型對(duì)于該類型域名檢測(cè)率的提升幅度并不大,字符型的DGA域名的F1值對(duì)比如圖9 所示。由于focalloss 函數(shù)的加入,因此本文提升了一些數(shù)據(jù)量很低的域名的檢測(cè)率。由表2 可知,mirai、dowanloader、makloader和vidrotid等域名的數(shù)據(jù)量很少,由圖10對(duì)這些類別的DGA域名F1值進(jìn)行的統(tǒng)計(jì)分析可知,這些數(shù)據(jù)量很少的域名的F1值高于其他模型的F1值,但是對(duì)于dircypt這一類域名,本文模型的F1值提升不高。總體來說,本文提出的模型對(duì)DGA的檢測(cè)效果好于其他模型。
圖9 字符型DGA域名F1值Figure 9 F1-scores of character-based DGA domain names
圖10 數(shù)據(jù)量少的DGA域名F1值Figure 10 F1-scores of DGA domain names with less number
APCNN-BiLSTM-ATT 檢測(cè)模型的多分類混淆矩陣如圖11所示,該矩陣的每一行對(duì)應(yīng)著預(yù)測(cè)屬于該類的所有樣本,其對(duì)角線表示預(yù)測(cè)正確的樣本個(gè)數(shù),由此可知,本文提出的模型取得了比較有效的分類結(jié)果,但同時(shí)也有一些域名會(huì)被誤判,比如conficker和nymaim域名被誤判為pykspa域名等等,但被誤判的域名類型不多??傮w而言本文所提出的模型在DGA類別的多分類檢測(cè)上是有效的。
圖11 APCNN-BiLSTM-ATT檢測(cè)模型的多分類混淆矩陣Figure 11 Nomalized confusion matrix for APCNN-BiLSTM-ATT detection model
本文提出了APCNN-BiLSTM-ATT域名檢測(cè)算法以檢測(cè)DGA域名,描述了該域名檢測(cè)算法的算法流程,并且使用了大量類別的DGA域名進(jìn)行了二分類和多分類實(shí)驗(yàn),通過與其他模型進(jìn)行比較,可知本文提出的模型對(duì)DGA域名的檢測(cè)分類效果高于其他模型,尤其提高了基于字典和一些數(shù)據(jù)量很小的DGA域名的分類準(zhǔn)確率。
不過仍然存在少許域名檢測(cè)率很低的問題,雖然提高了一些數(shù)據(jù)量少的DGA域名的檢測(cè)率,但提升幅度不高,針對(duì)此類問題,后續(xù)會(huì)繼續(xù)改進(jìn)算法以解決此問題。此外,還有少許基于字符的DGA 域名檢測(cè)率低,其原因是本文提出的模型沒有準(zhǔn)確地提取其特征,導(dǎo)致這類域名與良性域名相混淆,針對(duì)這一類問題,在后續(xù)的研究中可以通過在嵌入層中使用詞嵌入的方法以提取域名特征,從而提高域名的檢測(cè)率。