摘要:介紹了入侵檢測系統(tǒng)的基本概念和相關(guān)技術(shù),闡述了數(shù)據(jù)挖掘在入侵檢測系統(tǒng)研究中常用的技術(shù),提出了基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)和一種改進的Apriori算法,并詳細介紹了其中的檢測分析系統(tǒng)。
關(guān)鍵詞:數(shù)據(jù)挖掘;入侵檢測;關(guān)聯(lián)規(guī)則;Apriori算法
中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1009-3044(2009)26-7342-03
Application of Data Mining in Intrusion Detection
CHEN Qing-yan
(Department of Computer Science, Guilin University of Electronic Technology, Guilin 541004,China)
Abstract: The basic concepts and relevant techniques of intrusion detection system are introduced and the common data mining techniques used in intrusion detection system are briefly elaborated.The intrusion detection system based on the data mining and an improved Apriori algorithm are put forward and detailed introduce the analysis system in the Intrusion Detection System.
Key words: data mining; intrusion detection; association rules; apriori algorithm
網(wǎng)絡(luò)技術(shù)的高速發(fā)展,為人們通過網(wǎng)絡(luò)實現(xiàn)資源共享等帶來了便利,同時網(wǎng)絡(luò)自身的開放性、互連性、共享性等也給黑客提供了各種攻擊的手段,他們試圖破壞信息系統(tǒng)的完整性、機密性和可行性,使得網(wǎng)絡(luò)系統(tǒng)遭受入侵和破壞的風(fēng)險日益增大。
因此,近年來,隨著網(wǎng)絡(luò)安全的要求越來越高,新的入侵檢測理論不斷提出。數(shù)據(jù)挖掘理論的研究,開拓了入侵檢測理論的思路。通過對不同數(shù)據(jù)源,包括來自主機的數(shù)據(jù)和網(wǎng)絡(luò)的數(shù)據(jù),用不同的數(shù)據(jù)挖掘方法進行分析,及時發(fā)現(xiàn)入侵行為。
1 入侵檢測中的挖掘技術(shù)
1.1入侵檢測系統(tǒng)的功能
一個合格的入侵檢測系統(tǒng)能大大地簡化管理員的工作,使得管理員能夠更容易的監(jiān)視、審計網(wǎng)絡(luò)和計算機系統(tǒng),擴展了管理員的安全管理能力,從而保證網(wǎng)絡(luò)和計算機系統(tǒng)安全的運行。因此入侵檢測系統(tǒng)必須具有以下主要功能:1) 監(jiān)視并分析用戶和系統(tǒng)的活動,查找非法用戶和合法用戶的越權(quán)操作;2) 檢測系統(tǒng)配置的正確性和安全漏洞,并提示管理員修補漏洞;3) 對用戶的非正常活動進行統(tǒng)計分析,發(fā)現(xiàn)入侵行為的規(guī)律;4) 檢查系統(tǒng)程序和數(shù)據(jù)的一致性與正確性;5) 能夠?qū)崟r對檢測到的入侵行為做出反應(yīng);6) 操作系統(tǒng)的審計跟蹤管理。
1.2 入侵檢測技術(shù)的分類
入侵檢測技術(shù)是入侵檢測系統(tǒng)的核心,它直接關(guān)系到攻擊的檢測效果、效率、誤報率等性能。入侵檢測技術(shù)主要分為異常檢測技術(shù)和誤用檢測技術(shù)兩大類。
1.2.1 異常檢測技術(shù)
基于異常的入侵檢測技術(shù)主要來源這樣的思想:任何人的正常行為都是有一定的規(guī)律的,并且可以通過分析這些行為產(chǎn)生的日志信息(假定日志信息足夠完全)總結(jié)出這些規(guī)律,而入侵和濫用行為則通常和正常的行為存在一定的差異,通過當(dāng)前活動與系統(tǒng)歷史正常活動之間的差異就可以檢測出入侵。
異常檢測的關(guān)鍵問題在于正常使用模式(normal usage profile)的建立以及如何利用該模式對當(dāng)前的系統(tǒng)/用戶行為進行比較,從而判斷出與正常模式的偏離程度。基于異常的檢測與系統(tǒng)相對無關(guān),通用性較強,不受已知知識的限制,因而它甚至有可能檢測出未知的攻擊行為。然而,異常檢測技術(shù)存在以下幾個主要問題:
1) 如何有效地表示用戶的正常行為模式?即選擇哪些數(shù)據(jù)才能有效地反映用戶的行為,并且這些數(shù)據(jù)容易獲取和處理。由于系統(tǒng)/用戶的行為是不斷改變的,因而正常模式具有時效性,需要不斷修正和更新。當(dāng)用戶行為突然發(fā)生改變時,容易引起誤報。
2) 閾值的確定比較困難。當(dāng)閾值設(shè)定較高時,容易引起漏報,而閾值設(shè)定較低時,容易引起誤報。由于不可能對系統(tǒng)內(nèi)的所有用戶行為進行全面的描述,在用戶數(shù)目眾多、用戶行為經(jīng)常動態(tài)改變時,系統(tǒng)誤報率較高。
3) 異常檢測方法大多訓(xùn)練時間較長,在訓(xùn)練期系統(tǒng)不能正常工作。如果入侵者知道系統(tǒng)處于訓(xùn)練期,可以采用逐步更新用戶模型的方式,使得系統(tǒng)將入侵行為也當(dāng)作正常行為來建立正常模式。
1.2.2 誤用檢測技術(shù)
誤用檢測首先對標(biāo)識特定入侵的行為模式進行編碼,建立入侵模式庫,然后對檢測過程中得到的審計事件數(shù)據(jù)進行過濾,檢查是否包含入侵模式來檢測攻擊。誤用檢測的關(guān)鍵在于如何通過入侵模式準(zhǔn)確地描述入侵活動的特征、條件、排列和關(guān)系,從而有效地檢測入侵。誤用檢測由于針對具體的入侵模式庫進行判斷,因而檢測率高,同時因為檢測結(jié)果有明確的參照,也為管理員做出相應(yīng)措施提供了方便。然而,誤用檢測也存在以下缺陷:①由于入侵模式庫受已知知識的局限,只能檢測已知的攻擊模式,對于未知攻擊和己知攻擊的變形則無能為力。②入侵模式庫的維護工作量大。只有擁有完備的入侵模式庫,IDS才能檢測到大量的攻擊行為。隨著新的攻擊方法不斷出現(xiàn),入侵模式庫也需要不斷更新。③由于針對具體系統(tǒng)的依賴性太強,系統(tǒng)移植性不好。
1.3 數(shù)據(jù)挖掘技術(shù)
數(shù)據(jù)挖掘(Data Mining)技術(shù)是一個從大量的數(shù)據(jù)中提取人們感興趣的模式的過程。挖掘的對象不僅是數(shù)據(jù)源、文件系統(tǒng),也包括諸如Web資源等任何數(shù)據(jù)集合;同時數(shù)據(jù)挖掘的過程并不是一個直線型的過程,而是一個螺旋上升、循環(huán)往復(fù)的多步驟處理過程。
數(shù)據(jù)挖掘通過預(yù)測未來趨勢及行為,做出預(yù)測性的、基于知識的決策。數(shù)據(jù)挖掘的目標(biāo)是從數(shù)據(jù)庫中發(fā)現(xiàn)隱含的、有意義的知識,按其功能可分為以下幾類:
1)關(guān)聯(lián)分析:關(guān)聯(lián)分析能尋找數(shù)據(jù)庫中大量數(shù)據(jù)的相關(guān)聯(lián)系,常用的2種技術(shù)為關(guān)聯(lián)規(guī)則和序列模式。關(guān)聯(lián)規(guī)則是發(fā)現(xiàn)一個事物與其他事物間的相互關(guān)聯(lián)性或相互依賴性,可用于如分析客戶在超市買牙刷的同時又買牙膏的可能性;序列模式分析將重點放在分析數(shù)據(jù)之間的前后因果關(guān)系,如買了電腦的顧客則會在3個月內(nèi)買殺毒軟件。
2)聚類:輸入的數(shù)據(jù)并無任何類型標(biāo)記,聚類就是按一定的規(guī)則將數(shù)據(jù)劃分為合理的集合,即將對象分組為多個類或簇,使得在同一個簇中的對象之間具有較高的相似度,而在不同簇中的對象差別很大。
3)自動預(yù)測趨勢和行為:數(shù)據(jù)挖掘自動在大型數(shù)據(jù)庫中進行分類和預(yù)測,尋找預(yù)測性信息,自動地提出描述重要數(shù)據(jù)類的模型或預(yù)測未來的數(shù)據(jù)趨勢。
4)概念描述:對于數(shù)據(jù)庫中龐雜的數(shù)據(jù),人們期望以簡潔的描述形式來描述匯集的數(shù)據(jù)集。概念描述就是對某類對象的內(nèi)涵進行描述并概括出這類對象的有關(guān)特征。
5)偏差檢測:偏差包括很多潛在的知識,如分類中的反常實例、不滿足規(guī)則的特例、觀測結(jié)果與模型預(yù)測值的偏差、量值隨時間的變化等。
數(shù)據(jù)挖掘技術(shù)是近幾年引入到入侵檢測的技術(shù),它的優(yōu)越之處在于可以從大量的網(wǎng)絡(luò)數(shù)據(jù)以及主機的日志數(shù)據(jù)中提取出人們需要的、事先未知的知識和規(guī)律。利用數(shù)據(jù)挖掘技術(shù)實現(xiàn)網(wǎng)絡(luò)安全在國內(nèi)外都屬于一種新的嘗試。目前,對數(shù)據(jù)挖掘算法的研究已比較成熟,而數(shù)據(jù)挖掘本身是一個通用的知識發(fā)現(xiàn)技術(shù)。在入侵檢測領(lǐng)域,我們將入侵檢測看作是一個數(shù)據(jù)的分析過程,對大量的安全數(shù)據(jù)應(yīng)用特定的數(shù)據(jù)挖掘算法,以達到建立一個具有自適應(yīng)性以及良好的擴展性能的入侵檢測系統(tǒng)。目前,應(yīng)用到入侵檢測上的數(shù)據(jù)挖掘算法主要集中在關(guān)聯(lián)、序列、分類和聚類這四個基本模型之上。
3 基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)體系結(jié)構(gòu)設(shè)計
基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)主要有經(jīng)過預(yù)處理的數(shù)據(jù)源、數(shù)據(jù)倉庫、數(shù)據(jù)挖掘引擎、檢測模塊、規(guī)則庫、入侵響應(yīng)模塊、管理控制模塊。如圖1所示。
數(shù)據(jù)倉庫:數(shù)據(jù)倉庫中存放從安全服務(wù)器上得到的各種數(shù)據(jù),以及從特征提取部分得到的有用特征。
數(shù)據(jù)挖掘:利用關(guān)聯(lián)規(guī)則、序列模式和分類等數(shù)據(jù)挖掘方法對特征提取部分提取的關(guān)鍵特征進行分析,發(fā)現(xiàn)各特征間的時間和空間關(guān)系。
規(guī)則庫:入侵檢測產(chǎn)品有效檢測入侵的關(guān)鍵在于入侵知識庫。入侵知識庫中存放著系統(tǒng)挖掘出的各種己知攻擊模式和正常模式。將數(shù)據(jù)挖掘算法提取出的數(shù)據(jù)包的模式與知識庫中的模式進行比較,以確定該數(shù)據(jù)包是正常的數(shù)據(jù)傳輸、己知的惡意攻擊、還是未知模式。
響應(yīng)單元:對檢測的結(jié)果進行響應(yīng)。如果是正常的數(shù)據(jù)傳輸,則繼續(xù)監(jiān)聽,等待下一個數(shù)據(jù)包的到來;如果是己知的惡意攻擊,入侵響應(yīng)單元進行有效的防范措施,例如切斷網(wǎng)絡(luò)、反向查詢、通知管理員等;如果是未知模式,就進行異常檢測由管理員來判斷是正常行為還是入侵。
管理控制:如果接收到的數(shù)據(jù)包是未知模式,根據(jù)專家知識和已知模式信息,人工進行判斷。如果判斷結(jié)果是正常模式,研究其與一般正常模式的區(qū)別,必要時將其添加到規(guī)則庫或者更新規(guī)則庫中與其相近的正常模式。如果判斷結(jié)果是異常模式,立即執(zhí)行必要的防范措施,仔細研究該異常的本質(zhì),提取該異常的特征,并創(chuàng)建異常模式,最后將這種模式信息加入到知識庫中。由于每次都要增加新的特征到知識庫中,所以規(guī)則庫是一個不斷擴展的知識庫。系統(tǒng)的數(shù)據(jù)流程如圖2所示。
4 系統(tǒng)算法實現(xiàn)
該系統(tǒng)采用關(guān)聯(lián)分析中的Apriori算法進行入侵模式特征的挖掘。首先確定關(guān)聯(lián)規(guī)則中最小支持度和最小置信度的閾值,然后通過改進的Apriori算法生成滿足這兩個閾值條件的頻繁項集,由頻繁項集生成關(guān)聯(lián)規(guī)則,再采用聚類等算法對規(guī)則進行進一步的類型分類,判斷是否存在入侵并構(gòu)建規(guī)則庫。
4.1 改進的Apriori算法實現(xiàn)
從算法流程可以很容易看出,Apriori算法在處理較大數(shù)據(jù)時,需要大量的I/O操作和cpu的開銷。在數(shù)據(jù)很大的情況下,即使采用Apriori性質(zhì)修剪頻繁項集,仍然占用大量的資源,使得運算效率出現(xiàn)瓶頸,這是數(shù)據(jù)挖掘技術(shù)在處理海量數(shù)據(jù)時常遇到的問題。
由(K-l)頻繁項集生成K-頻繁項集時,當(dāng)(K-1)頻繁項集中項集數(shù)目巨大,進行連接操作時效率很低。巨大數(shù)量的候補項目集,對它進行計算出現(xiàn)次數(shù)的統(tǒng)計時的處理開銷非常大,導(dǎo)致了算法的效率低下。
目前普遍采用的是將水平格式的數(shù)據(jù)轉(zhuǎn)換成垂直格式。具體改進算法描述如下:
輸入:事物數(shù)據(jù)庫D;最小支持度為min_sup
輸出:D中的所有頻繁項集。
算法
L=genAPrioril(D,min_sup);
For(k=2;Lk不為空;k++)
Do begin
Lk=genAPrioriK(Lk,,min_sup)
End
RetumUkLk
該程序里生成頻繁-項集的函數(shù)genAprioril與傳統(tǒng)的Apriori算法生成頻繁-項集的函數(shù)不同,它在生成項集的同時,記錄包含該項集的TID集,該函數(shù)具體描述如下:
輸入:事物數(shù)據(jù)庫D;最小支持度min_sup
輸出:所有的頻繁-項集。
Procedure genAPrioril(D,min_sup)
For all transaction t∈D do begin
Subitem[]=t.split():
For(i=0:i Do begin If(subitem[i]is in L1) Dobegin Ll[k].ID+=數(shù)據(jù)t在事物數(shù)據(jù)庫中的ID號 end Else Subitem[i].ID+=i: L1.Add(subitem[i]): End End For all item in L1 do begin If(item.ID.count L1.delete(item); 輸入:頻繁k-1項集。最小支持度min_sup 輸出:所有的頻繁k項集。 Procedure genAprioriK(Lk-1:,min_sup) Lk=1; For(i=0;i Do begin For(j=i+l;j Dobegin If Lk-l[i].substring(k-2)=Lk-1[j].substring(k-2) Do begin item.ID=Lk-1[i].ID∩Lk-1[j].ID If(item.ID.length=min_sup) Lk.add(item); End End End ReturnLk 5 結(jié)束語 近幾年來,基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)成為許多學(xué)者研究的熱點。文中提出的基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng),并采用改進Apriori算法來實現(xiàn)數(shù)據(jù)挖掘規(guī)則,通過壓縮事務(wù),減少了候選項集的支持度計數(shù)的計算,使系統(tǒng)效率顯著地提高了。 參考文獻: [1] 羅守山.入侵檢測[M].北京:北京郵電大學(xué)出版社,2004. [2] 向繼,高能,荊繼武.聚類算法在網(wǎng)絡(luò)入侵檢測中的應(yīng)用[J].計算機工程,2003,29(16):48-49. [3] 金衛(wèi).入侵檢測技術(shù)的研究[J].山東師范大學(xué)學(xué)報,2005,20(4). [4] 宋世杰,胡華平,胡笑蕾,等.數(shù)據(jù)挖掘技術(shù)在網(wǎng)絡(luò)型異常入侵檢測系統(tǒng)中的應(yīng)用[J].計算機應(yīng)用,2003,23(12):20-23. [5] 唐正軍,李建華.入侵檢測技術(shù)[M].北京:清華大學(xué)出版社,2004. [6] 王英澤.一種數(shù)據(jù)挖掘技術(shù)在入侵檢測系統(tǒng)中的應(yīng)用[D].哈爾濱:哈爾濱理工大學(xué),2007. [7] 吳昊.基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)研究[D].南京:南京信息工程大學(xué),2008.