《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 业界动态 > 数据采集与动态分流模型的设计

数据采集与动态分流模型的设计

2009-08-12
作者:梁 钢

??? 摘? 要: 高速網(wǎng)絡(luò)下的網(wǎng)絡(luò)入侵檢測系統(tǒng)需要解決數(shù)據(jù)獲取的完整性和分析的實時性。本文給出了一種采用流量分發(fā)技術(shù)的數(shù)據(jù)采集方法來適應(yīng)寬帶高速網(wǎng)絡(luò)的要求。

??? 關(guān)鍵詞: 網(wǎng)絡(luò)入侵檢測系統(tǒng)? 流量分發(fā)? 包捕捉

?

??? 目前,常用的保障網(wǎng)絡(luò)安全的手段是網(wǎng)絡(luò)防火墻(Network Firewall)和入侵檢測系統(tǒng)(Intrusion Detection System,IDS)。IDS按照數(shù)據(jù)的獲取方式可分為二大類:基于主機的入侵檢測系統(tǒng)(Host Intrusion Detection System,HIDS)和基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)(Network Intrusion Detection System,NIDS),其中NIDS更常用。

  NIDS主要由數(shù)據(jù)采集器(Sensor)、分析器(Analyzer)和控制臺(Console)組成。

  數(shù)據(jù)采集部分又被稱為探測器、傳感器,主要用于監(jiān)測并獲取網(wǎng)絡(luò)中傳輸?shù)母鞣N數(shù)據(jù)包,為進一步分析研究提供依據(jù)。數(shù)據(jù)采集功能組件不僅是實現(xiàn)NIDS的基礎(chǔ),還可以被廣泛用于網(wǎng)絡(luò)數(shù)據(jù)計費、網(wǎng)絡(luò)流量控制、網(wǎng)絡(luò)管理和網(wǎng)絡(luò)故障處理等多個領(lǐng)域。近年來,隨著高速寬帶網(wǎng)絡(luò)的發(fā)展,寬帶網(wǎng)絡(luò)數(shù)據(jù)監(jiān)測采集系統(tǒng)的研究越來越受重視。本文將提出一種高速網(wǎng)絡(luò)數(shù)據(jù)和監(jiān)測系統(tǒng)模型。

1?NIDS體系結(jié)構(gòu)

  NIDS主要分為二類:(1)集中式,集數(shù)據(jù)采集、分析、控制于1個設(shè)備或模塊。(2)分布式,將數(shù)據(jù)采集和分析作為代理程序,另設(shè)立一個集中的管理程序。因此,按照NIDS的目標和功能組成可以將其分成在軟件和硬件上相對獨立的3個子系統(tǒng)。

  (1)數(shù)據(jù)采集子系統(tǒng),用于收集網(wǎng)絡(luò)中通信的數(shù)據(jù)流。

  (2)分析子系統(tǒng),用于分析數(shù)據(jù)流,檢測攻擊特征。

  (3)控制臺子系統(tǒng),用于配置和管理系統(tǒng)。

  NIDS要求必須對所有的數(shù)據(jù)包進行分析,這就要求數(shù)據(jù)采集組件完整地獲取網(wǎng)絡(luò)通信的數(shù)據(jù)流,并將它交給分析子系統(tǒng)。針對高速網(wǎng)絡(luò)的特點,提出了動態(tài)網(wǎng)絡(luò)數(shù)據(jù)分流的方法。

  通常NIDS的數(shù)據(jù)采集主要通過網(wǎng)絡(luò)數(shù)據(jù)包捕捉(Network Packet Capturing)技術(shù)實現(xiàn),即將網(wǎng)絡(luò)接口設(shè)置為混雜模式(Promiscuous Mode),監(jiān)聽網(wǎng)絡(luò)上的所有數(shù)據(jù)包,再經(jīng)過過濾器(Packet Filter)按用戶規(guī)則過濾出需要的數(shù)據(jù)包,供分析研究。

NIDS中主要的數(shù)據(jù)采集方法有以下幾種。

 ?、偈褂肧ocket、DLPI、BPF、Libpcap等工具軟件包直接采集。其中BPF的結(jié)構(gòu)如圖1所示。為了提高性能,將過濾器設(shè)置在Kernel內(nèi)而不是用戶空間中,以減少內(nèi)存復(fù)制。BPF有多個改進版本,如DPF、XPF、BPF+,它們針對Filter的并行性、過濾規(guī)則優(yōu)化、過濾指令做了改進。

