周昌令 陳愷 公緒曉 陳萍 馬皓. 北京大學(xué)計算中心, 北京 0087; 2. 北京大學(xué)信息科學(xué)技術(shù)學(xué)院, 北京 0087; 3. 北京大學(xué)計算機研究所, 北京 0087; ? E-mail: zclfly@pku.edu.cn
?
基于Passive DNS的速變域名檢測
周昌令1,2,3,?陳愷1,2公緒曉1陳萍1馬皓1
1. 北京大學(xué)計算中心, 北京 100871; 2. 北京大學(xué)信息科學(xué)技術(shù)學(xué)院, 北京 100871; 3. 北京大學(xué)計算機研究所, 北京 100871; ? E-mail: zclfly@pku.edu.cn
利用Passive DNS采集校園網(wǎng)真實運行環(huán)境的域名訪問記錄, 從域名的多樣性、時間性、增長性和相關(guān)性等方面構(gòu)建 18 個特征集, 提出基于隨機森林算法來識別速變域名的模型。交叉驗證實驗表明, 所構(gòu)建的模型對域名分類的準(zhǔn)確率超過90%。在所采集的數(shù)據(jù)集上, 所構(gòu)建的模型比FluxBuster能更有效地識別速變域名。
Passive DNS; 速變域名; 隨機森林算法; DGA; CDN
北京大學(xué)學(xué)報(自然科學(xué)版) 第52卷 第3期 2016年5月
Acta Scientiarum Naturalium Universitatis Pekinensis, Vol. 52, No.3(May 2016) doi: 10.13209/j.0479-8023.2016.064
目前, 速變服務(wù)網(wǎng)絡(luò)(Fast-Flux Service Network, FFSN)[1]是一些惡意行為(如釣魚網(wǎng)站、垃圾郵件、僵尸網(wǎng)絡(luò)等)躲避打擊的常見技術(shù)手段之一。其基本思想是利用大量被控制的主機提供中轉(zhuǎn)服務(wù), 隱藏背后的控制者。通過域名與 IP對應(yīng)關(guān)系的快速變化, 避免被 IP黑名單隔離,提高其服務(wù)的可用性。速變域名(Fast-FluxDomain)的特點是DNS應(yīng)答記錄的生命周期(TTL)很短,應(yīng)答通常返回的是不斷變化的IP地址列表,這些IP地址往往屬于不同物理位置的不同運營商。由于內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network, CDN)以及循環(huán) DNS (Round-robin DNS)等技術(shù)的使用, 使得一些正常的網(wǎng)絡(luò)服務(wù)也有類似的特點。
本文利用Passive DNS方法記錄域名訪問的信息,從域名的多樣性、時間性、增長性、相關(guān)性等角度構(gòu)建18個特征集,基于隨機森林算法建立速變域名識別模型, 并在真實的網(wǎng)絡(luò)環(huán)境中進行驗證。與 FluxBuster[2]的對比驗證表明, 本文的識別模型表現(xiàn)出更好的識別效果。本文提供相關(guān)的代碼和數(shù)據(jù)集下載①。
Passive DNS 技術(shù)是由 Weimer[3]在 2005 年提出的一種方案, 用來解決 DNS 系統(tǒng) PTR[4]反向查詢能力不足的問題。通過將現(xiàn)有 DNS 業(yè)務(wù)的流量進行鏡像或分光處理, 解析出查詢和響應(yīng)的數(shù)據(jù)并存入數(shù)據(jù)庫, 然后建立正向和反向的查詢索引。在ISP 或校園網(wǎng)絡(luò)的遞歸 DNS 服務(wù)器前部署 Passive DNS 系統(tǒng), 可以獲得詳細的 DNS 查詢記錄, 并且不影響現(xiàn)有DNS服務(wù)器的運行性能。
Honeynet 項目組 2007 年對 FFSN 進行了系統(tǒng)的介紹[1], 推動了 FFSN 的研究熱潮。Holz 等[5]對FFSN 開展了試驗性研究, 對比分析 FFSN 和 CDN域名的差別。Passerini等[6]提出根據(jù)域名注冊時間、域名注冊商、域名 A 記錄和域名 TTL 值等來檢測 FFSN。Huang 等[7]提出基于地理位置和地理分布來檢測 FFSN。汪洋[8]選取A記錄數(shù)、IP 分散度、TTL 值和域名創(chuàng)建時間4個特征構(gòu)成檢測向量, 分別采用神經(jīng)網(wǎng)絡(luò)和 SVM 進行速變域名(Fast-Flux Domain)檢測, 是國內(nèi)較早進行的 FFSN 研究工作。
Antonakakis等[9]的Notos系統(tǒng)通過計算域名的信譽值來判斷域名是否為惡意,其模型引入的特征特征、IP分布、TTL以及域名字符串特征等構(gòu)建15個特征集。Perdisci等[2]提出 FluxBuster系統(tǒng),將域名的IP變遷情況引入特征集, 共9組13個特征, 采用聚類算法來識別速變域名。
為了發(fā)現(xiàn)速變域名在 DNS 響應(yīng)上的特征, 本文在取得校園網(wǎng)實際運行的 DNS 數(shù)據(jù)后, 在FluxBuster 和 EXPOSURE 等系統(tǒng)的基礎(chǔ)上, 提出如表1所描述的 18 個特征, 其中 14~18 這5個相關(guān)性特征是本文首次提出。本文采用 scikit-learn[11]中的隨機森林算法[12–13]作為惡意域名的識別算法。此算法具有魯棒性強、泛化誤差會收斂、不存在過度擬合等優(yōu)點。以下是各特征的具體描述。
2.1 時間性特征
min_ttl, max_ttl和diff_ttl用來記錄域名響應(yīng)中TTL的最小值、最大值和差值。
2.2 多樣性特征
包括域名字符串分析、惡意域名歷史記錄等信息。Bilge等[10]提出EXPOSURE系統(tǒng), 利用域名的時間
ip_count 用來記錄域名解析出來的 IP 地址集的大小。
p16_entropy 是衡量 ip 地址分散程度的特征。為了表示 IP地址集的分散程度, 本文選取/16前綴來分析。假設(shè)IP地址集的集合為P, p(x)是IP的/16前綴x在P中所占的比例, p(x)=count(x)/|P|, 則
subd_count和subd_length_entropy分別記錄子域名的數(shù)量和子域名的長度熵。設(shè)某域所有子域名的集合為S, s 是子域名的長度, p(x)=count(x)/|S|, 則有
2.3 增長性特征
p16_growth_n和subd_growth_n分別記錄相對于前1, 4, 8個數(shù)據(jù)周期, 新增的IP/16前綴比例和新增的子域名比例。
設(shè) Pm為數(shù)據(jù)周期內(nèi)的 IP/16 前綴的集合, 定義公式如下:
類似地, 子域名增長性公式如下:
其中, Sm為子域名的集合。
2.4 相關(guān)性特征
本文認(rèn)為, 同一個域名解析出來的多個 IP 之間是相關(guān)的; 類似地, 多個域名解析到同一個 IP 時, 這幾個域名之間是相關(guān)的。特征 relevant_ domain_count是相關(guān)域名的大小。如圖 1所示, d1~d9是相關(guān)的, 故相關(guān)域名的數(shù)量是 9。通常, CDN網(wǎng)站(如 taobao.com)的一組 IP地址會有多個域名指向它們, 則此特征的值比較大; 而速變域名的相關(guān)域名一般較少。
unique_2ld_ratio指所有相關(guān)域名中不同2LD(域名的第二部分,是域名的主要內(nèi)容, 如www. baidu.com的2LD為baidu.com)的比例。
unique_ip_ratio 用來描述相關(guān)域名之間的非公共IP比例, 如圖1中ip3是非公共IP, 其比例為1/4=25%。
由域名關(guān)聯(lián)到域名后, 如果考慮不同域名之間的非共享IP/16前綴, noshare_domain_ratio定義為具有非共享前綴的相關(guān)域名比例。試驗數(shù)據(jù)表明,一些速變域名特征取值較高而正常域名(包括使用CDN和RRDNS的)特征大多為零。如圖2所示,假設(shè)除ip3外,其他ip都具有相同的IP/16前綴,則d2為非共享域名, noshare_domain_ratio=0.25。
max_dga_ratio指通過域名生成算法(DGA)自動生成的域名所占的比例。通過DGA生成的一組域名往往會指向相同的 IP。本文選取一個開源的識別 DGA 域名的工具[14]來計算所指向 IP 的域名中DGA域名的比例。
本文的數(shù)據(jù)來源于北京大學(xué)校園網(wǎng)的真實運行數(shù)據(jù)。目前的部署情況是將校園網(wǎng)主要的三臺遞歸DNS查詢服務(wù)器的流量, 用端口鏡像的方式轉(zhuǎn)發(fā)到采集服務(wù)器。在采集服務(wù)器上運行 PassiveDNS 工具[15], 分析得到的 DNS 查詢記錄數(shù)據(jù)定時保存到文件中, 文件內(nèi)容如圖3所示。為了保存長期的記錄, 按照日期對日志進行分割, 保存在不同的文件中。
為了便于后期分析和查詢, Passive DNS日志數(shù)據(jù)經(jīng)過處理后, 保存在 TokuMX數(shù)據(jù)庫[16]中。TokuMX 是 MongoDB[17]的一個分支, 采用分形索引算法以及高效的壓縮方案, 與傳統(tǒng)的 MongoDB相比, 具有更高的性能, 同時節(jié)約近 90%的存儲空間[16]。實際上, 我們也發(fā)現(xiàn)它的數(shù)據(jù)文件大小只有原始版本MongoDB的 10%~20%, 并且寫入和查詢的性能更好。為了提高后期特征提取以及分析的效率, 我們將 ip→domain 和 domain→ip 的映射關(guān)系以及一些統(tǒng)計數(shù)據(jù)預(yù)先計算好, 并分別保存在不同的collection[17]中。
數(shù)據(jù)處理流程如圖4所示。
3.1 數(shù)據(jù)預(yù)處理
由于本文關(guān)注速變域名, 只有滿足如下 3個條件[2]的域名記錄才會被分析計算, 并進入到機器學(xué)習(xí)步驟中:
其中, min_ttl是最小ttl值, R是域名d指向的IP地址集合, |R|是地址集合的大小, div(R)描述 IP/16前綴的散度。通過試驗確定, 本文最終使用的各閾值如下: θttl= 20000 s, θR= 1, θdiv= 0.1。
本文將觀測到的部分特殊情況列入免于處理的列表中: 域名污染(由于 DNS 劫持, 查詢?nèi)?facebook、twitter等域名返回的是偽造的同一組地址)和待售域名(運營商或域名注冊經(jīng)營者保留的域名,可讀性高)。
3.2 訓(xùn)練數(shù)據(jù)
本文的合法域名標(biāo)識來自 Alexa[18], 它提供過去3個月內(nèi)全球范圍內(nèi)站點的流量排名。排名靠前的域名一般是正常域名(也包括使用 CDN 和RRDNS 的域名)。FFSN相關(guān)域名標(biāo)識取自表2。
實際情況中速變域名所占比例較少, 本文借鑒褚燕琴等[19]的主動查詢的辦法, 在校園網(wǎng)內(nèi)部署主動查詢節(jié)點, 定期向表 2 中部分域名發(fā)起查詢請求。由于采集的是校園網(wǎng)的遞歸 DNS 流量, 在校園網(wǎng)內(nèi)部對這些惡意域名的主動查詢數(shù)據(jù)就會被記錄下來。表 2 中的域名數(shù)據(jù)實際上還包括一些非速變域名的數(shù)據(jù), 不過, 經(jīng)過預(yù)處理后, 被留下的基本上可以認(rèn)為是速變域名。
本文用于訓(xùn)練的數(shù)據(jù)是北京大學(xué)校園網(wǎng) 2014–03–01到 2014–03–17遞歸 DNS服務(wù)器的數(shù)據(jù), 采集到的不同域名數(shù)量如圖5所示。
表2 域名信息來源Table 2 Source of domain information
3.3 交叉驗證
本文采用交叉驗證(cross validation)對模型進行檢驗。圖6是對2014–04–14的數(shù)據(jù)進行10次交叉檢驗得到的準(zhǔn)確率結(jié)果, 其中合法域名 2109個, 惡意域名338個??梢钥吹矫看畏诸惖臏?zhǔn)確率都超過90%。具體到其中一次(選取 20%的標(biāo)識數(shù)據(jù)作為驗證集, 其中合法域名有 437個, 惡意域名有 53個), 正確識別的 TP (惡意域名被識別成惡意域名) 和 TN (合法域名被識別成合法域名)分別為 90.6% 和 94.5%, 錯誤識別的結(jié)果 FN (惡意域名被識別為合法域名)為 9.4%, FP (合法域名被當(dāng)成了惡意域名)為5.5%。
可以將多次交叉驗證的結(jié)果取平均值作為準(zhǔn)確率。圖7是2014–04–02到2014–04–25期間的數(shù)據(jù)集進行 10次交叉驗證取平均的結(jié)果, 可以看到惡意域名被正確識別的比例基本上都超過 95%, 合法域名的正確識別率也基本上都在 80%以上。
3.4 對比試驗數(shù)據(jù)
本文選擇 FluxBuster 作為對比, 它提供源代碼下載[20]。將本文使用的數(shù)據(jù)集轉(zhuǎn)換成 FluxBuster可以識別的格式, 并進行重新訓(xùn)練和聚類檢測, FluxBuster所發(fā)現(xiàn)的2014–04–02至2014–04–25期間的惡意域名數(shù)量如圖 8所示。具體地, 這段時間FluxBuster 標(biāo)記為速變域名簇的 2LD 只有兩個: weminemnc.com和gccdn.net。經(jīng)過人工驗證, 這兩個域名簇里的域名實際都不是速變域名(前者是bitcoin的dns-seed[21], 后者是CDN域名)。
分析原因, 除在特征個數(shù)、模型參數(shù)以及算法選擇等方面的差異外, FluxBuster 與本文的最大區(qū)別在于對相關(guān)性特征的使用上。FluxBuster 沒有直接包括相關(guān)性特征, 而是把不同域名的 IP 地址集的重疊程度作為聚類依據(jù), 對聚類后的域名簇判斷是否為速變網(wǎng)絡(luò)。近期的研究發(fā)現(xiàn)速變域名已經(jīng)出現(xiàn)一些新的特點[22], 使得很多原來的檢測特征不再有效, 但速變域名之間卻有了更多的相關(guān)性。本文提出的14~18這5個相關(guān)性特征有助于從相關(guān)性去識別速變域名, 故本文方法取得更好的效果。
本文利用 Passive DNS 方法采集域名信息, 構(gòu)建識別速變網(wǎng)絡(luò)的 18 個特征集, 用隨機森林算法建立了相應(yīng)的識別模型。在真實的網(wǎng)絡(luò)運行數(shù)據(jù)集上驗證了模型的有效性, 并與開源工具進行對比。試驗表明, 本文提出的速變域名識別方法識別正確率高, 取得比FluxBuster更好的識別效果。
本文的局限性在于采集到的速變域名數(shù)據(jù)集較小, 因此我們只能選取 alexa 正常域名的一小部分來做正向標(biāo)簽, 這就使得整個訓(xùn)練集規(guī)模較小, 對模型精度有影響。另一方面, 模型的部分特征計算量較大, 有待進一步改進。
[1] Riden J. Know your enemy: fast-flux service networks [EB/OL]. (2008–08–16)[2015–05–01]. http:// www.honeynet.org/papers/ff
[2] Perdisci R, Corona I, Giacinto G. Early detection of malicious flux networks via large-scale passive DNS traffic analysis. IEEE Transactions on Dependable and Secure Computing, 2012, 9(5): 714–726
[3] Weimer F. Passive DNS replication // FIRST Conference on Computer Security Incident. Singapore, 2005: 1-13
[4] Mockapetris P V. Domain names, concepts and facilities [EB/OL]. (1987)[2015-03-01]. http://tools.iet f.org/html/rfc1034
[5] Holz T, Gorecki C, Rieck K, et al. Measuring and detecting fast-flux service networks // NDSS. San Diego, 2008: 487–492
[6] Passerini E, Paleari R, Martignoni L, et al. Fluxor: detecting and monitoring fast-flux service networks // Detection of Intrusions and Malware, and Vulnerability Assessment. Berlin: Springer, 2008: 186–206
[7] Huang S Y, Mao C H, Lee H M. Fast-flux service network detection based on spatial snapshot mechanism for delay-free detection // Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security. Beijing, 2010: 101–111
[8] 汪洋. Fast-flux 服務(wù)網(wǎng)絡(luò)檢測方法研究[D]. 武漢:華中科技大學(xué), 2009
[9] Antonakakis M, Perdisci R, Dagon D, et al. Building a dynamic reputation system for DNS // USENIX Security Symposium. Washington DC, 2010: 273–290
[10] Bilge L, Kirda E, Kruegel C, et al. EXPOSURE: finding malicious domains using passive DNS analysis // NDSS. San Diego, 2011: 1–5
[11] Pedregosa F, Varoquaux G, Gramfort A, et al. Scikitlearn: machine learning in Python. The Journal of Machine Learning Research, 2011, 12: 2825–2830
[12] Ho T K. Random decision forests // Proceedings of the Third International Conference on Document Analysis and Recognition. Montreal, 1995: 278–282
[13] Quinlan J R. C4.5: programs for machine learning. San Francisco: Morgan Kaufmann Publishers, 2014
[14] Sconzo M. DGA detection [CP/OL]. (2014–01–21) [2015–05–11]. https://github.com/ClickSecurity/data_ hacking/tree/master/dga_detection
[15] Edward B. A network sniffer that logs all DNS server replies for use in a passive DNS [CP/OL]. (2011–04– 29) [2015–05–11]. https://github.com/game linux/pas sivedns
[16] Percona. High-performance MongoDB distribution [EB/OL]. (2006-01-01) [2015-05-11]. https://www. percona.com/software/mongo-database/percona-tokumx [17] MongoDB. MongoDB for GIANt ideas [EB/OL]. (2009–08–20) [2015–12–11]. https://www.mongodb. org/
[18] Alexa Internet. Actionable analytics for the web [EB/OL]. (1996–04–01) [2015–12–11]. http://www. alexa.com/
[19] 褚燕琴, 應(yīng)凌云, 馮登國, 等. 速變服務(wù)網(wǎng)絡(luò)行為特征分析. 計算機系統(tǒng)應(yīng)用, 2013(8): 1–8
[20] Perdisci R, Corona I, Giacinto G. Early detection of malicious flux networks via large-scale passive DNS traffic analysis [EB/OL]. (2012–10–20) [2015–12–11]. https://code.google.com/p/fluxbuster/
[21] Bitcoin Community. Satoshi client node discovery [EB/OL]. (2014–03–13) [2015–12–11]. https://en.bi tcoin.it/wiki/Satoshi_Clie nt_Node_Discovery
[22] Xu W, Wang X, Xie H. New trends in FastFlux networks [EB/OL]. (2013–12–04)[2016–04–07]. https:// media.blackhat.com/us-13/US-13-Xu-New-Trends-in-FastFlux-Networks-WP.pdf
[23] 陳愷. 基于 Passive DNS的惡意域名識別研究[D].北京: 北京大學(xué), 2014
Detection of Fast-Flux Domains Based on Passive DNS Analysis
ZHOU Changling1,2,3,?CHEN Kai1,2GONG Xuxiao1CHEN Ping1MA Hao1
1. Computer Center of Peking University, Beijing 100871; 2. School of Electronics Engineering and Computer Science, Peking University, Beijing 100871; 3. Institute of Computer Science & Technology of Peking University, Beijing 100871; ? E-mail: zclfly@pku.edu.cn
The authors use Passive DNS to log domain name query history of real campus network environment, and construct eighteen feature sets grouping by diversity, time, growth, and relevance, and then propose a model detect Fast-Flux Domains using random forest algorithm. The result shows that the proposed model can classify domains with accuracy over 90% by cross validation experiments. The model can detect Fast-Flux domains in the datasets used in this study more effectively compared with Fluxbuster.
Passive DNS; fast-flux domain; random forest algorithm; DGA; CDN
TP393
國家2012年下一代互聯(lián)網(wǎng)技術(shù)研發(fā)、產(chǎn)業(yè)化和規(guī)模商用專項項目(CNGI-12-03-001)、國家發(fā)展改革委員會2011年國家信息安全專項和863計劃(2015AA011403)資助
2015-06-01;
2015-07-07; 網(wǎng)絡(luò)出版日期: 2016-05-17
① 相關(guān)的代碼地址: https://github.com/whodewho/FluxEnder。