两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于洪泛攻擊的高效、安全追蹤方案的制作方法

文檔序號(hào):7627608閱讀:210來源:國(guó)知局
專利名稱:一種基于洪泛攻擊的高效、安全追蹤方案的制作方法
技術(shù)領(lǐng)域
本發(fā)明是一種針對(duì)洪泛攻擊的攻擊源追蹤方案。主要用于解決發(fā)生洪泛網(wǎng)絡(luò)攻擊的情況下,查找攻擊源頭,從而在攻擊源頭遏制攻擊,同時(shí)保證自身算法的安全性,屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域。
背景技術(shù)
拒絕服務(wù)攻擊(DoS,Denial of Service)和分布式拒絕服務(wù)攻擊(DDoS,Distributed Denial of service)是當(dāng)今網(wǎng)絡(luò)攻擊中最為普遍的網(wǎng)絡(luò)攻擊,而其中,洪泛攻擊是最為有效的攻擊手段,是黑客們的終極工具,受到一些別有用心之徒青睞。為了對(duì)抗攻擊,許多公司投入了大量的成本,也提出了一些行之有效的方案。方案主要集中在兩個(gè)方面一種是從過濾網(wǎng)絡(luò)攻擊流量角度出發(fā),主要方案有Ingress filtering和Routed-Based filtering。然而,正如一些專家們所指出的那樣,DoS/DDoS攻擊是沒有辦法從根本上來防范的,這主要是因?yàn)槿缃竦腎nternet網(wǎng)絡(luò)協(xié)議的根本缺陷所造成的。例如,利用TCP協(xié)議的應(yīng)用層協(xié)議,都需要首先經(jīng)過TCP的三次握手來建立連接,如是,攻擊者就可以利用協(xié)議的這個(gè)缺陷,發(fā)送大量的Syn報(bào)文給服務(wù)器,但又不完成這次連接。這種未完成三次握手過程的連接稱為半連接。結(jié)果在服務(wù)器上大量的資源被攻擊者所發(fā)起的半連接所消耗,使得正常的網(wǎng)絡(luò)用戶的正常請(qǐng)求反而得不到應(yīng)答,從而產(chǎn)生了DoS/DDoS攻擊。還有就是利用IP協(xié)議的缺陷,偽造虛假的IP地址,發(fā)送大量的無(wú)用報(bào)文,消耗服務(wù)器端的網(wǎng)絡(luò)帶寬資源,使得正常網(wǎng)絡(luò)用戶的正常請(qǐng)求被淹沒在這些無(wú)用的報(bào)文之中,造成DoS/DDoS攻擊。不論是資源耗盡型的攻擊還是網(wǎng)絡(luò)帶寬資源耗盡型的攻擊,都是利用了TCP/IP協(xié)議的固有缺陷。要想徹底的防范這些攻擊,就只能更改目前的網(wǎng)絡(luò)協(xié)議,但這暫時(shí)是無(wú)法實(shí)現(xiàn)的。另一種方案是從追蹤攻擊者的位置、身份的角度出發(fā),這也是研究的熱點(diǎn),目的是從攻擊源上阻止攻擊的發(fā)生以及威懾攻擊者,目前也與一些研究成果,但目前的這些方案要么由于性能問題,無(wú)法應(yīng)用,要么自身的算法存在安全隱患,使得應(yīng)用前景不佳。

發(fā)明內(nèi)容
技術(shù)問題本發(fā)明的目的是提供一種基于洪泛攻擊的高效、安全追蹤方案,該方案是一種主動(dòng)防御DoS/DDoS攻擊的方案,通過追蹤到攻擊源,從而能從源頭上對(duì)攻擊進(jìn)行抑制;同時(shí)可以通過追蹤到攻擊源頭,為進(jìn)一步追究攻擊者的責(zé)任提供證據(jù),從而威懾攻擊者。另外,通過對(duì)算法的研究,從算法本身強(qiáng)化了其自身的安全性,增強(qiáng)了算法的抗干擾性。
技術(shù)方案本發(fā)明是一種改進(jìn)性的方案,攻擊源追蹤技術(shù)是在IP協(xié)議的基礎(chǔ)上實(shí)現(xiàn)的,通過一定的算法,在IP數(shù)據(jù)包的頭部添加轉(zhuǎn)發(fā)數(shù)據(jù)包的節(jié)點(diǎn)的信息,來達(dá)到追蹤的目的。
以下為本發(fā)明中對(duì)應(yīng)的中英文術(shù)語(yǔ)