?

  ②采用Layer 4交換機(Switch)或Layer 7交換機在轉(zhuǎn)發(fā)端口進行網(wǎng)絡(luò)數(shù)據(jù)分流,其系統(tǒng)結(jié)構(gòu)如圖2所示。由Layer 4/7交換機將高速網(wǎng)絡(luò)數(shù)據(jù)按照一定算法(一般是用哈希算法,根據(jù)數(shù)據(jù)包的源IP、源Port來區(qū)分數(shù)據(jù)流)分發(fā)到后臺連接的NIDS的數(shù)據(jù)采集分析部分,以滿足高速網(wǎng)絡(luò)環(huán)境下的要求。然而,為傳統(tǒng)Web Server均衡負載目標而設(shè)計的Layer 4/7交換機價格較高(是NIDS的數(shù)倍),且針對NIDS的需求進行靈活的配置時存在固有的局限。

?

  基于上述二類方法,結(jié)合NIDS的需求,本文提出了基于動態(tài)網(wǎng)絡(luò)數(shù)據(jù)分流的數(shù)據(jù)采集子系統(tǒng),將過濾器和分流器結(jié)合起來,并按照系統(tǒng)的輸入和輸出變化進行調(diào)整,以提高性能。

2? 動態(tài)數(shù)據(jù)分流算法

2.1 系統(tǒng)結(jié)構(gòu)

  一般而言,NIDS的數(shù)據(jù)采集與分析是影響系統(tǒng)性能的主要因素。因此,將數(shù)據(jù)采集與分析分開,分別構(gòu)成獨立的子系統(tǒng)。數(shù)據(jù)采集子系統(tǒng)以提高處理能力為主,分析系統(tǒng)以提高分析的深度及正確性為目標。其結(jié)構(gòu)如圖3所示。系統(tǒng)中主要包括數(shù)據(jù)包捕捉過濾模塊、會話(Session)分類模塊和會話分流模塊。

?

  網(wǎng)絡(luò)數(shù)據(jù)包通過網(wǎng)絡(luò)監(jiān)聽技術(shù)被系統(tǒng)捕捉后,先經(jīng)過數(shù)據(jù)包捕捉過濾模塊,由過濾器按NIDS的要求過濾出所需要的包(丟棄不需要的包,以減輕系統(tǒng)負擔(dān))。這些數(shù)據(jù)包流入會話分類模塊,按會話類型進入分流模塊的分發(fā)隊列,分發(fā)到NIDS分析子系統(tǒng)的每個分析模塊。

2.2 各組成模塊

2.2.1 過濾模塊

  該模塊主要基于Libpcap進行數(shù)據(jù)包捕捉和過濾。這是因為Libpcap具有一定的開放性和標準性。數(shù)據(jù)分析采用的Snort NIDS也是基于Libpcap實現(xiàn)的。將后臺數(shù)據(jù)分析子系統(tǒng)的包捕捉過濾要求設(shè)置在本模塊中,可以保證包捕捉時過濾掉不需要的包,減輕了負擔(dān)。

2.2.2 分類或分流模塊

  基于數(shù)據(jù)分流完整性的考慮,將會話作為分類的最小單元。它由5個元素組成,即源IP地址、目的IP地址、協(xié)議、源端口、目的端口。采用動態(tài)網(wǎng)絡(luò)數(shù)據(jù)分流方法對分類的流量進行分流。

  要解決系統(tǒng)的數(shù)據(jù)分流均衡問題,必須考慮分發(fā)過程中的擁塞問題及異常問題(如某個輸出端口故障)。解決數(shù)據(jù)分流均衡問題有輪轉(zhuǎn)法(Round Robin)、加權(quán)輪轉(zhuǎn)法(WRR)、最小連接優(yōu)先法、最大響應(yīng)優(yōu)先法、哈希法等。一般不專門考慮分發(fā)過程中的擁塞問題。由于Layer 4/7交換機的主要應(yīng)用環(huán)境是將多個Client的請求分發(fā)到多個Server,因此直接丟棄數(shù)據(jù)包即可使Client重新發(fā)起連接,解決擁塞問題。解決分發(fā)過程中的擁塞問題主要通過Drop Tail、RED、AQM(Active Queuing Management)等技術(shù)。一般是在路由器中,采用按一定算法丟棄數(shù)據(jù)包的方法,與輸入端通信,解決擁塞問題。本系統(tǒng)是單向地捕捉數(shù)據(jù)包進行分發(fā),因此要結(jié)合上述算法的優(yōu)點,加以分析改進。

  數(shù)據(jù)分類及分流模塊的結(jié)構(gòu)示意圖如圖4所示。在設(shè)計中,動態(tài)網(wǎng)絡(luò)數(shù)據(jù)分流算法主要采用基于表的哈希散列法(Table-based Hash)并加以改進。系統(tǒng)有N個輸出端口,設(shè)置值為M(M是N的倍數(shù))。對于過濾后的數(shù)據(jù)包流F-in,根據(jù)M分類(即F-in的源IP地址Src-IP以M模運算取余數(shù)),查表得出輸出隊列端口N。

