畢 凱, 周 煒, 蔣玉嬌, 安和平
(空軍工程大學(xué)導(dǎo)彈學(xué)院,陜西三原713800)
Honeypot是一種安全資源,其價值體現(xiàn)在被探測、攻擊或者摧毀的時候[1]。Honeypot是一個被嚴(yán)格控制的欺騙環(huán)境,由真實的或者軟件模擬的網(wǎng)絡(luò)和主機構(gòu)成,但其系統(tǒng)中存在許多虛假的文件信息,用以實現(xiàn)對入侵者的誘騙。在誘騙環(huán)境中,我們可以收集入侵信息,觀察入侵者行為,記錄其活動,以便分析入侵者目的、手段、工具等信息。Honeynet是一種高交互的Honeypot系統(tǒng),它提供了整個操作系統(tǒng)和軟件,用于和入侵者進(jìn)行交互。真實的環(huán)境,使誘騙系統(tǒng)更具有迷惑性,而高度的交互性,使得Honeynet非常適合捕獲未知的入侵行為。
目前針對Honeynet的研究主要集中在其部署以及捕獲入侵上,但在對捕獲數(shù)據(jù)的分析方面還很薄弱。HoneynetProject對使用高交互度Honeypot進(jìn)行數(shù)據(jù)分析所需的時間做過一次研究。根據(jù)他們的發(fā)現(xiàn),對于攻擊者花費在被黑系統(tǒng)上的每30分鐘時間,若要對捕獲數(shù)據(jù)加以較為詳細(xì)的分析大約要花費40小時[1]。可見,數(shù)據(jù)分析已經(jīng)成為影響甚至制約Heneynet快速發(fā)展的瓶頸。Kreibich等人提出了一種比較簡單LCS(longest-common-substring)算法[2],但是提取的質(zhì)量較差。Thakar通過可視化、統(tǒng)計分析等方法輔助人工篩選出可疑數(shù)據(jù),然后采用LCS算法自動提取攻擊特征[3]。Yegneswaran等人利用協(xié)議的語義實現(xiàn)從Honeynet數(shù)據(jù)中自動提取攻擊特征[4]。本文提出了一種基于PCA和改進(jìn)ReliefF算法的模式識別方法,用以分析Honeynet告警日志,并用實驗證明了其可行性。
Honeynet結(jié)構(gòu)如圖1所示,包括3個主要功能:數(shù)據(jù)控制,數(shù)據(jù)捕獲,數(shù)據(jù)分析[1]。
數(shù)據(jù)控制是Honeynet必備的核心技術(shù)之一,它通過限制入侵者的行為,以保護(hù)Honeypot自身以及內(nèi)部主機的安全。目前常用的數(shù)據(jù)控制方法有基于IPTables的外出連接數(shù)限制和snort-inline入侵防御系統(tǒng)。
數(shù)據(jù)捕獲的目的是隱蔽的捕獲入侵者的攻擊行為,包括入侵者的身份、攻擊的手段和工具以及在被黑主機上的操作等行為。Honeynet技術(shù)通常結(jié)合 Argus、Snort、p0f、Sebek 對攻擊數(shù)據(jù)進(jìn)行多層次捕獲,以保證為數(shù)據(jù)分析提供豐富的資料。
圖1 Honeynet結(jié)構(gòu)
針對捕獲到的入侵行為高度復(fù)雜性的特點,提出了DAPR(dataanalyzebasedonPCAandReliefF)數(shù)據(jù)分析模型,如圖2所示。
圖2 DAPR數(shù)據(jù)分析模型
由于捕獲的數(shù)據(jù)來自分別來自于防火墻、入侵檢測系統(tǒng)和Honeypot,格式存在較大差異,因此我們首先需要進(jìn)行數(shù)據(jù)融合,統(tǒng)一格式,以方便數(shù)據(jù)處理。我們將融合后的數(shù)據(jù)用n維向量(x1,x2,…,xn)表示,每個維度表示該數(shù)據(jù)的一個特征。
對于同一個入侵行為,在防火墻、入侵檢測系統(tǒng)以及Honeypot都留有痕跡,這樣不可避免造成大量數(shù)據(jù)的冗余。就是單一入侵行為,其不同特征之間,也存在相關(guān)性,這些數(shù)據(jù)的冗余性和相關(guān)性,給數(shù)據(jù)分類分析帶來了不必要的工作量。我們利用基于PCA和改進(jìn)的ReliefF的特征選擇方法,對數(shù)據(jù)進(jìn)行特征選擇,降低數(shù)據(jù)維度,以減少分類的時間復(fù)雜度。而后利用SVM對入侵行為進(jìn)行分類,判斷攻擊類型,生成報警信息。
根據(jù)是否以分類精度作為評價函數(shù),通常可以將特征選擇方法分為兩大類:過濾方法(filter)和封裝方法(wrapper)[5],Relief算法是公認(rèn)的效果較好的filter式特征評估算法[6]。
Relief算法是Kira和Rendell在1992年提出的,但是該算法主要用于解決二分類問題。1994年Kononenko擴展了Relief算法,并提出了ReliefF算法,將分類視為一類對多類關(guān)系,可以解決多類問題以及回歸問題。
ReliefF算法根據(jù)特征值在區(qū)分臨近樣本點的能力上對特征賦予權(quán)值。首先將訓(xùn)練數(shù)據(jù)集D中各特征的權(quán)值賦0,然后隨機選取樣本X,在訓(xùn)練數(shù)據(jù)集D中找出與X同類的k個最近鄰樣本pj,j=1,2,…,k,分別從其余各類中找出X的k個最近鄰樣本 Mj(c),j=1,2,…,k,c=1,2,…,C 更新每一個特征,C 為樣本類別總數(shù),c≠c(X),c(X)表示樣本X的類別。然后利用權(quán)值更新式(1)更新a的權(quán)值
式中:d(a,X,Y)——在特征a下,樣本X和樣本Y的距離;p(c)——c類目標(biāo)的概率,可以簡單記為Mj(c)——第c類目標(biāo)的第j個樣本;m——算法迭代次數(shù),m和k可根據(jù)樣本數(shù)量以及樣本維數(shù)進(jìn)行設(shè)定。而后反復(fù)執(zhí)行迭代過程,直至滿足迭代的次數(shù)要求。算法流程圖如圖3所示。
圖3 ReliefF算法流程
但是,經(jīng)典的ReliefF算法仍然存在不足之處:
(1)隨機選取樣本會使小類別被選中進(jìn)行權(quán)值計算的概率小,有時可能完全被忽略[7];
(2)在無小類別參與的情形下,所得到的特征權(quán)值是不科學(xué)的,從而對分類精度產(chǎn)生一定負(fù)面影響。在Honeynet數(shù)據(jù)分析中,小樣本往往具有潛在威脅的攻擊,不能將其忽視[8]。
一種解決方案就是增加迭代的次數(shù)。因為每次迭代都要隨機選擇樣本,在較多選擇機會下,可以降低小樣本被漏選的可能性。但是,這將大大增加系統(tǒng)的開銷,降低時效性。
為解決上述問題,這里我們采用多次分類的方法。由于自動化攻擊手段的廣泛應(yīng)用,Honeynet捕獲的大部分攻擊都是已知的和重復(fù)性的攻擊。我們可以把所有的小樣本作為一個整體,以擴大其在樣本空間中所占比例,通過第一次分類,分離出絕大部分的入侵行為,并將其從分析數(shù)據(jù)源中剔除掉。這樣單個小類別樣本在樣本整體中的比例將大大增加。針對余下的包含小類別和未知攻擊的活動,進(jìn)行再分類分析。我們可以根據(jù)實際需要設(shè)置合理的分類次數(shù)n或者直至符合分類精度要求。算法流程如圖4所示。
ReliefF算法雖然能夠進(jìn)行特征選擇,但其不能避免各特征之間存在的冗余現(xiàn)象。對于所有和類別相關(guān)性高的特征,算法都會賦予較高的權(quán)值,而不考慮特征之間的冗余性。
鑒于此,結(jié)合主成分分析方法(principle component analysis,PCA),去除特征之間的相關(guān)性,以達(dá)到簡化算法復(fù)雜性的目的。
圖4 多次分類流程
PCA,一種簡化數(shù)據(jù)集的技術(shù),為一種線性變換。這個變換把數(shù)據(jù)變換到一個新的坐標(biāo)系中。對于一個n m的矩陣,PCA的目標(biāo)是尋求r(r 設(shè)輸入的數(shù)據(jù)矩陣 X∈Rmn已經(jīng)按列零均值化或標(biāo)準(zhǔn)化,其中m為樣本個數(shù),n為特征向量個數(shù)。定義X的協(xié)方差矩陣為 正交分解,得 式中:D=diag(1,2,…,n)——i降序排列所構(gòu)成的對角矩陣,Pn=[p1,p2,…,pn]——與特征值 相對應(yīng)的特征矩陣,其中pi為特征值i所對應(yīng)的特征向量。前k個主元所涵蓋的測量變量的信息量可由前k個主元的方差貢獻(xiàn)率來表示。若前m個主元的方差貢獻(xiàn)率大于或等于某閾值Q(通常選取Q>85%),而前m-1個主元的方差貢獻(xiàn)貢獻(xiàn)率小于Q,則可令k=m,以此來確定符合條件的主元。當(dāng)主元確定后,即可得主元模型 而原測量矩陣可以重構(gòu)為 式中:X~——X 的殘差,X~=TPTk,T——主元矩陣;Pk——負(fù)荷矩陣。 通過Rn—>Rk的線性變換,用包含X絕大部分信息的前k個特征向量構(gòu)成的PCA子空間來代替X,以達(dá)到了特征提取和降低變量維數(shù)的目的。 本文所用的實驗數(shù)據(jù)為KDD-CUP-99數(shù)據(jù)集。該數(shù)據(jù)集是哥倫比亞大學(xué)WenkeLee研究組為1999年舉行的第三次國際KDD競賽而提取的數(shù)據(jù)集,是對MIT98數(shù)據(jù)集提供的9周tcpdump數(shù)據(jù)進(jìn)行了適當(dāng)處理和特征提取。該數(shù)據(jù)集包括訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集兩部分。其中訓(xùn)練數(shù)據(jù)集包括了500萬個連接數(shù)據(jù),測試數(shù)據(jù)集包括了200萬個連接數(shù)據(jù)。其包括5類數(shù)據(jù):normal數(shù)據(jù),Probe攻擊,DOS攻擊,U2L攻擊,R2L攻擊。每個連接共有41種定性和定量的特征,其中有7個特征是離散型變量,34個特征是連續(xù)性變量。 首先,我們構(gòu)造訓(xùn)練樣本集。對于原始數(shù)據(jù)集,由于規(guī)模較大,我們隨機選取其8057個數(shù)據(jù)記錄,進(jìn)行處理。經(jīng)統(tǒng)計發(fā)現(xiàn),Normal、DOS、Probe、R2L、U2L所占比例分別為51%、38%、6%、3%、2%,與實際情況基本相符。 然后,我們進(jìn)行數(shù)據(jù)預(yù)處理。由于上述特征包括數(shù)字型和字符型,為了訓(xùn)練和測試所設(shè)計的分析系統(tǒng),需要對原始數(shù)據(jù)進(jìn)行預(yù)處理。首先將特征中的字符型數(shù)據(jù)做數(shù)據(jù)化處理,即為每個字符進(jìn)行十進(jìn)制編碼。而后對這些特征的取值范圍進(jìn)行規(guī)范,控制其取值范圍在[0,1]中。一些字符屬性如protocol_type(3 個不同的標(biāo)記)、flag(11 個不同的標(biāo)記)、service(70個不同的標(biāo)記)都將各符號映射到0和N-1之間,N為標(biāo)記的個數(shù)。然后再將其映射到[0,1]區(qū)間內(nèi)。連續(xù)的數(shù)值型數(shù)據(jù)也按比例縮映到[0,1]。其它屬性要么是邏輯值,其值為1或0,要么是在[0,1]范圍內(nèi)的連續(xù)數(shù)據(jù),不需要進(jìn)行預(yù)處理。這樣預(yù)處理的優(yōu)點主要在于:一方面可以均衡不同取值范圍的特征,避免取值范圍大的特征支配那些取值范圍小的特征;另一方面可以提取算法的運行效率。 在選取的數(shù)據(jù)集中,我們發(fā)現(xiàn)第9、15、20、21屬性值全為0,對于分類分析沒有意義,可以將其設(shè)為0,剩余37個屬性。 對于本數(shù)據(jù)集,由于只包含5種類別,且小類別數(shù)量差異較小,我們令n=2,m=10。下面將處理好的數(shù)據(jù)進(jìn)行主成分分析,結(jié)果如表1表示。 表1 主成分分析結(jié)果 在特征貢獻(xiàn)率Q≥85%的基礎(chǔ)上,我們選取前12個屬性。 利用改進(jìn)的ReliefF算法,對經(jīng)過PCA簡化的數(shù)據(jù)集進(jìn)行特征選擇。權(quán)值如表2所示。 選取8個權(quán)值最大的屬性用于分類,結(jié)果如表3所示。 由表3可見,經(jīng)過第一次分類,可以以較高的正確率最常見的Normal和Dos行為檢測出來。而對于Probe、U2L、R2L,由于在訓(xùn)練數(shù)據(jù)集中,所占比例偏小,分類正確率偏低。 將檢測出的Normal、Dos數(shù)據(jù)剔除,對余下的小樣本數(shù)據(jù)進(jìn)行第二次特征選擇以及分類,綜合兩次分類,結(jié)果如表4所示。 表2 特征權(quán)值 表3 首次分類結(jié)果 由表4可以看到,經(jīng)過第二次的分類,精度較第一次分類顯著提高,能夠?qū)⒏鞣N行為區(qū)分開來。 表4 再次分類結(jié)果 由實驗我們可以看到,經(jīng)過特征提取和特征選擇,對數(shù)據(jù)屬性進(jìn)行約減,去除冗余和與分類無關(guān)的屬性,能夠在保證分類精度的基礎(chǔ)上有效簡化計算的時間和空間的復(fù)雜性,提高數(shù)據(jù)分析的效率。 本文針對蜜罐中分析系統(tǒng)的不足,提出了基于PCA和改進(jìn)ReliefF算法的告警日志分析方法,通過特征提取和特征選擇,在保證分類精度的基礎(chǔ)上,減少數(shù)據(jù)屬性的冗余性和無用性,有效簡化了數(shù)據(jù)分析的規(guī)模。通過多次、不斷細(xì)化的分類操作,可以將網(wǎng)絡(luò)攻擊中不常見的小類別攻擊方式從大量的攻擊中較為準(zhǔn)確的提取出來,這些小類別的攻擊行為,往往是我們了解較少,具有巨大潛在威脅的攻擊行為。然而對于特征選擇和分類的次數(shù),要視分析數(shù)據(jù)的規(guī)模和特性等情況給出,沒有一個較易得到的方法,這將成為今后研究中解決的一個問題。 [1]The honeynet project:know your enemy:honeynets[DB/OL].http://www.Honeynet.org/papers/honeynet/,2005. [2]Kreibich C,Crowcroft J.Honeycomb:creating intrusion detection signatures using honeypots[J].ACM SIGCOMM Computer Communication Review,2004,34(1):51-56. [3]Urjita Thakar.HoneyAnalyzer:analysis and extraction of intrusion detection patterns&signatures using honeypot[C].Dubai,UAE:The 2nd Int'l Conf on Innovations in Information Technology,2005. [4]Yegneswaran.An architecture for generation semanties-aware signatures[C].Baltimore,MD:Usenix Security Symposium,2005. [5]Liu Y,Zheng Y.F1 FS_SFS:A novel feature selection method for support vector machines[J].Pattern Recognition,2006,39(7):1333-1345. [6]張麗新,王家欽,趙雁南,等.基于Relief的組合式特征選擇[J].復(fù)旦學(xué)報(自然科學(xué)版),2004,43(5):893-898. [7]吳艷文,胡學(xué)鋼,陳效軍.基于Relief算法的特征選擇學(xué)習(xí)聚類[J].合肥學(xué)院學(xué)報(自然科學(xué)版),2008,18(2):45-48. [8]吳浩苗,尹中航,孫富春.Relief算法在筆跡識別中的應(yīng)用[J].計算機應(yīng)用,2006,22(1):174-177.4 實 驗
5 結(jié)束語