國家計算機網絡應急技術處理協調中心江蘇分中心 蔡 冰 馬 旸 王林汝
一種惡意域名檢測技術的研究與實現
國家計算機網絡應急技術處理協調中心江蘇分中心 蔡 冰 馬 旸 王林汝
研究了一種基于域名解析數據的惡意域名檢測關鍵技術,針對傳統惡意域名檢測系統的不足,將“域名解析時間突發性”作為一項重要指標引入至系統的檢測模式中,并結合大數據分析技術,實現了一套惡意域名檢測的原型系統。通過使用真實域名解析數據進行一系列測試,驗證了算法的可用性與高效性。
域名解析; 惡意域名; 大數據分析
我國互聯網市場規模和用戶體量正處在一個高速增長的階段,伴隨著信息化水平與互聯網技術的迅猛發展,來自網絡安全方面的威脅也層出不窮,特別是僵尸、木馬、蠕蟲等惡意程序給我們帶來了極大的網絡安全威脅,網絡環境治理工作面臨著日益嚴峻的挑戰。《江蘇省互聯網網絡安全報告》中指出,2014年江蘇省內被境內外主機通過僵尸木馬控制的事件有189 917 016起,涉及受控IP地址661 639個,黑客通過僵尸木馬等惡意程序竊取個人隱私、實施釣魚欺騙、控制個人終端,嚴重危害公共互聯網安全。
DNS(域名系統)作為互聯網重要的基礎設施,它主要負責完成IP地址與域名之間的相互轉換。然而,由于DNS的開放性,黑客常會構造眾多惡意域名用于實施網絡攻擊或肉雞控制[1],而這些攻擊、控制記錄都會存于DNS解析數據中,通過分析挖掘海量DNS解析數據,從中發現其中的惡意域名是近期網絡安全的熱點,也是本文的主要研究內容。
相對于傳統惡意域名檢測使用的惡意程序逆向、DPI(深度報文檢測)技術,利用DNS解析數據方法具有獨特的優勢[2],國內外科研機構均開展了一系列從DNS解析數據中挖掘惡意域名的探索[3-5]。相對于傳統的程序逆向、DPI等基于內容的檢測技術,基于DNS數據的惡意域名檢測技術具有部署簡單、覆蓋范圍廣、匹配精確等獨特優勢。
本文在國內外學者相關研究的基礎上,引入“域名訪問活躍度分布特征”這一評判指標,綜合考慮域名長度、域名字符特征等因素,提出一套有效的惡意域名檢測方法; 結合大數據分析技術將理論化的檢測方法進行了實現,設計實現了基于DNS數據的惡意域名檢測關鍵技術的原型系統; 以某省某年5 月20日1.7億條真實DNS解析記錄為原始數據,驗證了惡意域名檢測關鍵技術的正確性與有效性。
2.1 系統架構
本文基于惡意域名檢測的關鍵技術構建了一套原型系統,系統主要分為兩大模塊:數據采集模塊和惡意域名檢測模塊。
1) 數據采集模塊。系統在設計與驗證過程中使用的DNS數據均來自于某省運營商的全量DNS鏡像數據,通過架設DNS采集服務器、鏡像交換機以及光電轉換等設備實現DNS請求解析數據的采集匯聚,最后將數據回傳至本地大數據中心。數據采集模塊系統架構如圖1所示。

圖1 數據采集模塊結構
2) 惡意域名檢測模塊。本地大數據中心接收到回傳來的DNS數據后,按照DNS協議字段對海量DNS解析數據進行解析、清洗、入庫,再根據系統設計的檢測原理進行運算,生成經過判別的惡意域名結果。惡意域名檢測模塊結構如圖2所示。

圖2 惡意域名檢測模塊結構
2.2 檢測模式
通過長期對大量惡意域名樣本進行特征分析,本文提出了判別惡意域名三個重要模式:
模式一: 域名字符長度大于x個字符。為了便于用戶的訪問,正常域名一般不會過長而且具有較為明確的含義; 但惡意域名一般不會被用戶主動訪問(即通過瀏覽器輸入網站地址的方式訪問),其為了避免與合法域名產生沖突,通常會由黑客編制特定算法生成。我們經過對大量惡意域名進行長度特征統計,將系統的第一個判別模式設置為長度大于x的域名。
模式二: 域名由數字和字母混雜無序組成。通過長期對域名樣本特征統計發現: 正常域名大部分由純字母構成,即使同時包括字母和數字字符,其組織規則也比較規整,數字和字母通常分開排列,且具有較明確的含義,如163.com、zhibo8.com等;但惡意域名具有生成隨機性,很大一部分惡意域名會出現字符和數字混雜的情況,比如已經被證實為惡意域名的vipdn123. blackapplehost.com、exkn0md6fh.qsdgi.co、spykit.110mb.com等。
模式三: 域名解析具有時間上的突發性。域名在短時間內被集中訪問,而在其他時間內被請求解析次數極少,即我們認為該域名的解析具有時間上的突發性。出于隱藏自身的考慮,大部分惡意域名通常存活時間只有幾分鐘到幾小時,被請求解析次數分布非常不均勻。惡意域名被黑客控制者所控制大部分時間是處于未激活狀態,其解析數量幾乎為0,=只有當黑i客=發起攻擊指令,“肉雞”才會產生大量惡意域名的DNS解i析+請求i。+1
根據模式三的理論,我們建立了相應的數學模型[。]一。般情況下惡意域名的活躍時間約為半小時,也即半小時后該域名通常就被棄用。假設當前待分析域名為y,設置10 min為一個時間單位對該域名的活躍度分布進行統計,一天分為144個時間單位,即從T1到T144,用C(y,Ti)表示2T.3i時檢間測段流內程域名y被請求解析的次數,在計算C(y,Ti)時考慮了Ti-1,Ti,Ti+1三個時間單位的解析次數,用Σ C y , Ti表示域名y一天內總共被請求解析的次數。最后用D(y)來表示域名y在短時間內的活躍程度。模式三所對應的數學公式如下:

