郭曉軍,孫海霞,張國(guó)梁
(1.西藏民族大學(xué) 信息工程學(xué)院,陜西 咸陽(yáng) 712082;2.東南大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 南京 211189;3.西藏民族大學(xué) 西藏光信息處理與可視化技術(shù)重點(diǎn)實(shí)驗(yàn)室,陜西 咸陽(yáng) 712082)
目前針對(duì)西藏Web站點(diǎn)流量識(shí)別方面[1]研究工作較少,因此本文主要研究面向藏區(qū)Web站點(diǎn)流量識(shí)別的技術(shù)。
在Web站點(diǎn)流量識(shí)別方面,國(guó)內(nèi)外學(xué)者已經(jīng)進(jìn)行了一些研究工作,多數(shù)以靜態(tài)的網(wǎng)絡(luò)流量記錄文件為數(shù)據(jù)對(duì)象。Ihm等[2]對(duì)現(xiàn)代Web站點(diǎn)流量的結(jié)構(gòu)進(jìn)行了海量數(shù)據(jù)分析,指出由于當(dāng)前Web站點(diǎn)頁(yè)面內(nèi)容包含豐富媒體應(yīng)用使得Web流量結(jié)構(gòu)復(fù)雜而不易識(shí)別;Ben等[3]通過(guò)對(duì)靜態(tài)包記錄數(shù)據(jù)集中報(bào)文的TCP/IP頭部字段分析來(lái)分析和提取其中的Web流量,但該方法沒(méi)有對(duì)在線網(wǎng)絡(luò)流量做測(cè)試,未能獲知其效果;Katerina等[4]從流持續(xù)時(shí)間、Request個(gè)數(shù)、會(huì)話傳輸字節(jié)數(shù)來(lái)描述惡意Web流量,但必須要求有先驗(yàn)知識(shí),需要人工輔助分析,無(wú)法實(shí)現(xiàn)自動(dòng)判斷,無(wú)法應(yīng)用于大流量網(wǎng)絡(luò)環(huán)境;David等[5]基于其校園網(wǎng)24小時(shí)的流量記錄文件,使用BroIDS系統(tǒng)和TCP 80端口來(lái)進(jìn)行提取Web流量,識(shí)別準(zhǔn)確度受到限制,且該方式僅適用于與靜態(tài)的流量記錄文件。從以上工作可以看出,多數(shù)Web流量識(shí)別算法均以靜態(tài)網(wǎng)絡(luò)流量文件為對(duì)象,且缺少在大流量網(wǎng)絡(luò)環(huán)境中的實(shí)時(shí)驗(yàn)證,識(shí)別正確率較低。
針對(duì)上述問(wèn)題,本文提出了一種面向藏區(qū)Web站點(diǎn)流量識(shí)別算法TWTBF,該算法基于Bloom Filter[6],將能夠反映藏區(qū)Web站點(diǎn)流的多個(gè)特征字段映射為BF中的位數(shù)組,形成識(shí)別規(guī)則,然后在設(shè)定假陽(yáng)率的情況下,通過(guò)多個(gè)Hash函數(shù)來(lái)計(jì)算待識(shí)別數(shù)據(jù)包相應(yīng)特征字段的Hash值來(lái)判斷是否為Web流量包,有效解提高了Web站點(diǎn)識(shí)別算法的準(zhǔn)確性和大流量網(wǎng)絡(luò)環(huán)境的魯棒性。
Bloom Filter(BF)是一種空間效率很高的隨機(jī)數(shù)據(jù)結(jié)構(gòu),其核心思想主要是通過(guò)多個(gè)不同的Hash函數(shù)來(lái)解決“沖突”。它利用位數(shù)組很簡(jiǎn)潔地表示一個(gè)集合,并能判斷一個(gè)元素是否屬于這個(gè)集合。它是一個(gè)判斷元素是否存在于集合中的快速算法。
(1)BF初始化。初始狀態(tài)時(shí),Bloom Filter是一個(gè)包含s(s≥0)個(gè)二進(jìn)制位的位數(shù)組Array,每一位都置為0,如圖1所示。
圖1 Bloom Filter的位數(shù)組Array
(2)映射關(guān)鍵字集合D。假設(shè)關(guān)鍵字集合D={d1,d2,……,dt},t(t≥0)。BF使用q個(gè)相互獨(dú)立哈希函數(shù)(Hash Function),H1()~Hq()它們分別將集合D中的每個(gè)元素di映射到Array數(shù)組中。對(duì)集合D任意一個(gè)元素di,分別計(jì)算哈希值H1(di)~Hq(di),并在Array中將H1(di)~Hq(di)所對(duì)應(yīng)位置上的二進(jìn)制位設(shè)置為1,如圖2所示。
圖2 BF映射集合D中元素的示例(q=3)
(3)判斷未知元素x是否屬于D。BF在判斷x是否屬于D集合時(shí),只需要使用q個(gè)哈希函數(shù)對(duì)x分別計(jì)算出哈希值H1(x),H2(x),…,Hq(x)。若H1(x),H2(x),…,Hq(x)所代表的Array位置的值都為1(即q個(gè)位置都已被設(shè)置為1),那么就認(rèn)為x∈屬于集合D(即x為集合D中的元素),否則就認(rèn)為x?不屬于集合D(即x不是集合D中的元素)。圖3中給出了一個(gè)判斷示例,由于哈希值H2(x1)在Array所代表的位置的二進(jìn)制位值為0,因此x1不是集合D中的元素,而x2則屬于集合D。
圖3 BF判讀未知元素x1,x2是否屬于集合D
從1.1節(jié)及文獻(xiàn)[5]可知,BF涉及4個(gè)關(guān)鍵參數(shù),表1給出了這些參數(shù)名稱及其含義。
表1 BF的參數(shù)及含義
由于BF不是一個(gè)完全精確的方法,它允許通過(guò)極小的假陽(yáng)率(即假陽(yáng)性的概率)來(lái)?yè)Q取大量存儲(chǔ)空間的節(jié)省,其假陽(yáng)率δ可通過(guò)式(1)計(jì)算
(1)
當(dāng)s,t給定時(shí),使得δ達(dá)到最小值時(shí)的q值為
(2)
此時(shí)δ為
(3)
而s可由式(4)計(jì)算
(4)
上述過(guò)程的具體推理,請(qǐng)參考文獻(xiàn)[6],本文此處不再贅述。
藏區(qū)Web站點(diǎn)流量提取主要是指在高速大流量網(wǎng)絡(luò)環(huán)境下,如何根據(jù)藏區(qū)Web流量的特征快速準(zhǔn)確地從被管網(wǎng)絡(luò)海量數(shù)據(jù)包中識(shí)別出藏區(qū)Web站點(diǎn)流量的數(shù)據(jù)包,進(jìn)而準(zhǔn)確獲得瀏覽藏區(qū)Web站點(diǎn)過(guò)程的流量,為其它應(yīng)用提供純凈的藏區(qū)Web站點(diǎn)流量數(shù)據(jù)。
目前,Web服務(wù)主要使用傳輸層TCP協(xié)議[7]的80端口、應(yīng)用層HTTP協(xié)議來(lái)建立連接、傳輸數(shù)據(jù)。然而,卻不能使用這兩個(gè)特征來(lái)唯一標(biāo)識(shí)Web服務(wù),這是因?yàn)橐环矫娌捎肏TTP協(xié)議的不一定是Web服務(wù),例如SSDP(simple service discovery protocol)服務(wù)也使用HTTP協(xié)議[8]實(shí)現(xiàn),如圖4所示;而另一方面,即使同時(shí)使用TCP 80端口、HTTP協(xié)議的也未必是Web服務(wù),如圖5所示,此流量是大白菜裝機(jī)維護(hù)工具桌面應(yīng)用工具獲取數(shù)據(jù)時(shí)產(chǎn)生的流量。
圖4 使用HTTP協(xié)議的SSDP服務(wù)
圖5 同時(shí)使用TCP 80端口和HTTP協(xié)議的應(yīng)用流量
由此看見(jiàn),在大流量的網(wǎng)絡(luò)環(huán)境下,由于流量類型復(fù)雜,僅根據(jù)端口號(hào)80和協(xié)議標(biāo)識(shí)很難準(zhǔn)確識(shí)別Web流量。為提高識(shí)別Web流量的準(zhǔn)確性,本文根據(jù)大量的實(shí)際Web流量觀察和分析,可采用IDTCP,80,8080,text/html,Server,Date等6個(gè)關(guān)鍵字作為識(shí)別Web流量特征。其中,IDTCP=6為IP頭部中“協(xié)議”字段TCP協(xié)議的編號(hào)。80,8080分別為TCP頭部中的端口號(hào),text/html為HTTP頭部中“Content-Type”字段的值,Server、Date分別為HTTP頭部的字段名稱。
因此,本文的關(guān)鍵字集合D={IDTCP,80,8080,text/html,Server,Date},t=|D|=6。
Hash函數(shù)[9]是指能夠?qū)㈥P(guān)鍵字(key)的值直接映射為數(shù)組記錄中的某個(gè)元素的函數(shù),以加快查找速度。該數(shù)組記錄也叫散列表(hash table)。
在BF中,Hash函數(shù)的作用是將關(guān)鍵字集合D中的所有元素快速地映射到位數(shù)組Array中。目前常用的Hash函數(shù)構(gòu)造方法有直接尋址法、平方取中法、隨機(jī)數(shù)法、除留余數(shù)法等多種方法。為簡(jiǎn)單起見(jiàn),本文此處直接借用文獻(xiàn)[9]中已有的Hash函數(shù)作為BF中Hash函數(shù)的選擇范圍,如圖6所示。至于BF中Hash函數(shù)的個(gè)數(shù),由式(2)給出的Hash函數(shù)個(gè)數(shù)q、集合D的勢(shì)t以及Array位數(shù)組s之間的關(guān)系決定。
圖6 常用Hash函數(shù)
在確定Web站點(diǎn)特征后,提取Web站點(diǎn)流量過(guò)程實(shí)質(zhì)上就是根據(jù)這些特征構(gòu)造Bloom Filter,然后利用該Bloom Filter從被監(jiān)管網(wǎng)絡(luò)的大流量環(huán)境下的流量中正確識(shí)別出Web流的首個(gè)數(shù)據(jù)包,在此基礎(chǔ)上,再將該Web流的后續(xù)數(shù)據(jù)包過(guò)濾出,該過(guò)程的具體流程如圖7所示。
圖7 藏區(qū)Web站點(diǎn)流量提取流程
其中,IPsrc、IPdst、FPro、FSPort和FDPort字段分別代表網(wǎng)絡(luò)包的源IP地址、目的IP地址、IP頭部中的協(xié)議字段、源端口和目的端口。FServer、FDate分別代表HTTP頭部中的Server字段和Date字段,F(xiàn)text/html表示Content-Type字段的值。在確認(rèn)Web站點(diǎn)流量的首個(gè)數(shù)據(jù)包后,本文利用文獻(xiàn)[10]中的異或Hash算法來(lái)過(guò)濾出該Web流量后續(xù)的網(wǎng)絡(luò)包。
本文使用C語(yǔ)言實(shí)現(xiàn)了Bloom Filter及所提出的Web站點(diǎn)流量提取方法。為測(cè)試該算法性能,本文將其部署在局域網(wǎng)內(nèi)一臺(tái)安裝雙網(wǎng)卡的服務(wù)器GATE上(軟硬件配置見(jiàn)表2),并使用Libpcap庫(kù)[11]捕獲網(wǎng)絡(luò)包,實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖8所示。
表2 GATE軟硬件配置參數(shù)
圖8 實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)
準(zhǔn)確性是指本文所提算法所能正確識(shí)別出的Web站點(diǎn)流的情況,此處用識(shí)別準(zhǔn)確率θ表示,即在設(shè)定δ值的條件下,正確識(shí)別出的Web站點(diǎn)流量首個(gè)數(shù)據(jù)包數(shù)量與所有測(cè)試Web站點(diǎn)總數(shù)(WSNum)的比例。本文測(cè)試了4個(gè)不同δ值下的識(shí)別準(zhǔn)確率θ,實(shí)驗(yàn)結(jié)果如圖9所示。
圖9 不同δ值對(duì)應(yīng)的識(shí)別準(zhǔn)確率θ
從圖9中可以看出,當(dāng)δ值較大時(shí)(δ=0.1,δ=0.01),隨著測(cè)試Web站點(diǎn)總數(shù)的增加,識(shí)別準(zhǔn)確率θ會(huì)呈現(xiàn)明顯的下降趨勢(shì)。這是主要是因?yàn)?,δ值較大BF的位數(shù)組Array長(zhǎng)度s較小,在對(duì)較多Web站點(diǎn)流量的首個(gè)數(shù)據(jù)包后應(yīng)用q個(gè)Hash函數(shù)產(chǎn)生的碰撞次數(shù)會(huì)大大增加,從而導(dǎo)致對(duì)數(shù)據(jù)包的誤判概率增加,因而會(huì)降低識(shí)別準(zhǔn)確率θ。但當(dāng)δ值較小時(shí)(δ=0.001),Hash函數(shù)產(chǎn)生的碰撞次數(shù)會(huì)明顯下降,此時(shí)θ的下降趨勢(shì)也明顯緩慢,基本保持在92.3%以上。而當(dāng)δ=0.0001時(shí),此時(shí)BF完全能正確識(shí)別所有測(cè)試的Web站點(diǎn)流量的首個(gè)數(shù)據(jù)包,識(shí)別準(zhǔn)確率θ基本為100%。可見(jiàn),δ值的越小,就越能取得較好的識(shí)別效果。然而,δ值變小時(shí),BF的Array位數(shù)組大小s、Hash函數(shù)個(gè)數(shù)q也會(huì)極大增加,會(huì)增加識(shí)別過(guò)程中的計(jì)算復(fù)雜度。因此,應(yīng)該根據(jù)實(shí)際問(wèn)題選擇恰當(dāng)?shù)腂F參數(shù)。表3給出了不同δ值所對(duì)應(yīng)的s、q值。
表3 不同δ所對(duì)應(yīng)的s和q
魯棒性指TWTBF算法在被管網(wǎng)絡(luò)不同背景流量下,完成所測(cè)試Web站點(diǎn)流的識(shí)別的時(shí)間。主要用于衡量TWTBF算法對(duì)網(wǎng)絡(luò)噪音流量的抵抗能力。
本文在不同本地網(wǎng)絡(luò)背景流量下對(duì)TWTBF算法進(jìn)行了測(cè)試,結(jié)果如圖10所示。被管網(wǎng)絡(luò)背景流量采用工具iPerf[12]生成。該圖表明,在測(cè)試Web站點(diǎn)流保持不變情況下,背景流量增加對(duì)TWTBF算法識(shí)別Web站點(diǎn)流量的時(shí)間影響并不明顯。這主要由于一方面GATE主機(jī)上的千兆網(wǎng)卡能以極高的效率捕獲局域網(wǎng)背景流量,另一方面TWTBF算法主要采用Hash映射,能快速地對(duì)數(shù)據(jù)包的字段進(jìn)行計(jì)算,判斷該包是否為Web流的首個(gè)數(shù)據(jù)包。此兩方面的優(yōu)勢(shì)決定了TWTBF算法在不同背景流量表現(xiàn)出了較好的魯棒性。另外,圖10也說(shuō)明隨著測(cè)試Web站點(diǎn)數(shù)量的增加,TWTBF算法識(shí)別Web站點(diǎn)所花費(fèi)時(shí)間也在以近似線性的方式增加。
圖10 被管網(wǎng)背景流量對(duì)TWTBF算法識(shí)別時(shí)間的影響
藏區(qū)Web站點(diǎn)流量準(zhǔn)確而快速的識(shí)別有助于研究藏區(qū)內(nèi)Web站點(diǎn)信息泄露評(píng)估、滲透測(cè)試、指紋信息提取等方面的內(nèi)容。本文提出了一種面向藏區(qū)Web站點(diǎn)的流量識(shí)別方法,通過(guò)精確Web站點(diǎn)流量特征和引入Bloom Filter結(jié)構(gòu)來(lái)有效保證在被管網(wǎng)大流量條件下對(duì)Web站點(diǎn)流量識(shí)別的準(zhǔn)確性和魯棒性,并在真實(shí)網(wǎng)絡(luò)環(huán)境下進(jìn)行了實(shí)驗(yàn)驗(yàn)證,取得了較好的實(shí)驗(yàn)效果。下一步打算在Web站點(diǎn)多流歸并、加密Web流量識(shí)別、更大規(guī)模被管網(wǎng)絡(luò)試用等方面開(kāi)展研究工作。
[1]McIlwain C.Racial formation,inequality and the political
economy of Web traffic[J].Information,Communication & Society,2016,19(7):1-17.
[2]Ihm S,Pai VS.Towards understanding modern Web traffic[C]//Proc of the ACM SIGCOMM Conference on Internet Measurement Conference.New York:ACM,2011:295-312.
[3]Newton B,Jeffay K,Aikat J.The continued evolution of Web traffic[C]//Proc of IEEE 21st International Symposium on Modelling,Analysis and Simulation of Computer and Telecommunication Systems.New York:IEEE,2013:80-89.
[4]Goseva-Popstojanova K,Anastasovski G,Dimitrijevikj A,et al.Characterization and classification of malicious Web traffic[J].Computers & Security,2014,42(5):92-115.
[5]Gugelmann D,Ager B,Lenders V,et al.Towards understanding upstream Web traffic[C]//Proc of International Wireless Communications and Mobile Computing Conference.New York:IEEE,2015:538-544.
[6]Xylomenos G,Ververidis CN,Siris VA,et al.A survey of information-centric networking research[J].IEEE Communications Surveys & Tutorials,2014,16(2):1024-1049.
[7]Zhou D,Song W,Wang P,et al.Multipath TCP for user coo-peration in LTE networks[J].IEEE Network,2015,29(1):18-24.
[8]Grigorik I.Making the Web faster with HTTP 2.0[J].Communications of the ACM,2013,56(12):42-49.
[9]Arash Partow.Available Hash functions[EB/OL].[2016-10-22].http://www.partow.net/programming/hashfunctions/#AvailableHashFunctions.
[10]Fu C,Bian O,Jiang H,et al.A new chaos-based image cipher using a hash function[C]//Proc of IEEE/ACIS 15th International Conference on Computer and Information Science.New York:IEEE,2016:1-9.
[11]Luis Martin Garcia.Libpcap library[EB/OL].[2000-07-13/2016-09-24].http://www.tcpdump.org/.
[12]Wang Q,Yin S,Gnawali O,et al.Demo:OpenVLC1.0 Platform for research in visible light communication networks[C]//Proc of of the 21st Annual International Conference on Mobile Computing and Networking.New York:ACM,2015:179-181.