專利名稱:一種Domain flux僵尸網(wǎng)絡域名檢測方法
技術(shù)領(lǐng)域:
本檢測方法涉及網(wǎng)絡安全領(lǐng)域。
背景技術(shù):
域名系統(tǒng)(Domain Name System,DNS)作為重要的互聯(lián)網(wǎng)業(yè)務基礎設施,主要用于完成從域名到IP地址的翻譯轉(zhuǎn)換功能。當前大多數(shù)互聯(lián)網(wǎng)應用在開展具體的業(yè)務前,都需要利用域名系統(tǒng)完成從域名到IP地址的尋址轉(zhuǎn)換。作為當前網(wǎng)絡上很多惡意活動開展的主體botnet,雖然部分已經(jīng)采用了新的技術(shù)和協(xié)議,如p2p,但是大部分的botnet還在利用DNS進行資源獲取、控制服務器定位等。為了提高自身的生存能力及達到更好的隱藏和靈活效果,獲取更大的利益,這些botnet利用了一些技術(shù),如fast flux和domain flux。近兩年,botnet對domain flux的利用呈現(xiàn)快速上升的趨勢。ICANN將fast flux描述為快速且持續(xù)變換主機的資源記錄,導致域名解析出的ip快速改變的行為,而domain flux與fast flux恰好相反,指不停的改變和分配多個域名到一個或多個ip的行為。這兩種技術(shù)都可用于Botnet的C&C定位方面,最為出名的僵尸網(wǎng)絡storm利用的是fast flux方法,根據(jù)RSA fraudaction團隊發(fā)布的報告,rock釣魚組織也已經(jīng)在它們的架構(gòu)中使用了這種技術(shù);而一些botnet如Conf icker、Kraken和Torpig等,則利用domainflux方法生成的域名進行聯(lián)絡和控制。以Conficker為例,其每3個小時生成250個域名,并隨機挑選其中的32個獲取ip以嘗試連接控制端。由于fast flux利用一個域名,botnet在使用時,存在容易單點失效的缺陷,所以很多botnet利用domain flux來彌補這個問題。同時,生成的大量域名可以增加安全分析人員的分析成本,延長分析時間。在相關(guān)研究方面,前期fast flux的利用和相關(guān)研究比較多,而對domain flux的研究和關(guān)注這兩年則比較迅速。當前對domain flux的檢測,主要集中在對域名字符特征的分析上。由于域名生成算法差異較大,易于修改和替換,其生成的域名字符特征表現(xiàn)也就各不相同,由于當前的檢測方法多針對具體的字符特征,所以字符特征的變化可以逃避針對其僵尸網(wǎng)絡的檢測。相比較于域名字符特征,由于域名訪問具有較強的穩(wěn)定和規(guī)律,domain flux域名的使用特征比較穩(wěn)定,因此針對domain flux生成的域名訪問活躍情況,提出一種檢測domain flux僵尸網(wǎng)絡域名的方法。
發(fā)明內(nèi)容
針對現(xiàn)有domain flux僵尸網(wǎng)絡,給出基于子域名活躍特征的域名檢測方法。本文提出的檢測方法,是基于這樣的觀察結(jié)論botnet在利用domain flux時,其域名在子域名數(shù)量、新子域名的出現(xiàn)和子域名活躍方面與合法的域名有著明顯的區(qū)別。
在基于domian flux的botnet中,每個bot周期性的生成一系列域名用于聯(lián)絡c&c服務器,隨著時間的推移,其域名數(shù)量不斷增多。圖I所示為幾個此類樣本生成的子域
名數(shù)量。由于部署的限制,捕獲到所有針對某域名的解析請求是非常困難的。但是,即便針對獲取的部分請求數(shù)據(jù),隨時間而增長的子域名數(shù)可以作為從大量域名數(shù)據(jù)中篩選域名的首要過濾條件[2]。對于domain flux生成的大量域名,其有一定的生成算法和組織方式。為了保證各個bot在某段時間能夠定位到同一 C&C,其算法經(jīng)常會 利用如時間、熱門話題等作為種子。在域名的組織方面,很多botnet利用多個二級域名(或三級域名)來生成子域名。對于生成的域名,根據(jù)需要,將域名映射到一個或多個ip上去;生成的各子域名,除了在域名的詞法方面表現(xiàn)一定的特征,如字符分布、字符串長度、所包含點的數(shù)量等。除了提高分析的代價、隱藏真正使用的域名達到迷惑的目的外,自動生成的域名主要任務是作為內(nèi)部聯(lián)絡的途徑,其在使用即域名的請求方面,會表現(xiàn)出一些特征,明顯區(qū)別于合法域名的訪問方式。如圖2所示,圖左邊為一非法域名的被請求情況,圖右為一合法域名的被請求解析情況。橫軸表示時間,縱軸為域名對應的ip,星號表示在某時間此域名ip被客戶端請求解析。從圖2對比可以看到,合法的域名其訪問比較隨機,且時間上持續(xù)時間較長;而惡意樣本利用的域名只在某一短時間內(nèi)使用。圖3為某一惡意域名在一段時間內(nèi)其子域名的訪問情況如圖3所示,雖然時間的推移,不斷有新的子域名被請求解析,每一子域名的活躍時間不同,且不相交,其活躍時間長度是一致的??梢钥吹?對于domain flux所生成的每個子域名,由于其使用方面的特點,其活躍時間在整個botnet的存活周期中,只占只是其中的一段。雖然此子域名在后面還能夠解析到ip數(shù)據(jù),但各bot按照使用約定放棄此子域名。對于各子域名,由于其使用方式是一樣的,從總體上看,如果按照二級或三級域名這樣的形式對域名進行分組,集合內(nèi)的各子域名的活躍時間長度應該是保持一致的,即所有子域名的活躍時間長度非常集中。給定一個時間周期T,將時間范圍內(nèi)的域名按照二級或三級域名分組,得到此域名下的各子域名集合D = {si, s2,…,sn},如果sn子域名在Tl時間第一次被請求解析,在T2時間最后一次被請求解析,則此域名的活躍時間是從Tl到T2,活躍時間長度AT = T2-T1,用count (AT)表示長度活躍時間長度為AT的子域名數(shù)量,則D的子域名活躍時間長度的數(shù)量分布為 {count ( Δ T1), count ( Δ T2), , count ( Δ Tn)}當C0Unt(AT)占總子域名數(shù)的比重越大時,這組子域名在活躍時間長度的分布上越集中。用Distribute(D)來代表集合D的活躍時間分布情況,定義
ηDistribute(D) = max(count(ATi)) / ^count (AT1)
/=1當Distribute (D)的值越大,說明子域名的活躍時間長度分布越集中。其中Distribute (D) <=1。在前面的相關(guān)研究中,大多方法采用的是通過收集一定的已知數(shù)據(jù)作為訓練集,利用分類算法對未知數(shù)據(jù)進行分類。這種方法比較成熟和完善,但需要已知數(shù)據(jù)的支持,且分類的效果受訓練數(shù)據(jù)的影響。本文通過分組域名計算各Distribute (D),觀察不同域名的Distribute (D)情況,通過指定Distribute (D)的閥值來過濾輸出域名,并利用交叉驗證等方式驗證相關(guān)輸出結(jié)果。通過多次實驗,當閥值大于O. 9,可以較好的過濾出惡意域名。
圖I惡意樣本生成的子域名數(shù)量圖2域名活躍情況對比圖3某惡意域名子域名訪問情況圖4部署結(jié)構(gòu)圖5檢測流程
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明作進一步詳細的說明。下面結(jié)合圖4說明本發(fā)明方法。系統(tǒng)流程如圖5所示。步驟I :抓取DNS數(shù)據(jù)。利用的數(shù)據(jù)來自DNS服務器的流量鏡像,針對的是dns客戶端所使用的緩存服務器。將鏡像的流量引導到采集機的網(wǎng)卡上。步驟2 :在采集機上啟動程序,進行數(shù)據(jù)的抓?。徊襟E3 :啟動解析程序,對抓取到的數(shù)據(jù),按照DNS RFC協(xié)議進行解析,區(qū)分請求和響應數(shù)據(jù)包。對響應數(shù)據(jù),按照資源記錄格式,解析出各字段內(nèi)容。所有解析的內(nèi)容按照固定的時間間隔保存到文件。假定時間間隔為5分鐘,則每5分鐘,生成一個文本文件。文本文件以時間命名來區(qū)分?!げ襟E4:啟動分析計算程序,讀取解析程序在一段時間內(nèi)的導出文件,假定對一天內(nèi)的導出文件進行分析。將所有文件內(nèi)容讀入內(nèi)存,進行分組計算,輸出結(jié)果到數(shù)據(jù)庫表。步驟5 :按照閥值在數(shù)據(jù)庫表中過濾域名,輸出并展示。
權(quán)利要求
1.Domain flux僵尸網(wǎng)絡域名檢測方法,其特征在于,包括 按固定時間間隔記錄域名的IP解析內(nèi)容; 按照二級域名及域名解析ip對域名進行分組; 計算分組的域名訪問時間的一致性數(shù)值。
2.根據(jù)權(quán)利要求I所描述的Domainflux僵尸網(wǎng)絡域名檢測方法,其特征在于,按照以下步驟按固定時間間隔記錄域名的IP解析內(nèi)容 鏡像緩存服務器的DNS數(shù)據(jù)到數(shù)據(jù)采集機的網(wǎng)卡上,抓取DNS數(shù)據(jù)。
根據(jù)DNS協(xié)議解析響應資源記錄,將各協(xié)議字段內(nèi)容,按照固定時間間隔保存解析出的資源記錄。
3.根據(jù)權(quán)利要求I所描述的Domainflux僵尸網(wǎng)絡域名檢測方法,其特征在于,按照如下對域名進行分組 按域名等級進行分組,將同屬于一個域名的各子域名劃分到一個集合中; 按照域名所解析出的ip進行分組,將解析ip —致的域名劃分到一個集合中。
4.根據(jù)權(quán)利要求I所描述的Domainflux僵尸網(wǎng)絡域名檢測方法,其特征在于,按照以下步驟計算域名分組的域名訪問時間一致性數(shù)值 對每一域名,計算域名初次解析記錄時間與最后解析記錄出現(xiàn)時間差值,作為域名活躍持續(xù)時間; 將域名集合得到的所有差值,計算每個差值所占百分比,保留最大百分比數(shù)值作為此域名集合的訪問時間一致性數(shù)值。
5.一種針對僵尸網(wǎng)絡域名變換技術(shù)進行檢測的系統(tǒng),其特征在于,包括 數(shù)據(jù)采集引擎,用于采集網(wǎng)口上的DNS原始數(shù)據(jù); 數(shù)據(jù)解析引擎,用于對采集到的DNS原始數(shù)據(jù),按照協(xié)議規(guī)定進行解析,并按需要的格式保存解析出的DNS資源記錄內(nèi)容; 域名過濾及輸出引擎,對域名進行分組,并計算域名分組的域名訪問時間一致性數(shù)值,按閥值要求輸出域名列表。
6.根據(jù)權(quán)利要求5所述的一種針對僵尸網(wǎng)絡域名變換技術(shù)進行檢測的系統(tǒng),其特征在于,域名過濾及輸出引擎包括 域名分組單元,用于對所記錄域名按父域名及ip進行分組; 一致性計算單元,計算域名訪問一致性信息; 域名過濾單元,按照閥值過濾并輸出域名; 展示單元,對輸出的域名列表,展示其訪問信息訪問時間、返回解析內(nèi)容,次數(shù)等。
全文摘要
本發(fā)明所述的一種Domain flux僵尸網(wǎng)絡域名檢測方法,是針對僵尸網(wǎng)絡利用domain-flux技術(shù)進行定位及隱藏的問題,提出基于域名活動特征的僵尸網(wǎng)絡域名檢測方法。其方法步驟如下接收并解析DNS響應報文,按固定時間間隔記錄域名的IP解析內(nèi)容;按照二級域名及解析ip對域名進行分組,得到多個域名集合,每集合包含一到多個域名;針對每個集合,計算集合內(nèi)各域名從最初出現(xiàn)到最后出現(xiàn)的時間間隔,作為域名解析有效持續(xù)時間;計算集合內(nèi),各持續(xù)時間所占總域名的最大比重;根據(jù)預先定義閾值,輸出使用domain-flux技術(shù)的域名列表。
文檔編號H04L29/06GK102938769SQ20121047559
公開日2013年2月20日 申請日期2012年11月22日 優(yōu)先權(quán)日2012年11月22日
發(fā)明者袁春陽, 杜躍進, 孫波, 許俊峰, 王明華, 李青山, 徐小琳, 何躍鷹, 嚴寒冰, 王營康, 鄭禮雄, 張勝利, 李洪生, 軒志朋, 王永建, 林紳文, 楊鵬, 王進, 張偉, 郭承青 申請人:國家計算機網(wǎng)絡與信息安全管理中心, 北京大學