TCP/IP

先了解網路運作原理 再探討各式重要安全性能

入侵偵測暨防禦類型多 網路型徹底全攻略(上)

2019-09-30
網管人前兩期已說明了入侵偵測暨防禦的原則、主要性能,並介紹入侵偵測暨防禦系統相關技術。後續將要獨立探討「網路型」、「無線型」、「網路行為分析系統」、「主機型」等四大類型的入侵偵測暨防禦系統,而本期文章先探討網路型入侵偵測暨防禦系統。

 

網路型入侵偵測暨防禦系統可監控特定網段或設備的網路流量,並且分析網路層、傳輸層及應用層通訊協定,以找出可疑活動。首先,必須對TCP/IP的概觀有初步認識,這是必須知道的背景知識。接著,認識該類型系統的主要元件,並且解釋被用來部署這些元件的架構。此外,也將細部探討安全功能,包含它們用來識別可疑活動的方法論。

網路通訊原理簡述

TCP/IP提供的網路通訊協定現今已經被廣泛使用。TCP/IP通訊由「應用層」、「傳輸層」、「網路層」、「資料鏈接層」等四層組成,當使用者想要在網路上移轉資料,資料就會被從最高層級往下面傳送到最低層級,而每個層級都會增加一些資訊。最低層級將這些累加起來的資料在實體網路上傳送,資料接著就被傳送到目的端。基本上,每一層所產生的資料都會被底下一層更大的容器封裝起來。

「應用層」這一層傳送並接收資料,從特定的應用系統,例如DNS、HTTP、SMTP;「傳輸層」提供連線導向或非連線導向,為了在不同網路之間的應用層傳輸,而且傳輸層可以選擇性地確保通訊可靠度,TCP和UDP常被應用在這一層;「網路層」則負責封包在不同的網路之間路由。IPv4是基本的網路層協定,其他常見的有IPv6、ICMP、IGMP;至於「資料鏈接層」,則處理實體網路元件的通訊,最知名的就是Ethernet。

以上這四層共同運作,就能夠用來傳送資料。網路型入侵偵測暨防禦系統通常都在應用層執行它們絕大部分的分析。但也在傳輸層和網路層分析活動,以識別出在這些層的攻擊,並且促進對於應用層活動的分析(例如TCP Port號可能意味著某個應用系統正在被使用)。此外,某些網路型入侵偵測暨防禦系統也執行資料鏈接層的部分分析。

接下來,針將對這四層做更多的說明與認識。

應用層

透過應用層,應用程式可以在應用伺服器與用戶端之間傳送資料,這裡的通訊協定包括HTTP、DNS、FTP、SMTP、SNMP,但其實還有好幾百個經常使用的通訊協定。儘管通訊協定在使用中,應用資料被產生,接著傳送到傳輸層去做更進一步的處理。

傳輸層

傳輸層負責把資料封裝,以便可以在主機之間被傳送。大部分應用程式在網路上的溝通,都是依賴傳輸層去確保可靠的傳送,一般而言,是TCP達成了這件事。當某些應用資料遺失了卻可以被接受(例如串流聲音、影像),或者應用程式本身已經確保了可靠的傳輸,就會採用UDP。UDP是非連線導向,主機只傳送資料給另一台主機,而沒有任何事先溝通。

各個TCP或UDP封包都有來源Port和目標Port,其中一個Port是有關於伺服器應用系統,其他Port是關於相對應的用戶端應用系統。用戶端系統通常挑選任何可用的Port號給應用系統使用,即使伺服器系統有靜態Port號專屬於各個應用系統。雖然UDP和TCP的Port號非常相似,但它們仍然是彼此不同的。

網路層

網路層也叫做IP層,負責處理那些從傳輸層來的資料的定址和路由。在網路層將傳輸層資料封裝後,產生的邏輯單位就叫做封包。每個封包內含標頭,這由不同欄位所組成,而各個欄位會具體說明了傳輸層通訊協定使用的特性。另外,封包或許也會有Payload,承載著應用資料。IP標頭包含一個欄位叫做IP Version,這意味著採用了哪一個版本的IP,常見的就是IPv4和IPv6。其他重要的IP封包欄位如下:

Source and Destination IP Addresses(來源IP和目的IP):IPv4可能長得像「168.42.100.73」這般,而IPv6可能則像是「900::3E:4A:843:475:5BD3」。

