基于多線程掃描的網絡拓撲邊界監測系統設計
隨著國家電子政務網絡規模和業務應用的不斷深化,通過網絡傳輸的數據和業務變得越來越敏感和重要。為了保障業務數據在網絡傳輸交換過程中不被非法獲取與篡改,相應的網絡信息安全防護措施已在不同層面進行了部署。然而,大多數的業務專網對于網絡的訪問控制幾乎都集中在網絡的出入關口,而對網絡內部結構和接入邊界卻沒有施行必要的監測與管理。這種只注重網關出入防護的安全策略雖然配置了大量的防火墻、多重安全網關和網閘等網絡安全設備,卻無法對網絡運行的狀態和網絡結構的變化有一個全面的了解,而且對來自于網絡接入邊界甚至是網絡內部的非法訪問常常束手無策。在過度強化“大門”的安全建設的同時,卻往往忽略了“圍墻”的筑造與管理,從而使得網絡接入邊界往往成為網絡安全防護中最薄弱的防線。
信息網絡是一個自治域,應該有其自身的收斂性,一個可管理的網絡應該具有確定的邊界,并且在網絡邊界發生變化時,能夠及時地發現差異并定位。在傳統意義上,網絡邊界是一個網絡安全域與其外部域的分界線,是網絡之間互聯的“關口”,而本文所提到的網絡邊界則更加注重對“圍墻”的管理,為了避免與傳統的邊界名詞相混淆,稱其為“網絡接入邊界”。首先定義直接面向終端,提供網絡接入服務的設備稱其為邊界接入設備,又稱為邊界設備。所謂網絡接入邊界就是通信網絡中接入設備的最邊緣,也就是網絡結構中邊界設備的位置。該接入邊界在網絡初始設計和建設維護階段確定,并預期不得無故更改與擴展。
1 當前網絡監測存在的不足
面對當前網絡規模的不斷增長,網絡結構日趨復雜,加之網絡設備的多樣性,目前的網絡監測手段已不能滿足當前網絡管理的需要,主要不足體現在以下幾點:
(1)網絡運行狀態不夠全面。在日常網絡管理中對網絡運行狀態的實時監控是非常必要的。通過對網絡流量、拓撲結構、網絡設備及終端運行等情況的全面監測,管理者可以對當前網絡的運行狀態有一個全面的了解和把握,并可對一些異常情況作出及時反應,保障網絡安全正常地運行。然而,由于網絡設備的復雜多樣性,至今還沒有一個第三方的網絡管理軟件可以對不同廠家的網絡設備進行全面的遠程管理與控制,使用當前網絡監測手段往往無法獲取全面的網絡運行狀態信息。
(2)網絡結構化變化無從知曉。在較大規模網絡中,保持網絡拓撲結構的穩定對于整個網絡的安全尤為重要。網絡建設時期設計的拓撲結構與正常運行時期的真實結構經常存在較大的差異。如果運行過程中有設備發生故障或者有用戶私自在網絡中違規接入網絡設備,必將影響到網絡真實結構的變化,并由此帶來巨大的安全隱患。有一些網絡拓撲發現方法可以根據簡單網絡管理協議SNMP(Simple Network Management Protocol)來完成對網絡層和鏈路層連接的自動發現[1-2],生成網絡運行時的拓撲結構,然而在現實中的應用卻相對滯后,沒有一種由宏觀到具體、兼顧整體與局部的視圖展示方法,而且沒有對網絡結構進行全面的監測,幾乎沒有涉及網絡結構的差異變化情況,更沒有發現結構異常時的報警提示了。
(3)網絡接入邊界無法掌握。網絡接入邊界作為網絡用戶的接入區域通常處于網絡結構的最末端,隨著網絡接入終端多樣化的出現,邊界接入方法與過程變得非常容易。有些用戶可能會隨意更換工作終端、改變終端的接入接口,或者通過自行架設的小型網絡設備進行多用戶違規接入,甚至非法提供網絡轉發、代理和地址轉換服務等,這些情況都將會影響網絡接入邊界的收斂性,使網絡接入邊界變得不可預測,并對網絡的安全穩定運行造成嚴重威脅。而現階段的網絡監測管理手段無法及時獲取網絡接入邊界狀態變化的信息,更無法對接入邊界變化區域進行準確的定位,這是現有網絡管理體系中普遍存在的盲點和隱患。
2 系統功能結構
當前網絡規模和數量大量增長,組網設備的類型也多種多樣,來自于不同廠家的各類設備常常同時存在,如何在統一的架構體系內對這些設備進行管理就變得十分重要。本系統主要采用目前普遍使用的SNMP標準協議,通過對網絡結構的定時掃描和對網絡接入邊界的實時監測來實現所需的功能。
(1)全面掃描網絡拓撲結構,實現網絡結構樹的自動生成與存儲打印,通過與歷史結構的比對發現網絡結構的差異變化,并及時報警通知網絡管理員。
(2)監測網絡設備的運行狀態,主要監測CPU、內存和接入端口的工作情況,對于工作狀態或者網絡流量異常的情況能及時發出報警信號。
(3)在專用和保密網絡中實現所有入網終端與設備的登記認證,對終端與設備的上網檔案和監測數據進行存儲記錄,對接入終端的運行狀態、接入方式、路由轉發、地址轉換和代理服務等異常狀態進行實時監測,發現異常時能夠及時阻斷,實現對網絡邊界的常規性看護,對工作主機的工作狀態給出健康建議。
系統通過對整個網絡運行狀態數據進行實時的采集與分析,將網絡拓撲結構信息及其組成節點的工作狀態信息存儲在數據庫中,對這些數據進行加工分析后,通過列表、拓撲視圖等方式將其展現在網絡管理界面上。系統體系結構如圖1所示。
在網絡中心位置部署結構監測服務器、結構存儲服務器和結構視圖服務器,用于整個網絡結構的實時動態掃描存儲、邊界守護和視圖生成功能;在網絡內部設置固定或移動的監測終端,用于網絡管理人員隨時查看網絡實時運行狀態,接收服務器的報警信號并進行相應的處理。
位于整個網絡內部,支持TCP/IP協議的路由器、交換機、服務器、工作主機和無線接入點等所有的網絡設備和終端都屬于網絡結構監測的對象,需要定期接受結構監測服務器的掃描并提供自身運行的狀態和數據。當有異常情況發生時,這些監測對象應該能夠主動向上匯報,以達到實時掌握整個網絡運行狀態的目的。
3 系統實時性設計
系統通過SNMP協議掃描獲取網絡設備、終端及其連接關系的基本信息,主要包括管理信息庫中的路由表、接口表、地址映射表和運行狀態信息等,并逐步獲取實時的網絡結構信息。在使用廣度優先算法掃描的過程中,盡可能準確地辨識掃描目標的類型和身份,根據情況啟動網絡層掃描[3]和鏈路層掃描[4],并通過梳理節點間的父子連接關系,最終判定網絡接入邊界所在,更新存入后臺支持數據庫[5]。當掃描過程完成以后,整個網絡的結構信息便被獲取,實時的網絡邊界得以確定,網絡自身的運行狀態得以全面掌控。
在系統監測運行過程中,需要在第一時間內發現網絡結構的異常變化和接入邊界的違規行為并作出響應,以便盡可能早地對潛在的網絡安全隱患進行定位,減少對網絡安全運行的實質性破壞。因此,迅速準確地發現網絡的拓撲結構,提高系統掃描檢測過程的實時性就成為了保障系統可靠運行的一個基本要求。
3.1 多線程掃描
網絡結構的獲取與更新一般通過周期性的掃描來完成。通過指定掃描起始地址,獲得與該節點相連的其他節點的運行信息,使用廣度優先算法依次遍歷網絡中的每個節點,這種全網單線程掃描方法(以下簡稱方法一)常常用在網絡規模較小、結構較為簡單的情況下。
對于規模較大的網絡,考慮到掃描過程中大部分時間都浪費在等待設備準備數據的階段,為了能合理利用這段空閑時間,在更短的時間內盡快完成對整個網絡的掃描分析,實際過程中常常根據子網劃分使用多個掃描起始地址的子網多線程掃描的方法(以下簡稱方法二)。在系統初始化后,讀取指定的子網掃描起始地址列表,啟動多個掃描線程對所在子網進行掃描。多個線程之間共同維護一個節點訪問列表,對已經掃描過的地址不再執行重復的操作。
方法二中每個掃描線程對應一棵子樹,掃描線程的數量一般可參考管理人員最熟悉的核心層設備的數量來設置,但是最好不要手工設置。實際應用時可以在掃描3層設備路由列表的過程中,在得到與該設備所連接的子網設備地址后,立即開啟一個新的子網掃描線程,這種改進方式也可稱為設備多線程掃描方法,其掃描流程如圖2所示。
評論