网络安全 频道

添加入侵防護系統(IPS)功能

諸如防火牆和網路入侵檢測系統(NIDS)這樣的傳統安全方法已不足以防範現在的病毒和駭客的攻擊,IPS已經成為下一級基本的安全防護措施。本文討論了設計有效的IPS系統時的挑戰和需要解決的關鍵問題,並分析了下一代網路處理器方案實現IPS的優勢。

 

最近幾年,越來越多的複雜病毒、蠕蟲、拒絕服務攻擊以及駭客的惡意入侵已經給商業單位數造成十億美元的損失。鑒於應用程式的攻擊行為、傳統方法的反應特性和對不斷演變攻擊的無能為力,諸如防火牆和網路入侵檢測系統這樣的傳統安全方法已經不足以防範這些行為。如今的需求是即時阻截攻擊和入侵以保護價值重大的公司資產。

 

人們製作了IPS來實現這個目的,IPS已經成為下一級基本的安全防護措施。安全和企業網路市場的設備製造商正考慮將IPS作為他們產品屬性的一部份。然而,IPS系統在提供網路保護和對用戶的作業透明度上具有獨特的要求。IPS設備的存在不應該影響日常的網路功能或用戶體驗。

圖1:NIDS和IPS系統的比較。

 

NIDS和IPS系統的比較

 

傳統的網路IDS(NIDS)系統被設計用於被動地監測網路,根據規則集和策略來尋找異常行為(如攻擊、入侵、漏洞利用和濫用)。它們在不影響網路性能的情況下觀察網路數據封包串流。如果NIDS突然出現故障,業務並不受影響,數據封包像以前一樣繼續流動,故障對用戶是透明的。

 

然而,與NIDS系統只監測流量、產生日誌和報告以供日後分析不同的是,IPS系統是主動的在線設備,能丟棄攻擊數據封包,或者在數據封包到達主機前斷開連接(圖1)。高階的IPS系統通常採用的入侵檢測方法包括基於簽名的檢測、協議異常檢測、流量異常和搜尋檢測。

 

IPS系統基於流經它們的流量的狀態分析來檢測入侵。它們執行片段重組、TCP字段重組、流量分析、應用協議確認和簽名匹配來識別攻擊。圖1顯示了網路入侵檢測系統與入侵防護系統的不同之處。

 

為向用戶提供不中斷的服務,IPS系統必須實現很高的準確率,幾乎沒有什麼錯誤的確認,這使得其成為一種運算密集的應用。因此,IPS的性能直接影響到網路的性能,因而產生延遲、吞吐量、應用程式性能和可用性等問題。在將每個數據封包繼續傳遞之前,需要花一些額外時間來對封包進行檢查,這就導致了延遲。如果數據封包接收的速度要快於IPS能夠處理與傳遞的速度,就會產生影響吞吐量的瓶頸。如果IPS系統產生故障,數據封包的流動將停止,網路將不能使用。

 

IPS設計考慮

 

當設計IPS系統時,必須考慮很多因素。是將IPS功能建構到交換機、路由器和/或防火牆裡,還是單獨設計一個IPS系統?IPS系統設備應該放在網路中的什麼位置?需要的可用性等級以及預期的吞吐量是什麼?期望的用戶體驗是什麼?設備將支援哪些其他的業務,如虛擬專用網路(VPN)等。

 

設計師還必須考慮性價比、上市時間和目標市場。小型商業環境不如大型企業環境對IPS性能要求那麼高。與可用頻寬成正比的期望吞吐量在這兩種情況下區別會很大。

圖2:在通用處理器上實現IPS。

 

IPS可以設計用於處理所有的網路流量(即吞吐量),或僅處理其中一部份。例如,不透過IPS設備路由所有的網路資訊串流,而是可以在交換機上有選擇性地選用一個埠。智慧交換機可以根據對一些反常網路行為的觀察從一個特定的埠重新引導資訊串流到IPS系統。防火牆可以針對特定的協議選擇性地應用入侵防護,或者僅針對尋址地址為特定IP地址的資訊串流使用入侵防護。

 

