呂秀華
摘要:本文對snort入侵檢測系統(tǒng)及基于免疫原理的入侵檢測技術進行了探討和研究,利用snort系統(tǒng)作為誤用檢測系統(tǒng),把人工免疫的算法應用到異常檢測,用于檢測未知攻擊。在此基礎上設計了混合模式入侵檢測系統(tǒng)。
關鍵詞:入侵檢測;免疫原理;誤用檢測;異常檢測
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2009)22-00000-00
隨著信息技術的發(fā)展,計算機成為社會活動中的必不可少的工具,大量重要的信息存儲在系統(tǒng)中,同時,連入網絡中的計算機數(shù)量也在成倍增加,這些都使得信息安全問題日益嚴重。網絡安全是網絡及應用領域中一直研究的關鍵問題,常見的網絡安全技術主要有身份驗證、訪問控制、加密技術、數(shù)字簽名技術、防火墻技術與入侵檢測技術。入侵檢測技術是防火墻技術的有利補充,是一種對網絡傳輸進行實時監(jiān)視,在發(fā)現(xiàn)可以傳輸時發(fā)出報警或者采取主動反應措施的網絡安全技術。入侵檢測已經成為網絡安全的一個重要的研究領域。
本文對snort入侵檢測系統(tǒng)及基于免疫原理的入侵檢測技術進行了探討和研究,利用snort系統(tǒng)為誤用檢測系統(tǒng),把人工免疫的算法應用到異常檢測,用于檢測未知攻擊。在此基礎上設計了混合模式入侵檢測系統(tǒng)。
1 入侵檢測技術介紹
入侵檢測技術主要有兩種:誤用檢測和異常檢測。
誤用檢測(Misuse Detection)是假定所有入侵行為和手段(及其變種)都能夠表達為一種模式或特征,那么所有已知的入侵方法都可以用匹配的方法發(fā)現(xiàn)。誤用檢測的關鍵是如何表達入侵的模式,把真正的入侵和正常行為區(qū)分開來。誤用檢測的優(yōu)點是可以有針對性地建立高效的入侵檢測系統(tǒng),其主要缺陷是不能檢測未知的入侵,也不能檢測已知入侵的變種,因此可能發(fā)生漏報。
異常檢測(Anomaly Detection)是假定所有入侵行為都是與正常行為不同的。異常檢測需要建立目標系統(tǒng)及其用戶的正?;顒幽P?然后基于這個模型對系統(tǒng)和用戶的實際活動進行審計,以判定用戶的行為是否對系統(tǒng)構成威脅。常用的異常檢測方法有:專家系統(tǒng)、神經網絡、機器學習、和人工免疫等。異常檢測的關鍵問題是:① 特征量的選擇。異常檢測首先是要建立系統(tǒng)或用戶的“正常”行為特征輪廓,這就要求在建立正常模型時,選取的特征量既要能準確地體現(xiàn)系統(tǒng)或用戶的行為特征,又能使模型最優(yōu)化,即以最少的特征量就能涵蓋系統(tǒng)或用戶的行為特征。 ②參考閾值的選定。因為在實際的網絡環(huán)境下,入侵行為和異常行為往往不是一對一的等價關系,這樣的情況是經常會有的:某一行為是異常行為,而它并不是入侵行為。同樣存在某一行為是入侵行為,而它卻并不是異常行為的情況。這樣就會導致檢測結果的虛警和漏警的產生。由于異常檢測是先建立正常的特征輪廓作為比較的參考基準,這個參考基準即參考閾值的選定是非常關鍵的,閾值定的過大,那漏警率會很高;閾值定的過小,則虛警率就會提高。合適的參考閾值的選定是影響這一檢測方法準確率的至關重要的因素。
誤用檢測能夠較好地檢測已知類型的攻擊,通常誤報率較低,因此大多數(shù)的商業(yè)IDS都采用這種方式。但是,該類型的系統(tǒng)無法檢測未知類型的攻擊。面對層出不窮的新型攻擊顯得捉襟見肘。異常檢測雖然可以檢測未知類型的攻擊,但又伴隨著較高的誤報率,而且檢測算法的復雜度一般較高,所以在實際環(huán)境中的應用不是很廣。由于異常檢測和誤用檢測這兩種方法各有所長,選擇其中一種方法忽視掉的入侵很可能會被另外一種所識別。因此,可以通過尋找一種有效的協(xié)調方式把誤用檢測和異常檢測結合起來,發(fā)揮兩者各自的優(yōu)點。彌補各自的缺點,從而獲得更好的性能。
2 snort系統(tǒng)分析
Snort是目前使用最廣泛的開放源代碼入侵檢測系統(tǒng),它具有實時數(shù)據流量分析和對網絡上的IP網絡數(shù)據包日志進行測試等功能,能夠進行協(xié)議分析,完成內容搜索/匹配。它能夠檢測各種不同的攻擊方式,對攻擊進行實時報警。此外,Snort具有很好的擴展性和可移植性。從本質上來說,Snort是一個基于誤用檢測的IDS。snort系統(tǒng)是通過一個已有的規(guī)則庫進行人侵行為的檢測,其中沒有規(guī)則的擴充機制,這就使得它對于新的攻擊行為無能為力。
2.1 snort系統(tǒng)架構
Snort入侵檢測系統(tǒng)主要由四部分組成:數(shù)據包嗅探器、預處理器、檢測引擎、報警輸出模塊。系統(tǒng)體系結構如圖1所示。
2.2 snort系統(tǒng)工作流程
Snort的基本功能是數(shù)據包嗅探器,數(shù)據包嗅探是Snort工作的開始,Snort取得數(shù)據包后先用預處理插件處理,然后經過檢測引擎中的所有規(guī)則鏈,如果檢測到有符合規(guī)則鏈的數(shù)據包,則系統(tǒng)就會根據輸出設置把該信息記錄到文件并報警。Snort的預處理器、檢測引擎和報警模塊都是插件結構,插件程序按照Snort提供的插件接口完成,使用時動態(tài)加載,在不用修改核心代碼的前提下使Snort的功能和復雜性擴展更容易。既保障了插件程序和snort核心代碼的緊密相關性,又保障了核心代碼的良好擴展性。
3 人工免疫原理與入侵檢測
3.1 生物免疫系統(tǒng)
生物免疫系統(tǒng)(Biology Immune System, BIS)是一個分布式、自組織和具有動態(tài)平衡能力的自適應復雜系統(tǒng)。它對外界入侵的抗原(Antigen, Ag),可由分布全身的不同種類的淋巴細胞產生相應的抗體(Antibody, Ab),其目標是盡可能保證整個生物系統(tǒng)的基本生理功能得到正常運轉。生物免疫系統(tǒng)具有良好的多樣性、耐受性、免疫記憶、分布式并行處理、自組織、自學習、自適應等特點,這些誘人特性,引起研究人員的普遍關注。
人工免疫系統(tǒng)(Artificial Immune System, AIS)就是研究、借鑒、利用生物免疫系統(tǒng)的原理、機制而發(fā)展起來的各種信息處理技術、計算技術及其在工程和科學中的應用而產生的多種智能系統(tǒng)的統(tǒng)稱。計算機免疫系統(tǒng)是人工免疫、計算機科學的一個分支,是繼神經網絡、模糊系統(tǒng)、進化計算、人工免疫等研究之后的又一個研究熱點。在眾多的研究領域中,引入免疫概念后取得了滿意的成果,特別在計算機病毒防治、網絡入侵檢測上,基于免疫的網絡安全技術克服了傳統(tǒng)網絡入侵檢測系統(tǒng)的缺陷,被認為是一條非常重要且有巨大實際應用前景的研究方向。
3.2 免疫算法
Forrest 等研究人員受生物免疫系統(tǒng)啟發(fā)提出了否定選擇算法。否定選擇,又稱陰性選擇。否定選擇的主要思想是:建立一個隨機檢測器集,從中進行選擇,將對系統(tǒng)無害的自體信息排除,剩下的則認為是異常體的集合。
本文提出的檢測器生成器算法(如圖2)是在原有的否定算法的基礎上進行了改進。利用誤用檢測模式先檢測出已經確定的攻擊模式,對于未知的異常數(shù)據則用免疫算法的檢測器檢測,因此本文的檢測器生成是以少量的異常數(shù)據為基礎生成的,而不是一種不可能存在的模式,這樣,產生的檢測器數(shù)量不會像原始算法產生的那么多,這些檢測器是有效的,有利于提高檢測效率,節(jié)約存儲空間。
4 系統(tǒng)設計
4.1 系統(tǒng)設計思路
Snort基于誤用檢測技術,其檢測能力受到規(guī)則數(shù)據庫中規(guī)則的限制,無法檢測到未知類型的入侵行為,而基于免疫的異常檢測技術的優(yōu)點是能夠檢測到未知類型的入侵行為。
一般情況下,網絡中絕大部分數(shù)據包都是正常的,可以在Snort檢測引擎之前加入異常檢測引擎來過濾掉大部分正常數(shù)據。減少Snort檢測引擎的負擔,提高其檢測效率;由于Snort支持插件方式,因此將異常檢測引擎編寫成插件,通過Snort提供的插件接口,使用時動態(tài)加載,可方便地實現(xiàn)在Snort中添加異常檢測的功能。對于那些不符合網絡正常行為模型的數(shù)據包,可將其視為異常數(shù)據包,先送至誤用檢測引擎作進一步的檢測。經過誤用檢測引擎未發(fā)現(xiàn)入侵行為的異常數(shù)據包很可能是新的入侵行為產生的數(shù)據包,對這些異常數(shù)據包再通過免疫的異常檢測模塊可以判斷是否新的入侵行為模式,然后將這些入侵行為模式轉換為Snort入侵檢測規(guī)則并添加到規(guī)則庫中,這樣誤用檢測引擎就可以檢測到新的入侵行為。
4.2 系統(tǒng)架構
本文提出的檢測模型系統(tǒng)架構如圖3所示。
系統(tǒng)主要包括6個功能模塊:
數(shù)據包捕獲和解碼子系統(tǒng),用來捕獲網絡的傳輸數(shù)據并按照TCP/IP協(xié)議的不同層次將數(shù)據包進行解析;
數(shù)據預處理,是介于解碼器與檢測引擎之間的可插入模塊,提供一些對解碼后的數(shù)據包及一些應用層協(xié)議的附加處理及解碼功能;
異常檢測引擎,負責對數(shù)據包進行檢測,并過濾掉正常的數(shù)據包;并將可疑的異常數(shù)據包輸出到snort誤用檢索引擎模塊;
Snort誤用檢測引擎模塊,把獲得的網絡數(shù)據與規(guī)則庫進行比較,如果匹配,則報警;否則,作為異常數(shù)據存入異常文件;
基于免疫原理檢測模塊,對異常文件數(shù)據進行免疫檢測,檢測出新的入侵行為模式,調用報警模塊,并轉換為符合snort規(guī)則語法的入侵檢測規(guī)則,然后添加到規(guī)則庫中。
該系統(tǒng)的主要優(yōu)點:結合了誤用檢測與異常檢測的優(yōu)點,提高了檢測效率,應用免疫原理提高了檢測未知攻擊的檢測的能力,可以不斷更新規(guī)則庫,檢測某些新變種的入侵。
4.3 系統(tǒng)實現(xiàn)
本文改進模型的實現(xiàn)是基于開源網絡入侵檢測系統(tǒng)Snort及其相關組件的,這些都可以通過互聯(lián)網免費獲得。具體實現(xiàn)過程分為以下幾步進行:
1)在Windows系統(tǒng)下部署一個簡單的snort網絡入侵檢測系統(tǒng)。用到的主要軟件有:Snort、Winpcap、jpgraph、Mysql、Apache、php、ADODB、ACID等.對這些軟件進行合理的安裝和配置,構建起一個功能較完善的snort入侵檢測系統(tǒng)。
2)將可疑數(shù)據存入可疑數(shù)據庫并對其進行分類,使新的人侵數(shù)據和正常數(shù)據分開。這部分通過在ACID(AnalysisConsole for Intrusion Databases)中加入相應的處理頁面來人機交互實現(xiàn)。
3)利用數(shù)據挖掘算法構建正常行為模式庫并實現(xiàn)異常檢測引擎模塊。異常檢測引擎模塊在Snort程序中使用C語言來實現(xiàn)。
4)對異常數(shù)據進行向量轉換,利用免疫算法對異常入侵數(shù)據進行檢測,如果是攻擊數(shù)據則轉換成適合Snort的規(guī)則。這部分使用C語言來實現(xiàn)。
5 結束語
本文提出了—個混合型的入侵檢測系統(tǒng),利用snort的預處理技術進行異常檢測分類過濾掉大量正常數(shù)據,提高人侵檢測系統(tǒng)的數(shù)據處理能力。再利用誤用檢測引擎檢測已知類型的攻擊。對于無法確定的攻擊則由后續(xù)的基于免疫原理異常檢測模塊做二次檢驗;該系統(tǒng)可以進行在線的檢測工作,可以自動更新規(guī)則庫,記憶新類型的攻擊,靈活性較高,檢測性較強。
參考文獻:
[1] 宋勁松.網絡入侵檢測[M].國防工業(yè)出版社,2006.
[2] 楊義先,鈕心忻.入侵檢測理論與技術[M].高等教育出版社,2007.
[3] 郭文忠,陳國龍,陳慶良,等.基于粒子群和人工免疫的混合入侵檢測系統(tǒng)研究[J].計算機工程與科學,2007(29,10).
[4] 袁暉.基于Snort的入侵檢測系統(tǒng)安全性研究[J].計算機科學,2008(35,4).
[5] 盤紅華.基于數(shù)據挖掘的Snort入侵檢測模型設計[J].計算機與數(shù)字工程,2008(8).