• 沒有找到結果。

封包特徵辨識法之研究(Signature-Based)

第三章 相關研究

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連線。