IP Protocol Number(IP通訊協定號):這意味著IP Payload是在某網路層或者傳輸層的通訊協定。常用的IP號包含了1 (ICMP)、6 (TCP)、17 (UDP)以及50 (ESP)。

 

資料鏈接層

資料鏈接層涉及了網路的實體元件,包含線路、路由器、交換機、NIC等等。也包含了不同的通訊協定,其中以Ethernet最廣為人知及使用。Ethernet是建立在媒體存取控制位址(Media Access Control Address,MAC Address)概念上,這是6個Byte的唯一碼(可能長得像cc-03-a7-84-4c-ad),而且永久指定給該NIC。

資料鏈接層的邏輯單位是訊框(Frame),包含兩個媒體存取控制位址,分別是路由該訊框的媒體存取控制位址,以及訊框即將前往的媒體存取控制位址。隨著訊框傳過網路設備(路由器或防火牆或其他),在最初始的來源主機和最終的目的主機之間,媒體存取控制位址會被更新,並指向當地的來源和目的端。許多分開的網路鏈接層傳輸,可能被單一網路層傳輸給連接在一起。

除了媒體存取控制位址外,各個訊框也包含EtherType參數,這意味著訊框之Payload(通常是IP或ARP)的所在通訊協定(EtherType 0x0800表示IP,而0x0806表示ARP)。

當採用IP時,各個IP位址會對應到特定的媒體存取控制位址。因為多個IP位址可能對應到單一個媒體存取控制位址,所以一個媒體存取控制位址並不一定只能識別出一個IP位址。

網路型入侵偵測暨防禦系統產品提供了各式各樣的安全性能。以下來談談這些常見的安全性能,可分成「資訊蒐集」、「Logging」、「偵測」、「預防」等四個種類,此次的上集文章受限於篇幅,將只介紹前面三種。此外,某些該類型的系統產品也提供一些SIEM性能。

提供資訊蒐集能力

某些網路型入侵偵測暨防禦系統提供少許的資訊蒐集能力,亦即它們可以收集主機上的資訊,也可以收集這些主機涉及的網路活動的資訊。資訊蒐集能力的範例如下所述:

識別主機

該系統的傳感器可能會創建一份組織的主機清單,用IP位址或MAC位址來排序。此外,這份清單可以被用來當作識別新主機的一份基礎。

識別作業系統

傳感器可能可以識別組織內主機使用的作業系統和作業系統版本,舉例而言,傳感器能夠追蹤各台主機上面有哪一個Port被使用,這可能暗示著特定的作業系統或作業系統家族(例如Windows、UNIX)。另一種方法是去分析封包標頭,用特定作業系統,才會呈現的特定不尋常的特徵或特徵的組合;這就是所謂的被動痕跡探測(Passive Fingerprinting)。某些傳感器也可以識別出應用系統版本,這在某些案例中意味著正在採用哪一個作業系統。知道正在使用哪一個版本,有助於識別潛在的脆弱主機。

識別應用系統

對某些應用系統來說,傳感器能夠識別正在使用的應用系統版本,透過追蹤哪一個Port正在使用,並且監控應用系統通訊的特定特徵。例如,當用戶端和伺服端建立了一條連線,伺服端可能會告訴用戶端是用甚麼樣的應用系統伺服器軟體版本在跑,反之亦然。應用系統版本中的資訊可以被用來識別潛在脆弱的應用系統,以及某些對於應用系統未經授權的使用。

識別網路特徵

某些傳感器蒐集關於網路流量的一般資訊,例如網路設備和主機的組態設定,包含了兩台設備之間的Hop數量,這個資訊可以被用來偵測網路組態設定的變更。

進行資料Logging

網路型入侵偵測暨防禦系統通常都會對偵測到的事件做廣泛的資料Logging。這個資料可以被用來確認警告的真實性、調查事故,並且把該系統與其他Logging來源的事件關聯化。資料欄位通常包含以下幾種:

‧時戳(日期和時間)

‧連線ID或Session ID。典型的是個連續的或者唯一的號碼,被指定給各個TCP連線,或者被指定給Connectionless通訊協定的封包群組。

‧事件種類或警告種類

‧等級,例如優先順序、嚴重性、衝擊、信心。

‧網路層、傳輸層、應用層的通訊協定。

‧來源和目的IP位址

‧來源和目的Port,或ICMP種類及代號。

‧傳輸量

‧被解編的Payload,例如請求和回應。

