王中華 徐 杰 韓 健 臧天寧
1(國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心 北京 100029) 2(中國(guó)工業(yè)互聯(lián)網(wǎng)研究院 北京 100102) 3(中國(guó)科學(xué)院信息工程研究所 北京 100093)
互聯(lián)網(wǎng)的發(fā)展給人們帶來(lái)便利的同時(shí),也存在著一些安全風(fēng)險(xiǎn),如釣魚(yú)網(wǎng)站、垃圾郵件等,其中僵尸網(wǎng)絡(luò)的威脅尤為巨大.隨著區(qū)塊鏈技術(shù)的普及和應(yīng)用,區(qū)塊鏈域名系統(tǒng)(blockchain domain name system, BDNS)應(yīng)運(yùn)而生并逐漸被廣泛采用,一些僵尸網(wǎng)絡(luò)開(kāi)始采用區(qū)塊鏈域名(blockchain domain name, BDN)來(lái)托管命令控制服務(wù)器(command and control server, C&C Server),進(jìn)而實(shí)施惡意活動(dòng).
2021年,微軟的數(shù)字防御報(bào)告顯示[1],近幾年BDN因?yàn)槠淠涿院涂箤彶樾缘忍攸c(diǎn),已經(jīng)被廣泛應(yīng)用到僵尸網(wǎng)絡(luò)中.Necurs僵尸網(wǎng)絡(luò)家族根據(jù)域名生成算法(domain generation algorithm, DGA)生成“.bit”頂級(jí)域(top level domain, TLD)的域名;銀行木馬Trickbot僵尸網(wǎng)絡(luò)家族和Bazarloader采用“.bazar”TLD生成DGA域名[1];Mirai僵尸網(wǎng)絡(luò)的變種Fbot蠕蟲(chóng)[2]采用“.lib”TLD生成惡意域名.利用BDN從事惡意活動(dòng),可以躲避傳統(tǒng)惡意域名檢測(cè)方法的檢測(cè),這為僵尸網(wǎng)絡(luò)實(shí)施惡意活動(dòng)提供了新的方式,給網(wǎng)絡(luò)安全帶來(lái)新的威脅.
本文針對(duì)現(xiàn)有方法的局限性,深入刻畫(huà)僵尸網(wǎng)絡(luò)的特征,并著重分析了惡意BDN的流量行為以及資源記錄,共提取出24個(gè)特征,采用卷積神經(jīng)網(wǎng)絡(luò)算法檢測(cè)惡意BDN.實(shí)驗(yàn)結(jié)果顯示,與現(xiàn)有的方法相比,本文方法具有更好的檢測(cè)結(jié)果,并且能夠發(fā)現(xiàn)新出現(xiàn)的惡意BDN.本文的主要貢獻(xiàn)如下:
1) 提出了一種新型的惡意區(qū)塊鏈域名檢測(cè)方法,該方法采用卷積神經(jīng)網(wǎng)絡(luò)對(duì)域名特征進(jìn)行轉(zhuǎn)換,從多角度描述域名特征,進(jìn)而檢測(cè)惡意區(qū)塊鏈域名;
2) 通過(guò)深入分析僵尸網(wǎng)絡(luò)的特點(diǎn),挖掘惡意區(qū)塊鏈域名的流行行為以及靜態(tài)特征,從3個(gè)角度提取域名的24個(gè)統(tǒng)計(jì)特征.
3) 在測(cè)試流量構(gòu)建的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果顯示,本文方法的F1_Score為0.988 3,AUC為0.989 6.驗(yàn)證了本文方法效果更好,并且能夠發(fā)現(xiàn)更多的未知惡意域名.
惡意域名是指被用于惡意活動(dòng)的域名. 以僵尸網(wǎng)絡(luò)為例,僵尸網(wǎng)絡(luò)由互聯(lián)網(wǎng)中受到黑客集中控制的若干臺(tái)計(jì)算機(jī)組成,這些計(jì)算機(jī)往往被黑客用來(lái)發(fā)起大規(guī)模的網(wǎng)絡(luò)攻擊,同時(shí)這些計(jì)算機(jī)所保存的信息,譬如密碼等私人信息也都可被黑客隨意獲取.僵尸網(wǎng)絡(luò)中的計(jì)算機(jī)也被稱(chēng)為“肉雞”,“肉雞”通過(guò)域名解析定位到C&C服務(wù)器的IP,由C&C服務(wù)器向這些“肉雞”發(fā)送命令,進(jìn)而“肉雞”執(zhí)行操作.由此可見(jiàn),域名在計(jì)算機(jī)通信過(guò)程中發(fā)揮著重要作用.
區(qū)塊鏈域名本質(zhì)上也是域名,所以基于區(qū)塊鏈域名的僵尸網(wǎng)絡(luò)在行為上和基于傳統(tǒng)域名的僵尸網(wǎng)絡(luò)類(lèi)似.因此,下面從傳統(tǒng)惡意域名和惡意BDN 2方面回顧研究現(xiàn)狀.
1.2.1 傳統(tǒng)惡意域名
針對(duì)傳統(tǒng)惡意域名方面,研究人員進(jìn)行了大量研究.一些研究專(zhuān)注于惡意域名產(chǎn)生的錯(cuò)誤信息,如NXDomain,一些研究則將重點(diǎn)放在流量行為上面,還有一些研究著重分析域名字符串等信息.
通常情況下,對(duì)DGA域名的DNS請(qǐng)求通常會(huì)導(dǎo)致產(chǎn)生不存在域名(non-existent domain, NXDomain)響應(yīng),并且同一個(gè)DGA算法生成的域名會(huì)產(chǎn)生相似的不存在域名響應(yīng).Antonakakis等人[3]通過(guò)分析NXDomain信息,利用聚類(lèi)和分類(lèi)算法檢測(cè)惡意域名.Zhang等人[4]通過(guò)分析HTTP日志,發(fā)現(xiàn)了基于錯(cuò)誤源模式、錯(cuò)誤生成模式和錯(cuò)誤恢復(fù)模式的惡意活動(dòng),根據(jù)HTTP失敗以及成功請(qǐng)求流量實(shí)現(xiàn)了惡意域名自動(dòng)檢測(cè)系統(tǒng).谷勇浩等人[5]通過(guò)提取域名響應(yīng)時(shí)間和域名響應(yīng)包大小檢測(cè)惡意域名,降低了CDN域名的誤報(bào)率,提升了檢測(cè)效果.席一帆等人[6]通過(guò)構(gòu)建詞圖檢測(cè)惡意DGA域名,達(dá)到了較好的檢測(cè)效果.Shi等人[7]基于域名自身的特征,如長(zhǎng)度、注冊(cè)時(shí)間等,利用神經(jīng)網(wǎng)絡(luò)檢測(cè)惡意域名.
上述方法提取whois等區(qū)塊鏈域名沒(méi)有的特征,并且沒(méi)有挖掘區(qū)塊鏈域名的特征.因此不適用于惡意區(qū)塊鏈域名的檢測(cè).
1.2.2 惡意BDN
目前針對(duì)惡意BDN的檢測(cè)工作比較少.Patsakis等人[8]認(rèn)為BDNS為僵尸網(wǎng)絡(luò)提供了一種更安全隱蔽的方法與C&C服務(wù)器通信,僅討論了BDNS所來(lái)帶來(lái)的威脅,并沒(méi)有給出具體的檢測(cè)方法.Huang等人[9]通過(guò)分析DNS流量行為檢測(cè)惡意BDN,但良性樣本數(shù)量較小,且特征容易被偽造,具有一定的局限性.Fran等人[10]將區(qū)塊鏈錢(qián)包、域名以及解析IP進(jìn)行關(guān)聯(lián)來(lái)推斷惡意域名,但是該方法需要大量歷史信息,并且難以發(fā)現(xiàn)新出現(xiàn)的惡意域名.
域名系統(tǒng)(domain name system, DNS)是互聯(lián)網(wǎng)的一項(xiàng)基礎(chǔ)服務(wù),作為將域名和IP地址相互映射的數(shù)據(jù)庫(kù),可以使用戶(hù)很方便地訪問(wèn)互聯(lián)網(wǎng)[11-12].域名系統(tǒng)因其設(shè)計(jì)理念等歷史原因,存在一定的安全風(fēng)險(xiǎn),如單點(diǎn)故障、分布式拒絕服務(wù)攻擊等.隨著區(qū)塊鏈技術(shù)的成熟,一些公司將區(qū)塊鏈技術(shù)應(yīng)用于域名解析,建立了去中心化的BDNS.現(xiàn)在有很多種BDNS,各自的TLD[13-15]如表1所示,這類(lèi)域名和互聯(lián)網(wǎng)名稱(chēng)與數(shù)字地址分配(Internet corporation for assigned names and numbers, ICANN)授權(quán)的TLD不同,只能被BDNS服務(wù)器解析.
表1 常見(jiàn)的BDNS及其TLD
BDNS提供了和傳統(tǒng)DNS相同種類(lèi)的資源記錄,但不提供與用戶(hù)隱私相關(guān)的信息,如whois信息.和DNS不同,BDNS在區(qū)塊上存儲(chǔ)域名的資源記錄,并且保留多個(gè)備份.因此BDNS的域名解析過(guò)程不會(huì)分層,用戶(hù)請(qǐng)求任意一個(gè)備份均可直接獲得權(quán)威響應(yīng),如圖1所示:
圖1 區(qū)塊鏈域名解析過(guò)程
同時(shí),對(duì)BDN的每次相關(guān)更新都會(huì)被記錄到區(qū)塊中,比如修改A記錄.區(qū)塊鏈技術(shù)保證只有域名所有者可以修改該域名的資源記錄.因此,BDN具有匿名性和抗審查性等特點(diǎn),克服了傳統(tǒng)DNS的缺點(diǎn),但也為黑客提供了可靠方法來(lái)托管C&C服務(wù)器.
1.4.1 機(jī)器學(xué)習(xí)
本文采用的機(jī)器學(xué)習(xí)方法是隨機(jī)森林、支持向量機(jī)和神經(jīng)網(wǎng)絡(luò).
1) 隨機(jī)森林(random forests, RF)屬于集成學(xué)習(xí)的一種組合分類(lèi)算法[16].該算法采用抽樣法從數(shù)據(jù)集中抽取多個(gè)樣本訓(xùn)練決策樹(shù),然后將這些決策樹(shù)的結(jié)果組合在一起,通過(guò)投票或取平均值得出最終的分類(lèi)或預(yù)測(cè)結(jié)果,使得整體模型的結(jié)果具有較高的精確度和泛化性能.
2) 支持向量機(jī)(support vector machine, SVM)是定義在特征空間上的間隔最大的線性分類(lèi)器[17].該方法通過(guò)將輸入向量映射到一個(gè)高維特征空間,在此空間中構(gòu)造最優(yōu)分類(lèi)超平面,從而使正例和反例樣本之間的分離界限達(dá)到最大,使其泛化性能達(dá)到最優(yōu).
3) 神經(jīng)網(wǎng)絡(luò)(neural network, NN)源于感知機(jī)模型,由大量的人工神經(jīng)元連接進(jìn)行計(jì)算,能夠在外界信息的基礎(chǔ)上通過(guò)反向傳播改變自身參數(shù),是一種自適應(yīng)模型[18].多層隱藏層以及激活函數(shù)的多樣性使得網(wǎng)絡(luò)具有較強(qiáng)的表達(dá)能力,輸出層的多個(gè)神經(jīng)元使得網(wǎng)絡(luò)可以靈活地應(yīng)用于分類(lèi)、回歸、降維和聚類(lèi)等任務(wù).
1.4.2 深度學(xué)習(xí)
本文采用的深度學(xué)習(xí)方法是卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN).CNN以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),除了輸入層和輸出層之外,由卷積層、池化層和全連接層組成[19].
1) 卷積層:卷積層的作用是對(duì)上一層的輸出提取更高層次的特征.每個(gè)卷積層由若干個(gè)卷積單元組成,卷積層中每個(gè)節(jié)點(diǎn)的輸入都是上一層卷積核局部區(qū)域的計(jì)算結(jié)果,卷積核的尺寸可根據(jù)特征以及目標(biāo)任務(wù)來(lái)自定義.
2) 池化層:池化層的作用是對(duì)上一層的輸出進(jìn)行壓縮.該層將輸入的特征圖劃分為若干個(gè)矩形區(qū)域.一方面通過(guò)對(duì)子區(qū)域進(jìn)行計(jì)算,使特征圖變小,進(jìn)行特征壓縮;另一方面利用池化層,參數(shù)的數(shù)量和模型的計(jì)算量也會(huì)大大減少.常用的池化方法主要有均值池化和最大池化2種.
3) 全連接層:全連接層的作用是依據(jù)特征向量進(jìn)行分類(lèi),是連接在網(wǎng)絡(luò)最后的分類(lèi)器.和神經(jīng)網(wǎng)絡(luò)類(lèi)似,通過(guò)前向和反向傳播調(diào)整網(wǎng)絡(luò)參數(shù)訓(xùn)練模型.
總體來(lái)說(shuō),CNN通過(guò)對(duì)輸入層的特征進(jìn)行卷積和池化操作,得到新的特征,最后將新特征輸入到全連接層中,輸出分類(lèi)任務(wù)的結(jié)果.
1.4.3 評(píng)估指標(biāo)
為了綜合評(píng)估,本文采用機(jī)器學(xué)習(xí)中常見(jiàn)的指標(biāo)來(lái)評(píng)估模型,如表2所示.其中F1_Score是最常使用的指標(biāo),可以較為綜合地評(píng)價(jià)模型的效果.AUC是ROC曲線下的面積,適用于評(píng)估非平衡數(shù)據(jù)集的情況.
表2 評(píng)估指標(biāo)及其描述
為了識(shí)別惡意BDN,本文提出了一種新型檢測(cè)方法.該方法從多角度分析惡意區(qū)塊鏈域名與良性域名之間的不同,共提取出24個(gè)特征,最后采用卷積神經(jīng)網(wǎng)絡(luò)算法檢測(cè)惡意BDN.
本文通過(guò)分析域名的流量行為以及自身信息,提取出時(shí)間序列特征、資源記錄特征和字符統(tǒng)計(jì)特征3類(lèi)特征區(qū)分惡意BDN和良性域名,如表3所示:
表3 特征描述
1) 時(shí)間序列特征:惡意BDN和良性域名在用戶(hù)訪問(wèn)方面存在一定的差異.惡意BDN主要由僵尸網(wǎng)絡(luò)使用.當(dāng)僵尸網(wǎng)絡(luò)處于活躍狀態(tài)時(shí),大規(guī)模的“肉雞”會(huì)發(fā)起DNS域名請(qǐng)求定位C&C服務(wù)器,此時(shí)惡意BDN的DNS請(qǐng)求頻率會(huì)急劇增加.另外如果域名由DGA生成,由此會(huì)產(chǎn)生大量的NXDomain響應(yīng).而僵尸網(wǎng)絡(luò)在非活躍狀態(tài)時(shí),“肉雞”和C&C服務(wù)器之間的通信較少,因此惡意BDN的DNS請(qǐng)求及其相關(guān)流量也較少.良性域名則是給各類(lèi)用戶(hù)使用的,其DNS請(qǐng)求頻率在任何時(shí)候都是比較穩(wěn)定的.因此,惡意BDN和良性域名的DNS請(qǐng)求頻率方面存在一定的差異,為了量化這種差異,考慮同一個(gè)域名相鄰DNS請(qǐng)求包之間的時(shí)間間隔(TimeDiff)以及每分鐘DNS請(qǐng)求包的數(shù)量(PktNumPerMin)2種特征.為了綜合表征該特征的分布,分別提取其最小值(Min)、第一四分位數(shù)(Q1)、中位數(shù)(Media)、第三四分位數(shù)(Q3)、最大值(Max)、標(biāo)準(zhǔn)差(Std).同時(shí),針對(duì)域名請(qǐng)求的用戶(hù)差異,提取訪問(wèn)域名的IP數(shù)量特征,即UniqueIP.
2) 資源記錄特征:良性域名和惡意BDN在資源記錄方面存在一定的差異.良性域名因?yàn)槠錁I(yè)務(wù)繁多,并且用戶(hù)較為廣泛,為了更好地提供服務(wù),往往設(shè)置較多的資源記錄;而惡意BDN,為了避免過(guò)多地暴露自己,則會(huì)設(shè)置較少數(shù)量的資源記錄.在眾多種類(lèi)的資源記錄中,域名解析主要使用的是A記錄和NS記錄,因此提取A記錄(A_Record_Num)和NS記錄(NS_Record_Num)數(shù)量特征.另外,良性域名為了更好地提供服務(wù),業(yè)務(wù)更新較快,其A記錄的生存時(shí)間(time to live, TTL)則相對(duì)較??;為了和C&C服務(wù)器保持連接以減少DNS請(qǐng)求次數(shù),惡意BDN的TTL一般設(shè)置得較長(zhǎng);因此提取域名A記錄的TTL.因?yàn)門(mén)TL值可能被代理服務(wù)器修改,因此提取DNS響應(yīng)包中其最小值(Min)、第一四分位數(shù)(Q1)、中位數(shù)(Median)、第三四分位數(shù)(Q3)、最大值(Max)、標(biāo)準(zhǔn)差(Std).
3) 字符統(tǒng)計(jì)特征:惡意BDN和良性域名在字符組成方面存在一定的差異.通過(guò)對(duì)數(shù)據(jù)集分析,發(fā)現(xiàn)有相當(dāng)一部分惡意BDN是人類(lèi)不可讀的[20],而良性域名則是有意義的單詞或者簡(jiǎn)稱(chēng).另外,二者在字符長(zhǎng)度上也有較大的差異.對(duì)此,本文提取出域名的長(zhǎng)度(Domain_Length)、域名的信息熵(Domain_Entropy)以及元音字母比例(Domain_VowelRatio)3個(gè)特征量化上述性質(zhì).
CNN主要適用于計(jì)算機(jī)視覺(jué)領(lǐng)域.目前已有相關(guān)工作將其應(yīng)用到網(wǎng)絡(luò)流量分類(lèi),且取得了較好的效果,因此本文應(yīng)用CNN檢測(cè)惡意區(qū)塊鏈域名.
從本質(zhì)上說(shuō),CNN是從不同角度提取圖片中相鄰位置像素的關(guān)聯(lián),即從不同維度提取圖片的特征,對(duì)特征降維進(jìn)行分類(lèi).因此,本文將域名的每個(gè)特征作為圖片中的1個(gè)像素點(diǎn),將域名表示成1張圖片,從而檢測(cè)惡意BDN.本文共提取出24個(gè)特征,有若干個(gè)特征是屬于同類(lèi)的,可將特征分為4大類(lèi),排列成4×6維的圖像,如圖2所示.為了避免特征輸入位置帶來(lái)的差異,本文在不同的卷積層中設(shè)置了不提供維度的卷積核.同時(shí),為了避免數(shù)據(jù)轉(zhuǎn)換造成的信息丟失,本文并不將特征值映射到灰度像素的范圍,保留最原始的特征取值.因此,最終將惡意BDN的檢測(cè)任務(wù)轉(zhuǎn)換為采用CNN的圖片分類(lèi)任務(wù).
圖2 特征輸入映射
CNN模型共分為6層,如圖3所示.包括輸入層、3層卷積層、全連接層、輸出層.3層卷積層從不同維度挖掘特征之間的關(guān)聯(lián),由于維度較小,所以不采用池化層降維壓縮數(shù)據(jù).具體描述如下:
1) 輸入層.維度為4×6個(gè)神經(jīng)元,表示24個(gè)特征,輸入到第1卷積層中.
2) 第1卷積層.該卷積層用于挖掘同類(lèi)特征之間的關(guān)聯(lián).卷積核的維度為1×2,步長(zhǎng)均為1,采用非填充模式并使用ReLU激活函數(shù)進(jìn)行非線性轉(zhuǎn)換.該層采取32個(gè)卷積核,最終生成32個(gè)4×5的平面.
3) 第2卷積層.該卷積層用于挖掘不同類(lèi)特征之間的關(guān)聯(lián).卷積核的維度為2×1,步長(zhǎng)均為1,采用填充模式并使用ReLU激活函數(shù)進(jìn)行非線性轉(zhuǎn)換.該層采取32個(gè)卷積核,最終生成1 024個(gè)5×5的平面.
4) 第3卷積層.該卷積層用于挖掘所有特征之間的關(guān)聯(lián).卷積核的維度為2×2,步長(zhǎng)均為1,采用非填充模式并使用ReLU激活函數(shù)進(jìn)行非線性轉(zhuǎn)換.該層采取1個(gè)卷積核,最終生成1 024個(gè)4×4的平面.
5) 全連接層.全連接層是3層神經(jīng)網(wǎng)絡(luò),作用是綜合利用卷積后的所有特征,經(jīng)過(guò)非線性變換得到分類(lèi)結(jié)果,輸出到輸出層.3層的神經(jīng)元數(shù)量分別是1 024,512,64.
6) 輸出層.輸出層為2個(gè)神經(jīng)元,表示域名的良性和惡意2個(gè)類(lèi)別.
圖3 CNN模型
為了驗(yàn)證本文方法的有效性,本節(jié)進(jìn)行實(shí)驗(yàn)評(píng)估.首先構(gòu)造數(shù)據(jù)集,經(jīng)過(guò)交叉驗(yàn)證訓(xùn)練模型,在測(cè)試集上驗(yàn)證本文方法的可行性;然后與現(xiàn)有的檢測(cè)方法從多方面比較,驗(yàn)證本文方法具有更好的性能.
在實(shí)驗(yàn)網(wǎng)絡(luò)節(jié)點(diǎn)收集了為期7天的DNS測(cè)試流量,原始數(shù)據(jù)量為25 GB,并進(jìn)行了脫敏處理.本文認(rèn)為2級(jí)域名在Alexa[21]排名前50 000以?xún)?nèi)的域名為良性域名.對(duì)于惡意BDN,滿(mǎn)足下列條件之一則被認(rèn)為是惡意的:
1) 域名出現(xiàn)在360DGA[22]名單中;
2) VirusTotal檢測(cè)到的域名[23].
另外,無(wú)論是良性域名還是惡意域名都會(huì)被一些用戶(hù)訪問(wèn),因此將DNS請(qǐng)求次數(shù)小于10的域名過(guò)濾掉.對(duì)于沒(méi)有標(biāo)記的BDN,將它們作為后續(xù)評(píng)估模型的對(duì)比數(shù)據(jù)集Dunknown.
提取域名的統(tǒng)計(jì)特征:對(duì)于時(shí)間序列特征,提取域名在7天之內(nèi)所有的DNS請(qǐng)求包,時(shí)間從域名的第1個(gè)請(qǐng)求包開(kāi)始,到最后1個(gè)請(qǐng)求包結(jié)束,計(jì)算其特征.對(duì)于資源記錄特征中的TTL值,提取域名在7天之內(nèi)的所有DNS響應(yīng)包,統(tǒng)計(jì)A記錄中的TTL特征;對(duì)于資源記錄特征,因?yàn)榇矸?wù)器存在的緣故,DNS響應(yīng)包中的內(nèi)容可能和其權(quán)威服務(wù)器不同步. 提取其權(quán)威的DNS響應(yīng)包,統(tǒng)計(jì)其資源記錄特征.對(duì)于字符統(tǒng)計(jì)特征,去掉域名的TLD,并計(jì)算其剩余字符串的長(zhǎng)度、信息熵以及元音字母比例3個(gè)特征.
最后,隨機(jī)將標(biāo)記后的數(shù)據(jù)劃分為訓(xùn)練集(80%)和測(cè)試集(20%).整理后的數(shù)據(jù)集如表4所示:
表4 數(shù)據(jù)集
本文利用Scikit-Learn[24]和深度學(xué)習(xí)框架PyTorch[25]實(shí)現(xiàn)隨機(jī)森林、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)以及卷積神經(jīng)網(wǎng)絡(luò)模型,模型的參數(shù)均采用默認(rèn)值.由于正負(fù)樣本數(shù)據(jù)集的數(shù)量差距較大,因此在訓(xùn)練時(shí),隨機(jī)抽取1萬(wàn)個(gè)良性域名作為負(fù)樣本,采用10折交叉驗(yàn)證在訓(xùn)練集上訓(xùn)練分類(lèi)模型.
4個(gè)模型在驗(yàn)證集上的AUC如圖4所示,從圖4中可以看出,CNN分類(lèi)器要優(yōu)于其他分類(lèi)器,AUC達(dá)到了0.983 8.
圖4 不同模型在驗(yàn)證集上的AUC結(jié)果
從結(jié)果來(lái)看,非線性模型更適合本問(wèn)題,并且在每輪的交叉驗(yàn)證中,惡意樣本約占比6.7%,表明卷積神經(jīng)網(wǎng)絡(luò)、隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)更適合處理不平衡數(shù)據(jù)集.因此本文選擇CNN作為檢測(cè)模型.
將CNN檢測(cè)模型應(yīng)用到測(cè)試數(shù)據(jù)集上,其AUC達(dá)到了0.989 6,F(xiàn)1_Score為0.988 3,進(jìn)一步驗(yàn)證了本文模型可較為準(zhǔn)確地檢測(cè)惡意BDN,達(dá)到了較好的效果.
本文與Leopard[9]方法進(jìn)行對(duì)比.為了對(duì)比二者的優(yōu)劣,在檢測(cè)結(jié)果和發(fā)現(xiàn)未知惡意域名2方面進(jìn)行測(cè)試.
3.4.1 檢測(cè)結(jié)果
分別在Leopard和本文構(gòu)建的數(shù)據(jù)集上進(jìn)行測(cè)試,隨機(jī)劃分訓(xùn)練集(80%)和測(cè)試集(20%).測(cè)試集上的結(jié)果如表5所示:
表5 2種方法在不同數(shù)據(jù)集上的F1_Score
可以看出,CNN檢測(cè)模型在2個(gè)數(shù)據(jù)集上的F1_Score均比Leopard高.表明本文方法比Leopard的檢測(cè)效果更好,并且其檢測(cè)的良性域名范圍更大.這也證實(shí)了本文方法可以有效挖掘單個(gè)域名的不同特征之間的關(guān)聯(lián),并且通過(guò)四分位點(diǎn)等特征,能夠準(zhǔn)確區(qū)分良性和惡意域名,降低了域名因被偽造單個(gè)特征而檢測(cè)失敗的概率,從而提升了檢測(cè)效果.
3.4.2 發(fā)現(xiàn)未知惡意域名
為了驗(yàn)證模型的泛化能力,用Dunknown來(lái)對(duì)比2個(gè)模型,該數(shù)據(jù)集中包含了新出現(xiàn)的域名.我們認(rèn)為滿(mǎn)足以下條件的域名是惡意的:
1) BDN的歷史解析IP曾經(jīng)是惡意的;
2) BDN的訪問(wèn)IP是被惡意軟件感染的.
針對(duì)Leopard的Dunknown,本文方法識(shí)別出該數(shù)據(jù)集中全部的惡意BDN;針對(duì)本文的Dunknown,識(shí)別出72個(gè)惡意BDN,而Leopard僅識(shí)別出51個(gè)惡意BDN.表明本文方法能更高效地發(fā)現(xiàn)新的惡意BDN.相較于Leopard,本文方法通過(guò)提取特征并對(duì)特征進(jìn)行關(guān)聯(lián),能夠更加準(zhǔn)確地表征同一類(lèi)域名,增強(qiáng)了模型的泛化能力.
通過(guò)分析BDNS的解析流程,研究了惡意BDN的工作機(jī)制,提出基于CNN的惡意BDN檢測(cè)方法,實(shí)現(xiàn)了對(duì)惡意BDN的有效檢測(cè).該方法通過(guò)提取域名的時(shí)間序列特征、資源記錄以及字符統(tǒng)計(jì)特征,將特征向量輸入到CNN中實(shí)現(xiàn)了惡意BDN的檢測(cè).本文方法體現(xiàn)了CNN在該任務(wù)上的優(yōu)良性能,突破了現(xiàn)有檢測(cè)惡意BDN方案的局限性.
本文認(rèn)為,惡意BDN的特征提取可分為2方面: 一方面是靜態(tài)特征; 另一方面是行為特征.靜態(tài)特征是其自身的屬性,如資源記錄、域名字符信息等;行為特征分為非活躍狀態(tài)行為和活躍狀態(tài)行為.
另外,本文方法存在一定的局限,只考慮了基于區(qū)塊鏈域名的惡意行為特點(diǎn)以及惡意區(qū)塊鏈域名的自身信息,并沒(méi)有考慮區(qū)塊鏈特征,如錢(qián)包、域名注冊(cè)區(qū)塊等.后續(xù)將進(jìn)一步在此基礎(chǔ)上進(jìn)行研究.