其它影響設計因素包括加速的使用和處理器類型。處理器的選擇和其性能對延遲和吞吐量具有直接影響。如系統頻寬、容量、並發用戶數和連接等因素都影響設備製造商做出的選擇,如整合或者獨立的功能、單個或者多個核心處理器以及是否配置硬體加速和其他系統參數。

 

通用處理器和模式匹配協同處理器

 

根據性能要求,設備製造商可以選擇採用傳統的通用處理器(GPP)來實現IPS功能。儘管GPP是實現IPS功能最廉價的選擇,但它更適合低階性能要求的應用。不過,由於使軟體在其上執行投入的工作較少以及更少的軟體/硬體整合問題,因此採用GPP比採用更高性能的可選方案的產品上市時間更短。因為在IPS系統中使用的GPP是設計用於控制面應用,因此它們在數據面吞吐量上存在侷限性。

 

設備製造商可以透過增加一種模式匹配硬體加速器(協同處理器)來提升性能。就像VPN採用密碼加速器來提高性能一樣,模式搜尋加速器廣泛用於IPS字符串匹配。圖2顯示了採用GPP和模式匹配協同處理器的設計。

 

如今大多數先進的模式匹配加速器支援一種常規表達式介面。為提供最有效的模式匹配加速並減少錯誤的確認,IPS軟體必須與硬體加速器緊密整合。因為這個原因,很多的設備製造商可能選擇實現他們自己的這種演算法的定製版本和定製語言來提供軟體和硬體之間的介面。這種整合包括幾種非常好的化技術,很大程度上取決於硬體加速和IPS軟體的性能。

 

在典型的硬體加速實現中,IPS軟體接收數據封包並對這些數據封包進行標準化處理以保持狀態資訊和流量統計數據等。在軟體中執行分段和重組。在模式匹配的時候,合適的數據串流被傳遞到硬體加速器。由於不同的搜尋字符串和數據串流緩衝器大小,每個硬體加速器對這個任務進行處理的方式不同。在所執行的模式搜尋類型中,存在簡單模式搜尋和複雜模式搜尋。

 

在簡單模式搜尋中,初始的搜尋透過硬體在數據串流上執行。然後所有匹配數據在‘二次傳遞’中被發送到一個軟體模式匹配中。儘管軟體匹配比硬體匹配慢,但是軟體只處理那些已被硬體確認的匹配項。所有用於識別攻擊的基於上下文的複雜搜尋邏輯都由軟體實現。

 

上面方法的有效性取決於存在於數據串流中的‘正常’數據封包與惡意數據封包的相對數量比較。例如,如果只有百分之一的資訊串流封包含惡意數據封包,在軟體中處理這些數據封包所增加的開銷很小。然而,如果99%的資訊串流包含惡意數據封包,在軟體中處理這些匹配將增加大量的開銷,使硬體加速帶來的好處變得沒有效果。簡單的模式搜尋在硬體側需要較少的編程工作和較少的整合工作,因而減少了上市時間。

圖3:基於傳統NPU的IPS實現。

 

在複雜的模式搜尋中,一種具有應用程式意識的系統必須能執行一種基於上下文的搜尋,這需要在應用程式中的某種狀態下、在數據報中某個偏移量、或者在其它的預先確定的點執行字符串搜尋。發送到硬體的參數包括數據串流、查找字符串、協議類型和數據封包深度。加速器提供的輸出包括匹配字符串、協議和用於檢測入侵的其他數據的資訊。這種方法需要複雜的邏輯編程,以實現對硬體加速器編程,而且硬體必須能接受這些不同的參數。

 

IPS是一種處理密集的作業,即使是採用硬體加速,基於GPP的IPS系統也不能提供具有高資訊流量的大型網路要求的性能。一種提升性能的折衷方法是使用對稱多處理器(SMP),它允許多個GPP執行以及需要能支援SMP的軟體。對於需要更高處理能力的應用,網路處理器能提供更高等級的性能。

 

