趙東卓, 劉棣華, 丁 斌
(長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,吉林 長春 130012)
跨入21世紀(jì)以來,網(wǎng)絡(luò)的迅猛發(fā)展逐漸地改變了人們的生活方式,各種通訊、信息傳遞、文件傳輸越來越依靠網(wǎng)絡(luò)數(shù)據(jù)的傳輸,網(wǎng)絡(luò)數(shù)據(jù)的爆炸式增長已不可避免。在此契機(jī)下,各個網(wǎng)絡(luò)公司都在努力挖掘這個網(wǎng)絡(luò)蛋糕,而網(wǎng)民應(yīng)用最廣泛的就是文件傳輸(主要是P2P下載)和網(wǎng)絡(luò)視頻(主要是P2PIPTV)。據(jù)統(tǒng)計(jì),P2P流量已成為互聯(lián)網(wǎng)的主宰流量,約占全部流量的60%以上,但產(chǎn)生P2P流量的應(yīng)用卻占總應(yīng)用的很少一部分,P2P流量與非P2P流量有著明顯的區(qū)別。因此,對P2P流量的限制主要采用兩種思路:
1)通過區(qū)別P2P流量與非P2P流量的不同特點(diǎn)來確定P2P流量,從而阻斷P2P流量,已達(dá)到降低網(wǎng)絡(luò)負(fù)載的目的;
2)通過對具體P2P應(yīng)用流量的識別來降低網(wǎng)絡(luò)負(fù)載;
3)對網(wǎng)絡(luò)應(yīng)用進(jìn)行審計(jì),可以得到每個應(yīng)用的使用時間高峰期以及地域特征來更好地利用網(wǎng)絡(luò)。
目前的P2P流量的主要特征有流量數(shù)特征、網(wǎng)絡(luò)架構(gòu)特征、RTT的異構(gòu)分布。
P2P業(yè)務(wù)為了提高數(shù)據(jù)率應(yīng)用的方法是:啟用多個TCP連接,同時從多個P2P節(jié)點(diǎn)進(jìn)行雙向數(shù)據(jù)傳輸。因此,單位時間內(nèi),如果目的地址有大量的TCP流,那么說明可能是P2P流量(也有可能是基于TCP協(xié)議的網(wǎng)絡(luò)攻擊)。
在P2P網(wǎng)絡(luò)中,P2P節(jié)點(diǎn)之間進(jìn)行的數(shù)據(jù)傳輸打破了傳統(tǒng)的C/S模式。在P2P網(wǎng)絡(luò)中,每個節(jié)點(diǎn)都是對等的,具備客戶端和服務(wù)器端雙重特征,可以同時作為服務(wù)使用者和服務(wù)提供者,使得數(shù)據(jù)存儲轉(zhuǎn)變?yōu)閮?nèi)容邊緣模式。因此,P2P的每個節(jié)點(diǎn)都有數(shù)據(jù)流比較大的特征。
TCP機(jī)制對于不同的RTT流存在不公平性,RTT較小的連接將得到更高的吞吐量。在傳統(tǒng)的C/S架構(gòu)中,客戶端和服務(wù)器之間僅存在一條路徑,即使有多個連接,傳播時延也是確定的,當(dāng)網(wǎng)絡(luò)擁塞時,流將在網(wǎng)絡(luò)瓶頸點(diǎn)排隊(duì),導(dǎo)致RTT增大,從而降低了網(wǎng)絡(luò)的吞吐量,而P2P用戶和節(jié)點(diǎn)之間存在多條路徑,每條路徑存在不同的傳播時延。RTT小的流會盡其最大能力傳輸數(shù)據(jù),從而提高P2P數(shù)據(jù)流總的吞吐量。如果某個網(wǎng)絡(luò)瓶頸點(diǎn)發(fā)生擁塞,導(dǎo)致RTT小的流會盡其最大能力傳輸數(shù)據(jù),從而提高P2P流的總吞吐量,因此,P2P流量中RTT平均值比較小。
根據(jù)以上P2P流量的特征,可以提取的特征信息有:單個流內(nèi)數(shù)據(jù)包大小、數(shù)據(jù)包到達(dá)的間隔時間、數(shù)據(jù)包比率(單位時間內(nèi)傳輸數(shù)據(jù)包的個數(shù))、RTT平均時間等特點(diǎn),對抓取的數(shù)據(jù)包進(jìn)行建模,然后通過機(jī)器學(xué)習(xí)算法來區(qū)分P2P流量與非P2P流量。路遙[1]等提出了基于復(fù)合特征的P2P流媒體識別技術(shù);陳偉[2]等提出了基于端點(diǎn)特征的P2P流媒體識別方法;Teufl[3]等指出音頻流的包到達(dá)間隔時間非常相似;Yang[4]等統(tǒng)計(jì)包長度、包到達(dá)時間間隔和包的字節(jié)數(shù)等特征,對Bittorrent、pplive、skype和MSN流量的識別準(zhǔn)確性在91%~95%。Este[5]等研究了數(shù)據(jù)包特征的時空穩(wěn)定性,發(fā)現(xiàn)數(shù)據(jù)包大小受到網(wǎng)絡(luò)時空環(huán)境變化的影響相對較小,而且每個TCP連接成功后的第1個數(shù)據(jù)包大小對分類的貢獻(xiàn)最大。他們僅分析了TCP協(xié)議下的數(shù)據(jù)包特征穩(wěn)定性,對于UDP協(xié)議下的特征穩(wěn)定性還可以進(jìn)一步研究。文獻(xiàn)[6]利用數(shù)據(jù)包大小和數(shù)據(jù)包方向分類網(wǎng)絡(luò)流,對Bittorrent的識別準(zhǔn)確率為96.8%。
據(jù)統(tǒng)計(jì),P2P應(yīng)用流量主要是由一些核心的P2P應(yīng)用組成的,例如,P2P下載的主要有BitTorrent、迅雷看看、QQ旋風(fēng)、eMule等;P2P視頻類主要有PPLive、QQLive、PPStream、MSN視頻、風(fēng)行等。針對這些應(yīng)用的識別并且加以流量控制,可以大大地降低網(wǎng)絡(luò)負(fù)載。流量特征提取的方法以及匹配規(guī)則的規(guī)范如下:
1)抓包獲取相關(guān)應(yīng)用的數(shù)據(jù)包(推薦使用wireshark);
2)通過數(shù)據(jù)流的載荷信息,提取相關(guān)特征;
3)構(gòu)造特征規(guī)則(推薦使用snort規(guī)則);
4)構(gòu)造引擎,識別規(guī)則。
這里關(guān)鍵的4個地方是:純凈流的獲取、特征提取、規(guī)則的構(gòu)建格式、引擎的設(shè)計(jì)。
1)抓包前只啟用相關(guān)應(yīng)用;
2)基于進(jìn)程抓包主要針對單進(jìn)程應(yīng)用更有效;
3)通過多次對比確定指定應(yīng)用的數(shù)據(jù)流。
應(yīng)用DPI技術(shù)提取數(shù)據(jù)包載荷部分的數(shù)據(jù),特征信息可以是明文的特征字符或者是固定不變的且獨(dú)有的字段。國內(nèi)已有網(wǎng)絡(luò)安全研究人員進(jìn)行了自動化特征提取的研究,劉興彬[7]等提出了基于Apriori算法的流量識別特征自動提取方法。
按照snort規(guī)則[8]書寫格式構(gòu)造如下:
alert ip$EXTERNAL_NET any->$HOME_NET any(msg:"BAD-TRAFFIC ip reserved bit set";fragbits:R;classtype:misc-activity;sid:523;rev:5;)
具體的字段解析可以參照snort的幫助文檔。
現(xiàn)在主要的算法是BM算法[9]、Wu-Manber算法[10]。
通過以上信息,可以很好地確定每個應(yīng)用的流量使用情況,這樣可以建立一個比較完善的日志統(tǒng)計(jì)信息,文中關(guān)鍵點(diǎn)是通過日志信息來建立模型,分析出每種P2P應(yīng)用的使用動態(tài)流量表,以及所有P2P應(yīng)用的使用動態(tài)流量表,通過分析來制定策略,達(dá)到流量控制的目的。
格式如下:
時間,具體應(yīng)用,類型,動作,源地址,源端口,目的地址,目的端口,協(xié)議類型。
時間信息:記錄每條數(shù)據(jù)流的開始使用時間和結(jié)束時間。
類型:每個具體的分類,比如P2P下載、P2P視頻等。
動作:上線,下線,下載。
五元組:(源地址,目的地址,源端口,目的端口,協(xié)議類型),五元組可以唯一確定一條流的信息。
文中通過網(wǎng)御星云的Power V設(shè)備的日志統(tǒng)計(jì)功能,得到P2P應(yīng)用的統(tǒng)計(jì)信息,該設(shè)備放在網(wǎng)絡(luò)出口處,通過旁路干擾控制組網(wǎng)模式,得到某公司的P2P應(yīng)用使用情況,如圖1所示。
圖1 流控設(shè)備布局拓?fù)?/p>
得到的日志信息如圖2所示。
圖2 日志信息
我們記錄的日志格式為:時間,類型,動作,源地址,源端口,目的地址,目的端口,協(xié)議類型。要得到每條日志信息的具體分類,可以提取數(shù)據(jù)結(jié)構(gòu)中的類型字段,統(tǒng)計(jì)得到每個分類的統(tǒng)計(jì)信息,如圖3所示。
圖3 流量分類
圖3 得到的餅狀圖是對日志中統(tǒng)計(jì)的所有應(yīng)用的匯總,由圖中可以知道P2P應(yīng)用占用了絕大多數(shù)的流量。
在日志信息中有具體應(yīng)用這一字段,可以在大分類的基礎(chǔ)上對具體應(yīng)用進(jìn)行統(tǒng)計(jì),能高效地統(tǒng)計(jì)出具體應(yīng)用所占的比重。
具體算法如下:
1)將每個類型分類錄入hash表中;
2)將每個分類下的具體應(yīng)用以樹結(jié)構(gòu)存儲在所屬分類的每個hash單元中;
3)將每個hash單元下的樹結(jié)構(gòu)調(diào)整為二叉樹;
4)查詢二叉樹結(jié)構(gòu)得到統(tǒng)計(jì)信息。
這里主要應(yīng)用的數(shù)據(jù)結(jié)構(gòu)是hash結(jié)構(gòu)、樹結(jié)構(gòu)、二叉樹結(jié)構(gòu)。
應(yīng)用分類如圖4所示。
圖4 應(yīng)用分類
從圖4可以看到每個具體應(yīng)用的使用情況,通過上面的統(tǒng)計(jì)信息,能更好地制定策略,使網(wǎng)絡(luò)環(huán)境的流量吞吐量增強(qiáng)。
策略配置如圖5所示。
圖5 策略配置
通過圖5配置策略,可以配置禁止優(yōu)酷網(wǎng)流量通過防火墻來實(shí)現(xiàn)網(wǎng)絡(luò)流量的控制,實(shí)現(xiàn)及時對網(wǎng)絡(luò)流量調(diào)控的目的。
在這個信息時代,網(wǎng)絡(luò)應(yīng)用越來越重要,而P2P應(yīng)用占到了舉足輕重的作用,能否利用好P2P這把“網(wǎng)絡(luò)雙刃劍”,對網(wǎng)絡(luò)的合理利用至關(guān)重要。文中主要討論是對P2P流量的識別以及建立日志系統(tǒng),對日志信息進(jìn)行建模,然后得到策略信息,來完成更有效的P2P流量控制。但是,需要比較大的人力來完成特征信息的提取,因此,自動化提取特征信息是急需解決的問題。由于許多應(yīng)用的數(shù)據(jù)包采用加密的方式進(jìn)行傳輸,給自動化的特征提取帶來了比較大的困難,可以作為進(jìn)一步的研究方向。
[1] 路遙.基于復(fù)合特征的P2P流媒體識別技術(shù)研究[D].重慶:重慶大學(xué),2010.
[2] 陳偉,蘭巨龍,張建輝.基于端點(diǎn)特征的P2P流媒體識別方法[J].計(jì)算機(jī)應(yīng)用研究,2012,29(7):2601-2606.
[3] Teufl P,Payer U,Amling M,et al.InFeCT-Network traffic classification[C]//Proc.of the 7th Int'l Conf.on Networking.Cancun:IEEE Computer Society,2008:439-444.
[4] Yang A M,Jiang S Y,Deng H.A P2Pnetwork traffic classification method using SVM[C]//Proc.of the 9th Int'l Conf.for Young Computer Scientists.[S.l.]:IEEE Computer Society,2008:398-403.
[5] Este A,Gringoli F,Salgarelli L.On the stability of the information carried by traffic flow features at the packet level[J].ACM Sigcomm Computer Communication Review,2009,39(3):13-18.
[6] Este A,Gringoli F,Salgarelli L.Support vector machines for TCP traffic classification[J].Computer Networks,2009,53(14):2476-2490.
[7] 劉興彬,楊建華,謝高崗.基于Apriori算法的流量識別特征自動提取方法[J].通信學(xué)報(bào),2009,29(12):51-59.
[8] 孫立媛,朱亦寧,孫銳軒.Snort規(guī)則的分析與實(shí)現(xiàn)[J].計(jì)算機(jī)安全,2009(9):151-159.
[9] 吳小花,何曉報(bào),趙東卓.基于頻繁IP地址的DDOS檢測[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2012,33(6):625-628.
[10] 莫德敏,劉耀軍.對串匹配技術(shù)中的Wu-Manber算法的研究[D].太原:太原科技大學(xué),2009.