彭凌西,楊 進,胡 曉,曾金全,劉才銘
(1.廣州大學(xué) 計算機科學(xué)與教育軟件學(xué)院,廣東 廣州 510006;2.樂山師范學(xué)院 計算機學(xué)院,四川 樂山 614000;3.廣州大學(xué) 機械與電氣工程學(xué)院,廣東 廣州 510006;4.電子科技大學(xué) 計算機科學(xué)與工程學(xué)院,四川 成都 610054)
現(xiàn)有的入侵檢測系統(tǒng)中存在虛假報警、報警量巨大、不相關(guān)報警多等問題,極大地限制了它的應(yīng)用。因此,報警信息的關(guān)聯(lián)是目前入侵檢測領(lǐng)域一個重要的發(fā)展方向。在這些研究中,HU W M等[1]提出了一種基于AdaBoost算法通過機器學(xué)習(xí)進行報警的方法。GIACINTO G等[2]提出了一種基于多個分類系統(tǒng)的方法,降低了誤報率并提高了檢測率。TSANG C H等[3]提出了一種基于基因和模型規(guī)則的方法,取得了較好的檢測率,并降低了誤報率。SHON T等[4]提出了一種基于支持向量機以及遺傳算法的混合異常檢測算法。劉利軍等[5]提出了一種基于二級決策進行報警過濾從而消除誤報、濫報問題的方法,設(shè)計實現(xiàn)了一種基于報警緩沖池的報警優(yōu)化過濾算法。肖云等[6]提出了一種基于粗糙集、支持向量機理論的過濾誤報警的方法。穆成坡等[7]提出了一種基于模糊綜合評判的方法來處理入侵檢測系統(tǒng)的報警信息、關(guān)聯(lián)報警事件,并引入有監(jiān)督的確信度學(xué)習(xí)方法,通過確信度來對報警信息進行進一步的過濾。
總體說來,現(xiàn)有絕大多數(shù)入侵檢測關(guān)聯(lián)模型或方法都是在所有的事件發(fā)生后再對所有的事件進行報警關(guān)聯(lián)分析,相當(dāng)于“事后諸葛亮”。另外,這些模型或算法難以判斷或計算所面臨的網(wǎng)絡(luò)危險,因此實際應(yīng)用中受到了一定的限制。目前,超過90%商業(yè)運營的入侵檢測系統(tǒng)都是在Snort檢測引擎的基礎(chǔ)上進行二次開發(fā)而來。盡管Snort獲得了巨大的成功,但作為通過攻擊特征進行檢測的入侵檢測系統(tǒng),Snort存在傳統(tǒng)入侵檢測系統(tǒng)的缺陷。
目前,基于人工免疫AIS(Artificial Immune System)的網(wǎng)絡(luò)安全技術(shù)具有多樣性、自適應(yīng)、魯棒性等特點,并被認(rèn)為是一條非常重要且有意義的研究方向[8]。參考文獻[8]依據(jù)人體發(fā)燒時抗體濃度增加的原理,提出了一種基于免疫的網(wǎng)絡(luò)安全危險檢測模型。該方法能對網(wǎng)絡(luò)系統(tǒng)所面臨的攻擊進行準(zhǔn)確的實時危險評估,被證實了為網(wǎng)絡(luò)安全風(fēng)險在線檢測提供了一種有效的新途徑?;谌斯っ庖咴?,本文提出一種基于Snort的入侵檢測關(guān)聯(lián)報警模型(A Snort-based Associated Intrusion Alarm model,SAIM),理論分析和實驗結(jié)果均表明,SAIM模型為網(wǎng)絡(luò)入侵關(guān)聯(lián)報警提供了一種有效的新途徑。
在介紹模型前,首先定義模型中使用的一些名詞、符號以及一些數(shù)學(xué)描述。定義所有ASCII字符構(gòu)成集合A,Snort規(guī)則體集合RB由從規(guī)則的規(guī)則頭以及規(guī)則選項中提取的IP地址、端口號、協(xié)議類型或數(shù)據(jù)包內(nèi)容等網(wǎng)絡(luò)事務(wù)特征的字符串,即由<IP源地址+源端口+IP目的地址+目的端口+協(xié)議類型+數(shù)據(jù)包內(nèi)容+…+數(shù)字模式測試+偏移量調(diào)整>等構(gòu)成(詳見組成Snort規(guī)則簡介)規(guī)則號和規(guī)則分類號另見定義(2)),其中‘+’為字符串的連接運算,l為自然數(shù),其大小取決于規(guī)則長度。
定義Snort中所有規(guī)則構(gòu)成集合RS,N為自然數(shù)集合,其中r表示規(guī)則體,id和cid分別表示該規(guī)則的規(guī)則號和攻擊分類號,如下式所示:
用四元組<rs,s,step,count>來描述SAIM模型中的記憶細(xì)胞B,如式(3)所示,其中rs表示規(guī)則集RS中的規(guī)則,s為參考文獻[9]中定義的記憶細(xì)胞抗體濃度數(shù)值(其計算過程詳見1.2章節(jié)),step為記憶細(xì)胞抗體濃度的衰減步長,count為匹配數(shù),N為自然數(shù)集合,R為實數(shù)集合,對于其中的衰減步長step(step≤λ,λ為抗體濃度的衰減周期,λ∈N)。rs、s、step和count又稱為記憶細(xì)胞的域。為引用方便,定義記憶細(xì)胞x的下標(biāo)運算符“.”。
在Snort初始化時,首先依次讀取出所有的規(guī)則號,并將其視為記憶細(xì)胞,分配記憶細(xì)胞空間,并賦予初始的抗體濃度、衰減變量、規(guī)則號以及攻擊分類號。
記憶細(xì)胞如果檢測到匹配的一個入侵或攻擊抗原(網(wǎng)絡(luò)數(shù)據(jù)包),其抗體濃度數(shù)值按式(4)增加,同時將衰減步長賦值為0,所檢測到的抗原數(shù)按式(6)進行增加。該數(shù)值越大,表明遭遇到的該種攻擊的攻擊強度就越大。
式(4)中,η1(>0的常數(shù))為初始的抗體濃度數(shù)值,η2(0<η2<1)為模擬獎勵因子(監(jiān)視遭到連續(xù)類似的網(wǎng)絡(luò)攻擊)。如果一記憶細(xì)胞匹配被激活,其危險就按照式(4)增加。記憶細(xì)胞遇到抗原而克隆,則其相應(yīng)的抗體濃度數(shù)值將進行累計,表明威脅在持續(xù)增加。反之,在檢測到網(wǎng)絡(luò)數(shù)據(jù)包后,如果記憶檢測器沒有檢測到與之匹配的入侵或攻擊抗原,則其抗體濃度按式(7)衰減,并將其衰減步長按式(8)增加1。
本文采用的方法是在Snort對網(wǎng)絡(luò)攻擊分類的基礎(chǔ)上,將所有這些攻擊分類進一步按照林肯實驗室方法劃分五大類攻擊:拒絕服務(wù)攻擊DOS(Denial of Service)、探測攻擊PROB(Probing)、遠(yuǎn)程用戶到本地的非授權(quán)訪問R2L(Remote to Local User)和非授權(quán)獲得超級用戶權(quán)限攻擊U2R(User to Root)以及數(shù)據(jù)(Data)[9]。
設(shè)危險指標(biāo)0≤rm(t)≤1為主機m(1≤m≤M)在t時刻所面臨的危險,且rm(t)=1表明當(dāng)前系統(tǒng)極度危險;rm(t)=0表明當(dāng)前系統(tǒng)沒有危險。rm(t)值越大,表明當(dāng)前系統(tǒng)面臨的危險越高??紤]到各種主機的資產(chǎn)權(quán)重以及各類攻擊的危險性不一樣,設(shè)定μi表示第i類攻擊的危險性權(quán)重,則主機m所面臨的第i(1≤i≤I)類網(wǎng)絡(luò)攻擊的網(wǎng)絡(luò)安全危險rm,i可由下式進行計算:
某主機m在t時刻的整體網(wǎng)絡(luò)危險可通過下式進行計算:
在主機實時危險計算過程中,先統(tǒng)計出每類攻擊的總危險性,然后與對應(yīng)的該類攻擊的危險權(quán)重進行乘積和運算,據(jù)此分別計算出主機的分類攻擊和主機整體危險性。
基于實時網(wǎng)絡(luò)的“危險”報警模型依據(jù)2個條件進行報警,即網(wǎng)絡(luò)實時危險與攻擊強度。對主機中報警信號的產(chǎn)生,主要來自2個方面:對主機m,(1)主機的整體危險rm(t)大于γ1(0<γ1<1),并且主機遭遇的所有的攻擊(假設(shè)主機中包含了I類攻擊)的攻擊強度大于n;(2)主機遭 遇 的 某 類 攻 擊 的 網(wǎng) 絡(luò) 危 險rm,t(t)大 于ω1,i(0<ω1,i<1),并且主機遭遇的該類攻擊(第i類攻擊)的攻擊強度大于Ni。對于檢測的一些報警信息,例如入侵者對所有端口進行的掃描探測活動,當(dāng)網(wǎng)絡(luò)危險達到一定數(shù)值時,模型就進行報警,SAIM將所有的報警信息關(guān)聯(lián)起來,這有助于解決當(dāng)前入侵檢測系統(tǒng)模型中海量的報警信息關(guān)聯(lián)的問題。
為證明SAIM能有效減少虛假警報、提高報警質(zhì)量,采用1999年DARPA入侵檢測系統(tǒng)測試數(shù)據(jù)集[9]對模型進行了測試。該數(shù)據(jù)集是麻省理工學(xué)院的林肯實驗室在實際網(wǎng)絡(luò)環(huán)境中進行攻擊而產(chǎn)生的真實數(shù)據(jù),用于評估入侵檢測系統(tǒng)的性能。DARPA 1999年評測數(shù)據(jù)包括覆蓋了Probe、DoS、R2L、U2R和Data等五大類攻擊,是目前最為全面的攻擊測試數(shù)據(jù)集。測試過程中使用的Snort規(guī)則庫中有5 991條規(guī)則,采用第4周周五為試驗數(shù)據(jù)。
圖1給出了Snort在檢測過程中的報警數(shù)。其中總報警數(shù)3 496條,虛警2 814條(80.5%),真實報警682條(19.5%)。采用SAIM模型,當(dāng)主機總體實時危險報警閾值取值為0.3時,報警數(shù)共20個,虛警率為45%,檢測結(jié)果表明了本文所提出的報警模型在減小虛假報警、合并同類無關(guān)報警、提高報警質(zhì)量上是可行的。
圖1 虛警實驗中的報警次數(shù)對比
實驗結(jié)果表明,SAIM模型能實時定量地計算出主機當(dāng)前所面臨攻擊的類別、數(shù)量、強度及危險數(shù)值等;另外,模型根據(jù)檢測的網(wǎng)絡(luò)實時危險強度進行報警,有助于減小入侵檢測的誤報率和報警數(shù)量,從而提高報警質(zhì)量。
與同類報警相關(guān)研究[1-7]相比,本文所提出的報警方法不需要先驗報警知識訓(xùn)練,更不是事后根據(jù)所有的報警記錄來進行分析,同時可查看主機和網(wǎng)絡(luò)當(dāng)前所面臨的攻擊類別、數(shù)量、強度及具體的網(wǎng)絡(luò)實時危險數(shù)值數(shù)據(jù),這有助于網(wǎng)絡(luò)安全管理員掌握實時的網(wǎng)絡(luò)安全態(tài)勢,因此本文所提出的方法具有一定的實用價值。
[1]HU W M,HU W,MAYBANK S.AdaBoost-based algorithm for network intrusion detection[J].IEEE Transactions on Systems Man and Cybernetics Part B-Cybernetics,2008,38(2):577-583.
[2]GIORGIO G,ROBERTO P,MAURO D,et al.Intrusion detection in computer networks by a modular ensemble of one-class classifiers[J].Information Fusion,2008,9(1):69-82.
[3]TSANG C H,KWONG S,WANG H L.Genetic-fuzzy rule mining approach and evaluation of feature selection techniques for anomaly intrusion detection[J].Pattern Recognition,2007,40(9):2373-2391.
[4]SHON T,MOON J.A hybrid machine learning approach to network anomaly detection[J].Information Sciences,2007,177(18):3799-3821.
[5]劉利軍,懷進鵬.一種IDS報警過濾算法及實現(xiàn)架構(gòu)研究[J].高技術(shù)通訊,2005,15(6):1-4.
[6]肖云,韓崇昭,鄭慶華,等.基于粗糙集-支持向量機理論的過濾誤報警方法[J].電子與信息學(xué)報,2007,29(12):3011-3014.
[7]穆成坡,黃厚寬,田盛豐,等.基于模糊綜合評判的入侵檢測報警信息處理[J].計算機研究與發(fā)展,2005,42(10):1679-1685.
[8]LI T.An immunity based network security risk estimation[J].Science in China Series F-Information Sciences,2005,48(5):557-578.
[9]HAINES J W,LPPMANN R P,F(xiàn)RIED D J,et al.DARPA intrusion detection system evaluation:design and procedures[R].Lexington:MIT Lincoln Laboratory,1999.