本發(fā)明的基于洪泛攻擊的高效、安全追蹤方案包括標(biāo)記方法和路徑重構(gòu)方法,其中標(biāo)記方法流程如下步驟1.接收到數(shù)據(jù)包的節(jié)點(diǎn),首先檢查已標(biāo)記標(biāo)志“Mflag”域的值,當(dāng)已標(biāo)記標(biāo)志為0,表示該節(jié)點(diǎn)是第一個(gè)接收到該數(shù)據(jù)包的節(jié)點(diǎn),則標(biāo)記該數(shù)據(jù)包;步驟2.根據(jù)壽命“TTL”值確定標(biāo)記概率;步驟3.當(dāng)已標(biāo)記標(biāo)志“Mflag”為1時(shí),先取一隨機(jī)數(shù)p,并將其與該節(jié)點(diǎn)的標(biāo)記概率比較,如果大于,則不標(biāo)記,如果小于,則標(biāo)記以該節(jié)點(diǎn)為邊的起點(diǎn)的信息,并置“距離”域的值為0;步驟4.如果依概率,不標(biāo)記以該節(jié)點(diǎn)為起點(diǎn)的邊的信息,則檢查“距離”域,如果“距離”域的值等于0,則標(biāo)記以該節(jié)點(diǎn)為邊的終點(diǎn)的信息,并將“距離”域的值加1;步驟5.如果依概率不標(biāo)記以該節(jié)點(diǎn)為起點(diǎn)的邊的信息,并且,“距離”域的值不等于0,則只是簡(jiǎn)單的將“距離”域的值加1;其中,路徑重構(gòu)方法流程如下步驟6.將捕獲的攻擊數(shù)據(jù)包,依標(biāo)記的“距離”域的值d,加入集合Ψd中,如果是重復(fù)標(biāo)記的完全相同的數(shù)據(jù)包,則直接拋棄;步驟7.取距離為0的攻擊數(shù)據(jù)包集合Ψ0中的數(shù)據(jù)包,查找其中具有同樣“邊”和“邊的終節(jié)點(diǎn)”域值的數(shù)據(jù)包,根據(jù)分段標(biāo)志和“邊起始節(jié)點(diǎn)”域的值,得到所有距離被攻擊主機(jī)距離為0的節(jié)點(diǎn)即與被攻擊主機(jī)直接相連的路由節(jié)點(diǎn)的IP地址集合S0;步驟8.在IP地址集合S0中依次選取距離被攻擊主機(jī)的距離為0的節(jié)點(diǎn)的地址IP0,并根據(jù)該節(jié)點(diǎn)的哈希函數(shù)(hash)計(jì)算hash(IP0),在與被攻擊主機(jī)距離為1的節(jié)點(diǎn)的IP地址集合S1中查找“邊的終節(jié)點(diǎn)”域值與其相同的所有數(shù)據(jù)包,同樣根據(jù)其“邊起始節(jié)點(diǎn)”域的值,得出距離被攻擊主機(jī)距離為1的節(jié)點(diǎn)的地址IP1,這樣,IP1和IP0就構(gòu)成攻擊路徑上一條以IP1為起點(diǎn),IP0為終點(diǎn)的邊,依次類推,得出所有的邊,也就求出了追蹤拓?fù)錁洹?br> 在步驟2中的根據(jù)壽命“TTL”值,標(biāo)記概率的確定方法流程如下2.1).第一個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)包的路由節(jié)點(diǎn),將數(shù)據(jù)包的壽命值進(jìn)行統(tǒng)一;2.2).第i個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)在決定要標(biāo)記其信息時(shí),利用壽命值來確定其在攻擊路徑中的所在位置;2.3).根據(jù)得到的所在位置的信息,確定標(biāo)記概率。
在步驟3、步驟4、步驟5中,都需要對(duì)IP報(bào)文頭的格式進(jìn)行重載,具體如下3.1).“邊起始節(jié)點(diǎn)”域占用了整個(gè)“標(biāo)識(shí)”域,用于存放標(biāo)記的邊的起點(diǎn)的信息,3.2).而“邊的終節(jié)點(diǎn)”域也占用了整個(gè)“服務(wù)類型”域的空間,用于存放邊的終點(diǎn)的信息,
3.3).“距離”域占用“片偏移”域的高5位的報(bào)文頭空間,可以表示最大32跳的距離,3.4).“邊”域占用“片偏移”域的低8位,用于存放整個(gè)邊的信息,3.5).分段標(biāo)志、已標(biāo)記標(biāo)志各占用“標(biāo)志”域中的1位,用來表示該數(shù)據(jù)包是否已經(jīng)被標(biāo)記,以及標(biāo)記在“邊起始節(jié)點(diǎn)”域中的是IP地址的高16位還是低16位。
一、體系結(jié)構(gòu)整個(gè)技術(shù)方案分為兩個(gè)部分,一是在路由器上運(yùn)行的標(biāo)記算法,一是在被攻擊主機(jī)上運(yùn)行的攻擊路徑的重構(gòu)算法。
在路由器上運(yùn)行的標(biāo)記算法主要考慮的問題有1、標(biāo)記概率的選??;這是確定在被攻擊主機(jī)上運(yùn)行的路徑重構(gòu)算法的關(guān)鍵所在。只有選擇了最合適的標(biāo)記概率,才能得到最好的路徑重構(gòu)性能。2、安全性能;有一個(gè)需要認(rèn)真考慮的問題是,當(dāng)攻擊路徑上一個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)包的節(jié)點(diǎn)被攻擊者所控制,從而在包中標(biāo)記偽造的節(jié)點(diǎn)信息時(shí),標(biāo)記方案能如何反應(yīng),來對(duì)抗這種干擾呢?。3、標(biāo)記空間的確定;這是因?yàn)樵贗P報(bào)文頭中,可供使用的空間極其有限,如何選取標(biāo)記空間,也就是如何對(duì)IP報(bào)文頭進(jìn)行重載,是一個(gè)具有挑戰(zhàn)性的問題。
在被攻擊主機(jī)上運(yùn)行的路徑重構(gòu)算法,是得到攻擊路徑的最終結(jié)果的最后一步。如何通過重構(gòu)算法,將標(biāo)記在IP頭中的路徑信息提取出來,并能快速、準(zhǔn)確地進(jìn)行路徑重構(gòu),同樣是非常重要的。
二、方法流程在整個(gè)系統(tǒng)中,每個(gè)標(biāo)記節(jié)點(diǎn)獨(dú)立地運(yùn)行自己的標(biāo)記算法,將一些路徑重構(gòu)所需的信息標(biāo)記在IP報(bào)文頭的相應(yīng)域中。
在如圖1所示的一條攻擊路徑中,Attacker表示攻擊主機(jī),Victim表示被攻擊主機(jī),A、B、C是在攻擊路徑上的三個(gè)節(jié)點(diǎn),連接A、B之間的有向線代表由A節(jié)點(diǎn)為起始點(diǎn)、B節(jié)點(diǎn)為終點(diǎn)的一條邊,用EAB表示,同樣,EBC代表節(jié)點(diǎn)B、C之間的一條邊。標(biāo)記過程中要用到以下幾個(gè)域”邊起始節(jié)點(diǎn)”域,用來存放邊的起始點(diǎn)的節(jié)點(diǎn)信息;”邊”域,用于存放邊的起始節(jié)點(diǎn)標(biāo)記的整條邊的信息;”邊起始節(jié)點(diǎn)”域,用于存放邊的終節(jié)點(diǎn)標(biāo)記的整條邊的信息;”距離”域,用來存放該邊距離被攻擊主機(jī)的距離;Fflag(Fragment flag)域,用來表示寫入IP報(bào)文頭的”邊起始節(jié)點(diǎn)”值是IP地址的低16位或是高16位。Mflag(Marked flag)域,用來表示該數(shù)據(jù)包是否已經(jīng)被標(biāo)記。以邊EBC為例,以A、B、C表示A、B、C三個(gè)節(jié)點(diǎn)的IP地址,當(dāng)一個(gè)數(shù)據(jù)包經(jīng)過EBC時(shí),具體的標(biāo)記過程如下1、任何接收到數(shù)據(jù)包的節(jié)點(diǎn),首先都會(huì)檢查Mflag域的值。當(dāng)Mflag域的值為0時(shí),表示該數(shù)據(jù)包還未被任何節(jié)點(diǎn)標(biāo)記。這時(shí),接收到該數(shù)據(jù)包的節(jié)點(diǎn)必須標(biāo)記該數(shù)據(jù)包,同時(shí)置Mflag域的值為1。當(dāng)檢查到Mflag域的值為1時(shí),表明已經(jīng)有節(jié)點(diǎn)標(biāo)記了該數(shù)據(jù)包,則標(biāo)記過程進(jìn)入第二步。
2、B節(jié)點(diǎn)以概率p決定是否要把以B為起始點(diǎn)的邊的信息標(biāo)記入IP報(bào)文頭。如果不準(zhǔn)備標(biāo)記該邊,則檢查”距離”域的值,如果”距離”≠0,則只是簡(jiǎn)單的對(duì)”距離”域的值作加1運(yùn)算。如果”距離”=0,則計(jì)算hashB(B)并將其標(biāo)記在”邊起始節(jié)點(diǎn)”域。
3、B節(jié)點(diǎn)決定標(biāo)記該邊時(shí),首先將自身IP地址的分成16位的兩段,隨機(jī)選擇一段標(biāo)記在IP報(bào)文頭中的”邊起始節(jié)點(diǎn)”域中。并設(shè)置Fflag標(biāo)志,1表示是IP地址的高16位,0表示是IP地址的低16位。
4、分別計(jì)算hashB(B)、hashB(C),再計(jì)算hashB(B)hashB(C),(表示異或運(yùn)算)異或運(yùn)算的結(jié)果標(biāo)記在”邊”域中,并設(shè)置”距離”域的值為0。
5、C節(jié)點(diǎn)接收到數(shù)據(jù)包,首先依概率p決定是否要標(biāo)記以它為起始點(diǎn)的邊。如果要標(biāo)記,則按上述的3、4操作;如果不標(biāo)記,則B節(jié)點(diǎn)檢查”距離”域的值,如果”距離”的值等于0,則將hashC(C)標(biāo)記在”邊起始節(jié)點(diǎn)”域中,并運(yùn)算”距離”=”距離”+1。
在被攻擊主機(jī)上,以Ψd表示標(biāo)記”距離”域?yàn)閐邊的集合。接收到數(shù)據(jù)包以后,首先將這些數(shù)據(jù)包中的邊的信息按”距離”域的值跟Ψd中的元素比較,如果已經(jīng)存在相同標(biāo)記的邊,則該邊不用加入到Ψd中。
以G表示我們要構(gòu)建的攻擊路徑的拓?fù)錁洌还糁鳈C(jī)V為拓?fù)錁涞母?jié)點(diǎn),以Sd表示G中距離V的距離為d的節(jié)點(diǎn),如圖3所示。
1、首先,將Sd都初始化為0。取出Ψd(d≥1)中的一個(gè)數(shù)據(jù)包,查找具有同樣”邊”和”邊起始節(jié)點(diǎn)”域值的數(shù)據(jù)包,根據(jù)Fflag域和”邊起始節(jié)點(diǎn)”域的值,得到標(biāo)記節(jié)點(diǎn)的IP地址,假設(shè)為X節(jié)點(diǎn)。再根據(jù)”邊起始節(jié)點(diǎn)”域的值,在Ψd-1中查找與”邊起始節(jié)點(diǎn)”域值相符的節(jié)點(diǎn),假設(shè)為Y節(jié)點(diǎn)。對(duì)Ψ0中的邊,則不需要檢查”邊起始節(jié)點(diǎn)”域中的值,直接取被攻擊主機(jī)作為Y節(jié)點(diǎn)。
2、然后,驗(yàn)證這條邊的標(biāo)記信息是否真實(shí)。使用X節(jié)點(diǎn)的hash函數(shù),計(jì)算hashX(X)、hashX(Y),再做異或運(yùn)算e=hashX(X)hashX(Y),如果e等于”邊”域的值,則可以確定,這條邊的標(biāo)記信息是正確的,將X節(jié)點(diǎn)加入Sd,Y加入Sd-1,并設(shè)置一個(gè)X的下一跳為Y的指針,表示這條邊X----Y。同時(shí),還可以確定邊Ψd中”邊起始節(jié)點(diǎn)”域下一跳節(jié)點(diǎn)Y的標(biāo)記hashY(Y)是真實(shí)的。
3、依次類推,處理完所有的Ψd(0≤d≤max),我們可以構(gòu)造出一個(gè)完整的攻擊路徑拓?fù)錁銰。
4、當(dāng)遇到在攻擊路徑上的一個(gè)節(jié)點(diǎn)被攻擊者所控制的情況時(shí),在數(shù)據(jù)包中的標(biāo)記信息會(huì)是偽造的邊信息。如圖1中所示,當(dāng)B節(jié)點(diǎn)被攻擊者所控制時(shí),對(duì)邊EBC,根據(jù)偽造的數(shù)據(jù)包中的”邊起始節(jié)點(diǎn)”域得到的節(jié)點(diǎn),通過驗(yàn)證是錯(cuò)誤的,因?yàn)?,我們用偽造信息得到的?jié)點(diǎn)的hashB’函數(shù)并不是原來標(biāo)記時(shí)所使用的hashB函數(shù)。做hashB’(A)hashB’(B)運(yùn)算,與標(biāo)記時(shí)采用的hashB函數(shù)的運(yùn)算結(jié)果hashB(A)hashB(B)是不相等的。同時(shí),對(duì)邊EAB,也存在著邊的驗(yàn)證錯(cuò)誤問題。此時(shí),使用如下的步驟來確定被攻擊者控制的節(jié)點(diǎn)A、如果有一條邊的信息驗(yàn)證是被偽造的,則直接通過數(shù)據(jù)包中”邊起始節(jié)點(diǎn)”域的信息得到一個(gè)節(jié)點(diǎn)的IP,假設(shè)為Y,使用Y的hash函數(shù)計(jì)算hashY(Y),根據(jù)邊中的”距離”值,假設(shè)為d,在Ψd+1中查找”邊起始節(jié)點(diǎn)”域的值為hashY(Y)的邊。如果能夠查找到有”邊起始節(jié)點(diǎn)”域的值等于hashY(Y)的邊,那么就可以得出Y是真實(shí)標(biāo)記的節(jié)點(diǎn)IP,反之,也可以得出Y是偽造的節(jié)點(diǎn)的IP。
B、如果Y是正確標(biāo)記的,假設(shè)其下一跳真實(shí)的IP地址為X,則此時(shí),使用”邊”域的值,可以得出hashY(X),但要注意,由于hash函數(shù)的單向性,在被攻擊主機(jī)上重構(gòu)攻擊路徑時(shí),并不能由hashY(X)直接得到X。但在Y節(jié)點(diǎn)上,根據(jù)hashY(X)通過測(cè)試還是能比較方便地得到X的。
C、如果得出的結(jié)論為Y是偽造的IP地址,此時(shí),利用這條邊信息中的“邊起始節(jié)點(diǎn)”域的值,在Ψd-1中查找能與這條偽造邊信息中“邊起始節(jié)點(diǎn)”域值相等的節(jié)點(diǎn)。如果能夠找到一個(gè)節(jié)點(diǎn)M,hashM(M)等于這條偽造邊的“邊起始節(jié)點(diǎn)”域的值,則可以確定這條偽造邊的終點(diǎn)是M。雖然在被攻擊主機(jī)上不能直接得到偽造節(jié)點(diǎn)的具體的地址,但在節(jié)點(diǎn)M上,還是可以檢測(cè)出是哪一個(gè)節(jié)點(diǎn)被攻擊者控制來偽造邊信息的。
有益效果本發(fā)明方法提出了一種新的IP追蹤方案,主要用于在發(fā)生網(wǎng)絡(luò)攻擊事件時(shí),能快速高效追蹤到攻擊源,從而從源頭上抑制攻擊的繼續(xù),以及為追究攻擊者的責(zé)任提供證據(jù)等。使用該方案,有如下的一些優(yōu)點(diǎn)1、極佳的收斂性能以往的一些方案,每個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)包的路由器往往采用相同的概率來標(biāo)記數(shù)據(jù)包。在這樣一種情況下,往往得不到所需的收斂性能,使得重構(gòu)攻擊路徑需要接收大量的數(shù)據(jù)包,不僅浪費(fèi)了大量寶貴的時(shí)間,也增加了重構(gòu)路徑的難度。在本發(fā)明方法中,采用了一種新的標(biāo)記概率選擇方法,使得每個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)包的路由器以不同的概率來標(biāo)記它所轉(zhuǎn)發(fā)的數(shù)據(jù)包,從而得到理想的收斂性。
2、降低了攻擊源的不確定性同樣,由于標(biāo)記概率的正確選取,本發(fā)明方法降低了攻擊源的不確定性。使得攻擊源易于確定。
3、抗干擾性能提高本發(fā)明中一個(gè)非常明顯的優(yōu)點(diǎn)就是抗攻擊者偽造數(shù)據(jù)包及控制轉(zhuǎn)發(fā)路由器偽造標(biāo)記信息的能力顯著提高。這在以往的方案中是沒有過多考慮的。


