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