專利名稱::域名服務器dns放大攻擊的有效檢測與抵御方法
技術領域:
:本發(fā)明是一種用于檢測和抵御DNS放大攻擊的方法,易于硬件實現(xiàn),可用于高速鏈路,屬于計算機網(wǎng)絡安全領域。該方法包括被保護的網(wǎng)絡所在運營商的邊緣路由器或防火墻中,統(tǒng)計每個檢測周期內(nèi)DNS響應與請求數(shù)量,通過帶消退參數(shù)的累積和算法檢測響應與請求數(shù)量差值的異常變化,來報告DNS放大攻擊;利用基于布隆過濾器(Bloomfilter)的算法記錄DNS請求包的四元組信息包括源IP、目的IP、源端口、DNSID,并以此來判斷DNS響應包是否為攻擊包;該方法在10Gbps鏈路下僅需要75KB存儲空間,計算代價小,利于實現(xiàn)。
背景技術:
:域名服務器(DNS)負責將被人們?nèi)菀子洃浐褪褂玫挠蛎D(zhuǎn)換成實際的IP地址,幾乎是所有網(wǎng)絡服務如網(wǎng)頁、電子郵件等應用的基石,利用DNS服務器進行放大攻擊危害嚴重,其主要步驟如圖1所示-1)預備步驟為成功發(fā)起DNS放大攻擊,攻擊者事先控制某權威域名服務器,并控制大量用于發(fā)起進攻的機器,即僵尸網(wǎng)絡,另外,還需要從網(wǎng)絡上尋找大量開放遞歸(openrecursive)査詢的域名服務器,這類DNS服務器會響應任意的DNS査詢;2)第一步攻擊者在被控制的域名服務器上發(fā)布較大的TXT資源記錄;3)第二步攻擊者向僵尸網(wǎng)絡發(fā)起攻擊指示;4)第三步僵尸網(wǎng)絡的機器向開放遞歸域名服務器査詢第一步中發(fā)布的TXT資源記錄,査詢(DNS請求包)的源IP地址偽造成被攻擊系統(tǒng)的IP地址;5)第四步接收到査詢請求的域名服務器將DNS響應(Response)發(fā)送到被攻擊系統(tǒng)處,消耗其接入帶寬和處理資源,由于DNS響應包往往遠大于DNS請求包,故被攻擊系統(tǒng)到達的流量要大于僵尸網(wǎng)絡所發(fā)出的請求流量,因此被稱為DNS放大攻擊。DNS放大攻擊產(chǎn)生的原因,主要包括IP源地址偽造、開放遞歸的域名服務器的存在和DNS響應包長度大于請求包,從長期而言,消除這三方面尤其前兩方面能徹底消除DNS放大攻擊[SSACadvisorySAC008DNSdistributeddenialofservice(DDoS)attacks,ICANNSecurityandStabilityAdvisoryCommittee,March2006.[Online].Available:http:〃www.icann.org/committees/security/dns-ddos畫advisory-3lmar06.pdf],但被攻擊系統(tǒng)及其所在運營商(ISP,InternetServiceProvider)無法控制并推動這三個原因的消除,其它ISP沒有足夠的激勵去采取這類措施。DNS-Guard[F.Guo,J.Chen,andT.Chiueh,"SpoofdetectionforpreventingDoSattacksagainstDNSservers,"in尸rac.ZE££/CDCS,2006.]用于檢測DNS請求是否為偽造,但其主要用于DNS服務器之間的驗證,并增加了正常請求的延時;Kambourakis等人[G.Kambourakis,T.Moschos,D.Geneiatakis,andS.Gritzalis,"AfairsolutiontoDNSamplificationattacks,"inProc.InternationalWorkshoponDigitalForensicsandIncidentAnalysis(WDFIA),2007.]提出了一種公平解決DNS放大攻擊的方法,但其文中也指出,存在數(shù)據(jù)庫膨脹而導致難以部署的問題。
發(fā)明內(nèi)容本發(fā)明的目的在于為遭受DNS放大攻擊的系統(tǒng)及其ISP設計一種有效、可部署的檢測和抵御該攻擊的方法。本發(fā)明的特征在于,所述方法是在被保護的網(wǎng)絡所在運營商ISP的邊緣路由器中依次按以下步驟實現(xiàn)的步驟(l).初始化,設定以下參數(shù)檢測周期^,該檢測周期大于請求包與響應包之間的時間間隔RTT,所述^在10s600s內(nèi)取值,優(yōu)先選擇60s,s為秒的單位,檢測靈敏度《,表示攻擊的響應包的個數(shù)超過正常請求包個數(shù)的倍數(shù),在間取值,檢測閾值A,表示能容忍的累積最大攻擊速率,在內(nèi)取值,w",表示連續(xù)出現(xiàn)的前一個檢測周期n-l的攻擊累積檢測值jw報告有DNS放大攻擊,而當前檢測周期"的攻擊當前檢測值^報告無攻擊的次數(shù),稱為攻擊消退參數(shù),該攻擊消退參數(shù)的遞推定義如下&和尸分別表示第"個檢測周期內(nèi)統(tǒng)計的請求包和響應包的數(shù)量,"=0,A么3,…,w,…當前檢測值《>0,表示第w個檢測周期可能發(fā)生攻擊,當前檢測值AS0,表示第個檢測周期正常無攻擊的情況,累積檢測值jv表示第n個檢測周期攻擊的累積檢測值,用于報告系統(tǒng)是否0,其受到DNS放大攻擊,若^>&,表示系統(tǒng)受到DNS放大攻擊,7"由遞推計算得符號"+"表示()內(nèi)的(3^+xJ〉0時,6^+^+=>V;+^,否貝IJ,6V/+^+=0,7V表示報告攻擊結束的參數(shù),為整數(shù),在[1,10]間取值,用攻擊消退參數(shù)表初始時w。=a^=x0+,此時,jco=0,則^+=0,步驟(2).在第《個檢測周期內(nèi)統(tǒng)計DNS請求包數(shù)a和DNS響應包數(shù)計算《《"0/Q^,若x<0,表示情況正常,無攻擊;x"〉0,表示可能存在攻擊;x>A,表示在所述第w個檢測周期存在攻擊;無論處于上述三種情況中的任何一種情況,都轉(zhuǎn)入步驟(3),步驟(3).遞推計算攻擊消退參數(shù)^和攻擊累積檢測值J",公式見步驟(l),步驟(4).若;;"〉f/z,表示系統(tǒng)受到DNS放大攻擊,步驟(5).當檢測到DNS放大攻擊時,首先應過濾掉分片的IP包,方法為提取IP包頭的MF標志和offset域,限制該MF為1,及該MF為0但該offset域不為0的包來過濾分片的IP包,然后通過步驟(6)及步驟(7)來檢測和丟棄攻擊的DNS響應包,步驟(6).提取所述請求包的四元組源IP、目的IP、源端口、DNSID作為元素",插入到由A:個獨立的H3哈希函數(shù)和m比特的存儲位置組成的第一個布到,若前"個檢測周期,所有的當前檢測值&/=/,2,…,w,均大于o,則x-2^',對于一般情況,所述攻擊累積檢測值^的遞推定義如下:隆過濾器BF1或第二個布隆過濾器BF2中,在所述第一個布隆過濾器BF1和第二個布隆過濾器BF2中輪流存儲該元素各存儲1秒時間,A:在[l,20]間取值,所述的插入到所述布隆過濾器的操作為用該元素依次作為所述^個哈希函數(shù)/2;,/72,...,/^的輸入,每個所述哈希函數(shù)返回值在集合^,/,...,m-^中,對于每一個哈希結果/2,.(^,/=7,2,...,A:,把該值對應的存儲位置的值置為1,若已經(jīng)為1,則保持不變,步驟(7).對檢測到的響應包,提取該響應包的四元組目的IP、源IP、目的端口、DNSID作為元素6,檢査是否在所述兩個布隆過濾器中,若都不在,則判斷該響應包為攻擊包,丟棄,所述檢查元素6是否在所述兩個布隆過濾器中的操作為對于每一個哈希結果/2,御,/=7,2,...乂,判斷其對應的存儲位置的值是否為1,如果任何一個結果對應的位置的值為0,則表示元素6肯定不在相應的布隆過濾器中,如果A個哈希結果對應的位置的值都是1,則判斷該元素6在相應的布隆過濾器中。本發(fā)明利用DNS請求與響應一一對應的關系,檢測階段使用總的響應數(shù)量和請求數(shù)量的差異,提出以帶消退參數(shù)的累積和算法檢測差異的變化,當報告DNS放大攻擊后,利用精巧的數(shù)據(jù)結構布隆過濾器和算法來有效識別攻擊的響應包。圖1DNS放大攻擊詳細過程示例。圖2過濾策略框架圖。圖3檢測和抵御方法部署位置。圖4檢測與抵御方案工作流程。圖5識別DNS請求與響應包。圖6DNS請求與響應歸一化差值。圖7各種攻擊速率下檢測結果(a)30pps攻擊速率,(b)150pps攻擊速率,(c)20-200pps隨機攻擊速率。圖8各種攻擊速率下檢測攻擊開始和結束的時間。圖9過濾策略識別攻擊包的誤判率。具體實施例方式本發(fā)明的特征在于利用正常情況下DNS請求包與響應包一一匹配的關系,快速準確報告DNS放大攻擊的開始和結束,當發(fā)生攻擊時,啟用過濾策略準確區(qū)分攻擊響應包和正常響應包,并將攻擊響應包丟棄。選取檢測時間間隔為&>RTT,RTT為請求包與響應包之間的時間間隔),稱為檢測周期,統(tǒng)計每個檢測周期內(nèi)總的出方向的DNS請求包和入方向的DNS響應包數(shù)量,因請求和響應之間有RTT的時間差,其絕對數(shù)量不會完全相等,但統(tǒng)計意義上,正常情況下,請求和響應的數(shù)量非常接近,而在DNS放大攻擊時,會有大量沒有與之對應請求的響應包,并且,DNS請求包均假定是合法的,沒有偽造的問題,因此檢測策略的基本思想是快速檢測出總的響應包與請求包之間的差值的異常變化。設込和戶。("=化Z,...)為第"個檢測周期內(nèi)統(tǒng)計的請求包和響應包的數(shù)量,令An為其歸一化的差值,艮P:△n-(P^-Qn)/Qn因《An,"=0,7,...}與具體的網(wǎng)絡情況無關,僅取決于DNS協(xié)議,可近似為隨機序列,使用帶消退參數(shù)的累積和算法來檢測An的變化。假定正常情況下,E(An)=c,選取c的上界為cc即c《a,定義攻擊當前檢測值^二An-ct,則正常情況下x"均為小于0的值,當某個檢測周期^大于0,認為可能發(fā)生攻擊,當這種情況累積到一定程度,報告攻擊發(fā)生。定義消退參數(shù)w"和攻擊累積檢測值K,當少〉A時報告此時發(fā)生DNS放大攻擊,否則,撤銷己檢測到的攻擊的報告。A為預先定義的閾值。消退參數(shù)^的遞推定義如下w=《"lo,其它即代表連續(xù)出現(xiàn)前一個檢測周期檢測值報告有放大攻擊,而當前檢測周期無攻擊(^<0)的次數(shù),當該次數(shù)超過iV時,認為攻擊已結束,累積檢測值》的遞推定義如下"—JO,w,JV其中,X+的定義為若X〉"X+=X,否則乂+=0。消退參數(shù)與累積檢測值的初始值為w。=0J。=JC。+,JC。=0.檢測策略中,ct用于將正常情況下響應與請求數(shù)量歸一化差值降為O以下,同時也是檢測的靈敏度,即只要攻擊響應個數(shù)超過正常請求個數(shù)的a倍,理論上均可被檢測算法所檢測?!杜c正常情況下DNS響應包與請求包歸一化差值的上界c相關,推薦選擇02;A為檢測閾值,表示容忍的累積最大攻擊速率,可選擇0.510;W為快速報告攻擊結束的參數(shù),為整數(shù),可選擇1~10;檢測周期可選擇10s600s,推薦選取60s。與傳統(tǒng)的用于檢測隨機序列異常變化的無參數(shù)累積和算法[M.BassevilleandI.V.Nikiforov.Detectionofabruptchanges:theoryandapplication.PrenticeHall,1993;B.E.BrodskyandB.S.Darkhovsky.Nonparametricmethodsinchange-pointproblems.Kl麗erAcademicPublishers,1993;H.Wang,D.Zhang,andK.G.Shin,"Change-pointmonitoringforthedetectionofDoSattacks,"ThmsaWo/wo"Depew^/eawdSecw/-eCo附/n^/"g,vol.1,no.4,pp.193-208,December2004.]相比,本發(fā)明提出的帶消退參數(shù)的累積和算法,能快速報告攻擊的結束,而傳統(tǒng)的算法,攻擊結束后,A只能以每個檢測周期減小a的速率直至降到閾值以下,耗時長。檢測出DNS放大攻擊后,利用過濾策略有效區(qū)分攻擊響應與正常響應包。因正常情況下,IP包分片比例很小,最新的研究顯示比例僅占0.06%,且在進一步減小[W.John,S.TafVelin.AnalysisofInternetbackbonetrafficandheaderanomaliesobserved,in/Voc.JCM57GC(9A/Mco"7ferewce/"ferwef附eoswemewf,2007],DNS響應包分片的比例更小,而DNS放大攻擊往往使用長的響應包,會被分片,故在檢測到DNS放大攻擊后,首先限制DNS分片包。限制分片包的規(guī)則為IP包頭中MF域為1或偏移域(offset域)為非0。正常情況下,請求包的四元組源IP、目的IP、源端口和DNSID,即4IP,DIP,SP,ID〉和響應包的四元組目的IP、源IP、目的端口和DNSID,即〈DIP,SIP,DP,ID>完全匹配,過濾策略利用該特性來識別攻擊響應包。為避免保存全狀態(tài)信息,設計利用精巧數(shù)據(jù)結構的算法來進行識別。圖2顯示了過濾策略的框架圖,布隆過濾器(Bloomfilter)[A.BroderandM.Mitzenmacher,"NetworkapplicationsofBloomfilters:asurvey,"MaAemW/c^vol.1,no.4,pp.485-509,2004.]是用于集合查詢的節(jié)省存儲空間的數(shù)據(jù)結構,廣泛用于網(wǎng)絡領域中。設每個請求包的四元組(〈SIP,DIP,SP,ID>)在布隆過濾器中被存儲的時間最短為^(3〉RTT),利用兩個布隆過濾器BF1和BF2交替存儲請求包的信息,每個布隆過濾器存儲信息時間長度為A則任意一個請求被存儲的時間為RW)。每個布隆過濾器均由A:個獨立的哈希函數(shù)和w比特的存儲空間(Bucket)組成。對每一個出方向的DNS請求數(shù)據(jù)包,提取其四元組(〈SIP,DIP,SP,ID〉),記為元素",視目前的時間情況插入到BF1或BF2中,插入的方式是用a作為A:個哈希函數(shù)/^/72,...,/^的輸入,每個哈希函數(shù)返回值在集合W7,...,m-7}中,對于每一個哈希結果/2,f^,將該值對應的存儲比特(每個布隆過濾器共m個存儲比特)的值置為1;對于每個入方向的DNS響應包,提取其四元組(〈DIP,SIP,DP,ID>),記為元素辦,同時作為BF1和BF2的A:個哈希函數(shù)的輸入,查詢元素Z>是否在BF1或在BF2中,査詢的方式是對每一個哈希結果/2,Y^,判斷其對應存儲位置值是否為1,如果任一個結果對應的位置為0,則表示元素6肯定不在該布隆過濾器中,如果A個哈希結果對應的位置都為1,則以一定的錯誤概率判斷6在布隆過濾器中,因為可能某個位置是被與6不匹配的其它元素置為了1,這個錯誤的概率稱為誤判率(falsepositiverate),設為/y。如果判斷出6不在BF1中,并且也不在BF2中,則以極大的概率判斷該響應包為攻擊包;如果6在任意一個布隆過濾器中,則以極大的概率判斷該響應包為正常包。誤判率與布隆過濾器支持的元素個數(shù)"、存儲比特數(shù)m和哈希函數(shù)個數(shù)A:有關,可利用下面公式計算,并可依據(jù)最小誤判率選擇哈希函數(shù)個數(shù)。布隆過濾器存儲元素時間需大于0.5s,推薦選擇ls。本發(fā)明的目的是設計有效的檢測和抵御DNS放大攻擊的方法,推薦部署位置如圖3所示,利用ISP的邊緣路由器或防火墻監(jiān)控出方向的DNS請求包和入方向的DNS響應包,并進行DNS攻擊檢測與抵御。圖4示意了整個解決方案的工作流程示意圖。下面介紹一種具體的實施方式。檢測策略中,選擇/P=M作為檢測周期,即統(tǒng)計每1分鐘DNS請求包和響應包的數(shù)量,識別DNS請求包與響應包的流程如圖5所示,僅識別基于UDP的DNS包。將檢測周期編號為W,7,2,3,…,",...},在第"個檢測周期內(nèi),計算請求包數(shù)量Qn和響應包數(shù)量Pn的歸一化差值令攻擊當前檢測值X=Z\fcc,再通過如下兩個公式遞推的計算消退參數(shù)w和攻擊累積檢測值^的值其中,;c+的定義為若x〉"x+=;c,否則^=0。選取《="2,&=7及^=3進行檢測,初始時,=ft^=x/,xe=0。過濾策略中,因研究顯示超過90。/。的TCP連接的RTT小于500ms,選取布隆過濾器保存請求包的信息的時間為3=7,同時選取^:=么此時附=6",而外=0力567,即布隆過濾器的誤判比例最高為5.61%。、o,欺推薦選擇H3作為布隆過濾器的哈希函數(shù)組,其工作機制如下設哈希函數(shù)輸入為/比特長,輸出值為y比特長,令Q代表所有可能的/Xy'的布爾(取值為0或l)矩陣的集合,對某個,0,設《W是矩陣《的第A:行且長度為y比特的布爾行向量;對于輸入x,設xW為JC的第A:比特,則H3哈希的定義為H3(')=.g(l))①(a;(2)g(2))e...g(i))其中,代表比特間的與(AND)操作,e表示異或(XOR)操作,jc^w向的結果為長度為y比特的布爾行向量,其定義如下/Wi、工(似、更換一個布爾矩陣《就得到一個新的H3函數(shù),并且,每個函數(shù)都僅包含與和異或操作,非常利于硬件實現(xiàn)。如圖2所示,對每一個出方向的DNS請求數(shù)據(jù)包,提取其四元組(〈SIP,DIP,SP,ID>),記為元素",視目前的時間情況插入到BF1或BF2中,插入的方式是用"作為A個哈希函數(shù)/27,/22,...,&的輸入,每個哈希函數(shù)返回值在集合(ftA…,m-^中,對于每一個哈希結果&問,將該值對應的存儲比特(每個布隆過濾器共m個存儲比特)的值置為1;對于每個入方向的DNS響應包,提取其四元組(〈DIP,SIP,DP,ID>),記為元素6,同時作為BF1和BF2的A:個哈希函數(shù)的輸入,查詢元素6是否在BF1或在BF2中,査詢的方式是對每一個哈希結果/z^」,判斷其對應存儲位置值是否為1,如果任一個結果對應的位置為0,將該包識別為攻擊響應包,丟棄。布隆過濾器的存儲需求與ls內(nèi)DNS請求數(shù)量相關,即使DNS放大攻擊時,DNS請求依然合法,CAIDA有對10Gbps的核心鏈路(equinix-chicago)進行實時15監(jiān)控并給出統(tǒng)計《言息的項目(http:〃www.caida.org/data/passive/monitors/equinix-chicago.xml),分析20072009年的統(tǒng)計數(shù)據(jù)表明,所有DNS最大包速率遠低于22.51kpps。選擇ls內(nèi)保存的DNS請求數(shù)量為50k,則過濾策略的存儲代價為75KB,可直接使用FPGA片內(nèi)存儲實現(xiàn)。圖6給出了對網(wǎng)絡中實際截獲流量的DNS請求包與響應包歸一化的差值(http:〃pma.nlanr.net/Special/auck8.html),圖中顯示四個流量其值均小于0。圖7給出了不同攻擊速率下檢測結果,檢測流量為實際流量中混入DNS攻擊響應包,選取攻擊響應的速率為30pps、150pps和20200pps的隨機速率分別生成攻擊流量,每次實驗均將攻擊流量在1200s混入,2400s停止,即攻擊開始前正常流量運行了20分鐘,攻擊持續(xù)20分鐘,攻擊結束后正常流量又運行20分鐘。圖中顯示,檢測算法在這些攻擊情況下均能正常檢測出攻擊的開始和結束。圖8給出了不同攻擊速率下檢測算法報告攻擊開始和結束的時間,圖中顯示,檢測算法能以不超過3個檢測周期報告攻擊的結束。圖9為過濾策略將攻擊包識別為正常包的比例,該比例低于理論上的誤判率5.61%。權利要求1.域名服務器DNS放大攻擊的有效檢測與抵御方法,其特征在于,所述方法是在被保護的網(wǎng)絡所在運營商ISP的邊緣路由器中依次按以下步驟實現(xiàn)的步驟(1).初始化,設定以下參數(shù)檢測周期tp,該檢測周期大于請求包與響應包之間的時間間隔RTT,所述tp在10s~600s內(nèi)取值,優(yōu)先選擇60s,s為秒的單位,檢測靈敏度α,表示攻擊的響應包的個數(shù)超過正常請求包個數(shù)的倍數(shù),在間取值,檢測閾值th,表示能容忍的累積最大攻擊速率,在內(nèi)取值,wn,表示連續(xù)出現(xiàn)的前一個檢測周期n-1的攻擊累積檢測值yn-1報告有DNS放大攻擊,而當前檢測周期n的攻擊當前檢測值xn報告無攻擊的次數(shù),稱為攻擊消退參數(shù),該攻擊消退參數(shù)的遞推定義如下id="icf0001"file="A2009100857080002C1.tif"wi="59"he="11"top="149"left="28"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>其中xn=(Pn-Qn)/Qn-αQn和Pn分別表示第n個檢測周期內(nèi)統(tǒng)計的請求包和響應包的數(shù)量,n=0,1,2,3,...,n,...當前檢測值xn>0,表示第n個檢測周期可能發(fā)生攻擊,當前檢測值xn≤0,表示第n個檢測周期正常無攻擊的情況,累積檢測值yn,表示第n個檢測周期攻擊的累積檢測值,用于報告系統(tǒng)是否受到DNS放大攻擊,若yn>th,表示系統(tǒng)受到DNS放大攻擊,yn由遞推計算得到,若前n個檢測周期,所有的當前檢測值xi,i=1,2,...,n,均大于0,則<mathsid="math0001"num="0001"><math><![CDATA[<mrow><msub><mi>y</mi><mi>n</mi></msub><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo></mrow>]]></math>id="icf0002"file="A2009100857080002C2.tif"wi="16"he="8"top="240"left="172"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>對于一般情況,所述攻擊累積檢測值yn的遞推定義如下<mathsid="math0002"num="0002"><math><![CDATA[<mrow><msub><mi>y</mi><mi>n</mi></msub><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>+</mo></msup><mo>,</mo></mtd><mtd><msub><mi>w</mi><mi>n</mi></msub><mo><</mo><mi>N</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><msub><mi>w</mi><mi>n</mi></msub><mo>≥</mo><mi>N</mi></mtd></mtr></mtable></mfenced></mrow>]]></math></maths>符號“+”表示()內(nèi)的(yn-1+xn)>0時,(yn-1+xn)+=y(tǒng)n-1+xn,否則,(yn-1+xn)+=0,N表示報告攻擊結束的參數(shù),為整數(shù),在[1,10]間取值,用攻擊消退參數(shù)表示,初始時w0=0,y0=x0+,此時,x0=0,則x0+=0,步驟(2).在第n個檢測周期內(nèi)統(tǒng)計DNS請求包數(shù)Qn和DNS響應包數(shù)Pn,計算xn=(Pn-Qn)/Qn-α,若xn<0,表示情況正常,無攻擊;xn>0,表示可能存在攻擊;xn>th,表示在所述第n個檢測周期存在攻擊;無論處于上述三種情況中的任何一種情況,都轉(zhuǎn)入步驟(3),步驟(3).遞推計算攻擊消退參數(shù)wn和攻擊累積檢測值yn,公式見步驟(1),步驟(4).若yn>th,表示系統(tǒng)受到DNS放大攻擊,步驟(5).當檢測到DNS放大攻擊時,首先應過濾掉分片的IP包,方法為提取IP包頭的MF標志和offset域,限制該MF為1,及該MF為0但該offset域不為0的包來過濾分片的IP包,然后通過步驟(6)及步驟(7)來檢測和丟棄攻擊的DNS響應包,步驟(6).提取所述請求包的四元組源IP、目的IP、源端口、DNSID作為元素a,插入到由k個獨立的H3哈希函數(shù)和m比特的存儲位置組成的第一個布隆過濾器BF1或第二個布隆過濾器BF2中,在所述第一個布隆過濾器BF1和第二個布隆過濾器BF2中輪流存儲該元素各存儲1秒時間,k在[1,20]間取值,所述的插入到所述布隆過濾器的操作為用該元素依次作為所述k個哈希函數(shù)h1,h2,...,hk的輸入,每個所述哈希函數(shù)返回值在集合{0,1,...,m-1}中,對于每一個哈希結果hi(a),i=1,2,...,k,把該值對應的存儲位置的值置為1,若已經(jīng)為1,則保持不變,步驟(7).對檢測到的響應包,提取該響應包的四元組目的IP、源IP、目的端口、DNSID作為元素b,檢查是否在所述兩個布隆過濾器中,若都不在,則判斷該響應包為攻擊包,丟棄,所述檢查元素b是否在所述兩個布隆過濾器中的操作為對于每一個哈希結果hi(b),i=1,2,...,k,判斷其對應的存儲位置的值是否為1,如果任何一個結果對應的位置的值為0,則表示元素b肯定不在相應的布隆過濾器中,如果k個哈希結果對應的位置的值都是1,則判斷該元素b在相應的布隆過濾器中。2.根據(jù)權利要求1所述的域名服務器DNS放大攻擊的檢測與抵御方法,其特征在于,所述方法也可在被保護的網(wǎng)絡所在運營商ISP的防火墻中實現(xiàn)。3.根據(jù)權利要求1所述的域名服務器DNS放大攻擊的檢測與抵御方法,其特征在于,所述布隆過濾器的哈希函數(shù)也可選擇MD5或SHA函數(shù)。全文摘要一種用于檢測和抵御DNS放大攻擊的方法,屬于計算機網(wǎng)絡安全領域,其特征在于被保護的服務器所在網(wǎng)絡運營商的邊緣路由器或防火墻中,統(tǒng)計每個檢測周期內(nèi)DNS響應與請求包數(shù)量,通過帶消退參數(shù)的累積和算法檢測響應與請求數(shù)量差值的異常變化,來報告DNS放大攻擊;利用基于布隆過濾器(Bloomfilter)的算法記錄DNS請求包的四元組信息包括源IP、目的IP、源端口、DNSID,并以此來判斷DNS響應包是否為攻擊包;該方法在10Gbps鏈路下僅需要75KB存儲空間,計算代價小,易實現(xiàn)和部署,可用于高速鏈路。文檔編號H04L12/26GK101567815SQ200910085708公開日2009年10月28日申請日期2009年5月27日優(yōu)先權日2009年5月27日發(fā)明者斌劉,孫長華,胡成臣申請人:清華大學