謝 凱,代 康
(新疆工程學院 信息工程學院,烏魯木齊 830023)
伴隨著網絡帶寬的不斷增加,網絡入侵檢測系統性能難以滿足當下網絡速度[1]。采用單機集中檢測的方法,很難對當前高速網絡流量進行實時分析[2]。為此,有必要對多機并行運行的網絡入侵檢測系統的相關技術進行研究。同時,網絡安全問題也日益成為社會關注的焦點。由于在設計和實施時操作系統、網絡協議、應用軟件和硬件設備等方面存在缺陷和漏洞,或者系統配置的不當或使用不當,也會造成安全隱患。這些漏洞和隱患為惡意攻擊者通過非常規手段入侵系統提供了機會。
以往設計以互聯網高性能為主干網的檢測系統,具有高帶寬的網絡服務,主干網傳輸速度達到10 G,在高速鏈路下,雖然使用該系統具有快速處理報文性能,但只能被動防御,沒有實時報警能力;使用基于防火墻技術設計的檢測系統,運行在顯示打開端口上,對流經系統所有數據進行實時維護,但無法阻止內部攻擊,不能滿足通信網絡安全通信需求。
針對上述問題,提出了基于負載預測的通信網絡入侵檢測系統設計。應用動態均衡算法,通過多個分配器和探測器協同工作,系統采用兩級并聯結構,實現了流量分配,避免了負載集中導致的單一分流裝置的使用,具有良好的均衡性能和高冗余、可擴展性。
基于負載預測的通信網絡入侵檢測系統群集拓撲以n層解決方案為基礎,包括一個 Web層群集,為客戶機提供內容服務。該網絡層集群使用IIS和網絡負載平衡來滿足IP的輸入請求。圖1中顯示了系統拓撲結構。

圖1 系統拓撲結構
由圖1可知,網絡層集群中的軟件可以在本地計算機上創建并使用 COM+組件,或者可以使用分布式 COM在遠程計算機上創建并使用 COM+組件。
網絡負載均衡(NLB)是一種基于 IP的負載均衡技術,基于服務器負載百分比,它提供了一組統計算法的動態縮放功能。也就是,它能自動適應集群中服務器的增加和刪除,而不會對客戶端造成影響[3]。
COM+組件負載平衡技術可用于實現組件負載平衡,構件是可用于多種不同語言的編譯軟件對象。對于CLB, COM+組件位于服務器上,位于單獨的 COM+集群中。
通信網絡入侵檢測系統硬件結構如圖2所示,它由負載預測器、探測器和控制中心組成。

