一、概述
性能指標是每個用戶采購安全產(chǎn)品必定關(guān)注的問題。但是,如果不知道這些指標的真實含義,不知道這些指標如何測出來,就會被表面的參數(shù)所蒙蔽,從而做出錯誤的決策。
本文介紹了網(wǎng)絡(luò)入侵檢測系統(tǒng)的性能指標的含義、測試方法,并分析了測試過程中可能作假的方法,以給用戶正確選擇網(wǎng)絡(luò)入侵檢測產(chǎn)品提供辨別的思路。
二、性能指標簡介
不同的安全產(chǎn)品,各種性能指標對客戶的意義是不同的。例如防火墻,客戶會更關(guān)注每秒吞吐量、每秒并發(fā)連接數(shù)、傳輸延遲等。而網(wǎng)絡(luò)入侵檢測系統(tǒng),客戶則會更關(guān)注每秒能處理的網(wǎng)絡(luò)數(shù)據(jù)流量、每秒能監(jiān)控的網(wǎng)絡(luò)連接數(shù)等。
就網(wǎng)絡(luò)入侵檢測系統(tǒng)而言,除了上述指標外,其實一些不為客戶了解的指標也很重要,甚至更重要,例如每秒抓包數(shù)、每秒能夠處理的事件數(shù)等。
1.每秒數(shù)據(jù)流量(Mbps或Gbps)
每秒數(shù)據(jù)流量是指網(wǎng)絡(luò)上每秒通過某節(jié)點的數(shù)據(jù)量。這個指標是反應(yīng)網(wǎng)絡(luò)入侵檢測系統(tǒng)性能的重要指標,一般涌Mbps來衡量。例如10Mbps, 100Mbps和1Gbps。
網(wǎng)絡(luò)入侵檢測系統(tǒng)的基本工作原理是嗅探(Sniffer),它通過將網(wǎng)卡設(shè)置為混雜模式,使得網(wǎng)卡可以接收網(wǎng)絡(luò)接口上的所有數(shù)據(jù)。
如果每秒數(shù)據(jù)流量超過網(wǎng)絡(luò)傳感器的處理能力,NIDS就可能會丟包,從而不能正常檢測攻擊。但是NIDS是否會丟包,不主要取決于每秒數(shù)據(jù)流量,而是主要取決于每秒抓包數(shù)。
2.每秒抓包數(shù)(pps)
每秒抓包數(shù)是反映網(wǎng)絡(luò)入侵檢測系統(tǒng)性能的最重要的指標。因為系統(tǒng)不停地從網(wǎng)絡(luò)上抓包,對數(shù)據(jù)包作分析和處理,查找其中的入侵和誤用模式。所以,每秒所能處理的數(shù)據(jù)包的多少,反映了系統(tǒng)的性能。業(yè)界不熟悉入侵檢測系統(tǒng)的往往把每秒網(wǎng)絡(luò)流量作為判斷網(wǎng)絡(luò)入侵檢測系統(tǒng)的決定性指標,這種想法是錯誤的。每秒網(wǎng)絡(luò)流量等于每秒抓包數(shù)乘以網(wǎng)絡(luò)數(shù)據(jù)包的平均大小。由于網(wǎng)絡(luò)數(shù)據(jù)包的平均大小差異很大時,在相同抓包率的情況下,每秒網(wǎng)絡(luò)流量的差異也會很大。例如,網(wǎng)絡(luò)數(shù)據(jù)包的平均大小為1024字節(jié)左右,系統(tǒng)的性能能夠支持10,000pps的每秒抓包數(shù),那么系統(tǒng)每秒能夠處理的數(shù)據(jù)流量可達到78Mbps,當數(shù)據(jù)流量超過78Mbps時,會因為系統(tǒng)處理不過來而出現(xiàn)丟包現(xiàn)象;如果網(wǎng)絡(luò)數(shù)據(jù)包的平均大小為512字節(jié)左右,在10,000pps的每秒抓包數(shù)的性能情況下,系統(tǒng)每秒能夠處理的數(shù)據(jù)流量可達到40Mbps,當數(shù)據(jù)流量超過40Mbps時,就會因為系統(tǒng)處理不過來而出現(xiàn)丟包現(xiàn)象。
在相同的流量情況下,數(shù)據(jù)包越小,處理的難度越大。小包處理能力,也是反映防火墻性能的主要指標。
3.每秒能監(jiān)控的網(wǎng)絡(luò)連接數(shù)
網(wǎng)絡(luò)入侵檢測系統(tǒng)不僅要對單個的數(shù)據(jù)包作檢測,還要將相同網(wǎng)絡(luò)連接的數(shù)據(jù)包組合起來作分析。網(wǎng)絡(luò)連接的跟蹤能力和數(shù)據(jù)包的重組能力是網(wǎng)絡(luò)入侵檢測系統(tǒng)進行協(xié)議分析、應(yīng)用層入侵分析的基礎(chǔ)。這種分析延伸出很多網(wǎng)絡(luò)入侵檢測系統(tǒng)的功能,例如:檢測利用HTTP協(xié)議的攻擊、敏感內(nèi)容檢測、郵件檢測、Telnet會話的記錄與回放、硬盤共享的監(jiān)控等。
4.每秒能夠處理的事件數(shù)
網(wǎng)絡(luò)入侵檢測系統(tǒng)檢測到網(wǎng)絡(luò)攻擊和可疑事件后,會生成安全事件或稱報警事件,并將事件記錄在事件日志中。每秒能夠處理的事件數(shù),反映了檢測分析引擎的處理能力和事件日志記錄的后端處理能力。有的廠商將反映這兩種處理能力的指標分開,稱為事件處理引擎的性能參數(shù)和報警事件記錄的性能參數(shù)。大多數(shù)網(wǎng)絡(luò)入侵檢測系統(tǒng)報警事件記錄的性能參數(shù)小于事件處理引擎的性能參數(shù),主要是Client/Server結(jié)構(gòu)的網(wǎng)絡(luò)入侵檢測系統(tǒng),因為引入了網(wǎng)絡(luò)通信的性能瓶頸。這種情況將導(dǎo)致事件的丟失,或者控制臺響應(yīng)不過來了。
三、性能指標受哪些因素影響?
網(wǎng)絡(luò)入侵檢測系統(tǒng)性能取決于軟硬件兩方面的因素。
1.軟件因素
軟件因素主要是:
●網(wǎng)絡(luò)抓包的效率;
●數(shù)據(jù)包重組和TCP流重組的效率。這是嚴重影響網(wǎng)絡(luò)入侵檢測系統(tǒng)性能的因素,對處理器和內(nèi)存的開銷非常大。如果數(shù)據(jù)包重組和TCP流重組在操作系統(tǒng)的用戶層完成,那么就會導(dǎo)致操作系統(tǒng)以極高的頻率在核心態(tài)和用戶態(tài)之間切換,導(dǎo)致大量額外的系統(tǒng)開銷;
●入侵分析的效率。入侵檢測一般是基于特征匹配的,將網(wǎng)絡(luò)數(shù)據(jù)包與入侵規(guī)則庫進行特征匹配的。很多產(chǎn)品利用協(xié)議分析技術(shù)提高入侵分析的效率,先使用協(xié)議分析過濾冗余數(shù)據(jù),同時盡快在規(guī)則樹上分叉,加速深度遍歷;
●C/S結(jié)構(gòu)下,網(wǎng)絡(luò)通信的延遲。在服務(wù)器端和客戶端都要引入網(wǎng)絡(luò)通信模塊,從而增加事件傳輸?shù)难舆t。大多數(shù)網(wǎng)絡(luò)入侵檢測系統(tǒng)都是采用Client/Server結(jié)構(gòu)的,例如ISS Real Secure,賽門鐵克的IDS系統(tǒng),啟明星辰的天闐和金諾的KIDS等等。像一些基于瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)的網(wǎng)絡(luò)入侵檢測系統(tǒng)就沒有這種問題,例如方正科技軟件的方通Sniper,因為它的事件直接存儲在網(wǎng)絡(luò)傳感器上;
●事件日志庫的記錄能力。有的系統(tǒng)將事件收集(Event Collector)和事件日志庫分開,事件收集器和事件日志數(shù)據(jù)庫又形成了C/S結(jié)構(gòu),又引入了延遲。如果EC和日志數(shù)據(jù)庫在不同的主機上,更引入了網(wǎng)絡(luò)傳輸延遲。ISS Real Secure,啟明星辰的天闐和金諾的KIDS等等又是采用這種結(jié)構(gòu);基于瀏覽器/服務(wù)器結(jié)構(gòu)的網(wǎng)絡(luò)入侵檢測系統(tǒng)也沒有這種問題;
●控制臺的事件顯示效率。很多控制臺會因為事件多的處理不過來,所以導(dǎo)致控制臺死機。很多C/S結(jié)構(gòu)的控制臺完成的功能太多了,例如和傳感器的網(wǎng)絡(luò)通信、和事件收集器的通信、和事件日志數(shù)據(jù)庫的通信,還要完成事件顯示、事件分析、系統(tǒng)管理和配置等等。引入了很多性能瓶頸點。如果不能達到實時監(jiān)控,就會使網(wǎng)絡(luò)入侵檢測系統(tǒng)的價值大打折扣。
2.硬件因素
硬件方面主要是CPU處理能力、內(nèi)存、網(wǎng)卡和硬盤IO等。
●CPU處理能力
CPU處理能力是影響網(wǎng)絡(luò)入侵檢測系統(tǒng)網(wǎng)絡(luò)傳感器性能的重要因素。CPU處理能力從三個方面對系統(tǒng)產(chǎn)生影響:CPU主頻和CPU的個數(shù),分別被稱為CPU的縱向和橫向的擴展能力。一般而言,隨著CPU主頻的提高,網(wǎng)絡(luò)傳感器的處理能力越高,這是顯而易見的。
但是是不是隨著CPU數(shù)量的提高網(wǎng)絡(luò)傳感器的性能就線性增加呢?這要看系統(tǒng)是否是多進程或多線程架構(gòu)的。很多網(wǎng)絡(luò)入侵檢測系統(tǒng)都在做多處理器的優(yōu)化。
對CPU處理能力的利用率也極大地影響網(wǎng)絡(luò)傳感器的性能,那么如何提高CPU處理能力的利用率呢?其中一個非常重要的方法就是對網(wǎng)絡(luò)傳感器進行CPU指令集的優(yōu)化。例如,在P4處理器上,盡可能的使用P4處理器的指令集。Intel公司提供的C&C++編譯器,就有針對指令集進行優(yōu)化的功能,而且Intel實驗室還提供這方面優(yōu)化服務(wù)。
目前,Intel的新至強處理器采用了超線程技術(shù),但是網(wǎng)絡(luò)傳感器如果要發(fā)揮新至強處理器的性能,就必須針對超線程進行優(yōu)化。目前Linux最新的核心還不支持超線程技術(shù)。
●內(nèi)存
內(nèi)存對網(wǎng)絡(luò)傳感器的影響是顯著的。因為網(wǎng)絡(luò)入侵檢測系統(tǒng)需要大量的內(nèi)存進行抓包、包重組、流重組、協(xié)議分析、規(guī)則匹配等計算。
內(nèi)存的使用方法也是至關(guān)重要的,因為會影響CPU的利用率。使用方法包括:內(nèi)存分配、釋放、復(fù)制、匹配等。使用不當一方面會造成內(nèi)存泄露,另一方面會占用CPU開銷。
網(wǎng)絡(luò)傳感器的部分進程在核心態(tài)運行,另一部分進程運行在用戶態(tài),兩者之間如果共享數(shù)據(jù),必須進行內(nèi)存復(fù)制,這時就需要在核心態(tài)和用戶態(tài)之間切換,兩者之間切換的CPU開銷是很大的,如果切換非常頻繁,CPU開銷就會非常大。
●二級緩存
L2 Cache的數(shù)量也對網(wǎng)絡(luò)傳感器的性能有積極的影響。因此,盡可能的使用大的L2 Cache。
●網(wǎng)卡
網(wǎng)卡對網(wǎng)絡(luò)傳感器性能的影響主要是抓包效率。網(wǎng)卡到達性能峰值時,就很容易丟包。所以網(wǎng)絡(luò)傳感器的網(wǎng)卡就不能使用一般性的網(wǎng)卡。目前,使用比較多的是Intel系列、3Com系列網(wǎng)卡。例如,Intel百兆網(wǎng)卡中的82559,千兆網(wǎng)卡中的82543,82544等。
如果網(wǎng)絡(luò)入侵檢測系統(tǒng)支持多個網(wǎng)卡監(jiān)控,那么各個網(wǎng)卡最好分配在不同的總線段。
網(wǎng)卡對網(wǎng)絡(luò)入侵檢測系統(tǒng)的影響還體現(xiàn)在網(wǎng)絡(luò)傳感器與控制臺的數(shù)據(jù)傳輸上。
網(wǎng)卡驅(qū)動對網(wǎng)絡(luò)傳感器的影響也是很重要的,有的網(wǎng)絡(luò)入侵檢測系統(tǒng),對網(wǎng)卡做專門的優(yōu)化。
●PCI總線帶寬
另一個非常重要的硬件因素是PCI總線帶寬。特別是在千兆網(wǎng)絡(luò)入侵檢測系統(tǒng)上,為了實現(xiàn)幾個G的抓包速率,必須使用多個66Mhz/64-bit PCI or 133Mhz/64-bit PCI-X總線擴展槽。如果使用PCI-X總線,就必須使用PCI-X兼容的網(wǎng)卡,以充分發(fā)揮PCI-X 133MHz標準。為了提供更好的帶寬利用,多個網(wǎng)卡必須合理地分布在PCI/PCI-X總線段上。
●硬盤IO
因為網(wǎng)絡(luò)入侵檢測系統(tǒng)的傳感器需要在硬盤上存儲很多日志信息,所以硬盤的IO也會影響到網(wǎng)絡(luò)傳感器的性能。
四、性能測試方法
介紹網(wǎng)絡(luò)入侵檢測系統(tǒng)的性能測試方法是為了讓用戶明白性能指標是怎么出來的,從而可以在眾多廠商公布的產(chǎn)品性能指標中辨識真?zhèn)巍?
1.測試網(wǎng)絡(luò)環(huán)境(以千兆網(wǎng)為例)
●拓撲結(jié)構(gòu)
●網(wǎng)絡(luò)環(huán)境配置
●Smartbits的配置
在此測試環(huán)境示例中,我們看到:
●Smartbits設(shè)備制造TCP背景流量;
●在Cisco Catalyst 3500千兆交換機上進行端口鏡像;
●分別從攻擊機1和攻擊機2發(fā)起對受攻擊服務(wù)器2和受攻擊服務(wù)器1的攻擊,從而使網(wǎng)絡(luò)傳感器能夠檢測到攻擊。
2.測試結(jié)果示例
五、分析
網(wǎng)絡(luò)入侵檢測系統(tǒng)的性能測試的基本原理是是通過一些設(shè)備或軟件工具制造不同數(shù)據(jù)包大小(如64, 128, 256, 512, 1024 , 1518字節(jié))、不同壓力的背景流量(如10Mbps,50Mbps,100Mbps,350Mbps,500Mbps,750Mbps等),然后通過各種黑客工具發(fā)動攻擊,看網(wǎng)絡(luò)傳感器的檢測情況和數(shù)據(jù)包丟失的情況。
在網(wǎng)絡(luò)入侵檢測系統(tǒng)中,背景流量的產(chǎn)生起著至關(guān)重要的作用。背景流量從如下方面影響性能測試的結(jié)果。
1.背景流量的數(shù)據(jù)包大小
對于發(fā)包測試設(shè)備來說,每秒制造數(shù)據(jù)包的數(shù)量(pps)是有極限的。一般而言,數(shù)據(jù)包越小,每秒制造的數(shù)據(jù)包數(shù)量越多,數(shù)據(jù)包越大,每秒制造的數(shù)據(jù)包數(shù)量越少。但是,數(shù)據(jù)流量(Mbps)等于數(shù)據(jù)包大小和每秒數(shù)據(jù)包數(shù)的乘積,所以數(shù)據(jù)流量由兩者共同決定。
對應(yīng)于網(wǎng)卡,也是一樣,數(shù)據(jù)包越小,每秒能夠處理的數(shù)據(jù)包越多,數(shù)據(jù)包越大,每秒能夠處理的數(shù)據(jù)包越少。但是網(wǎng)卡每秒能夠處理的數(shù)據(jù)包數(shù)也是有限的。
在極限情況下,數(shù)據(jù)包越小,處理的難度越大,數(shù)據(jù)包越大,處理的難度越小。因為在網(wǎng)絡(luò)流量的不斷增長的趨勢下,小數(shù)據(jù)包的pps增長速度比大數(shù)據(jù)包的pps增長速度快得多,迅速達到極限。從上述的測試結(jié)果數(shù)據(jù)來看,可以很明顯的看到這一點。
小數(shù)據(jù)包的處理能力不僅是網(wǎng)絡(luò)入侵檢測系統(tǒng),而且也是防火墻的性能瓶頸。所幸在網(wǎng)絡(luò)中小數(shù)據(jù)包出現(xiàn)的比率還是比較低的。但是,在一些黑客攻擊中,采用小包,很容易制造DoS攻擊。
廠商公布的網(wǎng)絡(luò)入侵檢測系統(tǒng)的每秒可處理的最大網(wǎng)絡(luò)流量指標,往往是在最好的條件下測的,如每個數(shù)據(jù)包的大小是1518字節(jié)。
用戶在選購網(wǎng)絡(luò)入侵檢測產(chǎn)品時,不能單純看廠商公布的數(shù)據(jù),而是要分析自己的流量的情況。要分析數(shù)據(jù)包大小的分布情況,64字節(jié)包平均占多少,128字節(jié)包平均占多少,512字節(jié)包平均占多少,1518字節(jié)包平均占多少,還要分析整體的流量在每天的時間上的平均分布。
2.背景流量的數(shù)據(jù)包類型
數(shù)據(jù)包的類型決定了網(wǎng)絡(luò)入侵檢測系統(tǒng)的處理方式,從而很大程度上決定了性能指標的有效性和真實性。
例如UDP包和TCP包的處理方式就是很具有代表性的一例。眾所周知,UDP協(xié)議是面向無連接的協(xié)議,TCP是面向連接的協(xié)議。TCP傳輸不僅要完成三次握手,而且要對IP數(shù)據(jù)包進行組裝,以形成完整的會話數(shù)據(jù),有時網(wǎng)絡(luò)傳感器還要對TCP傳輸進行流重組。所以,TCP的處理比UDP復(fù)雜的多,占用的CPU、內(nèi)存等系統(tǒng)資源也要多的多,而且,在所有攻擊類型中,利用UDP協(xié)議的攻擊所占的比率不到10%。
所以,用UDP包作為背景流量具有很大的欺騙性。而目前很多公布數(shù)據(jù)的網(wǎng)絡(luò)入侵檢測產(chǎn)品廠商都是用UDP作為背景流量,特別是千兆入侵檢測產(chǎn)品,什么800M,941M等等。
在我們所舉例的測試中,是使用TCP作為背景流量的類型,更具有科學(xué)性和真實性。
用戶在選購網(wǎng)絡(luò)入侵檢測產(chǎn)品時,要注意鑒別真?zhèn)巍?
當然,利用背景流量的類型做文章的廠商比起隨便插個千兆網(wǎng)卡就自稱是千兆級產(chǎn)品的廠商來說,還是高明一些。
3.背景流量的方向
在我們舉例的測試中,采用雙向流量測試后,系統(tǒng)的流量和pps的性能指標在一定程度上提高,但不是成倍的上升。因為系統(tǒng)的處理性能放在那兒了。而且,小數(shù)據(jù)包的性能指標比大數(shù)據(jù)包的性能指標提高的更加明顯。
4.CPU占用率
CPU占用率也是反映了網(wǎng)絡(luò)傳感器性能的主要參考指標,如果在其他條件相同的情況下,CPU占用率越低,表明系統(tǒng)的性能越好,反之就越差。
摘自 賽迪網(wǎng)