韓春雨,張永錚,張玉
(1.南開大學(xué)計算機學(xué)院,天津 300071;2.中國科學(xué)院信息工程研究所,北京 100093;3.中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,北京 100049)
隨著網(wǎng)絡(luò)的應(yīng)用越來越廣泛,域名系統(tǒng)(DNS,domain name system)逐漸成為最重要的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施之一,許多網(wǎng)絡(luò)上的基礎(chǔ)服務(wù)都與其息息相關(guān)。與此同時,惡意攻擊行為也伴隨互聯(lián)網(wǎng)的快速發(fā)展而不斷變化。僵尸網(wǎng)絡(luò)作為當下網(wǎng)絡(luò)環(huán)境中的最大威脅之一,能夠迅速分發(fā)并擴散大量的蠕蟲、木馬等計算機病毒進行惡意代碼(僵尸程序)的傳播[1]。起初的惡意代碼往往在程序中預(yù)置某一個域名指向其命令與控制服務(wù)器(C&C,command&control server),隨后就有黑客采用域名生成算法(DGA,domain generation algorithm)技術(shù)產(chǎn)生大量的無關(guān)域名來隱藏真正的C&C 域名來躲避攔截。但使用的IP 地址仍然固定,無法防止因IP 地址被封堵而直接失效。所以攻擊者又轉(zhuǎn)而使用Fast-flux 技術(shù),它是一種通過不斷變更僵尸代理主機來隱藏惡意程序分發(fā)點并可實現(xiàn)負載均衡的DNS 技術(shù)。Fast-flux 網(wǎng)絡(luò)為攻擊者的惡意行為提供了高可用性和動態(tài)性[2],其目前被人們熟知的明顯特點總結(jié)如下[3-5]。
1) 單域名映射的IP 地址量較大,且在僵尸代理主機遷移階段IP 地址會逐漸增多。
2) IP 地址所在地理位置(國家或地區(qū))分布較廣。
3) IP 地址變化頻度較高。
4) 通常權(quán)威映射記錄生存空間(TTL,time to live)值較短。
5) 僵尸代理主機所分布的網(wǎng)段數(shù)目較多。
6) 僵尸代理主機所在網(wǎng)絡(luò)所屬的組織機構(gòu)數(shù)目較多。
然而,以上特點并非是Fast-flux 惡意域名所獨有的。以下2 種域名通常也會具有上述特征。
1) 域名循環(huán)系統(tǒng)(RRDNS,round-robin domain name system)。RRDNS 是一種典型的用于負載分配、實現(xiàn)負載均衡和高容錯率的DNS 技術(shù),它對用戶發(fā)出DNS 請求的響應(yīng)不是單條A 記錄,而是一個A 記錄列表,這就意味著這種域名也會對應(yīng)很多服務(wù)主機的IP 地址。RRDNS 域名的A 記錄列表以一種循環(huán)的方式來響應(yīng)連續(xù)的DNS 請求。因此,一系列向RRDNS 發(fā)出的請求會直接得到不同IP 地址的服務(wù)器響應(yīng),從而有效地實現(xiàn)了負載均衡。
2) 內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN,content delivery network)。CDN 是另一種可以實現(xiàn)負載均衡的服務(wù)系統(tǒng),該系統(tǒng)在一定區(qū)域內(nèi)的每個節(jié)點都向適合的用戶提供完全相同的響應(yīng)數(shù)據(jù)。正確設(shè)計和實施的CDN 可以提高訪問遠程數(shù)據(jù)的效率,增加帶寬和冗余,同時減少時延。因此,該服務(wù)響應(yīng)同一個域名的DNS 請求時,會返回大量帶有不同IP 地址的A記錄。CDN 也使用較低的TTL 值,以便在連接屬性等相關(guān)參數(shù)發(fā)生改變時快速做出相應(yīng)調(diào)整。
一直以來,利用Fast-flux 技術(shù)形成的僵尸網(wǎng)絡(luò)依然廣泛存在,由于CDN 和RRDNS 的技術(shù)特點均與Fast-flux 相似,因此當二者對應(yīng)的域名部署在DNS上時,可能會被誤檢為Fast-flux 惡意域名,這無疑增加了Fast-flux 域名檢測工作的難度[6]。而后出現(xiàn)的Double-flux 技術(shù)[7]使檢測工作變得更加困難,該技術(shù)是對以前Single-flux 技術(shù)的升級,其由多個flux 代理主機擔任域名解析代理,并由后端的Mothership 執(zhí)行域名解析。通過flux 代理主機的快速切換,避免了以往單個被攻陷的DNS 服務(wù)器被封堵而無法繼續(xù)提供服務(wù)的情況。即使某個flux 代理主機被列入黑名單,也可通過新的flux 代理主機繼續(xù)提供服務(wù)。這兩項技術(shù)的原理分別如圖1 和圖2 所示。
從圖1 和圖2 可以看出,Double-flux 型Fast-flux網(wǎng)絡(luò)在結(jié)構(gòu)上更加復(fù)雜,且因單點被封堵而引發(fā)故障的可能性也被大大降低。根據(jù)僵尸網(wǎng)絡(luò)的行為過程,無論應(yīng)對哪種Fast-flux 技術(shù),高效地檢測Fast-flux 域名都具有重大意義。
在Fast-flux 僵尸網(wǎng)絡(luò)剛出現(xiàn)時,Nazario 等[8]便開始對其展開了研究,分別從Fast-flux 僵尸網(wǎng)絡(luò)的域名特性、域名存活時間、網(wǎng)絡(luò)成員信息、網(wǎng)絡(luò)大小、網(wǎng)絡(luò)重合度等方面分析了其行為。Caglayan等[9]對垃圾郵件、惡意代碼和釣魚這3 種Fast-flux僵尸網(wǎng)絡(luò)進行了全面的分類跟蹤分析。Hu 等[10]通過一個部署在4 個洲共計240 個節(jié)點的輕量級DNS分析DIGGER,進一步分析了Fast-flux 網(wǎng)絡(luò)及其他與其特性相似的網(wǎng)絡(luò)的IP 地址特性。Passerini 等[11]采用主動探測的方法以獲得比被動接收DNS 流量更多的Fast-flux 網(wǎng)絡(luò)相關(guān)信息。通過這些研究工作,人們得到了一系列較成熟的Fast-flux 域名相關(guān)特性。于是,各種檢測方法開始相繼出現(xiàn)。
文獻[12]通過域名對應(yīng)IP 地址集合的相似性,對域名進行有監(jiān)督的分層聚類分析,并采用決策樹算法,初步實現(xiàn)了對Fast-flux 域名的檢測。
圖1 Single-flux 原理示意
圖2 Double-flux 原理示意
文獻[13]提出了一種基于真實編碼遺傳算法的Fast-flux 域名檢測方法 GRADE(genetic-based real-time detection system),其在文中實驗的檢測結(jié)果可以達到較高的準確率,但主要利用的新特征依賴于遞歸請求往返時間標準差,而這一參數(shù)受網(wǎng)絡(luò)環(huán)境波動的影響較大,直接影響了其性能的穩(wěn)定性。
文獻[14]提出了名為“SSFD(spatial snapshot Fast-flux detection system)”的檢測方法,其核心思想是基于空間關(guān)系檢測Fast-flux 域名。該方法引入了時區(qū)熵這一新特征,并且需要利用“空間快照”技術(shù)將樣本域名解析列表中每個IP 地址歸屬的地理位置都標記在谷歌地圖上。這使該方法對所使用的數(shù)據(jù)庫要求較高,必須先創(chuàng)建、維護并每晚更新一個IP 地址與歸屬地理位置相對應(yīng)的數(shù)據(jù)庫,而一旦某域名的某些解析值在庫中找不到對應(yīng),又面臨“值缺失問題”,這勢必影響其檢測效果的穩(wěn)定性。
文獻[15]基于3 種可用于區(qū)分Fast-flux 網(wǎng)絡(luò)和正常網(wǎng)絡(luò)的參數(shù)計算出一個線性分數(shù)指標,稱為Flux-score,用以判別Fast-flux 域名。
文獻[16]分析了當時已有的Fast-flux 網(wǎng)絡(luò)檢測技術(shù),認為檢測的關(guān)鍵在于根據(jù)網(wǎng)絡(luò)拓撲結(jié)構(gòu)選取合適的探測位置部署分布式的檢測系統(tǒng),來實現(xiàn)對Fast-flux 網(wǎng)絡(luò)的協(xié)同檢測與關(guān)聯(lián)分析。
文獻[17]同樣基于訪問Fast-flux 域名時的響應(yīng)時間每次都會有較大差異的特點,提出了一個通過計算FF-Score 來判定Fast-flux 域名的方法。然而該響應(yīng)時間的差異性特征同樣可能受到網(wǎng)絡(luò)波動的干擾,從而影響檢測效果的穩(wěn)定性。
文獻[18]基于決策樹算法提出了EXPOSURE檢測方法,提取了分別與時間、DNS 應(yīng)答、TTL、命名相關(guān)的4 組特征。其中僅有少部分特征是針對Fast-flux 域名的特點而提取的,所以該方法在整體上可能仍然欠缺對檢測目標的針對性。
文獻[19]提出了一種聚類和有監(jiān)督學(xué)習(xí)相結(jié)合的惡意域名檢測思路,強調(diào)了如何有效區(qū)分CDN域名與Fast-flux 域名,并提取了與之相關(guān)的特征,實驗達到了較高的準確率。不過該方法訓(xùn)練的SVM(support vector machine)分類器所用的數(shù)據(jù)來源于教育網(wǎng),可能無法穩(wěn)定有效地適用于常規(guī)互聯(lián)網(wǎng)環(huán)境下的DNS 流量。
通過對上述文獻的分析發(fā)現(xiàn),現(xiàn)有方法可能存在如下不足。
1) 受網(wǎng)絡(luò)環(huán)境波動影響較大,導(dǎo)致檢測結(jié)果的穩(wěn)定性較差。
2) 缺乏對Fast-flux 域名的針對性,導(dǎo)致檢測結(jié)果的召回率或精確率不高。
3) 用于分類器訓(xùn)練的DNS 流量不具有普適性。
通過分析真實DNS 流量發(fā)現(xiàn),F(xiàn)ast-flux 域名在大部分時間極少被訪問,而在特定時間被集中訪問。這項明顯區(qū)別于CDN 等正常域名的重要特征一直沒得到有效利用。以這項發(fā)現(xiàn)為出發(fā)點,并結(jié)合大洲覆蓋、國家或地區(qū)距離、國家或地區(qū)向量等特征,提出了一種基于DNS 流量的Fast-flux 惡意域名檢測方法,命名為Fast-fluco(sfast-flux detection based on countries)。
Fast-flucos 包含4 個模塊:預(yù)處理、特征提取、分類器和關(guān)聯(lián)匹配。預(yù)處理模塊先從輸入的大量DNS 流量中篩除一些亂碼型域名請求記錄,再結(jié)合所發(fā)現(xiàn)的時間分布特性過濾出很多不可能為Fast-flux 域名的請求記錄,從而得到有效的DNS流量。特征提取模塊根據(jù)我國廣東省一段時間內(nèi)DNS 流量的相應(yīng)字段并結(jié)合已制作的國家或地區(qū)距離表計算出所有域名樣本的7 組特征。通過已知標簽樣本集和計算好的相關(guān)特征,分別使用各種可能的特征組合,并結(jié)合多種機器學(xué)習(xí)算法來訓(xùn)練最佳分類器,從而輸出一部分Fast-flux 域名。關(guān)聯(lián)匹配模塊利用WHOIS 注冊者信息并結(jié)合特定的字符串匹配算法,根據(jù)分類器的輸出發(fā)現(xiàn)更多Fast-flux域名。Fast-flucos 的結(jié)構(gòu)如圖3 所示。
圖3 Fast-flucos 結(jié)構(gòu)
圖3 的DNS 流量具體是指在特定時間段內(nèi),某地區(qū)全部由客戶端向DNS 遞歸服務(wù)器發(fā)出的DNS 解析請求的往返信息記錄,按一定的采樣率組成的DNS 解析記錄列表。每行第一列至最后一列的字段分別表示請求源IP 地址、請求目的IP 地址、DNS ID、域名、請求類型、請求分組重復(fù)次數(shù)、該時間間隔下分組采樣率、匹配標識、遞歸請求標識、權(quán)威請求標識、首個應(yīng)答記錄(RR,response record)的TTL 值、當前獲得分組的時間、節(jié)點編碼、請求分組長度、應(yīng)答分組長度、首個RR 的類型、服務(wù)器響應(yīng)標識、省份(或省級地區(qū))標識、通信運營商標識和首個RR 解析值(含解析IP 地址列表)。
實驗中所使用的數(shù)據(jù)主要是從我國某主流通信運營商在廣東省的DNS 流量分析所得,時間段是從2017 年12 月1 日—7 日。選取這一段DNS 流量的主要原因是,使用從微步在線等第三方平臺上獲取的樣本篩查后發(fā)現(xiàn),在這大約60 萬個不重復(fù)的符合命名規(guī)范的域名中,共出現(xiàn)了3 022 個與已知標簽的Fast-flux 域名具有相同二級域名的樣本,這很利于域名特征的提取。還有一部分數(shù)據(jù)是直接使用的微步在線提供的域名解析歷史記錄。
通過實驗證實所發(fā)現(xiàn)的Fast-flux 域名的重要特性——大部分時間極少被訪問,特定時間集中被訪問。先將實驗所用的時間段內(nèi)的數(shù)據(jù)按“域名”字段進行去重處理,得到的域名集合定義為First 集合。之后的步驟如下[20]。
1) 將該時間段每天的DNS 流量都以Tmin 為單元進行分片。
2) 從First 集合中選出一個域名定義為First域名。
3) 再從原DNS 流量中該First 域名出現(xiàn)次數(shù)最多的一天中找出其對應(yīng)的Second 請求記錄。
4)計算該天內(nèi)每個時間分片的count_value(計數(shù)值,表示Second 請求記錄在該時間分片中出現(xiàn)的總次數(shù))。
某First 域名的Second 請求記錄,是滿足以下任意條件的DNS 請求記錄。
1) “域名”字段與First 域名完全相同。
2) 與First 域名的“首個RR 解析值”字段的交集不為空。
3) “域名”字段與First 域名具有相同的三級域名。假設(shè)count_valuei(i=1,2,3,…)表示第i個分片(window[i])的 count_value,則根據(jù)全部的count_valuei可以求出平均值,記為count_valueV,依此可計算出每個域名對應(yīng)的AX 值,AX 值為所有中的最大值。上述過程可以總結(jié)為如下可以得到所有域名AX 值的算法。
算法1AX 賦值算法
輸入First 域名,已分片的DNS 流量window[]
輸出AX 值
當T取不同值時,AX 值的范圍如表1 所示。
表1 當T 取不同值時AX 值的范圍
從表1 可以看出,當T=5 min 時,AX 值可以更好地表示出一個域名是否為Fast-flux 域名。這也證實了所發(fā)現(xiàn)的重要特性——大部分時間極少被訪問,特定時間集中被訪問。
數(shù)據(jù)預(yù)處理模塊的流程及原理如下。
1) 由Fast-flux 域名的定義可知,其在一定時間內(nèi)單域名映射的IP 地址量很大,故對于待檢測的DNS 流量,將解析IP 地址數(shù)量不足NIP的域名篩除。
2) Fast-flux 惡意域名的另一個特點是IP 地址所歸屬的國家或地區(qū)分布廣,所以對于待檢測的DNS 流量,將解析IP 地址對應(yīng)的國家或地區(qū)數(shù)僅為NC的域名篩除。
3)根據(jù)所發(fā)現(xiàn)的時間分布特性,對于待檢測的DNS 流量,將其中AX 值低于NAX的域名篩除。
為確定上述NIP、NC和NAX的取值,對來自微步在線等第三方平臺上的Fast-flux 域名樣本進行分析。最終確定了在預(yù)處理模塊中3 個參數(shù)的取值分別為NIP=12、NC=1 和NAX=6。
根據(jù)已有工作進行歸納和改進,并結(jié)合Fast-flucos 的基本思想,擬采用以下7 組共計506 個單特征[21-23]。
1) F1 TTL 特征
①最大TTL 值。
② 最小TTL 值。
③不同TTL 值的個數(shù)。
2) F2 IP 地址特征
①解析IP 地址的個數(shù)。
② 解析IP/65536(IP 地址前兩段)的個數(shù)。
3) F3 子域名特征
①子域名的個數(shù)。
② 子域名的長度標準差。
③共享域名的個數(shù)。
4) F4 數(shù)字證書字節(jié)數(shù)
5) F5 地理特征
①解析IP 地址對應(yīng)的國家或地區(qū)數(shù)量。
② 解析IP 地址對應(yīng)的國家或地區(qū)涵蓋的大洲情況。
③距離指數(shù)D_Score。
6) F6 國家向量表
7) F7 時間向量表
其中,共享域名的含義簡述如下。若某域名的解析IP 地址列表中的某些IP 地址也被其他域名所解析,則這些域名稱為該域名的共享域名[24]。
TTL 特征。通過調(diào)研[19]發(fā)現(xiàn),正常域名的TTL值往往在1 天以上,而惡意域名為了使自己更加隱蔽,通常會設(shè)置很小的TTL 值。有60%以上正常域名的TTL 值是在1 200 s 以上的,而惡意域名的TTL值通常會小于1 000 s,雖然Fast-flucos 只關(guān)注惡意域名中的Fast-flux 域名,但是TTL 特征仍不失為一個可靠的特征。
數(shù)字證書字節(jié)數(shù)。正常域名在注冊時通常具有完備的WHOIS 注冊信息,而惡意域名的注冊信息通常是很簡略或隨機的[19]。WHOIS 信息中有一項是數(shù)字證書,而惡意域名沒有或信息很少,所以數(shù)字證書的字節(jié)數(shù)就可以直接作為一項有力的特征。
針對Fast-flux 惡意域名的特有特點,又為每個域名定義了距離指數(shù)D_Score、206 維的國家或地區(qū)向量表和288 維的時間向量表這3 組特征。
3.2.1 距離指數(shù)D_Score
眾多已發(fā)表的論文中都提到了Fast-flux 域名的特點是映射的IP 地址歸屬的地理位置(國家或地區(qū))分布的范圍廣并且分散度高,但是均未提及與具體的國家或地區(qū)分布頻次和量化的地理廣度信息相關(guān)的特征,所以根據(jù)Fast-flux 惡意域名樣本與非Fast-flux 域名樣本各自解析的IP 地址歸屬國家或地區(qū)(下文簡稱“解析國家或地區(qū)”)的地理廣度信息,為每個域名定義了一個特征,稱為距離指數(shù)D_Score。其表征了一個域名的解析國家或地區(qū)在地理位置分布上的廣度與分散程度,為了計算此特征,需要先獲取全部有國際頂級域名后綴的國家和地區(qū)(這里共計206 個)的行政中心的經(jīng)緯度信息,并都采用弧度制表示。利用式(1)球面上兩點距離公式,便可以得到全部206 個國家或地區(qū)的兩兩間距離表。這樣,再根據(jù)式(2)便可求得某個域名的D_Score(即歐氏距離)。
其中,R是地球半徑,(x1,y1)和(x2,y2)分別是球面上兩點的弧度制坐標。
其中,Dij表示該域名中的第i個解析國家或地區(qū)與第j個解析國家或地區(qū)行政中心坐標間的球面距離,n表示該域名解析國家或地區(qū)的數(shù)量。
3.2.2 國家或地區(qū)向量表
本文統(tǒng)計了數(shù)量比為5 000:5 000 的正負樣本中每一個域名分別解析到206 個不同國家或地區(qū)的次數(shù),其中正樣本選自微步在線等第三方平臺上的Fast-flux 域名樣本,負樣本是從DNS 流量中隨機選取的5 000 個不重復(fù)的非Fast-flux 域名。從統(tǒng)計結(jié)果可以看出,各不同國家或地區(qū)被解析到的頻次與發(fā)起解析請求的域名是否為Fast-flux 域名的關(guān)聯(lián)度很高,因此國家或地區(qū)向量表這一組特征被加入進來。該特征的具體表示形式為,對于某給定域名,獲取其所有的解析國家或地區(qū),統(tǒng)計全部206 個國家或地區(qū)各自出現(xiàn)的次數(shù),從而形成這個域名的國家或地區(qū)向量表,即一個206 維的向量,其每個值都表示該域名解析到對應(yīng)國家或地區(qū)的次數(shù)。
3.2.3 時間向量表
基于已經(jīng)過驗證的Fast-flux 域名區(qū)別于CDN等正常域名的重要特性——大部分時間極少被訪問,特定時間集中被訪問,加入時間向量表特征。若根據(jù)3.1 節(jié)中相關(guān)概念的定義和結(jié)論,將DNS 流量按照每5 min 進行分片,則該特征的具體表示形式為,對于某給定域名,獲取該域名在其出現(xiàn)次數(shù)最多的一天中的count_value[],即一個288 維的向量,其每個值都表示該域名在其出現(xiàn)次數(shù)最多的一天中對應(yīng)的時間分片內(nèi)的count_value。
根據(jù)已總結(jié)出的F1~F7 這7 組特征,分別使用各組特征的不同組合,并都使用3 種不同的機器學(xué)習(xí)方法(樸素貝葉斯、支持向量機和邏輯回歸),利用scikit-learn 的機器學(xué)習(xí)工具庫構(gòu)建機器學(xué)習(xí)模型,使用引入了NumPy 包和Pandas 包的Python 語言完成實驗。在計算國家和地區(qū)間的距離時,使用了Microsoft Excel 并編寫了VBA 語言的宏。對每種特征組合情況都進行了10 折驗證計算,取10 次的平均值作為最終的檢測結(jié)果。最后列出其中平均效果最好的9 種特征組合,如圖4 所示。
圖4 使用不同的特征組合的分類效果對比
從圖4 可以看到,在各種特征組合的情況下,使用邏輯回歸算法取得了最佳效果。特征F6 和F7在圖4 中頻繁出現(xiàn),足見其重要作用。然后嘗試使用深度神經(jīng)網(wǎng)絡(luò)在最佳特征組合條件下進行分類效果測試,先設(shè)置隱藏層的層數(shù)為2,根據(jù)人為經(jīng)驗對各種神經(jīng)元數(shù)組合進行實驗,得到了一組最理想的組合,即(22,5),此時10 折驗證的輸出結(jié)果顯示召回率是0.955 2、精確率是0.933 6、ROC_AUC是0.978 956。參考此結(jié)果繼續(xù)調(diào)試當隱藏層層數(shù)分別為3~7 時的情況,分別尋找最佳的檢測結(jié)果,如圖5 所示。
圖5 使用不同隱藏層層數(shù)的深度神經(jīng)網(wǎng)絡(luò)的分類效果對比
從圖5 可以看出,隨著隱藏層層數(shù)的增加,檢測效果并沒有明顯變化,當隱藏層層數(shù)為5 時性能最佳,此時召回率是0.955 4、精確率是0.935 2、ROC_AUC 是0.981 0??梢姡贔ast-flux 樣本數(shù)量不夠龐大、所提取的特征已經(jīng)很具象化的條件下,深度學(xué)習(xí)并沒有取得比常規(guī)機器學(xué)習(xí)更好的檢測效果,使用邏輯回歸分類器已經(jīng)達到了較好的性能。
將從分類器得到的輸出結(jié)果和原輸入DNS 流量中的域名集合進行“關(guān)聯(lián)匹配”,具體含義如下。
1)“關(guān)聯(lián)”指的是注冊者信息關(guān)聯(lián)。在本節(jié)中定義從分類器中輸出的域名為集合C,利用C中的域名關(guān)聯(lián)WHOIS 注冊者信息來二次挖掘可能被漏檢的Fast-flux 域名。在原輸入DNS 流量中的域名集合(本節(jié)定義為集合P)中,將與C中的域名具有相同注冊者的域名都分離出來,在本節(jié)定義為集合S。
2)“匹配”指的是“0-z”化后的字符串匹配。某些個人或集體可能用不同的注冊者信息注冊了一系列域名用于惡意行為,為便于管理,其中很多域名被命名為僅字母不變而變換數(shù)字或僅數(shù)字不變而變換字母的形式,如果僅憑注冊者信息則無法發(fā)現(xiàn)這部分域名。事實上這些域名都普遍指向了相同的IP 地址集合,即很可能使用了Double-flux 技術(shù)用以減小單點故障的可能性。所以找到具備這種特點的域名,則可以認為其同樣是Fast-flux 域名,在實驗中也取得了良好的效果。倘若C和S中共有域名m個,待字符對比的域名有n個,則單次對比的次數(shù)將是一個時間復(fù)雜度為O(mn)的問題,為此,需要引入字符串“0-z”化的概念。
于是,“關(guān)聯(lián)匹配”算法的步驟如下。
步驟1將P中同時包含字母和數(shù)字字符的每個域名中的數(shù)字字符都變成0,成為集合P0;除頂級域名外的字母字符都變成z,成為集合P1。對字符串的這種操作稱為“0-z”化,如圖6 所示。
圖6 步驟1 過程
步驟2將C和S中所有同時帶有字母和數(shù)字字符的域名連接成一個長字符串T并“0-z”化,如圖7 所示。
步驟3將P0中的每個字符串分別與T0進行字符串匹配,將P1中的每個字符串分別與T1進行字符串匹配,如圖8 所示。
步驟4根據(jù)所有匹配成功的字符串,在P、P0和P1中都移除相應(yīng)的域名/字符串,從P中移除的部分獨立成為集合S′。然后將S內(nèi)的全部域名轉(zhuǎn)移進C中,如圖9 所示。
步驟5在P中找到所有與S′內(nèi)注冊者相同的域名保存至集合S,并從P0和P1中移除相應(yīng)的字符串。然后將S′內(nèi)的全部域名轉(zhuǎn)移到C中,如圖10 所示。
圖7 步驟2 過程
圖8 步驟3 過程
圖9 步驟4 過程
圖10 步驟5 過程
步驟6將S中所有同時帶有數(shù)字和字母字符的域名連接成一個長字符串T并“0-z”化,重復(fù)步驟3~步驟5。
步驟7重復(fù)步驟6 直到C內(nèi)域名不再增加。
通過以上處理,將時間復(fù)雜度為O(mn)的逐個字符串比較問題轉(zhuǎn)化為時間復(fù)雜度為O(n)的字符串匹配問題。而且,因為在“0-z”化后的字符串中存在大量重復(fù)的字符,很利于字符串匹配算法的快速運行。整個“關(guān)聯(lián)匹配”算法就是通過WHOIS注冊者信息和特定的字符串匹配算法相互迭代,使Fast-flux 域名集合C得到不斷擴充,從而在分類器分類之后可以再發(fā)現(xiàn)一部分漏檢的Fast-flux 域名。
首先,通過如表2 和圖11 所示最佳特征組合的邏輯回歸分類器詳細的10 折驗證結(jié)果可以看出,模型的穩(wěn)定性較好。
表2 Fast-flucos 分類器10 折驗證結(jié)果
圖11 Fast-flucos 分類器10 折驗證結(jié)果
然后,在參考文獻中較知名且也同為針對Fast-flux 域名檢測的是文獻[13]提出的GRADE 方法,以此來進行對比實驗。GRADE 方法共使用4 個特征:不同的A記錄數(shù)量nA、不同的ASN 數(shù)量nASN、先前節(jié)點域名熵eDPN、往返時間標準差σRTT,再建立一個計算式:。利用真實編碼的遺傳算法并結(jié)合已知標簽的樣本確定5 個參數(shù)ω1、ω2、ω3、ω4和β的值,使當目標域名是Fast-flux 域名時對應(yīng)的f(x)值均為正數(shù),當目標域名是良性域名時對應(yīng)的f(x)值均為負數(shù)。此外,又根據(jù)條件分別復(fù)現(xiàn)了檢測惡意域名最經(jīng)典方法之一的EXPOSURE[18]和如何檢測Fast-flux 域名的文獻[19]中基于算法生成域名的檢測方法(AAGD,approach based on algorithmically generated domain)。使用相同的實驗數(shù)據(jù),得到如圖12 所示的實驗對比結(jié)果。
圖12 4 種方法的實驗對比結(jié)果
GRADE 方法在其原文中的準確率達到了98%,而在本實驗中的精確率卻較不理想。這說明該方法在穩(wěn)定性方面稍弱一些,導(dǎo)致這一結(jié)果的可能原因簡述如下。
1)采用的特征過少。
2)所使用特征中的σRTT過分依賴于網(wǎng)絡(luò)環(huán)境的穩(wěn)定性,若網(wǎng)絡(luò)稍有波動,則σRTT出現(xiàn)的偏差便會影響最終域名判定的結(jié)果。
對于EXPOSURE 的表現(xiàn),很可能要歸咎于它所選用的特征對Fast-flux 域名的針對性不強。
導(dǎo)致AAGD 檢測效果較不理想的可能原因如下。
1)其DNS 流量數(shù)據(jù)來源于教育網(wǎng)環(huán)境,不能很好地適應(yīng)常規(guī)網(wǎng)絡(luò)環(huán)境的DNS 流量。
2)雖然在特征提取方面考慮到了Fast-flux 域名,但是聚類的過程過于針對DGA 生成域名。
3)其在特征選擇環(huán)節(jié)并沒有在每組特征組合中都分別嘗試所有備選機器學(xué)習(xí)方法,可能錯失了更適合的機器學(xué)習(xí)方法。經(jīng)實測發(fā)現(xiàn),如果不使用SVM 算法,實際分類效果確實有了明顯的提升。
在Fast-flucos 中,根據(jù)域名解析國家或地區(qū)的頻次而生成的國家或地區(qū)向量表特征起到了很大作用,這可能與各個國家或地區(qū)的總體網(wǎng)絡(luò)普及度、網(wǎng)民數(shù)量以及網(wǎng)絡(luò)犯罪成本的不同有關(guān)。而Fast-flux 域名的解析國家或地區(qū)眾多,也恰恰使這種在解析國家或地區(qū)分布上的規(guī)律可以更加明顯地體現(xiàn)出來。
對各方法的內(nèi)存與時間開銷進行對比,考慮到有些方法使用的特征需要在線獲取,如Fast-flucos的WHOIS 注冊者信息、GRADE 的σRTT等。而第三方網(wǎng)站又對用戶訪問頻率做出了一些限制,為了使算法的執(zhí)行時間不被這些因素所影響,先將這些特征全部保存到本地,再使用前文的訓(xùn)練數(shù)據(jù)集來執(zhí)行每一個算法,得到了如表3 所示的運行結(jié)果。
表3 不同檢測方法的資源開銷對比
為了使對比更加清晰,將Fast-flucos 的運行時間定為單位1,并以此折算出另外3 種方法的相對時間開銷。從表3 可以看出,除AAGD 外,其他3種方法的內(nèi)存開銷大抵相同。AAGD 的高常駐內(nèi)存峰值主要由于SVM 算法本身的內(nèi)存占用就相對較高。另外,雖然EXPOSURE 的檢測效果略弱于Fast-flucos,但是在時間開銷上非常出色,而AAGD過長的時間開銷可能要歸咎于聚類的過程及運行速度相對較慢的SVM 算法。
使用我國某主流通信運營商在上海地區(qū)于2017 年11 月 29 日的真實 DNS 流量來驗證Fast-flucos 的實際檢測效果,共輸出1 215 個域名,經(jīng)第三方平臺查詢,并結(jié)合已有的Fast-flux 樣本,得到其中Fast-flux 域名一共有1 186 個,準確率約為98%,其中依靠“關(guān)聯(lián)匹配”發(fā)現(xiàn)的Fast-flux 域名有72 個,被誤判的域名約為29 個,主要由廣告服務(wù)網(wǎng)站域名等組成。這說明這兩類網(wǎng)站的域名在所選取的特征上可能也存在許多與Fast-flux 惡意域名相似之處,可以考慮作為未來工作的新方向。
因以往的Fast-flux 域名檢測方法在穩(wěn)定性、針對性和對常規(guī)真實DNS 流量環(huán)境的普適性方面存在不足,提出了一種基于真實DNS 流量的Fast-flux惡意域名檢測方法——Fast-flucos。該方法由預(yù)處理、特征提取、分類器和關(guān)聯(lián)匹配4 個模塊組成。在預(yù)處理模塊加入了異常過濾步驟;在特征提取模塊加入了專門針對Fast-flux 域名檢測的D_Score、國家和地區(qū)向量表和時間向量表特征,共計提取506 個單特征;使用包括深度學(xué)習(xí)在內(nèi)的多種機器學(xué)習(xí)方法進行實驗,確定最佳分類器和特征組合;關(guān)聯(lián)匹配模塊可以結(jié)合WHOIS 注冊者信息和一種簡單的字符串匹配算法借助分類器的輸出結(jié)果找出更多輸入DNS 流量中被漏檢的Fast-flux 域名。通過以上舉措,F(xiàn)ast-flucos 最終較好地彌補了上述不足。通過實驗與以往的方法進行檢測效果對比,發(fā)現(xiàn)Fast-flucos 在召回率、精確率和ROC_AUC 均高于另外3 種方法的前提下,其在內(nèi)存開銷方面的表現(xiàn)與其他方法基本相同,僅在時間開銷上稍弱于EXPOSURE 和GRADE。最后使用我國某主流通信運營商在上海地區(qū)的真實DNS 流量進行了實際測試,準確率約為98%,這表明Fast-flucos 可以普遍適用于常規(guī)真實互聯(lián)網(wǎng)環(huán)境下的DNS 流量。