張鈺莎,蔣盛益
(1.湖南信息學院 電子信息學院, 長沙 410151;2.廣東外語外貿大學 信息學院, 廣州 510006)
入侵檢測系統(intrusion detection systems,IDS)是安全信息系統的重要組成部分。在網絡中的入侵者試圖訪問網絡中的未授權資源時,監測和分析用戶的活動和系統行為是非常必要的。僅僅通過修改系統參數的配置,系統的行為則可能是不穩定的。因此,該系統必須具有定期監測的特征及其正常和異常活動的行為模式。基于實時部署和檢測機制的IDS有2種類型,基于部署的IDS可分為基于主機的IDS(Host IDS,HIDS)和基于網絡的IDS(Net IDS,NIDS)。HIDS監視計算系統的內部活動[1-2]。NIDS可實時動態監控網絡流量日志,并使用適當的檢測算法識別網絡中的潛在入侵。基于檢測機制的入侵檢測分為誤用檢測、異常檢測和混合入侵檢測。誤用檢測使用預定義的規則或簽名集來檢測已知的攻擊。異常檢測通過檢查系統狀態是否與建立的正常活動概要不同,構建一個正常活動概要來檢測未知的攻擊[3-4]。目前,各種IDS都使用數據挖掘技術來檢測入侵。大多數現有的IDS通過使用從網絡流量構造的所有屬性來檢測攻擊。但是,并不是所有的屬性都需要檢測攻擊。減少屬性或特征的數量可以縮短檢測時間,提高檢測率。
文獻[5]提出了一種基于神經網絡的NIDS算法,并給出了計算復雜度較低的改進算法。文獻[6]提出了K-Medoids聚類和樸素貝葉斯(Naive Bayes)分類相結合的混合方法。首先,對所有數據進行聚類,形成一個組,然后使用分類器進行分類,以識別網絡中的入侵。由于網絡流量記錄特征的不同組合,研究人員引入了優化技術。文獻[7]將人工神經網絡(artificial neural network,ANN)和貝葉斯網絡(bayesian net,BN)集成在一起,采用一個以上的弱分類器,利用增益比(gain ratio,GR)特征選擇技術進行入侵檢測。主成分分析(principal component analysis,PCA)是選擇特征的工具方法之一。文獻[8]分析了WEKA中的KDD Cup數據集并計算了準確度。我們分析出全特征數據集的準確性不高,算法分類或運行時間很長。通過特征選擇或過濾方法,提高了精度,并且還縮短了算法運行時間。文獻[9]嘗試了并行計算模型和自然啟發的特征選擇技術,提出了一種高效的特征選擇和分類方法,以獲得優化的檢測率,同時采用映射約簡編程模型選擇計算復雜度低的最優子集。盡管有這些優點,但是這些方法仍然很難部署到真實的網絡環境中,而且檢測精度也不夠高。
本文提出了基于濾波器和包裝器的特征選擇方法,并對KDD CUP 99數據進行了實驗。雖然在NIDS的特征選擇、分類器等方面已有多種技術,但本文主要研究了螢火蟲特征選擇和C4.5分類器的元啟發式方法,并與貝葉斯網絡分類器進行了比較。本文方法NIDS的檢出率根據樣本數量和特征數量來確定,可有效降維,且提高了檢測精度,降低了假陽性率。主要創新點如下:
1) 基于濾波器和包裝器的方法相結合,選擇合適的特征進行網絡檢測入侵,在不損害檢測率的情況下減少性能改進的特性數量。
2) 以C4.5和貝葉斯網絡為分類器,采用互信息螢火蟲算法(MIFA)作為基于包裝器的特征選擇策略,基于包裝器的特征選擇采用了一些搜索方法來選擇特征子集,并利用貝葉斯網絡對所選特征子集進行了評價。
入侵檢測是監控計算機或網絡進行未經授權的進入、活動或文件修改的過程[10-12]。攻擊多發生在被稱為事件的特殊群體中。雖然一些事件在本質上是惡意的,但許多事件并非如此,例如,某人可能會錯誤地輸入計算機地址,并在未經授權的情況下意外嘗試連接到其他系統。IDS是一種自動執行入侵檢測過程并檢測可能入侵的軟件。IDPS是一種軟件或硬件設備,具有入侵檢測系統的所有功能,還可以嘗試停止可能的事件。IPS與IDS的區別在于一個特征:IPS可以通過試圖阻止它成功來響應檢測到的威脅。
IPS會更改攻擊的內容或更改安全環境,可以更改其他安全控制的配置以中斷攻擊,例如重新配置網絡設備以阻止攻擊者或受害者訪問,或者更改目標上基于主機的防火墻以阻止傳入攻擊[13-14]。一些IPS可以刪除或替換攻擊的惡意部分以使其成為良性。由于異常檢測的誤報率很高,IPS錯誤地將合法的非侵入性正常活動識別為惡意,并且不正確地響應檢測到的活動。圖1顯示了藍色框中的傳統IDPS,它通過收集審計數據,分析數據和檢測入侵,生成警報并繼續進行適當的響應在云中工作。此過程僅針對其中一個實體顯示,同時需要為所有實體一致地執行此過程以保護云資源免受惡意活動的影響。
IDPS通過分析收集的數據來檢測入侵。受監控的環境可以基于網絡、基于主機或基于應用程序:
1) 基于網絡(NIDPS):監控特定網段或設備的網絡流量,并分析網絡和應用程序協議活動以識別可疑活動。
2) 基于主機(HIDPS):監控全部或部分動態行為和計算機系統的狀態,就像NIDPS將動態檢查網絡數據包一樣,HIDPS可能會檢測哪個程序訪問了哪些資源。還有一種互補的方法,它結合了基于網絡和基于主機的組件,為部署提供了更大的靈活性。
3) 基于應用程序(AIDPS):通過分析應用程序日志文件或測量其性能,專注于某些特定應用程序中發生的事件。它的輸入是運行應用程序的數據源[15-16]。
實時檢測中,在監視系統或網絡的入侵時識別攻擊,并且可以立即標記任何偏差并提供適當的預防;還可以通過歷史數據運行實時IDPS以進行離線分析,以識別過去的入侵。相比之下,非實時IDPS會延遲審核數據。審計數據可以從幾個不同的位置或來源以分布式方式收集,或者可以從一個單一來源以集中方式收集。確定的檢測方法可分為3類,即誤用、異常和混合模型,結合前兩類:
1) 誤用檢測:該方法使用特定已知的未授權行為模式(稱為簽名)來預測和檢測后續的類似嘗試。
2) 異常檢測:旨在揭示異常的行為模式。IDPS建立了正常使用模式的基線,無論如何偏離此標記都被標記為可能的入侵。被認為是異常的東西可能會有所不同,但通常情況下,任何頻率大于或小于統計標準偏差的事件都會引起人們的注意。提出了各種類型的異常檢測,但最常用的3種類型如下:
統計:在這種方法中,系統以術語觀察主體的活動(例如CPU使用率或TCP連接數)統計分布并創建代表其行為的概況。因此,它們制作2個配置文件:一個在訓練階段制作,另一個是檢測期間的當前配置文件。如果這2個配置文件之間存在差異,則會識別出異常。
基于機器學習:該技術具有學習和提高其性能的能力。它傾向于專注構建一個系統,該系統可以在循環周期中優化其性能,并可以根據反饋信息改變其執行策略。基于系統調用的序列分析,貝葉斯網絡和馬爾可夫模型是最常用的技術。
基于數據挖掘:數據挖掘技術可以通過展開數據中的模式、關聯、異常、變化以及重要事件和結構來幫助改進入侵檢測過程[17-19]。分類、聚類和異常檢測以及關聯規則發現是IDPS中使用的數據挖掘技術。
3) 混合檢測:已經提出這種方法通過結合2種濫用和異常方法來增強當前IDPS的能力。主要思想是誤用檢測已知攻擊,而異常則檢測到未知攻擊。
近年來,越來越多的研究工作將數據挖掘技術應用于各種問題,在本文中,將其應用于入侵檢測系統中。圖1說明了該工作的架構。重要特征的選擇是入侵檢測的第一步。特征選擇是根據一定的標準選擇原始特征子集的過程,對于高維數據具有重要意義。設F為特征集,特征個數為n。特性的不同子集的復雜度為2n-1。其中,在KDD CUP 99數據集[20]中n=39,子集數量非常大且詳盡。
處理所有這些子集并獲得枚舉解決方案超出了實際解決方案的范圍,因此必須采用不同的策略。特征選擇算法可分為基于濾波器的特征選擇和基于包裝的特征選擇兩大類。元啟發式螢火蟲算法是最早提出的一種啟發式算法,包含在包裝器方法中,到目前為止,NIDS的任何現有工作都沒有考慮這種方法。構造較少的特征也可以提高網絡入侵檢測的效率。
IDPS的結構基于2種類型:個人或協作。通過將其物理地集成在防火墻內來實現IDPS的單獨安排。協作IDPS由大型網絡上的多個IDPS組成,每個IDPS彼此通信。每個IDPS都有2個主要功能組件:檢測元素和相關處理程序。檢測元件由幾個檢測組件組成,這些組件分別監控它們自己的子網或主機并生成低級警報。然后,關聯處理程序將低級別警報轉換為攻擊的高級別報告。
在本工作中,使用了KDD CUP 99數據集,它由普通類型和攻擊類型(22種不同類型)組成。每條數據記錄都是由一組超過2 s的數據包構成,這些數據包是建立到同一目的地的連接的窗口。每個數據記錄有39個特性。前10個特征表示連接上數據包的基本統計信息,后11個特征表示數據包的內容,另外9個特征表示流量信息,最后9個特性表示基于主機的特性。在一段時間內進入網絡的攻擊有不同的類型,主要分為以下4類:
1) 拒絕服務(denial of service,Dos):攻擊者試圖阻止合法用戶使用服務。
2) 遠程到本地(remote to local,R2L):攻擊者沒有受害者機器上的帳戶,但試圖獲得。
3) 用戶根(user to root,U2R):攻擊者有本地訪問受害者機器,試圖獲得超級用戶權限。
4) 探針(Probe):攻擊者試圖獲得目標主機的信息。
基于訓練數據的一般特征對特征進行評價,不依賴于任何挖掘算法。它根據子集的信息內容進行評估,這些信息內容可以是相互信息,也可以是信息增益。我們選擇了最大互信息(maximum mutual information,MI)的特征。2個隨機變量之間的互信息由熵來度量,熵可以量化隨機變量的不確定性,有效地衡量隨機變量之間共享的信息量。
設X為離散隨機變量,其不確定性可以用熵H(X)表示,熵H(X)的計算公式為:
(1)
在香農熵和概率分布p(x)為每個可能的事件x∈Ω(所有可能的事件)。設Y是X的類標,有關節熵H(X,Y)如下:
(2)
式中p(x,y)為x和y的聯合概率分布函數,互信息I(X,Y)在表示數據集X的變量與類標簽Y之間定義為:
(3)
設Ss是F上的一個子集,C是類標簽。如果特征Fi∈F提供的C類信息在子集Ss中所有選擇的特征之間具有最大的相互信息,則選擇特征Fi。圖2為基于濾波器的特征選擇方法。

