基于環(huán)境模擬的入侵檢測系統(tǒng)測試方法
0 引 言
在保障網(wǎng)絡(luò)的安全性時(shí),入侵檢測系統(tǒng)已經(jīng)成為必選的技術(shù)和手段,因?yàn)樗绕鹌渌陌踩夹g(shù)存在著很多優(yōu)勢。用戶在選用IDS時(shí),總是從各自不同的需要來考慮。要衡量IDS的優(yōu)劣,就需要明確IDS應(yīng)該具備的性能指標(biāo),設(shè)計(jì)有效的方法來測試。實(shí)際上入侵檢測系統(tǒng)的測試是一個(gè)難度較大的問題,也是一件費(fèi)時(shí)耗力的工作。對于這一工作,許多研究機(jī)構(gòu)都進(jìn)行了相應(yīng)的研究,給出了自己的測試方法和測試結(jié)果。例如MIT的林肯實(shí)驗(yàn)室分別在1998年和1999年進(jìn)行了IDS的兩次測試,這兩次測試的結(jié)果曾受到廣泛的關(guān)注。IBM的蘇黎世研究院和其他一些研究機(jī)構(gòu)也做過相似的工作。他們的工作都專注于IDS評估和測試的本身,沒有過多考慮到開發(fā)者的需要,而且他們的方法實(shí)現(xiàn)起來代價(jià)都很大。本文既考慮到測試的目的,又考慮了開發(fā)者的需要,盡量能夠保證測試環(huán)境和開發(fā)環(huán)境的融合,提出模擬現(xiàn)實(shí)的網(wǎng)絡(luò)環(huán)境,然后搭建軟件平臺進(jìn)行IDS測試的方法。該方法比較容易實(shí)現(xiàn),可控制性強(qiáng),能夠滿足IDS測試的多種需要,隨后的仿真測試說明該方法是有效的。
1 IDS測試目的及指標(biāo)
入侵檢測系統(tǒng)是一個(gè)軟硬件結(jié)合體系,可以借鑒軟件測試方法來測試和評價(jià)入侵檢測系統(tǒng),但是純粹的軟件測試方法并不能很好地滿足IDS測試的需要。首先要確定應(yīng)該以什么樣的標(biāo)準(zhǔn)來測試IDS,也就是選擇測試指標(biāo)。根據(jù)IDS的特點(diǎn)采取定量的測試方法,這些測試指標(biāo)側(cè)重于那些定量的測量,以及與檢測準(zhǔn)確度相關(guān)的項(xiàng)目。
IDS的主要目的就是有效地檢測出入侵行為,并進(jìn)行及時(shí)處理。檢測率用來確定在一個(gè)時(shí)間段內(nèi)及在給定的環(huán)境中IDS可以正確檢測到攻擊的比率。當(dāng)系統(tǒng)將正常的行為確認(rèn)為人侵行為時(shí)就是發(fā)生誤報(bào)(False Positive)。誤報(bào)率用來確定在一個(gè)特定的時(shí)間段內(nèi)及在給定環(huán)境中IDS所產(chǎn)生的誤報(bào)比率,大多數(shù)產(chǎn)生誤報(bào)的原因是正常的非惡意的后臺流量引起的。當(dāng)系統(tǒng)將入侵行為確認(rèn)為正常行為時(shí),則發(fā)生漏報(bào)(False Negatire)。漏報(bào)率用來衡量一個(gè)特定的時(shí)間段及在給定環(huán)境中IDS所產(chǎn)生的漏報(bào)比率。
檢測率和誤報(bào)率是緊密相關(guān)的,受試者行為特性曲線(Receiver Operating Characteristic,ROC)反映了這兩者之間的關(guān)系。ROC曲線的橫軸是IDS的誤報(bào)次數(shù),縱軸為檢測率,該曲線準(zhǔn)確地刻畫了IDS的檢測率與誤報(bào)率情況。利用ROC曲線還可以找出IDS的檢測和誤報(bào)之間的平衡點(diǎn),但是為了獲得這個(gè)點(diǎn)需要預(yù)先做很多工作。
除了上面的幾項(xiàng)指標(biāo)外,還有幾項(xiàng)重要的指標(biāo)需要加以考慮。它們包括:自身安全性(抵抗對于入侵檢測系統(tǒng)本身的攻擊)、處理高數(shù)據(jù)流量的能力、事件關(guān)聯(lián)能力、檢測未知攻擊的能力、確認(rèn)攻擊是否成功的能力等。
2 IDS測試環(huán)境
測試環(huán)境是對IDS進(jìn)行評估和測試的基礎(chǔ),因?yàn)樗苯雨P(guān)系到測試的結(jié)果,也直接影響測試的真實(shí)性和客觀性。無論何種類型的IDS,其運(yùn)行的真實(shí)環(huán)境總是一個(gè)具體的網(wǎng)絡(luò)。但是測試中環(huán)境卻不拘泥于是否是在某種特定的網(wǎng)絡(luò)里,IDS的部署和配置總是根據(jù)它所在的網(wǎng)絡(luò)環(huán)境而千差萬別,建立的測試環(huán)境應(yīng)該能夠滿足IDS測試中多樣性的需要,使它不僅能對測試環(huán)境進(jìn)行靈活的調(diào)整,又能在現(xiàn)實(shí)網(wǎng)絡(luò)中使其流量要求與技術(shù)指標(biāo)相符合。測試環(huán)境分為三種:現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境、純軟件模擬環(huán)境和模擬網(wǎng)絡(luò)環(huán)境。
2.1 現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境和模擬環(huán)境
現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境就是本地現(xiàn)有的正在實(shí)際使用的網(wǎng)絡(luò)環(huán)境。整個(gè)因特網(wǎng)就是一個(gè)最大的現(xiàn)實(shí)的網(wǎng)絡(luò)測試環(huán)境,如圖1所示。
在內(nèi)網(wǎng)中布置了IDS,該IDS可以是基于主機(jī)(Host-based IDS)的,也可以是基于網(wǎng)絡(luò)(Network-based IDS)的。發(fā)起攻擊的主機(jī)(產(chǎn)生攻擊行為的主機(jī),這樣的主機(jī)可以是一臺也可以是多臺)可以在網(wǎng)內(nèi),也可以在網(wǎng)外。網(wǎng)內(nèi)和網(wǎng)外是一個(gè)相對而言的概念,把與IDS同在一個(gè)局域網(wǎng)中的設(shè)備和節(jié)點(diǎn)看作網(wǎng)內(nèi),其他情況稱為網(wǎng)外。發(fā)起攻擊測試的主機(jī)如果是在網(wǎng)內(nèi),那么它們應(yīng)該與所要測試的IDS在同一個(gè)局域網(wǎng)內(nèi),如果這臺主機(jī)是在網(wǎng)外,那么它的位置跨度可以很大,它們可以是因特網(wǎng)上的任何機(jī)器。
另外,還有一種完全用軟件來模擬的方法。這種方法類似于虛擬機(jī)技術(shù)(如Vmware)和網(wǎng)絡(luò)仿真技術(shù)(如OPNET,ns2)的結(jié)合。用一臺單主機(jī)模擬出一個(gè)完備的網(wǎng)絡(luò)環(huán)境,在此虛擬網(wǎng)絡(luò)環(huán)境中部署IDS,然后再配合測試軟件就可以進(jìn)行IDS的測試。這種方法有一定的可行性,因?yàn)樗沫h(huán)境單一性使得測試人員能夠方便地測試一些輕量級的IDS或者測試IDS某個(gè)特定的功能方面。但是這種測試環(huán)境下測試效果的好壞還有待于進(jìn)一步的研究和試驗(yàn)證明。
現(xiàn)實(shí)環(huán)境的優(yōu)點(diǎn)是不需要專門建立,實(shí)時(shí)性高,對特定類型的IDS測試時(shí)其測試結(jié)果的可信度高;但是也有很多缺點(diǎn),最主要就是可控性不高,所能測試的IDS范圍比較窄,種類比較少。純軟件環(huán)境因其本身的運(yùn)行,十分消耗資源,因此難以勝任較大規(guī)模的IDS測試工作。
2.2 模擬網(wǎng)絡(luò)環(huán)境
本文選擇模擬網(wǎng)絡(luò)環(huán)境來進(jìn)行測試環(huán)境的設(shè)計(jì),模擬測試環(huán)境大多數(shù)可以由實(shí)際的開發(fā)環(huán)境經(jīng)過簡單的改動而得到。它與前兩種測試環(huán)境相比,優(yōu)勢在于:可控性好,能夠根據(jù)測試需要定制和更改環(huán)境,可以測試的攻擊范圍大,種類多等。另外,在設(shè)計(jì)合理的情況下,其測試效果并不亞于真實(shí)的網(wǎng)絡(luò)環(huán)境。從實(shí)現(xiàn)的角度考慮,這種模擬測試環(huán)境也能夠滿足絕大多數(shù)IDS測試的需要?;舅悸肥歉鶕?jù)測試的要求,用一個(gè)簡單的局域網(wǎng)來模擬規(guī)模較大的城域網(wǎng)和因特網(wǎng)。使用模擬網(wǎng)絡(luò)環(huán)境進(jìn)行IDS測試時(shí)需要開發(fā)與之相配套的軟件平臺。樟捌網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
此網(wǎng)絡(luò)可以模擬規(guī)模較大的、實(shí)際的網(wǎng)絡(luò)結(jié)構(gòu)和設(shè)備,也可以模擬實(shí)際網(wǎng)絡(luò)中多種多樣的網(wǎng)絡(luò)服務(wù)。具體方法是利用專門產(chǎn)生網(wǎng)絡(luò)流量的計(jì)算機(jī)來產(chǎn)生所需要的網(wǎng)絡(luò)流量,然后使用軟件把這些流量動態(tài)地分派給網(wǎng)絡(luò)中的節(jié)點(diǎn)。一般需要兩種產(chǎn)生流量的機(jī)器:外部流量產(chǎn)生器,產(chǎn)生模擬網(wǎng)絡(luò)和因特網(wǎng)之間的會話和流量;內(nèi)部流量產(chǎn)生機(jī)器,產(chǎn)生網(wǎng)絡(luò)內(nèi)部需要的會話和流量。這兩種流量產(chǎn)生器能夠產(chǎn)生比實(shí)際網(wǎng)絡(luò)上更為豐富的會話和流量,因?yàn)樗鼈兛梢赃M(jìn)行人為的控制。流量的產(chǎn)生要考慮測試所需流量的大小以及網(wǎng)絡(luò)規(guī)模的大?。涣硗膺€需要對多種網(wǎng)絡(luò)服務(wù)和網(wǎng)絡(luò)協(xié)議進(jìn)行模擬,以及模擬一些分布式的流量,所以這樣的流量產(chǎn)生器有時(shí)要占用好幾臺性能優(yōu)越的計(jì)算機(jī)。
邊界路由器介于流量產(chǎn)生器和網(wǎng)絡(luò)環(huán)境之間,它起到劃分內(nèi)部流量和外部流量的作用。邊界路由器還有向網(wǎng)內(nèi)的其他路由器和設(shè)備分配流量的作用。其他的如防火墻和主機(jī)等設(shè)備與它們在實(shí)際網(wǎng)絡(luò)中的作用和位置相同。這樣的模擬環(huán)境基本上反映了真實(shí)網(wǎng)絡(luò)的情況,進(jìn)行合理的配置完全可以模擬真實(shí)網(wǎng)絡(luò)環(huán)境的技術(shù)參數(shù)、流量要求等指標(biāo),而且整個(gè)模擬環(huán)境可以與外界完全隔離開來獨(dú)立使用。
3 IDS測試平臺
有了測試環(huán)境還不能完成IDS的測試工作,還需要針對測試環(huán)境利用軟件搭建一個(gè)測試平臺?;谏厦娴哪M網(wǎng)絡(luò)的測試環(huán)境,建立軟件測試平臺,其流程如圖3所示。
MIT在入侵檢測系統(tǒng)測試評估上發(fā)展了一種系統(tǒng)和通用的評估方法。全部工作流程包括數(shù)據(jù)集的構(gòu)造、測試過程、測試結(jié)果分析,提供改進(jìn)算法的意見。這里提出的平臺既考慮了通用性,也考慮了實(shí)際IDS開發(fā)環(huán)境的因素,它能夠完成上述流程的全部工作,其中的關(guān)鍵部分有流量仿真、攻擊仿真、事件合成等。
3.1 流量仿真
評估所需的網(wǎng)絡(luò)流量仿真是一項(xiàng)很復(fù)雜的工作。常規(guī)用于研究網(wǎng)絡(luò)性能的流量仿真方法所產(chǎn)生的數(shù)據(jù)包,不考慮數(shù)據(jù)內(nèi)容,極有可能引起IDS的大量誤報(bào)。一般的IDS都工作于網(wǎng)絡(luò)層或網(wǎng)絡(luò)層之上,它們在協(xié)議規(guī)定的框架內(nèi)對網(wǎng)絡(luò)數(shù)據(jù)包的內(nèi)容進(jìn)行分析。因此,IDS評估環(huán)境中的網(wǎng)絡(luò)流量仿真,一定是具體到各個(gè)協(xié)議的流量仿真。流量仿真的子系統(tǒng)結(jié)構(gòu)如圖4所示。
由于流量的產(chǎn)生不僅來自網(wǎng)絡(luò)外部,還有來自網(wǎng)絡(luò)內(nèi)部其他主機(jī)的流量,這樣就需要生成兩種類型的網(wǎng)絡(luò)流量:外部網(wǎng)絡(luò)流量和內(nèi)部網(wǎng)絡(luò)流量。對應(yīng)上一節(jié)中的測試環(huán)境,這兩種網(wǎng)絡(luò)流量是由測試環(huán)境中的外部流量產(chǎn)生器和內(nèi)部流量產(chǎn)生器分別產(chǎn)生的。這兩種類型的流量中又根據(jù)測試需要包含有正常的網(wǎng)絡(luò)會話流量和非正常的(有時(shí)是攻擊性的)網(wǎng)絡(luò)會話流量。
3.2 攻擊仿真
攻擊仿真是整個(gè)測試過程的關(guān)鍵,也是測試結(jié)果是否合理的關(guān)鍵。攻擊仿真的前期準(zhǔn)備工作是收集足夠多的攻擊數(shù)據(jù),實(shí)際上是收集現(xiàn)有所有已知的攻擊和系統(tǒng)的弱點(diǎn)數(shù)據(jù)。這些數(shù)據(jù)主要來自一些研究機(jī)構(gòu),像MIT的林肯實(shí)驗(yàn)室、IBM的蘇黎世研究院和一些網(wǎng)絡(luò)界有名的討論組(社區(qū)),如The NSS Group等,其中MIT林肯實(shí)驗(yàn)室的數(shù)據(jù)就其可用性、全面性和權(quán)威性都得到了廣泛的認(rèn)可。
測試用例的選擇應(yīng)該盡可能的全面,但是不可能把每一種現(xiàn)有的攻擊都試驗(yàn)一遍,因此要把所有的攻擊按照某種標(biāo)準(zhǔn)進(jìn)行劃分,在所劃分的每個(gè)子集里挑選若干個(gè)典型的攻擊來完成測試。實(shí)施具體的攻擊,可以利用軟件直接來實(shí)現(xiàn),也可以用編寫腳本的方法來實(shí)現(xiàn),利用shell編程和腳本語言編寫攻擊腳本來模擬入侵用戶的行為,實(shí)現(xiàn)攻擊的重放。
使用腳本和腳本解釋器的方法來模擬用戶的行為,對編寫好的腳本進(jìn)行解析,執(zhí)行再利用網(wǎng)絡(luò)連接命令連接到遠(yuǎn)端主機(jī),就能夠?qū)崿F(xiàn)多種多樣的攻擊重放。如果編寫并輸人多個(gè)不同的腳本,用并行算法加以控制就能夠模擬多個(gè)并發(fā)用戶的行為,實(shí)現(xiàn)多用戶并發(fā)攻擊的模擬。攻擊腳本的編寫要事先制定統(tǒng)一的編寫規(guī)范和格式。
3.3 事件合成
事件合成也是很重要的環(huán)節(jié),它是對網(wǎng)絡(luò)流量、模擬攻擊和測試對比的綜合考慮。一個(gè)仿真事件要包括事件的發(fā)生時(shí)間、結(jié)束時(shí)間和事件的內(nèi)容等其他一些必要的相關(guān)信息。網(wǎng)絡(luò)流量仿真中的事件可以是每一個(gè)網(wǎng)絡(luò)連接,基于連接的流量如TCP,也可以是一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,基于數(shù)據(jù)包的流量如UDP。主機(jī)使用仿真中的事件可以是網(wǎng)絡(luò)服務(wù)的每次使用,也可以是一條用戶指令的執(zhí)行。合成好的原始事件一方面給測試模塊做測試之用,一方面用日志記錄下來以備離線考察。將測試結(jié)果和原始事件進(jìn)行有效的對比就可以得出大部分的測試結(jié)果。
3.4 其他模塊
正常流量數(shù)據(jù)庫存放準(zhǔn)備好的網(wǎng)絡(luò)流量數(shù)據(jù),為流量仿真模塊的調(diào)用做事先的準(zhǔn)備;攻擊數(shù)據(jù)庫存放收集到的攻擊數(shù)據(jù),攻擊仿真模塊從攻擊數(shù)據(jù)庫取得數(shù)據(jù)處理后形成攻擊。事件日志記錄合成事件的日志和事件原始數(shù)據(jù),這些數(shù)據(jù)用于對測試結(jié)果的補(bǔ)充和一些離線的測試。運(yùn)行日志專門記錄IDS運(yùn)行產(chǎn)生的一系列事件及其對入侵行為的反應(yīng)。測試結(jié)果模塊最終向用戶提交一份指定格式的測試報(bào)告,記錄測試結(jié)果,還可以進(jìn)一步給出對IDS改進(jìn)的意見等。
3.5 測試過程
整個(gè)平臺的工作過程如下:流量數(shù)據(jù)庫提供網(wǎng)絡(luò)會話流量由流量產(chǎn)生模塊處理后生成所需的網(wǎng)絡(luò)流量,攻擊數(shù)據(jù)庫提供原始的攻擊素材,由攻擊仿真模塊加工后形成攻擊數(shù)據(jù)流;兩者經(jīng)過事件合成模塊合成為攻擊事件;攻擊事件一方面對待檢測的IDS發(fā)起攻擊,另一方面送給測試模塊作對比之用;測試模塊根據(jù)測試算法通過和待測IDS的雙向交互,評估IDS的各種行為和對入侵事件的反應(yīng);事件日志對攻擊事件進(jìn)行記錄,運(yùn)行日志對IDS的運(yùn)行情況進(jìn)行記錄;最后由測試結(jié)果模塊報(bào)告測試的結(jié)果。
3.6 測試結(jié)果
測試環(huán)境也可以用于IDS的開發(fā)環(huán)境,只需要進(jìn)行簡單的調(diào)整。IDS開發(fā)過程中的一些性能測試、算法測試和攻擊特征優(yōu)化測試等都能夠在這個(gè)環(huán)境中完成。本研究的初衷就是能夠使開發(fā)環(huán)境和測試環(huán)境相統(tǒng)一。利用這個(gè)環(huán)境對開發(fā)的基于多代理的入侵檢測系統(tǒng)進(jìn)行了相應(yīng)的測試,其結(jié)果如下:此IDS運(yùn)行時(shí),CPU占用率為0%~5%,內(nèi)存開銷為7 492+6 648 KB;用tcpreplay產(chǎn)生TCPDUMP格式的文件,進(jìn)行9 Mb/s的流量重放時(shí),IDS處理到的流量為5.46 Kb/s;對于攻擊測試,主要測試了Dosnuke,SYN FL00D攻擊以及掃描攻擊等,其檢測率和誤報(bào)次數(shù)的ROC曲線如圖5所示??梢钥闯?,該IDS在誤報(bào)比較少的情況下能夠達(dá)到比較好的檢測率。
4 結(jié) 語
網(wǎng)絡(luò)的發(fā)展和新網(wǎng)絡(luò)入侵方式的出現(xiàn),促使了入侵檢測系統(tǒng)的不斷發(fā)展和完善,入侵檢測系統(tǒng)的測試技術(shù)也隨之不斷發(fā)展。實(shí)際而言,入侵檢測系統(tǒng)的測試不但存在很多的困難,而且也非常的耗時(shí)耗力,例如MIT有名的1998年和1999年測試都分別耗時(shí)一年時(shí)間。但是對于入侵檢測系統(tǒng)的測試又是一個(gè)不得不解決的事情。當(dāng)然,IDS的測試本身還存在一些難題需要解決,如攻擊腳本和受害軟件難于收集,對基于異常的系統(tǒng)還缺乏有效的方法進(jìn)行測試等。這些都有待于更進(jìn)一步的深入研究。