張鈺莎,蔣盛益
(1.湖南信息學(xué)院 電子信息學(xué)院, 長沙 410151;2.廣東外語外貿(mào)大學(xué) 信息學(xué)院, 廣州 510006)
入侵檢測系統(tǒng)(intrusion detection systems,IDS)是安全信息系統(tǒng)的重要組成部分。在網(wǎng)絡(luò)中的入侵者試圖訪問網(wǎng)絡(luò)中的未授權(quán)資源時,監(jiān)測和分析用戶的活動和系統(tǒng)行為是非常必要的。僅僅通過修改系統(tǒng)參數(shù)的配置,系統(tǒng)的行為則可能是不穩(wěn)定的。因此,該系統(tǒng)必須具有定期監(jiān)測的特征及其正常和異?;顒拥男袨槟J??;趯崟r部署和檢測機制的IDS有2種類型,基于部署的IDS可分為基于主機的IDS(Host IDS,HIDS)和基于網(wǎng)絡(luò)的IDS(Net IDS,NIDS)。HIDS監(jiān)視計算系統(tǒng)的內(nèi)部活動[1-2]。NIDS可實時動態(tài)監(jiān)控網(wǎng)絡(luò)流量日志,并使用適當?shù)臋z測算法識別網(wǎng)絡(luò)中的潛在入侵?;跈z測機制的入侵檢測分為誤用檢測、異常檢測和混合入侵檢測。誤用檢測使用預(yù)定義的規(guī)則或簽名集來檢測已知的攻擊。異常檢測通過檢查系統(tǒng)狀態(tài)是否與建立的正常活動概要不同,構(gòu)建一個正?;顒痈乓獊頇z測未知的攻擊[3-4]。目前,各種IDS都使用數(shù)據(jù)挖掘技術(shù)來檢測入侵。大多數(shù)現(xiàn)有的IDS通過使用從網(wǎng)絡(luò)流量構(gòu)造的所有屬性來檢測攻擊。但是,并不是所有的屬性都需要檢測攻擊。減少屬性或特征的數(shù)量可以縮短檢測時間,提高檢測率。
文獻[5]提出了一種基于神經(jīng)網(wǎng)絡(luò)的NIDS算法,并給出了計算復(fù)雜度較低的改進算法。文獻[6]提出了K-Medoids聚類和樸素貝葉斯(Naive Bayes)分類相結(jié)合的混合方法。首先,對所有數(shù)據(jù)進行聚類,形成一個組,然后使用分類器進行分類,以識別網(wǎng)絡(luò)中的入侵。由于網(wǎng)絡(luò)流量記錄特征的不同組合,研究人員引入了優(yōu)化技術(shù)。文獻[7]將人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)和貝葉斯網(wǎng)絡(luò)(bayesian net,BN)集成在一起,采用一個以上的弱分類器,利用增益比(gain ratio,GR)特征選擇技術(shù)進行入侵檢測。主成分分析(principal component analysis,PCA)是選擇特征的工具方法之一。文獻[8]分析了WEKA中的KDD Cup數(shù)據(jù)集并計算了準確度。我們分析出全特征數(shù)據(jù)集的準確性不高,算法分類或運行時間很長。通過特征選擇或過濾方法,提高了精度,并且還縮短了算法運行時間。文獻[9]嘗試了并行計算模型和自然啟發(fā)的特征選擇技術(shù),提出了一種高效的特征選擇和分類方法,以獲得優(yōu)化的檢測率,同時采用映射約簡編程模型選擇計算復(fù)雜度低的最優(yōu)子集。盡管有這些優(yōu)點,但是這些方法仍然很難部署到真實的網(wǎng)絡(luò)環(huán)境中,而且檢測精度也不夠高。
本文提出了基于濾波器和包裝器的特征選擇方法,并對KDD CUP 99數(shù)據(jù)進行了實驗。雖然在NIDS的特征選擇、分類器等方面已有多種技術(shù),但本文主要研究了螢火蟲特征選擇和C4.5分類器的元啟發(fā)式方法,并與貝葉斯網(wǎng)絡(luò)分類器進行了比較。本文方法NIDS的檢出率根據(jù)樣本數(shù)量和特征數(shù)量來確定,可有效降維,且提高了檢測精度,降低了假陽性率。主要創(chuàng)新點如下:
1) 基于濾波器和包裝器的方法相結(jié)合,選擇合適的特征進行網(wǎng)絡(luò)檢測入侵,在不損害檢測率的情況下減少性能改進的特性數(shù)量。
2) 以C4.5和貝葉斯網(wǎng)絡(luò)為分類器,采用互信息螢火蟲算法(MIFA)作為基于包裝器的特征選擇策略,基于包裝器的特征選擇采用了一些搜索方法來選擇特征子集,并利用貝葉斯網(wǎng)絡(luò)對所選特征子集進行了評價。
入侵檢測是監(jiān)控計算機或網(wǎng)絡(luò)進行未經(jīng)授權(quán)的進入、活動或文件修改的過程[10-12]。攻擊多發(fā)生在被稱為事件的特殊群體中。雖然一些事件在本質(zhì)上是惡意的,但許多事件并非如此,例如,某人可能會錯誤地輸入計算機地址,并在未經(jīng)授權(quán)的情況下意外嘗試連接到其他系統(tǒng)。IDS是一種自動執(zhí)行入侵檢測過程并檢測可能入侵的軟件。IDPS是一種軟件或硬件設(shè)備,具有入侵檢測系統(tǒng)的所有功能,還可以嘗試停止可能的事件。IPS與IDS的區(qū)別在于一個特征:IPS可以通過試圖阻止它成功來響應(yīng)檢測到的威脅。
IPS會更改攻擊的內(nèi)容或更改安全環(huán)境,可以更改其他安全控制的配置以中斷攻擊,例如重新配置網(wǎng)絡(luò)設(shè)備以阻止攻擊者或受害者訪問,或者更改目標上基于主機的防火墻以阻止傳入攻擊[13-14]。一些IPS可以刪除或替換攻擊的惡意部分以使其成為良性。由于異常檢測的誤報率很高,IPS錯誤地將合法的非侵入性正常活動識別為惡意,并且不正確地響應(yīng)檢測到的活動。圖1顯示了藍色框中的傳統(tǒng)IDPS,它通過收集審計數(shù)據(jù),分析數(shù)據(jù)和檢測入侵,生成警報并繼續(xù)進行適當?shù)捻憫?yīng)在云中工作。此過程僅針對其中一個實體顯示,同時需要為所有實體一致地執(zhí)行此過程以保護云資源免受惡意活動的影響。
IDPS通過分析收集的數(shù)據(jù)來檢測入侵。受監(jiān)控的環(huán)境可以基于網(wǎng)絡(luò)、基于主機或基于應(yīng)用程序:
1) 基于網(wǎng)絡(luò)(NIDPS):監(jiān)控特定網(wǎng)段或設(shè)備的網(wǎng)絡(luò)流量,并分析網(wǎng)絡(luò)和應(yīng)用程序協(xié)議活動以識別可疑活動。
2) 基于主機(HIDPS):監(jiān)控全部或部分動態(tài)行為和計算機系統(tǒng)的狀態(tài),就像NIDPS將動態(tài)檢查網(wǎng)絡(luò)數(shù)據(jù)包一樣,HIDPS可能會檢測哪個程序訪問了哪些資源。還有一種互補的方法,它結(jié)合了基于網(wǎng)絡(luò)和基于主機的組件,為部署提供了更大的靈活性。
3) 基于應(yīng)用程序(AIDPS):通過分析應(yīng)用程序日志文件或測量其性能,專注于某些特定應(yīng)用程序中發(fā)生的事件。它的輸入是運行應(yīng)用程序的數(shù)據(jù)源[15-16]。
實時檢測中,在監(jiān)視系統(tǒng)或網(wǎng)絡(luò)的入侵時識別攻擊,并且可以立即標記任何偏差并提供適當?shù)念A(yù)防;還可以通過歷史數(shù)據(jù)運行實時IDPS以進行離線分析,以識別過去的入侵。相比之下,非實時IDPS會延遲審核數(shù)據(jù)。審計數(shù)據(jù)可以從幾個不同的位置或來源以分布式方式收集,或者可以從一個單一來源以集中方式收集。確定的檢測方法可分為3類,即誤用、異常和混合模型,結(jié)合前兩類:
1) 誤用檢測:該方法使用特定已知的未授權(quán)行為模式(稱為簽名)來預(yù)測和檢測后續(xù)的類似嘗試。
2) 異常檢測:旨在揭示異常的行為模式。IDPS建立了正常使用模式的基線,無論如何偏離此標記都被標記為可能的入侵。被認為是異常的東西可能會有所不同,但通常情況下,任何頻率大于或小于統(tǒng)計標準偏差的事件都會引起人們的注意。提出了各種類型的異常檢測,但最常用的3種類型如下:
統(tǒng)計:在這種方法中,系統(tǒng)以術(shù)語觀察主體的活動(例如CPU使用率或TCP連接數(shù))統(tǒng)計分布并創(chuàng)建代表其行為的概況。因此,它們制作2個配置文件:一個在訓(xùn)練階段制作,另一個是檢測期間的當前配置文件。如果這2個配置文件之間存在差異,則會識別出異常。
基于機器學(xué)習:該技術(shù)具有學(xué)習和提高其性能的能力。它傾向于專注構(gòu)建一個系統(tǒng),該系統(tǒng)可以在循環(huán)周期中優(yōu)化其性能,并可以根據(jù)反饋信息改變其執(zhí)行策略?;谙到y(tǒng)調(diào)用的序列分析,貝葉斯網(wǎng)絡(luò)和馬爾可夫模型是最常用的技術(shù)。
基于數(shù)據(jù)挖掘:數(shù)據(jù)挖掘技術(shù)可以通過展開數(shù)據(jù)中的模式、關(guān)聯(lián)、異常、變化以及重要事件和結(jié)構(gòu)來幫助改進入侵檢測過程[17-19]。分類、聚類和異常檢測以及關(guān)聯(lián)規(guī)則發(fā)現(xiàn)是IDPS中使用的數(shù)據(jù)挖掘技術(shù)。
3) 混合檢測:已經(jīng)提出這種方法通過結(jié)合2種濫用和異常方法來增強當前IDPS的能力。主要思想是誤用檢測已知攻擊,而異常則檢測到未知攻擊。
近年來,越來越多的研究工作將數(shù)據(jù)挖掘技術(shù)應(yīng)用于各種問題,在本文中,將其應(yīng)用于入侵檢測系統(tǒng)中。圖1說明了該工作的架構(gòu)。重要特征的選擇是入侵檢測的第一步。特征選擇是根據(jù)一定的標準選擇原始特征子集的過程,對于高維數(shù)據(jù)具有重要意義。設(shè)F為特征集,特征個數(shù)為n。特性的不同子集的復(fù)雜度為2n-1。其中,在KDD CUP 99數(shù)據(jù)集[20]中n=39,子集數(shù)量非常大且詳盡。
處理所有這些子集并獲得枚舉解決方案超出了實際解決方案的范圍,因此必須采用不同的策略。特征選擇算法可分為基于濾波器的特征選擇和基于包裝的特征選擇兩大類。元啟發(fā)式螢火蟲算法是最早提出的一種啟發(fā)式算法,包含在包裝器方法中,到目前為止,NIDS的任何現(xiàn)有工作都沒有考慮這種方法。構(gòu)造較少的特征也可以提高網(wǎng)絡(luò)入侵檢測的效率。
IDPS的結(jié)構(gòu)基于2種類型:個人或協(xié)作。通過將其物理地集成在防火墻內(nèi)來實現(xiàn)IDPS的單獨安排。協(xié)作IDPS由大型網(wǎng)絡(luò)上的多個IDPS組成,每個IDPS彼此通信。每個IDPS都有2個主要功能組件:檢測元素和相關(guān)處理程序。檢測元件由幾個檢測組件組成,這些組件分別監(jiān)控它們自己的子網(wǎng)或主機并生成低級警報。然后,關(guān)聯(lián)處理程序?qū)⒌图墑e警報轉(zhuǎn)換為攻擊的高級別報告。
在本工作中,使用了KDD CUP 99數(shù)據(jù)集,它由普通類型和攻擊類型(22種不同類型)組成。每條數(shù)據(jù)記錄都是由一組超過2 s的數(shù)據(jù)包構(gòu)成,這些數(shù)據(jù)包是建立到同一目的地的連接的窗口。每個數(shù)據(jù)記錄有39個特性。前10個特征表示連接上數(shù)據(jù)包的基本統(tǒng)計信息,后11個特征表示數(shù)據(jù)包的內(nèi)容,另外9個特征表示流量信息,最后9個特性表示基于主機的特性。在一段時間內(nèi)進入網(wǎng)絡(luò)的攻擊有不同的類型,主要分為以下4類:
1) 拒絕服務(wù)(denial of service,Dos):攻擊者試圖阻止合法用戶使用服務(wù)。
2) 遠程到本地(remote to local,R2L):攻擊者沒有受害者機器上的帳戶,但試圖獲得。
3) 用戶根(user to root,U2R):攻擊者有本地訪問受害者機器,試圖獲得超級用戶權(quán)限。
4) 探針(Probe):攻擊者試圖獲得目標主機的信息。
基于訓(xùn)練數(shù)據(jù)的一般特征對特征進行評價,不依賴于任何挖掘算法。它根據(jù)子集的信息內(nèi)容進行評估,這些信息內(nèi)容可以是相互信息,也可以是信息增益。我們選擇了最大互信息(maximum mutual information,MI)的特征。2個隨機變量之間的互信息由熵來度量,熵可以量化隨機變量的不確定性,有效地衡量隨機變量之間共享的信息量。
設(shè)X為離散隨機變量,其不確定性可以用熵H(X)表示,熵H(X)的計算公式為:
(1)
在香農(nóng)熵和概率分布p(x)為每個可能的事件x∈Ω(所有可能的事件)。設(shè)Y是X的類標,有關(guān)節(jié)熵H(X,Y)如下:
(2)
式中p(x,y)為x和y的聯(lián)合概率分布函數(shù),互信息I(X,Y)在表示數(shù)據(jù)集X的變量與類標簽Y之間定義為:
(3)
設(shè)Ss是F上的一個子集,C是類標簽。如果特征Fi∈F提供的C類信息在子集Ss中所有選擇的特征之間具有最大的相互信息,則選擇特征Fi。圖2為基于濾波器的特征選擇方法。
圖2 基于濾波器的特征選擇
本研究提出了基于濾波器和包裝器的特征選擇方法,并對KDD CUP 99數(shù)據(jù)進行了實驗。該方法不從大量的網(wǎng)絡(luò)流量中構(gòu)造大量的特征,而是選擇最突出的特征,并利用這些特征快速有效地檢測入侵。采用基于濾波器和包裝器的特征選擇方法,基于濾波器的特征選擇利用信息增益,根據(jù)屬性與類之間的相關(guān)性選擇重要特征,根據(jù)等級選擇重要屬性?;诎b器的特征選擇采用了一些搜索方法來選擇特征子集,并利用貝葉斯網(wǎng)絡(luò)對所選特征子集進行了評價,以C4.5和貝葉斯網(wǎng)絡(luò)為分類器,采用MIFA作為基于包裝器的特征選擇策略。
一般有2種隨機算法:啟發(fā)式算法和元啟發(fā)式算法。啟發(fā)式的含義是“尋找”或“試錯發(fā)現(xiàn)”,元啟發(fā)式是啟發(fā)式的改進版。螢火蟲算法是最早提出的一種啟發(fā)式算法,該算法假定螢火蟲是被它們的亮度所吸引的。任何優(yōu)化問題的目標函數(shù)都可以映射成螢火蟲的亮度。
螢火蟲算法存在2個重要問題:亮度變化和吸引力公式。因此,2個螢火蟲i和j之間的吸引力隨著距離的變化而變化,而亮度隨著距離光源的距離而降低。另一個因素是介質(zhì)的吸收系數(shù),它會影響吸引力。因此,一個螢火蟲與另一個光源亮度為B的螢火蟲半徑(r)處的亮度為
B(r)=B0e-γr
(4)
式中:B0為原始亮度;γ是任意2個螢火蟲之間的距離,是控制光強下降的光吸收系數(shù)。由于螢火蟲的吸引力與另一只螢火蟲看到的亮度成正比,螢火蟲的吸引力為:
A(r)=A0e-γr
(5)
式中A0是r=0處的吸引力。第i只螢火蟲被第j只螢火蟲吸引,運動有
(6)
式中:β為隨機化參數(shù);R是一個隨機數(shù)生成器,均勻分布在0~1范圍;t表示迭代次數(shù)。維數(shù)為D(d=1,…,D),rij為第i只螢火蟲與第j只螢火蟲之間的距離,由式(7)定義。
(7)
本文維數(shù)(D)為41,表示與網(wǎng)絡(luò)入侵檢測相關(guān)的特征的總數(shù)。特征選擇的復(fù)雜度為2D,是一類非確定性多項式問題。因此,需要選擇有效的特性來降低實時部署的計算復(fù)雜度和存儲空間,給出了基于互信息和螢火蟲算法映射到NIDS的特征選擇偽碼。
在對中間階段特征選擇的評價中使用了C4.5和貝葉斯網(wǎng)絡(luò)。每只螢火蟲表示具有D個特征的二元矢量,表示為vi=(vi1,vi2,vi3,…,viD),i=1…n,其中n為螢火蟲的數(shù)量。vi中的每個元素都被限制為0或1,表示是否選擇了該流量特性。換句話說,每個螢火蟲vi被定位為d維向量空間中的一個點。特征集的子集(39個特征)由特征集中存在0或1的不同組合表示。
每只螢火蟲在搜索空間中向一個方向移動,根據(jù)分類器模型對所選特征子集的精度找到最優(yōu)特征子集。評價器(分類器模型)對所選特征的準確性被認為是螢火蟲的目標函數(shù)或亮度。準確度/亮度較低的螢火蟲會使用公式(6)向準確度/亮度較高的方向移動,2個螢火蟲之間的距離用公式(7)計算。螢火蟲算法產(chǎn)生的特征數(shù)量是變化的。
為了在MIFA中有效實現(xiàn)固定數(shù)量的特征,本文提出了自適應(yīng)策略,這是本文在NIDS中提出工作的新穎之處。它通過螢火蟲算法生成固定數(shù)目的特征來控制特征的添加或刪除過程。
在本研究中,選擇的特征數(shù)量固定在k處,如果得到的特征數(shù)量|vd=1|,說明m
(8)
(9)
MIFA算法(n,L,C,k,Tmax)
//輸入:螢火蟲的數(shù)量n
//輸入:攻擊類標簽L,分類器C
//輸入:要選擇的特征的數(shù)量k
//輸出:螢火蟲位置的改變v
//所選網(wǎng)絡(luò)流特性集
//Tmax-最大迭代次數(shù)
{
θi,i=1,n=evaluateclassifier(vi)
sort(θ)
t=1
while (t { fori=1 ton { fori=1 ton//i≠j { if (θi<θj) { move(i,j) //使用公式(6) updateAttractivenss(i,j)//使用公式(5) vid=update(vid) vi=MIAS(vi,k) //使用公式(8) θi=evaluateclassifier(vi) } } } sort(θ) t=t+1 } return(v) } 在本文中,3種不同類型的特征選擇策略采用情況如下: 特性集包括基于互信息特性集(S1);通過包裝器方法與C4.5獲得的特性集(S2);以及MIFA與貝葉斯網(wǎng)絡(luò)特性集(S3)。 根據(jù)投票從這些特征集中選擇特征(如果3個特征集中至少有2個特征,則從這3個特征集中選擇1個特征),如式(10)所示: S={f∶f∈((S1∩S2)∪ (S1∩S3)∪(S2∩S3))} (10) 最后得到的特征集用作C4.5分類器的輸入。 本文采用KDD CUP 99數(shù)據(jù)集進行實驗設(shè)置,該數(shù)據(jù)集是目前入侵檢測中比較流行的數(shù)據(jù)集之一。硬件環(huán)境是MacBook Pro (13″,2017),CPU_Intel Core i5/顯卡_Intel Iris Plus Graphics 640,2.3 GHz,硬盤_256 G/內(nèi)存_8 G/。如前所述,在NSL-KDD中,記錄被很好地標記為正?;虼_切類型的攻擊。表1描述了實驗中使用的攻擊樣本的分布情況。 表1 數(shù)據(jù)集描述 在KDD CUP 99數(shù)據(jù)集中,所有22種類型的攻擊都不是均勻分布的,這可能會降低入侵檢測的性能。本文提出的方法相比現(xiàn)有方法存在一些重疊的特點并加以突出。在大多數(shù)情況下,本文提出的方法獨特,是基于互信息的螢火蟲算法α=0.1(隨機參數(shù))、B0=1(基本吸引力)、γ=1(吸收系數(shù))、n=10(螢火蟲最大迭代數(shù))的初始參數(shù)的算法。 實驗選取特征(10個數(shù)字)和全部39個特征。對C4.5、樸素貝葉斯、貝葉斯網(wǎng)絡(luò)和隨機森林等分類器進行了研究,取得了良好的分類效果。對比C4.5和貝葉斯網(wǎng)絡(luò)對結(jié)果特征集的分類器精度,如表2所示。從表中可以看出:與所有39個特征的分類方法相比,該方法的性能有所提高。同時,對本文提出的工作的虛警率、f測度進行了比較,結(jié)果如表2、3所示。 表2 C4.5和BN分類器攻擊檢出率的比較 表3 C4.5和BN分類器攻擊假陽性率的比較 C4.5和貝葉斯網(wǎng)絡(luò)分類器對選取的10個特征和39個特征進行攻擊訓(xùn)練時間的比較如圖3、4所示。結(jié)果表明:構(gòu)建包含10個特征的模型所花費的時間比構(gòu)建包含39個特征的模型所花費的時間少。C4.5和貝葉斯網(wǎng)絡(luò)分類器對選取的10個特征和39個特征的檢測時間對比如圖5和圖6所示。 圖3 C4.5分類器對選定的10個特征和39個特征的攻擊訓(xùn)練時間的比較 圖4 BN分類器對選定的10個特征和39個特征的攻擊訓(xùn)練時間的比較 圖5 C4.5分類器對選定的10個特征和39個特征的攻擊測試時間的比較 圖6 BN分類器對選定的10個特征和39個特征的攻擊測試時間的比較 檢測具有10個特征的入侵所花費的時間少于具有39個特征的入侵所花費的時間。通過特征選擇,節(jié)省了訓(xùn)練和測試的計算時間。 文獻[20]在相同KDD CUP 99數(shù)據(jù)集下,利用遞歸神經(jīng)網(wǎng)絡(luò)進行入侵檢測的深度學(xué)習方法研究,結(jié)果表明:DoS、Probe、R2L和U2R攻擊的準確率分別為83.5%、24.7%、11.5%和83.4%。這些攻擊的假陽性率分別為2.1、0.8、0.1和2.2。在本工作中,提高了系統(tǒng)的報警精度和誤報率。在DoS、Probe、R2L、U2R攻擊中,準確率分別提高了99.98%、93.42%、98.73%、68.97%,假陽性率分別提高了0.01、0.01、0、0。 網(wǎng)絡(luò)入侵檢測面臨的最大挑戰(zhàn)之一是如何處理海量數(shù)據(jù)進行入侵檢測。NIDS的檢出率是根據(jù)樣本數(shù)量和特征數(shù)量來確定的。降維、提高檢測精度、降低假陽性率是入侵檢測數(shù)據(jù)挖掘技術(shù)的關(guān)鍵任務(wù)?,F(xiàn)有方法大多以KDD CUP 99和NSL-KDD數(shù)據(jù)集為基礎(chǔ),無法較為精確地識別網(wǎng)絡(luò)中的入侵行為。 本文提出了一種新的基于KDD CUP 99數(shù)據(jù)集的特征選擇算法。從特征總數(shù)(39)中選擇合適的特征來檢測網(wǎng)絡(luò)中的入侵?;诨バ畔?MI)和貝葉斯網(wǎng)絡(luò)包裝器的特征選擇方法,采用C4.5進行特征選擇。只有最合適的10個特征檢測性能優(yōu)于39個特征,降低了分類器的計算成本,說明利用適當?shù)奶卣魈岣吡藱z測效率。提出的特征選擇技術(shù)比現(xiàn)有的特征選擇方法產(chǎn)生了更好的結(jié)果。未來考慮使用GPU設(shè)備進行擴展工作,以縮短計算時間和提升改進結(jié)果性能。4 結(jié)果和討論
4.1 基于KDD CUP 99的實驗
4.2 結(jié)果與分析
5 結(jié)束語