專利名稱:具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)及其報警優(yōu)化方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)入侵檢測系統(tǒng),特別涉及一種具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng),也涉及到該網(wǎng)絡(luò)入侵檢測系統(tǒng)所采用的報警優(yōu)化方法,屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域。
背景技術(shù):
隨著互聯(lián)網(wǎng)使用日益普及,人們開始越來越重視網(wǎng)絡(luò)安全問題。作為應(yīng)對網(wǎng)絡(luò)入侵的有效手段,入侵檢測系統(tǒng)(Intrusion DetectionSystem,簡稱IDS系統(tǒng))在網(wǎng)絡(luò)安全防護(hù)體系中發(fā)揮著重要的作用。
現(xiàn)有的入侵檢測系統(tǒng)主要包括基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)(Network-based IDS,簡稱NIDS)和基于主機(jī)的入侵檢測系統(tǒng)(Host-based IDS,簡稱HIDS),其中NIDS根據(jù)被監(jiān)控網(wǎng)絡(luò)中的數(shù)據(jù)包內(nèi)容檢測入侵,HIDS則對系統(tǒng)審計日志和操作系統(tǒng)進(jìn)程等主機(jī)系統(tǒng)中的信息進(jìn)行分析來檢測入侵。從檢測技術(shù)來看,入侵檢測系統(tǒng)主要有異常檢測和誤用檢測兩類,其中異常檢測通過識別任何違反正常情況的行為檢測入侵,它可以檢測未知的攻擊,但容易產(chǎn)生高誤報率;而誤用檢測明確定義攻擊的特征,通過將檢測數(shù)據(jù)與攻擊特征匹配來檢測入侵,有較高的準(zhǔn)確率,但只能檢測規(guī)則定義的已知攻擊。
現(xiàn)有的入侵檢測系統(tǒng)雖然在網(wǎng)絡(luò)安全防護(hù)中發(fā)揮了重要作用,但仍存在一些較嚴(yán)重的技術(shù)問題,影響了入侵檢測系統(tǒng)的實際使用效果,其中報警不準(zhǔn)確(如誤報、漏報)和報警方式不妥當(dāng)(如濫報)的問題尤為突出。另外,近年來出現(xiàn)了許多逃避檢測的攻擊技術(shù)和專門針對IDS進(jìn)行DOS攻擊的軟件工具如Stick、Snot等,使上述問題顯得尤為突出。因此,如何減少誤報、漏報和濫報,提高IDS工作的有效性(effectiveness)就成為當(dāng)前入侵檢測領(lǐng)域的核心研究課題之一。
在現(xiàn)有的研究工作中,已經(jīng)提出了許多檢測技術(shù)和方法來提高IDS的有效性,準(zhǔn)確地檢測入侵,主要的有以下幾類(1)利用對網(wǎng)絡(luò)協(xié)議數(shù)據(jù)的特殊處理技術(shù)避免檢測的差錯,如在Snort系統(tǒng)中采用了IP碎片重組、TCP會話重構(gòu)等技術(shù)以檢測包含在多個連續(xù)碎片或報文中的攻擊,RealSecure系統(tǒng)集成了BlackICE的協(xié)議分析技術(shù),通過進(jìn)一步分析應(yīng)用協(xié)議的語義信息可以避免許多由于模式匹配技術(shù)的缺陷導(dǎo)致的誤報和漏報;(2)加強(qiáng)對入侵的描述能力以提高檢測的準(zhǔn)確率,典型的如NFR的N-Code規(guī)則描述語言,N-Code語言提供了變量、運算符、語句、函數(shù)、異常處理等豐富的語言特性,可以更加精確的描述入侵的特征及處理方式,通過這種功能特性,避免由于對入侵描述不準(zhǔn)確造成的檢測錯誤;(3)利用特殊的檢測算法進(jìn)行檢測,如UC Davis研制的GrIDS系統(tǒng)通過構(gòu)建網(wǎng)絡(luò)活動圖完成大型網(wǎng)絡(luò)環(huán)境下的入侵檢測功能;在SRI的EMEARLD系統(tǒng)中,將基于攻擊知識庫的專家系統(tǒng)和基于概率統(tǒng)計的異常檢測算法相結(jié)合;Minnesota大學(xué)的MINDS項目中將基于數(shù)據(jù)挖掘的異常檢測同特征檢測進(jìn)行結(jié)合;中國發(fā)明專利申請03137094.2所揭示的在事件分析模塊中增設(shè)由相關(guān)特征分析器、數(shù)據(jù)重組器和大類輪廓分析器構(gòu)成的對初始化數(shù)據(jù)流進(jìn)行相關(guān)特征分析、提取和重組的構(gòu)件來替代原來的攻擊輪廓分析器,從而構(gòu)成一種新的層次入侵檢測系統(tǒng)等。還有的研究項目中采用神經(jīng)網(wǎng)絡(luò)、免疫算法等技術(shù)進(jìn)行異常檢測算法的研究。這些工作雖然具備能夠檢測未知入侵的優(yōu)點,但仍然存在誤報率較高等缺陷。
本專利發(fā)明人深入分析了現(xiàn)有IDS系統(tǒng)的特征,發(fā)現(xiàn)它們基本上都屬于單級決策內(nèi)核結(jié)構(gòu),即入侵分析結(jié)果只經(jīng)過一個決策內(nèi)核進(jìn)行處理。不同的IDS系統(tǒng)雖然形式上存在差別,但都有一個邏輯上明確界定的決策內(nèi)核,它通過特定的檢測算法對源數(shù)據(jù)進(jìn)行分析并決定是否進(jìn)行入侵報警,報警的準(zhǔn)確程度完全取決于決策內(nèi)核中分析算法的邏輯能力,雖然研究人員已經(jīng)采取了各種技術(shù)措施來提高分析算法的準(zhǔn)確性,但其報警準(zhǔn)確率不高仍然是一個嚴(yán)重的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種新型的網(wǎng)絡(luò)入侵檢測系統(tǒng),它具有二級決策內(nèi)核,各級決策內(nèi)核采用不同的分析算法,從而有效避免了現(xiàn)有單一分析算法的缺陷,減少了誤報和濫報現(xiàn)象,改善了檢測效果。
本發(fā)明的另外一個目的在于提供一種該網(wǎng)絡(luò)入侵檢測系統(tǒng)所采用的報警優(yōu)化方法。
為實現(xiàn)上述的發(fā)明目的,本發(fā)明采用下述的技術(shù)方案一種網(wǎng)絡(luò)入侵檢測系統(tǒng),包括數(shù)據(jù)源、報警數(shù)據(jù)庫和管理控制臺,其特征在于
所述網(wǎng)絡(luò)入侵檢測系統(tǒng)具有兩級決策內(nèi)核,所述兩級決策內(nèi)核所采用的決策算法不相同。
所述兩級決策內(nèi)核中,其中第一級決策內(nèi)核與所述數(shù)據(jù)源相連接,其結(jié)果輸送給第二級決策內(nèi)核,所述第二級決策內(nèi)核與所述報警數(shù)據(jù)庫相連接。
所述第一級和第二級決策內(nèi)核分別分布在不同的主機(jī)上,彼此之間通過報警代理進(jìn)行通信。
所述第一級決策內(nèi)核的報警代理用單獨的進(jìn)程實現(xiàn),該進(jìn)程與該決策內(nèi)核所在的網(wǎng)絡(luò)入侵檢測進(jìn)程之間利用共享內(nèi)存的方式進(jìn)行傳遞報警信息的通信。
所述兩級決策內(nèi)核分為通信模塊、主控模塊、決策模塊和輸出模塊,所述決策模塊分為過濾器、分析器、關(guān)聯(lián)器和知識庫;所述檢測系統(tǒng)還具有檢測引擎和漏洞掃描器,所述檢測引擎連接所述通信模塊,所述通信模塊經(jīng)過所述過濾器和分析器將數(shù)據(jù)傳送給所述關(guān)聯(lián)器,所述漏洞掃描器通過所述知識庫也將數(shù)據(jù)傳送給所述關(guān)聯(lián)器,所述關(guān)聯(lián)器將優(yōu)化后的報警數(shù)據(jù)傳送給所述輸出模塊,所述輸出模塊將數(shù)據(jù)傳送給所述管理控制臺和報警數(shù)據(jù)庫。
如上所述的網(wǎng)絡(luò)入侵檢測系統(tǒng)所采用的報警優(yōu)化方法,其特征在于包括如下步驟a)通過一種基于報警緩沖池的報警過濾算法對原始報警數(shù)據(jù)進(jìn)行過濾,過濾掉重復(fù)報警和濫報警數(shù)據(jù);b)對過濾后的報警數(shù)據(jù)利用關(guān)聯(lián)技術(shù)與網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行關(guān)聯(lián)、分析,以此剔除由于入侵上下文不符而導(dǎo)致的誤報警數(shù)據(jù),并利用漏洞掃描技術(shù)對網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行及時維護(hù)和更新。
其中,所述步驟a)包括如下子步驟(1)開始;(2)獲得互斥鎖;(3)是否處于特殊處理狀態(tài)?(4)如果是,進(jìn)入大量報警的特殊處理狀態(tài),釋放互斥鎖并結(jié)束;如果否,則將報警信息與報警池中信息進(jìn)行匹配,轉(zhuǎn)入步驟(5);(5)是否有重復(fù)報警?(6)如果是,進(jìn)行重復(fù)報警處理,轉(zhuǎn)入步驟(7);如果否,直接進(jìn)入步驟(7);(7)將報警數(shù)據(jù)寫入報警池;(8)是否有大量報警?(9)如果是,向控制臺發(fā)出報告,重置超時定時器,轉(zhuǎn)入步驟(10);如果否,直接進(jìn)入步驟(11);(10)進(jìn)入大量報警的特殊處理狀態(tài);(11)釋放互斥鎖;(12)結(jié)束。
所述步驟b)還包括如下子步驟(1)根據(jù)報警信息查找入侵規(guī)則庫,找出報警對應(yīng)的通用漏洞披露值;(2)根據(jù)通用漏洞披露值查找漏洞掃描插件庫,找出對應(yīng)的掃描器插件標(biāo)識;(3)查找網(wǎng)絡(luò)系統(tǒng)知識庫,匹配關(guān)聯(lián)掃描器插件標(biāo)識;(4)是否匹配且未過期?(5)如果匹配成功且沒有知識庫沒有過期,則關(guān)聯(lián)成功,輸出報警并結(jié)束;如果匹配成功但知識庫過期,或者匹配不成功,則轉(zhuǎn)入步驟(6);(6)用關(guān)聯(lián)掃描器插件標(biāo)識向目標(biāo)機(jī)發(fā)起掃描;(7)用掃描器掃描結(jié)果更新知識庫;(8)轉(zhuǎn)入步驟(3),重新對掃描插件標(biāo)識進(jìn)行匹配,如匹配成功則關(guān)聯(lián)成功,否則關(guān)聯(lián)失敗。
所述步驟b)中,所述知識庫的更新過程包括如下步驟(1)定義一個知識過期時間間隔值;(2)系統(tǒng)啟動時先清空知識庫,然后啟動對知識庫中已有的目標(biāo)機(jī)進(jìn)行一次漏洞掃描,同時用掃描的結(jié)果初始化知識庫;(3)每次關(guān)聯(lián)時如果在知識庫中找不到匹配項或者能匹配成功但是信息時間戳超過時間間隔值,則再發(fā)起掃描,用掃描結(jié)果更新知識庫。
本發(fā)明所述的基于二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)及其采用的報警優(yōu)化方法具有如下的優(yōu)點●可以同時在兩級決策內(nèi)核中采取改進(jìn)檢測效果的措施,結(jié)構(gòu)更加靈活,易于擴(kuò)展;●可以針對第一級決策內(nèi)核分析算法存在的問題對二級內(nèi)核的過濾分析算法進(jìn)行設(shè)計,有針對性的改善檢測和報警效果;●在分布式入侵檢測的應(yīng)用場景下,二級內(nèi)核可以對多個檢測引擎的分析結(jié)果進(jìn)行全局性的分析,可以利用網(wǎng)絡(luò)拓?fù)?、?yīng)用部署信息等單個檢測引擎所未知的知識進(jìn)行報警信息的再分析、過濾,改善報警效果;●由于有了報警代理這樣的專門處理報警信息的邏輯實體,使得對報警信息進(jìn)行格式轉(zhuǎn)化、加解密等處理非常易于實現(xiàn),并且系統(tǒng)體系結(jié)構(gòu)更加清晰。
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步的說明。
圖1為現(xiàn)有入侵檢測系統(tǒng)的結(jié)構(gòu)示意圖。
圖2為本發(fā)明所述的具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)的結(jié)構(gòu)圖。
圖3為基于上述二級決策內(nèi)核的基本原理研制出的網(wǎng)絡(luò)入侵檢測系統(tǒng)的體系結(jié)構(gòu)圖。
圖4為分布式二級決策內(nèi)核的結(jié)構(gòu)圖。
圖5為在分布式檢測環(huán)境下的分布式二級決策內(nèi)核結(jié)構(gòu)的部署方式的一個實施例。
圖6為報警緩沖池的示意圖。
圖7為報警過濾算法的實現(xiàn)流程圖。
圖8為知識庫的邏輯結(jié)構(gòu)圖。
圖9為報警關(guān)聯(lián)和知識庫更新的機(jī)制示意圖。
圖10為報警關(guān)聯(lián)和知識庫更新過程的流程圖。
具體實施例方式
如圖1所示,任何一個入侵檢測系統(tǒng)至少應(yīng)該具有數(shù)據(jù)源、決策內(nèi)核、報警數(shù)據(jù)庫和管理控制臺。無論入侵檢測系統(tǒng)所執(zhí)行的分析算法為何,它執(zhí)行入侵檢測功能的流程都是采集數(shù)據(jù)源、決策內(nèi)核進(jìn)行分析、報警輸出和響應(yīng)。因此,上述的結(jié)構(gòu)圖對現(xiàn)有的入侵檢測系統(tǒng)都是普遍適用的。
圖2為本發(fā)明所述的具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)的結(jié)構(gòu)圖。它在圖1所示系統(tǒng)的基礎(chǔ)上引入第二級決策內(nèi)核,即該系統(tǒng)具有兩個決策內(nèi)核,依次分為A與B兩個部分,其中A完成傳統(tǒng)的檢測功能,B中對A產(chǎn)生的報警信息從不同的角度進(jìn)行進(jìn)一步分析和過濾,以提高網(wǎng)絡(luò)入侵檢測系統(tǒng)檢測入侵的準(zhǔn)確率,我們稱這種系統(tǒng)結(jié)構(gòu)為二級決策內(nèi)核結(jié)構(gòu)。
本發(fā)明所述的網(wǎng)絡(luò)入侵檢測系統(tǒng)不是單純地在系統(tǒng)中增加一個決策內(nèi)核。為了真正起到提高檢測準(zhǔn)確率的作用,在本發(fā)明所述的系統(tǒng)中,決策內(nèi)核B中的決策分析邏輯應(yīng)從與內(nèi)核A中不同的角度進(jìn)行。
即,一方面,它應(yīng)從更高級、更綜合的角度對報警信息進(jìn)行分析決策。在大多數(shù)誤用檢測IDS系統(tǒng)中,內(nèi)核A的決策算法通常是根據(jù)入侵規(guī)則庫中的攻擊特征信息,利用模式匹配技術(shù)或者協(xié)議分析技術(shù)進(jìn)行檢測分析,如果發(fā)現(xiàn)符合攻擊特征的數(shù)據(jù)就進(jìn)行報警。在決策內(nèi)核B中,分析算法就沒有必要再根據(jù)入侵規(guī)則進(jìn)行重復(fù)匹配,而應(yīng)從報警信息的頻率、重復(fù)性、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和應(yīng)用部署信息等方面進(jìn)行總體性的分析、綜合,過濾掉錯誤的報警信息或者合并冗余報警信息,提高報警的準(zhǔn)確率,并減少過多的濫報,為系統(tǒng)管理員提供綜合、更有價值的信息而不是散亂的、各自獨立的報警事件。
另一方面,在二級決策內(nèi)核中,還可以利用其它的安全技術(shù)獲得相關(guān)信息進(jìn)行輔助決策。比如可以根據(jù)一級內(nèi)核產(chǎn)生的報警所關(guān)聯(lián)的安全漏洞信息,實時的調(diào)用漏洞掃描系統(tǒng)對攻擊目標(biāo)系統(tǒng)的漏洞情況進(jìn)行驗證,檢查目標(biāo)主機(jī)對該攻擊是否敏感,通過這種方式可以消除許多對發(fā)生在錯誤上下文(context)中的入侵的誤報警;同時,還可以即時獲取相關(guān)的系統(tǒng)日志、防火墻日志等信息以輔助進(jìn)行更準(zhǔn)確的決策。
圖3所示為本專利發(fā)明人基于上述二級決策內(nèi)核的基本原理研制出的網(wǎng)絡(luò)入侵檢測系統(tǒng)的體系結(jié)構(gòu)圖。如圖3所示,其中空心箭頭表示數(shù)據(jù)的流向,黑色細(xì)箭頭表示控制操作,黑色粗箭頭特指優(yōu)化后的報警數(shù)據(jù)流向。檢測引擎、管理控制臺和報警數(shù)據(jù)庫是通用的入侵檢測系統(tǒng)所共有的。二級決策內(nèi)核和漏洞掃描器是為報警優(yōu)化而新增的,二級決策內(nèi)核系統(tǒng)從邏輯上被分成了通信模塊、主控模塊、決策模塊和輸出模塊四個部分。其中通信模塊負(fù)責(zé)與檢測引擎進(jìn)行通信,接收原始報警數(shù)據(jù);決策模塊負(fù)責(zé)對原始報警數(shù)據(jù)進(jìn)行過濾、關(guān)聯(lián)等優(yōu)化處理;主控模塊負(fù)責(zé)二級決策內(nèi)核的啟動、配置和管理;輸出模塊負(fù)責(zé)最終報警數(shù)據(jù)的輸出。漏洞掃描器通過收集目標(biāo)主機(jī)的漏洞信息對知識庫進(jìn)行創(chuàng)建、維護(hù)及更新,為報警的關(guān)聯(lián)提供依據(jù)。上述系統(tǒng)即實現(xiàn)了上面提出的二級決策內(nèi)核結(jié)構(gòu),并結(jié)合二級決策內(nèi)核進(jìn)行了報警優(yōu)化技術(shù)的實現(xiàn)。
必須指出,雖然二級決策內(nèi)核系統(tǒng)結(jié)構(gòu)為改善報警效果帶來了很大的靈活性,但由于第二級決策內(nèi)核的引入會導(dǎo)致處理量的增加,可能會影響系統(tǒng)整體的運行效率。為了克服這個缺點,如圖4所示,我們進(jìn)一步給出下面的分布式二級決策內(nèi)核結(jié)構(gòu)。
該結(jié)構(gòu)在圖2的結(jié)構(gòu)基礎(chǔ)上,增加了兩個報警代理部件,同時將兩個虛框內(nèi)的部分分布在不同的機(jī)器上部署,將決策內(nèi)核B的處理工作由另一臺主機(jī)承擔(dān),從而消除二級決策內(nèi)核給系統(tǒng)帶來的性能損耗;同時為了避免決策內(nèi)核A在報警時等待網(wǎng)絡(luò)通訊的時延,可以將左邊虛框內(nèi)的負(fù)責(zé)網(wǎng)絡(luò)通訊的報警代理用單獨的進(jìn)程實現(xiàn),該進(jìn)程與決策內(nèi)核A所在的網(wǎng)絡(luò)入侵檢測進(jìn)程之間可以利用共享內(nèi)存方式進(jìn)行傳遞報警信息的通信,以提高運行效率。由于決策內(nèi)核B只對內(nèi)核A產(chǎn)生的比源數(shù)據(jù)量要少的多的報警信息進(jìn)行處理,因此不存在性能上的問題。象圖4中所示的這種,兩級決策內(nèi)核分布在不同主機(jī)上、利用報警代理通過網(wǎng)絡(luò)完成兩級內(nèi)核間通訊的結(jié)構(gòu),我們稱為分布式二級決策內(nèi)核結(jié)構(gòu)。
進(jìn)一步的,上述結(jié)構(gòu)可以很容易地進(jìn)行擴(kuò)展,以適應(yīng)大規(guī)模分布式網(wǎng)絡(luò)入侵檢測環(huán)境中的應(yīng)用,圖5即為在分布式檢測環(huán)境下的分布式二級決策內(nèi)核結(jié)構(gòu)的部署方式的一個實施例。在該實施例中,分布在多個檢測引擎中的決策內(nèi)核通過各自的報警代理實現(xiàn)連接,并同時連接一個二級決策內(nèi)核。由該內(nèi)核對多個檢測引擎經(jīng)過一級決策后的報警數(shù)據(jù)進(jìn)行綜合分析和關(guān)聯(lián),從而能夠在減少錯誤報警的同時,更利于發(fā)現(xiàn)網(wǎng)絡(luò)整體范圍內(nèi)發(fā)起的、單個檢測引擎無法發(fā)現(xiàn)的入侵。
本發(fā)明不僅提供了上述基于二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng),還提供了該系統(tǒng)所采用的特有的報警優(yōu)化方法。下面對此將進(jìn)行詳細(xì)說明。
在開發(fā)本系統(tǒng)的過程中,我們發(fā)現(xiàn)采用現(xiàn)有入侵檢測系統(tǒng)所采用的特征檢測技術(shù)存在兩種典型的產(chǎn)生誤報或濫報的情況,分別說明如下當(dāng)利用象Stick、Snot這樣的專門針對NIDS的攻擊工具向IDS監(jiān)控的網(wǎng)絡(luò)發(fā)送具有不同攻擊特征的報文時,IDS系統(tǒng)會在很短的時間內(nèi)產(chǎn)生大量的報警(這些報警信息往往是不同的,并不重復(fù)),導(dǎo)致報警擁塞甚至系統(tǒng)停止運行。這種情況下,雖然數(shù)據(jù)包是具有攻擊特征的,但它所代表的攻擊場景并沒有真正發(fā)生,因此不會對網(wǎng)絡(luò)造成實際攻擊效果,而入侵檢測系統(tǒng)卻無法判斷這點,認(rèn)為這些攻擊已經(jīng)真正發(fā)生了,因而屬于誤報警的情況。我們將這種情況稱為局部泛洪報警。
在發(fā)生網(wǎng)絡(luò)掃描或者某些方式的DOS攻擊(如Ping flood、smurf等)時,會重復(fù)性的出現(xiàn)大量具有相同入侵特征的數(shù)據(jù)報文,由于入侵檢測系統(tǒng)對這些情況只能通過監(jiān)視數(shù)據(jù)報文的簡單特征進(jìn)行判斷,此時會在短時間內(nèi)產(chǎn)生大量的重復(fù)性報警信息,將其它的報警淹沒,使管理員無法做出客觀的判斷和分析,嚴(yán)重降低了系統(tǒng)的實用性。這種情況下雖然報警信息是正確的,不是誤報,但短時間內(nèi)大量的重復(fù)性報警會嚴(yán)重影響系統(tǒng)的實用性能,屬于濫報的情況。我們稱這種情況為局部重復(fù)報警。
為了解決上述特征檢測技術(shù)所存在的問題,本發(fā)明提出了一種適合于本具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)的報警優(yōu)化方法。該方法包含兩個步驟,第一步是通過一種基于報警緩沖池的報警過濾算法對原始報警數(shù)據(jù)進(jìn)行過濾,過濾掉重復(fù)報警和濫報警數(shù)據(jù);第二步是對過濾后的報警數(shù)據(jù)利用關(guān)聯(lián)技術(shù)與網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行關(guān)聯(lián)、分析,以此剔除由于入侵上下文不符而導(dǎo)致的誤報警數(shù)據(jù),并利用漏洞掃描技術(shù)對網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行及時維護(hù)和更新,以保證關(guān)聯(lián)效果。
下面對這兩個步驟的實現(xiàn)過程分別加以說明。
如圖6所示,為了識別局部泛洪報警和局部重復(fù)報警的現(xiàn)象并進(jìn)行相應(yīng)的過濾處理,我們設(shè)計了一個報警緩沖池AlertPool,在緩沖池中完成所有的過濾操作,過濾之后的報警信息才真正進(jìn)行報警。在圖中,緩沖池中的每一個節(jié)點表示與一次報警相關(guān)的信息,為提高操作效率,以報警信息的源地址作為依據(jù)將節(jié)點組織為不同的報警信息隊列,即任意一個隊列中的所有節(jié)點代表的報警都來自同一個源主機(jī)。其中AlertNode節(jié)點中包含報警消息和引起報警的攻擊數(shù)據(jù)包的詳細(xì)信息,AlertQueue結(jié)構(gòu)包含隊列的整體性信息,如隊列長度、最后更新時間等。
在上述方法中,對報警緩沖池的主要處理可以抽象為兩類一類是按照一定的規(guī)則向緩沖池中添加新的節(jié)點,另外一類是對節(jié)點進(jìn)行相應(yīng)的過濾后從池中清除節(jié)點。在實現(xiàn)過程中,我們采用了以下的關(guān)鍵技術(shù)(1)采用多線程技術(shù)實現(xiàn)局部重復(fù)報警和局部泛洪報警信息的過濾操作及緩沖池的清理工作,以提高對隨機(jī)報警信息的處理效率;(2)為提高報警的效率,采用共享內(nèi)存機(jī)制實現(xiàn)一級決策內(nèi)核與報警代理進(jìn)程之間的報警信息通信;(3)將報警緩沖池視為多線程間的共享資源,采用互斥鎖技術(shù)對多線程操作共享資源進(jìn)行同步,以避免出現(xiàn)沖突;(4)使用定時器技術(shù),定時啟動用來清理報警池及進(jìn)行狀態(tài)管理的操作。
上述的多線程技術(shù)、共享內(nèi)存機(jī)制、互斥鎖技術(shù)和定時器技術(shù)等都是現(xiàn)有計算機(jī)技術(shù)中常用的技術(shù)手段,在此就不一一解釋了。
上述報警過濾算法的實現(xiàn)流程如圖7所示,包括如下子步驟(1)開始;(2)獲得互斥鎖alert_lock;(3)是否處于特殊處理狀態(tài)?(4)如果是,進(jìn)入大量報警的特殊處理狀態(tài),釋放互斥鎖alert_lock并結(jié)束;如果否,則將報警信息與報警池中信息進(jìn)行匹配,轉(zhuǎn)入步驟(5);(5)是否有重復(fù)報警?(6)如果是,進(jìn)行重復(fù)報警處理,轉(zhuǎn)入步驟(7);如果否,直接進(jìn)入步驟(7);(7)將報警數(shù)據(jù)寫入報警池;(8)是否有大量報警?(9)如果是,向console(控制臺)發(fā)出報告,重置超時定時器,轉(zhuǎn)入步驟(10);如果否,直接進(jìn)入步驟(11);(10)進(jìn)入大量報警的特殊處理狀態(tài);(11)釋放互斥鎖alert_lock;(12)結(jié)束。
另外,在入侵檢測系統(tǒng)的實際應(yīng)用中,具有攻擊特征的網(wǎng)絡(luò)流量出現(xiàn)在不正確的上下文當(dāng)中是一種重要的產(chǎn)生誤報警的場景。為了消除這類誤報警,我們將報警信息與一個包含網(wǎng)絡(luò)系統(tǒng)服務(wù)、漏洞信息的知識庫進(jìn)行關(guān)聯(lián),如果關(guān)聯(lián)成功即攻擊所針對的系統(tǒng)漏洞的確存在,則說明攻擊活動將給系統(tǒng)帶來破壞,應(yīng)立即給出報警,否則說明攻擊針對的漏洞不存在,不會真正給系統(tǒng)帶來破壞,因此報警信息是誤報警,應(yīng)該過濾掉。為保證網(wǎng)絡(luò)系統(tǒng)知識庫的準(zhǔn)確性和客觀性,我們利用漏洞掃描器對知識庫進(jìn)行動態(tài)創(chuàng)建、維護(hù)和更新。
知識庫信息對報警信息關(guān)聯(lián)來說是關(guān)鍵的,因為關(guān)聯(lián)算法的關(guān)聯(lián)內(nèi)容來自于知識庫,因此知識庫的內(nèi)容、創(chuàng)建及更新機(jī)制是知識庫設(shè)計的關(guān)鍵問題。知識庫的存放在系統(tǒng)中采用數(shù)據(jù)庫表的形式實現(xiàn),其邏輯結(jié)構(gòu)如圖8所示,包括主機(jī)信息和服務(wù)信息兩部分。
知識庫存儲的是目標(biāo)機(jī)的安全漏洞相關(guān)信息,而漏洞信息反映的是一些軟件配置、狀態(tài)等信息,由于軟件是可以隨時更新的,因此知識庫也應(yīng)該是隨之更新的,這樣才能準(zhǔn)確的反映目標(biāo)機(jī)的狀態(tài)。知識庫的更新過程如下所示a)定義一個知識過期時間間隔值T,這是可以在命令行中編輯的;b)系統(tǒng)啟動時先清空知識庫,然后啟動對知識庫中已有的目標(biāo)機(jī)進(jìn)行一次漏洞掃描,同時用掃描的結(jié)果初始化知識庫;c)每次關(guān)聯(lián)時如果在知識庫中找不到匹配項或者能匹配成功但是信息時間戳超過時間間隔值,則再發(fā)起掃描,用掃描結(jié)果更新知識庫。
通過上述的知識庫更新過程,可以充分保證報警關(guān)聯(lián)結(jié)果的及時、準(zhǔn)確性。
整體而言,報警關(guān)聯(lián)和知識庫更新的機(jī)制如圖9所示,其具體的實現(xiàn)過程如圖10所示,包括如下步驟(1)根據(jù)報警信息查找入侵規(guī)則庫,找出報警對應(yīng)的CVE(CommonVulnerabilities and Exposures,通用漏洞披露)值;(2)根據(jù)CVE值查找漏洞掃描插件庫,找出對應(yīng)的掃描器插件標(biāo)識;(3)查找網(wǎng)絡(luò)系統(tǒng)知識庫,匹配關(guān)聯(lián)掃描器插件標(biāo)識;(4)是否匹配且未過期?(5)如果匹配成功且沒有知識庫沒有過期,則關(guān)聯(lián)成功,輸出報警并結(jié)束;如果匹配成功但知識庫過期,或者匹配不成功,則轉(zhuǎn)入步驟(6);(6)用關(guān)聯(lián)掃描器插件標(biāo)識向目標(biāo)機(jī)發(fā)起掃描;(7)用掃描器掃描結(jié)果更新知識庫;(8)轉(zhuǎn)入步驟(3),重新對掃描插件標(biāo)識進(jìn)行匹配,如匹配成功則關(guān)聯(lián)成功,否則關(guān)聯(lián)失敗。
本發(fā)明所述的具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)及其報警優(yōu)化方法不僅在理論上可行,通過實驗驗證也取得了令人滿意的效果,下面簡要介紹如下實驗環(huán)境為100M的共享局域網(wǎng),由5臺主機(jī)承擔(dān)實驗任務(wù)其中兩臺主機(jī)分別運行兩個檢測引擎(一級決策內(nèi)核),一臺主機(jī)運行管理控制臺,一臺主機(jī)運行二級決策內(nèi)核兼作報警數(shù)據(jù)庫服務(wù)器,一臺運行測試工具軟件,詳細(xì)配置如下
■檢測引擎的運行在192.168.1.175,192.168.1.217主機(jī)上,RedHat Linux 7.2操作系統(tǒng),Pentium IV 1G CPU,512M內(nèi)存;■二級決策內(nèi)核和報警數(shù)據(jù)庫服務(wù)器運行在192.168.1.136主機(jī)上,Redhat Linux 9.0操作系統(tǒng),Pentium IV 1G CPU,512M內(nèi)存;■攻擊測試軟件(Nmap,PacketSender,snot等)運行在192.168.1.219主機(jī)上,RedHat Linux 7.2操作系統(tǒng),Pentium III 700CPU,512M內(nèi)存;■管理控制臺運行在192.168.1.124主機(jī)上,Win2000Professional操作系統(tǒng),Pentium III 700CPU,512M內(nèi)存。
實驗1為了測試二級決策內(nèi)核中過濾算法的實際處理效果,我們分別用下面的方法模擬局部重復(fù)報警和局部泛洪報警的情況1)利用NMAP掃描器對某主機(jī)進(jìn)行特定類型的掃描,在短時間內(nèi)產(chǎn)生大量相同類型的數(shù)據(jù)報文,導(dǎo)致檢測引擎出現(xiàn)局部重復(fù)報警;2)利用自行開發(fā)的發(fā)包工具PackerSender向某主機(jī)發(fā)送指定數(shù)量和攻擊特征的數(shù)據(jù)報文,模擬局部重復(fù)報警的情況;3)用snot作為攻擊工具向檢測引擎發(fā)起DOS攻擊,短時間內(nèi)發(fā)送大量、具有不同攻擊特征的數(shù)據(jù)報文,導(dǎo)致檢測引擎出現(xiàn)局部泛洪報警。
利用上面的攻擊模擬方法分別對引入二級決策內(nèi)核前后的網(wǎng)絡(luò)入侵檢測引擎進(jìn)行測試并對報警情況進(jìn)行檢查,驗證二級決策內(nèi)核對上面兩種情況的過濾效果。
實驗結(jié)果如表1所示
表1二級決策內(nèi)核引入前和引入后對比由于不同測試場景中的攻擊數(shù)據(jù)報文都在較短的集中時間內(nèi)(<30秒)發(fā)送完畢(這也反映了發(fā)生局部重復(fù)和局部泛洪報警時的通常的實際情況),因此二級決策內(nèi)核中過濾算法的過濾效果極好,在沒有遺漏對任何攻擊信息的檢測的同時簡化、綜合了對局部重復(fù)報警和局部泛洪報警的處理信息,很大程度上提高了檢測引擎自身的健壯性和對系統(tǒng)管理員的友好、易用性,檢測效果有明顯改進(jìn)。
實驗2利用Nessus掃描器選定系列針對Unix系統(tǒng)的攻擊方式向運行Windows系統(tǒng)的主機(jī)發(fā)起掃描攻擊,再選定系列針對Windows系統(tǒng)的攻擊方式向運行Unix系統(tǒng)的主機(jī)發(fā)起掃描攻擊,檢驗協(xié)同關(guān)聯(lián)技術(shù)的誤報警過濾效果。
對于兩種不同的測試場景,實驗結(jié)果如表2所示
可見,對于出現(xiàn)在不正確的上下文信息中的入侵報警,在二級決策內(nèi)核中部署的協(xié)同關(guān)聯(lián)技術(shù)能夠很好的進(jìn)行過濾,避免了相當(dāng)數(shù)量的誤報警的出現(xiàn)。
實驗3
為了測試由于二級決策內(nèi)核的引入帶來的報警延遲,我們先使用時鐘同步工具同步檢測引擎和二級決策內(nèi)核的系統(tǒng)時鐘,然后在檢測引擎發(fā)出原始報警時記下起始時間,在二級決策內(nèi)核發(fā)出真正的報警通知時記下終止時間,二者的差值即為時間延遲。實驗在網(wǎng)絡(luò)正常負(fù)荷和滿負(fù)荷兩種情況下分別進(jìn)行測試,使用PacketSender發(fā)送數(shù)據(jù)包來模擬網(wǎng)絡(luò)滿負(fù)荷的情況。
對于兩種場景分別測十組數(shù)據(jù)計算平均值,實驗結(jié)果如表3所示
表3報警時間延遲在兩種網(wǎng)絡(luò)負(fù)荷狀態(tài)下的報警延遲平均值均小于1秒,基本上不會造成系統(tǒng)報警實時性上的延遲問題。
上述實驗結(jié)果表明,我們提出的具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)及其報警優(yōu)化方法能夠有效地減少誤報和濫報現(xiàn)象,極大地提高了網(wǎng)絡(luò)入侵檢測系統(tǒng)的實用性。
上面結(jié)合具體實施方式
對本發(fā)明進(jìn)行了說明,但顯然本發(fā)明的具體實現(xiàn)形式并不局限于此。對于本技術(shù)領(lǐng)域的一般技術(shù)人員來說,在不背離本發(fā)明所述方法的精神和權(quán)利要求范圍的情況下對它進(jìn)行的各種顯而易見的改變都在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種網(wǎng)絡(luò)入侵檢測系統(tǒng),包括數(shù)據(jù)源、報警數(shù)據(jù)庫和管理控制臺,其特征在于所述網(wǎng)絡(luò)入侵檢測系統(tǒng)具有兩級決策內(nèi)核,所述兩級決策內(nèi)核所采用的決策算法不相同。
2.如權(quán)利要求1所述的網(wǎng)絡(luò)入侵檢測系統(tǒng),其特征在于所述兩級決策內(nèi)核中,其中第一級的決策內(nèi)核與所述數(shù)據(jù)源相連接,其結(jié)果輸送給第二級的決策內(nèi)核,所述第二級決策內(nèi)核與所述報警數(shù)據(jù)庫相連接。
3.如權(quán)利要求2所述的網(wǎng)絡(luò)入侵檢測系統(tǒng),其特征在于所述第一級和第二級決策內(nèi)核分別分布在不同的主機(jī)上,彼此之間通過報警代理進(jìn)行通信。
4.如權(quán)利要求3所述的網(wǎng)絡(luò)入侵檢測系統(tǒng),其特征在于所述第一級決策內(nèi)核的報警代理用單獨的進(jìn)程實現(xiàn),該進(jìn)程與該決策內(nèi)核所在的網(wǎng)絡(luò)入侵檢測進(jìn)程之間利用共享內(nèi)存的方式進(jìn)行傳遞報警信息的通信。
3.如權(quán)利要求1所述的網(wǎng)絡(luò)入侵檢測系統(tǒng),其特征在于所述兩級決策內(nèi)核分為通信模塊、主控模塊、決策模塊和輸出模塊,所述決策模塊分為過濾器、分析器、關(guān)聯(lián)器和知識庫;所述檢測系統(tǒng)還具有檢測引擎和漏洞掃描器,所述檢測引擎連接所述通信模塊,所述通信模塊經(jīng)過所述過濾器和分析器將數(shù)據(jù)傳送給所述關(guān)聯(lián)器,所述漏洞掃描器通過所述知識庫也將數(shù)據(jù)傳送給所述關(guān)聯(lián)器,所述關(guān)聯(lián)器將優(yōu)化后的報警數(shù)據(jù)傳送給所述輸出模塊,所述輸出模塊將數(shù)據(jù)傳送給所述管理控制臺和報警數(shù)據(jù)庫。
6.如權(quán)利要求1所述的網(wǎng)絡(luò)入侵檢測系統(tǒng)所采用的報警優(yōu)化方法,其特征在于包括如下步驟a)通過一種基于報警緩沖池的報警過濾算法對原始報警數(shù)據(jù)進(jìn)行過濾,過濾掉重復(fù)報警和濫報警數(shù)據(jù);b)對過濾后的報警數(shù)據(jù)利用關(guān)聯(lián)技術(shù)與網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行關(guān)聯(lián)、分析,以此剔除由于入侵上下文不符而導(dǎo)致的誤報警數(shù)據(jù),并利用漏洞掃描技術(shù)對網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行及時維護(hù)和更新。
7.如權(quán)利要求6所述的報警優(yōu)化方法,其特征在于所述步驟a)包括如下子步驟(1)開始;(2)獲得互斥鎖;(3)是否處于特殊處理狀態(tài)?(4)如果是,進(jìn)入大量報警的特殊處理狀態(tài),釋放互斥鎖并結(jié)束;如果否,則將報警信息與報警池中信息進(jìn)行匹配,轉(zhuǎn)入步驟(5);(5)是否有重復(fù)報警?(6)如果是,進(jìn)行重復(fù)報警處理,轉(zhuǎn)入步驟(7);如果否,直接進(jìn)入步驟(7);(7)將報警數(shù)據(jù)寫入報警池;(8)是否有大量報警?(9)如果是,向控制臺發(fā)出報告,重置超時定時器,轉(zhuǎn)入步驟(10);如果否,直接進(jìn)入步驟(11);(10)進(jìn)入大量報警的特殊處理狀態(tài);(11)釋放互斥鎖;(12)結(jié)束。
8.如權(quán)利要求6所述的報警優(yōu)化方法,其特征在于所述步驟b)包括如下子步驟(1)根據(jù)報警信息查找入侵規(guī)則庫,找出報警對應(yīng)的通用漏洞披露值;(2)根據(jù)通用漏洞披露值查找漏洞掃描插件庫,找出對應(yīng)的掃描器插件標(biāo)識;(3)查找網(wǎng)絡(luò)系統(tǒng)知識庫,匹配關(guān)聯(lián)掃描器插件標(biāo)識;(4)是否匹配且未過期?(5)如果匹配成功且沒有知識庫沒有過期,則關(guān)聯(lián)成功,輸出報警并結(jié)束;如果匹配成功但知識庫過期,或者匹配不成功,則轉(zhuǎn)入步驟(6);(6)用關(guān)聯(lián)掃描器插件標(biāo)識向目標(biāo)機(jī)發(fā)起掃描;(7)用掃描器掃描結(jié)果更新知識庫;(8)轉(zhuǎn)入步驟(3),重新對掃描插件標(biāo)識進(jìn)行匹配,如匹配成功則關(guān)聯(lián)成功,否則關(guān)聯(lián)失敗。
9.如權(quán)利要求6所述的報警優(yōu)化方法,其特征在于所述步驟b)中,所述知識庫的更新過程包括如下步驟(1)定義一個知識過期時間間隔值;(2)系統(tǒng)啟動時先清空知識庫,然后啟動對知識庫中已有的目標(biāo)機(jī)進(jìn)行一次漏洞掃描,同時用掃描的結(jié)果初始化知識庫;(3)每次關(guān)聯(lián)時如果在知識庫中找不到匹配項或者能匹配成功但是信息時間戳超過時間間隔值,則再發(fā)起掃描,用掃描結(jié)果更新知識庫。
全文摘要
本發(fā)明提出了一種具有二級決策內(nèi)核的網(wǎng)絡(luò)入侵檢測系統(tǒng)及其報警優(yōu)化方法,并結(jié)合二級決策內(nèi)核進(jìn)行了報警優(yōu)化技術(shù)的實現(xiàn)。報警優(yōu)化機(jī)制主要包含兩步,第一步是設(shè)計并實現(xiàn)了一種基于報警緩沖池的報警過濾算法,對原始報警數(shù)據(jù)進(jìn)行過濾,過濾掉重復(fù)報警和濫報警數(shù)據(jù);第二步對過濾后的報警數(shù)據(jù)利用關(guān)聯(lián)技術(shù)與網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行關(guān)聯(lián)、分析,以此剔除由于入侵上下文不符而導(dǎo)致的誤報警數(shù)據(jù),并利用漏洞掃描技術(shù)對網(wǎng)絡(luò)系統(tǒng)知識庫進(jìn)行及時維護(hù)和更新,以保證關(guān)聯(lián)效果。結(jié)合上述二級決策體系結(jié)構(gòu)實現(xiàn)的報警優(yōu)化技術(shù)能夠有效的減少誤報和濫報現(xiàn)象,改善了檢測效果,具有較強(qiáng)的實用價值。
文檔編號H04L12/24GK1694411SQ20041000935
公開日2005年11月9日 申請日期2004年7月16日 優(yōu)先權(quán)日2004年7月16日
發(fā)明者懷進(jìn)鵬, 劉利軍, 劉旭東, 劉慶云, 楊超鋒 申請人:北京航空航天大學(xué)