傳統網路處理器的侷限

 

網路處理器(NPU)對於要求線速的高性能應用很理想。選擇NPU,避免了困難、耗時且高成本的定製ASIC開發任務,而NPU能以接近於ASIC的速度來處理數據。

 

NPU是經過特定設計和非常好的化因而以很快的速率處理網路協議的CPU。NPU透過將任務劃分為控制面(慢的路徑)和數據面(快速路徑)處理來實現這一點,如圖3所示。處理器的指令包含在片上韌體內,指令可以用微碼編寫,來對NPU的行為進行編程。

 

圖3中,數據面處理重覆性的功能,如將數據封包從一個介面轉發到另外一個介面的交換功能、執行分類、調度、過濾和其他任務。快速路徑處理像防火牆和VPN這樣的需要直接的、一致處理的數據封包。這就是NPU的力量。

 

慢的路徑處理需要更複雜處理的數據封包,如協議中的關鍵字搜尋或者與IPS功能相關的簽名檢測。控制面功能一般由一個外部GPP處理或者透過網路處理器中內嵌的控制面處理器處理。控制面軟體必須設計成能將快速路徑與慢的路徑隔離開。為了使控制面和數據面緊密地協同工作,GPP必須透過一個經過仔細定義的應用編程介面(API)與NPU通訊。

 

NPU主要設計用於第二層/第三層處理,具有複雜的專有軟體開發模型,負載很重。每個數據面必須針對特定的應用和控制面進行定製建構,增加了上市時間和成本。IPS功能對NPU的設計增加了新等級的邏輯複雜度。不幸的是,由於IPS軟體的複雜特性,大多數的數據處理在控制面完成。這使得NPU架構不是很適合用於IPS軟體。

圖4:使用下一代NPU架構實現IPS。

 

 

具有IPS功能的安全設備的系統性能可以透過利用NPU並採用NPU架構來加強。NPU可用來提供模式匹配協同處理因而減少控制面的負載。這需要採用特定供應商的模式匹配微碼來對NPU編程。另外一個選擇是使用NPU來分擔安全功能的處理,而不是IPS,以釋放控制面的處理週期用於IPS處理。

 

儘管NPU對於像防火牆和VPN這樣的其它網路應用提供了比GPP更高的性能,但與IPS軟體相關的複雜性不斷增加使得目前的NPU並不太令人滿意。其他一些問題諸如編程和整合的複雜性、對加速器的依賴以及對更高性能的需求促使設計師去尋求性能更強大的解決方案。

 

下一代NPU實現IPS性能

 

未來的網路處理器透過利用複雜的處理器架構,增加智慧功能和易用性,很有可能克服上面討論的大部份侷限性。將用於處理傳統的網路處理任務的傳統NPU架構和用於處理以內容為中心應用的協同處理器解決方案加以整合,可以為像IPS這樣的複雜應用提供一種理想的混合解決方案。多個處理單元(PE)和更強大的協同處理器,如圖4所示,可以專用於特定應用的處理,對像IPS這樣的對內容關注的應用提供更好的支援。

 

下一代NPU將可能將基於作業系統的標準編程能力的易用性與高數據面吞吐量及內建的硬體加速結合起來,而不需要單獨的協同處理器。下一代的NPU還將可能能夠以一種無縫和平衡的方式提供智慧網際網路業務應用和安全處理,同時提供更高的性能。

 

用於下一代NPU的多核心處理器將能夠把不同的IPS任務卸載到不同的處理器上,或者將IPS任務專門分配到一個處理器,將防火牆任務分配到另外一個處理器,因而增加吞吐量並減少延遲以獲得更高的性能。設計成以多執行緒執行任務、並且使執行緒之間依賴性很小的軟體將能獲得更高的性能。然而如果軟體不能支援多核心架構,選擇多核心處理器可能對增強性能不會有什麼幫助。

0
相关文章