• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于域名請求伴隨關(guān)系的惡意域名檢測方法

      2019-06-26 10:05:10彭成維云曉春張永錚李書豪
      關(guān)鍵詞:域名復(fù)雜度分類器

      彭成維 云曉春,3 張永錚 李書豪

      1(中國科學(xué)院計(jì)算技術(shù)研究所 北京 100190)2(中國科學(xué)院大學(xué) 北京 100049)3(中國科學(xué)院信息工程研究所 北京 100093)

      域名系統(tǒng)(domain name system, DNS)是當(dāng)今互聯(lián)網(wǎng)中重要的基礎(chǔ)核心服務(wù)之一,負(fù)責(zé)提供統(tǒng)一的域名地址空間映射服務(wù),主要將易于人類記憶的域名翻譯為易于機(jī)器識別的IP地址.然而,伴隨著域名系統(tǒng)提供正常服務(wù)的同時(shí),近年來越來越多的網(wǎng)絡(luò)非法活動(dòng)也開始濫用域名系統(tǒng)以達(dá)到其惡意目的.例如,僵尸網(wǎng)絡(luò)利用域名生成算法(domain generate algorithm, DGA)批量生成大量用于僵尸網(wǎng)絡(luò)命令與控制(command & control, C&C)信道通信的域名,來逃避權(quán)威安全防御機(jī)構(gòu)的封殺和屏蔽[1-2].網(wǎng)絡(luò)詐騙犯注冊外觀極其相似于知名合法域名(如alipay.com)的新域名(如al1pay.com),并搭建釣魚網(wǎng)站來欺騙網(wǎng)絡(luò)用戶,達(dá)到竊取賬戶信息、信用卡密碼等目的[3].2016年思科年度安全報(bào)告[4]中指出,高達(dá)91.3%的惡意軟件均會(huì)對域名系統(tǒng)進(jìn)行一定程度的濫用,造成大量的經(jīng)濟(jì)損失.

      近年來出現(xiàn)了大量利用DNS流量檢測惡意域名的研究工作,其主要目的是為了在用戶訪問這些惡意域名之前進(jìn)行防御和預(yù)警,從而緩解攻擊活動(dòng)帶來的威脅和損害.常見的方法[5-7]是從DNS流量、網(wǎng)頁信息等數(shù)據(jù)中為每一個(gè)域名人為手動(dòng)提取特征(例如TTL(time to live)大小、域名請求模式、解析的IP地址數(shù)目、涉及到的國家等),隨后利用機(jī)器學(xué)習(xí)算法構(gòu)建分類器.然而,這類基于特征的檢測方法能夠有效地檢測惡意域名的前提是提取特征的有效性,即能否有效地區(qū)分黑白域名的行為,并且攻擊者不去修改惡意域名的行為來規(guī)避這些特征.實(shí)際上,之前提出的很多特征已被證實(shí)不具有很好的魯棒性,攻擊者可以通過簡單地調(diào)整來改變這些特征,從而逃避檢測.

      本文提出CoDetector算法,一種基于域名請求之間內(nèi)在的時(shí)空伴隨關(guān)系(co-occurrence relation)進(jìn)行惡意域名檢測的算法.本文發(fā)現(xiàn)域名請求之間不是彼此獨(dú)立,相反存在時(shí)空相似、伴隨共現(xiàn)的特性.針對一次域名查詢,觸發(fā)這次查詢的底層應(yīng)用程序同時(shí)會(huì)觸發(fā)其他相關(guān)的域名查詢,這些域名相互伴隨出現(xiàn),協(xié)同完成此次網(wǎng)絡(luò)活動(dòng).例如使用瀏覽器打開鏈接,如http:www.baidu.com會(huì)先觸發(fā)對該頁面域名www.baidu.com的DNS查詢,當(dāng)網(wǎng)頁內(nèi)容開始呈現(xiàn)時(shí),則會(huì)進(jìn)一步觸發(fā)對頁面嵌入內(nèi)容(如圖片、廣告等)的鏈接進(jìn)行額外的DNS查詢.這些域名請求是為了共同完成這次頁面展示而觸發(fā)的請求,在DNS請求上表現(xiàn)為伴隨共現(xiàn)的特性.于此同時(shí),本文發(fā)現(xiàn)惡意域名請求之間同樣存在時(shí)空伴隨關(guān)系,不同的惡意域名會(huì)在一次惡意網(wǎng)絡(luò)活動(dòng)中共同伴隨地出現(xiàn).例如一次路過式下載(drive-by download)行為通常由一個(gè)長長的URL重定向鏈條來逐步導(dǎo)向到最終的惡意軟件.網(wǎng)絡(luò)黑產(chǎn)中,惡意的搜索引擎優(yōu)化技術(shù)通過構(gòu)建重復(fù)循環(huán)的URL鏈條,讓搜索引擎的爬蟲持續(xù)停留在被敵手設(shè)計(jì)的頁面中.

      本文的假設(shè)是伴隨出現(xiàn)的域名之間存在緊密的關(guān)聯(lián),性質(zhì)上具有同態(tài)性,即和惡意域名伴隨出現(xiàn)的域名偏向于是惡意域名,反之亦然.基于以上假設(shè),本文提出CoDetector惡意域名檢測算法,其主要思路是從DNS流量中挖掘域名之間時(shí)空伴隨關(guān)系,然后借鑒深度學(xué)習(xí)中張量化表示算法(如word2vec[8])在保留域名彼此時(shí)空伴隨關(guān)系的基礎(chǔ)上將每一個(gè)域名映射為低維空間的特征向量,最后結(jié)合機(jī)器學(xué)習(xí)分類算法構(gòu)建惡意域名檢測分類器.為實(shí)現(xiàn)以上目標(biāo),本文主要面臨2個(gè)挑戰(zhàn):

      1) 如何從DNS流量提取彼此具有時(shí)空伴隨關(guān)系的域名?

      2) 如何在保留域名彼此時(shí)空伴隨關(guān)系的同時(shí)張量化地提取域名特征?

      針對挑戰(zhàn)1,本文提出基于域名請求時(shí)間間隔的切割算法,將原始DNS流量中的DNS請求根據(jù)時(shí)間順序切割成不同長度的時(shí)空伴隨域名序列.本文認(rèn)為在時(shí)間上同時(shí)觸發(fā)的域名請求彼此存在伴隨關(guān)系,存在明顯的時(shí)間間隔的請求則不具有伴隨關(guān)系.實(shí)際上,通過對真實(shí)DNS數(shù)據(jù)分析,本文發(fā)現(xiàn)每個(gè)用戶所觸發(fā)的DNS請求在時(shí)間上存在明顯的分塊聚簇現(xiàn)象,即DNS請求一批接著一批觸發(fā),不同批次之間存在明顯時(shí)間間隔.例如在打開下一個(gè)網(wǎng)頁之前,會(huì)在上一個(gè)網(wǎng)頁停留一定的時(shí)間,從而導(dǎo)致這2次頁面行為觸發(fā)的域名請求之間也存在明顯時(shí)間間隔.因此,如果2個(gè)域名請求之間的時(shí)間間隔大于給定的閾值(例如5 s),則很有可能是不同網(wǎng)絡(luò)活動(dòng)所觸發(fā)的DNS請求,本文便將這2個(gè)域名劃分到不同序列中,反之則劃分到同一個(gè)序列中.每一個(gè)序列有1個(gè)或者多個(gè)域名組成,近似認(rèn)為是由一次網(wǎng)絡(luò)活動(dòng)所觸發(fā)的DNS請求集合,彼此具有時(shí)空伴隨關(guān)系.

      針對挑戰(zhàn)2,本文借鑒Skip-Gram[9]的詞向量表示算法,將每一個(gè)域名投影成d維實(shí)數(shù)空間中的一個(gè)點(diǎn)(向量),目標(biāo)是使得具有伴隨關(guān)系的域名映射成空間中距離相近的點(diǎn);反之,把不具有伴隨關(guān)系的2個(gè)域名映射到空間中相隔較遠(yuǎn)的位置.考慮到挑戰(zhàn)1中提取的時(shí)空伴隨域名序列可能會(huì)存在噪聲干擾和由序列長度過長帶來的計(jì)算復(fù)雜度問題,本文采用滑動(dòng)窗口的方式,進(jìn)一步從時(shí)空伴隨域名序列中提取具有時(shí)空伴隨域名對.每個(gè)時(shí)空伴隨域名對由2個(gè)域名組成,彼此之間具有時(shí)空伴隨關(guān)系,同時(shí),本文采用負(fù)采樣技術(shù)[8]構(gòu)建不具有時(shí)空伴隨關(guān)系的域名對作為負(fù)樣本數(shù)據(jù),最后結(jié)合優(yōu)化目標(biāo)迭代地調(diào)整每一個(gè)域名在Rd空間的位置.優(yōu)化結(jié)束后,本文便可得到每一個(gè)域名特征向量.

      與前人工作對比,本文工作主要有3點(diǎn)不同之處:

      1) CoDetector自動(dòng)地從DNS流量中挖掘潛在的域名伴隨關(guān)系,并映射為特征向量,無需人工專家經(jīng)驗(yàn),省去人工設(shè)計(jì)特征的繁雜工作.

      2) CoDetector僅利用域名請求的時(shí)間順序挖掘伴隨關(guān)系,無需額外的附加信息.因此,本文的方法更加輕量實(shí)時(shí),能夠處理不具有正常應(yīng)答的惡意域名,例如DGA生成的NXDomain域名.

      3) CoDetector將具有伴隨關(guān)系的域名進(jìn)行了聚類,因此可以用于惡意域名團(tuán)伙發(fā)現(xiàn).

      最后,本文采集一個(gè)企業(yè)網(wǎng)下近2個(gè)月的DNS流量數(shù)據(jù),結(jié)合3種主流的機(jī)器學(xué)習(xí)分類算法(隨機(jī)森林、XGBoost和深度神經(jīng)網(wǎng)絡(luò))來評估CoDetector模型的檢測效果.實(shí)驗(yàn)結(jié)果表明,CoDetector平均能夠達(dá)到91.64%的檢測精度和96.40%的召回率.因此,CoDetector能夠有效地通過DNS流量挖掘域名請求之間時(shí)空伴隨關(guān)系,并用于檢測惡意域名.

      總體來說,本文工作具有4點(diǎn)貢獻(xiàn):

      1) 提出一種基于時(shí)間間隔的域名序列切割算法,能夠有效地從DNS流量中提取具有伴隨關(guān)系的域名序列.

      2) 提出一種無監(jiān)督的域名張量化表達(dá)算法,能夠?qū)⒚恳粋€(gè)域名映射為低維空間的特征向量并且保留域名彼此之間的伴隨關(guān)系.

      3) 提出一種基于域名請求之間時(shí)空伴隨關(guān)系的惡意域名檢測算法——CoDetector.該模型自動(dòng)地從原始DNS流量挖掘潛在的域名時(shí)空伴隨關(guān)系,并用于檢測惡意域名.

      4) 結(jié)合真實(shí)DNS數(shù)據(jù),對CoDetector的可行性和有效性進(jìn)行評估,實(shí)驗(yàn)驗(yàn)證CoDetector能夠有效地檢測惡意域名.

      1 相關(guān)工作

      近年來出現(xiàn)了大量利用DNS流量檢測惡意域名的研究工作.Antonakakis等人[5]提出了Notos動(dòng)態(tài)域名打分系統(tǒng).Notos主要提取3種類型的特征:1)基于網(wǎng)絡(luò)位置的特征(歷史上與域名關(guān)聯(lián)的IP數(shù)量、地理位置的多樣性、它們駐留的不同自治系統(tǒng)的數(shù)量等);2)基于域名Zone文件的特征(如域名不同gram分布的平均長度、不同頂級域名的數(shù)量、字符頻率等);3)基于歷史證據(jù)的特征(如域名解析的IP地址中有多少曾經(jīng)在惡意樣本中出現(xiàn)、該域名是否在蜜罐系統(tǒng)中捕獲等).Bilge等人[6]提出了Exposure惡意域名檢測系統(tǒng).Exposure克服了Notos的部分限制,它能夠識別之前從未在惡意活動(dòng)中看到的惡意域名和地址,并且只需要較短時(shí)間的訓(xùn)練數(shù)據(jù).Bilge等人從DNS流量中為每一個(gè)二級域名提取了15個(gè)特征,其中包括新穎的基于時(shí)間的特征(短生命周期、每日訪問相似度、重復(fù)模式、訪問成功的比率等)、基于DNS應(yīng)答的特征(不同IP地址的數(shù)量、不同國家的數(shù)量、共享IP地址的域名的數(shù)量、反向DNS查詢結(jié)果)、基于TTL值的特征(TTL的平均值、TTL的標(biāo)準(zhǔn)偏差、不同的TTL值的數(shù)量、TTL變化的數(shù)量)和基于域名詞法的特征(數(shù)字字符的百分比和最長有意義的子字符串的標(biāo)準(zhǔn)化長度).Antonakakis等人[7]提出Kopis系統(tǒng).與Notos和Exposure相比,Kopis使用了DNS系統(tǒng)中更高層次域名流量數(shù)據(jù)(頂級域名服務(wù)器和權(quán)威域名服務(wù)器采集到的DNS流量).因此,Kopis從更加全局的角度來提取每一個(gè)域名的行為,其中包括基于請求來源分布的統(tǒng)計(jì)特征(例如與遞歸DNS服務(wù)器相關(guān)聯(lián)的IP地址的多樣性)和請求來源在每個(gè)時(shí)期結(jié)束時(shí)向給定域名的DNS流量,遞歸DNS服務(wù)器的相對查詢量以及與域名指向的IP空間相關(guān)的歷史信息.這些方法主要是通過針對每一個(gè)域名的提取局部特征,并利用機(jī)器學(xué)習(xí)分類器來構(gòu)建檢測模型.可能存在的問題是:如果這些檢測方法(特征)被敵手了解之后,很容易通過合理的調(diào)整來規(guī)避這些特征,逃過檢測.本文提出的CoDetector模型是考慮了域名之間的潛在時(shí)空伴隨關(guān)聯(lián)特性.如果敵手想要繞過CoDetector的檢測,需要消除其使用的惡意域名之間的時(shí)空伴隨特性.例如每次只使用一個(gè)域名,然而這極大地降低了惡意活動(dòng)的靈活性.

      Fig. 1 The workflow of CoDetector圖1 CoDetector模型工作流程圖

      Khalil等人[10]提出利用域名和IP之間的全局關(guān)聯(lián)來檢測惡意域名.其主要思路是利用(域名、IP)映射數(shù)據(jù)構(gòu)建域名關(guān)聯(lián)圖.如果2個(gè)域名映射到相同的IP,則在2個(gè)域名之間添加關(guān)聯(lián)邊.隨后,在域名關(guān)聯(lián)圖使用基于圖上路徑搜索的機(jī)制來推斷未知域名的惡意分?jǐn)?shù).Peng等人[11]提出了一種基于DNS CNAME記錄的惡意域檢測方法,該方法專注于沒有解析到IP地址,但出現(xiàn)在DNS CNAME記錄中的域名.該方法是基于CNAME記錄連接的2個(gè)域名存在內(nèi)在緊密關(guān)系,并且偏向于處于同樣的性質(zhì)(即同時(shí)是惡意域名或者同時(shí)是正常域名).他們提出一種基于置信傳播的圖推理方法,通過計(jì)算未知域名與其他已知惡意和正常域名的全局關(guān)聯(lián)來計(jì)算其惡意概率.他們的實(shí)驗(yàn)結(jié)果表明,該方法可以有效揭露被以往研究工作所忽略的惡意域名.Manadhata等人[12]提出了一種基于圖推斷方法的惡意域名檢測模型.該模型首先利用企業(yè)網(wǎng)絡(luò)中的DNS數(shù)據(jù)構(gòu)建了一個(gè)主機(jī)-域名二分圖,其中如果一臺主機(jī)訪問了某個(gè)域名,便在該主機(jī)和該域名之間添加關(guān)聯(lián)邊,最后利用置信傳播(belief propagation)算法在圖上進(jìn)行推斷.文獻(xiàn)[13]提出了利用DNS服務(wù)器與用戶之間通信的DNS數(shù)據(jù)來構(gòu)建域名主機(jī)二分圖,其主要假設(shè)是訪問惡意域名的機(jī)器更有可能是感染的機(jī)器,反過來感染的機(jī)器訪問的域名也更有可能是惡意域名.然而,上述方法利用DNS服務(wù)器與用戶之間的DNS數(shù)據(jù),會(huì)帶來隱私問題.文獻(xiàn)[14]提出利用DNS數(shù)據(jù)檢測長周期下APT中隱蔽可疑的DNS行為.

      本文并不是第1個(gè)提出利用域名請求伴隨關(guān)系來檢測惡意域名的研究工作.Gao等人[15]提出了一種基于域名請求伴隨關(guān)系來檢測惡意域名團(tuán)伙的算法.該工作利用部分已知的惡意域名作為種子,統(tǒng)計(jì)域名和種子伴隨出現(xiàn)的關(guān)系,采用TF-IDF算法和XMeans聚類算法來提取域名團(tuán)伙.然而,該工作首先未考慮域名請求之間的時(shí)間間隔,因此會(huì)將屬于不同網(wǎng)絡(luò)活動(dòng)觸發(fā)的域名劃分到一個(gè)團(tuán)伙中,存在嚴(yán)重的噪聲干擾.本文提出的模型能夠自動(dòng)地挖掘域名的伴隨關(guān)系,且具有線性的時(shí)間復(fù)雜度,適合在大規(guī)模數(shù)據(jù)上運(yùn)行.

      2 CoDetector檢測模型

      本文發(fā)現(xiàn)主機(jī)層面的域名請求之間存在伴隨共現(xiàn)關(guān)系,并非互相獨(dú)立.因此,通過考慮一個(gè)域名經(jīng)常和哪些域名伴隨出現(xiàn)能夠有效地協(xié)助決策該域名是否是惡意域名.本文的基本假設(shè)是具有時(shí)空伴隨關(guān)系的域名之間存在緊密的關(guān)聯(lián),在性質(zhì)上(惡意性質(zhì)或者正常性質(zhì))具有同態(tài)性.具體來說,如果一個(gè)域名經(jīng)常和惡意域名伴隨共現(xiàn),那么該域名偏向于是惡意域名,反之亦然.CoDetector模型首先從DNS流量中提取彼此具有時(shí)空伴隨關(guān)系的域名,形成時(shí)空伴隨域名序列集合;隨后利用深度學(xué)習(xí)算法在保留域名彼此伴隨關(guān)系的同時(shí)將每個(gè)域名投影成低維實(shí)數(shù)空間的特征向量;最后結(jié)合部分已知的黑白域名,利用機(jī)器學(xué)習(xí)分類算法構(gòu)建惡意域名檢測分類器,用于識別未知的惡意域名.

      圖1展示了CoDetector檢測模型的工作流程,其主要分為3個(gè)模塊.

      1) 時(shí)空伴隨域名序列提取模塊.利用域名請求的先后時(shí)間順序?qū)⒃加蛎麛?shù)據(jù)進(jìn)行粗粒度的聚類,劃分為不同的序列,使得每一個(gè)序列中的域名彼此具有時(shí)空伴隨關(guān)系.

      2) 特征學(xué)習(xí)模塊.構(gòu)建映射函數(shù)f:D→Rd將每一個(gè)域名x∈D映射為d維空間的特征向量vi,同時(shí)保留域名之間的時(shí)空伴隨關(guān)系,即將具有伴隨關(guān)系的域名映射到Rd空間中距離相近的點(diǎn),把不具有伴隨關(guān)系的域名映射到距離遙遠(yuǎn)的點(diǎn).

      3) 惡意域名檢測模塊.利用特征學(xué)習(xí)模塊中學(xué)習(xí)到的每個(gè)域名的特征向量,結(jié)合部分黑白域名列表,采用有監(jiān)督的機(jī)器學(xué)習(xí)算法訓(xùn)練惡意域名分類器,并應(yīng)用于對更多未知屬性的域名進(jìn)行檢測.

      詳細(xì)介紹每一個(gè)模塊的設(shè)計(jì),最后給出模型時(shí)間復(fù)雜度分析.

      2.1 時(shí)空伴隨域名序列提取

      本模塊首先針對原始DNS流量進(jìn)行粗粒度的聚類操作,將彼此具有伴隨關(guān)系的域名劃分在同一個(gè)域名簇中,形成時(shí)空伴隨域名序列結(jié)合.通過對真實(shí)的DNS流量分析,本文發(fā)現(xiàn)每個(gè)用戶的DNS請求具有明顯分塊聚簇的特點(diǎn),在時(shí)間順序上存在聚類的現(xiàn)象.用戶的域名請求一批接著一批發(fā)起,不同批次之間的DNS請求具有明顯的時(shí)間間隔.

      圖2展示了本文采集到的部分用戶在10 min時(shí)間段內(nèi)的域名請求時(shí)間散點(diǎn)分布圖,x軸為時(shí)間,圖2中每個(gè)點(diǎn)代表一次DNS請求,不同直線代表不同用戶的DNS請求隨著時(shí)間的散點(diǎn)分布.本文發(fā)現(xiàn),每一個(gè)用戶的域名請求在時(shí)間線上呈現(xiàn)成塊行為.例如用戶u7,u8,u9的域名請求數(shù)據(jù)存在明顯的聚簇現(xiàn)象,同簇之間的請求幾乎同時(shí)發(fā)起,簇與簇之間存在明顯時(shí)間間隔.因此,本文近似地按照域名請求時(shí)間進(jìn)行粗粒度的聚類,認(rèn)為每簇中的域名彼此伴隨出現(xiàn),形成一個(gè)時(shí)空伴隨域名序列.

      Fig. 2 The scatter of DNS queries in 10 min圖2 10 min內(nèi)部分DNS數(shù)據(jù)請求散點(diǎn)圖

      Fig. 3 An illustration for generating co-occurring domain sequences圖3 時(shí)空伴隨域名序列生成說明圖

      2.2 特征學(xué)習(xí)

      假設(shè)S={S1,S2,…,Sn}為提取到的時(shí)空伴隨域名序列集合,其中Si={d1,d2,…,dni}是由ni個(gè)域名構(gòu)成的序列.本模塊的目標(biāo)是在保留域名彼此之間的伴隨關(guān)系的同時(shí),將每一個(gè)域名映射成低維空間的特征向量.本文把映射操作形式化為似然概率最大化問題:

      首先,每一個(gè)時(shí)空伴隨域名序列Si的概率P(Si)=Pr(d1,d2,…,dni)為這ni個(gè)域名聯(lián)合出現(xiàn)的概率.因此,映射操作的基本優(yōu)化目標(biāo)是最大化序列集合S的概率,即:

      (1)

      然而,最大化該目標(biāo)函數(shù)在現(xiàn)實(shí)計(jì)算中存在問題,尤其是當(dāng)序列長度ni過大而帶來的聯(lián)合概率計(jì)算呈指數(shù)增長的復(fù)雜度.近年來,Skip-Gram[9]語言模型在自然語言處理問題上取得了極大的成功,其主要思想是通過一個(gè)單詞來預(yù)測其上下文出現(xiàn)的單詞.啟發(fā)于Skip-Gram模型,本文提出基于滑動(dòng)窗口的思想來將長度為ni的序列Si分解為多個(gè)短小的子序列,即只保留域名和其窗口內(nèi)域名的時(shí)空伴隨關(guān)系,而忽略其和更遠(yuǎn)位置的域名關(guān)系,從而極大地降低了計(jì)算復(fù)雜度.本文假設(shè):

      (2)

      其中,C(dj)為域名dj的上下文.假設(shè)窗口大小為w,則C(dj)=(dj-w,dj-w+1,…,dj-1,dj+1,dj+2,…,dj+w),更進(jìn)一步分解為2w組具有時(shí)空伴隨關(guān)系的域名對{(dj,dj-w),(dj,dj-w+1),…,(dj,dj-1),(dj,dj+1),(dj,dj+2),…,(dj,dj+w)}.

      圖4展示了利用滑動(dòng)窗口從時(shí)空伴隨序列S生成時(shí)空伴隨域名對的示意圖,其中該序列S是由7個(gè)域名組成,滑動(dòng)窗口w=2.采用滑動(dòng)窗口的方式將時(shí)空伴隨域名序列分解成時(shí)空伴隨域名對的操作能夠帶來2點(diǎn)改進(jìn):1)滑動(dòng)窗口的引入成功地消除了由于序列長度過長而帶來的計(jì)算復(fù)雜度增長的問題,使得在現(xiàn)實(shí)中計(jì)算成為了可能;2)滑動(dòng)窗口能夠有效地減少噪聲伴隨關(guān)聯(lián)(將本身不具有時(shí)空伴隨的域名錯(cuò)誤地認(rèn)為具有時(shí)空伴隨關(guān)系).窗口滑動(dòng)的方式保證了每一個(gè)域名只和其固定窗口大小內(nèi)的域名具有伴隨關(guān)系,保證了域名伴隨關(guān)系的質(zhì)量.

      Fig. 4 An illustration for generating co-occurring domain pairs (w=2)圖4 基于滑動(dòng)窗口(w=2)的時(shí)空相似域名對生成示意圖

      基于以上改進(jìn)操作,優(yōu)化目標(biāo)函數(shù)式(2)為

      (3)

      其中,P為基于滑動(dòng)窗口操作提取的所有具有時(shí)空伴隨關(guān)系的域名對集合.

      假設(shè)f:D→Rd為映射函數(shù),將每一個(gè)域名di∈D投影成實(shí)數(shù)空間Rd中的一個(gè)向量vi.本文采用Sigmoid函數(shù)來衡量這2個(gè)域名di和dj的聯(lián)合概率,即

      (4)

      更進(jìn)一步,由于式(3)中只考慮了具有時(shí)空伴隨關(guān)系的域名對之間的映射關(guān)系,而忽略了將不具有時(shí)空伴隨關(guān)系的域名投影成Rd空間中距離較遠(yuǎn)的向量,因此一個(gè)通用的映射方式是將全部域名映射到一個(gè)點(diǎn)上.為此,本文采用負(fù)采樣技術(shù)[8]構(gòu)建不具有時(shí)空伴隨關(guān)系的域名對,并最小化這部分域名對的聯(lián)合概率.所以,最終本文的目標(biāo)函數(shù)是:

      (5)

      其中,P是所有具有時(shí)空伴隨關(guān)系的域名對集合,N是通過負(fù)采樣技術(shù)生成的不具有時(shí)空伴隨關(guān)系的域名對集合.本文通過隨機(jī)梯度下降(stochastic gradient descent, SGD)[16]算法來最小化目標(biāo)函數(shù).迭代結(jié)束之后,本文便得到每個(gè)域名di在Rd空間中的特征向量vi.

      2.3 惡意域名檢測模塊

      通過最小化式(5),本文將S中每個(gè)域名表達(dá)成d維空間的特征向量.本文通過提前采集的黑白域名列表匹配S中的域名,從而獲取部分有標(biāo)簽的數(shù)據(jù),再結(jié)合機(jī)器學(xué)習(xí)分類算法構(gòu)建惡意域名檢測分類器,用于檢測未知的惡意域名.

      2.3.1 訓(xùn)練階段

      結(jié)合域名黑白名單,匹配數(shù)據(jù)集中出現(xiàn)的域名,本文獲得部分標(biāo)記的惡意域名和正常域名.利用成熟的有監(jiān)督的機(jī)器學(xué)習(xí)分類算法(如隨機(jī)森林),結(jié)合這部分域名在特征學(xué)習(xí)階段學(xué)習(xí)到的特征向量,最終得到惡意域名檢測分類器π:v→s,其中v為域名對應(yīng)的特征向量,s∈[0,1]為該域名的惡意打分.

      2.3.2 檢測階段

      針對其余部分未知屬性的域名,本文利用訓(xùn)練階段學(xué)習(xí)的分類器進(jìn)行分類,從而檢測未知的惡意域名.對于域名待檢測域名di,假設(shè)其在特征學(xué)習(xí)階段對應(yīng)的特征向量為vi,則其惡意打分為si=π(vi).如果si>0.5,則判定域名di為惡意域名,其分?jǐn)?shù)越高,則代表域名di為惡意域名的可能性越大.

      2.4 模型時(shí)間復(fù)雜度分析

      CoDetector共分為3個(gè)階段.

      階段1. 將DNS流量切割,按照采集到的DNS的先后順序根據(jù)時(shí)間便可以切割,因此時(shí)間復(fù)雜度為O(n),其中n是DNS流量中域名請求的數(shù)量.

      階段2. 可以細(xì)分為3個(gè)部分:

      1) 利用滑動(dòng)窗口的方式生成時(shí)空伴隨域名對,針對每一個(gè)域名,最多形成2w個(gè)伴隨域名對,因此,本文最多共有2wn個(gè)域名對,且時(shí)間復(fù)雜度為2w×O(n).

      2) 利用負(fù)采樣技術(shù)生成和正樣本同數(shù)量級的負(fù)樣本,假設(shè)針對每一個(gè)域名通過隨機(jī)的方式(如Hash采樣)生成K個(gè)負(fù)樣本(本文中K=5),因此,最多有2Kwn個(gè)負(fù)樣本域名對,且時(shí)間復(fù)雜度為K×2w×O(n).

      3) 式(5)可以分解為對每一個(gè)時(shí)空伴隨域名對進(jìn)行優(yōu)化調(diào)整.結(jié)合正負(fù)樣本,最多有2w×(K+1)×n個(gè)域名對.針對每一個(gè)時(shí)空伴隨域名對優(yōu)化迭代一次的復(fù)雜度為d,假設(shè)迭代M次,那么式(3)最終的復(fù)雜度為M×2w×(K+1)×d×O(n).

      由于M,K,w,d均遠(yuǎn)小于n,因此第2階段的時(shí)間復(fù)雜度為O(n).

      階段3. 利用已知的黑白域名和其在Rd空間的特征向量來訓(xùn)練模型分類器.其復(fù)雜度與分類器算法的選取和黑白域名的樣本數(shù)量有關(guān)系.例如,本文選擇隨機(jī)森林算法作為分類器算法,共m棵樹,訓(xùn)練樣本數(shù)量為N,則復(fù)雜度為O(m×d×NlogN),由于N為訓(xùn)練樣本數(shù)量,相對于全部域名數(shù)量n是很少的一部分,因此這部分的復(fù)雜度相對于第1階段和第2階段均為常數(shù).

      因此,CoDetector模型的計(jì)算量主要集中在第1階段和第2階段中,綜合起來復(fù)雜度為O(n),其中n是DNS流量中域名請求的數(shù)目.

      3 實(shí) 驗(yàn)

      3.1 數(shù)據(jù)集

      1) 域名黑名單.本文通過采集網(wǎng)絡(luò)公開的黑名單列表來構(gòu)建本文中的域名黑名單,其中包括Malware Domains List[17],Phishtank[18],Openphish[19],AbuseList[20].本文從2017-01-03—2017-10-14,持續(xù)不斷地收集這些來源的黑名單,最后保留去重的域名列表.除此之外,本文還采集了宙斯(Zeus)病毒中使用的惡意域名和著名的蠕蟲病毒飛客(conficker)[21]中通過DGA算法生成的惡意域名.這些黑名單列表包含了形式多樣的惡意域名,如僵尸網(wǎng)絡(luò)命令與控制通道的域名、偷渡式下載域名、網(wǎng)絡(luò)釣魚、垃圾郵件、網(wǎng)絡(luò)詐騙勒索等域名,能夠很好地覆蓋各種不同類型的網(wǎng)絡(luò)攻擊.更進(jìn)一步,為了保證本文中使用的黑名單列表的可靠性,本文采用Google Safe Browsing[22]來進(jìn)一步針對從Phishtank和Openphish采集到的域名做2次篩選,只有當(dāng)Google Safe Browsing也認(rèn)為該域名是惡意域名,本文才將該域名保留.

      2) 域名白名單.本文根據(jù)Alexa[23]每天提供的全球訪問量最多的100萬域名(例如google.com)列表來構(gòu)建本文的白名單域名列表.本文篩選那些長時(shí)間(如1年)持續(xù)排名在Alexa Top 20000的域名作為本文的正常域名.通過持續(xù)排名的條件可以有效地刪除噪聲域名,例如僵尸網(wǎng)絡(luò)的域名在攻擊活動(dòng)發(fā)生時(shí)會(huì)存在短暫的訪問量爆發(fā),從而有可能出現(xiàn)在Top 20000列表中.實(shí)驗(yàn)中,本文收集了2015-01-16—2017-03-05共計(jì)513天的Alexa Top 100萬域名列表,本文共發(fā)現(xiàn)9216個(gè)域名持續(xù)地出現(xiàn)在這513天的Top 20000域名中.

      3) DNS數(shù)據(jù).本文中使用的DNS數(shù)據(jù)集是在一個(gè)企業(yè)網(wǎng)內(nèi)部網(wǎng)關(guān)捕獲的2個(gè)月(2017-10-13—2017-12-18)的DNS流量,其中共包含12 291 055條DNS請求數(shù)據(jù)包.表1列舉了本文的實(shí)驗(yàn)數(shù)據(jù),其中包括采用基于時(shí)空時(shí)間的切割算法生成的時(shí)空伴隨域名序數(shù)目、基于滑動(dòng)窗口生成的時(shí)空伴隨域名對數(shù)目,以及匹配到的正常域名和惡意域名的數(shù)目.

      Table 1 Description of Experimental Data表1 實(shí)驗(yàn)數(shù)據(jù)描述

      3.2 評價(jià)指標(biāo)

      為了定量化地衡量CoDetector模型對惡意域名檢測的效果,本文采用3個(gè)指標(biāo).

      1) 召回率(Recall,R).測試集中所有的惡意域名樣本,CoDetector能成功識別出惡意域名的比例.

      2) 檢測精度(Precision,P).在測試集數(shù)據(jù)中,CoDetector判定為惡意域名的樣本中確實(shí)是惡意域名的比例.

      3.3 域名伴隨關(guān)系分析

      Table 2 Statistic Results of Shannon Entropy Under Different Parameters表2 不同參數(shù)下的香農(nóng)熵統(tǒng)計(jì)結(jié)果

      表2列舉了這1 315個(gè)域名在不同切割時(shí)間間隔τ={2 s,3 s,5 s}和不同窗口大小w={1,2,3}下生成的伴隨分布及其對應(yīng)的香農(nóng)熵統(tǒng)計(jì)特征.注意到如果伴隨分布是安全隨機(jī)的,則伴隨分布的香農(nóng)熵應(yīng)該為lb 1 315=10.36.第1列代表時(shí)間間隔τ和窗口大小w的選擇,第2~5列列舉了在該組參數(shù)下1 315個(gè)域名香農(nóng)熵的統(tǒng)計(jì)特征(平均值、標(biāo)準(zhǔn)差、最小值和最大值).

      在這9組參數(shù)下,這1 315個(gè)域名的香農(nóng)熵均遠(yuǎn)小于10.36,其中平均值不到10.36的一半,最大值約為10.36的80%.數(shù)據(jù)結(jié)果表明:域名的伴隨分布并不是均勻分布,而是存在偏向性.因此驗(yàn)證了用戶層域名請求之間具有時(shí)空伴隨關(guān)聯(lián)關(guān)系.

      3.4 模型假設(shè)驗(yàn)證

      CoDetector模型的基本假設(shè)是具有時(shí)空伴隨關(guān)系的域名之間具有強(qiáng)關(guān)聯(lián),偏向同時(shí)屬于惡意域名或者正常域名,即同態(tài)性.實(shí)驗(yàn)中,本文首先利用采集到DNS流量對模型假設(shè)的合理性進(jìn)行驗(yàn)證.本文主要從2個(gè)方面進(jìn)行驗(yàn)證:1)在包含惡意域名的時(shí)空伴隨域名序列中,其他域名是否更加偏向于是惡意域名;2)在滑動(dòng)窗口生成的時(shí)空伴隨域名對中,如果一個(gè)域名是惡意域名,另外一個(gè)域名是否偏向于是惡意域名.注意本文只對和惡意域名伴隨出現(xiàn)的域名的性質(zhì)分布進(jìn)行統(tǒng)計(jì)來評估同態(tài)性.因?yàn)楸疚牡闹饕康氖菫榱藱z測惡意域名.

      3.4.1 時(shí)空伴隨域名序列同態(tài)性驗(yàn)證

      給定切割時(shí)間間隔τ,本文將原始DNS流量切割成具有時(shí)空伴隨關(guān)系的域名序列集合S.利用采集到的域名黑名單,本文標(biāo)定序列中每一個(gè)域名是否是惡意域名.本文定義q(S)為序列S中惡意域名的個(gè)數(shù),記Sn={S|q(S)≥n,S∈S},為S中包含惡意域名個(gè)數(shù)大于等于n的序列子集合.本文記包含惡意域名的時(shí)空伴隨域名序列為可疑時(shí)空伴隨域名序列.統(tǒng)計(jì)集合Sn(n≥1)中,惡意域名所占的比例為δ,如果δ>0.5則說明在Sn中的域名更多的是惡意域名,從而驗(yàn)證假設(shè).選擇3種不同的時(shí)間間隔τ={2 s,3 s,5 s}生成時(shí)空伴隨的域名序列集合,并針對4種粒度的包含惡意域名的時(shí)空伴隨域名序列子集,n={1,2,3,4}統(tǒng)計(jì)惡意域名所占的比例δ.

      圖5展示了包含惡意域名的時(shí)空伴隨域名序列中惡意域名所占的整體比例δ,其中橫坐標(biāo)代表S中的不同子集S1,S2,S3,S4.首先,注意到所有子集中惡意域名比例均大于50%,且使用相對較小的時(shí)間間隔τ切割生成的時(shí)空伴隨域名序列中惡意域名所含比例越高.另一方面,結(jié)果表明隨著序列中包含的惡意域名數(shù)目增加,序列在整體上是惡意序列的概率也在變大.

      Fig. 5 Homomorphic ratio of malicious property in co-occurrence domain sequences圖5 伴隨域名序列中惡意屬性同態(tài)比例

      3.4.2 時(shí)空伴隨域名對同態(tài)性驗(yàn)證

      基于滑動(dòng)窗口的方式,本文從時(shí)空伴隨域名序列集合S生成時(shí)空伴隨域名對集合P.針對集合P中每一個(gè)域名對(di,dj),本文統(tǒng)計(jì)當(dāng)域名di是惡意域名時(shí)dj同樣是惡意域名的比例δ.實(shí)驗(yàn)中,本文選擇時(shí)間間隔參數(shù)τ={2 s,3 s,5 s},滑動(dòng)窗口大小w={1,2,3},針對生成的9個(gè)時(shí)空伴隨域名對集合P分別計(jì)算δ.結(jié)果如圖6所示,其中橫坐標(biāo)w為滑動(dòng)窗口的大小,縱坐標(biāo)為當(dāng)域名對(di,dj)同時(shí)是惡意域名的比例δ.

      Fig. 6 Homomorphic ratio of malicious property in co-occurrence domain pairs圖6 伴隨域名對中惡意屬性同態(tài)比例

      本文發(fā)現(xiàn):1)在時(shí)空伴隨域名對中,如果一個(gè)域名是惡意域名,另外一個(gè)域名也是惡意域名的比例平均為89.34%,即域名在時(shí)空伴隨域名對中同樣保持同態(tài)性;2)通過滑動(dòng)窗口生成的時(shí)空相似域名對能夠有效地提高域名之間的同態(tài)性.例如當(dāng)w=1時(shí),如果di是惡意域名,dj是惡意域名的概率高達(dá)88%,且隨著窗口w的變大,同態(tài)性也有所提升.這一結(jié)果進(jìn)一步驗(yàn)證了本文實(shí)驗(yàn)的假設(shè),即具有時(shí)空相似性的域名之間同時(shí)在域名性質(zhì)上具有同態(tài)性.

      3.5 模型檢測效果

      CoDetector模型涉及到3個(gè)主要參數(shù):1)序列切割時(shí)間間隔τ;2)滑動(dòng)窗口大小w;3)每個(gè)域名的特征的維度d.實(shí)驗(yàn)中本文選取τ={2 s,3 s,5 s},w={1,2,3}和d={100,200,300},共27種參數(shù)組合.針對每一組參數(shù)θ=(τ,w,d),本文采用標(biāo)準(zhǔn)的10-Fold交叉驗(yàn)證的方式來評估實(shí)驗(yàn)效果.首先,本文將訓(xùn)練數(shù)據(jù)集隨機(jī)平均地分為10份,其中9份作為訓(xùn)練集,剩下1份作為測試集,獲取在測試集上的檢測效果.如此重復(fù)10次,并將10次的平均結(jié)果作為這組參數(shù)的最終實(shí)驗(yàn)結(jié)果.本實(shí)驗(yàn)全部運(yùn)行在一個(gè)具有8核Inter?CoreTMI7-6700K CPU@4.00 GHz、內(nèi)存為32 GB的服務(wù)器.

      本文選用3個(gè)主流的有監(jiān)督的機(jī)器學(xué)習(xí)算法作為惡意域名檢測的分類器.

      1) 隨機(jī)森林(RandomForest).隨機(jī)森林是通過集成學(xué)習(xí)的思想將多棵決策樹集成的一種算法.本文利用scikit-learn[24]機(jī)器學(xué)習(xí)庫來實(shí)現(xiàn)隨機(jī)森林分類器.主要參數(shù)設(shè)定為:n_estimator=200,min_samples_split=11.其他參數(shù)默認(rèn).

      2) XGBoost.XGBoost[25]是一種面向基礎(chǔ)的GradientBoosting算法的優(yōu)化版本,具有高效的運(yùn)行效率、靈活性和可移植性.本文采用其公開的Python庫來訓(xùn)練本文的分類器模型,參數(shù)設(shè)置為max_depth=6和num_boost_round=100,其他參數(shù)默認(rèn).

      3) 深度神經(jīng)網(wǎng)絡(luò)(deep neural network, DNN).本文構(gòu)建了一個(gè)4層的深層感知機(jī)模型.第1層是輸入層,接受通過時(shí)空相似表達(dá)模塊學(xué)習(xí)的向量;第2層是隱藏層1,包含nh1個(gè)神經(jīng)元;第3層是隱藏層2,包含nh2個(gè)神經(jīng)元;第4層是輸出層,輸出1個(gè)2維的向量,第1個(gè)元素代表是正常域名的概率,第2個(gè)元素代表是惡意域名的概率.層與層之間采用全連接網(wǎng)絡(luò)進(jìn)行連接,并采用Relu非線性激活函數(shù)來增加模型的非線性能力.最后1層本文采用softmax函數(shù)來對最終的結(jié)果進(jìn)行歸一化.本文結(jié)合人為經(jīng)驗(yàn)設(shè)定nh1=128和nh2=64,采用交叉熵?fù)p失cross_entropy函數(shù)來衡量模型的效果.最后,本文通過隨機(jī)梯度下降SGD[16]算法來最小化損失函數(shù).

      表3列舉了CoDetector模型在這27組參數(shù)設(shè)置下利用3種分類器算法在訓(xùn)練集數(shù)據(jù)上通過10-Fold交叉驗(yàn)證得到的檢測效果.RandomForest平均能夠達(dá)到93.97%的F-Measure、91.80%的精度和96.30%的召回率.XGBoost平均能夠達(dá)到94.06%的F-Measure、91.41%的精度和96.90%的召回率.DNN平均能夠達(dá)到93.85%的F-Measure、91.76%的精度和96.05%的召回率.因此,在3種不同的分類算法下,CoDetector模型均能夠有效地檢測惡意域名.

      Table 3 Detail Performance of CoDetector under the 27 Parameter Settings Using 3 Classifiers with 10-fold Cross Validation表3 27組參數(shù)下CoDetector基于3種分類器算法10-fold 交叉驗(yàn)證的檢測效果

      4 討 論

      CoDetector通過挖掘域名請求之間的伴隨關(guān)系來進(jìn)行惡意域名判定.因此,對本文的模型可能會(huì)存在的問題進(jìn)行討論.

      1) 噪聲伴隨.本文通過基于時(shí)間間隔的切割算法來獲取具有時(shí)空伴隨的域名序列,然后通過滑動(dòng)窗口的方式提取時(shí)空伴隨域名對.其基本的原理是基于域名請求的先后時(shí)間順序,因此后臺網(wǎng)絡(luò)活動(dòng)觸發(fā)的DNS請求可能會(huì)和當(dāng)前的網(wǎng)絡(luò)活動(dòng)觸發(fā)的DNS請求在時(shí)間上存在重疊,從而帶來噪聲干擾.然而,噪聲干擾是屬于小概率事件,通過長時(shí)間的數(shù)據(jù)累積,即可逐漸消除噪聲帶來的影響.

      2) 攻擊繞過.攻擊者通過在其網(wǎng)絡(luò)活動(dòng)所必需的DNS請求中混雜其他非必需的DNS請求,從而制造虛假伴隨關(guān)聯(lián)關(guān)系.例如,在惡意網(wǎng)頁中添加虛假外鏈,鏈接到已知的正常網(wǎng)站(如qq.com),從而制造其惡意域名和正常的域名伴隨出現(xiàn)的假象.

      3) 檢測時(shí)空.CoDetector只能檢測當(dāng)前時(shí)空下采集到的DNS流量中的惡意域名.對于未來出現(xiàn)的未知域名,本文沒有提前訓(xùn)練該域名的特征表示,CoDetector無法對其惡意性質(zhì)進(jìn)行判定.本文將在后續(xù)的工作中進(jìn)行補(bǔ)充.

      5 結(jié) 論

      惡意域名是網(wǎng)絡(luò)攻擊活動(dòng)中主要的基礎(chǔ)設(shè)施.本文提出一種基于域名請求之間存在時(shí)空伴隨關(guān)聯(lián)的惡意域名檢測算法,想法是如果一個(gè)域名經(jīng)常和惡意域名伴隨出現(xiàn),那么該域名很大可能是惡意域名.本文首先提出基于時(shí)間間隔的時(shí)空伴隨域名序列提取算法,從原始DNS流量中提取具有時(shí)空伴隨關(guān)系的域名,接著采用深度學(xué)習(xí)算法將每一個(gè)域名映射為低維空間的特征向量,最后結(jié)合分類算法訓(xùn)練模型分類器.實(shí)驗(yàn)結(jié)果表明:CoDetector模型能夠有效地檢測惡意域名,具有91.64%的檢測精度和96.04%的召回率.

      猜你喜歡
      域名復(fù)雜度分類器
      一種低復(fù)雜度的慣性/GNSS矢量深組合方法
      BP-GA光照分類器在車道線識別中的應(yīng)用
      電子測試(2018年1期)2018-04-18 11:52:35
      如何購買WordPress網(wǎng)站域名及綁定域名
      求圖上廣探樹的時(shí)間復(fù)雜度
      加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
      結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機(jī)的TSK分類器
      某雷達(dá)導(dǎo)51 頭中心控制軟件圈復(fù)雜度分析與改進(jìn)
      騰訊八百萬美元收購域名
      出口技術(shù)復(fù)雜度研究回顧與評述
      基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
      磐石市| 辛集市| 徐闻县| 宜黄县| 平阴县| 溧阳市| 鄯善县| 翼城县| 岳阳县| 筠连县| 普定县| 灵石县| 尼勒克县| 合江县| 云林县| 沂南县| 荆门市| 博白县| 珠海市| 新安县| 公安县| 雷山县| 临城县| 平阳县| 霞浦县| 从化市| 芮城县| 建德市| 莱阳市| 鹤壁市| 韩城市| 嘉禾县| 鹤岗市| 廊坊市| 阳高县| 民权县| 和林格尔县| 安乡县| 盐边县| 商城县| 叙永县|