臧小東,龔儉,胡曉艷
?
基于AGD的惡意域名檢測
臧小東1,2,3,龔儉1,2,3,胡曉艷1,2,3
(1. 東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 211189;2. 東南大學(xué)江蘇省計算機網(wǎng)絡(luò)重點實驗室,江蘇 南京 211189;3. 東南大學(xué)教育部計算機網(wǎng)絡(luò)和信息集成重點實驗室,江蘇 南京 211189)
提出了一種聚類和分類算法相結(jié)合的惡意域名檢測思路,首先通過聚類關(guān)聯(lián),辨識出同一域名生成算法(DGA, domain generation algorithm)或其變體生成的域名,然后分別提取每一個聚類集合中算法生成域名(AGD, algorithmically generated domain)的TTL、解析IP分布、歸屬、whois的更新、完整性及域名的活動歷史特征等,利用SVM分類器過濾出其中的惡意域名。實驗表明,該算法在不需要客戶端查詢記錄信息的情況下即可實現(xiàn)準(zhǔn)確率為 98.4%、假陽性為0.9%的惡意域名檢測。
網(wǎng)絡(luò)安全監(jiān)測;域名生成算法;命令與控制服務(wù)器;算法生成域名
作為互聯(lián)網(wǎng)的重要基礎(chǔ)設(shè)施,DNS承載著域名與IP的雙重映射,電子郵件、網(wǎng)站服務(wù)、微博等多種應(yīng)用都與之相關(guān)。與此同時,各種惡意活動也隨之誕生,如僵尸網(wǎng)絡(luò)[1]、垃圾郵件、釣魚網(wǎng)站等利用DNS解析域名獲取回連服務(wù)器的IP地址,隱藏和躲避僵尸代理背后的命令與控制(C&C, command and control)服務(wù)器,然后回連該服務(wù)器,接收指令和回傳竊取的信息。由此可見,域名對僵尸網(wǎng)絡(luò)等惡意活動的構(gòu)建和發(fā)動攻擊起著重要的作用。因此,有效檢測和識別出這些惡意活動使用的域名,對發(fā)現(xiàn)和防范其傳播具有重要意義。
早期的惡意代碼通常在程序中預(yù)置IP地址作為其C&C的地址,這種現(xiàn)象經(jīng)常導(dǎo)致單點故障問題。隨后攻擊者采用IP-Flux技術(shù)頻繁切換IP地址躲避攔截,但該技術(shù)使用的域名固定,難逃域名黑名單的封堵。為了進一步提高逃逸和生存能力,最近攻擊者采用域名生成算法生成域名,該算法使用一個特定參數(shù)(日期、時間、知名網(wǎng)站的內(nèi)容)作為種子初始化一個隨機算法,生成大量域名,并選擇部分進行注冊,如Conficker-A/B/C僵尸、Kraken botnet等[2]。本文將不同DGA生成的域名統(tǒng)稱為AGD。為了有效區(qū)分這些AGD,研究人員開始逆向分析惡意代碼[3-4],記錄和封堵當(dāng)前和后續(xù)生成的域名,但是當(dāng)攻擊者采用加密、周期性更新代碼等混淆技術(shù)時,這種方法費時費力。
近年來,研究人員致力于通過分析DNS的活動行為進行惡意服務(wù)檢測,算法的關(guān)鍵在于挖掘出合法活動區(qū)別于惡意活動的特征。相關(guān)研究存在2種思路:1) 圍繞本地緩存名字服務(wù)器獲取的下層DNS 流量開展,這種思路認為同一惡意代碼感染的僵尸主機具有相似的訪問模式,研究人員分別從解析成功和解析失敗的域名出發(fā),分析客戶端用戶對域名的查詢行為[5-10]并進行辨識;2) 分析上層DNS流量,借用下層類似模型分析DNS活動,測量緩存名字服務(wù)器中的IP地址集的相似性、空間分布等特征[11-13]。研究發(fā)現(xiàn),上述研究成果多集中在惡意域名的檢測方面,而對生成的AGD屬于哪一種DGA的研究較少;另外發(fā)現(xiàn),上述算法各有所長且有著不同的適用范圍,如文獻[7]提出的Pleiades系統(tǒng)對具有Fast-Flux特性的域名具有較低的識別率;而文獻[11]提出的Kopis僅識別某個特定頂級域的惡意域名;盡管文獻[14]對生成的AGD屬于哪一種DGA進行了研究,但該算法沒有區(qū)分AGD中的惡意域名,實測過程中發(fā)現(xiàn)該算法存在較多誤報。
為了彌補上述研究中存在的不足,并考慮到相關(guān)檢測信息收集的難度和成本,本文提出了一種新的檢測思路。具體地,通過對流經(jīng)中國教育科研網(wǎng)江蘇省網(wǎng)邊界的上層DNS解析流量的實際觀察,本文發(fā)現(xiàn)同一DGA生成的大量域名映射到相同的IP集合,本文認為攻擊者擁有一個相對穩(wěn)定的IP集合,映射到這些IP集合上的域名有可能是一種DGA生成的,為此,本文將解析到相同IP集合的域名聚類,這些IP很有可能是惡意代碼的C&C服務(wù)器。另外發(fā)現(xiàn),不同DGA生成的域名在字面組成上具有可區(qū)分性,根據(jù)這種現(xiàn)象,本文提取域名的字面特征,將字面特征相近的域名聚類。然后對2種聚類集合進行關(guān)聯(lián)性分析,進一步過濾掉噪聲,使每一個聚類集合中的域名更貼近同一DGA或其變體生成的域名。然后針對每一個聚類集合,挖掘出域名解析IP的使用位置、歸屬特征、whois特征、TTL及域名活動歷時等特征,并在此基礎(chǔ)上利用SVM算法過濾掉合法的域名。
本文的貢獻如下所示。
1) 通過聚類關(guān)聯(lián)有效識別同一DGA或其變體生成的域名。盡管使用聚類算法對域名分簇已十分常見,但將不同聚類算法關(guān)聯(lián)起來,通過計算2種不同聚類算法輸出結(jié)果的Jaccard index得分來識別同一DGA或其變體生成的域名在現(xiàn)有文獻中暫未發(fā)現(xiàn)。與文獻[14]相比,本文算法在識別同一DGA生成的域名方面較全面、準(zhǔn)確,還可以區(qū)分出其中的惡意域名。
2) 提出了新的惡意域名檢測測度,如域名解析IP使用位置、歸屬、whois的完整性及逆向IP查詢得到的二級域名數(shù)。實驗表明,利用本文提出的測度結(jié)合TTL、域名解析IP的分布及域名活動的歷史信息等舊的測度可以有效地辨識出DGA生成的惡意域名及Fast-Flux[15-17]域名,并有著較高的檢測精度。與文獻[6]相比,本文算法不需要客戶端的IP地址參與,不會因DNS緩存機制屏蔽用戶的查詢行為導(dǎo)致檢測率低。
越來越多的攻擊者利用DNS 這種互聯(lián)網(wǎng)的重要基礎(chǔ)設(shè)施作為紐帶從事非法活動,如新型僵尸網(wǎng)絡(luò)等利用DNS服務(wù)隱藏其命令與控制服務(wù)器,提高生存性,其行為可分為感染階段、C&C服務(wù)器招募階段、攻擊階段及維護階段,如圖1所示。由此可見,識別出這些惡意代碼使用的域名,可以實現(xiàn)事前檢測和攔截惡意服務(wù)。近年來,研究人員通過分析 DNS 的活動行為檢測惡意服務(wù)。由于在實際監(jiān)測過程中觀察到 DNS 流量的覆蓋范圍不同,本文將DNS 的解析流量分為上層流量和下層流量,如圖 2 所示。其中,下層流量指實際所有DNS解析流量(包括訪問緩存的流量),上層流量指訪問DNS服務(wù)器的DNS解析流量。
圖1 僵尸網(wǎng)絡(luò)
由于在接入網(wǎng)邊界采集的DNS解析流量中不包含訪問本地緩存的DNS解析流量,因此從接入網(wǎng)邊界觀察到的是上層DNS解析流量。研究思路分為2種,一種是圍繞本地緩存名字服務(wù)器獲取的下層DNS流量開展[5-10],分析查詢失敗的域名,從中識別出AGD。而文獻[10]能從正確解析的域名出發(fā)提出動態(tài)的域名打分系統(tǒng)Notos,該系統(tǒng)使用被動DNS的查詢數(shù)據(jù)、網(wǎng)絡(luò)及域名的zone特征,通過計算域名的得分情況來確定該域名的合法性。
圖2 DNS流量層次分類
另一種思路圍繞上層DNS流量開展,借用下層DNS活動中的類似模型辨識出其中的惡意域名[11-13]。相關(guān)研究工作較少,代表性的方法有文獻[11]提出的Kopis檢測系統(tǒng),該系統(tǒng)通過分析頂級域名服務(wù)器和權(quán)威服務(wù)器的數(shù)據(jù)以及全球域名的查詢和響應(yīng)行為特征進行識別,但是該系統(tǒng)僅可識別某個特定頂級域的域名。由于從頂級域名服務(wù)器處觀察到的本地緩存名字服務(wù)器數(shù)量龐大且地域分布廣泛,因此會降低從本地緩存名字服務(wù)器視角觀察IP地址集相似性及空間分布特征的上層DNS流量檢測算法的準(zhǔn)確率。文獻[12]基于域名的依賴性和使用位置區(qū)分域名的惡意性,實測過程中發(fā)現(xiàn)存在大量誤報。近年來,深度學(xué)習(xí)越來越受研究人員的關(guān)注,它通過組合低層特征形成更加抽象的高層表示屬性類別或特征用來發(fā)現(xiàn)數(shù)據(jù)的分布。文獻[18]提出一種基于域名歷史數(shù)據(jù)的異常域名檢測算法,能夠有效識別出具有一定生存時間的可疑域名,且該方法在歷史數(shù)據(jù)足夠多的情況下比較高效。文獻[19-20]提出了用模糊模式識別技術(shù)來識別被管理網(wǎng)絡(luò)中的僵尸,該技術(shù)通過DNS檢測和TCP檢測等步驟識別惡意域名和IP,但它使用的簡易成員函數(shù)導(dǎo)致誤報率高、實用性差。
分析發(fā)現(xiàn),已有工作主要集中在惡意域名檢測方面,而對生成的AGD屬于哪種DGA研究較少。盡管文獻[14]對這一方面進行了研究,實測發(fā)現(xiàn)該算法誤報多且沒有區(qū)分AGD的惡意性。另外,本文的研究對象是上層DNS流量經(jīng)過基于詞素算法[21]得到的AGD,而文獻[14]中研究對象涉及的域名包括正常域名和DGA生成的域名。由于DNS緩存機制的存在,它會屏蔽終端用戶查詢相關(guān)域名的IP,即上層DNS流量無法看到終端用戶信息,從而導(dǎo)致從終端用戶角度出發(fā)分析客戶端訪問模式的相似性算法失效。本文算法不需要客戶端查詢記錄,可以有效區(qū)分域名的惡意性并具有較高的檢測精度??紤]到本文訓(xùn)練數(shù)據(jù)僅1萬條而測試數(shù)據(jù)有100萬條,相比之下訓(xùn)練樣本較少,而SVM具有在訓(xùn)練過程中不需要太多的訓(xùn)練樣本,即可實現(xiàn)較高精度的分類且能夠處理高維的特征向量特點。鑒于其在本文的適用性,本文利用它過濾掉正常域名,并將其與C4.5、NN等分類算法對比,發(fā)現(xiàn)SVM算法具有較高的準(zhǔn)確率。
本文的目標(biāo)是辨識出攻擊者利用域名生成算法生成的惡意域名。為了達到這個目標(biāo),本文首先辨識出同一DGA或其變體生成的域名聚類,然后針對每一個聚類集合,提取能夠有效區(qū)分域名惡意性的特征,過濾掉正常的域名集合。
域名和域。一個域名由多個標(biāo)簽(點)拆分的字符串組成。最右部分為一個域名的頂級域名(TLD, top-level domain),然后是其二級域(2LD, second-level domain),依次類推。例如www. baidu.com,頂級域為com,二級域為baidu,三級域為www,而baidu.com為二級域名,其中,頂級域的標(biāo)簽不止一個,如.co.uk。
3.1.1 基于二分圖的聚類
算法1 譜聚類算法對域名聚類
3.1.2 基于域名字面特征的聚類
本文通過分析流經(jīng)中國教育科研網(wǎng)江蘇省網(wǎng)邊界的上層DNS解析流量發(fā)現(xiàn),不同DGA生成的域名在字面上要么由隨機英文字符組成,要么由全數(shù)字和數(shù)字、英文字符混合組成,甚至一些高級惡意代碼使用的DGA可以生成一系列可讀的域名(類似于英文單詞)。本文分別統(tǒng)計了域名的-元特征、字符熵值、數(shù)字特征及有意義字符所占百分比,利用-means算法對這些域名進行聚類。
-元組特征。為了區(qū)分域名的可讀性,本文分別提取每個域名對應(yīng)2LD和3LD的兩元、三元特征。針對每一域名的2LD和3LD,本文分別統(tǒng)計其兩元、三元出現(xiàn)次數(shù)的平均值方差及中位數(shù),平均值計算方法參考式(2),-元組提取詳見算法2。
算法2-元統(tǒng)計值計算
輸入 域名、、規(guī)范化后的英文字典
輸出 域名中-元字符的統(tǒng)計次數(shù)
1) 提取域名的字符串,并插入容器
2) 構(gòu)建字典樹
3) 遍歷字典樹,統(tǒng)計在字典數(shù)出現(xiàn)的次數(shù)
4)+ =
5) return
熵值特征。為了進一步區(qū)分域名中字符的分布情況,本文計算每個域名2LD和3LD中所含字符熵的變化情況。不同DGA生成的域名所包含字符的熵值變化范圍往往不一致,本文可以利用這個測度進行區(qū)分,如式(3)所示。
數(shù)字特征。同一DGA生成的域名具有較高的相似性,基于這個特點本文分別提取域名的長度特征、2LD和3LD的長度、域名中級域中的取值及域名2LD和3LD域中數(shù)字字符所占的百分比特征。
圖3 AGD占測試數(shù)據(jù)集的比率
域名的TTL特征。DNS響應(yīng)分組中包含TTL,記錄了域名服務(wù)器將域名的解析信息保留在緩存中的最長時間。正常域名的值一般為1~5天[23],惡意域名為了提高其逃逸能力往往設(shè)置較短的值。統(tǒng)計分析樣本數(shù)據(jù)中的正常域名和惡意域名的值發(fā)現(xiàn),正常域名中大約30%的域名值大于1天,60%以上的域名值大于1 200 s;而惡意域名的值較小,通常小于500 s,大概占45%左右,而小于1 000 s的惡意域名更是占總量的70%以上。另外,正常網(wǎng)絡(luò)服務(wù)為了減少開銷,使用Round-Robin DNS和內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN, content delivery network)實現(xiàn)負載均衡,其值也比較低,如阿里云盾的Challenge Collapsar/DDoS攻擊防御方法使用DGA生成的域名為CDN使用。由于單一通過分析值區(qū)分域名的惡意性會產(chǎn)生較高的誤報率和漏報率,因此需要與其他測度結(jié)合分析。本文分別提取域名的平均值、標(biāo)準(zhǔn)方差、的變化次數(shù)及變化范圍的百分比作為區(qū)分測度。
域名的whois特征。whois是當(dāng)前域名系統(tǒng)中不可或缺的一項信息服務(wù),通過它可以知道域名的解析IP、注冊人等相關(guān)信息。本文利用virustotal提供的API查詢每個域名對應(yīng)二級域名的whois信息,基于以往專家對域名的分析,正常域名的生命周期往往較長,且在這段時間內(nèi)該域名提供的服務(wù)幾乎都可以被訪問,相比之下,botmaster使用隨機算法或使用Flux技術(shù)注冊的域名生命周期短,便于頻繁切換和更新,可以提高其生存性和隱蔽性。另外,正常域名為了提高知名度,在注冊時擁有較完整的注冊信息,而惡意域名為了掩人耳目,注冊信息隨機且不完整。表1統(tǒng)計了virustotal官網(wǎng)域名whois的主要信息項及含義。本文提取域名的注冊時間、到期時間、更新時間信息,并分析了whois信息的完整度,分別統(tǒng)計了正常域名和惡意域名的whois信息的完整度。統(tǒng)計發(fā)現(xiàn),域名的whois信息項大概有50多條,其中93.28%正常域名whois信息項有30條左右,仔細分析發(fā)現(xiàn)Registrant的多數(shù)信息真實存在,而90%以上的惡意域名的whois信息小于20條且提供的注冊信息可讀性差。然后統(tǒng)計了域名注冊時間的變化情況,發(fā)現(xiàn)87%以上的正常域名注冊時間比較長,大概在5年以上,其中,60%還未更新;而90%的惡意域名注冊時間短,低于3年且65%以上都已經(jīng)到期,已經(jīng)更新。同時還發(fā)現(xiàn),正常域名伴隨著生存時間的增長,域名更新次數(shù)較多,而大多數(shù)惡意域名的whois信息更新次數(shù)較少,因此可以有效區(qū)分。
表1 樣本域名whois的主要信息項及含義
解析IP特征。為了逃避檢測,攻擊者采用多種逃逸技術(shù),如Fast-Flux,確保其C&C控制器的存活性。此外,CDN也將其域名映射到多個IP上以實現(xiàn)負載均衡,但是CDN背后擁有的服務(wù)器通常是高性能的專用服務(wù)器,其IP長期穩(wěn)定活躍,而Fast-Flux 感染的主機通常是普通用戶且無法對其直接控制,這些IP短期活躍且不斷更新。另外,CDN為了提高服務(wù)質(zhì)量,減少用戶訪問時間,采用就近原則提供服務(wù),其IP集合分布廣且均勻,而Fast-Flux則不是這樣,其IP分布比較發(fā)散?;谏鲜鎏攸c,本文分析正常域名和惡意域名的解析IP的使用位置、歸屬信息。研究發(fā)現(xiàn),惡意域名的解析IP分布比正常域名發(fā)散,本文查詢實驗室的IP活動庫獲取其解析IP所在城市數(shù)、歸屬地數(shù)。根據(jù)IP所在城市數(shù)、歸屬地數(shù),計算解析IP的使用位置及歸屬地熵值。熵值越大,位置越發(fā)散,越接近惡意域名。盡管Fast-Flux網(wǎng)絡(luò)通過頻繁切換IP逃避檢測,但域名固定仍然難以避免單點失效,DGA通過生產(chǎn)大量域名,定位其C&C服務(wù)器,恰好彌補上述不足。反而言之,F(xiàn)ast-Flux網(wǎng)絡(luò)的IP會映射到多個域名上,統(tǒng)計分析所有解析IP地址到域名的映射,其中,CDN中,每個解析IP反向映射到的二級域名數(shù)目超過39個的只有17.3%,而Fast-Flux網(wǎng)絡(luò)中占42.5%;CDN中,每個解析IP地址反向映射的二級域名數(shù)目超過10個的僅有15.3%,而Fast-Flux網(wǎng)絡(luò)卻有45.4%[12]。由此看出,CDN中域名的解析IP地址到二級域名的映射數(shù)較少。本文還提取了逆向IP查詢得到的IP到域名映射的數(shù)量作為一個測度,來區(qū)分CDN域名和Fast-Flux域名。
域名活動歷史特征。本文采用基于網(wǎng)絡(luò)的特征和基于IP黑名單的證據(jù)特征刻畫域名的活動歷史,其中,基于網(wǎng)絡(luò)的特征描述分配給域名注冊者的網(wǎng)絡(luò)資源情況。研究發(fā)現(xiàn),不法分子經(jīng)常濫用其域名及IP資源,這些域名或IP通常表現(xiàn)為具有較短的生存時間和較高的切換頻率,而正常用戶的網(wǎng)絡(luò)特征相對穩(wěn)定。本文分別統(tǒng)計域名對應(yīng)解析IP所屬的BGP前綴和自制系統(tǒng)(AS, autonomous system)數(shù),即BGP(D)、BGP(2LD)、BGP(3LD)、AS(D)、AS(2LD)、AS(3LD)數(shù)及這些BGP前綴歸屬的國家數(shù)。正常域名對應(yīng)的BGP前綴、AS值較小,而諸如Fast-Flux等惡意域名由于常進行頻繁的切換導(dǎo)致BGP前綴、AS值較大。另外,域名資源相對于IPv4地址資源比較便宜,不法分子通常重用已知的惡意網(wǎng)絡(luò)資源,如IP地址、BGP前綴及AS等資源。本文分別統(tǒng)計域名對應(yīng)解析IP地址A(D)、BGP(A(D))和AS(A(D))在Spamhaus Block List[24]上的數(shù)目,來刻畫待檢測域名與已知惡意域名或IP的關(guān)聯(lián)程度,數(shù)目越多,關(guān)聯(lián)度越高,越接近惡意域名。
待提取到所有特征后,構(gòu)建特征向量,使用機器學(xué)習(xí)算法過濾掉不符合要求的域名。為了實現(xiàn)較好的性能而不至于過擬合,本文采用5折交叉驗證方法對訓(xùn)練數(shù)據(jù)進行訓(xùn)練,本文的訓(xùn)練數(shù)據(jù)包括Alex前1萬的域名及文獻[7-11]提供的惡意域名,然后分別比較C4.5決策樹、NN 、Bayesian Network和SVM等分類算法的測試結(jié)果,實驗發(fā)現(xiàn)SVM算法具有較高的精度。
本文所有實驗均在一臺兩路Intel Xeon服務(wù)器上執(zhí)行,每一路上具有一個Intel(R) Xeon(R) CPU E5-2650的處理器,每個處理器包含八核,主頻2.00 GHz,內(nèi)存為128 GB。算法的實現(xiàn)采用C++和Python語言,本文在Python中使用了NumPy包,并利用scikit-learn機器學(xué)習(xí)庫構(gòu)建機器學(xué)習(xí)模型。
本節(jié)為惡意域名檢測系統(tǒng)提供了一個全面概況,主要包括預(yù)處理、聚類模塊及分類模塊3個部分,如圖4所示。
圖4 AGD惡意域名檢測系統(tǒng)概況
實測數(shù)據(jù)集。從2017年2月12日—26日在中國教育科研網(wǎng)江蘇省網(wǎng)邊界采集到的能夠正確解析的DNS交互分組,大約100萬的不同域名集合。本文的惡意域名檢測算法是基于域名本身所呈現(xiàn)的特性進行的。惡意域名本身的活動是一種特殊應(yīng)用,這種應(yīng)用無論在教育網(wǎng)還是商業(yè)網(wǎng)所呈現(xiàn)的流量特征是一樣的。流量特征的不同和用戶行為有關(guān),而用戶行為和網(wǎng)絡(luò)中的應(yīng)用是相關(guān)的[25]。不同的網(wǎng)絡(luò)應(yīng)用,呈現(xiàn)的流量特征也不盡相同,所以說本文的算法和結(jié)論可以用于大規(guī)模商用網(wǎng)絡(luò)。
訓(xùn)練數(shù)據(jù)集。正常域名集,本文選取Alex網(wǎng)站連續(xù)三次排名前1萬的域名集合(每月觀測一次,從而保證其排名的穩(wěn)定性),但由于Alex 網(wǎng)站只提供二級域名,為了獲取完整的域名,本文從實測域名集獲取與上述域名具有相同“二級域名標(biāo)簽”的域名構(gòu)成合法樣本集。惡意域名集合,本文選取僵尸網(wǎng)絡(luò)、釣魚網(wǎng)站、垃圾郵件和惡意軟件等惡意域名,針對這些域名中沒有三級域名標(biāo)簽的域名,本文采用與正常域名集相同做法構(gòu)成惡意樣本集。
預(yù)處理模塊。提取DNS響應(yīng)分組,剔除DNS查詢不成功的域名,然后利用域名、IP及不合法域名后綴黑名單對實測數(shù)據(jù)進行過濾,過濾掉已知惡意的域名。
聚類模塊。分別將映射到相同解析IP地址集合的域名聚類和域名字面特征相近的域名聚類,分析2種聚類聚合的Jaccard index得分,識別同一DGA或其變體生成的域名。
分類模塊。提取域名的TTL、whois更新、完整性特征、解析IP分布、歸屬等特征,利用SVM算法過濾掉正常域名。
圖6 不同特征組合下準(zhǔn)確率
圖5 聚類靈敏度參數(shù)取值分析
圖7 不同分類算法的準(zhǔn)確率
為了有效區(qū)分惡意域名,本文統(tǒng)計監(jiān)控時間與準(zhǔn)確率的關(guān)系。一般而言,監(jiān)控窗口越長,信息越全,準(zhǔn)確率越高,相反準(zhǔn)確率降低。但是當(dāng)窗口足夠大時,數(shù)據(jù)量龐大,就會影響系統(tǒng)性能。為此本文考慮準(zhǔn)確率與性能的權(quán)衡,重復(fù)上述實驗,選擇合適的監(jiān)控窗口。本文在保持?jǐn)?shù)據(jù)集不變的情況下,設(shè)定監(jiān)控窗口為(3, 5, 8, 10, 13, 15)天,從準(zhǔn)確率、假陽性和假陰性3個方面評估算法的檢測精度。實驗發(fā)現(xiàn),算法的準(zhǔn)確率隨著觀測窗口的長度增加而增大,但幅度不大。相應(yīng)地,假陽性和假陰性有所減小,如圖8所示。
圖8 準(zhǔn)確率與監(jiān)控窗口的關(guān)系
當(dāng)觀測時間長度從3天增加到8天后,檢測準(zhǔn)確率從 94.6%上升到97.8%,假陽性從 2.5%下降到 1.2%,假陰性也從2.9%下降到1.0%。當(dāng)窗口繼續(xù)增大時,準(zhǔn)確率有所下降。進一步實驗,本文設(shè)置第8天作為初始窗口,此時的準(zhǔn)確率等同于窗口等于3的結(jié)果。本文觀察一周的準(zhǔn)確率變化情況,發(fā)現(xiàn)在第15天的準(zhǔn)確率達到98.4%,所以在實測過程中設(shè)定觀測窗口為7天。
完成訓(xùn)練后,利用本文提取的測度對實測數(shù)據(jù)進行檢測發(fā)現(xiàn),5 142個可疑二級域名標(biāo)簽,進一步分析發(fā)現(xiàn),其中507個二級域名所轄子域名出現(xiàn)于域名黑名單中。然后通過McAfee Site Advisor交叉驗證剩余域名發(fā)現(xiàn),4 375個域名為惡意域名,剩余260個域名中121個域名無法正常訪問,107個域名對應(yīng)于合法域名為誤報。實測分析算法準(zhǔn)確率可達到97.84%,誤報率為0.88%,召回率為77.5%,值為86.5%,符合的訓(xùn)練結(jié)果。針對這些惡意域名本文進一步分析其對應(yīng)的三級標(biāo)簽及解析IP,研究發(fā)現(xiàn)3 678個為DGA域名,709個存在Fast-Flux特性,剩余的域名部分為Spam和成人網(wǎng)站作為媒介進行惡意企圖。
圖9 AGD識別準(zhǔn)確率
實驗發(fā)現(xiàn),本文算法準(zhǔn)確率較高,漏報率相對較低,優(yōu)于文獻[14]。然后將本文算法(A2)分別與算法(A3)[12]、算法(A1)[23]和算法(A4)[11]進行比較,分析在惡意域名檢測方面的準(zhǔn)確率和性能。實驗發(fā)現(xiàn)本文算法與其他算法相比,準(zhǔn)確率、假陽性、假陰性、召回率、值指標(biāo)明顯優(yōu)于其他算法,這充分說明本文聚類和分類相結(jié)合的算法在分析AGD的惡意性方面更加有效,如圖11所示。
圖10 AGD識別漏報率
圖11 不同檢測算法準(zhǔn)確率
最后,本文分析了上述算法的系統(tǒng)開銷。本文主要通過virustotal官網(wǎng)API獲取whois信息,為了避免網(wǎng)絡(luò)爬蟲,virustotal官網(wǎng)對其API的API-key進行了限制,一定程度上影響了系統(tǒng)性能。為了減少運算開銷,本文在實驗過程中將獲取的whois信息存入MySQL數(shù)據(jù)庫,重新執(zhí)行本文算法。與其他算法相比,本文算法性能開銷略微較大,但相差不大,另外,本文算法具有較高的檢測精度,這充分說明,盡管本文算法不能完全取代其他檢測算法,但一定程度上可以作為其他算法的補充,在運算開銷幾乎和其他算法差不多的情況下,可以準(zhǔn)確地進行惡意域名辨識。不同檢測算法的開銷評估如表2所示。
表2 不同檢測算法的開銷評估
作為互聯(lián)網(wǎng)的重要基礎(chǔ)設(shè)施,DNS在提供便利的同時,日益被攻擊者利用來從事一些非法活動。本文設(shè)計了一種新的惡意域名檢測方法,首先,定義不同的相似度標(biāo)準(zhǔn),分別對域名聚類,利用Jaccard index分析不同聚類集合的關(guān)聯(lián)性,辨識出同一DGA或其變體生成的域名,這是本文工作的一個特色,也是與其他工作的不同之處。其次,提取一些新的檢測測度,并充分與其他特征相結(jié)合,對每一個聚類集合中的域名進行分類,過濾正常域名。實驗發(fā)現(xiàn),在不需要分析客戶端IP對域名的查詢記錄及用戶規(guī)模的情況下,本文算法便可有效區(qū)分出AGD中的惡意域名。與現(xiàn)有工作相比,本文算法在檢測精度和檢測效率方面有了很大提升。本文下一步的工作考慮設(shè)計實時性的惡意域名檢測算法及惡意代碼意圖分析以實現(xiàn)秒級的響應(yīng)。
[1] 江健, 諸葛建偉, 段海新, 等. 僵尸網(wǎng)絡(luò)機理與防御技術(shù)[J].軟件學(xué)報, 2012, 23(1): 82-96.
JIANG J, ZHUGE J W, DUAN H X, et al. Research on botnet mechanisms and defenses[J]. Journal of Software, 2012, 23(1): 82-96.
[2] YADAV S, REDDY A, REDDY A, et al. Detecting algorithmically generated malicious domain names[C]//The 10th ACM SIGCOMM Conference on Internet Measurement. 2010: 48-61.
[3] STONE G B, COVA M, CAVALLARO L. Your botnet is mybotnet: analysis of a botnet takeover[C]//ACM Conference on Computerand Communications Security (CCS).2009:635-647.
[4] DANIEL P, KHALED Y, MICHAEL K, et al. A comprehensive measurement study of domain generating mal-ware[C]//The 25th USENIX Security Symposium. 2016: 263-278.
[5] WANG T S , LIN H T , CHENG W T, et al. DBod: clustering and detecting dga-based botnets using DNS traffic analysis[J]. Computers & Security, 2017, 64:1-15.
[6] BILGE L , KIRDA E , KRUEGEL C , et al. Exposure: finding malicious domains using passive DNS analysis[C]//NDSS. 2011:1-17.
[7] ANTONAKAKIS M, PERDISCI R, NADJI Y. From throw-away traffic to bots: detecting the rise of DGA-Basedmalware[C]//Usenix Conference on Security Symposium.2012:24-40.
[8] SHARIFNYA R, ABADI M. DFBotKiller: domain-flux botnet detection based on the history of group activities and failures in DNS traffic[J]. Digital Investigation,2015,12(12):15-26.
[9] KHEIR N, TRAN F, CARON P, et al. Mentor: positive DNS reputation to skim-off benign domains in botnet c&c blacklists[C]//IFIP International Information Security Conference.2014:1-14.
[10] MANOS A, ROBERTO P, DAVID D, et al. Building a dynamic reputation system for DNS[C]//The 19th USENIX Security Symposium (USENIX Security’10). 2010:273-290.
[11] ANTONAKAKIS M, PERDISCI R, LEE W, et al. Kopis: detecting malware domains at the upper DNS hierarchy[C]//Usenix Conference on Security. 2011.
[12] 張維維, 龔儉, 劉尚東, 等. 面向主干網(wǎng)的 DNS 流量監(jiān)測研究[J]. 軟件學(xué)報, 2017, 28(9): 2370-2387.
ZHANG W W, GONG J, LIU S D, et al. DNS surveillance on backbone[J]. Journal of Software ,2017,28(9):2370-2387.
[13] THOMAS M, MOHAISEN A. Kindred domains: detecting and clustering botnet domains using DNS traffic[C]//Companion Publication of the International Conference on World Wide Web Companion. 2014:707-712.
[14] STEFANO S, FEDERICO M, LORENZO C, et al. Phoenix: DGA-based botnet tracking and intelligence[C]//International Conference on Detection of Intrusions& Malware.2014: 192-211.
[15] CELIK Z B, OKTUG S. Detection of fast-flux networks using various DNS feature sets[J]. Computers&Communications,2013:868-873.
[16] HUANG S Y, MAO C H, LEE H M. Fast-flux service network detection based on spatial snapshot mechanism for delay-free detection[C]//5th International Symposium on ACM Symposium on Information, Computer and Communications Security .2010: 101-111.
[17] ALMOMANI A. Fast-flux hunter: a system for filtering online fast-flux botnet[J]. Neural Computing& Applications, 2016: 1-11.
[18] 袁福祥, 劉粉林, 蘆斌, 等. 基于歷史數(shù)據(jù)的異常域名檢測算法[J].通信學(xué)報, 2016, 37(10): 172-180.
YUAN F X, LIU F L, LU B, et al. Anomaly domains detection algorithm based on historical data[J]. Journal on Communications, 2016, 37(10): 172-180.
[19] WANGA K C, HUANGB C Y, LIN S J, et al. Fuzzy pattern-based filtering algorithm for botnet detection[J]. Computer Networks, 2011, 55(15): 3275-3286.
[20] WANG K, HUANG C Y, LIN S J, et al. A fuzzy pattern-based filtering algorithm for botnet detection[J]. Computer Networks the International Journal of Computer & Telecommunications Networking, 2011,55(15): 3275-3286.
[21] 張維維, 龔儉, 劉茜, 等. 基于詞素特征的輕量級域名檢測算法[J].軟件學(xué)報,2016,27(9):2348-2364.
ZHANG W W, GONG J, LIU Q, et al. A Lightweight domain name detection algorithm based on morpheme features[J]. Journal of Software, 2016,27(9):2348-2364.
[22] LIN H T , LIN Y Y, CHIANG J W . Genetic-based real-time fast-flux service networks detection[J]. Computer Networks, 2013,57(2): 501-513.
[23] BILGE L, SEN S, BALZAROTTI D. Exposure: a passive DNS analysis service to detect and report malicious domains[J]. ACM Transactions on Information and System Security (TISSEC),2014,16(4):14-41.
[24] SHI Y, CHEN G, LI J T. Malicious domain name detection based on extreme machine learning[J]. Neural Process Letters,2017: 1-11.
[25] LI B D, SPRINGER J, BEBIS G, et al. A survey of network flow applications[J]. Journal of Network and Computer Applications, 2013, 36(2): 567-581.
Detecting malicious domain names based on AGD
ZANG Xiaodong1,2,3, GONG Jian1,2,3, HU Xiaoyan1,2,3
1. School of Cyber Science and Engineering, Southeast University, Nanjing 211189, China 2. Jiangsu Provincial Key Laboratory of Computer Network Technology, Southeast University, Nanjing 211189, China 3. Key Laboratory of Computer Network and Information Integration of Ministry of Education, Southeast University, Nanjing 211189, China
A new malicious domain name detection algorithm was proposed. More specifically, the domain names in a cluster belonging to a DGA (domain generation algorithm) or its variants was identified firstly by using cluster correlation. Then, these AGD (algorithmically generated domain) names’ TTL, the distribution and attribution of their resolved IP addresses, their whois features and their historical information were extracted and further applied SVM algorithm to identify the malicious domain names. Experimental results demonstrate that it achieves an accuracy rate of 98.4% and the false positive of 0.9% without any client query records.
network security monitoring, domain generation algorithm, command and control server, algorithmically generated domain
TP393
A
10.11959/j.issn.1000?436x.2018116
The National Natural Science Foundation of China (No.61602114)
2017?10?09;
2018?06?21
國家自然科學(xué)基金資助項目(No.61602114)
臧小東(1985?),男,山東濟寧人,東南大學(xué)博士生,主要研究方向為網(wǎng)絡(luò)安全、網(wǎng)絡(luò)管理。
龔儉(1957?),男,上海人,博士,東南大學(xué)教授、博士生導(dǎo)師,主要研究方向為網(wǎng)絡(luò)安全、網(wǎng)絡(luò)管理。
胡曉艷(1985?),女,江西金溪人,博士, 東南大學(xué)講師,主要研究方向為網(wǎng)絡(luò)體系結(jié)構(gòu)、網(wǎng)絡(luò)安全。