圖2 基于濾波器的特征選擇
本研究提出了基于濾波器和包裝器的特征選擇方法,并對KDD CUP 99數據進行了實驗。該方法不從大量的網絡流量中構造大量的特征,而是選擇最突出的特征,并利用這些特征快速有效地檢測入侵。采用基于濾波器和包裝器的特征選擇方法,基于濾波器的特征選擇利用信息增益,根據屬性與類之間的相關性選擇重要特征,根據等級選擇重要屬性。基于包裝器的特征選擇采用了一些搜索方法來選擇特征子集,并利用貝葉斯網絡對所選特征子集進行了評價,以C4.5和貝葉斯網絡為分類器,采用MIFA作為基于包裝器的特征選擇策略。
一般有2種隨機算法:啟發式算法和元啟發式算法。啟發式的含義是“尋找”或“試錯發現”,元啟發式是啟發式的改進版。螢火蟲算法是最早提出的一種啟發式算法,該算法假定螢火蟲是被它們的亮度所吸引的。任何優化問題的目標函數都可以映射成螢火蟲的亮度。
螢火蟲算法存在2個重要問題:亮度變化和吸引力公式。因此,2個螢火蟲i和j之間的吸引力隨著距離的變化而變化,而亮度隨著距離光源的距離而降低。另一個因素是介質的吸收系數,它會影響吸引力。因此,一個螢火蟲與另一個光源亮度為B的螢火蟲半徑(r)處的亮度為
B(r)=B0e-γr
(4)
式中:B0為原始亮度;γ是任意2個螢火蟲之間的距離,是控制光強下降的光吸收系數。由于螢火蟲的吸引力與另一只螢火蟲看到的亮度成正比,螢火蟲的吸引力為:
A(r)=A0e-γr
(5)
式中A0是r=0處的吸引力。第i只螢火蟲被第j只螢火蟲吸引,運動有
(6)
式中:β為隨機化參數;R是一個隨機數生成器,均勻分布在0~1范圍;t表示迭代次數。維數為D(d=1,…,D),rij為第i只螢火蟲與第j只螢火蟲之間的距離,由式(7)定義。
(7)
本文維數(D)為41,表示與網絡入侵檢測相關的特征的總數。特征選擇的復雜度為2D,是一類非確定性多項式問題。因此,需要選擇有效的特性來降低實時部署的計算復雜度和存儲空間,給出了基于互信息和螢火蟲算法映射到NIDS的特征選擇偽碼。
在對中間階段特征選擇的評價中使用了C4.5和貝葉斯網絡。每只螢火蟲表示具有D個特征的二元矢量,表示為vi=(vi1,vi2,vi3,…,viD),i=1…n,其中n為螢火蟲的數量。vi中的每個元素都被限制為0或1,表示是否選擇了該流量特性。換句話說,每個螢火蟲vi被定位為d維向量空間中的一個點。特征集的子集(39個特征)由特征集中存在0或1的不同組合表示。
每只螢火蟲在搜索空間中向一個方向移動,根據分類器模型對所選特征子集的精度找到最優特征子集。評價器(分類器模型)對所選特征的準確性被認為是螢火蟲的目標函數或亮度。準確度/亮度較低的螢火蟲會使用公式(6)向準確度/亮度較高的方向移動,2個螢火蟲之間的距離用公式(7)計算。螢火蟲算法產生的特征數量是變化的。
為了在MIFA中有效實現固定數量的特征,本文提出了自適應策略,這是本文在NIDS中提出工作的新穎之處。它通過螢火蟲算法生成固定數目的特征來控制特征的添加或刪除過程。
在本研究中,選擇的特征數量固定在k處,如果得到的特征數量|vd=1|,說明m

