張書敏 史興燕
(河南農(nóng)業(yè)職業(yè)學(xué)院 河南 451450)
作為一種計算機(jī)網(wǎng)絡(luò)安全防護(hù)技術(shù),入侵檢測可以積極主動地對網(wǎng)絡(luò)系統(tǒng)進(jìn)行實(shí)時保護(hù)。但由于入侵檢測技術(shù)還不成熟,誤報率高,且只能對某些特定的或已知的入侵行為有效,所以對其進(jìn)行性能優(yōu)化設(shè)計,有利于提高系統(tǒng)的安全性與穩(wěn)定性。
IDS(入侵檢測系統(tǒng)。Intrusion Detection System的縮寫)作為一種主動的信息安全保障措施,對防火墻起到必要的補(bǔ)充作用。
IDS是指對于面向計算和網(wǎng)絡(luò)資源的惡意行為識別和響應(yīng)的系統(tǒng)。IDS經(jīng)濟(jì)成本不能太高,這體現(xiàn)了經(jīng)濟(jì)性;自身系統(tǒng)必須安全,這體現(xiàn)了安全性;可以識別入侵者及入侵行為,發(fā)現(xiàn)漏洞并及時阻止事態(tài)惡化,這體現(xiàn)了可擴(kuò)展性。IDS在檢測到網(wǎng)絡(luò)入侵后,可以立即阻止攻擊行為,并同步調(diào)整完善防火墻的防護(hù)策略,使防火墻的防護(hù)體系動態(tài)并智能化。
根據(jù)檢測數(shù)據(jù)來源來劃分,IDS可以分為兩類:HIDS(基于主機(jī)的入侵檢測系統(tǒng))和NIDS(基于網(wǎng)絡(luò)的入侵檢測系統(tǒng));根據(jù)入侵檢測使用的方法來劃分,IDS可以分為三類:基于異常的入侵檢測和基于誤用的入侵檢測。
1.3.1 為適應(yīng)網(wǎng)絡(luò)通信的要求,提高檢測速度
影響網(wǎng)絡(luò)性能的一個重要因素就是網(wǎng)絡(luò)安全設(shè)備的處理速度。目前IDS的檢測速度往往跟不上網(wǎng)絡(luò)數(shù)據(jù)的傳輸速度,檢測一個網(wǎng)絡(luò)數(shù)據(jù)包就需要大量的時間和系統(tǒng)資源,那么就會有部分系統(tǒng)包漏掉而得不到檢測,從而影響系統(tǒng)的準(zhǔn)確性與有效性。因此,提高IDS的檢測速度是發(fā)展方向。
1.3.2 為減少漏報和誤報,提高安全性與準(zhǔn)確率
IDS基于模式匹配分析方法,將所有入侵行為、手段及變異表示為庫存模式或特征,一旦有新的攻擊方法出現(xiàn)、新的漏洞發(fā)布,攻擊特征庫得不到及時更新時就會造成IDS漏報。IDS基于異常發(fā)現(xiàn)是通過流量統(tǒng)計分析建立系統(tǒng)正常行為的軌跡,運(yùn)行數(shù)值超過正常閥值時就會認(rèn)為可能受到了攻擊,所以技術(shù)本身就不夠完善。此外,偽裝或變形的網(wǎng)絡(luò)攻擊時,由于大多IDS是基于單包檢查的,協(xié)議分析不夠,也會造成漏誤報。
本文提及的IDS系統(tǒng)優(yōu)化是將基于主機(jī)和網(wǎng)絡(luò)的兩種檢測形式合二為一的集成性檢測系統(tǒng)。單一的檢測方法的能力畢竟有限,網(wǎng)絡(luò)安全技術(shù)的需要,提高入侵檢測傳統(tǒng)的需求,將單一的分布式入侵檢測、數(shù)據(jù)挖掘入侵檢測、特征引擎分析入侵檢測、核聚類和序列分析入侵檢測等集成,構(gòu)建入侵行為規(guī)則知識庫,進(jìn)行數(shù)據(jù)分析和算法匹配,從而提出一種基于多種檢測方法的入侵檢測系統(tǒng),從而達(dá)到最佳的檢測效果。
根據(jù)工作階段不同,工作任務(wù)不同,系統(tǒng)框架一般由以下幾個模塊組成:
2.2.1 控制中心模塊
控制中心模塊是系統(tǒng)模型的核心,由此產(chǎn)生系統(tǒng)的控制邏輯??傮w分配調(diào)度系統(tǒng)工作所用到的函數(shù),定義控制界面流程的一般函數(shù):數(shù)據(jù)捕獲類、預(yù)處理類、分析及響應(yīng)類。主要功能是檢測單元管理、接收報警信息并顯示、日志數(shù)據(jù)管理、用戶管理和定義規(guī)則。
2.2.2 數(shù)據(jù)捕獲
數(shù)據(jù)捕獲邏輯上包括網(wǎng)絡(luò)數(shù)據(jù)包捕獲線程和主機(jī)系統(tǒng)調(diào)用序列捕獲線程。前者以網(wǎng)絡(luò)數(shù)據(jù)為數(shù)據(jù)源,實(shí)時捕獲流經(jīng)網(wǎng)卡的網(wǎng)絡(luò)數(shù)據(jù)包,進(jìn)行初始處理操作,完成進(jìn)制轉(zhuǎn)換,然后引入Libpcap開發(fā)包,通過恰當(dāng)調(diào)用就可以將截獲的數(shù)據(jù)包進(jìn)行分析(它支持針對網(wǎng)絡(luò)層、協(xié)議、主機(jī)和網(wǎng)絡(luò)端口的過濾)。如果數(shù)據(jù)包內(nèi)內(nèi)容使用十六進(jìn)制形式,可以存入臨時文件,交給預(yù)處理模塊處理;后者以系統(tǒng)調(diào)用為數(shù)據(jù)源,應(yīng)用strace程序截獲系統(tǒng)調(diào)用,序列臨時存入數(shù)據(jù)庫。
2.2.3 數(shù)據(jù)存儲
數(shù)據(jù)存儲負(fù)責(zé)把系統(tǒng)檢測到的問題記錄保留,便于以后分析研究。本著經(jīng)濟(jì)性原則,我們不能構(gòu)造專門的存儲系統(tǒng),還是要運(yùn)用現(xiàn)有的數(shù)據(jù)庫系統(tǒng)進(jìn)行數(shù)據(jù)存儲。
2.2.4 規(guī)則描述
優(yōu)化系統(tǒng)借鑒改進(jìn) Snort語言的規(guī)則語法,提出了一種更靈活實(shí)用,簡單高效的規(guī)則存儲方式,可以極大提高IDS的整體工作效率。
規(guī)則在內(nèi)存中存儲的主要數(shù)據(jù)結(jié)構(gòu)就是幾個描述規(guī)則庫的鏈表。Ru1eListNode(主規(guī)則鏈表)是由Ru1eHeadNode和Ru1eOptNode組成。其中Ru1eHeadNode描述規(guī)則頭部分,Ru1eOptNode描述規(guī)則選項(xiàng)部分。規(guī)則鏈表及數(shù)據(jù)結(jié)構(gòu)如下(部分):
//NIDS主規(guī)則鏈表
typedef struct-Ru1eListNode
Ru1eHeadNode*rhn}tr;/*規(guī)則頭*/
Ru1eO1:1tNode*ron}tr;/*規(guī)則選項(xiàng)*/
int active-f1ag;/*規(guī)則激活標(biāo)志/
int ru1e-num;/*規(guī)則序號*/
int ron num;/*規(guī)則選項(xiàng)的數(shù)目*/
char *ron_name;/*規(guī)則選項(xiàng)名字*/
Struct-u1eListNode *next:
1Ru1eListNode:
........
由此得出,系統(tǒng)設(shè)計的規(guī)則解析處理的算法流程為:開始—打開規(guī)則文件,進(jìn)行解析處理—逐條處理規(guī)則—解析規(guī)則頭—解析規(guī)則選項(xiàng)—向規(guī)則鏈表添加元素—結(jié)束。
該模塊內(nèi)容包括協(xié)議解碼、分析模塊和數(shù)據(jù)預(yù)處理模塊三部分。
協(xié)議解碼的目的是為了讓IDS正確檢測入侵攻擊行為。正確而準(zhǔn)確地對TCP/P協(xié)議進(jìn)行解碼,轉(zhuǎn)變?yōu)榱硗庖环N便利進(jìn)行入侵檢測的編碼形式或者數(shù)據(jù)結(jié)構(gòu)。
協(xié)議分析模塊主要是針對特定的攻擊行為所表現(xiàn)出來的網(wǎng)絡(luò)特征進(jìn)行分的。采用協(xié)議分析技術(shù)的IDS能夠理解不同協(xié)議的原理,由此分析這些協(xié)議的流量,來尋找可疑的或不正常行為。協(xié)議分析技術(shù)觀察并驗(yàn)證所有的流量,當(dāng)流量不是期望值時,IDS就發(fā)出告警,因此能夠檢測到己知和未知攻擊方法。狀態(tài)協(xié)議分析不僅僅檢測單一的連接請求或響應(yīng),而是將一個會話的所有流量作為一個整體來考慮。攻擊行為包含在多個請求中時,狀態(tài)協(xié)議分析技術(shù)就顯得十分必要。
數(shù)據(jù)預(yù)處理模塊主要完成對未作標(biāo)記的網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理操作,將訓(xùn)練數(shù)據(jù)數(shù)值化、去除冗余屬性以及數(shù)據(jù)的存儲等,以及對主機(jī)訓(xùn)練數(shù)據(jù)的預(yù)處理操作,如數(shù)據(jù)的轉(zhuǎn)換、過濾等。
優(yōu)化后的IDS系統(tǒng)設(shè)計結(jié)合主動響應(yīng)與被動響應(yīng)的優(yōu)點(diǎn),對于那些模式庫中己經(jīng)存在的較常見的攻擊類型,系統(tǒng)根據(jù)預(yù)先設(shè)計的動作,進(jìn)行主動響應(yīng)處理,對于通過異常算法檢測到的那些模式庫中沒有存在的攻擊,系統(tǒng)將該連接數(shù)據(jù)保存起來,做進(jìn)一步處理。在主動響應(yīng)里,IDS應(yīng)能夠自動地(或在用戶的控制下)阻塞或影響攻擊,進(jìn)而改變攻擊的過程。在被動攻擊里,IDS統(tǒng)僅僅簡單地報告和記錄所檢測出的問題。
在這個模塊中,主要采用多線程技術(shù)和進(jìn)程間的套接字通信機(jī)制。日志服務(wù)程序與入侵檢測模塊都設(shè)計在sensor上,它們之間采用域套接字進(jìn)行本地通信。服務(wù)程序既要接收入侵檢測模塊發(fā)出的報警信息,還要將報警信息轉(zhuǎn)送到遠(yuǎn)程的數(shù)據(jù)中心,這里將涉及到通信同步的問題采用“報警隊列”可解決。由于這個“報警隊列”是個臨界資源,接收報警信息和發(fā)送報警信息都要訪問并操作隊列,所以在設(shè)計時采用線程互斥鎖(pthread mutex)解決這個問題。
系統(tǒng)可在 WindowsXP平臺下運(yùn)行。具體工作流程圖如下(圖1):
圖1 系統(tǒng)工作流程示意圖
本文依靠入侵檢測系統(tǒng)知識和計算機(jī)學(xué)科相關(guān)理論,建立了一個粗略抽象的入侵檢測體系結(jié)果模型和理論框架。為研制新的入侵檢測技術(shù)產(chǎn)品提供了一定的理論和思想方面的幫助。
[1]高凱.入侵檢測系統(tǒng)的分類研究[J].黑龍江科技信息.2011.
[2]王娜敏,高藝博.基于數(shù)據(jù)挖掘技術(shù)的入侵檢測系統(tǒng)[J].電腦知識與技術(shù).2011.