專利名稱:用于ip追蹤的內部邊采樣方法和系統的制作方法
技術領域:
本申請涉及IP追蹤技術,尤其涉及基于邊采樣的概率包標記(PPM)的IP追蹤方法和系統。
背景技術:
隨著互聯網的發展,出現了各種針對協議或操作系統設計缺陷的網絡攻擊。DoS/DDoS攻擊(拒絕服務攻擊/分布式拒絕服務攻擊)的原理是在一定時間段內直接或者通過跳板向目標網絡發送大量的特定數據包(如服務請求包,TCP SYN包等),極大地消耗網絡帶寬或系統資源,引起目標網絡的阻塞甚至癱瘓。這些攻擊包的源IP地址通常是經過偽造的。被攻擊網絡如何根據收到的數據包,最大可能地追蹤和定位攻擊者位置,封堵DoS攻擊來源,稱為IP地址追蹤技術。
雖然IP包頭源地址是虛假的,但每個IP包都必須經過從攻擊者到目標機之間的路由器轉發。借助路由器對數據包進行標記或記錄,從而根據收到的數據包重構出攻擊路徑,是IP追蹤研究的基本思路。
近年來的IP追蹤研究工作基本上分為“單獨生成追蹤信息專用數據包”和“IP數據包標記”兩大類。前者會增加網絡帶寬負荷,不易升級,反而充當了一種DoS攻擊行為。后者經歷了從“節點附加”和“節點采樣”到“邊采樣”標記的發展過程。自2000年Savage等人提出了“邊采樣”標記方法之后,主流的IP追蹤技術進入了“基于日志記錄的追蹤技術”和“基于邊采樣的概率包標記(PPM)技術”兩大陣營的時代。
在節點附加方法中,每個路由器將自己的IP地址附加在標記數據包的后面。其缺點是標記包長度不可控,容易引起標記包的再分片,攻擊者可以添加虛假信息路徑信息。在節點采樣標記方法中,路由器按照某種概率將32位IP地址記錄到IP頭某個位置。其缺點是,沒有很好地考慮IP頭中有沒有足夠空間存儲32位IP地址。
基于日志記錄的IP追蹤技術要求路由器通過對每個轉發包進行Hash運算記錄數據包摘要信息。路徑重構時,通過獲取的攻擊包,進行遞歸得到相鄰路由器地址,從而恢復出整個攻擊路徑。在高速鏈路情況下,由于數據包到達的速度和記錄速度必須相匹配,此方法適合范圍受到限制。
基于傳統邊采樣的概率包標記(PPM)技術適合DoS攻擊追蹤。路由器以一定概率對數據包進行標記,標記內容包括攻擊路徑上任兩個相鄰路由器的地址,即攻擊路徑圖上的“邊”,以及“邊”到攻擊目標的距離。被攻擊者根據收到的標記信息恢復攻擊路徑。一般認為IP頭域中適合標記的空間有17位16bit的包標識域和1bit的分片標志flag的最高位。受此空間限制,標記信息往往需要先分片再進行標記。為了重構時將標記片段正確地組合在一起,有些算法基于范德蒙行列式生成標記信息分片;有的將IP地址的Hash結果作為標記信息中的認證碼或者將Hash結果和IP地址隔位插入作為標記信息。
PPM已成為IP地址追蹤研究的一個主要方向。許多研究人員在PPM標記概率、標記信息分片、防止偽造包的加密和認證技術等領域開展研究工作。
圖1是目前PPM所依賴的IP地址追蹤技術中的傳統“邊采樣”示意圖。Attacker表示攻擊發起者,Victim表示攻擊目標,R表示路由器。從左側網絡拓撲示意圖可以看出傳統邊采樣中,路由器是圖的頂點,相鄰頂點構成了圖的邊。右側圖中黑實線表示兩個攻擊者發起的攻擊路徑(R5,2R4,2R3,1R2,1R1,1)和(R3,3R2,1R1,1),每條攻擊路徑由若干個相鄰接路由器組成的“邊”連接而成。
PPM方法基于這些傳統邊采樣技術,存在如下三個問題。
1)傳統“邊”由相鄰路由器構成,下游路由器打標記時必須知道相鄰上游標記路由器地址。否則,無法生成“邊”信息。當兩個非相鄰標記路由器之間有其他非標記路由器時,問題更為突出,因為標記路由器必須知道跨越這幾個非標記路由器之前的那個“相鄰”標記路由器的地址,才能完成這條邊的標記。圖1中,路由器R2,1必須知道自己上游相鄰路由器R3,1,R3,2,R3,3的地址,并且將其地址分別和自己的地址進行運算作為對應的標記信息。如果R3,1不具備標記功能,則R2,1必須知道R3,1不是標記路由器,不能和其進行運算,而且還要知道該方向上最相近的標記路由器R4,1和R4,2的地址,并和其進行運算,顯然這是非常困難的。
2)在重構時要將收集到的標記片斷信息和特定運算結果對照數據庫中的片斷信息進行對比,以此確定攻擊路徑上參與標記的路由器。因此在攻擊路徑重構之前必須有一個重構對照數據庫,保存各路由器IP地址,或者這些地址的Hash結果,或者相鄰路由器地址異或結果。3)傳統方法中將一臺路由器定義為圖上的一個頂點,兩個頂點構成一條邊。因此只能用一個IP地址代表該路由器作為頂點的信息。路由器的IP地址與其自身各個網絡接口是對應的,無論用哪個網絡接口上的IP地址來代表該路由器,都容易引起攻擊重構時假邊的產生,從而將重構引入歧途。
發明內容基于現有技術中的上述問題,本發明提出了一種新穎的用于標記路由器的“內部邊采樣”的方法來替代傳統的邊采樣方法。
依據本發明的一個方面,提供了一種對經過標記路由器的網絡接口的數據包進行處理的方法,其中所述標記路由器包括至少兩個網絡接口。該方法包括針對進入所述標記路由器的一個網絡接口的數據包,在數據包的IP包頭中寫入標記信息,其中所述標記信息包括所述網絡接口的網絡接口信息;針對離開所述標記路由器的所述網絡接口的數據包,判斷所述數據包是否是已標記數據包;如果所述數據包是已標記數據包,則取出所述標記信息中包括的網絡接口信息,并將所述標記信息中包括的網絡接口信息與當前的網絡接口的網絡接口信息組合在一起,構成一個IP地址邊;以及,將所述IP地址邊寫入所述數據包的標記空間。針對進入所述標記路由器的一個網絡接口的數據包,在數據包的IP包頭中寫入標記信息,其中所述標記信息包括所述網絡接口的網絡接口號;針對離開所述標記路由器的所述網絡接口的數據包,判斷所述數據包是否是已標記數據包;如果所述數據包是已標記數據包,則取出所述標記信息中包括的網絡接口號,并將所述標記信息中包括的網絡接口號與當前的網絡接口的網絡接口號組合在一起,構成一個IP地址邊;以及,將所述IP地址邊寫入所述數據包的標記空間。
優選地,該方法進一步包括將所述IP地址邊分成k個分片,將一個1/k分片的邊地址信息寫入所述數據包的標記空間。其中,將所述IP地址邊寫入所述數據包的標記空間的步驟包括將所述IP地址寫入用于標識數據包的ID域和用于分片的Flags字段的最高位。
依據本發明的另一個方面,提供了一種對數據包所經過的路徑進行重構的方法,包括取出所述數據包中包含的標記信息,其中,該標記信息包括由所經過的路由器的入口網絡接口信息和出口網絡接口信息組合在一起的地址信息;根據所述標記信息得到所述數據包所經過的路由器的地址信息。
優選地,該方法進一步包括將標記信息存儲在數據庫中。并且,該標記信息進一步包括所述數據包的距離和分片偏移號。優選地,該方法進一步包括通過將標記信息與數據庫中存儲的標記信息記錄進行比較,得到所述路由器的地址信息。
依據本發明的另一個方面,提供了一種對數據包經過的路由器進行標識的方法,包括記錄所述數據包進入路由器所經過的入口網絡接口的信息以及數據包離開路由器所經過的出口網絡接口的信息;以及,以所述入口網絡接口的信息和所述出口網絡接口的信息對所述路由器進行標識。
依據本發明的另一個方面,提供了一種對經過標記路由器的網絡接口的數據包進行處理的設備,其中所述標記路由器包括至少兩個網絡接口,所述設備包括用于實現所述的方法中的各個步驟的裝置。
依據本發明的另一個方面,提供了一種對數據包所經過的路徑進行重構的設備,包括用于實現如權利要求
4-7所述的方法中的各個步驟的裝置。
包含在說明書中并構成說明書的一部分的附圖用于圖解說明本發明的實施例,并和上面給出的概述及下面給出的實施例的詳細說明一起用于解釋本發明的原理,其中圖1是顯示傳統的IP地址追蹤方法中的邊采樣的示意圖。
圖2是顯示依據本發明的標記路由器及其內部邊的示意圖。
圖3是顯示依據本發明的IP地址追蹤方法的路由器內部邊采樣的示意圖。
圖4是顯示IPv4格式的數據包頭的示意圖。
圖5是顯示依據本發明的RIES方法中的路由器標記方法的示意圖。
圖6是顯示依據本發明的RIES方法中的重構方法的示意圖。
圖7是顯示在受攻擊目標處的標記包存儲格式的示意圖。
圖8是顯示在傳統的邊采樣方法中重構出的假邊的示意圖。
圖9是顯示基于本發明的RIES方法的PPM測試實驗網絡的拓撲圖。
具體實施方式以下參照附圖對依據本發明的方法和系統的實施例進行詳細描述,但應指出的是,下文中描述僅用于示例和說明的目的,而不構成對本發明的限制。在下文中描述中了大量技術細節以便更清楚地解釋本發明,并使本領域中的技術人員能夠據此實現本發明,但這并不意味著本發明的實現必須依賴于這些細節;相反,可實現本發明而沒有所述的一些特征,或具有附加的或不同的特征。
根據現在的互聯網或者大型局域網上的部署,標記路由器的部署是循序漸進、分步實施的,即攻擊路徑上的路由器并非都具有標記功能,導致標記路由器之間可能夾雜非標記路由器。若非借助于ISP(網絡服務商)或者其他人工告知方式,下游路由器很難自動獲知上游最近的標記路由器地址。尤其是每條“邊”的信息必須分片標記,下游路由器無法從上游來的數據包中發現上游標記路由器完整的IP地址信息,從而無法將其與本機IP地址進行運算生成標記信息。
并且,互聯網協作的無組織特點,很難讓所有的ISP或某個組織來登記和管理標記路由器IP地址庫。盡管獲取網絡拓撲圖是容易的,然而很難維護一個僅將所有標記路由器按照鄰接關系進行地址運算的重構參照數據庫。
由于上述問題,目前絕大多數基于“傳統采樣邊”的PPM方案都有標記和重構兩方面實施上的問題。
針對上述問題,本發明提出了一種新穎的用于標記路由器的“內部邊采樣”的方法來替代傳統的邊采樣方法。其中,本發明將“邊”的位置定義在標記路由器內部,頂點恰好是同一臺路由器的一對網絡接口。數據包流經路由器上的一對網絡接口構成路由器內部的一條“內部邊”。圖2顯示了依據本發明的標記路由器及其內部邊的示意圖。
定義1標記路由器R=(IFlocal,ER,IFwan),每臺標記路由器都可以從路由器網絡接口的角度將路由器定義為三元組。
IFlocal={L0,L1,L2,...,Lm}表示該路由器本地網絡接口集。
IFwan={S0,S1,S2,...,Sn}表示該路由器廣域網絡接口集。
ER={(SinSout)|Sin,Sout∈R.IFwan,Sin≠Sout},是路由器的“內部邊”集合。數據包經過路由器是有入/出方向的,Sin和Sout分別表示某個數據包流經標記路由器時經過的入口和出口。這兩個網絡接口相連便在路由器體內形成一條內部邊,指向該包流經的方向。ER是路由器R內部所有可能的內部邊的集合,一個數據包只能經過其中的一條。入口和出口僅僅是相對于一個包而言的。在路由器任意一個網絡接口上,針對入/出數據包的處理策略不同(見算法部分)。圖2下方示意了不同方向的數據包流經某標記路由器時,網絡接口對不同方向的數據包分別起到了入口和出口的標記作用,并由此產生的內部邊。
按照一定的標記算法,路由器將內部邊信息寫入數據包,根據對這些包的統計分析,即可恢復出攻擊路徑。
定義2攻擊路徑P=(A,EPATH,Victim),A∈{Attacker1,Attacker2,...Attackern},Attacker表示攻擊發起者,Victim表示攻擊目標。EPATH=(edge1,edge2,...edged),表示從距離d處發起的攻擊所經過的標記路由器“體內采樣邊”連接而成的一條路徑,其中edgei=Ri.(SinSout)。
定義3攻擊路徑圖G=(EG,VG)VG={Ri.IFwan|i=1,2,...}表示圖G的“頂點”集合是所有路由器的廣域網絡接口集。
EG={edgei|i=1,2,...}表示圖G的“邊”集合是所有路由器體內網絡接口連接而成的“內部邊”集合。
圖3顯示了IP追蹤技術中的路由器內部邊采樣的示意圖,其中,左圖示意了“內部邊”標記路由器部署后的網絡拓撲圖。圓框表示非標記路由器,矩形框表示標記路由器。圖3右圖演示了從R7,1和R7,4處發起攻擊后,攻擊包所經過的路徑上標記路由器“內部邊”連接而成的攻擊路徑圖。盡管來自Attacker1的攻擊路徑(R7,1R6,1R5,1R4,1R3,1R2,1R1,1)中夾雜了非標記路由器R6,1,R4,1和R2,1,參照網絡拓撲圖能夠實現該路徑的重構恢復。
標記域的選擇數據包標記技術將標記信息存儲于IP頭內。圖4顯示了IPv4包頭格式。本發明結合圖4對IPv4格式的包頭中可能被利用的字段進行了分析。本領域技術人員能夠了解,本發明不僅僅適用IPv4格式的數據包,對于其他格式的數據包也同樣適用。
實際網絡中只有不到0.25%的數據包可能被分片,因此研究人員大多將注意力放在標識數據包的ID域和Flags字段上。結合實驗,我們認為IP頭域中17位空間存儲標記信息是比較可靠的,即用于標識數據包的ID域(16bit)和用于分片的Flags字段的最高位(1bit)(圖4中ID字段和Offset字段之間的3位是Flags字段)。因此,本發明使用IP頭中的17位空間存儲標記信息(見圖4中的陰影部分)。然而,本發明并不僅限于使用IP頭域中的這17位空間,也不限于17位的位數,只要能在IP頭中找到適當的存儲空間來存儲本發明的內部邊信息,都能夠實現本發明。并且,如果能找到更多存儲空間來存儲邊信息,則基于邊采樣的PPM功能會更為強大。
標記信息受標記空間限制,基于邊采樣的PPM技術一般將一條64bit的“邊”劃分為若干標記片段。本發明采用常用的8片段方式,每個標記信息片段格式如下
c數值0~7,表示是該邊的第幾個片段。
distance數值1~31,表示標記路由器到目標機距離。
flag數值0或1。當flag取1時表示此數據包為已標記包。
edgei[c]路由器Ri內部邊edgei的第c個1/8片段信息,長度為8bit。
“內部邊”edgei是數據包流經路由器Ri時經過的兩個網絡接口Sin和Sout構成的。要標記的內容是它們的64位IP地址對,記為(IPin,IPout),即“內部邊”edgei=(Sin,Sout)=(IPin,IPout)。本發明研究基于“內部邊”采樣的PPM技術,因此標記路由器知道位于本機的edgei數值,可以直接打入標記包,而不需要像傳統“邊采樣”那樣去獲取相鄰路由器地址來進行各種計算作為標記信息。
每條邊是一個64bit的地址對(IPin,IPout),因此每個1/8片段信息edgei[c]∈{Ri.IPin[0],Ri.IPin[1],Ri.IPin[2],Ri.IPin[3],Ri.IPout[0],Ri.IPout[1],Ri.IPout[2],Ri.IPout[3]}。
下面將結合圖5和圖6描述依據本發明的IP地址追蹤方法中所采用的路由器標記方法和重構方法。其中,圖5是顯示依據本發明的路由器標記方法的示意圖。圖6是顯示依據本發明的重構方法的示意圖。
本發明研究的RIES(路由器內部邊采樣)方法中“邊”的位置與傳統邊采樣中“邊”的位置不同傳統“邊”的頂點是相鄰的兩臺路由器;RIES“邊”定義在路由器內部,頂點恰好是數據包經過標記路由器時的兩個網絡接口(地址)。標記路由器只需要關注數據包在本體所流經的入口和出口,并將對應的地址作為路徑片段標記在數據包上。
本發明的標記方法可以在標記路由器的任一網絡接口(相當于標記設備的任一網卡)上運行。如圖5所示,步驟S510-S530顯示了針對進入該網絡接口的每個數據包所進行的處理,在步驟S520,該網絡接口判斷是否發生了小概率[f1]事件。如果是,則流程進行到步驟S530,在數據包的IP頭中寫入標記信息(數據結構)距離=0;標記標志位=1;邊的地址信息=該網絡接口信息(網絡入口信息,其中,網絡接口信息可以是網絡接口號,也可以網絡接口地址。如果在步驟S520判斷未發生小概率事件,則不對數據包進行任何處理,流程返回到步驟S510繼續進行。另外,在步驟S540到S590顯示了針對離開該網絡接口的每個數據包所進行的處理,在步驟S550,判斷該離開網絡接口的數據包是否是已標記包。如果不是已標記包,則對此數據包不進行處理,流程返回到步驟S540,繼續分析下一個數據包。如果是已標記包,則流程進行到步驟S560,進一步判斷該數據包是否是剛被本機[f2]標記過的含有入口網絡接口信息的數據包,即該數據包在進入同一個路由器時被某個網絡接口作為該數據包的入口網絡接口進行了標記。具體地,可以通過判斷標記距離是否為0來實現,也可以通過[f3]判斷標記域中其他約定好的在入口網絡接口所標記的特定信息來確定。如果在步驟S560判斷該數據包是剛被本機[f4]標記過的數據包,則流程進行到步驟S570,取出標記中的網絡入口信息,將該入口與本網絡接口構成64位IP地址邊。然后流程進行到步驟S580,將構成的64位IP地址邊分成k個分片(在這里k=8),每個分片含有64/k位IP地址。將一個1/k分片的邊地址信息寫入該數據包標記空間,并在步驟S590將距離參數的值遞增,并寫入該數據包標記空間。如果在步驟S560判斷該數據包不是本機的已標記包,則流程進行到步驟S590,將距離遞增,并寫入該數據包的標記空間。重復上述步驟繼續處理下一個進入該網絡接口的數據包。[f5]依據本發明的一個具體實施例的標記過程算法如下
通過上述的標記算法,可以將一個數據包所經過的路由器的信息標記在數據包上。
下面將描述在重構機中實現的重構步驟。
重構機位于被攻擊目標所在網絡內,將聽到的包按距離和同一條邊的1/8分片號存入庫中。圖7顯示了在攻擊目標處的標記包存儲格式的示意圖。
標記方法中按順序產生1/8分片,明文標記各片的IP地址。在DDoS攻擊時,對于相同距離和分片序號的不同地址分片,參照路由拓撲可以實現定位。
具體的重構方法可以在Victim網絡內的重構機上實現。從每個標記包中提取標記信息,按照一定規則存入一個重構數據庫中,當發生單路徑攻擊時,該數據中的記錄能夠按照距離大小順序,直接提供攻擊路徑的恢復。當發生多路徑攻擊時,數據中的記錄對比“參考拓撲圖”,同樣可以恢復攻擊路徑。
該重構方法首先讀入每個標記包的包頭,取出標記信息(數據結構),從該標記信息中可以得到該包的距離d、分片偏移號β、分片標記地址seg等信息。在重構數據庫中已經保存的相同距離和相同偏移號的分片記錄有η條(庫中對應存在η條記錄),所以必須將該分片進行正確定位。其中,數據庫中每一條分片記錄是一個數據結構,包括k個分片(在這里k=8),這k個分片全部收齊后,將組成一條完整的邊,即距離為d的標記路由器上的一對網絡接口所連接而成的邊,每個分片的偏移號為0~k-1。
如果數據庫中已經保存的相同距離、相同偏移號的這η條分片記錄中有一條記錄的偏移號為β的片段地址等于seg,則說明已收集的那些攻擊分片記錄中已經登記過同一臺標記路由器,將數據庫中此條分片記錄的偏移號為β的位置的統計個數加1,該統計個數即代表目標機所接收到的經過由所述分片記錄代表的標記路由器的偏移號為β數據包的個數。
如果不存在這樣的記錄,則將相同距離的記錄逐條比對,將每條記錄中前β個IP片段和本片段連接起來,構成一個長度為(βrη+1)*64/k位長度的“非完整邊”信息。如果此“非完整邊”屬于攻擊路徑參考拓撲圖上的某條距離為d的邊,并且該條記錄中偏移為β的邊片段統計個數為0,則在符合上述條件的記錄中寫入偏移為β的片段地址為seg,并將其統計個數加1。而如果該條記錄中偏移為β的邊片段統計個數不為0,則創建一條新記錄,將此記錄前β個片段的信息拷入新記錄,并置新記錄的第β+1個片段地址為seg,統計個數置為1。
圖6顯示了依據本發明的一個具體實施例的重構方法的流程圖。首先,在步驟S610,取出數據包中包含的標記信息,如上面所述的,該標記信息可以包含該包的距離d、分片偏移號β、分片標記地址seg等信息。根據該標記信息,在步驟S620判斷在重構設備中建立的重構路徑數據庫中是否有與其距離相同的記錄。如果在步驟S620判斷為否,則流程進行到步驟S630,判斷分片偏移號是否為0。如果為0則在步驟S635舍棄該數據包的信息,并結束對該數據包的處理。如果不為0,則在步驟S636,在數據庫中生成一條新記錄,并將相應的分片計數置1,然后結束對該數據包的處理。
如果在步驟S620判斷數據庫中存在與其距離相同的記錄,則流程進行到步驟S640,判斷數據庫中是否有與該數據包的偏移號相同的記錄。如果沒有,則在步驟S670判斷是否可以將此分片與數據庫中同距離的記錄組合成”非完整邊”,即是否屬于拓撲圖上某條相同距離的邊。如果是,則進行到步驟S675,在數據庫中記錄添加此分片項記錄并將分片計數置1,然后結束對該數據包的處理。如果否,則可以在步驟S676舍棄該數據包的信息,并結束對該數據包的處理。
如果在步驟S640判斷結果為是,則流程進行到步驟S660,判斷數據庫記錄中對應的標記地址是否相同,如果是,則在步驟S665將分片計數遞增。如果步驟S660的判斷結果為否,流程進行到步驟S650,判斷是否可以將此分片與數據庫中同距離的記錄組合成”非完整邊”,即屬于拓撲圖上某條相同距離的邊。如果是則在步驟S655在數據庫中記錄添加一條同距離新記錄,并將分片計數置1,然后結束對該數據包的處理。如果否,則可以在步驟S656舍棄該數據包的信息,并結束對該數據包的處理。
通過對各個數據包重復上述重構過程,可以在數據庫中得到關于各個數據包所經過的路由器的信息。
重構結束時會發現有些記錄中最后一個片段的統計數小于某個閾值,可以將這樣的記錄去掉。在單路徑攻擊時,數據庫中每條記錄的距離都不相同,可以直接相連恢復出攻擊路徑。在多路徑攻擊時,重構數據庫中相同距離的記錄可能有多條,將數據庫中各條記錄中片段構成的“完整邊”在攻擊路徑參考拓撲圖上(或者拓撲地址數據庫)相比對,即可恢復出攻擊路徑。
依據本發明的一個具體實施例的重構處理中的部分算法如下
基于RIES方法,無需路由拓撲圖可以直接實現DoS攻擊路徑重構,而借助路由拓撲圖可實現DDoS攻擊路徑重構。
本發明雖然在這里以例示方式顯示了可以用于實現本發明的重構算法,但本領域技術人員應該知曉,本發明并不局限于上述重構算法,事實上,可以將基于傳統的邊采用方法的PPM方法中所采用的重構算法移植到本發明的RIES方法上,用來實現本發明,但顯然本發明的重構與已有技術相比要簡單得多。
標記算法對比傳統邊采樣標記路由器需要從收到的數據包中獲取上游標記路由器地址片段信息,推斷出其完整IP地址,再與本機地址進行Hash或插值等運算,生成兩路由器連成的邊信息再分片打入標記。生成標記信息過程復雜,路徑上夾雜非標記路由器時獲取上游地址困難。
依據本發明的RIES標記路由器擁有自身所有的網絡接口地址,能夠嚴格控制1/8分片標記順序,標記概率可以隨端口策略而定,算法簡單,獨立于其他路由器,易于實現。
數據包期望基于傳統邊采樣的PPM方法中,往往要求所有路由器參與標記,恢復一條長度距離為d的攻擊路徑所需要的數據包期望值計算公式如下E(X)<k·ln(kd)p(1-p)d-1]]>k表示每條邊的分片數,此處為8。p為標記概率,一般選擇4%-5%。可見E(X)與d成正比。傳統方法中由于必須路徑上的路由器都參加標記,因此距離d傳統等于攻擊者距離攻擊目標的全部路由器跳數。
依據本發明的RIES方法仍然是一種邊采樣技術。因此,基于RIES的PPM重構數據包期望值計算公式與上式相同。RVER容許攻擊路徑上非標記路由器的存在,距離d表示攻擊者到攻擊目標經歷了多少標記路由器。
增加標記概率p雖然可以減弱攻擊者隱藏來源的能力,卻影響鏈路的吞吐性能。本發明的標記方法中,可以針對同一個路由器上的不同網絡接口Si采取不同的標記速率qi。這對于一臺路由器上制定各種路徑服務策略,決定其中哪些“邊”參與標記,各端口設置合適的標記速率提供了可能。
對假標記包的抵御分析1)標記路由器鄰接時產生的假邊分析傳統邊采樣將一臺路由器定義為攻擊路徑圖G上的一個頂點,然后通過工具獲得路由器上網絡接口的IP地址在拓撲圖中表示出該路由器。由于路由器只能選擇一個出口或者入口地址代表這個頂點,對于多出口/入口的路由器進行標記就會出現問題。比如,選擇出口IP代表路由器,路由器連接如圖8中左圖時,Ri+1,1有2個不同出口,若以左出口IP代表Ri+1,1位置,則在路徑重構時,重構對照拓撲圖中邊(Ri+1,1,Ri,2)信息與標記包中(Ri+1,1,Ri,2)的信息是對應不上的。同理,選擇入口IP代表該路由器,當路由器級連如圖8中右圖時,也會產生對應不上的問題。
依據本發明的RIES方法在圖G的定義中,頂點定義在路由器網絡接口上,故而不會產生邊的二義性。
2)標記路由器夾雜非標記路由器時產生的假邊分析傳統邊采樣中的“邊”由兩臺鄰接路由器節點構成的。若攻擊路徑上夾雜非標記路由器,會誤將標記路由器和相鄰非標記路由器的地址構造為一條假邊。依據本發明的RIES中的“邊”在標記路由器體內,不會出現這種情況。
3)注入假包分析攻擊者除了修改攻擊包中的源地址來隱藏自己外,還會采用注入偽造標記包的方法混淆分析人員的視線。標記算法中往往根據P.flag判斷是否為標記包。偽造的假標記包也會將此數值置1,在標記信息域填入假的邊信息,使得重構分析誤入歧途。
依據本發明的RIES標記路由器對P.flag為1的包進行距離加1操作。(1)假標記包到達目標機時,其距離會大于正常的標記數據包被去掉。(2)在大規模部署時,可以通過對比TTL減少值和距離增加值是否吻合來判斷假標記包。
重構DoS和DDoS攻擊分析基于“傳統邊采樣”的PPM技術對DoS攻擊重構有效,但對于DDoS攻擊沒有很好的辦法。一個非常重要的原因是傳統邊采樣技術中“邊”跨越兩個路由器,要維護一個所有標記路由器按鄰接關系進行地址運算的對照數據庫,以便重構時正確定位相同距離層面上的多攻擊路徑標記片段很難。一些已有技術希望借助于Hash函數或著某種校驗算法產生特定標記信息,以減少重構誤報率。這要求標記路由器和重構計算機共享相同的Hash算法或校驗算法,否則無法在重構時進行標記信息碎片定位。
針對DoS攻擊,依據本發明的基于RIES的PPM能夠按照攻擊距離的順序和分片號可以直接獲得標記路由器的地址,從而快速恢復攻擊路徑。
針對DDoS攻擊,例如當攻擊者在距離m層有n條攻擊路徑時,從算法中可以看出,本發明對該層的任一分片定位不需要收集全該層全部分片后再進行對比定位,從而避免了組合指數問題。
實驗設計及結果概率包標記(PPM)的研究工作都是基于傳統邊采樣的。RIES方法仍然是一種邊采樣,PPM的研究工作同樣適用。我們設計了一個基于RIES的PPM實驗環境。
實驗環境如圖9所示。基于RIES技術的標記路由器原理樣機Ri+1,Rj+1,Rj+2部署在實際的互聯網上。pc1,pc2和pc3為發包測試機。Ri,Rj和Rk是3臺處于正常運行的商用路由器,不具備標記功能。標記概率取4%。
實驗1Victim={pc3},Attacker={pc1}由Attacker向Victim分別發送TCP和UDP包。
在Victim處抓取IP包頭中已標記數據包,將標記信息按照圖5的格式換算排列如下
表中看出,數據流路徑為(192.168.99.254,192.168.100.131)→(192.168.100.132,192.168.0.253)→Victim實驗2Victim={pc2},Attacker={pc1}由Attacker向Victim分別發送TCP和UDP包。
在Victim處抓取IP包頭中已標記數據包,將標記信息按照圖5的格式換算排列如下
表中看出,數據流路徑為(192.168.99.254,192.168.100.131)→(192.168.100.132,192.168.0.253)→→(10.0.5.213,10.0.3.252)→Victim實驗3Victim={pc3},Attacker={pc1,pc2}由Attacker向Victim分別發送TCP和UDP包。
在Victim處抓取已標記數據包,由于出現同距離的分片,采用上面所述的重構算法,參照路由拓撲圖8,將路徑信息按照圖5的格式換算排列如下
對照路由拓撲圖,可以發現攻擊來自兩條路徑,分別是(192.168.99.254,192.168.100.131)→(192.168.100.132,192.168.0.253)→Victim(10.0.3.252,10.0.5.213)→Victim受標記路由器原理樣機個數的限制,本實驗僅演示了距離為3,最多2條攻擊路徑。實驗中可看出(1)RIES方法中標記路由器距離d是實際跨越的標記路由器距離,雖然攻擊路徑上夾雜了Ri,Ri和Rk等非標記商用路由器,以及跨越因特網上若干商用路由器,依然可以忠實地記錄數據包經歷的網段歷程,設備可實現,可分步部署。
(2)RIES標記過程不影響網絡中其它正常業務流量。
(3)采用17bit標記空間是可行的。同時我們發現TOS域,Flags低2位以及Offset域修改后的數據包無法跨越實際網絡中的商用路由器。
概率包標記(PPM)技術是近年來IP追蹤技術的一個主流研究分支方向。許多研究人員在PPM的編碼、加密、認證或者標記概率策略等領域開展工作,對重構期望進行仿真計算,而沒有進行實際網絡中的標記和重構實驗。一些研究人員為獲取更多標記空間,不合理地占用IP頭某些域以承載標記算法。這些標記包并不能通過實際網絡進行轉發。傳統邊采樣方法不能有效應對DDoS攻擊路徑重構。
RIES比傳統方法更具有可部署性,標記概率策略配置靈活性。重構過程不依賴于復雜運算標記信息對照庫。我們給出本發明標記和重構算法,(1)無需路由拓撲圖直接實現DoS攻擊重構(2)借助路由器拓撲圖實現DDOS攻擊重構。實驗表明標記和重構算法簡單,快速有效,結果正確,對于中間跨越商用路由器的實際網絡業務不產生影響。即使不更換現有商用路由器,按照本發明思路,依然可以研制和部署基于RIES的PPM標記網關設備。
以上是對本發明的方法的詳細描述。如熟悉該技術領域:
的人員可以看到的那樣,本發明可以體現為方法、系統和/或計算機程序產品。因此,本發明可以呈現為完全硬件實施形式、完全軟件實施形式或者軟件和硬件組合實施形式。
依據本發明的一個具體實施例,提供了一種對經過標記路由器的網絡接口的數據包進行處理的設備,其中所述標記路由器包括至少兩個網絡接口,所述設備包括針對進入所述標記路由器的一個網絡接口的數據包、在數據包的IP包頭中寫入標記信息的裝置,其中所述標記信息包括所述網絡接口的網絡接口號;針對離開所述標記路由器的所述網絡接口的數據包、判斷所述數據包是否是已標記數據包的裝置;如果所述數據包是已標記數據包、則取出所述標記信息中包括的網絡接口號、并將所述標記信息中包括的網絡接口號與當前的網絡接口的網絡接口號組合在一起以構成一個IP地址邊的裝置;以及,將所述IP地址邊寫入所述數據包的標記空間的裝置。
優選地,所述設備進一步包括將所述IP地址邊分成k個分片、將一個1/k分片的邊地址信息寫入所述數據包的標記空間的裝置。并且,其中,將所述IP地址邊寫入所述數據包的標記空間的裝置包括將所述IP地址寫入用于標識數據包的ID域和用于分片的Flags字段的最高位的裝置。
依據本發明的另一個實施例,提供了一種對數據包所經過的路徑進行重構的設備,包括取出所述數據包中包含的標記信息的裝置,其中,該標記信息包括所述數據包的距離、分片偏移號和分片標記地址;根據所述標記信息得到所述數據包所經過的標記路由器信息的裝置;根據所述標記路由器信息對數據包所經過的路徑進行重構的裝置。優選地,所述設備進一步包括判斷在數據庫中是否有具有相同標記信息的分片記錄的裝置,以及,遞增該分片記錄的統計個數的裝置。
此外,本發明的目的也可以通過下述方式實現將存儲有上述可執行程序代碼的存儲介質直接或者間接地提供給系統或設備,并且該系統或設備中的計算機或者中央處理單元(CPU)讀出并執行上述程序代碼。
此時,只要該系統或者設備具有執行程序的功能,則實施的方式不局限于程序,并且該程序也可以是任意的形式,例如,目標程序、解釋器執行的程序或者提供給操作系統的腳本程序等上述這些機器可讀存儲介質包括但不限于各種存儲器和存儲單元,半導體設備,磁盤單元例如光、磁和磁光盤,以及其它適于存儲信息的介質等。
另外,客戶計算機通過連接到因特網上的相應網站,并且將依據本發明的計算機程序代碼下載和安裝到計算機中然后執行該程序,也可以實現本發明。
以上雖然結合附圖詳細描述了本發明的實施例,但是應當明白,上面所描述的實施方式只是用于說明本發明,而并不構成對本發明的限制。對于本領域的技術人員來說,可以對上述實施方式做出各種修改和變更而不背離本發明的實質和范圍。因此,本發明的范圍僅由所附權利要求
及其等效含義來限定。
權利要求
1.一種對經過標記路由器的網絡接口的數據包進行處理的方法,其中所述標記路由器包括至少兩個網絡接口,包括針對進入所述標記路由器的一個網絡接口的數據包,在數據包的IP包頭中寫入標記信息,其中所述標記信息包括所述網絡接口的網絡接口信息;針對離開所述標記路由器的所述網絡接口的數據包,判斷所述數據包是否是已標記數據包;如果所述數據包是已標記數據包,則取出所述標記信息中包括的網絡接口信息,并將所述標記信息中包括的網絡接口信息與當前的網絡接口的網絡接口信息組合在一起,構成一個IP地址邊;以及將所述IP地址邊寫入所述數據包的標記空間。
2.如權利要求
1所述的方法,進一步包括將所述IP地址邊分成k個分片,將一個1/k分片的邊地址信息寫入所述數據包的標記空間。
3.如權利要求
1或2所述的方法,其中,將所述IP地址邊寫入所述數據包的標記空間的步驟包括將所述IP地址寫入用于標識數據包的ID域和用于分片的Flags字段的最高位。
4.一種對數據包所經過的路徑進行重構的方法,包括取出所述數據包中包含的標記信息,其中,該標記信息包括由所經過的路由器的入口網絡接口信息和出口網絡接口信息組合在一起的地址信息;根據所述標記信息得到所述數據包所經過的路由器的地址信息。
5.如權利要求
4所述的方法,進一步包括將標記信息存儲在數據庫中。
6.如權利要求
4所述的方法,其中,所述標記信息進一步包括所述數據包的距離和分片偏移號,
7.如權利要求
4到6中的任何一個所述的方法,進一步包括通過將標記信息與數據庫中存儲的標記信息記錄進行比較,得到所述路由器的地址信息。
8.一種對數據包經過的路由器進行標識的方法,包括記錄所述數據包進入路由器所經過的入口網絡接口的信息以及數據包離開路由器所經過的出口網絡接口的信息;以及以所述入口網絡接口的信息和所述出口網絡接口的信息對所述路由器進行標識。
9.一種對經過標記路由器的網絡接口的數據包進行處理的設備,其中所述標記路由器包括至少兩個網絡接口,所述設備包括用于實現如權利要求
1-3所述的方法中的各個步驟的裝置。
10.一種對數據包所經過的路徑進行重構的設備,包括用于實現如權利要求
4-7所述的方法中的各個步驟的裝置。
專利摘要
基于邊采樣的概率包標記(PPM)是IP追蹤技術中的一個主流方向。本發明提出一種新型的邊采樣方法“路由器內部邊采樣”(RIES),使得PPM標記設備容易實現和部署。在圖論模型上,RIES以網絡接口替代路由器作為頂點,以路由器“內部邊”替代傳統采樣邊。標記路由器對于進入和離開本機任一個網絡接口的數據包分別實施入口標記策略和出口標記策略。標記過程不依賴于上下游路由器信息,從而有效地解決了標記路由器的逐步部署問題。該方法實施簡單,標記概率的策略配置靈活,可以有效解決分布式拒絕服務(DDoS)攻擊的重構問題。
文檔編號H04L12/56GK1997023SQ200610167702
公開日2007年7月11日 申請日期2006年12月19日
發明者魏軍, 戴英俠, 連一峰 申請人:中國科學院研究生院導出引文BiBTeX, EndNote, RefMan