陳 慶,楊正華,曾愛華
(1.吉首大學 信息科學與工程學院,湖南 吉首 416000;2.湘西州廣播電視大學 湖南 吉首 416000)
近年來,網絡技術快速發展,特別是對等網的迅速發展已經成為業界關注的焦點之一,基于P2P網絡之上的相關應用正逐漸占據互聯網應用的重要地位,并被視為未來網絡技術發展的主要趨勢,相對于傳統網絡,對等網依靠非中心節點、分布式結構模型,實現對等協作和資源共享,并具有自組織、容錯性強、可擴展以及負載均衡等優點,但P2P是通過組播方式進行通信,它允許單個用戶未經授權或檢驗而任意分發內容,其傳播范圍廣,穿透性強,帶來網絡安全防護漏洞和隱患[1]。如何有效地監控P2P流,進行相關的流識別。流篩選、流控制是流管理中的重要問題。
早期的P2P應用都是固定的端口號,容易檢測便于管理,近年來,該應用逐漸發展到動態隨機端口號,而且近期涌現的新型P2P應用越來越具有反偵察的意識,并采用了一些偽裝或加密的方法,如:偽裝Http協議、加密、傳輸分塊等來逃避識別和檢測[2],這些技術使得P2P流識別變得更為困難。目前,P2P應用快速發展和變化,新的P2P應用不斷出現,其結構更為復雜,應用領域也更為廣泛,隨著網絡帶寬的不斷拓展,單位時間的流量將更為龐大,而P2P流識別必須解決單位時間內在線監測分析的問題,這將給數據的采集、監測、分析帶來更多困難[3]。如何讓識別算法適應網絡流量的快速發展,使得監測的信息最多,過濾效果最好,也是當前急需解決的問題。
早期,P2P流識別主要采取的是端口識別和數據包檢測方法,Madhukar等對端口識別法的有效性進行了研究[4],并采用實際數據觀察。研究表明,端口識別法對網絡中的數據流50%~70%無法有效識別[5]。
基于協議和統計特征的方法是一類重要的P2P流識別方法[6],如Constantinou提出了網絡直徑分析法[7],通過記錄網絡中每個節點與其他節點建立連接的情況得到鏈接的邏輯拓撲圖,并轉換為網絡直徑,如網絡直徑超過某個門閾值,可認為該網絡為P2P網絡。Thomas Karagiannis等提出了協議和地址端口分析方法[8-9],P2P系統通常采用UDP來發送命令等控制信息,TCP協議來傳輸數據。傳統網絡的應用軟件,很少出現同時使用UDP協議和TCP協議,如有同時使用兩種協議可認為是P2P流。
數據包協議特征檢測方法主要用于入侵檢測,根據預定義的協議特征辨別其應用類型[10],當前許多P2P應用識別方案都基于這種方法。通過TCP/IP層之上的應用層協議分析軟件進行流量分析和特征分析,監控并找出其協議特征碼,以下就是各種不同的P2P網絡協議的特性:

表1 P2P網絡協議特性對比Tab.1 P2P network protocol characteristics
簽名技術需要訪問每一個數據包中的用戶載荷,每一種P2P應用都具有與協議相關的簽名特征,為了對比分析方便,選取目前使用較為廣泛的Sniffer軟件,通過抓取對應協議數據包,觀察關鍵字、命令、選項等可觀察的特征內容,找到其已知的特征串。
實現簽名特征技術的關鍵問題在于,首先通過分析P2P流是TCP數據包還是UDP數據包,或者兩者皆有;其次P2P應用層的簽名可以應用到單一的數據包,也可應用到重組的數據包中。
Emule/Edonkey協議:采用TCP或 UDP通信,缺省端口4661-4665,第一字節特征串為 0xe3,0xc5。

表2 Emule/Edonkey協議特征Tab.2 Emule/Edonkey protocol characteristics
Kazaa協議:對數據包進行加密,很難了解到協議的具體細節,在Kazaa中,文件通常以偽裝的HTTP形式發送。

表3 Kazaa協議特征Tab.3 Kazaa protocol characteristics
Gnutella協議:使用TCP建立一個高度互聯的拓撲結構,為子節點提供網絡服務,當兩個Gnutella節點建立連接后,需要一個握手來交換一下必要的數據信息。
明文檢查UDP包起始數據是否為“GNUTELLA”或“GND”

