黃 宸,陳周國,郝 堯,蒲 石
(保密通信重點(diǎn)實(shí)驗(yàn)室,四川 成都610041)
隨著互聯(lián)網(wǎng)在人類政治、經(jīng)濟(jì)、文化、生活等各方面發(fā)揮越來越重要的作用,互聯(lián)網(wǎng)的安全也越發(fā)引起人們的關(guān)注。面對日益嚴(yán)峻的網(wǎng)絡(luò)安全形勢,僅僅依靠傳統(tǒng)的部署防火墻、IDS、IPS等被動防御方法已不足以確保組織、公司的網(wǎng)絡(luò)安全。追蹤溯源是一種主動防御方法,是在網(wǎng)絡(luò)攻擊發(fā)生時(shí)主動定位網(wǎng)絡(luò)攻擊者身份或位置及其攻擊路徑的過程。身份是指攻擊者的姓名、賬號等能夠代表攻擊者的信息,位置可以是攻擊者的物理位置或網(wǎng)絡(luò)地址,攻擊路徑是攻擊數(shù)據(jù)流從攻擊端到受害端所經(jīng)過的網(wǎng)絡(luò)路徑。追蹤溯源至少具有以下三點(diǎn)重要意義:①從源頭上遏制攻擊;②指導(dǎo)防御方采取有針對性防御措施;③為從司法上懲治網(wǎng)絡(luò)罪犯提供有力證據(jù)。
學(xué)術(shù)界對網(wǎng)絡(luò)追蹤溯源已經(jīng)有了較多的研究,主要包括:鏈路測試法、日志記錄法、iTrace和數(shù)據(jù)包標(biāo)記法。鏈路測試法[1]是在攻擊發(fā)生時(shí)對各個路由器之間的鏈路進(jìn)行測試以確定攻擊流經(jīng)過的路徑。鏈路測試法缺陷是:只能在攻擊發(fā)生時(shí)應(yīng)用;只能進(jìn)行自治域內(nèi)的追蹤;建立IPSec安全聯(lián)盟需要消耗大量資源。SPIE(Source Path Isolation Engine)[2]是一種典型的日志記錄追蹤溯源方法,該方法提取數(shù)據(jù)包的IP頭固定部分與數(shù)據(jù)的前8字節(jié)進(jìn)行 Hash 運(yùn)算,采用 Bloom Filter[3]存儲結(jié)果。SPIE優(yōu)化了日志存儲所需的空間,但在當(dāng)今的高速網(wǎng)絡(luò)中,每秒所需的存儲空間仍然達(dá)到了GB級別,所需的存儲空間過大是日志記錄法的最大缺陷。iTrace[4]是一種基于ICMP的溯源方法,路由器以一定的概率抽取所轉(zhuǎn)發(fā)數(shù)據(jù)包的特征信息,與路由器自身的IP地址一起封裝到ICMP數(shù)據(jù)包,之后發(fā)給目的端,當(dāng)遭受攻擊時(shí),受害端收到足夠多的數(shù)據(jù)包就可以重構(gòu)攻擊路徑。iTrace溯源法需要收集大量數(shù)據(jù)包,重構(gòu)攻擊路徑較慢,對受害端的資源消耗較大。數(shù)據(jù)包標(biāo)記法對路由器所轉(zhuǎn)發(fā)的數(shù)據(jù)包做標(biāo)記,受害端收到數(shù)據(jù)包后可以根據(jù)標(biāo)記信息重構(gòu)攻擊路徑。典型的數(shù)據(jù)包標(biāo)記法有:概率包標(biāo)記法[5]、確定包標(biāo)記法[6]和動態(tài)概率包標(biāo)記法[7]。
最早的數(shù)據(jù)包標(biāo)記追蹤溯源直接在數(shù)據(jù)包中標(biāo)記路由器的IP地址,由于每個IP地址占4字節(jié),而數(shù)據(jù)包從攻擊端到達(dá)受害端可能經(jīng)過很多個路由器,需要的存儲空間非常大,概率包標(biāo)記法雖然減輕了路由器和網(wǎng)絡(luò)的負(fù)載,減小了數(shù)據(jù)包的長度,但追蹤溯源時(shí)需要收集大量數(shù)據(jù)包,重構(gòu)路徑速度慢且無法對單包進(jìn)行溯源。為了解決以上問題,文中在包標(biāo)記追蹤溯源中引入一種高效的存儲結(jié)構(gòu):Generalized Bloom Filter(簡稱GBF)。
Generalized Bloom Filter是 Rafael P.Laufer等人[8]提出的一種可以將大量數(shù)據(jù)存入較小存儲空間并能快速查詢的數(shù)據(jù)結(jié)構(gòu),GBF相對Bloom Filter的改進(jìn)是GBF對存儲空間的初始狀態(tài)沒有要求。對于集合S={s1,s2,…,sn},GBF采用 k0個 g哈希函數(shù)和k1個h哈希函數(shù),g函數(shù)將對應(yīng)比特位置0,h函數(shù)將對應(yīng)比特位置1,假如g函數(shù)和h函數(shù)計(jì)算出來的值相同,則置0。查詢某個元素si是否屬于S,需計(jì)算 g1(si),g2(si),…,gk0(si)并檢查對應(yīng)比特位是否為0,還需計(jì)算si的hash值h1(si),h2(si),…,hk1(si)并檢查對應(yīng)的位是否為1,如圖1所示。
判斷某個元素x是否屬于集合S,GBF并不能保證100%的正確率。對于集合S中的某個元素x,當(dāng)將x在存儲空間的bit位分別置0和置1后,在x之后存儲的元素有可能將x對應(yīng)的bit位翻轉(zhuǎn),導(dǎo)致查詢結(jié)果為x不屬于S,造成漏報(bào)。對于某個不屬于集合S的元素y,也可能在其他元素的影響下g1(y),g2(y),…,gk0(y)被置 0,h1(y),h2(y)…h(huán)k1(y)被置1,造成y∈S的錯報(bào)。在數(shù)據(jù)包標(biāo)記追蹤溯源中,錯報(bào)意味著把本不屬于攻擊路徑上的路由器判斷為屬于攻擊路徑,漏報(bào)意味著把本屬于攻擊路徑上的路由器判斷為不屬于攻擊路徑。因此,需要研究GBF的錯報(bào)率和漏報(bào)率,并盡量降低錯報(bào)率和漏報(bào)率。根據(jù)文獻(xiàn)[8],GBF的最大錯報(bào)率F在k=k0=k1時(shí)取得:F=(1/4)k。
圖1 GBF存儲過程Fig.1 GBF store procedure
GBF的最大錯報(bào)率僅隨所選取的hash函數(shù)的數(shù)目的增加而遞減,與存儲空間的大小m和元素?cái)?shù)目n無關(guān)。假設(shè)k=k0=k1=4,最大錯報(bào)率F為0.39%。由于越早存入GBF的元素越有可能被后續(xù)存入的元素覆蓋,GBF的漏報(bào)率隨元素序號遞減。又由于每個hash函數(shù)進(jìn)行計(jì)算后都要對bit位進(jìn)行置0或置1,每次設(shè)置元素都有可能被覆蓋,因此采用的hash函數(shù)數(shù)目k越大,GBF的漏報(bào)率越高。
GBF的錯報(bào)率隨hash函數(shù)數(shù)目k增大而減小,而漏報(bào)率隨k增大而增大(在m/n不變時(shí)),并且k的數(shù)目越多,需要做的計(jì)算越多,因此需要對k做一個折中的選擇。GBF的漏報(bào)率隨m/n增大而減小(在k不變時(shí)),但在數(shù)據(jù)包標(biāo)記追蹤溯源的應(yīng)用中,需要考慮數(shù)據(jù)包太大對網(wǎng)絡(luò)的影響。
為了應(yīng)用GBF,先要定義hash函數(shù),選定hash函數(shù)的數(shù)目,此外,還應(yīng)當(dāng)在數(shù)據(jù)包中給出GBF的存儲位置。選擇hash函數(shù)數(shù)目為k=k0=k1=2,定義hash函數(shù)為:
x為數(shù)值形式的 IP地址,z為大素?cái)?shù)4294967291,m為 GBF存儲空間大小。通過變換hash函數(shù)的id號得到不同的hash函數(shù)(0≤id<k0+k1),當(dāng)0≤id<k0時(shí)為置0的hash函數(shù),k0≤id<k0+k1時(shí)為置1的hash函數(shù),定義:
c[id]=2 ×id+1,d[id]=2 × id+2文中選取GBF存儲空間大小m為38B(304b),在hash函數(shù)數(shù)目為k=k0=k1=2時(shí),根據(jù)第三部分對GBF的介紹,最大錯報(bào)率為6.3%,當(dāng)攻擊路徑上有10個路由器時(shí),追蹤到最接近攻擊端(序號為1)路由器時(shí)漏報(bào)率達(dá)到20%左右(計(jì)算方法可參考文獻(xiàn)[8]),若要降低漏報(bào)率需增大m/n值。
圖2是帶GBF的數(shù)據(jù)包格式,在IP Header之后加入了40字節(jié)的IP Option,其中第一字節(jié)是flag標(biāo)志,第二字節(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)具有完全的管理權(quán)。在自治系統(tǒng)內(nèi)部的追蹤溯源稱為域內(nèi)追蹤,而在多個自治網(wǎng)絡(luò)之間的追蹤稱為跨域追蹤。自治系統(tǒng)中一般都部署有自治網(wǎng)絡(luò)管理機(jī)(簡稱管理機(jī)),由專門的網(wǎng)絡(luò)管理員操作。為了能追蹤到攻擊的源頭,追蹤溯源系統(tǒng)應(yīng)當(dāng)同時(shí)支持域內(nèi)追蹤和跨域追蹤。
基于GBF的追蹤溯源系統(tǒng)包含四個組件:路由器標(biāo)記組件RM(Router Mark)、受害端溯源組件VT(Victim Traceback)、路由器溯源組件RT(Router Traceback)和管理機(jī)溯源組件MT(Manager Traceback)。
系統(tǒng)各組件之間的關(guān)系如圖3所示,n代表數(shù)據(jù)包經(jīng)過的路由器數(shù)目,m代表數(shù)據(jù)包經(jīng)過的自治域數(shù)目。RM是部署到路由器上的組件,當(dāng)數(shù)據(jù)包經(jīng)過路由器時(shí),RM將路由器自身的IP地址標(biāo)記到數(shù)據(jù)包的GBF中,GBF存儲在IP選項(xiàng)中,由于大部分?jǐn)?shù)據(jù)包都不使用IP選項(xiàng),因此不會影響正常數(shù)據(jù)流解析。
圖3 追蹤溯源系統(tǒng)Fig.3 Traceback system
VT是部署在受害端的組件。VT是追蹤溯源的發(fā)起者,當(dāng)IDS(入侵檢測系統(tǒng))檢測到攻擊發(fā)生時(shí),VT構(gòu)造ICMP溯源數(shù)據(jù)包并發(fā)送給RT或MT,由RT、MT進(jìn)行之后的追蹤溯源。ICMP溯源數(shù)據(jù)包中含有從攻擊數(shù)據(jù)包中提取的GBF和開辟的IP地址存儲空間。VT同時(shí)也是追蹤溯源結(jié)果的解析者,各級RT、MT會將攻擊路徑上的路由器IP地址寫入ICMP溯源數(shù)據(jù)包的IP_DATA區(qū)域并由最接近攻擊機(jī)的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到達(dá)受害端;受害端向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)管理機(jī)上的組件,MT完全掌握本自治系統(tǒng)的網(wǎng)絡(luò)拓?fù)洌梢栽贛T上重構(gòu)該自治系統(tǒng)下的攻擊路徑。以圖6為例說明MT溯源的過程。從A(攻擊者)發(fā)出的數(shù)據(jù)包經(jīng)過R9-R8-R7-R3-R1到達(dá)V(受害者);V構(gòu)造ICMP溯源數(shù)據(jù)包并發(fā)給AS1的管理機(jī)M1開始溯源;M1首先進(jìn)行域內(nèi)追蹤,即對AS1內(nèi)的所有路由器R1、R2…R7逐一判斷是否屬于GBF,得到域內(nèi)追蹤的結(jié)果R1-R3-R7,并將結(jié)果寫入ICMP溯源數(shù)據(jù)包IP_DATA區(qū)域,M1接著尋找上級AS,即判斷鄰接AS的邊界路由器R8、R14是否屬于GBF,判斷結(jié)果為R8屬于GBF,于是M1將ICMP溯源數(shù)據(jù)包發(fā)給M2;M2做與M1同樣的工作,得到AS2域內(nèi)的追蹤結(jié)果R8-R9,并將結(jié)果寫入IP_DATA區(qū)域,由于沒有上級AS,M2將結(jié)果發(fā)回V;V重構(gòu)攻擊路徑為V-R1-R3-R7-R8-R9,追蹤溯源結(jié)束。
圖6 MT溯源過程Fig.6 MT Traceback procedure
使用 VMware8.0軟件模擬了兩個自治系統(tǒng)AS1和AS2,共9個 host-only網(wǎng)絡(luò),12個 Linux主機(jī),通過配置路由表和開啟IP轉(zhuǎn)發(fā)使其中的六個主機(jī)以路由器模式運(yùn)行。AS1由攻擊機(jī)A、正常主機(jī)N1、管理機(jī) M1和三個路由器(R1、R2、R3)組成,AS2由受害主機(jī)V、正常主機(jī)N2、管理機(jī)M2和三個路由器(R4、R5、R6)組成。各設(shè)備的網(wǎng)絡(luò)配置情況如圖7所示,省略號“...”代表“192.168”,如“...1.2”即“192.168.1.2”。
圖7 實(shí)驗(yàn)環(huán)境Fig.7 Experimental environment
在各個路由器上運(yùn)行標(biāo)記組件RM和溯源組件RT,在管理機(jī)M1、M2上運(yùn)行MT,在攻擊主機(jī)A上運(yùn)行攻擊程序,向受害主機(jī)V發(fā)送偽造了源IP地址的UDP攻擊數(shù)據(jù)包。在受害主機(jī)V上運(yùn)行VT,對UDP數(shù)據(jù)包進(jìn)行追蹤溯源。
VT收到的UDP攻擊數(shù)據(jù)包如圖8所示,圖中深色部分(IP Options的40字節(jié))是GBF空間,其中0x99是標(biāo)志,0x28是空間大小,之后38字節(jié)是標(biāo)記后的數(shù)據(jù)空間,未標(biāo)記時(shí)都為0x00。
圖8 數(shù)據(jù)包標(biāo)記Fig.8 Packet Mark
VT收到的ICMP溯源結(jié)果數(shù)據(jù)包如圖9所示,圖中深色部分(ICMP的Data區(qū)域)是溯源結(jié)果,第一字節(jié)0x02代表這是溯源結(jié)果數(shù)據(jù)包,C0A80705即V 自己的 IP 地址(192.168.7.5),C0A80703 是R6 的 IP 地址(192.168.7.3),以此類推,可以得到攻擊路徑V-R6-R4-R2-R1。
圖9 溯源結(jié)果Fig.9 Traceback Result
文中設(shè)計(jì)的數(shù)據(jù)包標(biāo)記追蹤溯源系統(tǒng)利用GBF來存儲標(biāo)記信息,具有如下優(yōu)點(diǎn):只占用固定大小的空間,數(shù)據(jù)包不會隨著經(jīng)過路由器數(shù)目的增多而增大,減輕了溯源對網(wǎng)絡(luò)的壓力;可以對單獨(dú)的數(shù)據(jù)包進(jìn)行溯源,無需收集大量的數(shù)據(jù)包;既可以即時(shí)溯源也可以事后溯源;在后續(xù)的研究中,將進(jìn)一步優(yōu)化錯報(bào)率和漏報(bào)率,減小GBF存儲空間,研究系統(tǒng)在實(shí)際網(wǎng)絡(luò)環(huán)境中的應(yīng)用問題。
[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]胡長俊.概率包標(biāo)記技術(shù)綜述[J].通信技術(shù),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]劉紅,陳秀真,嚴(yán)慶蕾.基于動態(tài)概率的多條標(biāo)記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.