‧狀態相關的資訊,例如通過身分驗證的使用者名稱。

‧已經執行的預防行動(如果有的話)

大部分的網路型入侵偵測暨防禦系統也可以執行封包擷取。一旦有警告發生,通常就會做封包擷取,若非記錄該連線之緊接著的後續活動,則記錄整個Connection(如果系統已經正在儲存前一個封包)。

提供廣泛的偵測性能

網路型入侵偵測暨防禦系統通常都會提供廣泛的偵測性能。大部分產品採用特徵偵測、異常行為偵測、協定狀態分析法三者綜合起來的技術,去對常見的通訊協定執行深度分析;若採用此種系統產品,應該要確保它們採用了綜合型的技術。而這樣偵測方法,通常都是彼此緊密互相運作的。舉例來說,協定狀態分析的引擎可能對於某個活動從請求和回應的語法上去分析,各個語法都被檢驗,看看有無異常行為,拿去與已知的惡意行為特徵做比對。某些產品也使用相同技巧並且提供和網路行為分析(Network Behavior Analysis,NBA)軟體相同的功能。

緊接著,討論偵測能力的面向,包括「偵測到的事件種類」、「偵測精確度」、「調校及客製化」以及「技術上的限制」。

偵測到的事件種類

最常被網路型入侵偵測暨防禦系統傳感器偵測到的事件種類,包括以下幾種類型:

應用層勘查及攻擊

所謂的應用層勘查及攻擊,包括Banner Grabbing、Buffer Overflows、Format String Attacks、Password Guessing、Malware Transmission。網路型入侵偵測暨防禦系統會分析許多種的應用通訊協定,常見的有DHCP、DNS、FTP、HTTP、IMAP、Internet Relay Chat(IRC)、Network File System(NFS)、POP、rlogin/rsh、RPC、Session Initiation Protocol(SIP)、Server Message Block(SMB)、SMTP、SNMP、Trivial File Transfer Protocol(TFTP),以及DB通訊協定、即時通訊、P2P軟體。

傳輸層勘查及攻擊

所謂的傳輸層勘查及攻擊,包括Port Scanning、不正常的封包分段、SYN Floods,而最常被分析的通訊協定當然就是TCP和UDP。

網路層勘查及攻擊

此類型包括了偽造IP位址、不合法IP標頭參數,而這一層最常被分析的有IPv4、ICMP、IGMP。至於網路型入侵偵測暨防禦系統對於IPv6的分析程度到甚麼地步,就要看各家產品來決定。某些產品可以對IPv6和Tunneled IPv6流量做一些基本的處理,例如記錄來源和目的IP位址以及Extracting Payloads(如HTTP、SMTP等等)來做深度的分析。其他產品可以對IPv6通訊協定做完整的分析,例如證實IPv6 Option的真實性,以識別出對於通訊協定的異常使用。組織若有要監控IPv6活動的需求,應該要小心評估該系統產品對於IPv6分析能力。

非預期之應用服務

此類型包括Tunneled Protocols、後門、執行未被授權服務的主機,這些通常會被協定狀態分析法偵測到,可以判斷是否該連線的活動與原本預期的應用通訊協定一致;或者,透過異常行為偵測法,識別網路流量和主機上Port的變更。

政策違反

所謂的政策違反,包含了瀏覽不被允許之網站、使用受到禁止之應用協定等等。某些違反安全政策的種類,可以被入侵偵測暨防禦系統偵測到,允許管理者具體指明不該被允許的活動特徵,例如TCP或UDP的哪一個Port不能通過、哪一個IP不能通過、哪一個網站名稱不能通過,以及其他可以被網路流量檢查出來之資料的部分。

某些入侵偵測暨防禦系統也可以監控那些在建立加密通訊的初始化協定(Initial Negotiation),以識別用戶端或伺服器端軟體有已知的漏洞或錯誤組態設定。這可以包含像是SSH和SSL的應用層通訊協定,還有像是IPsec的網路層協定。

網路型入侵偵測暨防禦系統的傳感器通常可以判定是否一個攻擊有可能成功。舉例來說,如同稍後會提到的,傳感器可能知道組織的網頁伺服器執行的伺服器版本。如果攻擊者對一個較不脆弱的網頁伺服器發動攻擊,接著傳感器可能產生低優先順序的警告;如果該台伺服器被認為是較脆弱的話,接著傳感器可能產生高優先順序的警告。不管該攻擊有無可能成功,傳感器通常被設定成阻止攻擊,但是入侵偵測暨防禦系統可能仍然用不同優先等級去記錄活動。

