摘要:網絡已經成為當今社會建設與發展的重要基礎建設,然而蠕蟲、病毒等惡意代碼對網絡的正常運行造成嚴重的沖擊和危害,造成巨大的損失。因此實現在網絡環境的實時監控,迅速檢測和掌握惡意代碼發作情況對于防范惡意代碼的破壞,降低其造成的損失具有重要的意義。本文提出了一種新的基于層次化結構的網絡異常監控模型,它采用分層,跨平臺的分布式監測,集中監控數據分析的系統結構,擁有具有良好系統監控策略配置能力和系統擴展性。
關鍵詞:網絡異常;監控;層次化
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)06-00ppp-0c
A New Network Anomaly Monitoring Model
LANG Yong-xiang,ZHU Guang-fu,DONG Yong
(Chongqing City Management College,Chongqing 400055,China)
Abstract:Network has become an important infrastructure for the current social construction and development. But worms, virus and other malicious code undermining the normal operation of the network, those cause serious impact and harm to network and bring enormous losses. The real-time monitoring system can detect and quick grasp of malicious code attacks in network, it is important to defense against malicious damage, reduce the damage caused. In this paper, we present an new network anomaly monitoring model which based on hierarchical structure. It adopts hierarchical, cross-platform disturbed monitoring, centralized monitoring data analysis structure. Overall, it has great system monitor policy deployment and system scalability.
Key words:network anomaly;monitoring system;hierarchical
1 引言
網絡目前已經成為國民經濟建設和發展的重要基礎設施,但是蠕蟲、病毒等惡意代碼的泛濫和破壞給網絡應用造成了很大的威脅。它們不僅會對感染的主機中的重要信息造成泄露,更重要的是這些惡意代碼在網絡中大量繁殖和發送垃圾信息,嚴重的消耗了網絡資源,造成網絡擁堵和服務的癱瘓。
為了阻止惡意代碼對網絡運行的破壞,目前廣泛使用的安全技術有IDS,防火墻等。但這些技術的應用范圍一般只是針對一個局域網或某個范圍內的用戶[1]。蠕蟲等基于網絡傳播的惡意代碼一般都會在某個特定的時期突然出現大范圍的爆發,并且傳播迅速,發作時間短,往往讓網絡管理人員措手不及。由此在廣域的范圍內實現對網絡異常運行情況的有效監測,可以及時檢測到惡意代碼傳播活動,對于快速采取有效措施,最大程度消除惡意代碼傳播所帶來的危害具有重要的意義[2][3]。
本文提出一種基于層次化結構的網絡異常情況監測系統,該系統采用哈希表來存儲和分析網絡中各主機之間的活動情況,并采用層次化數據采集、集中數據分析方式實現對廣域范圍內網絡異常情況的監測。由于采用XML格式來描述監測數據,本系統具有良好的跨平臺性和擴展性。
2 網絡異常監控系統模型
2.1 系統結構
從整體上看,本系統采用松散的分布式結構予以實現,主要體現在監測以局域網為基本單位,任一局域網可以在必要時隨時加入監測系統,成為系統的監測對象,也可以在隨時退出系統監測。系統主要結構如下圖1所示。