圖2 系統硬件結構
如圖2所示,并行入侵檢測系統的模型主要包括監視器、分配器、探測器和控制器。監聽程序是整個結構的中心,它負責捕捉流經該網絡段的所有數據包,并將其轉發給每個分發器;顯示器可以是交換機在特定網絡環境中的一個顯示器端口或鏡像端口,監聽程序并不專門向每一個檢測器分發數據包,而只是使用簡單的循環算法來劃分流量,然后再向分發器分發。這能夠更好地適應高速網絡,避免出現數據傳輸擁塞問題,實現業務級的第一次業務分流;分配器通過交換機向各個檢測器轉發數據包,完成二級流分配。探測器在相同配置下運行 Snort;控制器負責獲取各個檢測器的處理能力和負載信息,并根據當前網絡流量的變化動態地進行流量分配算法的調整[4]。
監聽器,也叫竊聽器,是一種T-KOKO型監聽器,帶有監聽面板AP-9812M的語音信息監聽工具。它包括全球移動通信系統,其工作原理是在系統信道中對語音信號進行編碼、加密和交織,形成突發信號,經調制后發送。接收話機端對信號進行解調、解交錯、信道解碼、語音解碼,然后還原為用戶手機語音信號[5]。在GSM系統中,采用了TDMA (窄帶時分多址)技術。載頻帶寬為200 kHz的每幀具有8個時隙。在理論上,一個RF可以同時進行8次呼叫,每個時隙的長度為0.577 ms,幀的持續時間為4.615 ms,也就是將時間劃分為周期性幀,每幀分為若干時間段。基于特定的時隙分配原理,手機用戶通過每幀幀間將信號發送到基站,基站分別位于各自指定的時隙內[6]。
由于基站接收到來自不同手機用戶的信號,因此也會按照指定的時間間隔發送給不同手機用戶。每個移動用戶在規定的時間間隔內接收到信號,但不能保證他們都在同一頻道,用戶之間不能相互干擾[7]。
使用HDMI分配器輸入視頻信號:0.5~ 1.0 V p-p、輸入DDC信號:5 V p-p(TTL)、最大單鏈路范圍:1 920x1 080,1 080 P,3D 1 080 P / 24 Hz、輸出視頻:HDMI 1.4V + HDCP1.0 / 1.1 / 1.2。
在CATV傳輸系統中,配分器是最常用的信號傳輸元件。它的作用是將一個輸入信號平均分為幾個輸出信號,通常是二分布、三分布、四分布、六分布等等。在C++編程中,分配程序是C++標準庫的重要組成部分。C++庫定義了一系列數據結構,并統稱為容器。兩者的共同點是,它們的大小可以用來對程序進行操作。對于這個問題,動態內存分配尤其重要,它是用來處理內存分配和釋放容+器請求的。
選擇JY211-QTQ-04型號光纜探測器,內部含有發射機和接收機,其中發射機自動測試并顯示電池電壓,低于10 V時,蜂鳴器會發出急促的聲音告警并停機。停機后,開始自動阻抗匹配,并在工作中實時顯示信號強度;接收機是從光纜上接收信號,探測光纜路由、埋深。操作者根據表頭指針的顯示、蜂鳴器聲音的提示來確認光纜的路由、埋深[8]。
晶型振蕩器產生3.5~4.95 M的正弦波,然后把它分解成大約7.8 K的正弦波。電流通過晶體管和線圈后,把電磁波傳送到門板上的一個較大的線圈(7區),由門1-6發出電磁波,各區線圈各自接收。接收時,將接收到的信號與參考信號進行比較[9-11]。捕獲卡的輸出級別也會隨之發生改變,中控機在300 ms內掃描6張捕捉卡,判斷金屬的位置并輸出顯示出來。
采用TCP繼電器控制器,4路輸入,聯動控制。控制器是通過改變主電路或控制電路的接線方式,按照預定的順序改變電阻值,從而對電機的啟動、速度、制動和倒轉進行控制的主要裝置。它包括程序計數器、指令寄存器、指令譯碼器、時序發生器和操作控制器。它是發號施令的“決策主體”,也就是協調和指揮整個計算機系統的運行完成。
在控制器結構中,命令寄存器用于存儲命令的執行。這條指令包括操作代碼和地址代碼。操作碼用來表示指令操作的性質,如加,減等;地址碼用來給出指令的操作數地址,或關于操作數地址的信息[12-14]。其中有一種指令被稱為傳輸指令,用于改變指令正常執行的順序。這個指令的地址編碼部分提供了指令發送和執行的地址。
操作碼解碼器:對指令進行解碼時所使用的操作碼,并生成相應的控制級別,從而完成指令分析功能[15-17]。
時序電路:用于產生時間標記信號,微機上的時標信號一般分為3個層次:指令周期,總線周期和時鐘周期。微指令產生電路產生各種微指令,完成指令所規定的動作。這些命令主要是根據時間戳和命令來執行的。該電路是一種實現單一微操作控制信號(如上面A→ L表達式)的電路,是組合邏輯控制器中最復雜的部分[18]。
指令計數器:用來產生要執行的下一個指令的地址,一般來說,指令按順序執行,指令也按順序存儲在內存中。因此,在正常情況下,可以向當前地址添加1,以組成下一條指令的地址,微操作命令“1”也可以使用。如果執行是分支指令,那么下一條要執行的指令的地址就是它傳遞給指令的地址。傳輸指令在地址碼域中,直接發送到指令計數器。
在此基礎上,設計通信網絡入侵檢測系統軟件功能。通過確定負載指標,實現對通信網絡入侵狀況的監測,根據檢測結果動態調整負載預測策略,通過反饋控制實現通信網絡入侵實時檢測,最后通過hash函數判斷通信網絡入侵攻擊類型,獲取網絡行為最終判別概率向量。
首先設計負載預測指標,對檢測器的負載狀態、可用性和分析能力進行連續監測,基于反饋控制負載情況動態調整負載分布,在獲取的默認輸出端口過載時,動態調整組件在最小負載輸出端口上的流量,以避免丟包,達到負載平衡。
3.1.1 負載指標確定
響應系統負載狀態的理想負載指數應該滿足:收集量小,可以頻繁收集,保證信息更新;能夠反映所有競爭資源的負載;收集和控制負載指數相互獨立。負載度量包括:節點等待任務隊列長度、節點利用率、響應時間等。
選擇探測器節點等待任務隊列中的任務數ti和連續10次采集所獲得的等待任務隊列中的任務數的平均值ei來量化計算探測器的負載量Li,即:
Li=ti*a+ei·*(1-a)(i=1,2,…,n)
(1)
則探測器i的當前處理能力Pi為:
Pi=ri/(1+Li)(i=1,2,…,n)
(2)
式中,Li表示探測器負載量;ti表示探測器當前等待任務數;a表示影響因子;ei表示等待任務數平均值;Pi表示探測器當前處理能力;ri表示探測器處理能力系數。
根據探測器的當前處理能力Pi,將探測器的負載狀態用一個負載指示器變量Bi(i=1,2,…,n)來量化,Bi正常取值范圍為1~-100,是該探測器負載狀態的一個度量,當Bi取值為-1時代表此探測器不可用。
當某一時刻沒有接收到檢測器的心跳信號時,就認為檢測器已關閉,檢測器的負荷指數為-1。該負載指示器對檢測器的負載狀態、可用性和分析能力進行連續監測,并根據監測結果動態調整當前所使用的負載預測策略。
3.1.2 負載預測動態調整策略
基于反饋控制,根據后端處理器的負載情況動態調整負載分布。圖3中顯示了動態調整模型。

