國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心江蘇分中心 蔡 冰 馬 旸 王林汝
一種惡意域名檢測技術(shù)的研究與實現(xiàn)
國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心江蘇分中心 蔡 冰 馬 旸 王林汝
研究了一種基于域名解析數(shù)據(jù)的惡意域名檢測關(guān)鍵技術(shù),針對傳統(tǒng)惡意域名檢測系統(tǒng)的不足,將“域名解析時間突發(fā)性”作為一項重要指標引入至系統(tǒng)的檢測模式中,并結(jié)合大數(shù)據(jù)分析技術(shù),實現(xiàn)了一套惡意域名檢測的原型系統(tǒng)。通過使用真實域名解析數(shù)據(jù)進行一系列測試,驗證了算法的可用性與高效性。
域名解析; 惡意域名; 大數(shù)據(jù)分析
我國互聯(lián)網(wǎng)市場規(guī)模和用戶體量正處在一個高速增長的階段,伴隨著信息化水平與互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,來自網(wǎng)絡(luò)安全方面的威脅也層出不窮,特別是僵尸、木馬、蠕蟲等惡意程序給我們帶來了極大的網(wǎng)絡(luò)安全威脅,網(wǎng)絡(luò)環(huán)境治理工作面臨著日益嚴峻的挑戰(zhàn)?!督K省互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報告》中指出,2014年江蘇省內(nèi)被境內(nèi)外主機通過僵尸木馬控制的事件有189 917 016起,涉及受控IP地址661 639個,黑客通過僵尸木馬等惡意程序竊取個人隱私、實施釣魚欺騙、控制個人終端,嚴重危害公共互聯(lián)網(wǎng)安全。
DNS(域名系統(tǒng))作為互聯(lián)網(wǎng)重要的基礎(chǔ)設(shè)施,它主要負責(zé)完成IP地址與域名之間的相互轉(zhuǎn)換。然而,由于DNS的開放性,黑客常會構(gòu)造眾多惡意域名用于實施網(wǎng)絡(luò)攻擊或肉雞控制[1],而這些攻擊、控制記錄都會存于DNS解析數(shù)據(jù)中,通過分析挖掘海量DNS解析數(shù)據(jù),從中發(fā)現(xiàn)其中的惡意域名是近期網(wǎng)絡(luò)安全的熱點,也是本文的主要研究內(nèi)容。
相對于傳統(tǒng)惡意域名檢測使用的惡意程序逆向、DPI(深度報文檢測)技術(shù),利用DNS解析數(shù)據(jù)方法具有獨特的優(yōu)勢[2],國內(nèi)外科研機構(gòu)均開展了一系列從DNS解析數(shù)據(jù)中挖掘惡意域名的探索[3-5]。相對于傳統(tǒng)的程序逆向、DPI等基于內(nèi)容的檢測技術(shù),基于DNS數(shù)據(jù)的惡意域名檢測技術(shù)具有部署簡單、覆蓋范圍廣、匹配精確等獨特優(yōu)勢。
本文在國內(nèi)外學(xué)者相關(guān)研究的基礎(chǔ)上,引入“域名訪問活躍度分布特征”這一評判指標,綜合考慮域名長度、域名字符特征等因素,提出一套有效的惡意域名檢測方法; 結(jié)合大數(shù)據(jù)分析技術(shù)將理論化的檢測方法進行了實現(xiàn),設(shè)計實現(xiàn)了基于DNS數(shù)據(jù)的惡意域名檢測關(guān)鍵技術(shù)的原型系統(tǒng); 以某省某年5 月20日1.7億條真實DNS解析記錄為原始數(shù)據(jù),驗證了惡意域名檢測關(guān)鍵技術(shù)的正確性與有效性。
2.1 系統(tǒng)架構(gòu)
本文基于惡意域名檢測的關(guān)鍵技術(shù)構(gòu)建了一套原型系統(tǒng),系統(tǒng)主要分為兩大模塊:數(shù)據(jù)采集模塊和惡意域名檢測模塊。
1) 數(shù)據(jù)采集模塊。系統(tǒng)在設(shè)計與驗證過程中使用的DNS數(shù)據(jù)均來自于某省運營商的全量DNS鏡像數(shù)據(jù),通過架設(shè)DNS采集服務(wù)器、鏡像交換機以及光電轉(zhuǎn)換等設(shè)備實現(xiàn)DNS請求解析數(shù)據(jù)的采集匯聚,最后將數(shù)據(jù)回傳至本地大數(shù)據(jù)中心。數(shù)據(jù)采集模塊系統(tǒng)架構(gòu)如圖1所示。
圖1 數(shù)據(jù)采集模塊結(jié)構(gòu)
2) 惡意域名檢測模塊。本地大數(shù)據(jù)中心接收到回傳來的DNS數(shù)據(jù)后,按照DNS協(xié)議字段對海量DNS解析數(shù)據(jù)進行解析、清洗、入庫,再根據(jù)系統(tǒng)設(shè)計的檢測原理進行運算,生成經(jīng)過判別的惡意域名結(jié)果。惡意域名檢測模塊結(jié)構(gòu)如圖2所示。
圖2 惡意域名檢測模塊結(jié)構(gòu)
2.2 檢測模式
通過長期對大量惡意域名樣本進行特征分析,本文提出了判別惡意域名三個重要模式:
模式一: 域名字符長度大于x個字符。為了便于用戶的訪問,正常域名一般不會過長而且具有較為明確的含義; 但惡意域名一般不會被用戶主動訪問(即通過瀏覽器輸入網(wǎng)站地址的方式訪問),其為了避免與合法域名產(chǎn)生沖突,通常會由黑客編制特定算法生成。我們經(jīng)過對大量惡意域名進行長度特征統(tǒng)計,將系統(tǒng)的第一個判別模式設(shè)置為長度大于x的域名。
模式二: 域名由數(shù)字和字母混雜無序組成。通過長期對域名樣本特征統(tǒng)計發(fā)現(xiàn): 正常域名大部分由純字母構(gòu)成,即使同時包括字母和數(shù)字字符,其組織規(guī)則也比較規(guī)整,數(shù)字和字母通常分開排列,且具有較明確的含義,如163.com、zhibo8.com等;但惡意域名具有生成隨機性,很大一部分惡意域名會出現(xiàn)字符和數(shù)字混雜的情況,比如已經(jīng)被證實為惡意域名的vipdn123. blackapplehost.com、exkn0md6fh.qsdgi.co、spykit.110mb.com等。
模式三: 域名解析具有時間上的突發(fā)性。域名在短時間內(nèi)被集中訪問,而在其他時間內(nèi)被請求解析次數(shù)極少,即我們認為該域名的解析具有時間上的突發(fā)性。出于隱藏自身的考慮,大部分惡意域名通常存活時間只有幾分鐘到幾小時,被請求解析次數(shù)分布非常不均勻。惡意域名被黑客控制者所控制大部分時間是處于未激活狀態(tài),其解析數(shù)量幾乎為0,=只有當(dāng)黑i客=發(fā)起攻擊指令,“肉雞”才會產(chǎn)生大量惡意域名的DNS解i析+請求i。+1
根據(jù)模式三的理論,我們建立了相應(yīng)的數(shù)學(xué)模型[。]一。般情況下惡意域名的活躍時間約為半小時,也即半小時后該域名通常就被棄用。假設(shè)當(dāng)前待分析域名為y,設(shè)置10 min為一個時間單位對該域名的活躍度分布進行統(tǒng)計,一天分為144個時間單位,即從T1到T144,用C(y,Ti)表示2T.3i時檢間測段流內(nèi)程域名y被請求解析的次數(shù),在計算C(y,Ti)時考慮了Ti-1,Ti,Ti+1三個時間單位的解析次數(shù),用Σ C y , Ti表示域名y一天內(nèi)總共被請求解析的次數(shù)。最后用D(y)來表示域名y在短時間內(nèi)的活躍程度。模式三所對應(yīng)的數(shù)學(xué)公式如下:
根據(jù)定義可知,當(dāng)D(y)取值越大表明域名y在短時間內(nèi)活躍程度越高,成為惡意域名的幾率也就越大。
2.3 檢測流程
根檢據(jù)測2.2流節(jié)程中3項檢測模式,我們設(shè)計并實現(xiàn)了基于DNS數(shù)據(jù)的惡意域名檢測系統(tǒng),系統(tǒng)工作流程見圖3。
圖3 惡意域名檢測工作流程
1) 對采集的運營商DNS數(shù)據(jù)進行有效性判斷,剔除格式錯誤或缺項記錄,格式無誤的記錄ETL入庫至大數(shù)據(jù)分析平臺;
2) 由于全量DNS數(shù)據(jù)規(guī)模龐大,首先根據(jù)收集的域名白名單樣本集對DNS數(shù)據(jù)進行過濾,去掉對已知合法域名的請求解析記錄,減小后續(xù)運算數(shù)據(jù)量;
3) 依據(jù)2.2節(jié)中模式一進行惡意域名的第一步篩選,得到長度超過x字符的域名集合;
4) 依據(jù)2.2節(jié)中模式二進行惡意域名的第二步篩選,通過正則表達式匹配的方式,找出字符串中混雜出現(xiàn)字母和數(shù)字的域名集合;
5) 最后依據(jù)2.2節(jié)中模式三進行惡意域名的最后一步篩選,生成最終的惡意域名。
3.1 樣本數(shù)據(jù)集
1) 惡意域名樣本共計5 000條,主要用于與系統(tǒng)分析結(jié)果相比對,驗證系統(tǒng)的有效性。該樣本主要有三個來源: 第一部分是從專業(yè)網(wǎng)站(如Malware domain list[6]、Quttera)下載的惡意域名庫; 第二部分是從搜集到的流行僵尸程序樣本,如Conficker,Strom和Kraken等生成的惡意域名; 第三部分來自知名安全廠商提供的惡意域名列表。
2) 白名單樣本共計250 000條,主要用于提高系統(tǒng)檢測性能。該樣本主要有兩個來源,一是采用了Alex排名前10 000的域名以及它們的子域名,二是來自知名安全廠商提供的已知合法域名庫。
3) DNS解析記錄數(shù)據(jù)1.7億條,我們以某省某年5月20日真實DNS解析記錄為原始數(shù)據(jù)作為本系統(tǒng)分析的數(shù)據(jù)源,并預(yù)先確認其中存有1 100個惡意域名,借此統(tǒng)計該系統(tǒng)檢測的漏報率。
實驗使用的大數(shù)據(jù)分析集群的硬件配置為: 15臺框架式物理服務(wù)器,單臺服務(wù)器配置為2顆AMD 6320 單CPU8核心,主頻≥2.8 GHz,48 GB內(nèi)存,8塊1 TB的SATA硬盤。
3.2 系統(tǒng)測試結(jié)果
3.2.1 測試一: 僅使用模式一和模式二進行篩選
測試一僅考慮域名長度和域名字符構(gòu)成因素,而不考慮域名解析突發(fā)性的特征。擬定的惡意域名字符構(gòu)成正則表達式為:.[0-9]*.[a-zA-Z]*.[0-9]*.或.[a-zA-Z]*.[0-9]*.[a-zA-Z]*., 其中“*”表示匹配前面的子表達式任意次,“.”表示匹配除“ ”之外的任何單個字符。測試一的實驗結(jié)果如表1所示。
表1 試測一試結(jié)
3.2.2 測試二: 僅使用模式三進行篩選
參照測試一,僅采用模式三進行惡意域名的篩選。測試過程中,選取了幾組不同的D(y)閾值作為惡意域名判別過濾條件,并分別統(tǒng)計了準確率、誤報率和錯誤率。不同D(y)閾值下的測試結(jié)果如表2所示。
表2 測試二結(jié)果
3.2.3 測試三: 綜合使用三個模式的進行篩選
首先根據(jù)域名白名單對測試樣本(假設(shè)為B)進行過濾得到B1,接著對B1按照測試一的方式進行第一輪篩選得到B2,再次對B2按照測試二的方式計算其中各域名的D(y)值,根據(jù)設(shè)定的D(y)閾值篩選得到最終結(jié)果集B3。表3給出了當(dāng)設(shè)置域名長度閾值為12、D(y)閾值為0.9時的實驗結(jié)果。
表3 測試三結(jié)果
3.3 測試結(jié)論
通過上述三組測試我們得出結(jié)論如下:
1) 測試一僅通過DNS靜態(tài)特征(檢測模式一與模式二)進行惡意域名的檢測,測試結(jié)果誤報率過高,算法基本不具備可用性。然而,靜態(tài)特征適合作為粗粒度的檢測條件,可用于快速從測試樣本中提出疑似度較高的惡意域名。
2) 測試二引入域名的突發(fā)性特征檢測后(檢測模式三),系統(tǒng)準確率明顯提升,誤報率較低,但由于部分惡意域名在全天的活躍度整體不高且較為離散,導(dǎo)致僅具備模式三的檢測漏報率較高。
3) 從準確率上看測試三與測試二幾乎相當(dāng),但由于增添了靜態(tài)特征匹配與白名單機制,系統(tǒng)處理性能與可用性均得到了大幅提升。
本文在提出三項惡意域名檢測模式的基礎(chǔ)上,結(jié)合大數(shù)據(jù)分析技術(shù),構(gòu)建了一種基于DNS數(shù)據(jù)的惡意域名檢測關(guān)鍵技術(shù)的原型系統(tǒng)。為了驗證檢測技術(shù)的有效性,利用真實的DNS解析數(shù)據(jù)對系統(tǒng)進行了功能測試,測試結(jié)果表明經(jīng)過優(yōu)化后惡意域名檢測性能得到了較大幅度的提升,檢出率可達到85%以上。
[1]OLLMANN G. Botnet communication topologies[EB/OL]. [2015-07-02]. http:// www.docin.com/p-909121310.html.
[2]PERDISCI R, CORONA I, DAGON D, et al. Detecting malicious flux service networks through passive analysis of recursive DNS traces[C] // Proceedings of 25th Annual Computer Society Security Applications Conference(ACSAC), Honolulu, HI, USA 2009: 311-320.
[3]PASSERINI E, PALEARI R, MARTIGNONI L. Detecting and monitoring fastflux service networks[ C]// Proceedings of the 5th International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA). Paris France, 2008: 186-206.
[4]SANDEEP Y, ASHWATH K.K. REDDY. Detecting algorithmically generated malicious domain names[EB/OL]. [2015-07-02]. http://www.docin.com/ p-726881165.html.
[5]Ricardo, Jose Carlos. Identifying botnet using anomaly detection techniques applied to DNS traffic. [EB/OL]. [2015-07-02]. http://www.docin.com/ p-193846443.html.
[6]MALWARE DOMAIN LIST. Malware domain list[EB/OL]. [2015-07-02]. http://www.malwaredomainlist.com/mdl.php.