根據定義可知,當D(y)取值越大表明域名y在短時間內活躍程度越高,成為惡意域名的幾率也就越大。
2.3 檢測流程
根檢據測2.2流節程中3項檢測模式,我們設計并實現了基于DNS數據的惡意域名檢測系統,系統工作流程見圖3。

圖3 惡意域名檢測工作流程
1) 對采集的運營商DNS數據進行有效性判斷,剔除格式錯誤或缺項記錄,格式無誤的記錄ETL入庫至大數據分析平臺;
2) 由于全量DNS數據規模龐大,首先根據收集的域名白名單樣本集對DNS數據進行過濾,去掉對已知合法域名的請求解析記錄,減小后續運算數據量;
3) 依據2.2節中模式一進行惡意域名的第一步篩選,得到長度超過x字符的域名集合;
4) 依據2.2節中模式二進行惡意域名的第二步篩選,通過正則表達式匹配的方式,找出字符串中混雜出現字母和數字的域名集合;
5) 最后依據2.2節中模式三進行惡意域名的最后一步篩選,生成最終的惡意域名。
3.1 樣本數據集
1) 惡意域名樣本共計5 000條,主要用于與系統分析結果相比對,驗證系統的有效性。該樣本主要有三個來源: 第一部分是從專業網站(如Malware domain list[6]、Quttera)下載的惡意域名庫; 第二部分是從搜集到的流行僵尸程序樣本,如Conficker,Strom和Kraken等生成的惡意域名; 第三部分來自知名安全廠商提供的惡意域名列表。
2) 白名單樣本共計250 000條,主要用于提高系統檢測性能。該樣本主要有兩個來源,一是采用了Alex排名前10 000的域名以及它們的子域名,二是來自知名安全廠商提供的已知合法域名庫。
3) DNS解析記錄數據1.7億條,我們以某省某年5月20日真實DNS解析記錄為原始數據作為本系統分析的數據源,并預先確認其中存有1 100個惡意域名,借此統計該系統檢測的漏報率。
實驗使用的大數據分析集群的硬件配置為: 15臺框架式物理服務器,單臺服務器配置為2顆AMD 6320 單CPU8核心,主頻≥2.8 GHz,48 GB內存,8塊1 TB的SATA硬盤。
3.2 系統測試結果
3.2.1 測試一: 僅使用模式一和模式二進行篩選
測試一僅考慮域名長度和域名字符構成因素,而不考慮域名解析突發性的特征。擬定的惡意域名字符構成正則表達式為:.[0-9]*.[a-zA-Z]*.[0-9]*.或.[a-zA-Z]*.[0-9]*.[a-zA-Z]*., 其中“*”表示匹配前面的子表達式任意次,“.”表示匹配除“ ”之外的任何單個字符。測試一的實驗結果如表1所示。

表1 試測一試結
3.2.2 測試二: 僅使用模式三進行篩選
參照測試一,僅采用模式三進行惡意域名的篩選。測試過程中,選取了幾組不同的D(y)閾值作為惡意域名判別過濾條件,并分別統計了準確率、誤報率和錯誤率。不同D(y)閾值下的測試結果如表2所示。

表2 測試二結果
3.2.3 測試三: 綜合使用三個模式的進行篩選
首先根據域名白名單對測試樣本(假設為B)進行過濾得到B1,接著對B1按照測試一的方式進行第一輪篩選得到B2,再次對B2按照測試二的方式計算其中各域名的D(y)值,根據設定的D(y)閾值篩選得到最終結果集B3。表3給出了當設置域名長度閾值為12、D(y)閾值為0.9時的實驗結果。

表3 測試三結果
3.3 測試結論
通過上述三組測試我們得出結論如下:
1) 測試一僅通過DNS靜態特征(檢測模式一與模式二)進行惡意域名的檢測,測試結果誤報率過高,算法基本不具備可用性。然而,靜態特征適合作為粗粒度的檢測條件,可用于快速從測試樣本中提出疑似度較高的惡意域名。
2) 測試二引入域名的突發性特征檢測后(檢測模式三),系統準確率明顯提升,誤報率較低,但由于部分惡意域名在全天的活躍度整體不高且較為離散,導致僅具備模式三的檢測漏報率較高。
3) 從準確率上看測試三與測試二幾乎相當,但由于增添了靜態特征匹配與白名單機制,系統處理性能與可用性均得到了大幅提升。
本文在提出三項惡意域名檢測模式的基礎上,結合大數據分析技術,構建了一種基于DNS數據的惡意域名檢測關鍵技術的原型系統。為了驗證檢測技術的有效性,利用真實的DNS解析數據對系統進行了功能測試,測試結果表明經過優化后惡意域名檢測性能得到了較大幅度的提升,檢出率可達到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.