圖3 動態調整模型
由圖3可知,獲取到達消息的流標記,獲取確定負載索引下的默認輸出端口號,然后根據反饋動態調整組件,在獲取的默認輸出端口過載時,動態調整組件在最小負載輸出端口上的流量,以避免丟包,達到負載平衡。該負載平衡結果將系統的所有信息映射到其他網絡入侵檢測行為中,實現了并行檢測系統的連續不間斷檢測能力。
判定所有未知攻擊類型后,設計網絡攻擊行為檢測流程。將用戶訪問請求作為輸入數據,通過區塊鏈技術實現網絡攻擊行為檢測,具體過程為:
Step1:預處理輸入數據,補充缺失值,刪除離散數據。合并存儲多個數據,由此構建數據倉庫,完成數據集檢測;
Step2:計算hash值,保證數據集完整且不被篡改。hash值計算過程為:輸入長度不固定數據,給定hash函數h:X→Y,任意選y屬于Y,x屬于X,滿足計算公式y=h(x)。hash函數哈希值范圍為224~512位,數據輸入長度范圍為[<264~<2128]位,循環次數為80次,在該限制范圍內的數據,即為不會被篡改數據,具有完整性和使用安全性。
Step3:獲取的網絡攻擊行為初始判別概率向量為:
PDNN=(Pn,Pim,Pf,Pin)
(3)
式(3)中,Pn表示正常網絡行為發生概率;Pim表示偽裝攻擊網絡行為發生概率;Pf表示洪泛攻擊網絡行為發生概率;Pin表示注入攻擊網絡行為發生概率。
Step4:結合糾正未知攻擊類型判別結果,獲取網絡行為最終判別概率向量:
(4)
式(4)中,KDNN表示網絡攻擊行為初始賬本記錄階段。
使用區塊鏈技術對記錄賬本數據判別結果是未知攻擊類別時,未知攻擊類型判別糾正項為1,Kkmens值越大,則未知攻擊類別出現可能性就越大;反之,未知攻擊類型判別糾正項為0。當PDNN=1時,4個元素最大值的攻擊行為是最終判別結果。
綜上,通信網絡入侵檢測系統軟件編程流程如圖4所示。

