通過并行處理提升IPS性能
如今多核處理器的迅速發(fā)展為并行處理技術(shù)提供了廣闊空間,我們在多核處理器的硬件平臺上,可以利用并行處理來提升IPS性能,但實(shí)際上提升IPS性能取決于不IPS并行化方法及程度,不幸的是IPS軟件的并行化遠(yuǎn)比硬件增加1個(gè)或幾個(gè)物理內(nèi)核要復(fù)雜得多,這涉及到操作系統(tǒng)并發(fā)工作的模式、流量的分擔(dān)與負(fù)載、IPS引擎的并行檢測、配置的同步與競爭控制、事件統(tǒng)計(jì)以及運(yùn)行態(tài)調(diào)試等等問題。以下我們將對這些IPS并行化中的問題逐一探尋。
首先需要IPS系統(tǒng)軟件(這里假定IPS系統(tǒng)是一個(gè)運(yùn)行于應(yīng)用層的程序,如果將IPS做為內(nèi)核模塊嵌入到操作系統(tǒng)中則需要考慮的問題會更多一些)的載體-操作系統(tǒng)本身支持并行化,也即操作系統(tǒng)有穩(wěn)定的SMP版本。操作系統(tǒng)在多核處理器硬件平臺上一般有兩種構(gòu)架,一種是SMP方式,也稱為同構(gòu)方式(見圖:SMP方式示意圖,以4核為例),另一種為AMP方式,也稱為異構(gòu)方式(見圖:AMP方式示意圖,以4核為例)。
SMP方式示意圖
AMP方式示意圖
SMP方式顧名思義就是將多個(gè)內(nèi)核平等看待,每個(gè)內(nèi)核運(yùn)行的操作系統(tǒng)相同,且每個(gè)內(nèi)核上都運(yùn)行一套IPS系統(tǒng),這樣從數(shù)據(jù)接收、連接建立、數(shù)據(jù)檢測到數(shù)據(jù)發(fā)送都是并發(fā)執(zhí)行的,相當(dāng)于多個(gè)IPS系統(tǒng)在同時(shí)運(yùn)行。這種架構(gòu)比較簡潔,各個(gè)處理器內(nèi)核負(fù)載均衡,可以全方位地提升IPS性能,特別是在測試單一性能指標(biāo)時(shí),由于所有內(nèi)核都參與處理工作,往往可以獲得比較好的表現(xiàn)。這種架構(gòu)也有其固有缺陷,因?yàn)樗袃?nèi)核都運(yùn)行相同的軟件系統(tǒng)(包含操作系統(tǒng)和IPS系統(tǒng)),勢必產(chǎn)生對共享資源(內(nèi)存數(shù)據(jù)、文件描述符、I/O設(shè)備等)的爭用。為處理并發(fā)與同步需要使用大量的鎖機(jī)制,而這些鎖的操作又影響了性能發(fā)揮,更嚴(yán)重的是隨著內(nèi)核數(shù)量的增多,并發(fā)與同步的消耗達(dá)到一定的量級,這時(shí)性能就不再增長甚至下降了。
AMP方式就是將多個(gè)內(nèi)核區(qū)別看待,可以運(yùn)行不同的操作系統(tǒng)也可以在相同的操作系統(tǒng)上運(yùn)行不同的任務(wù),各個(gè)處理器內(nèi)核按照任務(wù)劃分,各負(fù)其責(zé),規(guī)避共享資源的競爭,做到“術(shù)有專攻”,從而提升IPS性能。完整的操作系統(tǒng)往往比較龐大,耗費(fèi)資源較多,效率也較低。拿出幾個(gè)物理內(nèi)核,在其上建立一種簡易的系統(tǒng)環(huán)境(有時(shí)候直接叫做“裸核”環(huán)境),在這個(gè)“潔凈的空間”內(nèi)運(yùn)行單一任務(wù)(比如收發(fā)數(shù)據(jù)、模式匹配等)往往可以獲得極高的性能,這是AMP方式的特點(diǎn),也是其優(yōu)勢。另外一種方式,在相同的操作系統(tǒng)上運(yùn)行不同的任務(wù)也是同樣的機(jī)理,只不過更容易實(shí)現(xiàn)一些,相應(yīng)的性能提升的效果也遜色一些。這種架構(gòu)也有其缺陷,在測試單一性能指標(biāo)時(shí),因?yàn)樘囟üδ苤挥杏邢薜膬?nèi)核參與處理,往往性能不夠理想。架構(gòu)本身也比較復(fù)雜,需要仔細(xì)權(quán)衡各個(gè)內(nèi)核的任務(wù)分擔(dān),否則會造成內(nèi)核負(fù)載不均衡,影響性能發(fā)揮。
選擇哪一種架構(gòu)需要根據(jù)處理器硬件平臺與IPS系統(tǒng)本身的特點(diǎn)來抉擇,通常在硬件處理器內(nèi)核比較少的情況下選擇SMP架構(gòu),在需要將一大堆不可能并行化的“遺產(chǎn)”繼承到產(chǎn)品中時(shí)只好選擇AMP架構(gòu),如果已經(jīng)使用了硬件內(nèi)容加速,那么可以選擇SMP架構(gòu),如果是新開發(fā)IPS產(chǎn)品,內(nèi)核分工可以動態(tài)調(diào)整的AMP架構(gòu)是不錯(cuò)的選擇,但需要保證足夠的技術(shù)儲備和適當(dāng)?shù)娜肆ν度搿?/p>
在確定了工作模式后,就要考慮流量的分擔(dān)與負(fù)載問題了,多個(gè)內(nèi)核并行處理,它們共同的輸入就是來自網(wǎng)絡(luò)的數(shù)據(jù)流,如何將這些數(shù)據(jù)流“喂”給處理器內(nèi)核呢?最簡單的就是輪詢方法,即將到達(dá)的數(shù)據(jù)依次交給等待處理的內(nèi)核,各個(gè)內(nèi)核平均分配,這對早期的基于單個(gè)數(shù)據(jù)包檢測的IPS系統(tǒng)比較適合?,F(xiàn)代的IPS系統(tǒng)功能豐富,不僅可以進(jìn)行TCP流重組,還可以跟蹤應(yīng)用層協(xié)議和控制流量。但是在多個(gè)內(nèi)核上并發(fā)地跟蹤TCP狀態(tài)機(jī)是個(gè)棘手的問題,實(shí)現(xiàn)難度也較大,所以出現(xiàn)了另外一種按照五元組分流的方法,即將同一個(gè)數(shù)據(jù)流分配到同一個(gè)內(nèi)核上,保障一個(gè)數(shù)據(jù)流始終由一個(gè)內(nèi)核處理。這種方式大大降低了IPS內(nèi)部實(shí)現(xiàn)復(fù)雜度,雖然具有流量較小時(shí)負(fù)載不均衡的副作用,但從研發(fā)成本考慮還是可以接受的。
接下來就是對提升性能至關(guān)重要的IPS引擎的并行檢測,IPS檢測引擎的并發(fā)是提升性能的關(guān)鍵。這里的引擎主要指應(yīng)用協(xié)議的識別和分析、攻擊特征的匹配、策略的檢查以及后續(xù)的數(shù)據(jù)處理。如果運(yùn)行于應(yīng)用層,可以將每個(gè)IPS引擎作為一個(gè)單獨(dú)的進(jìn)程對待,它們共用一份公共的攻擊特征庫,對各自的輸入的數(shù)據(jù)流進(jìn)行并行檢測和處理,就好像多個(gè)引擎在同時(shí)工作。但是數(shù)據(jù)流之間有時(shí)候是相關(guān)的,比如一個(gè)應(yīng)用層協(xié)議可以動態(tài)協(xié)商出它的一個(gè)子連接,當(dāng)這個(gè)子連接分配到另外一個(gè)IPS進(jìn)程上處理時(shí),要想控制它就需要進(jìn)行進(jìn)程間通訊,這樣引擎的獨(dú)立性就被破壞了。同樣在雙機(jī)熱備份的狀態(tài)同步、應(yīng)用層協(xié)議動態(tài)識別上也會遇到同樣的困難。如果IPS作為一個(gè)內(nèi)核模塊運(yùn)行于操作系統(tǒng)核心層,那么需要對所有可能產(chǎn)生競爭的共享資源進(jìn)行并發(fā)訪問控制,使其徹底并行化,除此之外可能沒有什么更好的辦法了。
配置問題是并發(fā)系統(tǒng)中一個(gè)棘手的問題,用戶常常在系統(tǒng)運(yùn)行過程中進(jìn)行配置變更,而且總是希望這種變更后的配置能夠即時(shí)生效。
在并發(fā)IPS系統(tǒng)中只有一份配置,配置的變化意味著所有的并行工作都要暫停下來,需要根據(jù)新的配置調(diào)整運(yùn)行參數(shù)。運(yùn)行時(shí)態(tài)頻繁地調(diào)整配置不可避免地影響并發(fā)IPS系統(tǒng)性能,如果設(shè)計(jì)不好還會產(chǎn)生“停頓”,導(dǎo)致丟包。同樣的,在IPS系統(tǒng)中各種統(tǒng)計(jì)數(shù)據(jù)(流量統(tǒng)計(jì)、事件統(tǒng)計(jì)、時(shí)間統(tǒng)計(jì)等)都需要實(shí)時(shí)地準(zhǔn)確地顯示到用戶可視層面,多個(gè)引擎需要并發(fā)地對單一數(shù)據(jù)結(jié)果操作,如果簡單地用鎖規(guī)避競爭也會很大程度上影響并發(fā)IPS系統(tǒng)性能的提升。
一個(gè)系統(tǒng)的成熟和完善離不開調(diào)試,與基于單內(nèi)核的系統(tǒng)相比,并發(fā)IPS系統(tǒng)的調(diào)試工具極度匱乏,調(diào)試手段也很不成熟。那些傳統(tǒng)的強(qiáng)大的單步跟蹤工具已經(jīng)沒有用武之地,就連簡單的打印調(diào)試信息也需要特別小心,因?yàn)槟阈枰戎肋@個(gè)信息是哪個(gè)內(nèi)核打印的才好定位問題。如果系統(tǒng)運(yùn)行時(shí)死鎖,那么整個(gè)系統(tǒng)或者IPS進(jìn)程會被掛起,但留下的供你調(diào)試的線索卻非常有限??傊?,有四類問題比較關(guān)鍵:死機(jī)、內(nèi)存泄漏、內(nèi)存篡改和報(bào)文調(diào)試。這些問題影響并發(fā)IPS系統(tǒng)的穩(wěn)定,當(dāng)然也影響到性能發(fā)揮。
【編輯推薦】
- 如何構(gòu)建入門級IDS
- IDS漏洞分析與黑客入侵手法
- 測試評估IDS的性能指標(biāo)
- 正確評估IDS性能的標(biāo)準(zhǔn)與步驟
- 企業(yè)測試IDS的四條重要標(biāo)準(zhǔn)