范全潤 潘峰
西安電子科技大學(xué)計算機(jī)學(xué)院 陜西 710071
隨著網(wǎng)絡(luò)應(yīng)用的不斷發(fā)展,網(wǎng)絡(luò)服務(wù)提供商(internet service providers,ISP)面臨許多問題,其中就包括如何識別和控制網(wǎng)絡(luò)上的數(shù)據(jù)流,如P2P流量,以及如何識別和阻止網(wǎng)絡(luò)上的病毒或者網(wǎng)絡(luò)入侵。
P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)在聯(lián)入P2P網(wǎng)絡(luò)、檢索所需資源時,會大量發(fā)送洪泛性質(zhì)的廣播幀和連接請求。在下載資源時,由于大量資源都是視頻等數(shù)據(jù)量很多的文件,因此P2P應(yīng)用往往會占用大量的網(wǎng)絡(luò)帶寬,這使得原本有限的網(wǎng)絡(luò)帶寬資源變得更加捉襟見肘,導(dǎo)致網(wǎng)絡(luò)上的其它服務(wù)無法提供或者使服務(wù)質(zhì)量很差。
在網(wǎng)絡(luò)安全方面,蠕蟲及病毒等攻擊變得越來越頻繁,攻擊或者傳播的速度越來越快。傳統(tǒng)的應(yīng)對病毒和網(wǎng)絡(luò)攻擊的方法是在終端客戶機(jī)上安裝殺毒軟件和防火墻。但是,為了應(yīng)對新出現(xiàn)的病毒和攻擊,就需要經(jīng)常對殺毒軟件和防火墻軟件進(jìn)行相應(yīng)的更新。這樣就存在很多問題,例如響應(yīng)速度慢,維護(hù)成本高等。因此,更為有效的辦法是盡早在通信子網(wǎng)中對這些網(wǎng)絡(luò)病毒和攻擊進(jìn)行阻止,以避免對大量的終端客戶造成損害。
要實(shí)現(xiàn)這些應(yīng)用,首先必須進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)流識別。網(wǎng)絡(luò)數(shù)據(jù)流識別在企業(yè)、網(wǎng)絡(luò)服務(wù)提供商和政府組織中都有著廣泛的應(yīng)用,這些應(yīng)用領(lǐng)域包括網(wǎng)絡(luò)入侵檢測,防火墻,網(wǎng)絡(luò)工程管理和服務(wù)質(zhì)量控制。它們在速度、擴(kuò)展性、可伸縮性和成本效益方面都有著嚴(yán)格的要求。
目前流行的分類方法主要有DPI和DFI兩種。DPI被廣泛用于實(shí)時數(shù)據(jù)流管理,用來識別和控制特定類型應(yīng)用的網(wǎng)絡(luò)帶寬。它的典型應(yīng)用是用來識別如 Bit Torrent或 eMule/eDonkey這樣的P2P協(xié)議,進(jìn)而根據(jù)需要采取封鎖、帶寬限制或者流量整形等措施。
網(wǎng)絡(luò)數(shù)據(jù)流是以離散的數(shù)據(jù)包的形式出現(xiàn)的,這些數(shù)據(jù)包除了數(shù)據(jù)本身外,還包含源IP地址、目標(biāo)IP地址、使用的IP協(xié)議號及目標(biāo)端口號等信息。DPI設(shè)備檢查網(wǎng)絡(luò)上傳遞的數(shù)據(jù)包,不但查看包的頭部,而且還要檢查包的內(nèi)容,以判定應(yīng)用的類型。
DFI并沒有一個公認(rèn)的統(tǒng)一定義,有時候與之相關(guān)的技術(shù)也稱為行為分析、啟發(fā)式分析及行為模式識別等。因?yàn)橛袝r候一些網(wǎng)絡(luò)應(yīng)用將數(shù)據(jù)包進(jìn)行了偽裝使得DPI難以識別,因此DFI被作為DPI技術(shù)的一種補(bǔ)充,它根據(jù)應(yīng)用的行為來推斷其類型。
DPI規(guī)則相對簡單,它可以通過識別包的端口號、特征字符串、協(xié)議或者二進(jìn)制位串等方法來找到應(yīng)用的類似于指紋的信息來識別應(yīng)用的類型。DFI則要求網(wǎng)絡(luò)服務(wù)提供商對過分析來設(shè)定應(yīng)用的行為模式,根據(jù)設(shè)定的模式來發(fā)現(xiàn)應(yīng)用的類型。
DPI和DFI都有各自的優(yōu)點(diǎn)和缺點(diǎn)。例如,雖然DPI可能更能準(zhǔn)確地識別出應(yīng)用所使用的協(xié)議和類型,但是因?yàn)镈PI要檢查每個包,所以DPI速度一般比DFI慢,此外,如果出現(xiàn)新的協(xié)議或者應(yīng)用,DPI都必須針對新協(xié)議或應(yīng)用進(jìn)行相應(yīng)的處理,因此在管理上存在困難。如果包的內(nèi)容經(jīng)過加密處理,或者經(jīng)過協(xié)議封裝,DPI技術(shù)就不再有效。DFI因?yàn)椴恍枰治霭膬?nèi)容,因而速度較快,但發(fā)現(xiàn)應(yīng)用的行為模式也存在一定的困難,且可能出現(xiàn)誤判的情況。因此,把DPI和DFI技術(shù)結(jié)合起來,綜合利用它們的優(yōu)勢,可以取得更好的效果。
在本文中,我們針對網(wǎng)絡(luò)服務(wù)提供商的需求,提出了一種分類架構(gòu)。這種架構(gòu)把DPI技術(shù)和DFI技術(shù)結(jié)合起來。為了更有效地發(fā)現(xiàn)分類規(guī)則,使用了數(shù)據(jù)挖掘服務(wù)器。數(shù)據(jù)挖掘服務(wù)器從主干網(wǎng)的邊界路由器處收集數(shù)據(jù)包并將其存儲到數(shù)據(jù)倉庫中,然后運(yùn)用數(shù)據(jù)挖掘工具從中發(fā)現(xiàn)數(shù)據(jù)包的分類規(guī)則。
本文第一節(jié)介紹相關(guān)的背景知識,第二節(jié)給出針對網(wǎng)絡(luò)服務(wù)提供商的數(shù)據(jù)流分類和應(yīng)用架構(gòu),最后是對全文的總結(jié)。
網(wǎng)絡(luò)服務(wù)提供商利用DPI和DFI技術(shù)來對通信子網(wǎng)上的數(shù)據(jù)流進(jìn)行識別,并根據(jù)識別出的應(yīng)用的類型來進(jìn)行相應(yīng)的處理。運(yùn)用這一技術(shù)的關(guān)鍵是如何及時發(fā)現(xiàn)應(yīng)用的分類規(guī)則,并快速地根據(jù)規(guī)則進(jìn)行流量識別和處理,以滿足通信子網(wǎng)的速度要求。
流量分類算法必須要和網(wǎng)絡(luò)上的邊界路由器和核心路由的處理速度相匹配,因此它對速度的要求非常高。分類規(guī)則和包處理規(guī)則可以有三種實(shí)現(xiàn)方式,即用軟件、專用集成電路或者FPGA來實(shí)現(xiàn)。軟件實(shí)現(xiàn)方式雖然靈活度高,但是往往無法達(dá)到速度上的要求。專用集成電路速度快,功耗低,但是它的非重復(fù)性工程費(fèi)用高,且功能在芯片制造完成后無法改變,因此無法應(yīng)對用網(wǎng)絡(luò)上不斷出現(xiàn)的各種新的應(yīng)用或者網(wǎng)絡(luò)攻擊。
FPGA是一種可編程邏輯器件,在制造完成后,它的功能可以通過編程來進(jìn)行修改。根據(jù)應(yīng)用的需要,F(xiàn)PGA中實(shí)現(xiàn)的功能也可以通過網(wǎng)絡(luò)來更新,因而它有著類似于軟件的靈活性。雖然和專用集成電路相比它的速度和功耗不占優(yōu)勢,但它沒有專用集成電路那樣的非重復(fù)性工程成本,并且基于FPGA的設(shè)計實(shí)現(xiàn)周期也非常短。
此架構(gòu)用專用集成電路來實(shí)現(xiàn)已知的分類規(guī)則或者處理規(guī)則,以提高處理速度。用FPGA來實(shí)現(xiàn)新發(fā)現(xiàn)的分類規(guī)則或者處理規(guī)則,以應(yīng)對網(wǎng)絡(luò)上不斷出現(xiàn)的新應(yīng)用和攻擊。
為了發(fā)現(xiàn)基于DFI的分類規(guī)則,我們需要有更好的方法,比如機(jī)器學(xué)習(xí)。目前已經(jīng)有很多基于DFI的分類算法,本文下一節(jié)提出了一種將DPI和DFI技術(shù)及數(shù)據(jù)挖掘技術(shù)相結(jié)合的網(wǎng)絡(luò)應(yīng)用架構(gòu),以更好地為ISP提供服務(wù)。
本文提出的數(shù)據(jù)流量分類基本框架如圖1所示。對數(shù)據(jù)流的處理由多服務(wù)網(wǎng)關(guān)(Multi-service control gateway)來完成,多服務(wù)網(wǎng)關(guān)部署在邊界路由器上。
圖1 流量分類的基本架構(gòu)
對于類型確定的數(shù)據(jù)流,如網(wǎng)絡(luò)語音服務(wù)數(shù)據(jù)流,不需要進(jìn)行任何處理就可以通過邊界路由器。其它數(shù)據(jù)包需要經(jīng)過多服務(wù)網(wǎng)關(guān)的分類處理模塊。分類處理模塊按照分類規(guī)則對數(shù)據(jù)包進(jìn)行識別,并根據(jù)識別出的應(yīng)用的類型來進(jìn)行相應(yīng)的處理。
已有的流量分類規(guī)則,包括DFI和DPI的分類規(guī)則,通過專用集成電路芯片來實(shí)現(xiàn),這樣可以通過硬件的并行機(jī)制來對數(shù)據(jù)流進(jìn)行高速的分類處理。
由于某些方面的原因,很多現(xiàn)有的應(yīng)用會改變他們的特征關(guān)鍵字或者行為模式,而且新的應(yīng)用也會不斷出現(xiàn),這樣就需要對流量分類規(guī)則進(jìn)行修改或增加。如果只使用專用集成電路芯片,就需要重新設(shè)計和制造芯片,這樣將會大大提高成本,因此,架構(gòu)中使用FPGA芯片來處理變化或者新增的流量分類規(guī)則。FPGA芯片只需要重新編程就可以處理變化或者新增的分類規(guī)則,從而降低了系統(tǒng)成本。此外,目前大部分FPGA芯片都可以通過網(wǎng)絡(luò)實(shí)現(xiàn)重新編程,因而也可以降低多服務(wù)網(wǎng)關(guān)的維護(hù)成本,同時提高系統(tǒng)更新的速度。
在這一架構(gòu)中,最重的問題就是如何獲取流量分類規(guī)則。下一小節(jié)就討論如何在數(shù)據(jù)通信子網(wǎng)中獲取分類規(guī)則。
圖2給出了這一應(yīng)用在網(wǎng)絡(luò)上的部署架構(gòu)。在部署架構(gòu)中最重要的就是數(shù)據(jù)流量分類規(guī)則挖掘服務(wù)器,它負(fù)責(zé)發(fā)現(xiàn)流量分類規(guī)則,并將這些規(guī)則通過網(wǎng)絡(luò)傳遞給邊界路由器。因?yàn)镈PI規(guī)則相對容易發(fā)現(xiàn),所以數(shù)據(jù)流量分類規(guī)則挖掘服務(wù)器的主要任務(wù)就是發(fā)現(xiàn)DFI分類規(guī)則。
圖2 系統(tǒng)部署架構(gòu)
和 DPI不同的是,DFI需要從網(wǎng)絡(luò)上收集大量的數(shù)據(jù)包,然后根據(jù)對這些數(shù)據(jù)包的分析來發(fā)現(xiàn)通過DPI技術(shù)無法發(fā)現(xiàn)的一些規(guī)律。
由于需要存儲大量的數(shù)據(jù),并且對這些數(shù)據(jù)進(jìn)行分析處理,因此很難在路由器或者交換機(jī)上實(shí)現(xiàn)。我們提出用專門的數(shù)據(jù)挖掘服務(wù)器來實(shí)現(xiàn)這一功能,數(shù)據(jù)挖掘服務(wù)器從邊界路由器中收集數(shù)據(jù)包,并將數(shù)據(jù)包存儲到數(shù)據(jù)倉庫中。因?yàn)樗械臄?shù)據(jù)都要經(jīng)過邊界路由器,因此只需要從邊界路由器上收集數(shù)據(jù)即可,不需要從核心路由器上收集數(shù)據(jù)。通過使用數(shù)據(jù)挖掘技術(shù),如聚類、基于神經(jīng)網(wǎng)絡(luò)的分類等,可以發(fā)現(xiàn)某些應(yīng)用或者網(wǎng)絡(luò)攻擊的行為模式,從而產(chǎn)生相應(yīng)的數(shù)據(jù)流量分類規(guī)則。
這些新發(fā)現(xiàn)的分類規(guī)則將用FPGA來實(shí)現(xiàn),F(xiàn)PGA芯片放在多服務(wù)控制網(wǎng)關(guān)上。如果有新的規(guī)則需要加入或者有過時的規(guī)則需要刪除,通過網(wǎng)絡(luò)對FPGA進(jìn)行重新編程就可以簡單地實(shí)現(xiàn)分類規(guī)則或者處理規(guī)則的維護(hù)。
Internet的設(shè)計在很大程序上是基于“端到端”設(shè)計原則,網(wǎng)絡(luò)上的終端客戶對整個數(shù)據(jù)包的內(nèi)容進(jìn)行處理,而邊界路由器則對數(shù)據(jù)包的頭部進(jìn)行處理,以決定是將數(shù)據(jù)包發(fā)送到另一個邊界路由器還是核心路由器。核心路由器一般不處理數(shù)據(jù)外的載荷,有時甚至都不處理整個包頭部,只簡單地根據(jù)目標(biāo)IP地址決定該包應(yīng)如何轉(zhuǎn)發(fā)。
Internet這種架構(gòu)導(dǎo)致了它在安全和流量管理和控制方面存在一些問題。P2P應(yīng)用或者網(wǎng)絡(luò)攻擊可以通過有效協(xié)議來偽裝成合法或不應(yīng)受控的數(shù)據(jù)包,這些數(shù)據(jù)的頭部沒有任何問題,因而可以通過邊界路由器和核心路由器在網(wǎng)絡(luò)上傳播。要解決這些問題,就需要正確地識別出網(wǎng)絡(luò)上的數(shù)據(jù)流。
在數(shù)據(jù)流分類中,最重要的就是DPI/DFI規(guī)則。很多網(wǎng)絡(luò)數(shù)據(jù)流識別方法都是針對P2P的,因?yàn)镻2P往往占用了網(wǎng)絡(luò)上的大部分帶寬。但是P2P應(yīng)用往往通過數(shù)據(jù)加密和協(xié)議封閉都技術(shù)來避開網(wǎng)絡(luò)檢查。文獻(xiàn)[6]提出了一種 P4P(Proactive network Provider Participation for P2P)的方法來優(yōu)化P2P的網(wǎng)絡(luò)連接應(yīng)用,但是這種方法需要ISPs和P2P軟件開發(fā)者之間的合作。但實(shí)際情況是網(wǎng)絡(luò)服務(wù)提供商一般都不愿意和P2P軟件提供商或者組織合作。
本文提出了一種網(wǎng)絡(luò)數(shù)據(jù)流分類框架。這一框架從網(wǎng)絡(luò)中的邊界路由器上收集數(shù)據(jù)。收集到的數(shù)據(jù)被用于數(shù)據(jù)挖掘,根據(jù)挖掘產(chǎn)生的規(guī)則來對數(shù)據(jù)進(jìn)行分類。分類算法在多服務(wù)控制網(wǎng)關(guān)上用FPGA來編程實(shí)現(xiàn),也可以在邊界路由器上實(shí)現(xiàn)。
因?yàn)閿?shù)據(jù)流的分類和處理都是在路由器上進(jìn)行,因此對速度的要求就特別高。但由于應(yīng)用或者攻擊的類型很多,因此一個數(shù)據(jù)包可能要與成千上萬種特征數(shù)據(jù)進(jìn)行比較。例如,網(wǎng)絡(luò)入侵檢測系統(tǒng)SNORT在2012年3月發(fā)布的2.9.2.2版本就包含21645種特征。因此,如何提高數(shù)據(jù)包的分類和處理速度以適應(yīng)越來越高的網(wǎng)絡(luò)速度需求,還需要進(jìn)一步的研究。
[1]S.Zander,T.Nguyen,G.Armitage.Automated Traffic Classification and Application Identification using Machine learning.Proc.of the IEEE Conference on Local Computer Networks 30thAnniversary.2005.
[2]T.Nguyen,G.Armitage.A Survey of Techniques for Internet Traffic Classification using Machine Learning[J].IEEE Communications Surveys & Tutorials 4th edition.2008.
[3]I.Kuon, J.Rose.Measuring the Gap between FPGAs and ASICs[J].Proc.of the 2006 ACM/SIGDA 14th International Symposium on Field Programmable Gate Arrays.2006.
[4]U.Fayyad,G.Piatetsky-Shapiro,P.Smyth and R.Uthurusamy.Advances in Knowledge Discovery and Data Mining[M].The MIT Press.1996.
[5]J.Saltzer,D.Reed and D.Clark.End-to-end arguments in system design[J].ACM Transactions on Computer Systems,vol.2,1984.
[6]H.Xie,Y.Yang,A.Krishnamurthy.P4P:provider portal for applications[J].ACM SIGCOMM Computer Communication Review archive,Volume 38,Issue 4.2008.
[7]SNORT Network Intrusion Detecting System [CP/OL].[2012-10-26].http://www.snort.org.