圖4 通信網絡入侵檢測系統軟件編程流程圖
如圖4所示,首先對網絡攻擊行為數據進行預處理,計算hash值,保證數據集完整且不被篡改。計算網絡攻擊行為初始判別概率向量,結合糾正未知攻擊類型判別結果,獲取網絡行為最終判別概率向量,實現通信網絡入侵檢測系統軟件編程流程設計。
為了驗證檢測方法在提高系統抗入侵性能方面的意義,在雙核CPU機器上對設計的基于負載預測的通信網絡入侵檢測系統進行測試。
硬件平臺為:Intel Core 2 Duo P8400CPU/2 GB內存和160 GB硬盤;
軟件平臺為:Window Vista Home Premium操作系統、編譯和執行環境Visual C++6.0。
實驗待測數據來源分別是IDS評測數據集和DEFCON9的Capture the Flag黑客大賽數據集。其中,IDS評測數據集包括了U2R、R2L、Data共計60種網絡攻擊方式,被公認為基準評測數據集;DEFCON9的Capture the Flag黑客大賽數據集,是不同黑客隊伍在有安全缺陷計算機上運行的程序,能夠實現不同隊伍間相互攻擊和自身防守。
部分數據集如表1所示。

表1 部分數據集
測試時使用加速比指標,計算公式為:
(5)
式(5)中,tk表示線程數量為k的系統運行時間。吞吐率與系統運行時間是具有一定聯系的,吞吐率能反映系統對不同數據集檢測速率。
在測試過程中,分別對線程數量為1~3個的情況進行測試,由于硬件底層物理核數量是2個,理論上測試線程數量應為3個,然而由于系統設計時,線程主要分為生產和消費兩種,生產線程要比消費線程負載低,因此,需考慮測試消費者的最大線程數量情況。
針對兩種不同數據集,對應著線程數量為1~3條情況,將每個數據項按照系統運行時間和吞吐率的格式填寫,如表2所示。

表2 兩種數據集系統運行時間和吞吐率對比分析
由表2可知,對于DEF2對于線程不同的各種情況,吞吐率比其它數據集明顯要高,主要是因為DEF2中攻擊數據包占總數據集比例最低,因此,檢測速度較快。
基于此,分別使用以互聯網高性能為主干網的檢測系統W1、基于防火墻技術設計的檢測系統W2和基于負載預測的通信網絡入侵檢測系統W3對線程2下數據集的運行時間和吞吐率進行對比分析,結果如表3所示。

表3 3種系統DEF1、DEF2數據集運行時間和吞吐率對比分析
由表3可知,基于負載預測的通信網絡入侵檢測系統的數據集運行時間平均值為86.3 s,吞吐率平均為74 Mbps,均好于對比方法。由此可見,所設計系統的運行時間較短,吞吐率較高,證明了該系統的檢測速度較快。
在此基礎上測試不同方法的網絡入侵檢測準確率,得到對比結果如圖5所示。

圖5 網絡入侵檢測準確率對比結果
由圖5可知,使用以互聯網高性能為主干網的檢測系統的網絡入侵檢測準確率平均值為77%,基于防火墻技術設計的檢測系統的網絡入侵檢測準確率平均值為81%,基于負載預測的通信網絡入侵檢測系統檢測結果的網絡入侵檢測準確率平均值為95%。實驗結果表明所設計系統能夠準確檢測通信網絡入侵,對通信網絡的安全運行提供系統支持。
針對通信網絡,設計了一種高效、可擴展的負載預測入侵檢測系統。在高速網絡環境中,系統采用負載預測技術,通過多種檢測器來適應較大的網絡流量。通過理論分析和實驗研究得出,所設計基于負載預測的通信網絡入侵檢測系統的數據集運行時間較短、吞吐率較高,因此該系統對網絡入侵的檢測速度較快;所設計系統的網絡入侵檢測準確率平均值為95%,證明了應用該系統能夠準確對網絡入侵進行檢測。
針對不同類型的攻擊,現有的并行入侵檢測結構和負載預測技術一般只能通過確保多個流攻擊的一致性來保證通常的攻擊環境,而對于跨越多個流的攻擊,如DDOS等,目前沒有一個好的解決辦法,還需要定義迭代負載系數算法,這些問題有待于在今后的工作中深入研究加以分析。