?

  T(M,N)的分流可以按權(quán)重進行,能較真實地反映輸出隊列端口的處理能力。例如,對于3個輸出隊列端口,N=3,M=6,若第1個輸出隊列端口處理能力較低,第2個輸出隊列端口處理能力較高,第3個輸出隊列端口處理能力一般,則可以設(shè)置分流比例為1:3:2。一般M=aN,a為比例因子,反映其調(diào)控能力。

  對于仍存在的擁塞問題,需要將輸入端的分類、分發(fā)和輸出隊列綜合考慮,改進工作。從解決擁塞問題的算法AQM可知,對于輸出隊列Q的每個隊列Qn,有閾值Qmin和Qmax,以反映輸出端口的處理能力。對于過濾后的數(shù)據(jù)包流F-in,分流后的Qn有:

  若Qn  若Qn

  若Qn>Qmax,則啟動處理程序A。

  處理程序A啟動后,通知分類部分,增加元素參與運算,即從初始的{源IP地址、目的IP地址、協(xié)議、源Port、目的Port}5元組中的{源IP地址},增加為{源IP地址、目的IP地址},算法不變,仍為對M取余數(shù),再查表得出輸出隊列端口n(在實現(xiàn)時T(M,N)為一維數(shù)組,M為T[]的序號,N為T[]的值)。同理,分類可以由程序A控制,增加元素參與運算直至5元組全部被添加,使分類可以越來越細,以適應(yīng)端口輸出能力變化。采用逐步細化分類方法,以減少計算開銷。

  對T(M,N)進行調(diào)整,從輸出隊列Q的每個隊列Qn中選出Qn

  整個算法概括如下。

  (1)系統(tǒng)初始化

  ①按后臺連接的NIDS(Snort)的過濾規(guī)則的協(xié)議首部配置本系統(tǒng)的捕捉過濾部分,以盡早丟棄不必要的數(shù)據(jù)包,提高系統(tǒng)性能。

 ?、诔跏蓟瘏⑴c分類的元素。

 ?、鄢跏蓟职l(fā)Hash表T(M,N),即T[M]數(shù)組,M=aN(1≤a≤5)。T[M]從1~n循環(huán)取值,即T[1]=1,T[2]=2,……T[n]=n,T[n+1]=1,T[n+2]=2,……T[M]=n,這樣,可以盡量均衡地分配流量。

 ?、艹跏蓟敵鲫犃蠶n的Qmin和Qmax,其值主要參考NIC的參數(shù)來設(shè)定。

  (2)分類及分流程序的執(zhí)行

  ①數(shù)據(jù)包F-in經(jīng)捕捉過濾為FP-in,按Hash法對M取余,經(jīng)T(M,N)得出n值,轉(zhuǎn)入輸出隊列Qn。

 ?、谶M入Qn時,對Qn判斷:

  若Qn  若Qn

  若Qn>Qmax,則啟動處理程序A。

 ?、刍謴?fù)。

  (3)啟動處理程序A執(zhí)行

 ?、僬{(diào)整分類,增加參與分類的元素。

 ?、谡{(diào)整T(M,N)。

3? 小? 結(jié)

  針對高速網(wǎng)絡(luò)的環(huán)境,采用分流方式的數(shù)據(jù)采集分流子系統(tǒng),結(jié)合分發(fā)算法、均衡算法、擁塞控制算法的優(yōu)點,改善了系統(tǒng)的性能。此外,它還具有方便擴展的優(yōu)點。高速網(wǎng)絡(luò)的數(shù)據(jù)經(jīng)分發(fā)后,可以運用傳統(tǒng)的低速處理設(shè)備進行分析處理,解決了高速環(huán)境下因處理能力不足而帶來的數(shù)據(jù)遺漏。本文就數(shù)據(jù)采集和分發(fā)進行了詳盡論述,解決NIDS中數(shù)據(jù)獲取的問題。

?

參考資料

1? Stevens W R著,范建華譯.TCP/IP詳解.北京:機械工業(yè)出版社,2000

2? Oruganti S S,Devetsikiotis M.Exploiting Traffic Prediction and Adaptive Control to Implement Robust

Active Queue Management Schemes.http://www4.ncsu.edu:8030/~ssorugan/CACC_report.pdf,2002

3? 唐正軍.網(wǎng)絡(luò)入侵檢測系統(tǒng)的設(shè)計與實現(xiàn).北京:電子工業(yè)出版社,2002

4? Zegura E.Performance of Hashing-Based Schemes for Internet Load Balancing.http://citeseer.nj.nec.com/

cao99performance.html,1999
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容