馬 驍,蔡滿春,蘆天亮
(中國(guó)人民公安大學(xué)信息網(wǎng)絡(luò)安全學(xué)院,北京 102600)
惡意域名為近來(lái)網(wǎng)絡(luò)攻擊者所使用的主要手段,它也是互聯(lián)網(wǎng)資源URL的重要組成部分[1],互聯(lián)網(wǎng)設(shè)置及其相關(guān)管理政策中很少有漏洞允許這些惡意域名在DNS服務(wù)器上注冊(cè)。雖然黑名單可以簡(jiǎn)單、快速識(shí)別此類惡意域名,但該技術(shù)無(wú)法滿足域名生成和注冊(cè)對(duì)速度的要求[2]。
前人在研究中已經(jīng)開始使用DNS數(shù)據(jù)的特征,一般方法從DNS記錄、查詢和響應(yīng)中提取多個(gè)特征,并進(jìn)一步利用歷史模式和本地主機(jī)的網(wǎng)絡(luò)流量特征來(lái)增強(qiáng)這些特征,基于這些特征和一些訓(xùn)練數(shù)據(jù)集,可以建立一個(gè)分類器來(lái)區(qū)分惡意域和良性域[3-4]。但這不僅需要識(shí)別更多相關(guān)的特征,并且這些所依賴的特征穩(wěn)定性不強(qiáng),攻擊者可以很輕易地改變這些特征,使分類器無(wú)法檢測(cè)出來(lái),其根本原因是現(xiàn)有的研究中所依賴的許多特性都是關(guān)于單個(gè)域或主機(jī)的本地特性。已經(jīng)有很多檢測(cè)惡意域名相關(guān)研究。在此,將簡(jiǎn)要討論與本研究方法最相關(guān)的代表性工作。
Notos[5]是使用被動(dòng)DNS數(shù)據(jù)識(shí)別惡意域名的先驅(qū)。Notos基于從DNS查詢中提取的特征動(dòng)態(tài)分配未知域的聲譽(yù)分?jǐn)?shù)。Expose[6]遵循類似的方法,并克服了Notos的一些限制(例如,Expose需要更少的訓(xùn)練時(shí)間和更少的訓(xùn)練數(shù)據(jù))。此外,Expose的不同之處在于它不知道惡意域提供的服務(wù)類型(例如,僵尸網(wǎng)絡(luò)、釣魚、快速流動(dòng))。本研究通過(guò)關(guān)注在ip上部署惡意域的全局拓?fù)?,而不是其本地特性,是?duì)Expose和Notos的補(bǔ)充。當(dāng)Expose和Notos能夠訪問(wèn)單個(gè)DNS查詢時(shí),它們的檢測(cè)性能最好,這可能是相當(dāng)敏感的。本研究方法同時(shí)適用于公共聚合的被動(dòng)DNS數(shù)據(jù),因此不會(huì)引起隱私問(wèn)題。
Rahbarinia[7]等人提出了一種基于行為的技術(shù)來(lái)跟蹤惡意軟件控制的域。其主要思想是從DNS查詢?nèi)罩局刑崛〕龆恐鳈C(jī)域圖的用戶行為模式。相反,本研究使用的技術(shù)利用的是被動(dòng)DNS數(shù)據(jù),而不是用戶DNS查詢行為,Rahbarinia所使用的特性不適用于本研究的被動(dòng)DNS數(shù)據(jù)。
Pratyusa K.Manadhata[8]等人提出通過(guò)分析DNS查詢?nèi)罩緛?lái)識(shí)別惡意域。其主要技術(shù)是建立一個(gè)二部主域圖(由主機(jī)查詢哪些域),然后根據(jù)已知的惡意域和良性域,應(yīng)用置信傳播來(lái)發(fā)現(xiàn)惡意域。其原理是:如果主機(jī)查詢一個(gè)惡意域名,該主機(jī)很有可能被惡意域攜帶的病毒感染,同樣被感染主機(jī)查詢的域名更有可能是惡意的。被動(dòng)DNS數(shù)據(jù)也可以被建模為二部圖,通過(guò)在被動(dòng)DNS數(shù)據(jù)上應(yīng)用信念傳播來(lái)識(shí)別惡意域似乎很有說(shuō)服力。然而,研究發(fā)現(xiàn)推理直覺雖然在主機(jī)域圖中工作得很好,但在被動(dòng)DNS數(shù)據(jù)中推理直覺卻不能很好地發(fā)揮作用。與主機(jī)域圖相比,域解析圖具有以下幾方面優(yōu)勢(shì):首先,被動(dòng)DNS數(shù)據(jù)是在全局收集數(shù)據(jù),提供了域和ip之間映射的更全面的視圖,而主機(jī)域圖通常僅限于單個(gè)企業(yè)或ISP的視角;其次,主機(jī)域圖包含關(guān)于單個(gè)用戶敏感的私有信息,分享這些信息可能會(huì)引起嚴(yán)重的隱私問(wèn)題;再者,域解析圖是域ip映射的聚合信息,而不涉及個(gè)人的信息,是可以公開共享的。
B.Guan[9]等人設(shè)計(jì)了一種對(duì)域名惡意概率評(píng)分的方法。他使用被動(dòng)DNS數(shù)據(jù)來(lái)構(gòu)建一個(gè)域解析圖,并在此基礎(chǔ)上,構(gòu)建了未知域到惡意域的任意路徑,給出了未知域惡意概率評(píng)分的數(shù)學(xué)公式。該方法對(duì)小標(biāo)記數(shù)據(jù)非常靈活,它只關(guān)心是否存在從域到惡意的路徑,并基于該路經(jīng)計(jì)算惡意分?jǐn)?shù)。與該方法相比,本研究通過(guò)對(duì)BP算法進(jìn)行改進(jìn),使檢測(cè)方式更加靈活。DNS圖中節(jié)點(diǎn)之間的關(guān)聯(lián)是通過(guò)DNS數(shù)據(jù)建立的,并依賴所有節(jié)點(diǎn)之間的關(guān)聯(lián)來(lái)計(jì)算信譽(yù)評(píng)分,以此判斷圖中每個(gè)節(jié)點(diǎn)是否合法。
已有的研究雖然也涉及到被動(dòng)DNS數(shù)據(jù),但本文提出的檢測(cè)方法與前人所不同的是DNS圖中節(jié)點(diǎn)之間的關(guān)聯(lián)是通過(guò)DNS數(shù)據(jù)建立的,并依賴所有節(jié)點(diǎn)之間的關(guān)聯(lián)來(lái)計(jì)算信譽(yù)評(píng)分,從而判斷圖中每個(gè)節(jié)點(diǎn)是否合法。并且該方法也是基于域分辨率圖的,考慮到馬爾可夫隨機(jī)場(chǎng)(MRF),我們采用了一個(gè)新的置信傳播算法來(lái)獲得域的惡意評(píng)分。
通過(guò)對(duì)BP算法的改進(jìn),并使用精確率(也稱查準(zhǔn)率)、召回率(也稱查全率)、正確率、F-measure和ROC曲線下面積(AUC)來(lái)衡量該方法的有效性,精確率、召回率和正確率均超過(guò)95%,F(xiàn)-measure和AUC也展示出良好的結(jié)果。在實(shí)驗(yàn)操作中,以域名和主機(jī)ip為數(shù)據(jù)源構(gòu)建DNS圖,挖掘域和主機(jī)ip之間的內(nèi)在關(guān)系,并基于BP算法的思想開發(fā)了一種基于同質(zhì)化關(guān)系計(jì)算圖中每個(gè)節(jié)點(diǎn)信譽(yù)評(píng)分的算法。
在信息產(chǎn)業(yè)如此發(fā)達(dá)的今天,用戶產(chǎn)生了大量的數(shù)據(jù),這些數(shù)據(jù)包含有許多信息,為了從數(shù)據(jù)中提取有價(jià)值的信息,數(shù)據(jù)挖掘應(yīng)運(yùn)而生,而圖挖掘正是數(shù)據(jù)挖掘的重要組成部分,圖挖掘是指通過(guò)圖模型的方法來(lái)提取數(shù)據(jù)。
被動(dòng)DNS通過(guò)復(fù)制用戶在其DNS基礎(chǔ)設(shè)施中自愿部署的傳感器捕獲服務(wù)器間的DNS消息,并將捕獲的DNS消息進(jìn)一步處理,然后存儲(chǔ)在一個(gè)中央DNS記錄數(shù)據(jù)庫(kù),就可以對(duì)其進(jìn)行各種查詢,它提供了域和ip之間映射的全面視圖[10]。我們使用網(wǎng)站的API從www.dnsdb.info下載了被動(dòng)DNS數(shù)據(jù)庫(kù),被動(dòng)DNS數(shù)據(jù)包含了DNS不同方面的豐富信息,本文主要分析DNS數(shù)據(jù)中的A記錄,僅使用(d,ip)兩列[11]。d為域名,解析為ip。盡管DNS記錄的許多特征都可以被它所屬的域名進(jìn)行改變,但攻擊者必須在其控制或訪問(wèn)的ip上托管惡意域名。此外,一些惡意域名經(jīng)常采用逃避檢測(cè)策略,如頻繁創(chuàng)建新域名、更換域名等措施,使其動(dòng)態(tài)特征存在于惡意域名組之間,而不是單個(gè)域名[12]之中。實(shí)際上惡意域名正在隨著時(shí)間的推移在互聯(lián)網(wǎng)空間中大量移動(dòng),同時(shí)在移動(dòng)的過(guò)程中共享一些不同的特性。因此,很有可能多個(gè)惡意域名最終被托管在同一個(gè)ip上,同樣也有可能多個(gè)ip被用來(lái)托管同一個(gè)惡意域名,這在它們之間創(chuàng)建了內(nèi)在的關(guān)聯(lián)。為了消除這種關(guān)聯(lián),攻擊者必須盡量減少托管惡意域的ip數(shù)量以及每個(gè)ip所托管的惡意域的數(shù)量。而要做到這一點(diǎn),攻擊者則會(huì)付出極高的成本代價(jià),并限制自身對(duì)可用資源的利用。因此,我們認(rèn)為域名和ip之間的關(guān)聯(lián)為研究攻擊者如何組織和部署惡意資源提供了一個(gè)可靠穩(wěn)定的方法,這可以進(jìn)一步用于圖的構(gòu)建。所構(gòu)建的圖是一個(gè)二部圖,一邊對(duì)應(yīng)域,另一邊對(duì)應(yīng)ip,如圖1所示,它只有域名與ip的連接。如果存在A記錄中存在(d,ip)兩列,則從域d到ip形成一條邊,在圖1中由箭頭表示。
圖1 域名解析圖
置信傳播算法(Belief propagation,BP)也被稱為和積消息傳遞[13],像貝葉斯網(wǎng)絡(luò)和馬爾可夫隨機(jī)場(chǎng)都是對(duì)圖形模型(GM)執(zhí)行推理的消息傳遞算法,以任何觀察到的節(jié)點(diǎn)為條件來(lái)計(jì)算每個(gè)未觀察到的節(jié)點(diǎn)的邊緣分布。置信傳播算法是人工智能和信息理論中常用的方法,并在許多應(yīng)用中得到應(yīng)用[14-15]。
作為馬爾可夫隨機(jī)場(chǎng)模型的基礎(chǔ),BP算法最重要的元素之一是馬爾可夫特性。BP算法依賴于圖上節(jié)點(diǎn)的交互,當(dāng)BP在圖上運(yùn)行時(shí),消息在任意兩個(gè)相鄰節(jié)點(diǎn)之間按照馬爾可夫性質(zhì)進(jìn)行交互。因此,在解釋所提算法的操作之前,首先簡(jiǎn)單地討論一下馬爾可夫隨機(jī)場(chǎng)。
馬爾可夫隨機(jī)場(chǎng)(MRF)是一組具有馬爾可夫性質(zhì)的隨機(jī)變量,由無(wú)向圖描述。無(wú)向圖G=(V,E),其中V=v1,v2,…,vn是頂點(diǎn)集合。每個(gè)頂點(diǎn)對(duì)應(yīng)一個(gè)隨機(jī)變量[16],因?yàn)樗哂旭R爾可夫性質(zhì),因此它只依賴于其相鄰節(jié)點(diǎn)的性質(zhì)。給定一個(gè)節(jié)點(diǎn)vi∈V,Ni是節(jié)點(diǎn)vi的鄰居集,如果(vi,vj)∈E,且vj∈Ni,則節(jié)點(diǎn)vi是節(jié)點(diǎn)Ni的鄰集。那么MRF符合局部屬性:
(1)沒有結(jié)合物聯(lián)網(wǎng),實(shí)物信息沒有上鏈,實(shí)現(xiàn)共享。傳統(tǒng)的貨物信息監(jiān)督依靠第三方監(jiān)管,或者是核心企業(yè)本身,信息有一定的滯后。實(shí)物信息沒有定量化,后期跟蹤成本高,影響信息對(duì)稱的問(wèn)題,阻礙了供應(yīng)鏈金融的發(fā)展。
P(vi|vjvj∈V/vi)=P(vi|vjvj∈Ni)
(1)
將MRF模型的上述特性應(yīng)用到DNS圖中,DNS圖的每個(gè)頂點(diǎn)對(duì)應(yīng)一個(gè)隨機(jī)變量,該隨機(jī)變量代表主機(jī)ip或域名的隨機(jī)變量[17]。然后,為了檢測(cè)惡意域,定義一個(gè)知識(shí)集為D=(dl,dm),其中vi=dl表示該主機(jī)ip或域是合法的,其余表示該主機(jī)ip或域是惡意的。
本研究提出的方法承繼了BP算法的所有特性,并添加了一些條件來(lái)優(yōu)化操作,提高算法的性能以獲得最終結(jié)果。該算法允許圖中的每個(gè)節(jié)點(diǎn)通過(guò)傳遞消息作為證據(jù)與其鄰域進(jìn)行交互,以評(píng)估其鄰域的標(biāo)簽。算法開始時(shí),給圖上的每個(gè)節(jié)點(diǎn)vi賦初始值為惡意概率,標(biāo)記為函數(shù)Fi(vi)。節(jié)點(diǎn)的fji(vi,vj)=P(vi|vj),即節(jié)點(diǎn)vj具有標(biāo)記vj時(shí),vi具有vi的概率。因?yàn)閳D是無(wú)向的,所以相鄰兩個(gè)節(jié)點(diǎn)的勢(shì)函數(shù)是對(duì)稱的,即fji(vi,vj)=fji(vj,vi),如表1所示:
表1 兩個(gè)節(jié)點(diǎn)之間的推斷表
其中0 該算法的原理是基于消息傳遞,一個(gè)消息從vi發(fā)送到vj,問(wèn)節(jié)點(diǎn)vi如何看待它鄰居的標(biāo)簽。消息從vi傳遞到vj標(biāo)記為mij(xi),如圖2所示。對(duì)于?eji∈E,將消息mij(vi)和mji(vj)按以下公式計(jì)算,計(jì)算節(jié)點(diǎn)vi到節(jié)點(diǎn)vj的消息: (2) 如公式(2)所示,當(dāng)節(jié)點(diǎn)vi希望向節(jié)點(diǎn)vj發(fā)送消息時(shí),必須先收集其相鄰節(jié)點(diǎn)的所有消息,然后再向節(jié)點(diǎn)vj發(fā)送消息。在BP方法中,所有節(jié)點(diǎn)都實(shí)時(shí)地將自己的想法發(fā)送給它們的鄰居,但沒有必要這樣做,因?yàn)椴⒉皇菆D上的所有節(jié)點(diǎn)都有知識(shí)可以發(fā)送給它的鄰居。例如在第一次交互中,只有知識(shí)節(jié)點(diǎn)可以向它的鄰居發(fā)送消息,告訴他們?nèi)绾慰创约旱膼阂飧怕?,因?yàn)樗惺S嗟墓?jié)點(diǎn)的惡意概率都是0.5,告訴它的鄰居的惡意概率是沒有意義的。所以我們?cè)O(shè)置一條規(guī)則,只有節(jié)點(diǎn)的惡意概率不等于0.5時(shí)才發(fā)送消息。加入算法的第二條規(guī)則是考慮知識(shí)節(jié)點(diǎn)的惡意概率。在每次交互中,知識(shí)節(jié)點(diǎn)的概率不應(yīng)該再次計(jì)算,因?yàn)樗臉?biāo)簽是已知的,無(wú)論它的鄰居怎么想它都不能改變。 圖2 信息間的傳遞 (3) (4) (5) 通過(guò)在www.alexa.com、Bambenek Consulting (https:∥osint.bambenekconsulting.com/feeds/)和360網(wǎng)絡(luò)安全實(shí)驗(yàn)室(https:∥data.netlab.360.com/dga/)上可以收集到實(shí)驗(yàn)所需的十萬(wàn)個(gè)良性域名和十萬(wàn)個(gè)惡意域名。將這些域名分為兩組,一組用于訓(xùn)練模型,一組用于實(shí)驗(yàn)。 實(shí)驗(yàn)所用來(lái)構(gòu)建DNS圖的數(shù)據(jù)從DNS數(shù)據(jù)服務(wù)器中收集,被動(dòng)DNS數(shù)據(jù)包括域名系統(tǒng)不同方面的豐富信息,本文主要分析域名系統(tǒng)數(shù)據(jù)中A記錄的域名和ip數(shù)據(jù)。由于Graphlab上的幾乎所有功能都是并行運(yùn)行的,可以快速高效地得到結(jié)果和數(shù)據(jù),所有的處理都是在Graphlab上遠(yuǎn)程完成的。Graphlab在處理對(duì)象之間關(guān)系數(shù)據(jù)時(shí)表現(xiàn)出良好的性能。雖然實(shí)現(xiàn)起來(lái)相當(dāng)復(fù)雜,但對(duì)于某些網(wǎng)絡(luò)問(wèn)題來(lái)說(shuō),它要優(yōu)于其他的方法。 首先對(duì)無(wú)知識(shí)的子圖進(jìn)行處理,DNS圖中并不是所有節(jié)點(diǎn)都可以連接在一起成為大圖,因而DNS圖中存在大量的子圖,而有些子圖對(duì)惡意域和合法域一無(wú)所知,從而不能計(jì)算出惡意評(píng)分,所以,將他們從構(gòu)建的圖表中刪除。其次,實(shí)驗(yàn)通過(guò)直接與BP算法交互來(lái)提高算法性能的結(jié)果,BP算法的主要思想是在接收到鄰居節(jié)點(diǎn)的消息后,改變圖上所有節(jié)點(diǎn)的概率。但惡意節(jié)點(diǎn)或白節(jié)點(diǎn)是已知的,其概率不應(yīng)改變,因此,在實(shí)驗(yàn)中,知識(shí)節(jié)點(diǎn)的概率固定為初始值。通過(guò)進(jìn)行對(duì)比實(shí)驗(yàn),將改進(jìn)BP算法與標(biāo)簽傳播算法[18]以及通過(guò)被動(dòng)DNS數(shù)據(jù)圖分析發(fā)現(xiàn)惡意域名的方法進(jìn)行比較,說(shuō)明改進(jìn)方法的有效性。 從圖上所有頂點(diǎn)和邊的初始值開始,該算法將挖掘出的圖與已知的部分圖一起進(jìn)行處理,從而判斷其惡意或合法。這被稱為先驗(yàn)知識(shí),惡意節(jié)點(diǎn)的初始聲譽(yù)得分為0.99,合法節(jié)點(diǎn)為0.01。所有其他節(jié)點(diǎn)為未知標(biāo)簽,它的聲譽(yù)評(píng)分為0.5。在所有邊中,一個(gè)常數(shù)值表示兩個(gè)相鄰節(jié)點(diǎn)的關(guān)系,如表1所示。BP算法將在具有上述初始值的圖上進(jìn)行挖掘,并運(yùn)行至滿足某個(gè)閾值或達(dá)到交互次數(shù)的限制為止。但在實(shí)驗(yàn)過(guò)程中閾值固定設(shè)置為0.005,對(duì)于任何子圖,所有節(jié)點(diǎn)的消息傳遞將以最大10次進(jìn)行交互。收斂條件設(shè)為: (6) 通過(guò)使用精確率(也稱查準(zhǔn)率)、召回率(也稱查全率)、正確率、F-measure和ROC曲線下面積(AUC)來(lái)衡量改進(jìn)BP算法的有效性,準(zhǔn)確度是通過(guò)得到模型正確識(shí)別的個(gè)體數(shù)與識(shí)別出來(lái)的個(gè)體總數(shù)之比來(lái)反應(yīng)其正確率;召回率是正確識(shí)別的個(gè)體總數(shù)與測(cè)試集中存在的個(gè)體總數(shù)之比;F-measure值是精確度和召回率的調(diào)和平均值;ROC通過(guò)預(yù)測(cè)正例排在負(fù)例前面的概率來(lái)衡量二分類模型優(yōu)劣程度。 為了證明本研究提出的改進(jìn)方法在性能上的優(yōu)越性,將改進(jìn)的BP算法與標(biāo)簽傳播算法[18](Label Propagation Algorithm)以及基于被動(dòng)DNS數(shù)據(jù)圖分析檢測(cè)惡意域名[19]進(jìn)行對(duì)照,與處理此數(shù)據(jù)的步驟相同,也是在Graphlab中完成操作。LPA是基于圖的半監(jiān)督學(xué)習(xí)方法,它的思路是基于標(biāo)記的節(jié)點(diǎn)信息去預(yù)測(cè)未標(biāo)記的節(jié)點(diǎn)信息。對(duì)照結(jié)果如下所示,其中圖3是3種算法的ROC曲線,圖4是3種算法的P-R曲線,表2為3種算法的性能對(duì)照。 圖3 3種方法的ROC曲線 圖4 3種方法的P-R曲線 表2 3種方法的性能對(duì)照 通過(guò)比較3種方法的ROC曲線以及精確率等性能指標(biāo),不難看出本研究的改進(jìn)BP算法與其他兩種方法相比優(yōu)勢(shì)明顯。同時(shí)我們也表明這個(gè)結(jié)果與標(biāo)簽傳播中的惡意域并不矛盾,因?yàn)樗麄兊姆椒ㄊ轻槍?duì)不同類型的數(shù)據(jù)進(jìn)行推斷而設(shè)計(jì)的。 本文提出了一種基于DNS圖的惡意域名挖掘方法,通過(guò)添加算法的條件來(lái)改進(jìn)BP算法,并將改進(jìn)后的BP算法應(yīng)用于基于DNS圖的惡意域檢測(cè)中。DNS圖能表示域之間的關(guān)系及其ip地址,在對(duì)圖上所有節(jié)點(diǎn)設(shè)置初始值后,使用置信傳播法計(jì)算圖節(jié)點(diǎn)的信譽(yù),這種方法在關(guān)系分類問(wèn)題上取得了顯著的效果。該算法應(yīng)用于真實(shí)DNS流量,其精確率、正確率和召回率均超過(guò)95%,這表明,該方法在實(shí)際應(yīng)用中對(duì)惡意域檢測(cè)是有效的。此外,此方法并不限定于特定的DNS技術(shù),對(duì)于DGA、惡意軟件、僵尸網(wǎng)絡(luò)等都可以發(fā)揮作用,具有較強(qiáng)的可擴(kuò)展性和有效性。因此,實(shí)驗(yàn)結(jié)果證明了提出的改進(jìn)BP算法可以很好地解決惡意域檢測(cè)問(wèn)題。目前,本研究?jī)H使用被動(dòng)DNS數(shù)據(jù)庫(kù)中的A記錄構(gòu)建DNS圖,下一步如何將記錄類型擴(kuò)展為NS、MX、PTR等,以增強(qiáng)節(jié)點(diǎn)間的關(guān)系,并評(píng)估改進(jìn)后的檢測(cè)效果是需要我們進(jìn)一步研究的內(nèi)容。3 實(shí)驗(yàn)
3.1 實(shí)驗(yàn)準(zhǔn)備
3.2 實(shí)驗(yàn)結(jié)果
4 結(jié)束語(yǔ)
中國(guó)人民公安大學(xué)學(xué)報(bào)(自然科學(xué)版)2021年4期