黃 宸,陳周國,郝 堯,蒲 石
(保密通信重點實驗室,四川 成都610041)
隨著互聯(lián)網(wǎng)在人類政治、經(jīng)濟、文化、生活等各方面發(fā)揮越來越重要的作用,互聯(lián)網(wǎng)的安全也越發(fā)引起人們的關注。面對日益嚴峻的網(wǎng)絡安全形勢,僅僅依靠傳統(tǒng)的部署防火墻、IDS、IPS等被動防御方法已不足以確保組織、公司的網(wǎng)絡安全。追蹤溯源是一種主動防御方法,是在網(wǎng)絡攻擊發(fā)生時主動定位網(wǎng)絡攻擊者身份或位置及其攻擊路徑的過程。身份是指攻擊者的姓名、賬號等能夠代表攻擊者的信息,位置可以是攻擊者的物理位置或網(wǎng)絡地址,攻擊路徑是攻擊數(shù)據(jù)流從攻擊端到受害端所經(jīng)過的網(wǎng)絡路徑。追蹤溯源至少具有以下三點重要意義:①從源頭上遏制攻擊;②指導防御方采取有針對性防御措施;③為從司法上懲治網(wǎng)絡罪犯提供有力證據(jù)。
學術界對網(wǎng)絡追蹤溯源已經(jīng)有了較多的研究,主要包括:鏈路測試法、日志記錄法、iTrace和數(shù)據(jù)包標記法。鏈路測試法[1]是在攻擊發(fā)生時對各個路由器之間的鏈路進行測試以確定攻擊流經(jīng)過的路徑。鏈路測試法缺陷是:只能在攻擊發(fā)生時應用;只能進行自治域內(nèi)的追蹤;建立IPSec安全聯(lián)盟需要消耗大量資源。SPIE(Source Path Isolation Engine)[2]是一種典型的日志記錄追蹤溯源方法,該方法提取數(shù)據(jù)包的IP頭固定部分與數(shù)據(jù)的前8字節(jié)進行 Hash 運算,采用 Bloom Filter[3]存儲結果。SPIE優(yōu)化了日志存儲所需的空間,但在當今的高速網(wǎng)絡中,每秒所需的存儲空間仍然達到了GB級別,所需的存儲空間過大是日志記錄法的最大缺陷。iTrace[4]是一種基于ICMP的溯源方法,路由器以一定的概率抽取所轉發(fā)數(shù)據(jù)包的特征信息,與路由器自身的IP地址一起封裝到ICMP數(shù)據(jù)包,之后發(fā)給目的端,當遭受攻擊時,受害端收到足夠多的數(shù)據(jù)包就可以重構攻擊路徑。iTrace溯源法需要收集大量數(shù)據(jù)包,重構攻擊路徑較慢,對受害端的資源消耗較大。數(shù)據(jù)包標記法對路由器所轉發(fā)的數(shù)據(jù)包做標記,受害端收到數(shù)據(jù)包后可以根據(jù)標記信息重構攻擊路徑。典型的數(shù)據(jù)包標記法有:概率包標記法[5]、確定包標記法[6]和動態(tài)概率包標記法[7]。
最早的數(shù)據(jù)包標記追蹤溯源直接在數(shù)據(jù)包中標記路由器的IP地址,由于每個IP地址占4字節(jié),而數(shù)據(jù)包從攻擊端到達受害端可能經(jīng)過很多個路由器,需要的存儲空間非常大,概率包標記法雖然減輕了路由器和網(wǎng)絡的負載,減小了數(shù)據(jù)包的長度,但追蹤溯源時需要收集大量數(shù)據(jù)包,重構路徑速度慢且無法對單包進行溯源。為了解決以上問題,文中在包標記追蹤溯源中引入一種高效的存儲結構:Generalized Bloom Filter(簡稱GBF)。
Generalized Bloom Filter是 Rafael P.Laufer等人[8]提出的一種可以將大量數(shù)據(jù)存入較小存儲空間并能快速查詢的數(shù)據(jù)結構,GBF相對Bloom Filter的改進是GBF對存儲空間的初始狀態(tài)沒有要求。對于集合S={s1,s2,…,sn},GBF采用 k0個 g哈希函數(shù)和k1個h哈希函數(shù),g函數(shù)將對應比特位置0,h函數(shù)將對應比特位置1,假如g函數(shù)和h函數(shù)計算出來的值相同,則置0。查詢某個元素si是否屬于S,需計算 g1(si),g2(si),…,gk0(si)并檢查對應比特位是否為0,還需計算si的hash值h1(si),h2(si),…,hk1(si)并檢查對應的位是否為1,如圖1所示。
判斷某個元素x是否屬于集合S,GBF并不能保證100%的正確率。對于集合S中的某個元素x,當將x在存儲空間的bit位分別置0和置1后,在x之后存儲的元素有可能將x對應的bit位翻轉,導致查詢結果為x不屬于S,造成漏報。對于某個不屬于集合S的元素y,也可能在其他元素的影響下g1(y),g2(y),…,gk0(y)被置 0,h1(y),h2(y)…h(huán)k1(y)被置1,造成y∈S的錯報。在數(shù)據(jù)包標記追蹤溯源中,錯報意味著把本不屬于攻擊路徑上的路由器判斷為屬于攻擊路徑,漏報意味著把本屬于攻擊路徑上的路由器判斷為不屬于攻擊路徑。因此,需要研究GBF的錯報率和漏報率,并盡量降低錯報率和漏報率。根據(jù)文獻[8],GBF的最大錯報率F在k=k0=k1時取得:F=(1/4)k。
圖1 GBF存儲過程Fig.1 GBF store procedure
GBF的最大錯報率僅隨所選取的hash函數(shù)的數(shù)目的增加而遞減,與存儲空間的大小m和元素數(shù)目n無關。假設k=k0=k1=4,最大錯報率F為0.39%。由于越早存入GBF的元素越有可能被后續(xù)存入的元素覆蓋,GBF的漏報率隨元素序號遞減。又由于每個hash函數(shù)進行計算后都要對bit位進行置0或置1,每次設置元素都有可能被覆蓋,因此采用的hash函數(shù)數(shù)目k越大,GBF的漏報率越高。
GBF的錯報率隨hash函數(shù)數(shù)目k增大而減小,而漏報率隨k增大而增大(在m/n不變時),并且k的數(shù)目越多,需要做的計算越多,因此需要對k做一個折中的選擇。GBF的漏報率隨m/n增大而減小(在k不變時),但在數(shù)據(jù)包標記追蹤溯源的應用中,需要考慮數(shù)據(jù)包太大對網(wǎng)絡的影響。
為了應用GBF,先要定義hash函數(shù),選定hash函數(shù)的數(shù)目,此外,還應當在數(shù)據(jù)包中給出GBF的存儲位置。選擇hash函數(shù)數(shù)目為k=k0=k1=2,定義hash函數(shù)為:
x為數(shù)值形式的 IP地址,z為大素數(shù)4294967291,m為 GBF存儲空間大小。通過變換hash函數(shù)的id號得到不同的hash函數(shù)(0≤id<k0+k1),當0≤id<k0時為置0的hash函數(shù),k0≤id<k0+k1時為置1的hash函數(shù),定義:
c[id]=2 ×id+1,d[id]=2 × id+2文中選取GBF存儲空間大小m為38B(304b),在hash函數(shù)數(shù)目為k=k0=k1=2時,根據(jù)第三部分對GBF的介紹,最大錯報率為6.3%,當攻擊路徑上有10個路由器時,追蹤到最接近攻擊端(序號為1)路由器時漏報率達到20%左右(計算方法可參考文獻[8]),若要降低漏報率需增大m/n值。
圖2是帶GBF的數(shù)據(jù)包格式,在IP Header之后加入了40字節(jié)的IP Option,其中第一字節(jié)是flag標志,第二字節(jié)是IP Option的大小(size),在本溯源系統(tǒng)中為0x28(即40字節(jié)),剩下的38字節(jié)是GBF。
圖2 帶GBF的數(shù)據(jù)包格式Fig.2 Packet format with GBF
Internet是由多個自治系統(tǒng)(Autonomous System)組成,通常一個自治系統(tǒng)代表了一個組織,組織對本自治系統(tǒng)具有完全的管理權。在自治系統(tǒng)內(nèi)部的追蹤溯源稱為域內(nèi)追蹤,而在多個自治網(wǎng)絡之間的追蹤稱為跨域追蹤。自治系統(tǒng)中一般都部署有自治網(wǎng)絡管理機(簡稱管理機),由專門的網(wǎng)絡管理員操作。為了能追蹤到攻擊的源頭,追蹤溯源系統(tǒng)應當同時支持域內(nèi)追蹤和跨域追蹤。
基于GBF的追蹤溯源系統(tǒng)包含四個組件:路由器標記組件RM(Router Mark)、受害端溯源組件VT(Victim Traceback)、路由器溯源組件RT(Router Traceback)和管理機溯源組件MT(Manager Traceback)。
系統(tǒng)各組件之間的關系如圖3所示,n代表數(shù)據(jù)包經(jīng)過的路由器數(shù)目,m代表數(shù)據(jù)包經(jīng)過的自治域數(shù)目。RM是部署到路由器上的組件,當數(shù)據(jù)包經(jīng)過路由器時,RM將路由器自身的IP地址標記到數(shù)據(jù)包的GBF中,GBF存儲在IP選項中,由于大部分數(shù)據(jù)包都不使用IP選項,因此不會影響正常數(shù)據(jù)流解析。
圖3 追蹤溯源系統(tǒng)Fig.3 Traceback system
VT是部署在受害端的組件。VT是追蹤溯源的發(fā)起者,當IDS(入侵檢測系統(tǒng))檢測到攻擊發(fā)生時,VT構造ICMP溯源數(shù)據(jù)包并發(fā)送給RT或MT,由RT、MT進行之后的追蹤溯源。ICMP溯源數(shù)據(jù)包中含有從攻擊數(shù)據(jù)包中提取的GBF和開辟的IP地址存儲空間。VT同時也是追蹤溯源結果的解析者,各級RT、MT會將攻擊路徑上的路由器IP地址寫入ICMP溯源數(shù)據(jù)包的IP_DATA區(qū)域并由最接近攻擊機的RT或MT將ICMP溯源數(shù)據(jù)包發(fā)回給VT,VT讀取IP_DATA區(qū)域就能得到攻擊路徑。ICMP溯源數(shù)據(jù)包的格式如圖4所示。
圖4 ICMP溯源數(shù)據(jù)包格式Fig.4 ICMP Traceback packet format
RT是部署在路由器上的組件,以圖5為例說明RT溯源的過程。攻擊數(shù)據(jù)包經(jīng)過R4-R3-R2-R1到達受害端;受害端向R1發(fā)起溯源請求;R1通過查詢GBF判斷R2在攻擊路徑上并將ICMP溯源數(shù)據(jù)包發(fā)給R2;R2收到ICMP溯源請求包之后,檢查發(fā)現(xiàn)R3的IP地址屬于GBF而R5的IP地址不屬于GBF,于是R2將ICMP數(shù)據(jù)包發(fā)給R3;R3通過同樣的判斷過程將ICMP溯源數(shù)據(jù)包發(fā)給R4;R4將ICMP溯源數(shù)據(jù)包發(fā)回給受害端;在整個回溯過程中,各個路由器將自己的IP地址寫入了ICMP溯源數(shù)據(jù)包的IP_DATA區(qū)域,因此,受害端可以得到攻擊路徑V-R1-R2-R3-R4。
圖5 RT溯源過程Fig.5 RT Traceback procedure
MT是部署在自治系統(tǒng)管理機上的組件,MT完全掌握本自治系統(tǒng)的網(wǎng)絡拓撲,可以在MT上重構該自治系統(tǒng)下的攻擊路徑。以圖6為例說明MT溯源的過程。從A(攻擊者)發(fā)出的數(shù)據(jù)包經(jīng)過R9-R8-R7-R3-R1到達V(受害者);V構造ICMP溯源數(shù)據(jù)包并發(fā)給AS1的管理機M1開始溯源;M1首先進行域內(nèi)追蹤,即對AS1內(nèi)的所有路由器R1、R2…R7逐一判斷是否屬于GBF,得到域內(nèi)追蹤的結果R1-R3-R7,并將結果寫入ICMP溯源數(shù)據(jù)包IP_DATA區(qū)域,M1接著尋找上級AS,即判斷鄰接AS的邊界路由器R8、R14是否屬于GBF,判斷結果為R8屬于GBF,于是M1將ICMP溯源數(shù)據(jù)包發(fā)給M2;M2做與M1同樣的工作,得到AS2域內(nèi)的追蹤結果R8-R9,并將結果寫入IP_DATA區(qū)域,由于沒有上級AS,M2將結果發(fā)回V;V重構攻擊路徑為V-R1-R3-R7-R8-R9,追蹤溯源結束。
圖6 MT溯源過程Fig.6 MT Traceback procedure
使用 VMware8.0軟件模擬了兩個自治系統(tǒng)AS1和AS2,共9個 host-only網(wǎng)絡,12個 Linux主機,通過配置路由表和開啟IP轉發(fā)使其中的六個主機以路由器模式運行。AS1由攻擊機A、正常主機N1、管理機 M1和三個路由器(R1、R2、R3)組成,AS2由受害主機V、正常主機N2、管理機M2和三個路由器(R4、R5、R6)組成。各設備的網(wǎng)絡配置情況如圖7所示,省略號“...”代表“192.168”,如“...1.2”即“192.168.1.2”。
圖7 實驗環(huán)境Fig.7 Experimental environment
在各個路由器上運行標記組件RM和溯源組件RT,在管理機M1、M2上運行MT,在攻擊主機A上運行攻擊程序,向受害主機V發(fā)送偽造了源IP地址的UDP攻擊數(shù)據(jù)包。在受害主機V上運行VT,對UDP數(shù)據(jù)包進行追蹤溯源。
VT收到的UDP攻擊數(shù)據(jù)包如圖8所示,圖中深色部分(IP Options的40字節(jié))是GBF空間,其中0x99是標志,0x28是空間大小,之后38字節(jié)是標記后的數(shù)據(jù)空間,未標記時都為0x00。
圖8 數(shù)據(jù)包標記Fig.8 Packet Mark
VT收到的ICMP溯源結果數(shù)據(jù)包如圖9所示,圖中深色部分(ICMP的Data區(qū)域)是溯源結果,第一字節(jié)0x02代表這是溯源結果數(shù)據(jù)包,C0A80705即V 自己的 IP 地址(192.168.7.5),C0A80703 是R6 的 IP 地址(192.168.7.3),以此類推,可以得到攻擊路徑V-R6-R4-R2-R1。
圖9 溯源結果Fig.9 Traceback Result
文中設計的數(shù)據(jù)包標記追蹤溯源系統(tǒng)利用GBF來存儲標記信息,具有如下優(yōu)點:只占用固定大小的空間,數(shù)據(jù)包不會隨著經(jīng)過路由器數(shù)目的增多而增大,減輕了溯源對網(wǎng)絡的壓力;可以對單獨的數(shù)據(jù)包進行溯源,無需收集大量的數(shù)據(jù)包;既可以即時溯源也可以事后溯源;在后續(xù)的研究中,將進一步優(yōu)化錯報率和漏報率,減小GBF存儲空間,研究系統(tǒng)在實際網(wǎng)絡環(huán)境中的應用問題。
[1]CHANG H Y,NARAYAN R,WU S F.Deciduous:Decentralized Source Identification for Network-based Intrusions[C]//Proceedings of the Sixth IFIP.Boston:IEEE International Symposium on Integrated Network Management,1999:701 -714.
[2]ALEX C,CRAIG P,LUIS A,et al.Hash - Based IP Traceback[D].Britain:Cambridge,2001:401 -407.
[3]BLOOM B H.Space/Time Trade-Offsin Hash Codingwith Allowable Errors[J].Communications of the ACM,1970,13(07):422 -426.
[4]BELLOVIN S,LEECH M,TAYLOR T.ICMP Traceback Message[S].Internet Draft,California:IETF,2003:112-125.
[5]胡長俊.概率包標記技術綜述[J].通信技術,2009,42(02):267-268.HU Chang- jun.Overview on Probabilistic Packet Marking Technology[J].Communications Technology,2009,42(02):267-269.
[6]BELENKY A,ANSARI N.IP Traceback with Deterministic Packet Marking[J].IEEE Communications Letters,2003,7(04):162-164.
[7]劉紅,陳秀真,嚴慶蕾.基于動態(tài)概率的多條標記IP追蹤方法[J].信息安全與通信保密,2013(03):66-69.LIU Hong,CHEN Xiu - zhen,YAN Qing - lei.A Multi-Packet Marking Method for IP TracebackBased on DPPM[J].Information Security and Communications Privacy,2013(03):66-69.
[8]RAFAEL P L,PEDRO B V,OTTO C D.Generalized Bloom Filters[EB/OL].(2005-05-24)[2014 -01-25].https://www.gta.ufrj.br/ftp/gta/TechReports/LVD05d.pdf.