摘要:針對DNS64分布式拒絕服務(wù)攻擊的具體場景,提出了一種基于信息熵估計的異常流量檢測技術(shù),該技術(shù)采用了統(tǒng)計閾值而非固定閾值的攻擊檢測方式,并結(jié)合DNS64協(xié)議特點,針對性地引入了多攻擊特征加權(quán)判別機制。實驗與分析結(jié)果表明,上述方法能夠針對漸增的DDoS攻擊行為給予及時響應(yīng),同時在保障DDoS攻擊檢測率的同時,有效地降低其檢測誤報率,從而達到DNS64攻擊識別與服務(wù)防護的目的。
關(guān)鍵詞:IPv6;DNS64;并存過渡機制;DDoS;熵檢測
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2014)21-4990-04
鑒于當(dāng)前IPv4協(xié)議的應(yīng)用普及現(xiàn)狀,從IPv4過渡到IPv6勢必是一個長期演進的過程。而隨著下一代互聯(lián)網(wǎng)協(xié)議IPv6的快速發(fā)展,越來越多的IPv4/v6并存過渡機制正在逐步得到應(yīng)用,如DNS64、NAT-PT等,而這些過渡機制本身的安全保障則成為當(dāng)前IPv4/v6安全性研究的關(guān)鍵問題之一。
在IPv4/v6互聯(lián)網(wǎng)中,DNS是最關(guān)鍵的基礎(chǔ)核心服務(wù)之一,其服務(wù)的開放性及其對網(wǎng)絡(luò)服務(wù)影響的廣泛性,往往使得其DDoS分布式拒絕服務(wù)攻擊的首要焦點,其典型的安全相關(guān)事件包括2009年“5.19斷網(wǎng)事件”、2014年“1.21宕機事件”等。而作為銜接IPv4/v6網(wǎng)絡(luò)服務(wù)橋梁、并正在快速普及的DNS64服務(wù),其安全性保障正在逐漸受到人們的重視與關(guān)注。
目前,已涌現(xiàn)出多種基于流量的DNS拒絕服務(wù)攻擊檢測技術(shù)。秦勇等[1]提出了一種通過對DNS流量摘要記錄進行分析來實現(xiàn)DNS異常檢測的方法;Musashi等[2]實現(xiàn)了一種針對多種類型DNS日志流量報文實施異常檢測的方法;Ren等[3]提出一種DNS流量可視化分析方法以解決DDoS所導(dǎo)致的緩沖中毒等問題。上述方法對于流量統(tǒng)計發(fā)生突變的DNS攻擊場合均非常有效,然而卻普遍不能有效應(yīng)對日益流行的流量漸進攻擊方式,由于漸進攻擊并不會導(dǎo)致流量統(tǒng)計突變,因此此類基于流量統(tǒng)計的檢測方法均在不同程度上具有一定的局限性。
而基于熵估計的入侵檢測思路則有助于克服這一問題。在流量統(tǒng)計的過程中,結(jié)合相應(yīng)的異常信息成分估計來實現(xiàn)相應(yīng)的攻擊檢測,是該思路的主要特點。目前針對這一方法的研究尚處發(fā)展階段,丁森林[4]等使用信息熵對若干現(xiàn)實攻擊事件進行了分析,其結(jié)果證實了信息熵能夠及時發(fā)現(xiàn)攻擊點;張潔[5]等在信息熵檢測方法基礎(chǔ)上進一步提出了分級閾值的思路,并從一定程度上降低了DDoS攻擊檢測的誤報率。
本文結(jié)合DNS64分布式拒絕服務(wù)攻擊的具體攻擊場景,提出了一種基于熵估計的異常流量檢測技術(shù),該技術(shù)采用了統(tǒng)計閾值而非固定閾值的攻擊檢測方式,并結(jié)合DNS64協(xié)議特點,有針對性地引入了相應(yīng)的攻擊特征分類機制,以解決當(dāng)前基于固定閾值的熵估計攻擊檢測技術(shù)所普遍存在的誤報率較高的問題。該文同時針對上述檢測思路進行了實驗驗證。分析結(jié)果表明,上述技術(shù)能夠在較大提升DNS64分布式拒絕服務(wù)攻擊的檢測率的同時,降低其檢測誤報率,從而具備良好的實際應(yīng)用價值。
1 DNS64技術(shù)與熵估計方法簡介
1.1 DNS64并存過渡技術(shù)
DNS64[6]是一種IPv4-IPv6過渡技術(shù)。其一般用來與IPv6/IPv4轉(zhuǎn)換設(shè)備(如NAT64[7]設(shè)備等)協(xié)同工作,以保證IPv6-only主機可通過域名與IPv4-only的服務(wù)器建立通信。其中,NAT64通常用來實現(xiàn)TCP、UDP、ICMP協(xié)議下的IPv6與IPv4網(wǎng)絡(luò)地址和協(xié)議報文的轉(zhuǎn)換。而DNS64則主要是配合NAT64工作,用于在建立連接伊始,將DNSv4查詢信息中的A記錄(IPv4地址)合成到AAAA記錄(IPv6地址)中,繼而將合成后AAAA記錄用戶給IPv6側(cè)用戶。
DNS64與NAT64配合工作的協(xié)議流程如下圖所示。
在上述跨協(xié)議域的交互過程中,不難發(fā)現(xiàn),DNS64服務(wù)器極易成為分布式拒絕服務(wù)攻擊的重點目標。這主要是因為,首先,由于該服務(wù)涉及到多次DNSv4、DNSv6請求的發(fā)起與組裝返回,而這一過程是有狀態(tài)的,如果針對該服務(wù)進行DDoS攻擊的話,勢必能夠以更高的效率耗盡DNS64服務(wù)的處理能力及其狀態(tài)保存相關(guān)的存儲資源;其次,對于背后的雙棧DNS服務(wù)器而言,遭受到DDoS攻擊的DNS64服務(wù)器恰好成為了一個放大攻擊流量的跳板,在遭受DDoS攻擊的場合下,其勢必也將導(dǎo)致背后的DNS服務(wù)也遭受到至少同等強度的拒絕服務(wù)攻擊。
由此不能看出,DNS64作為一種被廣泛應(yīng)用的64過渡機制,其在應(yīng)對DDoS攻擊方面實際上存在著顯著缺陷,其本身不僅容易受到攻擊,而且在受到攻擊的情況下,其還將連帶波及到其他關(guān)鍵服務(wù)網(wǎng)元。因此,及時檢測出針對DNS64服務(wù)器的攻擊并采取相應(yīng)的防護措施,對于保障其正常服務(wù)而言非常關(guān)鍵。
1.2 基于信息熵度量的攻擊檢測
信息熵的概念最先由信息論之父香農(nóng)于1948年提出,作為一個衡量事件信息含量的基本度量,其認為所有的信息均不同程度的存在著冗余,而冗余的大小與信息中的符號出現(xiàn)概率相關(guān),而在剔除信息中冗余信息之后所剩余的平均信息量則被定義為“信息熵”。信息熵這一概念被廣泛地應(yīng)用于描述隨機事件出現(xiàn)的不確定性;如某系統(tǒng)中事件出現(xiàn)的越隨機、越雜亂無章,則其含有的信息量就越大,其熵值也應(yīng)越大。
假設(shè)存在某個隨機事件X,則其發(fā)生時所包含的信息量應(yīng)該是該事件發(fā)生時先驗概率 P (X)的函數(shù),于是可將事件 X所包含的自信息量I(X)(單位bit)以如下形式定義:
信息熵一般具有非負性,即其通常為正數(shù);同時,其還具有對稱性,其值并不會因為事件統(tǒng)計順序變化而發(fā)生改變;同時其還具有確定性,即當(dāng)某事件發(fā)生概率為1時,則信息熵取值必定為0;除此之外,其還具有最大離散熵屬性,即當(dāng)系統(tǒng)中所有離散事件發(fā)生的概率相等時,此時系統(tǒng)具有最大離散熵。
信息熵的上述性質(zhì),使得其非常適合用來作為分布式拒絕服務(wù)攻擊檢測的度量。其主要思路在于:為規(guī)避攻擊檢測,目前DNS分布式拒絕服務(wù)攻擊大多通過采用大量的偽造源地址、針對大量不存在的域名發(fā)起DNS請求的方式來發(fā)起攻擊,因此將直接導(dǎo)致在一定時間窗口內(nèi)以不同源地址或不同請求域名作為隨機事件的熵度量的顯著增長,而這一熵度量則可作為判別分布式拒絕服務(wù)攻擊是否發(fā)生的一個直覺依據(jù)。
2 基于熵估計的DNS64分布式拒絕服務(wù)攻擊檢測
2.1 針對攻擊特征的信息熵計算
本文采用了一種基于等量數(shù)據(jù)包的統(tǒng)計方式來計算信息熵檢測值,其算法描述如下:
1) 不妨設(shè)N為當(dāng)前檢測量,即,針對每N個DNS查詢數(shù)據(jù)包進行1次信息熵計算,這N個DNS查詢數(shù)據(jù)包被稱為一個檢測周期;
2) 考慮到DNS DDoS攻擊方式的特點,我們選取將DNS數(shù)據(jù)包中的源地址與其查詢域名的內(nèi)容作為數(shù)據(jù)包的特征并加以提??;
3) 當(dāng)采集的數(shù)據(jù)包數(shù)量累積達到N時,觸發(fā)1次信息熵計算,其計算方法為:逐一針對特定的特征類別,對當(dāng)前積累的N個數(shù)據(jù)包中的特征取值進行歸類,并得到不同類別的特征取值出現(xiàn)的累積個數(shù),然后計算出不同特征取值類別出現(xiàn)的概率。
4) 基于各個特征取值出現(xiàn)的概率,計算出針對該特征的信息熵值,并將該熵值保存下來作為后繼檢測的基本依據(jù)。
通過上述計算方式,不難發(fā)現(xiàn),當(dāng)分布式拒絕服務(wù)攻擊發(fā)生時,來自隨機源地址的DNS數(shù)量將急劇增長,而與其同時,其DNS請求解析的隨機域名數(shù)量也將不斷增長,因此在這種場合之下,針對源地址與請求解析域名這兩個特征的信息熵值也將出現(xiàn)顯著的增長,而這一趨勢則可以作為判斷當(dāng)前是否存在DDoS攻擊的直覺判別依據(jù)。
2.2 基于擬合殘差的熵估計檢測
值得指出的是,盡管我們可以在利用2.1節(jié)算法的同時,設(shè)定一個固定判決閾值,當(dāng)信息熵高于該閾值時表示檢測到攻擊,但這種方式存在著其固有的局限性:當(dāng)其閾值設(shè)置得過大時,系統(tǒng)的檢測率將隨之變低,而當(dāng)其閾值設(shè)置得過小時,則誤報率變高。
為解決這一問題,該文提出了一種基于統(tǒng)計擬合的方法來動態(tài)選取判決閾值??紤]連續(xù)統(tǒng)計M個檢測周期的場合,在每一周期中針對某一特定的特征我們均可獲得其所對應(yīng)的信息熵h。為描述方便起見,以下我們暫時僅考慮單一特征的情況。
我們將M稱為統(tǒng)計窗口,并且可針對該窗口下某特定特征的所有熵值進行從小到大排序,根據(jù)排序的結(jié)果,將排列次序為i的信息熵定義為hi。
針對熵值集合
2.3 基于特征加權(quán)的熵估計檢測
在2.2中,我們僅考慮了單一特征統(tǒng)計的情況。事實上,在針對DNS64的實際DDoS攻擊場合下,其各攻擊特征的熵值變化趨勢并不是一致的,比如,如前文所述,針對其攻擊報文中源地址特征及請求域名的信息熵變化趨勢是遞增的,而針對其攻擊報文的DNS請求類型這一特征的信息熵統(tǒng)計趨勢卻是遞減的,這主要是因為攻擊方為了加大對DNS64服務(wù)器的負載壓力,反復(fù)向其發(fā)起同種類型的DNS Query報文的緣故。這一觀察表明,與熵值異常程度ai類似的,不同類型特征的熵值變化趨勢對于DDoS攻擊評判也存在著相應(yīng)的影響。
為綜合考慮上述兩方面因素,不妨設(shè)DDoS攻擊特征集合為F={f1, f2, f3, …, fn},其中n為特征總量。對于第i個特征,可用Ii來表示其熵值是否顯著增加,當(dāng)其熵值顯著提升時,Ii取值為1,否則為0;同時用Di來表示該特征的熵值是否顯著降低,其取值含義與Ii類似。
我們同時定義權(quán)值ui表示當(dāng)特征i的熵值顯著提升時對DDoS攻擊判決的影響權(quán)重,并且定義表示當(dāng)特征i的熵值顯著提升時,其對DDoS攻擊判定的權(quán)重為vi。則有所有特征的熵值變化對DDoS攻擊的評價度量V為:
3 實驗與分析
為驗證上述算法的有效性,該文采用了模擬DDoS攻擊的方式,將該算法與采用固定閾值判定的檢測算法效果進行了對比。具體實驗環(huán)境為x86平臺下的debian-sid Linux,整個驗證實驗采用了多臺計算機(Intel Dual-Core 2.0Ghz,512M,攻擊主機3臺,DNS64服務(wù)器1臺,普通服務(wù)器1臺,終端機1臺),所有主機均以100Mbps全雙工互連。模擬DDoS攻擊的軟件采用DDOSIM[8]。
4 結(jié)論與下一步工作
本文針對DNS64分布式拒絕服務(wù)攻擊的具體場景,提出了一種基于信息熵估計的異常流量檢測技術(shù),該技術(shù)采用了統(tǒng)計閾值而非固定閾值的攻擊檢測方式,并結(jié)合DNS64協(xié)議特點,針對性地引入了多攻擊特征加權(quán)判別機制。實驗與分析結(jié)果表明,上述方法能夠針對漸增的DDoS攻擊行為給予及時響應(yīng),同時在保障DDoS攻擊檢測率的同時,有效地降低其檢測誤報率,從而達到DNS64攻擊識別與服務(wù)防護的目的。
下一步工作主要包括:將其分析思路應(yīng)用在DNS64-NAT64協(xié)作場景之下,進一步分析NAT64、NAT-PT等關(guān)鍵v4/6并存過渡機制所面臨的DDoS風(fēng)險;以更細粒度分析攻擊判決模型,探討其算法參數(shù)的自適應(yīng)優(yōu)化取值方法;嘗試采用統(tǒng)計學(xué)習(xí)方法改善信息熵攻擊判決效率,進一步提升系統(tǒng)在正常訪問流量下的容忍度。
參考文獻:
[1] 秦勇.一種基于異常檢測的DNS流量負載審計[J].微計算機應(yīng)用,2004,25(2):145-149.
[2] Y.Musashi,R.Matsuba, K.Sugitani.A Threat of AAAA Resource Record-based DNS Query Traffic. IPSJ Symposium Series,2006(12):61-66.
[3] Pin Ren,Kristoff J,Gooch B.Visualizing DNS Traffic. Proceedings of the 3rd International Workshop on Visualization for Computer Security.Alexandria,Virginia, USA,2006:23-30.
[4] 丁森林,吳軍,毛偉.利用熵檢測DNS異常[J].計算機系統(tǒng)應(yīng)用,2010,19 (12):195-198.
[5] 張潔,秦拯.改進的基于熵的DDoS攻擊檢測方法[J].計算機應(yīng)用,2010,30(7):1778-1781.
[6] Bagnulo M.DNS64: DNS Extensions for Network Address Translation from IPv6 Clients to IPv4 Servers[S]. RFC6147, 2011.
[7] Bagnulo M. Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers[S]. RFC6146, 2011.
[8] DDoSIM[EB/OL].http://sourceforge.net/projects/ddosim/.