◆刁海軍
(九州職業(yè)技術(shù)學(xué)院 江蘇 221116)
基于C4.5算法的入侵檢測(cè)規(guī)則生成與應(yīng)用
◆刁海軍
(九州職業(yè)技術(shù)學(xué)院 江蘇 221116)
為有效防范計(jì)算機(jī)系統(tǒng)安全威脅,提高入侵檢測(cè)的準(zhǔn)確率。可以利用數(shù)據(jù)挖掘技術(shù),在應(yīng)用程序的系統(tǒng)調(diào)用數(shù)據(jù)集上進(jìn)行分類挖掘,從而生成計(jì)算機(jī)免疫系統(tǒng)中的入侵檢測(cè)規(guī)則,對(duì)未知操作進(jìn)行入侵檢測(cè)。本文受計(jì)算機(jī)免疫原理啟發(fā),將系統(tǒng)調(diào)用序列作為數(shù)據(jù)源,在對(duì)系統(tǒng)調(diào)用進(jìn)行采集的基礎(chǔ)上,利用C4.5算法提取規(guī)則,比較樣本數(shù)據(jù)集與未知數(shù)據(jù)集來(lái)檢驗(yàn)入侵行為,并驗(yàn)證了這種異常入侵檢測(cè)方法的有效性和可行性。
C4.5分類算法;異常檢測(cè);計(jì)算機(jī)免疫;數(shù)據(jù)挖掘
在計(jì)算機(jī)系統(tǒng)安全問(wèn)題日益突出的當(dāng)下,作為一種主動(dòng)的安全防御技術(shù),異常檢測(cè)技術(shù)已成為網(wǎng)絡(luò)安全技術(shù)的一個(gè)重要研究方向倍受關(guān)注。Forrest[1]提出用免疫系統(tǒng)來(lái)解決計(jì)算機(jī)系統(tǒng)的安全問(wèn)題。即通過(guò)監(jiān)測(cè)系統(tǒng)調(diào)用的數(shù)據(jù)流或控制流來(lái)發(fā)現(xiàn)入侵行為,通過(guò)監(jiān)測(cè)系統(tǒng)調(diào)用序列構(gòu)建序列的各種模型來(lái)反映程序的控制執(zhí)行流。該方法借鑒了生物免疫系統(tǒng)的原理,通過(guò)“自我”和“非我”來(lái)區(qū)分計(jì)算機(jī)系統(tǒng)內(nèi)部和外來(lái)的信息流,并在此基礎(chǔ)上完成外來(lái)的“非我”信息流的分類鑒別和刪除。
硬件設(shè)備是執(zhí)行所有應(yīng)用程序的基礎(chǔ),沒(méi)有一種系統(tǒng)調(diào)用是可以繞開(kāi)硬件設(shè)備而運(yùn)行的[2],所以一般入侵者的攻擊行為很難避開(kāi)系統(tǒng)調(diào)用。在應(yīng)用程序執(zhí)行過(guò)程中,其調(diào)用系統(tǒng)執(zhí)行的訪問(wèn)順序是一個(gè)完整的序列,具有很好的穩(wěn)定性。這樣的序列可作為計(jì)算機(jī)安全系統(tǒng)中的審計(jì)數(shù)據(jù)源。一般而言,系統(tǒng)調(diào)用序列之間還存在著一定程度的關(guān)聯(lián)性。因此,本文提出在對(duì)多個(gè)系統(tǒng)調(diào)用序列關(guān)系進(jìn)行分析的基礎(chǔ)上發(fā)現(xiàn)異常,完成入侵檢測(cè)。
1.1 C4.5算法
C4.5算法是數(shù)據(jù)挖掘中一種較為常見(jiàn)的分類算法,這種算法可以幫助我們提取檢測(cè)規(guī)則,屬于一種分類決策樹(shù)算法。[3]該算法具有規(guī)則生成容易,計(jì)算量小,同時(shí)可以清晰地顯示哪些字段比較重要。
1.2 入侵檢測(cè)
入侵檢測(cè)是對(duì)入侵行為的發(fā)覺(jué),主要通過(guò)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)或計(jì)算機(jī)系統(tǒng)中關(guān)鍵信息進(jìn)行分析,看是否存在違反安全策略的行為[4],以此來(lái)發(fā)現(xiàn)網(wǎng)絡(luò)或系統(tǒng)中是否有被攻擊的跡象。受計(jì)算機(jī)免疫原理的啟發(fā),將系統(tǒng)調(diào)用作為數(shù)據(jù)源,利用C4.5算法提取規(guī)則,比較樣本數(shù)據(jù)集與未知數(shù)據(jù)集來(lái)完成對(duì)入侵行為的檢驗(yàn)。
作為入侵檢測(cè)系統(tǒng)中發(fā)現(xiàn)入侵行為的主要依據(jù),檢測(cè)規(guī)則選擇是否得當(dāng)將直接影響系統(tǒng)監(jiān)測(cè)的準(zhǔn)確性。檢測(cè)規(guī)則是根據(jù)入侵特征提出的,對(duì)于基于系統(tǒng)調(diào)用的異常檢測(cè)系統(tǒng)來(lái)說(shuō),檢測(cè)規(guī)則是通過(guò)對(duì)系統(tǒng)調(diào)用短序列集進(jìn)行分析后得出的。
2.1 訓(xùn)練樣本集的創(chuàng)建
訓(xùn)練樣本集生成檢測(cè)規(guī)則的基礎(chǔ),創(chuàng)建一個(gè)適當(dāng)?shù)挠?xùn)練樣本集對(duì)于建立一個(gè)正確的檢測(cè)規(guī)則,以及進(jìn)行入侵檢測(cè)都有重要影響。[5]我們從一個(gè)正常運(yùn)行的服務(wù)進(jìn)程中截取了一小段系統(tǒng)調(diào)用序列片段來(lái)進(jìn)行檢驗(yàn),截取的片段如圖1所示。
圖1 正常進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用序列片段
實(shí)驗(yàn)結(jié)果表明:當(dāng)我們以6~14這個(gè)區(qū)間作為滑動(dòng)窗口時(shí),該模型在準(zhǔn)確性方面并沒(méi)有表現(xiàn)出太大差異??紤]到計(jì)算的成本問(wèn)題,我們采用長(zhǎng)度為7的時(shí)間窗口,步長(zhǎng)為1對(duì)上述系統(tǒng)調(diào)用序列進(jìn)行分割處理,得到如下系統(tǒng)調(diào)用短序列集,如圖2所示。
圖2 劃分后正常進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用序列集
對(duì)于正常系統(tǒng)調(diào)用短序列集,將其記入N(Normal)庫(kù)。同樣,也需要對(duì)異常情況下的系統(tǒng)調(diào)用序列進(jìn)行分割處理,圖3中是異常情況下的系統(tǒng)調(diào)用片段。
圖3 異常進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用序列片段
采用長(zhǎng)度為7的時(shí)間窗口,步長(zhǎng)為1對(duì)上述系統(tǒng)調(diào)用序列進(jìn)行分割處理后,就可以得到系統(tǒng)調(diào)用短序列集。對(duì)于異常系統(tǒng)調(diào)用短序列集,將其記入A(Abnormal)庫(kù)。這樣,最終的訓(xùn)練樣本集就包括了“正?!迸c“異常”兩個(gè)集合,我們需要將兩個(gè)庫(kù)進(jìn)行標(biāo)識(shí),將N庫(kù)短序列標(biāo)識(shí)為1,同時(shí)將A庫(kù)標(biāo)識(shí)為0。
由于入侵行為一般是突發(fā)的,這樣可以認(rèn)為A庫(kù)中的短序列大部分是正常的,所以為了提高入侵檢測(cè)的效率,我們還需要進(jìn)行數(shù)據(jù)清洗工作,即如果A庫(kù)中的短序列與N庫(kù)中某個(gè)短序列完全匹配,則在訓(xùn)練樣本集中將A庫(kù)中的那條短序列刪除。進(jìn)行數(shù)據(jù)清理后的訓(xùn)練樣本集,如圖4所示。
圖4 訓(xùn)練樣本集
2.2 檢測(cè)規(guī)則庫(kù)的生成
檢測(cè)規(guī)則就是數(shù)據(jù)挖掘所需要提取的知識(shí),采用C4.5算法進(jìn)行分類挖掘,檢測(cè)規(guī)則的建立依賴于訓(xùn)練樣本集的完備性。按照前面的訓(xùn)練樣本集來(lái)看,我們將每一條短序列的7個(gè)位置作為屬性,分別記作A0,A1,A2,A3,A4,A5,A6,同時(shí)以0,1作為歸屬類別,用C4.5分類算法提取規(guī)則如下:
(1)中是歸屬類別為1的規(guī)則Rule1/1中A1=105;A7=85說(shuō)明當(dāng)A1位置為105并且A7位置為85時(shí),系統(tǒng)調(diào)用短序列為“正常”,置信度為0.973;Rule1/2同理。(2)中是歸屬類別為0的規(guī)則Rule1/52中A4=3;A7=128說(shuō)明當(dāng)A4位置為3并且A7位置為128時(shí),系統(tǒng)調(diào)用短序列為“異常”,置信度為0.996;Rule1/53同理。當(dāng)然,我們這里只關(guān)心class1的規(guī)則,即“自我”規(guī)則。
通過(guò)對(duì)“正常”規(guī)則的提取,就可以對(duì)計(jì)算機(jī)正常與異常狀態(tài)進(jìn)行異常檢測(cè)。為了提高檢測(cè)結(jié)果的準(zhǔn)確性,在選用“自我”規(guī)則時(shí),我們一般要求選用置信度在0.800以上的“自我”規(guī)則。2.3 基于C4.5算法的檢測(cè)規(guī)則提取
將采集來(lái)的訓(xùn)練集進(jìn)一步劃分成為系統(tǒng)調(diào)用短序列,再將其按照長(zhǎng)度為k,步長(zhǎng)為1的滑動(dòng)窗口劃分,得到系統(tǒng)調(diào)用短序列,并且在每個(gè)短序列后標(biāo)注上“正常”或“異?!保ㄒ话阌?表示正常,0表示異常)。將劃分好的系統(tǒng)調(diào)用短序列集復(fù)制到.data文件中。將.data文件輸入See5軟件中,按照上述提取規(guī)則得到提取結(jié)果如表1所示。
表1 規(guī)則提取結(jié)果
由于一般入侵行為的發(fā)生具有突發(fā)性和聚集性,入侵行為中的“非我”序列在系統(tǒng)調(diào)用序列上會(huì)表現(xiàn)出明顯的聚集特征??紤]到這一因素,我們選擇采用局部統(tǒng)計(jì)方法進(jìn)行入侵檢測(cè)。
3.1 檢測(cè)方法
按照數(shù)據(jù)采集的序列,將整個(gè)序列集劃分為n個(gè)段序列小組,一個(gè)序列集作為一個(gè)區(qū)域。在實(shí)際檢測(cè)過(guò)程中,如果某一區(qū)域中“非我”調(diào)用短序列出現(xiàn)的概率超過(guò)設(shè)定的閾值r,則可以判定為“非我”進(jìn)程并結(jié)束執(zhí)行過(guò)程。如果,在全部區(qū)域都執(zhí)行完畢且沒(méi)有出現(xiàn)“非我”調(diào)用短序列超過(guò)限定閾值,則可以判斷其為正常進(jìn)程。
將已經(jīng)得到的匹配結(jié)果按照寬度為l,步長(zhǎng)為h的滑動(dòng)窗口進(jìn)行劃分,然后在每一個(gè)劃分后的序列(0,1序列)中統(tǒng)計(jì)0的出現(xiàn)概率,最后將得出的所有結(jié)果同確定為入侵的臨界值進(jìn)行比較,如果0的出現(xiàn)概率大于預(yù)期值則表示該位置發(fā)生入侵。
3.2 檢測(cè)過(guò)程及檢測(cè)結(jié)果
我們選取異常程序產(chǎn)生的系統(tǒng)調(diào)用短序列集sm-314進(jìn)行驗(yàn)證性檢測(cè),sm-314的短序列具體如下:
我們使用上述方法進(jìn)行入侵檢測(cè),發(fā)現(xiàn)0的出現(xiàn)概率為26.11%,通過(guò)對(duì)檢測(cè)后形成的輸出結(jié)果(n2ontimerule4out.txt中的0,1序列)的觀察可以發(fā)現(xiàn),前面70%左右的短序列是正常的,異常序列大多集中在最后的30%的短序列中,這是因?yàn)樵诔绦蜻\(yùn)行過(guò)程中,前期的系統(tǒng)調(diào)用大多是在為程序運(yùn)行做準(zhǔn)備,具體的程序運(yùn)行主要集中在后半段的系統(tǒng)調(diào)用過(guò)程中。
我們使用長(zhǎng)度為10,步長(zhǎng)為1的滑動(dòng)窗口對(duì)輸出結(jié)果進(jìn)行局部統(tǒng)計(jì),結(jié)果如表2所示。從檢測(cè)的結(jié)果來(lái)看,這種方法可以更好地發(fā)現(xiàn)突發(fā)性入侵,在一定程度上避免了漏判。
表2 局部檢測(cè)結(jié)果
C4.5算法相對(duì)以前決策樹(shù)算法的主要改進(jìn)是:采用了規(guī)則后修剪的方法,比以往更加靈活。同時(shí),它可以區(qū)分不同的上下文并存在于多條規(guī)則中,可以保留更多有效的決策信息。基于C4.5算法的提取規(guī)則還可以將未知樣本集轉(zhuǎn)化為簡(jiǎn)單、直觀的規(guī)則,提高信息的可讀性。
考慮到入侵行為的發(fā)生具有突發(fā)性和聚集性,入侵行為中的“非我”序列在系統(tǒng)調(diào)用序列上會(huì)表現(xiàn)出明顯的聚集特征,需要采用局部統(tǒng)計(jì)方法進(jìn)行入侵檢測(cè)。受生物免疫啟發(fā)的入侵檢測(cè)技術(shù)改進(jìn)可以更好地分辨計(jì)算機(jī)中的“自我”和“非我”,較好地入侵檢測(cè)性能,在某種程度上,該方法可以有效提高入侵檢測(cè)效率和正確性。
[1]Forrest S,Hofmeyr S A,Somayaji A,et al.A sense of self for unix processes[C].In:Proceedings of the 1996 IEEE Symposium on Security and Privacy,Los Alamitos,1996.
[2]Hofmeyr S A,F(xiàn)orrest S,Somayaji A.Intrusion detection using sequences of system calls[J].Journal of Computer Security,1998.
[3]Wang Juan,Yang Qiren,Ren Dasen.An intrusion detection algorithm based on decision tree technology.Asia-Pacific Conference on Information Processing,2009.
[4]張新有,曾華燊,賈磊.入侵檢測(cè)數(shù)據(jù)集KDD CUP99研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010.
[5]向直揚(yáng).基于數(shù)據(jù)挖掘的網(wǎng)絡(luò)入侵檢測(cè)研究[D].陜西:西北農(nóng)林科技大學(xué),2013.
九州職業(yè)技術(shù)學(xué)院中青年骨干教師培養(yǎng)對(duì)象資助項(xiàng)目(九州[2016]60號(hào))。