圖1 系統結構圖
從圖1可以看出,本系統的結構是采用分層結構設計的,最底層的位于局域網內部的監測服務器,該監測服務器負責監測一個局域網內部各個主機或終端的網絡活動情況,它的網絡活動監測數據源主要由局域網內主機發送的數據包和防火墻、路由器等。
而位于該層次之上監測服務器的監測數據來源則是來自各局域網中監測服務器,通過接收發送來的各局域網的主機網絡活動情況數據,高層監測服務器從宏觀上掌握各局域網活動的情況,從而分析和判斷當前網絡運行狀態。
從上所示的系統結構可以看出,當一個局域網加入系統的監測范圍,它只需要在網絡中設置一個監測服務器,并通過監測服務器將監測數據發送到上層監測服務器即可,這個過程不需要對加入的局域網設施進行變更和升級,由此可見,本系統具有良好的擴展性。
2.2 系統工作流程
系統的工作流程主要分為以下幾個部分。
2.2.1 局域網監測服務器的設置
在本系統中局域網監測服務器是最低層的網絡活動監測器,是構成本監測系統的基本單位。它主要的監測數據來源局域網傳輸的數據包,為了減輕監測服務器的負載和采集數據包對局域網資源的占用。監測服務器的數據來源也可以是局域網內部的防火墻或者是路由器等其它網絡設施。
局域網監測服務器對網絡的運行情況只起到監測作用,并不做出分析。它主要是將網絡監測的數據發送至上層的監測服務器。它接收的來自上層監測服務器的數據主要分二種:一種是網絡警報,主要是上層監測服務器發現該局域網內存在異常情況后發出的警報信息;另一種是上層監測服務器發送的網絡監測策略配置信息。通過配置信息實現對局域網監測服務器監測策略的變更或升級。
2.2.2 監測數據的分析與判斷
監測數據的分析與判斷是在上層服務器實現的,當上層服務器接收到底層的監測服務器發送來的監測數據后,通過判斷規則和算法對數據進行分析,判斷其監測范圍內的各局域網內部或之間的網絡活動情況是否異常,如果出現異常則通過出現異常的局域網發出警報,并對其它局域網發出警報,提示其它局域網管理員對本局域網與發生異常情況的局域網之間的活動進行管制,以防止網絡異常情況的進一步擴散。
2.2.3 針對新的網絡惡意代碼特征設置新的監測策略
網絡中新的惡意代碼總是層出不窮的,而且作為基礎的局域網監測服務器很難實現對某個局域網中主機和服務器的所有網絡活動進行監測,因為這樣做第一會使得局域網監測服務器的負載很重,第二,并不是所有的網絡活動對于網絡異常情況判斷來說都具有意義。因此需要根據惡意代碼的特征和傳播特性設置有效的網絡監測策略,并不斷對局域網監測服務器進行更新和升級。
2.2.4 監測系統的維護
由于監測系統是基于分布式結構,針對局域網監測服務器隨時加入或退出,必需要對整個系統的監測局域網服務器狀態進行維護和更新。
3 系統關鍵技術
3.1 局域網監測服務器數據結構設置
在上層監測服務器中針對其監測范圍內的局域網監測服務器建立和設置了局域網監測服務器列表和對應的監測信息緩沖區、監測信息數據庫等,其數據結構如下圖2所示。

