趙 凡,趙 宏,常兆斌
(1.甘肅省科學(xué)技術(shù)情報研究所 創(chuàng)新平臺中心,甘肅 蘭州 730000;2.蘭州理工大學(xué) 計算機(jī)與通信學(xué)院,甘肅 蘭州 730050)
域名系統(tǒng)(domain name system,DNS)難以實時預(yù)判攻擊行為,極易受到攻擊者的關(guān)注[1]。攻擊者正是利用域名解析的機(jī)制[2,3],將合法訪問的DNS請求映射到攻擊者提前設(shè)定的服務(wù)器上,并通過命令控制中心C&C(command and control)控制受感染主機(jī)[4],竊取受感染主機(jī)的信息,導(dǎo)致用戶財產(chǎn)、隱私信息等受到威脅。
傳統(tǒng)的域名檢測方法通過綜合分析域名在構(gòu)詞、字符統(tǒng)計和網(wǎng)絡(luò)結(jié)構(gòu)等方面存在統(tǒng)計特征快速判定惡意域名[5,6]。如文獻(xiàn)[7]通過統(tǒng)計大量合法域名的Bi-Gram特征,并根據(jù)待測域名中包含的Bi-Gram頻次,給出待測域名的分類結(jié)果。文獻(xiàn)[8]提出了一種結(jié)合詞法特征的域名判定方法,通過計算待測域名與歷史數(shù)據(jù)之間的編輯距離和差異度值,快速做出判定。文獻(xiàn)[9]通過提取28維域名字符特征,并結(jié)合粗糙集增量式規(guī)則的機(jī)器學(xué)習(xí)分類算法實現(xiàn)惡意域名的分類。利用提取的域名字符特征并結(jié)合機(jī)器學(xué)習(xí)分類算法識別惡意域名是一種最直接的檢測方法,但檢測中大多依賴手工設(shè)計的特征,且特征維度有限,影響檢測效果。
結(jié)合深度學(xué)習(xí)相關(guān)算法快速判定待測域名的合法性,成為近年來的熱點研究。如文獻(xiàn)[10]將可分離卷積引入惡意域名檢測領(lǐng)域,綜合考慮了檢測時間開銷和檢測精度。文獻(xiàn)[11]使用長短時記憶神經(jīng)網(wǎng)絡(luò)LSTM并引入注意力機(jī)制構(gòu)建惡意域名檢測模型,通過實驗驗證了模型的有效性。文獻(xiàn)[12]結(jié)合深度學(xué)習(xí)和自然語言處理技術(shù),構(gòu)建了一種用于DGA(domains generation algorithm)算法生成的惡意域名檢測模型。文獻(xiàn)[13]在循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上引入注意力機(jī)制,提出了一種惡意域名檢測方法,緩解了利用隨機(jī)生成模型生成的惡意域名隨機(jī)性強(qiáng)而難以檢測的問題。
近年來的研究成果表明,基于深度學(xué)習(xí)的惡意域名檢測算法檢測性能明顯優(yōu)于傳統(tǒng)基于字符特征匹配的惡意域名檢測算法[14]。然而隨著檢測方法的增多,新變種、新出現(xiàn)或偽造等域名的類型不斷豐富?,F(xiàn)有主流的惡意域名檢測模型對于該類小樣本惡意域名的識別效果不佳。因此設(shè)計出一種能夠識別出多種家族多種類型的小樣本惡意域名檢測模型是惡意域名檢測領(lǐng)域的一個重要研究方向。
綜上,針對現(xiàn)有惡意域名檢測模型對新變種、偽造等類型的域名識別精度不高和識別類型較少的問題。首先,通過構(gòu)造BiLSTM和CNN的組合模型BiLSTM-CNN,并利用數(shù)據(jù)量充足的多家族惡意域名集進(jìn)行遷移知識的預(yù)訓(xùn)練;然后,遷移混合模型BiLSTM-CNN的知識到小樣本惡意域名檢測模型中,并利用已有小樣本歷史數(shù)據(jù)微調(diào)提出的BiLSTM-CNN,構(gòu)造一種小樣本惡意域名檢測算法。
基于遷移學(xué)習(xí)的小樣本惡意域名檢測算法分為數(shù)據(jù)預(yù)處理、BiLSTM-CNN模型構(gòu)造、小樣本遷移模型構(gòu)造等3個步驟,算法框架如圖1所示。
圖1 算法框架
首先,采用Keras中的Embedding層將規(guī)整后的URL(uniform resource locator)映射為數(shù)值向量;然后,利用BiLSTM提取多家族URL的全局特征,利用卷積神經(jīng)網(wǎng)絡(luò)CNN在學(xué)習(xí)BiLSTM網(wǎng)絡(luò)提取域名上下文信息的基礎(chǔ)上,進(jìn)行局部強(qiáng)特征提取,并采用充足的多家族域名數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練;最后,通過遷移BiLSTM-CNN惡意域名檢測模型預(yù)訓(xùn)練的知識參數(shù)到小樣本的惡意域名檢測模型中,并利用新變種、新出現(xiàn)等小樣本惡意域名集進(jìn)行參數(shù)微調(diào)。
由于頂級域名數(shù)量少、長度短、知名度高、容易識別等原因,很少在域名頂層設(shè)計惡意域名[15]。因此,本文模型首先提取第二層域名和其余子域名層,構(gòu)造惡意域名集和合法域名集。
為了將域名送入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行特征提取,首先需要對URL中的字符進(jìn)行向量化。傳統(tǒng)字符向量化存在One-hot編碼和分布式(distributed word representation,DWR)表示等兩種,其中One-hot編碼表示如 [0,0,…,0,1,0], 其中1表示該字符在字典集中的位置,當(dāng)字典維度較大時,該類編碼方式計算開銷較大,且編碼稀疏,無法表達(dá)上下文關(guān)聯(lián)信息;DWR編碼方式可以將字符映射為定長向量,維度可控,因其出色的上下文信息包含能力被廣泛地應(yīng)用。因此,本文采用分布式編碼DWR對URL中的每個字符進(jìn)行數(shù)值向量化。URL字符量化前需統(tǒng)計URL中常見的字符個數(shù),本文根據(jù)ASCII碼字符集設(shè)定映射字典為128維。圖2以甘肅省科學(xué)技術(shù)情報研究所的主體域名“gsinfo”為例說明量化過程。
圖2 域名向量化
由于神經(jīng)網(wǎng)絡(luò)的輸入為定長的向量,此處設(shè)定域名字符串截斷長度為Len。如果字符串長度大于Len,對超出部分的字符或字符串剪切;當(dāng)字符串長度小于Len時,利用零向量補全,本文Len取值128。具體截斷方式采用式(1)
(1)
式中: F(urli) 為規(guī)整后的域名字符串向量;urli為待調(diào)整的域名字符串;Vz是零向量。
(1)BiLSTM模型
不同家族的域名生成方式和結(jié)構(gòu)特征各不相同,然而,在字符統(tǒng)計特征和語義關(guān)聯(lián)上仍存在上下文依賴關(guān)系[16]。為此,本文利用BiLSTM網(wǎng)絡(luò)提取域名字符序列的上下文特征。BiLSTM網(wǎng)絡(luò)的結(jié)構(gòu)如圖3所示。
圖3 BiLSTM結(jié)構(gòu)
圖3中, S={V(w1),V(w2),…,V(wn)} 表示域名向量化矩陣,利用BiLSTM進(jìn)行上下文特征提取,BiLSTM上下文提取計算請參見文獻(xiàn)[17]。
(2)CNN模型
卷積神經(jīng)網(wǎng)絡(luò)CNN是一種前饋神經(jīng)網(wǎng)絡(luò),近年來被廣泛地應(yīng)用于時間序列分析[10]。本文采用圖4中的CNN網(wǎng)絡(luò)模型在學(xué)習(xí)BiLSTM提取URL序列的上下文特征的基礎(chǔ)上,進(jìn)行局部深度特征提取。
圖4 CNN網(wǎng)絡(luò)結(jié)構(gòu)
卷積層將BiLSTM的輸出作為輸入,通過CNN的卷積運算提取域名字符序列在空間維度上的深層特征。計算如式(2)所示
ot=f(wd·ht+bt)
(2)
式中:ot為t時刻卷積層的輸出特征;f為縮放指數(shù)線性函數(shù)Selu,wd表示卷積核的大小,ht表示t時刻BiLSTM的輸出,bt表示偏置。當(dāng)卷積核計算完成所有BiLSTM的輸出 HBiLSTM={h1,h2,…,ht,…,hn} 后,得到輸出特征Oconv={o1,o2,…,ot,…,on}。
獲得特征序列Oconv后,對其進(jìn)行池化操作,本文采用平均池化的方法,計算如式(3)所示
pt=ave_pool[Oconv]
(3)
(3)BiLSTM-CNN混合模型
圖5給出了BiLSTM-CNN構(gòu)造流程。在特征提取階段,首先采用雙向長短時記憶神經(jīng)網(wǎng)絡(luò)BiLSTM提取URL序列的上下文特征;然后,利用卷積神經(jīng)網(wǎng)絡(luò)CNN進(jìn)行局部深度特征提??;在分類階段,為防止模型過擬合,提升模型的魯棒性,在全連接層之前使用Dropout對神經(jīng)元隨機(jī)丟棄,并將Dropout層的輸出作為Softmax的輸入,計算出分類結(jié)果,本文Dropout取值為0.5。
圖5 BiLSTM-CNN網(wǎng)絡(luò)結(jié)構(gòu)
參數(shù)遷移的方法能夠?qū)崿F(xiàn)模型間參數(shù)的共享,有效解決因訓(xùn)練數(shù)據(jù)樣本嚴(yán)重不足的問題。采用域名變換技術(shù)或人工生成的方式產(chǎn)生的新變種或新出現(xiàn)的惡意域名由于更新快、數(shù)據(jù)樣本少和信息不全等原因難以精確檢測。因此,本文采用遷移學(xué)習(xí)的方法將已訓(xùn)練好的BiLSTM-CNN混合模型的參數(shù)遷移到小樣本惡意域名檢測模型中,并利用有標(biāo)簽的小樣本數(shù)據(jù)結(jié)合全樣本梯度下降算法完成小樣本惡意域名檢測模型的參數(shù)微調(diào)。模型參數(shù)遷移如圖6所示。
圖6 遷移模型
本文數(shù)據(jù)集包含180 000條合法域名和76 000條惡意域名。樣本集詳細(xì)信息見表1。
表1 數(shù)據(jù)集描述
實驗在Intel Core i7/16 GB的Windows 10下進(jìn)行;模型的實現(xiàn)基于Tensorflow深度學(xué)習(xí)框架。
為評估模型對于合法域名與惡意域名的識別性能,采用Accuracy、Precision、誤報率FPR和漏報率FNR作為度量指標(biāo),通常Accuracy和Precision越高、FPR和FNR越低,表明檢測效果越好。計算如式(4)所示,混淆矩陣見表2。此外,為避免單次實驗結(jié)果不穩(wěn)定的問題,采用多次實驗的平均值作為最終評價結(jié)果
表2 混淆矩陣計算
(4)
本文模型采用2層BiLSTM層、5層卷積層、5層池化層和1層全連接層。模型詳細(xì)參數(shù)見表3。
表3 參數(shù)設(shè)置
為防止模型過擬合,在BiLSTM層后加入Dropout層,設(shè)定Dropout率為0.5,最后連接一個全連接層,并使用激活函數(shù)Softmax完成計算。
基于遷移學(xué)習(xí)的小樣本惡意域名檢測算法對黑名單集和25種數(shù)據(jù)量充足的家族惡意域名集的檢測性能見表4。表5給出了對22類小樣本家族惡意的檢測性能。
表4 黑名單集和25種數(shù)據(jù)量充足的家族惡意域名集的檢測性能/%
表5 小樣本惡意域名檢測結(jié)果/%
本文對比分析了文獻(xiàn)[6]基于卷積神經(jīng)網(wǎng)絡(luò)的惡意域名檢測算法、文獻(xiàn)[10]基于可分離卷積的惡意域名檢測算法、文獻(xiàn)[16]基于CNN-BiLSTM并行的惡意域名檢測算法、文獻(xiàn)[20]基于深度學(xué)習(xí)的惡意DGA域名檢測算法。性能對比結(jié)果如圖7和圖8所示。
由圖7可知,本文模型對22類小樣本的家族惡意域名平均檢測準(zhǔn)確率均優(yōu)于當(dāng)前主流的域名檢測模型。上述數(shù)據(jù)也進(jìn)一步驗證了本文模型在小樣本惡意域名集上的高效性;由圖8可知,本文模型在歷史惡意域名和25種數(shù)據(jù)量充足的常規(guī)惡意域名數(shù)據(jù)集上的平均識別準(zhǔn)確率均優(yōu)于同類主流惡意域名檢測算法。
圖7 5種算法對小樣本的惡意域名檢測準(zhǔn)確率
圖8 5種算法對數(shù)據(jù)量充足的惡意域名集檢測準(zhǔn)確率
綜上,本文模型在保持較高檢測精度的基礎(chǔ)上,可以識別出多家族多種類型的惡意域名,具有更廣泛檢測范圍。此外,與同類相關(guān)工作對比,本文模型更適合在真實場景中應(yīng)用。
考慮到在實際網(wǎng)絡(luò)環(huán)境中檢測惡意域名,需兼顧檢測精度和惡意域名類型,本文提出了一種基于遷移學(xué)習(xí)的小樣本的惡意域名檢測算法。該算法利用數(shù)據(jù)量充足的黑名單集和多家族惡意域名集進(jìn)行BiLSTM-CNN模型參數(shù)預(yù)訓(xùn)練,并遷移模型參數(shù)至小樣本惡意域名檢測模型,利用當(dāng)前已有小樣本惡意域名歷史數(shù)據(jù)微調(diào)模型參數(shù)。通過在數(shù)據(jù)量充足的多家族惡意域名集和小樣本惡意域名集上進(jìn)行實驗,結(jié)果表明了該算法在保持較高檢測精度的基礎(chǔ)上,能夠識別多種類型的惡意域名。