偵測精確度

從歷史角度來說,大部分人們會認為網路型入侵偵測暨防禦系統經常伴隨著許多型一錯誤和型二錯誤。大部分早期的技術主要都依賴特徵偵測法,就其本身而言只有在相對簡單、已知的威脅才會精確偵測出來。從那時候起,偵測技術就不再只是單一種,而是多種技術綜合起來以提升偵測的準確度和廣度,如此一來,確實型一錯誤和型二錯誤的比例也會下降。關於網路型入侵偵測暨防禦系統準確度的另一個常見的問題是,它們通常需要大量的調校和客製化,才能考慮到被監控的環境的特徵。

事實上,網路型入侵偵測暨防禦系統傳感器的型一錯誤和型二錯誤,只能被降低到某個程度而已,這是因為所監控之活動本身的複雜性所造成。單一傳感器通常監控的網路流量都涉及到上百台或上千台的內部和外部主機。作業系統和應用系統的數量和彼此差異性都很大,而且作業系統和應用系統也都持續在變動。這就使得作業系統要了解每一件它所看到的事情,根本就是不可能的事情。

更糟糕的是,作業系統必須從許多不同的伺服器和用戶端組合當中監控活動。例如,某組織可能採用十個不同種類和版本的網頁伺服器,而使用者卻可以使用超過三十種不同種類和版本的瀏覽器。各個瀏覽器和伺服器的組合,都可能會有唯一的通訊特徵(例如指令順序、回應代碼),這些都會對目前分析的準確性造成衝擊。而且,不同的組態設定和客製化可能會被套用給瀏覽器和伺服器。再者,伺服器和用戶端之間的安全管控措施,例如防火牆和代理伺服器,也會給傳感器帶來額外的挑戰。

理想上,網路型入侵偵測暨防禦系統有能力攔截所有的網路活動,就如同在端點做的一樣。不同種的網頁伺服器,可以用不同的方式攔截相同網頁請求。協定狀態分析法技術,通常試著透過複製在用戶端和伺服端的處理方式來做到攔截所有網路活動,這樣一來,傳感器就能或多或少去提升偵測的準確度。許多駭客使用用戶端和伺服端的處理方式特徵,例如操弄字元編碼。公司組織若使用網路型入侵偵測暨防禦系統,應該要確保它們可以補償那些常見的躲避技巧。

調校及客製化

網路型入侵偵測暨防禦系統通常需要廣泛調校和客製化,以提升它們的偵測準確度。調校和客製化功能的範例包括:嘗試Port Scan和嘗試應用系統身分驗證的閾值、主機IP地址和用戶名的黑名單和白名單以及警報設置。某些網路型入侵偵測暨防禦系統支援名聲服務,根據其先前的行為顯示了IP位址、Domain、Protocol、地理位置可能的本意(善意或惡意)。某些產品也提供程式碼編輯,這通常會被限制在特徵的程式碼修改,但在某些情況下可能允許存取額外的程式碼,例如用來執行協定狀態分析的程式碼。

某些網路型入侵偵測暨防禦系統可以使用關於組織主機的資訊,以提升偵測準確性。舉例來說,可能允許管理者具體指明組織網頁伺服器、郵件伺服器、其他常見的主機所使用的IP位址,而且具體指明各個主機所提供的服務種類(例如網頁伺服器應用系統種類和版本),這讓此種系統可以把各種警告的優先順序排得更好。

舉例來說,針對Apache Server的Apache攻擊的警報,將優先於相同攻擊卻針對不同類型之Web服務器的優先序。某些網路型入侵偵測暨防禦系統也可以匯入弱點掃描的結果,並且運用它們來判斷哪一個攻擊如果不被封鎖的話就會成功。這允許系統去做更好的決策,在預防行動和排定優先順序上會有更好的準確性。

下集文章將接著介紹網路型入侵偵測暨防禦系統各元件、架構、及其技術上的限制。

<本文作者:黃信智,目前為久揚科技服務有限公司營運總監,提供資安管理、隱私保護、營運持續管理等顧問諮詢服務、以及滲透測試、源碼檢測等資安服務。擁有CEH、ECIH、CISSP、ISO 27001 LA等資安證照。>


 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!