本篇論文目錄導航:
【題目】國內互聯網完全問題探究
【第一章】計算機網絡安全防范探析緒論
【第二章】以太網及TCP/IP協議介紹
【第三章】網絡流量分析系統設計
【第四章】網絡安全系統仿真測試與結果分析
【總結/參考文獻】計算機網絡安全防護技術研究總結與參考文獻
第三章 流量分析系統設計
隨著全球信息化建設的不斷加快,網絡安全也隨之變的越發重要。網絡安全從其本質上來講就是網絡上的信息安全。從廣義來說,凡是涉及到網絡上信息的保密性、完整性、可用性、真實性和可控性的相關技術和理論都是網絡安全的研究領域。
3.1 網絡安全防護與流量分析系統的關聯性
現有網絡防護設備通過系統本身實現對 OSI 全層次的數據處理,包括數據接入、識別、分類以及 data 字段的數據分析,由此極度依賴、消耗硬件資源。而流量分析系統是對現有網絡防護體系進行物理上的分離,數據分流設備實現數據 1 到 4 層的數據處理、ip 分片重組、亂序重排等基礎功能,服務器實現數據包數據層面的分析與處理。由此,服務器資源將全部釋放用于數據的深度處理,從而實現網絡安全的整體防護。
3.2 網絡流量分析系統部署
眾所周知,網絡攻擊[11]的主要類型有 DoS 攻擊、緩沖區溢出攻擊、漏洞攻擊、欺騙攻擊等??偨Y其攻擊方式,均是通過人為研究網絡相關協議特性,使網絡設備資源耗盡、癱瘓或被欺騙,以此達到攻擊、占用網絡設備的目的。而網絡安全防護通常采用的是防火墻策略,防火墻的作用是通過允許、拒絕和重定向經過防火墻的數據流,防止不希望的、未經授權的通信進出被保護的內部網絡,并對進、出內部網絡的服務和訪問進行審計和控制,本身具有較強的抗攻擊能力,并且只有授權的管理員方可對防火墻進行管理,通過邊界控制來強化內部網絡的安全。但防火墻的本質是通過對已知攻擊的了解,做好“防患于未然”,而對未知攻擊的防御性,就顯得捉襟見肘。
3.2.1 系統網絡架構
本文以傳統防火墻網絡架構為基礎,在此基礎上添加網絡添加流量分析平臺,以此與傳統防火墻[12]形成二級聯動,在防范網絡攻擊的同時,能夠以極快的速度響應新的網絡威脅。
網絡拓撲如下圖 3.1 所示:
如上圖 3.1 所示,網路流量通過外網 route_A 到達數據分流設備,數據分流設備將其流量復制一份,經五元組(源 IP,目的 IP,源端口,目的端口,應用協議)ACL[13]過濾,然后通過防火墻進入內網;另復制一份流量按照五元組 ACL 規則對流量進行區分輸出至數據分析服務器,數據分析服務器對獲取的數據進行人工或已設定條件的程序分析,對數據分流設備生成新的 ACL 規則,以過濾通往防火墻的網絡流量,防止內網遭受攻擊。
3.2.2 數據分流設備定位
在傳統網絡中,防火墻對 OSI 的 1~7 層實行全覆蓋防御,因此防火墻對未知的應用層攻擊無法回應,其次,防火墻的性能指標無法滿足日益增長的網絡帶寬及小字節數據包的網絡沖擊。OSI 七層模型結構及功能如下表 3.1 所示數據分流設備工作在 OSI 的 4 層結構,通過對數據數據鏈路層、網絡層、傳輸層的特征值過濾,將攻擊流量丟棄。而根據硬件配置的不同,分流設備最高可以提供單端口 100G,總計帶寬超過 1T 的數據處理能力。
3.3 數據分流設備功能模塊設計
分流設備遵守系統模塊化設計原則,按照功能、系統對設備模塊進行劃分。計算機網絡數據通過兩級硬件交換實現線速的二三層交換。一級交換在線路接口板的各端口之間;二級交換則在各個線路接口板之間,通過控制交換板來實現數據交換。
3.3.1 系統功能模塊
基于五元組的分流設備功能模塊如下圖 3.2 所示:
分流設備按功能劃分,主要包括控制模塊、交換模塊、包處理及接口模塊和電源模塊。
控制模塊:控制模塊由主處理器和一些外部功能芯片組成,實現系統對各種控制應用的處理,比如 telnet,fclp 等? 交換模塊:交換模塊具有多路高速的雙向串行接口,可完成線路接口板之間的線速數據交換。
包處理及接口模塊:可以提供一個或多個物理端口,不同的線路接口板可以實現不同速率、不同類型業務的接入。
電源模塊:電源模塊采用 220V 交流供電或-48V 直流供電,為系統內其他部分提供所需的電源。
數據分流設備通過電源模塊對整個設備進行供電,并采用電源的 1+1 冗余備份,保證電力供應。計算機網絡數據流量通過接口模塊將數據包送入設備進行處理,數據包在此完成物理層及數據鏈路層檢測,包括以太網數據包最小字節檢測、jabber 幀檢測、接口緩存區溢出檢測、線路信號檢測等。當網絡數據包通過接口模塊的預處理后,進入包處理模塊進行 3 層及 3 層往上的數據處理,對數據包進行 IP 識別、端口識別,從而進行應用層識別。然后,數據將進入交換模塊進行基于硬件的快速轉發,當設備判定數據從本板輸出時,數據通過一級交換模塊直接轉發出去,當設備判定數據從跨板輸出時,數據將通過二級交換模塊轉發數據。數據分流設備通過控制模塊對本設備主控制器及其他功能芯片進行控制,以此實現對設備的管理操作,例如 telnet、snmp、sflow 等等。
3.3.2 系統工作流程
數據分流系統利用 ACL 規則實現入口的流量過濾,利用鏈路聚合邏輯端口作為輸出端口,通過 redirect、permit、deny 命令分別實現數據流量的重定向、白名單、黑名單過濾。數據分流系統的工作流程如下圖 3.3 所示:
網絡流量從輸入端口進入分流設備,通過 ACL 規則判定是否匹配,若匹配 deny 規則或未匹配規則,則數據直接丟棄;若匹配 redirect 或者 permit 規則則進入下一流程查找輸出端口,當查到輸出端口時,則通過輸出端口輸出,若未查到輸出端口,則丟棄該數據。
3.4 數據分流設備分流算法設計
基于以太網的流量分析系統核心即是數據分流算法,由本文第二章對 TCP/IP 協議簇的介紹可知,基于 TCP/IP 的以太網絡是以層次化模型結構來對數據進行處理的,在傳統網絡設備當中,交換機基于二層的 mac 地址交換,路由器基于三層的 IP 路由,而數據分流設備分流算法,是基于五元組的 hash 分流算法,本章將詳細闡述設計思路
3.4.1 傳統網絡設備數據轉發算法分析
傳統二層交換機[14],其進行轉發算法的依據就是以太網幀的二層信息。交換機接收到一個以太網幀后,然后根據該幀的目的 MAC,把報文從正確的端口轉發出去。
二層交換機算法決定了對于交換機所接收到數據幀的處理方式。當交換機收到一單播幀時,過濾/轉發邏輯部分查找交換機內部的一張由兩元組(MAC 地址,端口號)組成的表格--MAC 地址表,如果該數據幀的目的地址在 MAC 地址表內,而且在 MAC 地址表內和該數據幀的目的地址相匹配的端口號不同于本交換機接收到該數據幀的端口的端口號,則將該數據幀從 MAC 地址表內和該數據幀的目的地址相匹配的端口號所指示的端口發出;如果該數據幀的目的地址在 MAC 地址表內,但是在 MAC 地址表內和該數據幀的目的地址相匹配的端口號就是本交換機接收到該數據幀的端口的端口號,則丟棄該數據幀;如果該數據幀的目的地址不在 MAC 地址表內,則將此數據幀從除了接收到該幀的端口之外的所有端口發出。
當交換機收到一廣播幀時,過濾/轉發邏輯直接將此數據幀從除了接收到該幀的端口之外的所有端口發出。
在一般路由器[15]中,其轉發算法的依據是三層 IP.當收到一份數據報并進行發送時,它都要對該表搜索一次。當數據報來自某個網絡接口時, I P 首先檢查目的 I P 地址是否為本機的 I P 地址之一或者 I P 廣播地址。如果確實是這樣,數據報就被送到由 I P 首部協議字段所指定的協議模塊進行處理。搜索路由表,尋找能與目的 I P 地址完全匹配的表目(網絡號和主機號都要匹配)。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網絡接口;搜索路由表,尋找能與目的網絡號相匹配的表目。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網絡接口。目的網絡上的所有主機都可以通過這個表目來處置;搜索路由表,尋找標為“默認(d e f a u l t)”的表目。如果找到,則把報文發送給該表目指定的下一站路由器。如果上面這些步驟都沒有成功,那么該數據報就不能被傳送。如果不能傳送的數據報來自本機,那么一般會向生成數據報的應用程序返回一個“主機不可達”或“網絡不可達”的錯誤。
3.4.2 傳統網絡設備分流算法的不足之處
在傳統網絡設備進行流量轉發的過程中,其往往是基于一個元素的轉發,例如二層交換機是基于目的 mac 地址的數據轉發,只有在 mac 地址表中尋到 mac 地址與輸出端口的映射關系,則數據包直接從該輸出端口發送出去,又例如三層路由器則是基于目的 IP 地址的數據轉發,其根據路由表來尋找 IP 地址與輸出端口的映射關系,以此進行數據轉發,當然,路由器還能進行輪撒轉發,其是在兩條可行的路由路徑上進行數據包的逐一分發。
而由此產生一個問題,所有的數據分析都將在后端分析服務器上進行,而服務器的數據分析是基于軟件的,軟件分析將消耗極大的服務器資源,當網絡攻擊產生時,大規模的流量將使分析服務器存在“崩潰”的風險。
3.4.3 數據分流設備 hash 分流算法設計
出于對后端分析系統的考慮,在數據分流設備對設備進行精確的四元組(源 IP、目的 IP、源端口、目的端口)分流,以此按高層應用來區分數據流量,人為控制流量成分,保障后端分析服務器在性能范圍內正常分析流量。
Hash 算法[16],即哈希算法,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小于輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一的確定輸入值。
若結構中存在和關鍵字 K 相等的記錄,則必定在 f(K)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關系 f 為散列函數(Hash function),按這個思想建立的表為散列表。對不同的關鍵字可能得到同一散列地址,
這種現象稱沖突。具有相同函數值的關鍵字對該散列函數來說稱做同義詞。綜上所述,根據散列函數 H(key)和處理沖突的方法將一組關鍵字映象到一個有限的連續的地址集(區間)上,并以關鍵字在地址集中的“象” 作為記錄在表中的存儲位置,這種表便稱為散列表,這一映象過程稱為散列造表或散列,所得的存儲位置稱散列地址。
哈希值的隨機性是基于流的抽樣技術的關鍵,文獻[17][18]分析了 5 種基于 IP 流字段的哈希算法,而使用哈希函數計算哈希值這一方法,哈希函數的選擇是保證哈希值隨機性和算法高效性的關鍵因素。文獻[19]從理論上證明了位移運算能夠提高 hash 值的隨機性,提出了基于位移運算的 hash 算法在執行效率和 hash 值的均勻性方面具有良好特性,而數據分流設備 hash算法即是基于位移運算的 hash 算法。
本 hash 算法的設計思路主要是通過 key1 值與 key1 值位偏移的相與,得到一個值 key2,然后通過 key2 的相與并在低位取值,得到我們所需要的 hash 值。具體的實現方式見 3.3.4 節。
3.4.4 數據分流設備 hash 算法實現
數據分流設備 hash 算法的實現主要分為 3 類,第一類是基于源 ip 或者目的 ip 的,第二類是基于源 ip 和目的 ip 的,第三類是基于源 ip、目的 ip、源端口、目的端口的,詳情如下:
3.5 本章小結
本章首先闡述了基于以太網的流量分析系統的網絡拓撲圖,指出數據分流設備在網絡中的位置與部署情況。
其次詳細介紹了流量分析系統的主設備--數據分流設備的功能模塊設計以及其工作過程中的流程切換。
最后介紹了數據分流設備分流算法設計,通過 hash 算法來確認數據的唯一性及隨機性,保證數據同源同宿的同時,均勻從端口輸出。