賈云剛,孫詩慧,孫嘉偉,孫捷
(1.國家互聯(lián)網(wǎng)應急中心天津分中心,天津300100;2.中國電子科技集團第十五研究所,北京100083;3.中國科學院信息工程研究所,北京100093)
現(xiàn)代惡意軟件使用域名中繼以傳播惡意軟件、CC服務器、發(fā)送垃圾郵件、托管詐騙和網(wǎng)絡(luò)釣魚網(wǎng)頁。構(gòu)建本地域特征分類器通常用于檢測惡意軟件域名。然而,由于局部特征(例如域時間模式和字符特征)不太穩(wěn)健,特別是在攻擊者可以在不影響現(xiàn)有攻擊的情況下改變他們的字符特征從而毫不費力地逃避檢測。由于DNS的靈活性和可重用性,其已成為攻擊者的關(guān)鍵組件。近年來出現(xiàn)了各種類型的病毒變種浪潮,對基于域名局部特征甚至基于行為的特征的規(guī)避尤為突出,已經(jīng)出現(xiàn)了逃避DNS局部特征檢測的網(wǎng)絡(luò)攻擊。尤其是深度學習的快速發(fā)展,使得攻擊者甚至有針對性地利用深度學習來混淆和逃避檢測。沒有成功檢測到這些攻擊也就不足為奇了。然而,當我們針對另一個變體調(diào)整我們的檢測策略時,這些攻擊仍在進化以逃避我們的特征檢測。
基于行為的檢測不同于構(gòu)建局部域特征的一般方法。雖然攻擊者也可以改變其行為特征來逃避檢測,但攻擊者必須個性化每個受感染的客戶端。這種策略極大地限制了攻擊者可用的資源,增加了沉重的成本并損害了他們的利益?,F(xiàn)實情況是,他們總是會重用某些資源,從而導致他們的訪問或控制行為的關(guān)聯(lián)。但攻擊者仍然狡猾地盡可能地改變其行為特征,例如使用虛假查詢和客戶端子分組、一次性查詢和域通量、隨機查詢等以及其他規(guī)避策略。這些規(guī)避方法的共同點之一是降低域名的查詢率,從而隱藏受感染主機的查詢行為。因此,我們認為DGA檢測中低查詢率場景的覆蓋對于基于行為的檢測方法至關(guān)重要。我們利用流量中的時間相似性(來自同一源客戶端的不同域名的共現(xiàn))和空間相似性(域名被多個客戶端訪問)的關(guān)聯(lián)規(guī)則提供了一種研究網(wǎng)絡(luò)攻擊的有力方法,它可以進一步幫助我們檢測低查詢率場景中的惡意域。
惡意域名檢測一直是僵尸網(wǎng)絡(luò)檢測中的熱門問題。與其他方法相比,DNS流量的檢測的數(shù)據(jù)量更低,且發(fā)生在攻擊之前,易于預防,而且DNS的公開透明特性和防火墻的穿透特性使得域名成為了攻擊者的首選。過去幾年已經(jīng)針對僵尸網(wǎng)絡(luò)提出了大量的研究進展。這些研究工作主要分為兩類,基于域名特征的檢測和基于行為特征的檢測方法。
基于特征的方法通常使用特征工程和機器學習的手段用以檢測DGA域名。Antonakakis等人[4]提出的Pleiades的DGA僵尸網(wǎng)絡(luò)檢測技術(shù)通過檢查NXDo?mains的統(tǒng)計特征進行聚類(域名長度、訪問頻率等),然后使用統(tǒng)計多分類模型和隱馬爾可夫模型分別來標記數(shù)據(jù)集和檢測CC域名。該研究依賴于域名的詞法特征和結(jié)構(gòu)特征,專用于查找CC通信的域名。Yadav和Reddy[5]提出的方案利用成功解析域名的DNS響應和NX響應來檢測基于DGA僵尸網(wǎng)絡(luò)的C2服務器IP地址標識的系統(tǒng)。該系統(tǒng)使用成功解析的DNS流量,成功查詢附近的NX響應以及失敗和成功DNS查詢的熵進行檢測作為特征進行檢測。
基于行為的方法通常使用域名的周期行為特征,組行為特征,域名的共現(xiàn)等網(wǎng)絡(luò)或者主機的關(guān)聯(lián)行為來檢測惡意域名。Jehyun Lee等人[6]提出的GMAD通過構(gòu)建具有時間和空間關(guān)聯(lián)的域名旅行圖來聚類相關(guān)聯(lián)的域名,并通過惡意域名種子區(qū)分良性域名和惡意域名。Pratyusa等人[7]通過服務器日志構(gòu)建域名訪問的主機域名二分圖,在該圖上使用新年傳播算法預測域名是惡意域名的概率。Issa Khali等人[8]提出了用域名解析出的IP間的共現(xiàn)情況,利用惡意域名種子利用寬松的共現(xiàn)規(guī)則去推理關(guān)聯(lián)域名的惡意概率。
我們實現(xiàn)了FProbe的原型系統(tǒng),其中包括以下組件模塊:預處理模塊(Preprocessing)、關(guān)聯(lián)IP矩陣模塊(Associated IP matrix,AIM)、頻繁序列樹模塊(Frequent sequence tree,F(xiàn)ST)和組分析器模塊(Group analyzer),如圖1所示。
我們在圖1中簡要說明了FProbe的系統(tǒng)架構(gòu)。關(guān)聯(lián)的IP矩陣和頻繁序列樹共同完成聚類功能。預處理模塊用于采取一系列過濾策略來減少要處理的DNS流量的數(shù)據(jù)規(guī)模,AIM用于從大型IP-IP矩陣中提取關(guān)聯(lián)主機,F(xiàn)ST模塊用于聚類相關(guān)域,組分析器模塊最后使用圖神經(jīng)網(wǎng)絡(luò)方法對這些同族DGA進行分類。關(guān)聯(lián)的IP矩陣和頻繁序列樹共同完成聚類功能。
圖1 檢測模型系統(tǒng)架構(gòu)
進一步來說,我們減少了正常用戶和網(wǎng)絡(luò)活動產(chǎn)生的噪音,同時保留了低查詢率的可疑的DNS流量。對于剩余的NX域名,我們使用廣泛用于產(chǎn)品推薦和詞頻共現(xiàn)中的共現(xiàn)矩陣來聚類受感染的主機。
對于共現(xiàn)矩陣給定一組關(guān)聯(lián)主機,F(xiàn)Probe首先收集只涉及關(guān)聯(lián)查詢的DNS查詢流,這將大大提高FST挖掘的性能。關(guān)聯(lián)的IP矩陣的每一行都是無關(guān)的,我們可以并行運行后面的FST關(guān)聯(lián)階段。
2.1 急診??谱o士主觀幸福感得分 128名急診??谱o士主觀幸福感得分總分為(70.38±11.86)分,與全國女性常模(71.0±18.0)分比較差異無統(tǒng)計學意義(t=0.596,P>0.05)。各維度得分:對健康的擔心(7.25±2.83)分,精力(17.73±3.41)分,生活的滿足和興趣(3.27±1.17)分,憂郁或愉快的心境(17.05±2.92)分,對情感和行為的控制(12.41±2.37)分,松弛和緊張(15.25±3.99)分。
然后利用寬松關(guān)聯(lián)規(guī)則提取共現(xiàn)的多個NX域來識別所有可疑的相關(guān)AGD(Algorithm Generated Do?mains),縮小可疑NX域的數(shù)量。最后,這里的群組活動和特征構(gòu)成了區(qū)分可疑域的特征。組分析器組件利用監(jiān)督學習來區(qū)分AGD組。
首先,我們過濾掉多個客戶端請求的DNS流量中的熱門域名。請求域名的客戶端越多,可疑的可能性就越小。通過這種方式,可以過濾掉大量的公共服務域、云服務器和流行的內(nèi)容交付網(wǎng)絡(luò)(CDN)。此外,我們還使用Alexa前100萬個域作為白名單,以減少被動DNS數(shù)據(jù)量。對于剩余的數(shù)據(jù),我們過濾掉流行軟件或本地硬件生成的一次性域名,例如以“tracker”結(jié)尾的BitTorrent域名、以“in.arpa”結(jié)尾的路由器域名、以“McAfee”結(jié)尾等眾多一次性域名。其次,NX域名可以由DGA惡意軟件和良性主機生成,因此我們消除了與可疑NXDomains無關(guān)的噪音,例如濫用DNS、錯誤配置DNS。噪聲濾波器階段不僅減少了計算時間,而且提高了False Positive(FP)和False Negative(FN)精度。
在預處理階段之后,我們?nèi)匀恍枰^濾掉與DGA惡意軟件感染域無關(guān)的NXDomains,這是由每個NX?Domains之間的客戶端共現(xiàn)度(CCD)決定的。
CCD使用源客戶端的相似度進行估計,源客戶端定義為關(guān)聯(lián)IP矩陣的元素值。
相關(guān)的IP矩陣如圖2所示。
圖2 IP矩陣
關(guān)聯(lián)的IP矩陣不同于360netlab的共現(xiàn)矩陣的方法。我們將共現(xiàn)矩陣用于不同的目的,我們使用該矩陣查找關(guān)聯(lián)主機,360netlab使用矩陣直接查找關(guān)聯(lián)域。在360netlab的方法中,他們計算域與矩陣的相似度,但是存在一個問題,他們使用的權(quán)重閾值不小于3,但這可能被攻擊者利用,通過規(guī)避技術(shù)來逃避檢測,例如“客戶端子分組”[2]和一次生成域[1],可通過低查詢率繞過此域相似性聚類。我們不計算域的相似度,而是使用矩陣的計算原理來計算查詢客戶端的相似度。一個域名的查詢次數(shù)可以通過低查詢率規(guī)避,但是源客戶端的請求很難隱藏,如圖3所示[3],在360netlab的矩陣,它的每個元素的權(quán)重為2,小于閾值3,但是,我們方法中源客戶端的相似度,它的權(quán)重為4。
圖3 一次生成域
AIM模塊將最小化必須同時分析的DNS查詢數(shù)據(jù)。域IP矩陣A定義為布爾矩陣A,Hosts和NX域名之間的查詢關(guān)系以布爾矩陣中的一行布爾表達式來表示。
從計算原理可以看出,矩陣B的元素值為兩個源客戶端之間NX域的重合數(shù)。因此,基于域的重合數(shù),我們可以很容易地得到IP對等點的相似度,可以從這個相似度矩陣中提取關(guān)聯(lián)的客戶端。
關(guān)聯(lián)IP矩陣的另一個優(yōu)點是每一行的關(guān)聯(lián)IP與其他行無關(guān),每一行都包含了所有關(guān)聯(lián)關(guān)系,所以我們可以很容易地并行處理。另外,盡管ISP流量中的源客戶端和域的數(shù)量非常大,但是網(wǎng)絡(luò)中NX域名的重疊率很低,所以實際并行處理的關(guān)聯(lián)域名請求流的數(shù)量是有限的。
該模塊的目的是提取共現(xiàn)伴隨關(guān)系,特別是檢測由客戶端子分組逃避行為(低查詢率)引起的弱關(guān)聯(lián)關(guān)系。FST使用樹表示將域表示為節(jié)點,兩個節(jié)點之間的邊用于表示時間共現(xiàn)關(guān)聯(lián)。時間共現(xiàn)是源客戶端查詢列表中的順序訪問關(guān)系。我們將客戶端的查詢列表作為一個整體處理,使用源客戶端的整個域訪問順序作為節(jié)點關(guān)系,而不是僅僅使用兩個域之間的共現(xiàn)關(guān)系。因此,在域關(guān)系切割階段,我們不僅切割樹的邊緣以過濾出查詢相似度低的域名,而且還重構(gòu)樹以保留來自同一來源的域的寬松關(guān)系。特別是,我們會重新連接一組請求中的斷邊(例如圖4中的虛線)。
例如,在圖4中,我們將數(shù)據(jù)流2和數(shù)據(jù)流3作為分支連接到數(shù)據(jù)流1的關(guān)聯(lián)節(jié)點的骨干,例如,在圖4中,我們將數(shù)據(jù)流2和數(shù)據(jù)流3作為分支連接到數(shù)據(jù)流1的關(guān)聯(lián)節(jié)點的骨干上,根據(jù)前面提到的松弛關(guān)聯(lián)規(guī)則,刪除每個數(shù)據(jù)流中客戶端相似率低的節(jié)點,并將同一流中的節(jié)點之間的斷邊連接為順序關(guān)系邊。
圖4 頻繁序列樹
客戶端相似度是衡量具有Jaccard相似度的域之間關(guān)聯(lián)性的一個權(quán)值,已被應用于包括安全上下文在內(nèi)的許多應用中。這里的相似度定義為首先第一步是從AIM的每一行構(gòu)造FST,第二步在此樹結(jié)構(gòu)上迭代此過程,累加所有的樹結(jié)構(gòu)。
組分析器處理是從域名組中確定AGDS。根據(jù)DNS流量上的群組行為活動的公共屬性來評估屬于FST集合的域名。通過對群體行為活動特征的提取,確定提取的FST關(guān)聯(lián)集合是否是基于DGA的僵尸網(wǎng)絡(luò)。使用圖神經(jīng)網(wǎng)絡(luò)進行有監(jiān)督的學習分類,將每個群集的域名作為圖卷積網(wǎng)絡(luò)的節(jié)點,域名間的關(guān)系作為圖卷積網(wǎng)絡(luò)的邊?;诮┦W(wǎng)絡(luò)的群體行為分析,我們定義了三種關(guān)系特征來檢測每個子圖內(nèi)的行為一致性:①組內(nèi)訪問特征關(guān)系;②組內(nèi)結(jié)構(gòu)特征;③組內(nèi)語言特征。
在訪問特征的一致性方面,考慮到正常域更容易以隨機的時間間隔分布,而惡意軟件的訪問更容易被規(guī)則行為觸發(fā),我們使用序列域間隔時間和查詢計數(shù)的間隔時間作為圖神經(jīng)網(wǎng)絡(luò)邊的關(guān)聯(lián)權(quán)重。
我們還使用查詢次數(shù)的一致性來檢測其組活動行為,因為正常域更可能分布在隨機查詢中,而惡意軟件的訪問更容易被組行為活動觸發(fā)。
我們還利用域名長度和子域長度作為結(jié)構(gòu)一致性的特征,字母數(shù)字字符的比例,聚類域中重復字符的比例作為語言一致性的特征,以一元、二元、三元分布特征作為統(tǒng)計一致性的特征,共使用7個特征,分別代表每個簇的通達特征分布、結(jié)構(gòu)特征分布、語言特征分布和統(tǒng)計特征分布。然后使用圖神經(jīng)網(wǎng)絡(luò)方法來區(qū)分每個集群是否是惡意的。在經(jīng)過前期對于關(guān)聯(lián)惡意域名的過濾和提取,數(shù)據(jù)的規(guī)模適用于圖卷積網(wǎng)絡(luò)。
圖卷積神經(jīng)網(wǎng)絡(luò)(CNN)中的卷積本質(zhì)上是一個共享參數(shù)濾波器(核),通過計算中心點和鄰近點的加權(quán)和來提取空間特征。在給定屬性無向圖G=(V,E),其中V是一組大小為M的節(jié)點,E是一組邊。還假設(shè)X∈RM×N是具有每個節(jié)點v∈V的N維屬性的特征矩陣,而A∈RM×N是Ai,j=ai,j的鄰接矩陣,如果存在具有相應權(quán)重ai,j的邊e=,否則Ai,j=0。多層GCN的分層傳播:
其中D-1/2A~D-1/2是對稱歸一化拉普拉斯矩陣,A~=A+I~,I是M維恒等矩陣,D是對角度矩陣。W(L)是層l的權(quán)重矩陣,H(L)是層l的輸入激活,H(0)=X。σ表示激活函數(shù)(例如,RELU(.)=max(0,.))。只考慮2層GCN時,正向模型變?yōu)橐韵滦问剑?/p>
這里,W(0)∈RM×H是隱含層具有H特征映射的輸入-隱含權(quán)重矩陣。W(1)∈RH×F是假設(shè)輸出具有F個類別的隱藏到輸出權(quán)重矩陣。Softmax激活函數(shù)將向量x的每個元素范圍定為[0,1],并將所有元素的總和定義為1
對于每個時間窗口內(nèi)的數(shù)據(jù)集,F(xiàn)Probe的方法都顯示出了超過96%的TPR,并且平均誤報率低于2%。根據(jù)表4,F(xiàn)Probe在每個小時的數(shù)據(jù)集中最多時有1.3%假陽性的錯誤檢測。該假陽性產(chǎn)生的主要原因是由于Alexa域名的白名單或者公共服務器引起的,某些合法域名被用于惡意活動,導致與該域名關(guān)聯(lián)的其他域名被錯誤地認為是惡意域名。但是客戶端共享率能夠盡可能多地明顯阻斷這種關(guān)聯(lián)。
最后,將我們的方案與公開可用的FANCI進行了比較,它設(shè)計了3個方面,總共21個特征對NXDo?mains進行特征提取,通過隨機森林分類器將NXDo?mains分類為DGA域名或良性域名。我們在數(shù)據(jù)集上應用FANCI的檢測方法,結(jié)果如表1所示。兩個方案都取得了很好的結(jié)果。但是FANCI僅用了域名的本地特征,我們的方案與FANCI相比,我們的方法不僅在組內(nèi)關(guān)聯(lián)特征上進行了分類,更在結(jié)構(gòu)特征上構(gòu)建了時間依賴性特征(順序訪問關(guān)系)和空間依賴性(NX?Domains的共現(xiàn)關(guān)系)。顯然,我們的準確率明顯優(yōu)于FANCI,達到了很好的效果。
檢測惡意軟件的一個重大挑戰(zhàn)就是惡意軟件的逃避行為。多域名冗余、隨機間隔活動、客戶端子分組等惡意域名逃避行為為惡意軟件的逃避檢測提供了便利。這些方法都指向了低查詢率的逃避方案,因此檢測方法應該能夠處理這種低查詢率場景下的檢測。我們將FProbe與FANCI、GMAD、BotGAD的低查詢率性能進行比較。BotGAD在惡意軟件DNS查詢中使用時間同步DNS查詢,以及在查詢客戶端集之間的相似性并考慮了幾種規(guī)避技術(shù),例如休眠和隨機間隔活動,它還考慮了詞匯相似性和網(wǎng)絡(luò)IP地址特征檢測,但是在詞匯相似性和網(wǎng)絡(luò)相似性差異很大的逃避行為中,其檢測準確度較差。GMAD使用域名旅行考慮了每兩個訪問域名之間的時間順序關(guān)系和空間上共同訪問的共現(xiàn)關(guān)系,但是其只考慮域名兩兩之間的關(guān)系,沒有考慮域名在其源客戶端的整條訪問流之間的關(guān)聯(lián)關(guān)系,會導致某些關(guān)聯(lián)域名之間的聯(lián)系被切割,而且由于其是使用已知惡意域名去定位惡意域名組,因此惡意域名種子的選擇影響非常大。FProbe與GMAD差異的區(qū)別主要是,F(xiàn)Probe對于被相同惡意軟件感染的低查詢率的源客戶端的聚類能力使得其能夠快速定位關(guān)聯(lián)域名,BotGAD檢測不到低訪問率的組活動,而GMAD也具有低查詢率的檢測能力,但是由于單一的查詢依賴關(guān)系會丟失分組中的部分域名見表1。
表1 實驗結(jié)果
攻擊者為了逃避檢測系統(tǒng)實施了各種逃避方法,不止從域名特征上進行逃避,還從行為特征上進行逃避,越來越智能的惡意軟件對檢測系統(tǒng)提出了挑戰(zhàn),在本文中,我們提出了一種名為FProbe的僵尸網(wǎng)絡(luò)DGA檢測方案,該方案使用關(guān)聯(lián)矩陣發(fā)現(xiàn)有關(guān)聯(lián)的受感染主機,然后使用頻繁序列樹聚合有時間訪問關(guān)聯(lián)的域名和空間上共現(xiàn)的域名,最后以監(jiān)督的方法使用共同的組行為活動區(qū)分僵尸網(wǎng)絡(luò)組和良性域名組,關(guān)聯(lián)矩陣和樹聚類整形的功能同時保證了低查詢率惡意域名的檢測能力。我們在校園網(wǎng)數(shù)據(jù)集中實施了FProbe,其結(jié)果表明我們的方案具有更高的精度和可擴展的能力。我們的方法將有助于更有效地防止僵尸網(wǎng)絡(luò)的感染造成的損害。