圖1是攻擊路徑的示意圖。其中有Attacker攻擊節(jié)點(diǎn);A第一轉(zhuǎn)發(fā)節(jié)點(diǎn);B第二轉(zhuǎn)發(fā)節(jié)點(diǎn);C第三轉(zhuǎn)發(fā)節(jié)點(diǎn);Victim被攻擊主機(jī);F(Fflag)高16位或低16位地址標(biāo)志;M(Mflag)已標(biāo)記標(biāo)志;D可分段標(biāo)志。
圖2是IP報(bào)文頭重載格式示意圖。
圖3是追蹤拓?fù)錁涞氖疽鈭D。其中有A1第一攻擊節(jié)點(diǎn);A2第二攻擊節(jié)點(diǎn);A3第三攻擊節(jié)點(diǎn);第一路由節(jié)點(diǎn)至第八路由節(jié)點(diǎn)R1-----R8。
圖4是路由節(jié)點(diǎn)上的標(biāo)記算法流程圖。
圖5是被攻擊主機(jī)上的路徑重構(gòu)算法流程圖。
具體實(shí)施例方式
一、標(biāo)記概率的選取假設(shè)一條攻擊路徑的長(zhǎng)度為d,該路徑上的所有節(jié)點(diǎn)都以概率p對(duì)數(shù)據(jù)包進(jìn)行標(biāo)記,則要重構(gòu)該路徑所需的數(shù)據(jù)包的個(gè)數(shù)N<1ndp(1-p)d-1.]]>從式中可以看出,在重構(gòu)一個(gè)攻擊路徑時(shí),所需的數(shù)據(jù)包的數(shù)量是非常多的。例如,當(dāng)攻擊路徑的長(zhǎng)度為20,我們選取標(biāo)記概率為p=0.2,此時(shí)重構(gòu)這條路徑所需要包數(shù)量的上界超過了1000個(gè)。如果需要將標(biāo)記信息分段標(biāo)記在不同的包中,則所需數(shù)據(jù)包還會(huì)成倍增加。
定義λ為最終標(biāo)記概率,節(jié)點(diǎn)i表示從攻擊者開始的第i個(gè)轉(zhuǎn)發(fā)攻擊數(shù)據(jù)包的路由器節(jié)點(diǎn)。則節(jié)點(diǎn)i標(biāo)記數(shù)據(jù)包到達(dá)被攻擊主機(jī)的概率為λi=p(1-p)d-i。從這個(gè)式子中可以看出,每個(gè)節(jié)點(diǎn)最終標(biāo)記數(shù)據(jù)包的概率是不等的。從優(yōu)化的角度來考慮,要使所需數(shù)據(jù)包的數(shù)量最少,則每個(gè)節(jié)點(diǎn)最終標(biāo)記概率必須相等,并且有Σi=1dλi=1.]]>也就是說對(duì)一個(gè)攻擊路徑上的d個(gè)節(jié)點(diǎn),其每個(gè)節(jié)點(diǎn)的最終標(biāo)記概率為1/d,此時(shí)所需的數(shù)據(jù)包的數(shù)量會(huì)達(dá)到最少。
如何能讓各個(gè)節(jié)點(diǎn)上的最終標(biāo)記概率為1/d呢?可以這樣來選取標(biāo)記概率節(jié)點(diǎn)i以1/i的概率來決定是否標(biāo)記數(shù)據(jù)包,讓我們來看看該節(jié)點(diǎn)的最終標(biāo)記概率λi是多少λi=piΠj=i+1d(1-pj)]]>=1i·(1-1i+1)·(1-1i+2)···(1-1d)]]>=1i·ii+1·i+1i+2···d-1d=1/d]]>所以,節(jié)點(diǎn)i選擇可以選擇以1/i的概率來標(biāo)記數(shù)據(jù)包,而最終標(biāo)記概率總是1/d。然而,一個(gè)節(jié)點(diǎn)并不能知道它在攻擊路徑中的位置的。也就是說它還不能確定i的值。但我們可以利用IP數(shù)據(jù)包的TTL值。一個(gè)IP數(shù)據(jù)包,它的TTL可能值為32、64、128、255,這取決于協(xié)議系統(tǒng)的實(shí)現(xiàn)。而在網(wǎng)絡(luò)上一個(gè)數(shù)據(jù)包所經(jīng)過的跳數(shù)最大不會(huì)超過32。因此,一個(gè)節(jié)點(diǎn)可以通過TTL值來確定這個(gè)數(shù)據(jù)包是經(jīng)過多少個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)后到達(dá)該節(jié)點(diǎn)的。也就是能確定i。例如,一個(gè)節(jié)點(diǎn)收到數(shù)據(jù)包以后,檢查TTL值,發(fā)現(xiàn)其值為51,那么它的初值(極大可能)是64,那么這個(gè)數(shù)據(jù)包已經(jīng)經(jīng)過了13個(gè)節(jié)點(diǎn)的轉(zhuǎn)發(fā),那么該節(jié)點(diǎn)是數(shù)據(jù)包經(jīng)過的路徑上的第14個(gè)節(jié)點(diǎn),于是,它就可以依概率1/14來決定是否需要標(biāo)記該數(shù)據(jù)包。
二、IP報(bào)文頭的重載格式重載IP報(bào)文頭如圖2所示?!熬嚯x(distance)”域占用5位的報(bào)文頭空間,可以表示最大32跳的IP地址,這在實(shí)際的Internet上已經(jīng)足夠?!斑?edge)”域占用8位,F(xiàn)、M標(biāo)志個(gè)占用1位?!斑吰鹗脊?jié)點(diǎn)域(start node)”占用了整個(gè)“標(biāo)識(shí)”域,而“邊的終節(jié)點(diǎn)(end node)”域也占用了整個(gè)ToS域的空間。
三、轉(zhuǎn)發(fā)路由節(jié)點(diǎn)上運(yùn)行的標(biāo)記算法在轉(zhuǎn)發(fā)攻擊數(shù)據(jù)包的路由節(jié)點(diǎn)上,采用的標(biāo)記方法如下偽代碼所示<pre listing-type="program-listing">for each packet P if(P->Mflag=0) /*包未被標(biāo)記過,必須標(biāo)記*/ packet_marking(P) else{ if(P->ttl<=32‖P->ttl>64) let P->ttl=64 /*將ttl值確定在32~64的范圍內(nèi)*/ let r be a random number from
if(r&lt;=1/(65-P->ttl)) packet_marking(P) else if(P->distance==0) P->EndNode←{hashRi(Ri)} /*標(biāo)記驗(yàn)證信息*/ P->distance←P->distance+1else P->distance←P->distance+1 /*不需要標(biāo)記,只將distance+1*/ packet_marking(P){ P->Mflag=1/*設(shè)置數(shù)據(jù)包已經(jīng)標(biāo)記的標(biāo)志*/ let x be a random number from
if(x<=0.5){ P->StartNode←low 16 bytes IP address of Ri P->Fflag=0/*指示StartNode中是低16位IP地址*/ }else{ P->StartNode←high 16 bytes IP address of Ri P->Flag=1/*指示在StartNode域中是高16位IP地址*/ } P->Edge←{hashRi(Ri)hashRi(Ri+1}/*Ri+1是下一跳的IP*/ P->distance=0</pre>四、被攻擊主機(jī)上運(yùn)行的路徑重構(gòu)算法在被攻擊主機(jī)上進(jìn)行路徑重構(gòu)時(shí),首先取出已標(biāo)記”距離”域值為0的攻擊數(shù)據(jù)包,比較”邊”、”邊起始節(jié)點(diǎn)”域的值,如果有相符的數(shù)據(jù)包,則再根據(jù)Fflag域的值,提取出”邊起始節(jié)點(diǎn)”域的值,獲得直接跟V相鄰的轉(zhuǎn)發(fā)節(jié)點(diǎn)IP地址。根據(jù)R0i(因?yàn)闀?huì)有多條路徑存在,Rdi中的d表示是到V的距離,i表示是到V的距離為d的節(jié)點(diǎn)中的第i個(gè))的IP地址,及其hash函數(shù),計(jì)算hashR0i(ROi)。在接收到的數(shù)據(jù)包中檢查”邊起始節(jié)點(diǎn)”域看是否有跟hashR0i(R0i)相等的數(shù)據(jù)包,如有,則其”邊起始節(jié)點(diǎn)”域是在攻擊路徑上R0i的前一跳所標(biāo)記的。這樣就可以逐步回溯直至攻擊源。具體算法如下偽代碼所示。在介紹具體算法前,先定義兩個(gè)結(jié)構(gòu)。
Sp為己標(biāo)記的攻擊數(shù)據(jù)包集合;稱ΨRi={Rj|Rj中有攻擊數(shù)據(jù)包發(fā)往Ri}為Ri的子孫,Ri為ΨRi的父節(jié)點(diǎn)。例如在圖3中,ΨR5={R1,R2}。
let Sdbe emptyif(P&NotElement;Sd)]]>insert P to Sdfor first P to last P in Sdget Ri through P.StartNode and get Rj through P.EndNodeinsert Ri to ΨRioutput Ψ具體方案包括標(biāo)記方法和路徑重構(gòu)方法,其中標(biāo)記方法流程如下步驟1.接收到數(shù)據(jù)包的節(jié)點(diǎn),首先檢查已標(biāo)記標(biāo)志“Mflag”域的值,當(dāng)已標(biāo)記標(biāo)志為Q,表示該節(jié)點(diǎn)是第一個(gè)接收到該數(shù)據(jù)包的節(jié)點(diǎn),則標(biāo)記該數(shù)據(jù)包;步驟2.根據(jù)壽命“TTL”值確定標(biāo)記概率;步驟3.當(dāng)已標(biāo)記標(biāo)志“Mflag”為1時(shí),先取一隨機(jī)數(shù)p,并將其與該節(jié)點(diǎn)的標(biāo)記概率比較,如果大于,則不標(biāo)記,如果小于,則標(biāo)記以該節(jié)點(diǎn)為邊的起點(diǎn)的信息,并置“距離”域的值為0;步驟4.如果依概率,不標(biāo)記以該節(jié)點(diǎn)為起點(diǎn)的邊的信息,則檢查“距離”域,如果“距離”域的值等于0,則標(biāo)記以該節(jié)點(diǎn)為邊的終點(diǎn)的信息,并將“距離”域的值加1;步驟5.如果依概率不標(biāo)記以該節(jié)點(diǎn)為起點(diǎn)的邊的信息,并且,“距離”域的值不等于0,則只是簡(jiǎn)單的將“距離”域的值加1;其中,路徑重構(gòu)方法流程如下
步驟6.將捕獲的攻擊數(shù)據(jù)包,依標(biāo)記的“距離”域的值d,加入集合Ψd中,如果是重復(fù)標(biāo)記的完全相同的數(shù)據(jù)包,則直接拋棄;步驟7.取距離為0的攻擊數(shù)據(jù)包集合Ψ0中的數(shù)據(jù)包,查找其中具有同樣“邊”和“邊的終節(jié)點(diǎn)”域值的數(shù)據(jù)包,根據(jù)分段標(biāo)志和“邊起始節(jié)點(diǎn)”域的值,得到所有距離被攻擊主機(jī)距離為0的節(jié)點(diǎn)即與被攻擊主機(jī)直接相連的路由節(jié)點(diǎn)的IP地址集合S0;步驟8.在IP地址集合S0中依次選取距離被攻擊主機(jī)的距離為0的節(jié)點(diǎn)的地址IP0,并根據(jù)該節(jié)點(diǎn)的哈希函數(shù)(hash)計(jì)算hash(IP0),在與被攻擊主機(jī)距離為1的節(jié)點(diǎn)的IP地址集合S1中查找“邊的終節(jié)點(diǎn)”域值與其相同的所有數(shù)據(jù)包,同樣根據(jù)其“邊起始節(jié)點(diǎn)”域的值,得出距離被攻擊主機(jī)距離為1的節(jié)點(diǎn)的地址IP1,這樣,IP1和IP0就構(gòu)成攻擊路徑上一條以IP1為起點(diǎn),IP0為終點(diǎn)的邊,依次類推,得出所有的邊,也就求出了追蹤拓?fù)錁洹?br> 在步驟2中的根據(jù)壽命“TTL”值,標(biāo)記概率的確定方法流程如下2.1).第一個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)包的路由節(jié)點(diǎn),將數(shù)據(jù)包的壽命值進(jìn)行統(tǒng)一;2.2).第i個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)在決定要標(biāo)記其信息時(shí),利用壽命值來確定其在攻擊路徑中的所在位置;2.3).根據(jù)得到的所在位置的信息,確定標(biāo)記概率。
在步驟3、步驟4、步驟5中,都需要對(duì)IP報(bào)文頭的格式進(jìn)行重載,具體如下3.1).“邊起始節(jié)點(diǎn)”域占用了整個(gè)“標(biāo)識(shí)”域,用于存放標(biāo)記的邊的起點(diǎn)的信息,3.2).而“邊的終節(jié)點(diǎn)”域也占用了整個(gè)“服務(wù)類型”域的空間,用于存放邊的終點(diǎn)的信息,3.3).“距離”域占用“片偏移”域的高5位的報(bào)文頭空間,可以表示最大32跳的距離,3.4).“邊”域占用“片偏移”域的低8位,用于存放整個(gè)邊的信息,3.5).分段標(biāo)志、已標(biāo)記標(biāo)志各占用“標(biāo)志”域中的1位,用來表示該數(shù)據(jù)包是否已經(jīng)被標(biāo)記,以及標(biāo)記在“邊起始節(jié)點(diǎn)”域中的是IP地址的高16位還是低16位。
權(quán)利要求
1.一種基于洪泛攻擊的高效、安全追蹤方案,其特征在于該方案包括標(biāo)記方法和路徑重構(gòu)方法,其中標(biāo)記方法流程如下步驟1.接收到數(shù)據(jù)包的節(jié)點(diǎn),首先檢查已標(biāo)記標(biāo)志“Mflag”域的值,當(dāng)已標(biāo)記標(biāo)志為0,表示該節(jié)點(diǎn)是第一個(gè)接收到該數(shù)據(jù)包的節(jié)點(diǎn),則標(biāo)記該數(shù)據(jù)包;步驟2.根據(jù)壽命“TTL”值確定標(biāo)記概率;步驟3.當(dāng)已標(biāo)記標(biāo)志“Mflag”為1時(shí),先取一隨機(jī)數(shù)p,并將其與該節(jié)點(diǎn)的標(biāo)記概率比較,如果大于,則不標(biāo)記,如果小于,則標(biāo)記以該節(jié)點(diǎn)為邊的起點(diǎn)的信息,并置“距離”域的值為0;步驟4.如果依概率,不標(biāo)記以該節(jié)點(diǎn)為起點(diǎn)的邊的信息,則檢查“距離”域,如果“距離”域的值等于0,則標(biāo)記以該節(jié)點(diǎn)為邊的終點(diǎn)的信息,并將“距離”域的值加1;步驟5.如果依概率不標(biāo)記以該節(jié)點(diǎn)為起點(diǎn)的邊的信息,并且,“距離”域的值不等于0,則只是簡(jiǎn)單的將“距離”域的值加1;路徑重構(gòu)方法流程如下步驟6.將捕獲的攻擊數(shù)據(jù)包,依標(biāo)記的“距離”域的值d,加入集合ψd中,如果是重復(fù)標(biāo)記的完全相同的數(shù)據(jù)包,則直接拋棄;步驟7.取距離為0的攻擊數(shù)據(jù)包集合ψ0中的數(shù)據(jù)包,查找其中具有同樣“邊”和“邊的終節(jié)點(diǎn)”域值的數(shù)據(jù)包,根據(jù)分段標(biāo)志和“邊起始節(jié)點(diǎn)”域的值,得到所有距離被攻擊主機(jī)距離為0的節(jié)點(diǎn)即與被攻擊主機(jī)直接相連的路由節(jié)點(diǎn)的IP地址集合S0;步驟8.在IP地址集合S0中依次選取距離被攻擊主機(jī)的距離為0的節(jié)點(diǎn)的地址IP0,并根據(jù)該節(jié)點(diǎn)的哈希函數(shù)“hash”計(jì)算hash“IP0”,在與被攻擊主機(jī)距離為1的節(jié)點(diǎn)的IP地址集合S1中查找“邊的終節(jié)點(diǎn)”域值與其相同的所有數(shù)據(jù)包,同樣根據(jù)其“邊起始節(jié)點(diǎn)”域的值,得出距離被攻擊主機(jī)距離為1的節(jié)點(diǎn)的地址IP1,這樣,IP1和IP0就構(gòu)成攻擊路徑上一條以IP1為起點(diǎn),IP0為終點(diǎn)的邊,依次類推,得出所有的邊,也就求出了追蹤拓?fù)錁洹?br> 2.根據(jù)權(quán)利要求1所述的一種基于洪泛攻擊的高效、安全追蹤方案,其特征在于在步驟2中的根據(jù)壽命“TTL”值,標(biāo)記概率的確定方法流程如下2.1).第一個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)包的路由節(jié)點(diǎn),將數(shù)據(jù)包的壽命值進(jìn)行統(tǒng)一;2.2).第i個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)在決定要標(biāo)記其信息時(shí),利用壽命值來確定其在攻擊路徑中的所在位置;2.3).根據(jù)得到的所在位置的信息,確定標(biāo)記概率。
3.根據(jù)權(quán)利要求1所述的一種基于洪泛攻擊的高效、安全追蹤方案,其特征在于在步驟3、步驟4、步驟5中,都需要對(duì)IP報(bào)文頭的格式進(jìn)行重載,具體如下3.1).“邊起始節(jié)點(diǎn)”域占用了整個(gè)“標(biāo)識(shí)”域,用于存放標(biāo)記的邊的起點(diǎn)的信息,3.2).而“邊的終節(jié)點(diǎn)”域也占用了整個(gè)“服務(wù)類型”域的空間,用于存放邊的終點(diǎn)的信息,3.3).“距離”域占用“片偏移”域的高5位的報(bào)文頭空間,可以表示最大32跳的距離,3.4).“邊”域占用“片偏移”域的低8位,用于存放整個(gè)邊的信息,3.5).分段標(biāo)志、已標(biāo)記標(biāo)志各占用“標(biāo)志”域中的1位,用來表示該數(shù)據(jù)包是否已經(jīng)被標(biāo)記,以及標(biāo)記在“邊起始節(jié)點(diǎn)”域中的是IP地址的高16位還是低16位。
全文摘要
基于洪泛攻擊的高效、安全追蹤方案是一種主動(dòng)防御DoS/DDoS攻擊的方案,通過追蹤到攻擊源,從而能從源頭上對(duì)攻擊進(jìn)行抑制;同時(shí)可以通過追蹤到攻擊源頭,為進(jìn)一步追究攻擊者的責(zé)任提供證據(jù),從而威懾攻擊者。另外,通過對(duì)算法的研究,從算法本身強(qiáng)化了其自身的安全性,增強(qiáng)了算法的抗干擾性。本方案采用新的標(biāo)記概率選取方法來代替原來的每個(gè)路由轉(zhuǎn)發(fā)節(jié)點(diǎn)的固定概率方法,使得攻擊路徑重構(gòu)時(shí)的性能得到很大的優(yōu)化。同時(shí),在方案中增加了對(duì)攻擊者偽造信息的抗干擾能力,使得標(biāo)記方案的自身安全性能得到了極大的提高。
文檔編號(hào)H04L12/24GK1777182SQ200510122848
公開日2006年5月24日 申請(qǐng)日期2005年12月6日 優(yōu)先權(quán)日2005年12月6日
發(fā)明者王汝傳, 李金明, 任勛益 申請(qǐng)人:南京郵電大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
洪洞县| 霸州市| 太仆寺旗| 鱼台县| 桃园县| 固镇县| 苍山县| 故城县| 舟山市| 沈阳市| 乌兰察布市| 安泽县| 扬中市| 龙游县| 连城县| 寿光市| 迁西县| 砚山县| 陈巴尔虎旗| 泰来县| 日喀则市| 北流市| 浦城县| 雅江县| 葫芦岛市| 左贡县| 建宁县| 定州市| 紫阳县| 正蓝旗| 苍南县| 长兴县| 福海县| 新昌县| 汤原县| 台中县| 杭锦旗| 罗城| 北辰区| 额尔古纳市| 庆云县|