韋 堯 王昌達(dá)
(江蘇大學(xué)計算機(jī)科學(xué)與通信工程學(xué)院 江蘇 鎮(zhèn)江 212013)
網(wǎng)絡(luò)通信技術(shù)的高速發(fā)展使得網(wǎng)絡(luò)安全問題日益突出。據(jù)統(tǒng)計,近年來,安全事件的數(shù)量出現(xiàn)了成倍增長的趨勢。目前網(wǎng)絡(luò)攻擊的手段大約有兩三千種,為了應(yīng)對這些事件,確保網(wǎng)絡(luò)的安全,市面上出現(xiàn)了各種各樣的安全產(chǎn)品和技術(shù),例如:防火墻,身份認(rèn)證系統(tǒng),VPN設(shè)備等。但這些都屬于靜態(tài)檢測的方法,當(dāng)面對突發(fā)事件或是需要實時監(jiān)控時,入侵檢測系統(tǒng)將會發(fā)揮重要作用。
入侵檢測系統(tǒng)的原理是通過收集并分析網(wǎng)絡(luò)中關(guān)鍵點的信息來判斷網(wǎng)絡(luò)是否被攻擊或網(wǎng)絡(luò)中是否有違反安全策略的現(xiàn)象,并對這些異常現(xiàn)象作出反應(yīng),從而保證網(wǎng)絡(luò)的安全性。
由于網(wǎng)絡(luò)流量具有自相似、重尾分布和長相關(guān)[1]等特征,而熵值正好可以用來描述此類特征并分析網(wǎng)絡(luò)流量的分布規(guī)律,所以基于熵的入侵檢測系統(tǒng)的研究成為近年來入侵檢測研究的一個熱點。
入侵檢測系統(tǒng)(Intrusion Detection Systems,IDS)是指檢測入侵的軟件加硬件。入侵檢測系統(tǒng)有別于防火墻,它對于網(wǎng)絡(luò)的監(jiān)測并不影響網(wǎng)絡(luò)的整體性能。一般根據(jù)信息源、檢測方式,以及響應(yīng)方式三個不同的方面對IDS進(jìn)行分類[2]。依據(jù)信息來源的不同,將入侵檢測系統(tǒng)分為基于網(wǎng)絡(luò)的IDS和基于主機(jī)的IDS。依據(jù)檢測的方式不同,將IDS分為誤用IDS和異常IDS。依據(jù)對入侵攻擊的響應(yīng)方式不同,將入侵檢測系統(tǒng)分為主動IDS和被動IDS。這也是目前對于入侵檢測系統(tǒng)一種常用的分類方式。
基于特征選擇的入侵檢測可以做到實時地分析和檢測網(wǎng)絡(luò)中的異常流量,但對未知的攻擊類型檢測率低?;诮y(tǒng)計的入侵檢測方法適用于離線的非實時性的入侵檢測,但不能確定產(chǎn)生入侵的原因和異常的屬性?;谀P偷娜肭謾z測系統(tǒng)一般用于監(jiān)測重要的審計事件,并在事件發(fā)生后再進(jìn)行具體的審計分析來減少系統(tǒng)的負(fù)荷?;跈C(jī)器學(xué)習(xí)的入侵檢測方法在數(shù)據(jù)量較少時和動態(tài)的檢測方面效果不理想。
熵值可以定量地描述網(wǎng)絡(luò)流量特征,并且檢測的實時性好,對異常流量反應(yīng)的靈敏度高。此外,基于熵的入侵檢測識別網(wǎng)絡(luò)行為只依賴于數(shù)據(jù)包本身,不需要很多安全背景知識或用戶干預(yù),在入侵檢測領(lǐng)域顯示出巨大優(yōu)勢。用熵值來檢測網(wǎng)絡(luò)中異常流量或是評估網(wǎng)絡(luò)攻擊效果的原理是:一旦有異常流量或是網(wǎng)絡(luò)中有攻擊發(fā)生,網(wǎng)絡(luò)整體流量特征的熵值就會隨之改變,通過熵值的變化程度來檢測出異常,甚至可以用來判斷攻擊的效果和類型。而這里所說的熵值不只是信息熵,還引申出了活躍熵、相對熵、條件熵等。
德國物理學(xué)家T.Clausius在1865年提出了熵這個概念,將熵定義為:在一個可逆的過程中,輸入熱量相對于溫度的變化率。1877年左右Boltzmann將熵的概念應(yīng)用到熱力學(xué)中。Boltzmann在熱力學(xué)中對熵的定義為:
(1)
式中:i標(biāo)記所有可能的微觀態(tài),而Pi表示微觀態(tài)i的出現(xiàn)的概率,k是玻爾茲曼常數(shù)。一個系統(tǒng)中微觀狀態(tài)分布越均勻,那么這個系統(tǒng)就越混亂。
1948年C.E.Shannon將熵的概念引入到信息論中,被稱為信息熵或香農(nóng)熵。熱力學(xué)中的熵度量了微觀狀態(tài)的多樣性或均勻性,將其引入到信息理論中來看,信息熵也是對一個系統(tǒng)不確定性的度量,但它更標(biāo)志著一個系統(tǒng)不確定性信息量的大小,反映了信息源信號出現(xiàn)的機(jī)率。
假設(shè)系統(tǒng)處于不同的狀態(tài),每種狀態(tài)i出現(xiàn)的概率為Pi(i=1,2,…,n),則該系統(tǒng)的信息熵可以定義為:
(2)
熵值具有極值性,當(dāng)各特征分布狀態(tài)等概率時,熵值最大,即分布得越均勻,熵值越大,反之則越小。熵值用來表示特征分布的集中或離散程度,因此信息熵可以用來表示網(wǎng)絡(luò)流量特征值(如源/目的IP地址,源/目的端口號,數(shù)據(jù)包長度等)的分布特征。將網(wǎng)絡(luò)中網(wǎng)絡(luò)流的會話和數(shù)據(jù)包看成是離散的特征序列,并根據(jù)這些序列求得的信息熵可以反映網(wǎng)絡(luò)的通信狀態(tài)。當(dāng)攻擊到來時,某些特征的分布狀態(tài)會發(fā)生改變,這個特征的信息熵值就可以作為一種標(biāo)識來判斷攻擊的發(fā)生。例如:源IP地址的熵值在某一時間點突然變大,即說明在該時間點上出現(xiàn)的源IP地址的數(shù)分布是較為分散的,這種情況有可能出現(xiàn)了DDoS攻擊。相反,如果在該時間點信息熵值突然變小,則說明在該時間點上源IP地址的分布較為集中,這可能是由于蠕蟲病毒試圖感染大批量其余主機(jī)造成的。如果在該點多個指標(biāo)的熵值同時出現(xiàn)異常,那么該時間點存在異常的可能性極大。
用網(wǎng)絡(luò)流量的特征分布計算其信息熵值,并用信息熵值來判斷網(wǎng)絡(luò)異常流量的方法相比傳統(tǒng)入侵檢測方法,效率和準(zhǔn)確率更高,且可識別多種入侵類型。當(dāng)前國內(nèi)外相關(guān)研究如下:文獻(xiàn)[4]用NetFlow流量采集信息作為測試數(shù)據(jù),測試數(shù)據(jù)包括:源/目的IP地址,源/目的端口號四個屬性。將這四個屬性的狀態(tài)分布看成一組隨機(jī)的事件,并計算不同屬性的信息熵,再設(shè)定閾值并判斷入侵。陳鍶奇等[8]發(fā)現(xiàn)源/目的IP與端口、入度與出度、Flow流大小分布(FSD)、數(shù)據(jù)包的總數(shù)量(PKTS)這四個指標(biāo)的聯(lián)合使用是有效的異常檢測方案。
用信息熵來進(jìn)行入侵檢測也有一定的局限性,它只能體現(xiàn)某一固定時間節(jié)點的網(wǎng)絡(luò)狀況,而對于網(wǎng)絡(luò)流量動態(tài)的變化過程則不能很好體現(xiàn)。對低速DoS攻擊這種對網(wǎng)絡(luò)流量分布變化不明顯的攻擊類型,信息熵往往檢測效果較差。
相對熵又稱KL散度(Kullback-Leibler divergence),是一種用來描述兩種不同的概率分布差異的值。信息熵可以識別網(wǎng)絡(luò)異常,但存在兩個不同的屬性概率分布可以共享相同熵值的問題,這意味著兩個截然不同的概率向量可能具有相同的熵。因此,文獻(xiàn)[6]引入了描述兩個概率分布差異的相對熵。假設(shè)有兩個概率分布P和Q,則它們之間的差異即相對熵可定義為:
(3)
式中:P是當(dāng)前時段的屬性概率分布;Q可以表示上一時段的屬性概率分布,也可以表示系統(tǒng)正常的屬性概率分布,用作基線。當(dāng)且僅當(dāng)P=Q時,D(P‖Q)=0,表示P和Q的概率分布相同時它們的相對熵值等于0。D(P‖Q)值越小,表示P和Q的差異越小,D(P‖Q)值越大,表示P和Q差異越大。
相對熵檢測網(wǎng)絡(luò)入侵的原理:當(dāng)攻擊出現(xiàn)時,當(dāng)前時段的網(wǎng)絡(luò)流量分布相較于上一時段的網(wǎng)絡(luò)流量分布有較大差距,于是相對熵的差會急劇變化,當(dāng)超出或低于設(shè)定的閾值后,就認(rèn)定攻擊發(fā)生。
文獻(xiàn)[9]基于相對熵的概念,并類比了方差的概念,提出一種歸一化相對網(wǎng)絡(luò)熵(NRNE)。NRNE其實是來自不同屬性的所有個體相對網(wǎng)絡(luò)熵的和求平均。改進(jìn)的NRNE的優(yōu)點在于可以同時考慮更多的屬性,以便提高檢測的精度。文獻(xiàn)[11]將相對熵引入會話初始化協(xié)議(SIP)網(wǎng)絡(luò)中,用來反映網(wǎng)絡(luò)流量中的動態(tài)變遷。張登銀等[12]對網(wǎng)絡(luò)流量數(shù)據(jù)集進(jìn)行多維分層,劃定時間窗口并計算各個分析視圖上的相對熵從而判斷入侵的發(fā)生。
基于信息熵的檢測算法往往只能檢測出來自多個IP的DoS攻擊,一但發(fā)起攻擊的IP數(shù)量非常少,信息熵檢測效果較差。而在基于相對熵的檢測算法中,任何一個IP的流量變化都會引起整個流量分布的顯著變化,所以對以上的兩種情況,相對熵檢測算法都適用。相對熵檢測算法復(fù)雜度低,對DDoS、Probe等網(wǎng)絡(luò)異常流量檢測效果較好。不同的攻擊類型具有不同的特征屬性,這些特征屬性在攻擊發(fā)生時具有一定的內(nèi)在聯(lián)系,而相對熵卻不能表現(xiàn)出這種聯(lián)系,所以基于相對熵的檢測算法在區(qū)分正常的突發(fā)性流量和攻擊流量方面效果較差。
信息熵和相對熵理論的應(yīng)用一般缺少內(nèi)在相關(guān)性的考慮,且特征屬性的選擇對入侵檢測的結(jié)果具有很大的影響。條件熵的提出就是為了解決不同特征屬性相關(guān)性的問題,從而達(dá)到提高入侵檢測精度的目的。假設(shè)有兩個概率分布X和Y,它們的聯(lián)合概率空間為:
(4)
則XY的聯(lián)合熵為:
(5)
則Y關(guān)于X的條件熵為:
(6)
由式(5)和式(6)得到Y(jié)關(guān)于X的條件熵為:
H(Y|X)=H(XY)-H(X)
(7)
H(Y|X)可以理解為:在X給定條件下,Y的條件概率分布的熵相對于X的數(shù)學(xué)期望,也可以解釋為在已知X的條件下Y的不確定性。即已知H(X)這個信息量,在H(XY)中除去H(X)剩下的信息量就是條件熵H(Y|X)。
例如:合法用戶的突發(fā)流量對網(wǎng)絡(luò)的影響,經(jīng)常會被入侵檢測系統(tǒng)當(dāng)成網(wǎng)絡(luò)中發(fā)生了DDoS攻擊。在被DDoS攻擊的網(wǎng)絡(luò)中的,攻擊者將源IP地址改為隨機(jī)生成的偽IP地址,使得網(wǎng)絡(luò)中的源IP地址比正常網(wǎng)絡(luò)狀態(tài)下的源IP地址更加分散。在路由穩(wěn)定性原理中,固定的路由跳數(shù)(TTL值)對應(yīng)的源IP地址不易變化。所以當(dāng)網(wǎng)絡(luò)存在DDoS攻擊時,數(shù)據(jù)包經(jīng)過的路由跳數(shù)(TTL值)基本不變,但由于偽造源IP地址使得源IP地址的分布更加分散了,那么關(guān)于TTL的源IP地址的條件熵值會變大,從而更易判斷出入侵。因此,基于TTL的源IP條件熵檢測方法對比傳統(tǒng)的流量檢測方法在區(qū)分DDoS攻擊和合法用戶的突發(fā)流量上效果更好。
文獻(xiàn)[13]提出了一種基于加權(quán)條件熵的檢測方法,在現(xiàn)有條件熵理論基礎(chǔ)上,選取具備內(nèi)在相關(guān)性的網(wǎng)絡(luò)特征屬性,將屬性變量的主觀意義和實際價值作為度量標(biāo)準(zhǔn),根據(jù)不同事件產(chǎn)生的影響來為這個事件賦予不同的權(quán)值。加權(quán)熵的引用可以放大重要屬性的熵值來提高檢測的靈敏性。崔錫鑫等[14]通過實驗對比基于信息熵的異常流量檢測和基于聯(lián)合熵的異常流量檢測,發(fā)現(xiàn)由于聯(lián)合熵是根據(jù)攻擊特性選取數(shù)據(jù)包數(shù)和連接數(shù)作為分析對象,這是一種針對DoS攻擊的檢測策略,而基于聯(lián)合熵的異常流量檢測結(jié)果更加精確。
用單一特征屬性作為檢測的標(biāo)準(zhǔn),準(zhǔn)確率很低,而條件熵可以反映某種屬性不變的條件下,另一種屬性分布的情況,直觀地體現(xiàn)出它們的內(nèi)在聯(lián)系,對于端口掃描和非法訪問等攻擊手段和未知攻擊方面有良好的識別效率。但選擇更有效的特征屬性會對入侵檢測的性能和效率有極大的提升,所以根據(jù)不同的攻擊類型選擇不同的特征屬性將是條件熵檢測算法的一個難點。
基于活躍熵入侵檢測算法的模型定義如下:整個網(wǎng)絡(luò)系統(tǒng)包含n臺主機(jī),設(shè)為S={s1,s2,…,sn},每臺主機(jī)的一次交互動作記作一個動作單元v。當(dāng)系統(tǒng)內(nèi)主機(jī)和系統(tǒng)外主機(jī)有交互動作時,動作單元v的變化如下:系統(tǒng)外主機(jī)訪問系統(tǒng)內(nèi)主機(jī)時,v值加1,系統(tǒng)內(nèi)主機(jī)訪問系統(tǒng)外主機(jī)時,v值減1。經(jīng)過n次動作后,系統(tǒng)的狀態(tài)序列的集合定義為U={μ1,μ2,…,μn},則活躍度集合定義為A={a1,a2,…,ak},其中ai表示系統(tǒng)經(jīng)過一定的時間后,狀態(tài)μi出現(xiàn)的次數(shù)。用概率Pi可以表示狀態(tài)μi出現(xiàn)的概率,那么可以定義出相關(guān)各狀態(tài)的活躍度概率集合P={P1,P2,…,Pk}。結(jié)合信息熵理論,則活躍熵的定義如下:
(8)
當(dāng)某一節(jié)點主機(jī)的重要服務(wù)突然停止或這臺主機(jī)遭到攻擊時,其他主機(jī)對該主機(jī)訪問卻無法應(yīng)答報文的數(shù)量會急劇地增加。這樣會使系統(tǒng)產(chǎn)生大量的奇異狀態(tài),動作單元v值一直增加,致使活躍熵值發(fā)生突變。
劉衍珩等[16]基于活躍通信理論將網(wǎng)絡(luò)會話間的相關(guān)性和信息熵理論結(jié)合。用活躍熵來檢測DoS攻擊,與基于信息熵的入侵檢測方法相比,誤報率更低,檢測率更高。文獻(xiàn)[17]用活躍熵理論對Web模型進(jìn)行檢測,通過截獲HTTP協(xié)議的數(shù)據(jù)包,并在協(xié)議頭中提取關(guān)鍵數(shù)據(jù),例如GET、POST請求參數(shù),最后對提取數(shù)據(jù)的活躍熵值進(jìn)行計算分析。通過實驗證明,它只對特定的Web攻擊如SQL注入、DoS攻擊和暴力破解密碼等有效,對XSS、CSRF、文件上傳漏洞等方面檢測能力不足。穆祥昆等[18]根據(jù)網(wǎng)絡(luò)流量大小來控制流窗口區(qū)間的大小,對進(jìn)出系統(tǒng)的數(shù)據(jù)流統(tǒng)計后生成NetFlow記錄數(shù)據(jù),并對進(jìn)和出兩者的統(tǒng)計數(shù)據(jù)進(jìn)行活躍熵的計算,從而判斷異常流量。
基于活躍熵的入侵檢測方法是在流層面進(jìn)行操作的,對比基于學(xué)習(xí)模型的檢測方法,它無需進(jìn)行大量的特征訓(xùn)練,提升了整體流量指標(biāo)下檢測的效率,適用于分析整體流量概念下對大流量異常的檢測,同時對于新出現(xiàn)的DoS變種攻擊也能有效檢測。但這種方法對于XSS、CSRF、文件上傳漏洞等方面的檢測還有欠缺。
運用機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等算法來進(jìn)行熵的入侵檢測研究的例子也非常多。文獻(xiàn)[26]利用EWMA控制圖理論對時間序列的熵值進(jìn)行檢測和異常的篩選,并利用行為特征向量對三種網(wǎng)絡(luò)攻擊進(jìn)行分析和表征,進(jìn)行攻擊識別,最后,提出了一種基于特征相似性的攻擊識別方法。文獻(xiàn)[27]將時間數(shù)據(jù)的離群點檢測問題重新表述為基于熵和時間序列動態(tài)時間翹曲的加權(quán)聚類問題,并通過一個新的成本函數(shù)優(yōu)化問題來檢測異常值。文獻(xiàn)[28]提出了一種新的DDoS攻擊檢測模型,將Takagi-Sugeno-Kang模糊系統(tǒng)方法和累積和(CUSUM)檢測方法應(yīng)用于時間序列熵值的計算,檢測靈敏度高,魯棒性好。文獻(xiàn)[29]對初始聚類中心的選擇進(jìn)行優(yōu)化,并將信息熵與改進(jìn)K-means算法進(jìn)行融合,自動確定聚類數(shù)量,輸出穩(wěn)定的聚類結(jié)果。經(jīng)過主成分分析預(yù)處理后,改進(jìn)的K-means的對異常檢測的適應(yīng)性和精度更好,非常適用于移動網(wǎng)絡(luò)的異常檢測。
除了以上的熵值理論研究,還有更多新的基于熵值理論的入侵檢測方法被提出。文獻(xiàn)[30]將Renyi交叉熵方法應(yīng)用于信息熵向量檢測網(wǎng)絡(luò)攻擊。李向軍等[31]將鄰域關(guān)系概念引入直推式入侵檢測中,用相對鄰域的信息熵取代原本的特征向量距離,并提出一種抗噪性能強(qiáng)的TCM-RNE異常檢測算法來降低誤測率。文獻(xiàn)[47]提出了一種新的潛在拉普拉斯最大熵辨識方法(LatLapMED),該方法利用EM算法結(jié)合幾何熵最小化原理識別統(tǒng)計異常,并利用最大熵判別原理結(jié)合效用標(biāo)簽來識別異常。
常見的基于熵入侵檢測方法的優(yōu)缺點,如表1所示。
表1 常見基于熵入侵檢測方法的優(yōu)缺點
續(xù)表1
本文探討了入侵檢測的分類并簡述了傳統(tǒng)的入侵檢測方法在網(wǎng)絡(luò)安全領(lǐng)域內(nèi)的應(yīng)用,分析了入侵檢測系統(tǒng)使用的各方法的缺點和不足。強(qiáng)調(diào)了基于熵值理論的入侵檢測系統(tǒng)的優(yōu)勢,即可以比傳統(tǒng)的入侵檢測系統(tǒng)在流量分析方面得到更精細(xì)的結(jié)果。最后總結(jié)了基于不同熵值的入侵檢測研究,并歸納出它們相對應(yīng)的文獻(xiàn)研究。
雖然基于熵值理論的入侵檢測具有實時性高、敏感性高、誤報率低等特點,但現(xiàn)有研究工作還存在以下問題:(1) 基于熵值的入侵檢測一般應(yīng)用于大規(guī)模的IP骨干網(wǎng)絡(luò)中,對小規(guī)模網(wǎng)絡(luò)或其他網(wǎng)絡(luò)類型的適用性不強(qiáng);(2) 選取不同的特征屬性將對基于熵的入侵檢測的準(zhǔn)確率和效率產(chǎn)生顯著影響,需要根據(jù)不同的攻擊類型,選擇合適的特征屬性;(3) 各種熵值算法的效率需要進(jìn)一步提升,一些閾值的計算不夠精確;(4) 對于未知攻擊的異常流量識別效率不高,需要進(jìn)一步改進(jìn)。這些問題也是基于熵的入侵檢測鄰域未來研究的方向。