(8)
(9)

MIFA算法(n,L,C,k,Tmax)
//輸入:螢火蟲的數量n
//輸入:攻擊類標簽L,分類器C
//輸入:要選擇的特征的數量k
//輸出:螢火蟲位置的改變v
//所選網絡流特性集
//Tmax-最大迭代次數
{
θ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與貝葉斯網絡特性集(S3)。 根據投票從這些特征集中選擇特征(如果3個特征集中至少有2個特征,則從這3個特征集中選擇1個特征),如式(10)所示: S={f∶f∈((S1∩S2)∪ (S1∩S3)∪(S2∩S3))} (10) 最后得到的特征集用作C4.5分類器的輸入。 本文采用KDD CUP 99數據集進行實驗設置,該數據集是目前入侵檢測中比較流行的數據集之一。硬件環境是MacBook Pro (13″,2017),CPU_Intel Core i5/顯卡_Intel Iris Plus Graphics 640,2.3 GHz,硬盤_256 G/內存_8 G/。如前所述,在NSL-KDD中,記錄被很好地標記為正常或確切類型的攻擊。表1描述了實驗中使用的攻擊樣本的分布情況。 表1 數據集描述 在KDD CUP 99數據集中,所有22種類型的攻擊都不是均勻分布的,這可能會降低入侵檢測的性能。本文提出的方法相比現有方法存在一些重疊的特點并加以突出。在大多數情況下,本文提出的方法獨特,是基于互信息的螢火蟲算法α=0.1(隨機參數)、B0=1(基本吸引力)、γ=1(吸收系數)、n=10(螢火蟲最大迭代數)的初始參數的算法。 實驗選取特征(10個數字)和全部39個特征。對C4.5、樸素貝葉斯、貝葉斯網絡和隨機森林等分類器進行了研究,取得了良好的分類效果。對比C4.5和貝葉斯網絡對結果特征集的分類器精度,如表2所示。從表中可以看出:與所有39個特征的分類方法相比,該方法的性能有所提高。同時,對本文提出的工作的虛警率、f測度進行了比較,結果如表2、3所示。 表2 C4.5和BN分類器攻擊檢出率的比較 表3 C4.5和BN分類器攻擊假陽性率的比較 C4.5和貝葉斯網絡分類器對選取的10個特征和39個特征進行攻擊訓練時間的比較如圖3、4所示。結果表明:構建包含10個特征的模型所花費的時間比構建包含39個特征的模型所花費的時間少。C4.5和貝葉斯網絡分類器對選取的10個特征和39個特征的檢測時間對比如圖5和圖6所示。 圖3 C4.5分類器對選定的10個特征和39個特征的攻擊訓練時間的比較 圖4 BN分類器對選定的10個特征和39個特征的攻擊訓練時間的比較 圖5 C4.5分類器對選定的10個特征和39個特征的攻擊測試時間的比較 圖6 BN分類器對選定的10個特征和39個特征的攻擊測試時間的比較 檢測具有10個特征的入侵所花費的時間少于具有39個特征的入侵所花費的時間。通過特征選擇,節省了訓練和測試的計算時間。 文獻[20]在相同KDD CUP 99數據集下,利用遞歸神經網絡進行入侵檢測的深度學習方法研究,結果表明:DoS、Probe、R2L和U2R攻擊的準確率分別為83.5%、24.7%、11.5%和83.4%。這些攻擊的假陽性率分別為2.1、0.8、0.1和2.2。在本工作中,提高了系統的報警精度和誤報率。在DoS、Probe、R2L、U2R攻擊中,準確率分別提高了99.98%、93.42%、98.73%、68.97%,假陽性率分別提高了0.01、0.01、0、0。 網絡入侵檢測面臨的最大挑戰之一是如何處理海量數據進行入侵檢測。NIDS的檢出率是根據樣本數量和特征數量來確定的。降維、提高檢測精度、降低假陽性率是入侵檢測數據挖掘技術的關鍵任務。現有方法大多以KDD CUP 99和NSL-KDD數據集為基礎,無法較為精確地識別網絡中的入侵行為。 本文提出了一種新的基于KDD CUP 99數據集的特征選擇算法。從特征總數(39)中選擇合適的特征來檢測網絡中的入侵。基于互信息(MI)和貝葉斯網絡包裝器的特征選擇方法,采用C4.5進行特征選擇。只有最合適的10個特征檢測性能優于39個特征,降低了分類器的計算成本,說明利用適當的特征提高了檢測效率。提出的特征選擇技術比現有的特征選擇方法產生了更好的結果。未來考慮使用GPU設備進行擴展工作,以縮短計算時間和提升改進結果性能。4 結果和討論
4.1 基于KDD CUP 99的實驗

4.2 結果與分析






5 結束語