第三章 相關研究
3.1 封包特徵辨識法之研究(Signature-Based)
P2P檔案分享軟體越來越盛行,佔用的網路頻寛越來越大,對於網管人員或是 ISP業者必須先準確的辨別P2P流量,才能對P2P連線進行管理。因為P2P技術的進 步,且應用越來越廣泛,以往藉由Port-Based來判斷P2P流量已經不夠準確,因此 必須透過應用層封包分析技術(Application protocol analysis)才能達到辨識效 果。
3.1.1 應用層特徵(Application Layer Signature)辨識
Subhabrata Sen等人[1]就目前熱門的P2P軟體,如Gnutella、eDonkey、
BitTorrent、KaZaA、DirectConnect等,分析這些軟體所使用的通訊協定及封包 的內容,歸納出各種應用程式特徵(Application Signature),藉以判斷此封包 是否為P2P連線。
但是在大量封包中進行字串比對需要大量的計算時間,為了能夠在高速網路 環境下快速地進行辨識,將所定義的P2P軟體特徵比對方式分成兩個部分:
(1)固定位移比對(Fixed Offset Match):將P2P軟體特徵和TCP封包內容中,
特定的Byte進行比對,比對方式為16進位具體代碼。
(2)變動位移比對(Variable Offset Match):透過正規表示式(Regular expression)來比對。
各連線封包特徵分析及比對方式經歸納如下表:
連線軟體 封包特徵及比對方式
Gnutella ※ 封包開頭字串為“GNUTELLA"、“GET"、“HTTP"
<name>"、“Server: <name>"
eDonkey ※ 封包開頭的第一個Byte為eDonkey marker,其值固定為 0xE3
※ 封包的第二到第四個表示封包內容的長度
DirectConnect ※ 封包開頭的第一個字元為“$",最後一個字元為“|"
※ 在“$"緊接一個以空白字元結束的字串,此字串為 DirectConnect命令。
BitTorrent ※ 封包的第一個Byte,其值為0x19
※ 接下來的19個Bytes,為一個長度19的“BitTorrent protocol"字串
KaZaA ※ 封包開頭字串為“GET"、“HTTP",且封包中包 含"X-Kazaa"字串
表3-1 常見P2P連線的封包特徵
將定義的P2P軟體特徵在Gigascope1中進行驗證,結果證明應用層特徵可精確 的辨別出P2P軟體所產的流量,且誤判率(False Negative)均低於10%,對於
DirectConnect甚至能做到零誤判的程度。且與Port-Based方法相比,Signature- Basd對於愈常使用non-standard port的P2P軟體有愈佳的辨識效果,尤其對於 KaZaA高到3.47倍,如表3-2所示。
表3-2 Port-based與Signatured-based辨識結果之比較 資料來源:Subhabrata Sen,et al. [1]
1 Gigascope為一高速網路流量監測器,所能監測的網路流量最高可到達 OC-48(2.4Gbps)
3.1.2 SNORT 入侵偵測系統規則辨識
SNORT[28]這套入侵偵測系統(IDS,Intrusion Detection System)早在1988年 就誕生了,為GPL & OpenSource模式的入侵偵測系統。2005年被防火牆大廠Check Point買下後,從此不再以GPL授權釋出,但仍然維持OpenSource模式。使用者可
(1)Discovering and Booting:使用者開啟軟體登入網路,同時尋找線上節點。
(2)Sharing:送出自己分享的檔案列表。
(3)Querying and lookup:送出檔案請求查詢,網路上有此檔案的節點會回應。
(4)Downloading:peer to peer交換檔案。
以上述方法,分別對OpenNap、WinMX、FastTrack三套P2P程式進行分析。
OpenNap偵測起始狀態及登入Server的封包訊息,FastTrack跟WinMX連線訊息有使 用加密技術,但仍然可針對一些特徵提出警訊。說明如下:
1、OpenNap[25] (Open Source Napster Server):
該程式即為Napster的修正版,同樣有central servers的架構,但是這套 程式與Napster ,Inc.無關,所使用的技術也不同。這是一種Open Source平台,
適用於Unix及Windows系統,使用者可免費架設central server,提供WinMX及 支援OpenNap的用戶登入。
使用時,clients與servers之間的溝通均為明碼傳送,因而整個連線行為 及封包特徵較容易分析。SNORT規則共分六條,整理如下表:
編號 規則名稱 檢驗字串 位移比對及大小
1 catch the server welcome answer
〝VERSION〞 offset:4;depth:12
〝SERVER〞 offset:11;depth:18 2 catch the client login
message 〝WinMX〞 offset:4;nocase
4 Alert on query submit 〝 FILENAMECONT
AINS〞 offset:4;depth:18 5 alert on download
requests 〝GET〞 offset:0;depth:3;
dsize:3
6 Alert on upload requests 〝SEND〞 offset:0;depth:4;
dsize:4 表 3-3 SNORT Rules for OpenNap
2、WinMX Peer Network[22] (WPN):
WinMX連線協定較OpenNap複雜許多,它不但支援登入OpenNap的伺服器群 組,本身也提供一套WinMX對等網路傳輸協定,而且檔案搜尋、管理的功能非 常強大。WinMX本身的網路傳輸技術採用decentralized以及encyrpted messages的方式,此外連線類型還區分兩種讓用戶選擇:
(1)Primary connections:適合給高頻寬使用者,具較佳搜尋效率及穩定性,
使用該方式連線即可成為WPN的中繼cache server,還可開設聊天室。
(2)Secondary connections:適用低頻寬或者用戶,或者用戶連線被防火牆 阻擋時,採用這方法將透過其他primary connections的cache servers 來進行路由。
WinMX創辦公司Frontcode於2005年接獲美國唱片業協會(RIAA)要求在 WinMX加入關鍵詞過濾功能,令使用者無法搜尋受版權保護的收費作品。在面 臨法律訴訟的壓力下,Frontcode公司終於在2007年6月底將WinMX官方網址關 閉,但是目前仍有不少私人架設的論壇提供升級及討論的服務。
由於WinMX Peer Network採TCP加密技術傳輸,因而增加辨識的困難。作 者提出兩條SNORT規則,第一條偵測primary connection中的某固定大小為145 bytes的UDP封包,第二條僅偵測secondary connection是否建立,如下表說明:
編號 規則名稱 規則內容
1 alert on supernodes that answer to joining peer
msg : 〝 WPN Primary connection detected〞;dsixe:145;classtype:
policy-violation 2 alert on secondary connection
contacting WPN cache servers
msg : 〝 Probably WPN Secondary connection detected ; flow :
established;flags:PA;tag:host,1,
packets,src〞
表 3-4 SNORT Rules for WinMX
3、FastTrack[23]
FastTrack亦採用decentralized以及encrypted messages來連線,並且使 用supernode的方式提供一般使用者作為indexing server。除此之外,
FastTrack連線具有突破傳統防火牆封鎖的修正技術,透過supernode的仲介,
讓防火牆背後的storing peer能提供檔案讓外面的requesting peer下載。至 於下載請求則採用與HTTP非常類似的語法,再加上下載檔案前的溝通都採加密
1 alert on supernodes that answer to joining peer
〝|28|〞 offset:0;depth:1
〝|4b 61 5a 61 41 00|〞 offset:11;depth:17
2
Alert on sending a positive response to a request for a shared file
〝|48 54 54 50 2f 2f 31 2e
3120 32 30 30 20 4f 4b|〞 offset:0;depth:15
〝KazaaClient〞 session:printable 表 3-5 SNORT Rules for WinMX
[2]並未針對文章中提出的規則在真實網路中進行判斷準確率的檢驗,但作者 運用了規則編寫容易,且擴充性佳的SNORT作為P2P連線偵測系統。網管人員可依 照該方法自行定義規則,用來辨識其他P2P連線。