1 引言
隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)流量不斷增大、網(wǎng)絡(luò)攻擊類型層出不窮。入侵檢測的高速度、低漏檢率、低誤報(bào)率等要求,使傳統(tǒng)的以軟件為核心的 IDS面臨著越來越大的壓力。僅靠模式匹配算法的改進(jìn)對入侵檢測速度的提高是有限的,不是解決問題的根本策略。
通過對入侵檢測系統(tǒng)中檢測速度瓶頸及模式匹配算法的分析,提出了基于硬件實(shí)現(xiàn)入侵檢測的策略。在系統(tǒng)中用硬件代替?zhèn)鹘y(tǒng)入侵檢測系統(tǒng)中的軟件實(shí)現(xiàn)主要部件功能:如數(shù)據(jù)采集和過濾、多模式匹配及數(shù)據(jù)包調(diào)度等,硬件實(shí)現(xiàn)比軟件實(shí)現(xiàn)的速度能顯著提高。
2 系統(tǒng)設(shè)計(jì)
系統(tǒng)原型的設(shè)計(jì)基于SOPC技術(shù),采用了多處理器并行處理結(jié)構(gòu)、可擴(kuò)充指令集和協(xié)處理器加速算法等設(shè)計(jì)思想。其核心內(nèi)容是采用多級(jí)并行處理技術(shù)和專用功能部件代替復(fù)雜費(fèi)時(shí)算法,以獲得極大的數(shù)據(jù)包處理性能。
1. 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
原型系統(tǒng)的主要部件有數(shù)據(jù)采集模塊、報(bào)文分派器、軟核處理單元、模式匹配協(xié)處理器、自定義指令、主控通路接口及響應(yīng)輸出等。系統(tǒng)的體系結(jié)構(gòu)如圖 1所示。
為了解決高速網(wǎng)絡(luò)環(huán)境下入侵檢測系統(tǒng)的檢測速度瓶頸問題,在入侵檢測過程的各個(gè)環(huán)節(jié)中,各處理器部件都必須能線速處理數(shù)據(jù)包。本系統(tǒng)中采用硬件模塊實(shí)現(xiàn)數(shù)據(jù)采集功能,對數(shù)據(jù)包的分析檢測模塊采用并行處理的方法來提速;另外還采用協(xié)處理器來加速完成模式匹配過程。基于 FPGA協(xié)處理器能夠加速多種不同的算法,其獲得的性能是軟件實(shí)現(xiàn)性能的幾十倍。
2.?dāng)?shù)據(jù)采集部件
傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)截獲用軟件實(shí)現(xiàn),通過函數(shù)拷貝 MAC緩沖區(qū)內(nèi)的數(shù)據(jù)包來實(shí)現(xiàn)數(shù)據(jù)采集,運(yùn)行速度低,丟包率高。本系統(tǒng)中的數(shù)據(jù)采集和過濾模塊直接用硬件實(shí)現(xiàn)。當(dāng)輸入端口有數(shù)據(jù)進(jìn)來時(shí),過濾單元選擇性的把需要的數(shù)據(jù)拷貝到 Buffer中,具有很高的采集速度,在千兆環(huán)境下丟包率很低。
報(bào)文分派器按照公平的輪詢策略依次從輸入通路上讀取 IP報(bào)文,然后根據(jù)輸入緩沖中 FIFO的空閑狀況,將 IP報(bào)文分派到軟核處理器的輸入緩沖 FIFO中。
3.軟核處理器單元
使用SOPC Builder定義網(wǎng)絡(luò)處理器原型芯片中的并行處理單元 ——Altera NiosⅡ處理器軟核。定義中需要設(shè)置各種硬件參數(shù),包括工作頻率、cache選項(xiàng)、加電引導(dǎo)方式、中斷寄存器設(shè)置、內(nèi)存大小、Flash基地址以及各種的訪問模式和地址映射等。依次對多個(gè)處理器軟核進(jìn)行描述,并因此生成每個(gè)處理器軟核的邏輯符號(hào)和軟件編程接口,生成.elf文件。對芯片原型中的其他硬件邏輯設(shè)計(jì)采用硬件描述語言,生成的硬件配置數(shù)據(jù)與處理器軟核的.elf文件合成用于配置芯片原型 FPGA的.hex文件。
本系統(tǒng)芯片原型內(nèi)的多個(gè) PE采用并行結(jié)構(gòu),各個(gè) PE有自己的數(shù)據(jù)和指令存儲(chǔ)器,共享模式匹配協(xié)處理器模塊。PE之間的通信使用并行通信接口 PIO來實(shí)現(xiàn)。其中 NiosⅡ是微處理器軟核,RAM和 Cache存放指令和數(shù)據(jù), Load_Header和 Send_Header是報(bào)文頭輸入 /
輸出邏輯,Lookup Controllor是多模式匹配協(xié)處理器接口邏輯, Cam_update Controllor是規(guī)則表管理邏輯接口,PIO是并行通信接口。
4. 協(xié)處理器設(shè)計(jì)
盡管有軟件模式匹配算法的改進(jìn),模式匹配仍然是高速流量分析的限制。我們通過下載所有模式匹配任務(wù)到可重配置的 FPGA協(xié)處理器來消除這個(gè)瓶頸。 FPGA能對 Snort規(guī)則中每種模式與包內(nèi)容進(jìn)行比較,整個(gè)規(guī)則集裝入在一個(gè)低端 FPGA設(shè)備上。
本系統(tǒng)中處理器軟核 NiosⅡ共享匹配查表協(xié)處理器,采用總線仲裁器共享機(jī)制。每個(gè)處理器軟核有一個(gè)匹配查表協(xié)處理器的接口控制器 Lookup,它作為自定義指令邏輯包含在處理器軟核內(nèi)部。匹配查表協(xié)處理器與處理器軟核并行工作,通過查詢方式判斷協(xié)處理器工作是否結(jié)束。協(xié)處理器使用 CAM存放規(guī)則表。 3 系統(tǒng)關(guān)鍵技術(shù)及實(shí)現(xiàn)
1. 多處理器技術(shù)
PE(Processor Element)是網(wǎng)絡(luò)處理器的核心部件,承擔(dān)系統(tǒng)內(nèi)主要計(jì)算任務(wù),每個(gè) PE實(shí)際上是一個(gè)微處理器核。網(wǎng)絡(luò)處理器通常包括多個(gè) PE,PE之間有兩種主要連接方式:并行連接和串行連接。
2. 多級(jí)并行處理技術(shù)
網(wǎng)絡(luò)數(shù)據(jù)包處理存在本質(zhì)上的并行性,為了昀大限度地提高報(bào)文處理速度,滿足網(wǎng)絡(luò)應(yīng)用的需求,網(wǎng)絡(luò)處理器實(shí)現(xiàn)不同層次并行處理:實(shí)現(xiàn)處理器級(jí)并行處理、通過硬件多線程實(shí)現(xiàn)線程級(jí)的并行處理、通過指令流水線實(shí)現(xiàn)指令級(jí)的并行處理。處理器間的并行還可以分為 PE之間的并行運(yùn)行及 PE與協(xié)處理器之間的并行。
3. 硬件線程和 “0開銷”切換技術(shù)
PE內(nèi)部采用硬件多線程技術(shù),每個(gè) PE中有多個(gè)硬件線程,硬件線程是指享有獨(dú)立的程序計(jì)數(shù)器、寄存器和存儲(chǔ)空間的線程。 “0”延遲切換原理是:硬件線程在進(jìn)行線程切換時(shí),既不需要保存將要停止運(yùn)行的線程的現(xiàn)場信息,也不需要恢復(fù)即將運(yùn)行的就緒進(jìn)程的現(xiàn)場信息,因此不消耗 PE資源,能做到“0開銷”切換。NP利用硬件線程掩蓋了線程切換的延遲,提高了 PE的運(yùn)行效率。一般地,通過合理設(shè)計(jì)調(diào)度策略,PE運(yùn)行效率可接近 。
4. 分布式數(shù)據(jù)存儲(chǔ)技術(shù)
存儲(chǔ)器也是網(wǎng)絡(luò)處理器的關(guān)鍵,其存取速度和帶寬是影響網(wǎng)絡(luò)處理器性能的重要因素。按照存儲(chǔ)轉(zhuǎn)發(fā)的思想,所有報(bào)文進(jìn)入網(wǎng)絡(luò)處理器后必須緩存。要線速處理報(bào)文,報(bào)文的輸出速度必須與輸入速度一致,既存儲(chǔ)器帶寬是端口速度的兩倍以上,這對目前存儲(chǔ)器是一個(gè)巨大的挑戰(zhàn)。
一方面,NP采用數(shù)據(jù)分布式存儲(chǔ)結(jié)構(gòu)。NP內(nèi)設(shè)置多級(jí)存儲(chǔ)器:片上快速存儲(chǔ)器和片外慢速存儲(chǔ)器。另一方能,網(wǎng)絡(luò)處理器采用數(shù)據(jù)預(yù)取、塊傳送、高速數(shù)據(jù)通路等技術(shù)來解決高速計(jì)算和高速數(shù)據(jù)傳送的問題。
5.系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)是面向入侵檢測的網(wǎng)絡(luò)處理器原型,入侵檢測的流程包括數(shù)據(jù)采集、數(shù)據(jù)包預(yù)處理、數(shù)據(jù)包檢測、及響應(yīng)四個(gè)步驟。原型系統(tǒng)將入侵檢測的主要工作,如數(shù)據(jù)采集及過濾、多模式匹配、數(shù)據(jù)包在多處理單元上的分派等用硬件實(shí)現(xiàn),而數(shù)據(jù)包的分析檢測也用多個(gè)處理單元進(jìn)行并行處理。
該原型系統(tǒng)包括:一個(gè)主控模塊、一個(gè)硬件數(shù)據(jù)采集模塊、八個(gè)軟核并行處理單元、一個(gè)多模式匹配協(xié)處理器。系統(tǒng)采用報(bào)文分派器完成 IP報(bào)文到核處理器的分派任務(wù),軟核微處理器對報(bào)文做入侵檢測。每個(gè)軟核微處理器都擁有一個(gè)輸入緩沖 FIFO和輸出緩沖 FIFO,用于緩沖需要處理的報(bào)文。響應(yīng)和輸出控制模塊根據(jù)報(bào)文的檢查結(jié)果,決定是否作為非法包丟棄還是作為正常包轉(zhuǎn)發(fā)到相應(yīng)的輸出數(shù)據(jù)通路上。 4 系統(tǒng)測試及性能分析
為了進(jìn)行系統(tǒng)測試,開發(fā)了如圖 2所示的驗(yàn)證平臺(tái)。系統(tǒng)原型驗(yàn)證平臺(tái)使用多片 FPGA實(shí)現(xiàn)各種功能接口,同時(shí)將網(wǎng)絡(luò)處理器的核心功能在單個(gè) FPGA芯片中實(shí)現(xiàn),用于支持網(wǎng)絡(luò)處理器控制功能和系統(tǒng)管理功能的主控模塊也采用一個(gè)獨(dú)立的 FPGA實(shí)現(xiàn)。
系統(tǒng)性能測試在系統(tǒng)驗(yàn)證平臺(tái)下進(jìn)行。通過JTAG接口將驗(yàn)證平臺(tái)與微機(jī)相連,使用IDE開發(fā)環(huán)境進(jìn)行軟件調(diào)試。報(bào)文生成器是 FPGA內(nèi)的一個(gè)模塊,使用它能產(chǎn)生變長的連續(xù)報(bào)文。網(wǎng)絡(luò)處理器芯片的輸入端接收 33位數(shù)據(jù)( 32位數(shù)據(jù)和 1位標(biāo)志位),經(jīng)報(bào)文分派器分配給多個(gè) PE進(jìn)行處理。每個(gè) PE對報(bào)文頭進(jìn)行解析,并查找規(guī)則表,產(chǎn)生 11位轉(zhuǎn)發(fā)控制信息用于輸出控制。
在 FPGA上進(jìn)行模式匹配的重要性能指標(biāo)是吞吐率。我們通過輸入不同大小的數(shù)據(jù)包進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表 1所示。
PE讀取第一個(gè)報(bào)文頭到讀取第二個(gè)報(bào)文頭的時(shí)間為 246個(gè)時(shí)鐘周期,報(bào)文處理延遲為 4920ns,實(shí)驗(yàn)測量值與計(jì)算值基本符合。實(shí)驗(yàn)中系統(tǒng)每秒處理 330K個(gè)報(bào)文,系統(tǒng)的吞吐率與報(bào)文長度有關(guān),總的吞吐率理論上可達(dá)到 14Gbps,但理論值只有在 PE與協(xié)處理器滿負(fù)荷運(yùn)行下才有可能獲得。從表 1還可看出,在 FPGA內(nèi)部隨著資源使用的增加,內(nèi)部延遲會(huì)增加,吞吐率稍有降低。
5 小結(jié)
通過對入侵檢測系統(tǒng)中檢測速度瓶頸的分析,設(shè)計(jì)了一個(gè)基于硬件的入侵檢測系統(tǒng)原型。該原型采用基于網(wǎng)絡(luò)處理器的硬件策略取代傳統(tǒng)入侵檢測的軟件策略,實(shí)驗(yàn)證明該系統(tǒng)的性能與傳統(tǒng)方法相比有顯著的提高,很好地解決了入侵檢測中的速度問題。系統(tǒng)都是在基于 FPGA上實(shí)現(xiàn)的,并可以根據(jù)實(shí)際需要增加硬件和自定義指令來提高系統(tǒng)性能。
本文作者創(chuàng)新點(diǎn):設(shè)計(jì)了一個(gè)基于 SOPC網(wǎng)絡(luò)處理器的入侵檢測系統(tǒng)原型,將入侵檢測的主要工作用硬件來實(shí)現(xiàn),與傳統(tǒng)的基于軟件策略相比性能有顯著的提高。
責(zé)任編輯:gt
評論