表4 Gnutella協議特征Tab.4 Gnutella protocol characteristics
Gnutella命令特征:負載最后以“ ”結尾,而且起始數據為:“GET/get/”
Vagaa協議分析:Vagaa和Emule/EDonkey一樣也是一種較為流行的P2P軟件。它的協議分析如下:
發送請求數據包特征:16進制表示為:78 01 7B DC C9 C0 C0 3F 90 B8 6E 97 E6 35 3E A6 92 73 F3 A5 64 1B 14 F2 77
確認數據包特征:16進制表示:DE AD BE EF
PPLive協議:作為一款流行的P2P在線視頻播放軟件,通過對PPLive流量的抓取分析,發現PPLive的UDP數據包具有的簽名特征,如表5所示。

表5 PPLive協議特征Tab.5 PPLive protocol characteristics
BitTorrent協議:BitTorrent是非常流行的文檔下載軟件,通過對BitTorrent的TCP握手信息進行分析,發現其簽名特征,如表6所示。

表6 BitTorrent TCP協議特征Tab.6 BitTorrent TCP protocol characteristics
BitTorrent在下載過程中與Tracker服務器進行通信,它采用HTTP協議,通過分析其HTTP流,發現其簽名特征:

表7 BitTorrent HTTP協議特征Tab.7 BitTorrent HTTP protocol characteristics
UDP包特征:UDP長度24字節 (含UDP頭),起始8個字節為:00 00 04 17 27 10 19 80
TCP包特征:第一字節為0x13,后續數據為:“BitTorrent protocol”
文中通過對各時期P2P流量檢測技術回顧,闡述了流量檢測技術的進展,提出一種基于協議簽名特征的P2P流識別方法。首先,通過Sniffer軟件對數據包進行抓取,并進行特征分析、關鍵字分析,進行預判;然后,再進行深度掃描,對數據流進行較精確判決,根據流的協議特征和行為特征判決方法,判決規則簡單,有利于工程應用,通過實驗室小數據測試,實驗證明本文提出的識別方式可行。下一步工作,可對簽名特征較為分散的數據流進行重組,提取更為準確的簽名特征,進行精確判別;另外,隨著網絡帶寬的快速發展,大流量、實時的檢測數據流,需要進一步提升抓包、篩選效率和簽名特征多模式匹配算法效率。
[1]Tutschku K.A Measurement-based Traffic Profile of the eDonkey Filesahring Service [C]//Passive and Active Measurement Workshop, Cambridge,2004.
[2]Zhou L,Li Z,Liu B.P2P traffie identifieation by TCP flow analysis[C]//Proceedings of Institute Workshop on Networking,Architecture and Storages,Shenyang,2006:47-48.
[3]Holger,B.P.R.Erwin,and Z.Stefan.Evaluation of an Effieient Measurement Concept for P2P MultiProtocol Traffie Analysis.in Software Engineering and Advanced Applications[C]//2006.SEAA’06.32nd EUROMICRO Conference on 2006.Cavtat,Dubrovnik,Croatia:IEEE Comput.Soc.,2006:414-423.
[4]Madhukar A,Williamso C.A Longitudinal Study of P2P Traffic Classification in Modeling[C]//Analysis,and Simulation of Computer and Teleconununication Systems.Monterey Califomia:IEEE,2006:179-188.
[5]王銳,王逸欣,樊愛華,等.一種跨P2P流量檢測方法[J].計算機應用,2006,26(12):30-32.
WANG Rui,WANG Yi-xin,FAN Ai-hua,et al.A cross P2P flow detection method[J].Computer Application,2006,26(12):30-32.
[6]張文,沈磊.基于特征進程的P2P流量識別 [J].計算機工程,2008,34(15):120-122.
ZHANG Wen,SHEN Lei.Based on the characteristics of the process P2P traffic identification[J].Computer Engineering,2008,34(15):120-122.
[7]Constantinou F,Mavrommatis P.Identifying known and unknown peer-to-peer traffic[J].Fifth IEEE International Symposium on Network Computing and Applications,2006:93-102.
[8]KaragiannisT,Broido A,FaloutsosM.Transportlayer identification of P2P traffic[C]//In:Proceedings of the 4th ACM SIGCOMM Conference on Internet Measurement(IMC 2004),Taormina,Italy,2004:121-134.
[9]劉文超,陳琳,向華.P2P流量檢測技術與分析[J].現代電子技術,2011(22):39-41,45.
LIU Wen-chao,CHEN Lin,XIANG Hua.P2P traffic detection technology and analysis[J].Modern Electronic Technique,2011(22):39-41,45.
[10]沈富可,常潘,任肖麗.基于神經網絡的P2P流量識別研究[J].計算機應用,2007,27(12):44-51.
SHEN Fu-ke,CHANG Pan,REN Xiao-li.Based on neural networks the research of P2P traffic identification[J].Computer Application,2007,27(12):44-51.