文.蔡一郎
資訊安全是近幾年相當熱門的話題,在一個封閉的網路環境中,才有可能實現一個絕對安全的網路環境, 在網際網路中是不太可能存在這樣的條件。目前,網路環境中大多建置了各式各樣的網路安全設備,如防火牆(Firewall)、入侵偵測防禦系統 (IPS)、內容閘道器(Content Gateway)等,這些設備大多只能夠針對已知的特徵進行過濾和阻擋惡意行為,對於新型態或無法明確定義特徵的行為,則幾乎都達不到防護的要求。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
網路封包的解析是目前經常用來解決現有設備不足的最佳方案。分析網路封包,除了能夠找出 異常的行為和網路流量之外,也可以用來學習各種不同通訊協定,是網路管理人員不可或缺的技能。網路提供使用環境,人類是網路的使用者,許多在真實社會發生 的事件,仍然會在網路上重演,但是更為隱匿,這也是發展資訊安全技術的重點所在。 認識網路封包分析 網路封包是目前網路用來傳送資料的最小單位。封包因為不同的應用服務或通訊協定,而有各種不同的大小。一個封包由標頭(Header)和資料(Data) 所組成,封包的屬性被詳細地定義在標頭中,包括所使用的通訊協定、來源的IP位址、來源的通訊埠、目的地的IP位址、目的地的通訊埠等欄位,不過並非所有 的通訊協定都有相同的欄位資料,由於採用不同的通訊協定,網路封包的結構都有些許的差異。 在網路上傳送網路封包,路由器(Router)主要是依據封包標頭所記載的目的地IP位址進行路由的交換,以確定依據目前的路由表(Routing Table)能夠將封包送到目的地。因此,在網路架構中的適當位置擷取網路封包,就可以取得相關的資訊進行行為分析。目前常見的網路封包分析工具有 Tcpdump、Sniffer、NetXRay、Wireshark(Ethereal)等,其中Wireshark雖然屬於Open Source軟體,但是所具備的功能卻足可媲美許多商業軟體。在GNU GPL通用授權的保障之下,使用者可以免費取得軟體及其程式碼,並擁有修改原始碼與客製化的權利。 一般而言,之所以想要解析網路封包,大致上有以下幾種原因:瞭解電腦網路目前進行的動作、監聽側錄另一台電腦網路連線、瞭解網路程式如何運行以及學習網路 通訊協定。透過網路封包的工具,使用者可以掌握目前網路上的通訊和使用者行為模式。準備擷取網路封包時,必須配合Hub、Y-TAP或Switch進行網 路介面的對應,這是因應Switch本身設備的特性而必須進行的設定。大多數中高階的交換器都會提供Port Mirror或Port Mapping功能,這樣才能夠確保安裝網路封包分析工具的設備能夠正確地擷取到網路封包。
通訊協定簡介 因應不同的網路服務,目前網路使用相當多不同類型的通訊協定,這些通訊協定可以視為「溝通」的語言,讓資訊透過相同的語言在網路上進行交流,以下列舉出在網路層、傳輸層與應用層常見的通訊協定。
目前網路上有許多不安全的通訊協定,這些通訊協定大多採用明碼的方式傳送,經常造成資訊外洩,如HTTP、TELNET、POP、SMTP等。這些通訊協 定也都應用在常見的網路服務,包括網頁瀏覽、電子郵件接收與傳送,以及遠端管理連線等。傳統的網路服務程序,因為在網路上用明文傳送數據、用戶帳號和用戶 密碼,很容易受到中間人(Man-in-the-middle)方式的攻擊。 TCP是目前網路上最常見的通訊協定,屬於TCP/IP模型中的Application Layer(應用層),能夠確保資料正確可靠地傳送到目的地,TCP連接包含連線建立、資料傳送和連線終止三個狀態。必須完成三向交握,才能夠建立連線。
HTTP(HyperText Transfer Protocol)是一種網際網路上應用相當廣泛的網路協定,使用者端和伺服端之間可以透過HTTP來傳輸資料,因為在瀏覽大多數的網站時,都會採用網域 名稱的方式,因此在整個建立連線的過程,會先查詢DNS。使用UDP 53埠向系統設定的DNS伺服器進行查詢,待取得解析後的IP位址後,才會進行TCP三向交握的處理,以建立使用者端與伺服器端的連線。
Wireshark簡介 Wireshark的前身就是大名鼎鼎的Ethereal,目前最新的版本是1.0.2版,各位可以直接到Wireshark的官方網站 (www.wireshark.org)下載,在網站上提供了許多不同作業系統的版本,可以安裝在各種常見的作業系統中,在資訊安全領域 中,Wireshark被廣泛應用在網路封包的解析,目前已經能夠解析超過七百種的通訊協定,所以對於目前網路上所使用的通訊協定,幾乎都能夠辨識與解 析。此外,Wireshark也結合了強大功能的過濾器,讓使用者可以針對特定的目標分析網路封包,有助於通訊協定的行為研究與異常行為的偵測。
如果之前使用過上述的軟體擷取好檔案,就能夠直接透過Wireshark開啟並且運作所提供的各種過濾器與統計分析的功能進行處理,解決原工具可能無友善 使用者介面的問題,例如純文字模式的tcpdump就無法提供像Wireshark一樣強大的過濾器與圖形介面。將tcpdump的檔案載入到 Wireshark中,就能夠快速針對封包的內容與網路封包所隱藏的行為進行分析,使用上相當的方便。 Wireshark的操作介面 Wireshark雖然不是商業軟體,但是所提供軟體介面相當優秀,具備完整的過濾器和統計分析的功能。其操作介面分成幾個主要的部份,包括最上方的功能 表和各種工具列、網路封包的清單、封包的標頭和封包的內容,並且以不同的顏色來代表各種不同的通訊協定或是過濾條件。這樣的設計讓使用者在擷取網路封包的 過程中,就能夠即時瞭解目前網路上所傳送的網路封包類型。由於Wireshark可以解析超過七百種的通訊協定,因此幾乎所有協定都能夠解碼,就算將來有 新的通訊協定推出,也會因為其採用開放原始碼的授權方式,而能夠快速地發展解析新通訊協定所需要的程式,這對於適應未來網路的發展相當重要。 另外,在網路封包清單中,可以針對不同的網路通訊協定或過濾規則指定顏色,這種設計方式可以協助使用者快速辨識各種不同通訊協定,或是過濾規則符合目前網路流量的情況,能夠更直覺地進行後續處理。
如果確定某些通訊協定並不存在於收集網路封包的環境中,則可以停用這些通訊協定,這在較繁忙的網路環境中將能降低比對的協定種類與數量,也可以避免因為硬體效能的問題而遺失原本打算擷取的網路封包。通訊協定清單中提供詳細的描述,可以做為是否啟用這些通訊協定的參考。
Wireshark的主要功能 Wireshark提供了圖形化的操作介面和功能完整的過濾器,提供使用者相當友善的操作方式,能夠快速地找到想要分析的網路封包。透過其內建的通訊協定 解析功能,使用者可以掌握每一個網路封包的詳細資訊,除了能夠瞭解封包所傳送的內容之外,也可以學習各種通訊協定的行為模式。
在正常情況下,如果在區域網路內收到這類型的網路封包已連上網路的主機將會進行回應,因為經常會看到一些閘道器(Gateway)或路由器 (Router)發送出來的詢問封包,而這些封包正在找尋該網段中電腦或設備所使用的MAC位址。若配合過濾器,則必須輸入「arp」以作為過濾的條件, 這樣可以很容易地將焦點聚集在ARP這個通訊協定上。
Wireshark的應用 Wireshark提供完的網路協定分析功能,透過各種統計分析能夠掌握目前網路的狀態,目前支援相當多種不同層級的統計與分析方式,可以統計每一種通訊 協定在整個收集網路封包的過程中,佔有多少的比例、封包的總量、封包大小的總和,以及每一秒送了多少Mbit的資料等,這些數據讓使用者能夠輕易地掌握目 前網路的現況。
在網路攻擊或異常流量的偵測上,以DDoS攻擊對於網路流量的影響最大。在極短的時間內會收集到相當多的封包,進而影響到網路的頻寬和伺服器本身的效能, 例如遭受到大量的UDP網路封包攻擊時,透過網路封包的分析,就能夠得知許多假冒來源IP位址的網路封包正針對特定的目標傳送大量的UDP網路封包。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||