圖2 局域網監測服務器列表與檢測信息庫結構圖
其中:局域網監測服務器列表主要是用來存放每個局域網監測服務器的相關信息和狀態。其數據組成主要有監測服務器的IP地位,與該監測服務器的相關信息和該監測服務器監測的唯一ID號。數據結構如下所示。
typedef struct _LAN_ServerTab{
int serverID; /* 局域網監測服務器ID */
struct in_addr *serverIP;/* 局域網監測服務器IP地址*/
struct data_cache *cache/*局域網監測服務器監測信息緩沖區指針*/
char *serverlocal[]; /* 局域網監測服務器物理地址 */
char *serverinfo[]; /* 局域網監測服務器的其它描述信息*/
} LAN_ServerTab;
該服務列表采用哈希表數據結構,該哈希表的哈希算法采用局域網監測服務器的IP地址作為散列函數的輸入,而其輸出則為局域網監測服務器的ID號。該ID號為監測服務器監測信息庫中的主鍵,用于監測信息庫中檢索該監測服務器的監測信息。監測信息緩沖區主要用于存放局域網監測服務器傳送來的監測信息,上層監測服務器基于這些實時數據來分析對應局域網監測服務器監測的網絡運行狀態。
3.2 監測策略的設置
本系統的目的是為了監測宏觀范圍內網絡惡意代碼的傳播情況,因此適當的監測策略對于發揮系統的監測效率是十分關鍵的。本系統的監測策略制定主要針對網絡中惡意代碼的傳播方式和網絡數據傳輸量來設置的,而對于網絡活動所涉及內容和協議等不在本系統的主要監測范圍之內。因此本系統監測最基本的網絡運行行為可以用以下的信息元組表示:
E={hostID,ΔT,sur_addr,sur_port,dst_addr,dst_port}
其中hostID表示發出行為的主機標識符,ΔT表示網絡行為的發生的時間,而sur_addr,sur_port,dst_addr,dst_port則分別代表網絡行為的源地址,源端口和目標地址、目標端口。
監測的策略設置主要是根據一些重要的端口,或某個特定時間內爆發的惡意代碼攻擊特征設置,策略的描述通過XML來予以實現。主要格式如下所示:
<monitoring rule>
<sur_Port>**</sur_port>//重要的端口或某段時間內惡意代碼攻擊發出的端口
<dst_Port>**</dst_Port>//重要的端口或某段時間內惡意代碼攻擊目標端口
<system type>****</sytem type> //某段時間內惡意代碼易攻擊的系統類型
………………..//其它策略
</monitorng rule>
3.3 網絡運行狀態判斷算法
網絡運行狀態的判斷算法的數據來源主要是存放在緩沖區中局域網監測服務傳送來的網絡行為信息。這些網絡行為信息在緩沖區中采用表結構存放。每臺局域網監測服務器針對其范圍內的主機或服務器地址進行哈希散列,緩沖區根據網絡行為信息中的主機或服務器ID號,采用鏈表結構存放其網絡行為。主要的算法步驟如下所示:
3.3.1 獲取監測服務器信息中所指向的對應緩沖區,從緩沖區中取出其監測的主機鏈表;
3.3.2 分別針對每個監測的主機的信息鏈表進行分析;
3.3.2.1 如果該主機的行為信息與當前系統時間的距離超過規定值,則將該行為信息從鏈表中移出,存放至數據庫中;
3.3.2.2 統計該主機行為信息鏈表中發出聯系位于該主機同一局域網內的主機數與對應的訪問端口,如果在一段時間內該主機訪問的主機數,訪問端口次數超出判斷策略規定數,則判定該主機所位于網絡內存在有網絡行為異常現象,發出警報;
3.3.2.3 如果該主機行為信息為聯系位于該主機同一局域網外的主機,則將該目標主機的IP地址進行轉換判斷,如果該目標主機位于本系統監測范圍內,則將該目標主機地址存放堆棧中。如果不是,則刪除該行為信息。
3.3.2.4 針對堆棧中的目標主機IP地址,逐個分析,找到該目標主機的行為信息依據2.1,2.2,2.3判斷該目標主機的行為是否異常。由于第二步是個深度遞歸的調用,為了防止出現無窮調用,可以規定最多循環調用層次數來加以限制。
該判定算法主要依據的是網絡惡意代碼的傳播方式來設計的,惡意代碼的傳播主要分為三步,分別是掃描,攻擊,復制到目標主機然后再循環進行。因此如果局域網內有某臺主機被感染惡意代碼后,它就會不停的掃描網內某些未感染的主機并發起攻擊。算法的第二步就是針對這個過程進行分析和判斷。
與當前的網絡異常行為監測算法不同的是,本算法除了可以監測到一個局域網內的惡意代碼傳播外,它還可以監測到不同局域網之間的惡意代碼的傳播。在算法的2.4步可以監測到已感染的主機攻擊其它網絡內的主機活動。如果在一段時間內一個局域網內的主機出現異常后,它所聯系的其它網絡內主機也相繼出現異常,那么可以明確的判斷有惡意代碼在復制和傳播。
4 總結與討論
本文主要描述了一個新型的網絡異常監測模型,與傳統的IDS,防火墻等網絡安全設施不同的是,它更強調在一個宏觀的范圍內監測網絡中各主機的行為。它以局域網為基本單位,依據網絡惡意代碼的傳播方式而設計了相應的數據結構和判斷算法。其判斷算法可以實現較大范圍內網絡活動的監測,從而能更準確的檢測和判斷網絡異常行為。此外該系統采用分布式的系統架構,具有良好的擴展性和可維護性。
參考文獻:
[1]鄒柏賢.一種網絡異常實時檢測方法[J].計算機學報,2003,26(8).
[2]高琴,譚琳,胡谷雨.一個網絡流量監測系統的設計與實現[J].現代電子技術,2005,28(4).
[3]王海龍,楊岳湘.基于信息熵的大規模網絡流量異常檢測[J].計算機工程,2007,33(18).
收稿日期:2007-11-10
基金項目:重慶市教育委員會資助項目(kj072002)。
作者簡介:郎永祥(1970-),男,重慶人,重慶城市管理職業學院實驗師,大學本科,研究方向:數字化校園建設及網絡安全。