張辰,孟少卿,鹿凱寧
(天津大學 電子信息工程學院,天津 300072)
基于信息系統的計算機已經成為人們生活的重要部分。用戶的計算機連接到了互聯網上,這就增大了其他人安裝惡意軟件并在互聯網上通過遠程控制使用這些軟件來攻擊其他計算機的危險。計算機安全是指保護計算機系統及其資源的機密性、完整性、可用性。人們用了許多協議和防火墻來抵御網絡威脅。如果計算機系統能夠保護它的數據和資源抵御非法訪問、修改和拒絕訪問,即可稱它為安全的。
目前,通過數據挖掘技術進行的入侵檢測很常見。應用數據挖掘中的一些算法,如序列式模式分析、關聯分析等來提取相關的訪客行為特征,并根據這些特征生成安全事件的分類模型,應用于安全事件的自動鑒別。一個完整的基于數據挖掘的入侵檢測模型要包括對審計數據的采集、數據預處理、特征變量選取、算法比較、挖掘結果處理等一系列過程。這種基于數據挖掘技術的入侵檢測有兩方面技術難點:第一點是如何根據實際應用的需求萃取出可以有效地反映系統特性的特征屬性,以便于應用合適的算法來進行數據挖掘。第二點在于如何將挖掘結果自動地應用到實際的IDS中[1]。隨著蜜罐技術的出現和快速發展,及IDS技術和數據挖掘結合的安全系統的出現,把前者融入到后者體系中去的需求越來越明顯了。
入侵是企圖破壞計算機平臺上資源的完整性、機密性、可用性的一系列行為。入侵檢測系統(IDS)是用于在網絡中檢測入侵行為的軟硬件的結合。入侵檢測系統可以檢測所有網絡行為,因此可以發現入侵行為的征兆。入侵檢測系統的主要目標是警告系統管理員任何可疑行為。目前存在兩種入侵檢測系統。
1)異常檢測 根據與正常行為的偏差檢測出惡意行為,進而認定為攻擊。雖然這種方式能檢測出未知入侵,但是誤報率較高。
2)特征檢測 它是入侵檢測基于一個惡意行為的模式,它對已知的攻擊模式很有幫助,并且誤報率很低。與異常檢測相比特征檢測的一個缺點是,它只能檢測到包含已知攻擊模式的入侵檢測。
入侵檢測系統需要了解攻擊的特性,但不能檢測到未知的威脅。而蜜罐系統能夠檢測未知的攻擊,同時還可以了解系統漏洞。
蜜罐是一個被嚴密監控的計算機資源,希望被探測、攻擊或者攻陷。更準確的描述是,蜜罐是“一個信息系統資源,其價值在于未經授權或非法使用該資源”。一個蜜罐的價值可以從它獲得的信息來衡量,通過檢測進出蜜罐的數據來收集NIDS無法獲得的信息,通過觀察離開蜜罐的網絡流量,可以檢測到漏洞威脅,即使是使用從未見過的漏洞利用方法[2]。設置一個專門構造的蜜罐系統來引誘入侵者,記錄其如何攻入系統,以及攻擊目的、所用工具等以獲取有用的信息。在蜜罐中常會故意放置一些黑客企圖獲取的信息,以此吸引入侵者攻陷蜜罐系統,攻擊者在蜜罐中停留的時間越長,暴露的攻擊手段和技術就越多,網絡管理員就可以獲取更多的入侵者的有用信息,這樣可以發現系統更多的安全隱患,允許網絡安全人員采取相應的措施來增強系統和網絡的安全性。
根據服務配置的不同,蜜罐可以分為高交互蜜罐和低交互蜜罐。
1)高交互蜜罐 提供給入侵者一個完全可交互的系統,它不模擬任何服務、功能或基礎操作系統,提供真實的系統服務。因此,入侵者能夠完全攻陷并控制它,這有助于網絡管理員了解更多的有關入侵者所用的工具、手段和動機,加深對攻擊者的了解。
2)低交互蜜罐 模擬物理機器的有限功能,例如,服務、網絡和堆棧等。允許入侵者與其在特定范圍內進行有限的交互,有助于掌握系統攻擊的定量信息。
從大量數據中提取有用信息的過程被稱為數據挖掘。數據挖掘分析已得到的大量數據,探索它們之間的未知關系,總結數據分析的結果,并以易理解的方式展示給數據所有者。因此數據挖掘問題也被看作是數據分析問題。數據挖掘技術可以在大量數據中檢測模式,并用這些模式捕捉大量的異常。
數據挖掘是以應用為目的的,它被頻繁地應用于各種領域中,用于從大型數據庫中發現明確的有用的東西,從數據中發現隱含的未知的規律。
針對以上情況,本文設計了一種基于數據挖掘和蜜罐技術的入侵檢測系統。在這個系統中,蜜罐技術通過真實的網絡資源為誘餌,吸引攻擊者的入侵行為,入侵行為發生后,在蜜罐環境下,入侵者將會被監視和控制,此時,系統運用數據挖掘技術收集攻擊行為的信息,并進行分析,產生模式或規律,并以此進行趨勢分析、攻擊預測等,以便于發現攻擊行為的特征和規律。之后將獲取的檢測規則存入IDS的規則庫,供未來的檢測使用。因此,它提高了IDS的檢測能力,尤其是檢測未知攻擊的能力。
傳統的入侵檢測系統不能檢測到未知的攻擊,因此存在漏報和誤報。而蜜罐系統最大的優勢就是可以檢測到未知的攻擊。通過捕獲黑客與蜜罐的交互行為,可以分析出未知的入侵方式、攻擊工具等,克服傳統入侵檢測系統的不足,有利于及時發現系統漏洞。將這兩種技術結合,提出一種新的網絡安全解決方案,該方案既可以通過入侵檢測系統捕獲已知攻擊特征的入侵行為,又可以使用蜜罐系統采集攻擊者新的攻擊手段、工具等,從而全面捕獲入侵者的攻擊行為,更有效的保護網絡安全。基于蜜罐的入侵檢測系統設計如圖1所示。

圖1 基于蜜罐系統的入侵檢測系統結構圖Fig.1 System structure of intrusion detection based on Honeypot system
在這個系統中,可以包含多個蜜罐主機。關鍵部件是被稱為HoneyWall的蜜網網關,它是蜜網與其它網絡的惟一連接點,包含3個網卡,網絡接口eth0連接蜜網,網絡接口eth1配置了一個安全的內部網絡地址,它轉發出入蜜罐系統的網絡包和系統日志進入到一個單獨的機器,這個機器作為日志及管理控制中心,網絡接口eth2則連接內網。日志及管理控制服務器安裝有監控管理模塊,它負責提取新的攻擊模式,并和NIDS控制臺進行通信,更新NIDS的入侵規則庫。它有3個主要任務,1)管理IDS模塊,Honeypot模塊和數據挖掘模塊,使它們協調工作;2)顯示IDS和Honeypot發送過來的警報消息;3)根據安全策略進行一系列的響應動作來阻止非法行為以確保網絡安全[3]。
由于蜜罐只收集少量但極具價值的數據。正常情況下,蜜罐對網絡內其他系統不提供任何服務,因此,所有與蜜罐系統的連接或探測都可視為對蜜罐系統的掃描或攻擊。這樣,就可以把所有流入蜜罐系統的網絡流量當作惡意信息處理,而流出的流量是威脅更大的信息。因為只有當入侵者攻陷蜜罐后,利用蜜罐訪問外部網絡時才會出現流出的數據。對蜜罐系統收集的數據采用數據挖掘方面分析是提高分析效率的一種有效途徑。由于數據挖掘技術是一項通用的知識發現技術,所以可以采用數據挖掘的方法對蜜罐收集的數據進行分析,利用得到的模式或規律,還可以進行趨勢分析、攻擊預測,以便于發現攻擊行為的特征和規律。
對于蜜罐系統收集的信息,不論是系統中用戶的命令行輸入,還是其他任意的離散事件流,比如GUI事件、網絡數據包傳輸、系統調用跟蹤等,這些數據之間是存在聯系的,都可以看作是事件的序列集合。通常,系統或用戶的正常行為會有一定的規律,而攻擊者發起的攻擊過程也都是有前后關系的,例如,在攻擊者真正實施攻擊時,要先對目的系統的開放端口進行掃描,然后實施具體的攻擊動作。要對蜜罐系統收集的信息進行分析,只憑孤立的事件對攻擊者的攻擊行為進行判斷是很困難的,這就需要把攻擊者的行為聯系起來,當作一個整體進行分析[4]。
文中采用先關聯規則挖掘、再序列模式挖掘的數據挖掘方法對審計數據進行挖掘。關聯規則挖掘的目的是發現大量數據項之間的關聯性。序列模式與關聯模式相仿,只不過把數據之間的關聯性與時間聯系起來。利用序列模式挖掘可以發現不同數據記錄之間的基于時間先后的相關性。
在數據挖掘研究領域,對于關聯規則算法的研究開展得比較深入,人們提出了多種關聯規則的挖掘算法,如Apriori、STERM、AIS、DHP算法等。本文使用關聯規則中的Apriori算法。
Apriori算法是一種最有影響力的挖掘產生布爾關聯規則所需頻繁項集的基本算法。Apriori算法就是根據有關頻繁項集特性的先驗知識(prior knowledge)而命名的。該算法利用了大項目集性質。用偽代碼[5]將其描述如下:
L1=find_frequent_1-itemset(D);
for(k=2; Lk-1≠;k++){
Ck==apriori_gen(Lk-1,min_sup);
For each customer-sequence t∈D{ //掃描D對項集計數
Ct=subset(Ck,t); //取得候選集的子集
For each candidate C∈Ct
c.count++;
}
Lk={c∈Ck|c.count>=min_sup}
}
return Answer=UkLk;
function apriori_gen(Lk-1;min_sup)
For each itemset l1∈Lk-1
For each itemset l2∈Lk-1
If(l1[1]=l2[1]) (l1[1]=l2[2]) … (l1[k-2]=l2[k-2]) ( l1[k-1]=l2[k-1])
Then{
C=l1;l2//連接產生候選集
If has_infrequent_subset(c, Lk-1) then
Delete C;//剪枝刪除非頻繁項集
else add c to Ck;
}
return;
function has_infrequent_subset(c; )
for each(k-1)-subset s of c
if s∈Lk-1then return TRUE;
return FALSE;
注:所有算法表示中,代表所有k-序列組成的集合,代表候選k-序列組成的集合。
找到頻繁項集后,就可以產生強關聯規則。
在時序和序列數據庫中存放的數據具有時間上的先后關系,對這些數據可以進行序列模式挖掘、趨勢分析、相似性搜索、周期模式挖掘等。本文對序列數據庫進行挖掘的主要目的是找出序列記錄之間的聯系,發現攻擊模式和攻擊序列,所以主要針對序列模式挖掘進行說明。
序列模式挖掘[6]是指挖掘相對時間出現頻率高的模式,也就是從序列組成的數據庫(sequence database)中找出出現頻繁的子序列(sub—sequences),它是一項重要的數據挖掘任務。近年來序列模式挖掘已經成為數據挖掘的一個重要方面,其應用范圍也不局限于數據庫,在DNA分析等尖端科學研究領域、Web訪問等新型應用數據源等眾多方面都有針對性研究。
AprioriAll算法源于頻繁集算法Apriori,它把Apriori的基本思想擴展到序列挖掘中,也是一個多遍掃描數據庫的算法。在每一遍掃描中都利用前一遍的大序列來產生候選序列,然后在完成對整個數據庫的遍歷后測試它們的支持度。在第一遍掃描中,利用大項集階段的輸出來初始化大小序列的集合。在每次遍歷中,從一個由大序列組成的種子集開始,利用這個種子集,可以產生新的潛在的大序列。在第一次遍歷前,所有在大項集階段得到的大小序列組成了種子集[7]。用偽代碼[8]將其描述如下:
L1={large 1-sequences};//大項集階段得到的結果
For(k=2;Lk-1≠;k++) DO BEGIN
Ck=aprioriALL-generate(Lk-1)
For each customer—sequence c in DT DO//對于在數據庫中的每一個顧客序列c
Sum the count of all candidates in Ckthat are contained in C//對包含于C中Ck內的所有候選者計數
Lk=Candidates in Ckwith minimum support; //Lk=Ck中滿足最小支持度的候選者
END
Answer=Maximal Sequences in UkLk;
文中關聯規則挖掘和序列模式挖掘算法的目的是挖掘數據倉庫中存放的攻擊信息記錄,尋找記錄中的關聯模式和序列模式,從而提取和發現有價值的攻擊模式和攻擊方法。
利用算法挖掘審計記錄的過程為:尋找審計記錄內的大項集采用關聯規則Apriori算法;尋找審計記錄間的大項集序列采用序列模式AprioriAll算法進行挖掘。進行關聯規則挖掘結果下的序列模式再挖掘有如下幾步工作:首先要把數據庫按時間段進行劃分,然后在每個被劃分的段中進行關聯規則的挖掘,對挖掘出來的結果進行整理并生成新的數據庫,最后對新的數據庫進行序列模式挖掘。
蜜罐系統和入侵檢測系統在優缺點上有著互補性。本文設計的新型入侵檢測系統結合兩者的優勢,當出現未知的攻擊時,則調用數據挖掘模塊,生成新的入侵檢測規則。這樣更有效的提高系統的檢測性從而增強系統的安全性。
基于主機的IDS過濾日志、分析日志、使用它自己的嚴重性級別系統來給異常消息標簽[9]。基于網絡的IDS在路由器或主機級別掃描分組、審查分組、并且把可疑的記錄在一個特殊的文件中詳細的記錄下來。然后根據網絡攻擊特征數據庫,為每個分組指定嚴重級別。對于已知的攻擊,根據攻擊類型與總控模塊通信,由總控模塊做出響應。
系統框架模型如圖2所示。

圖2 新型入侵檢測系統模型圖Fig.2 System model of new IDS
當蜜罐被進入的時候.即為惡意入侵或者是入侵的前奏。若是已知的攻擊,則控制器會做出響應。如果是未知的攻擊,系統并不知道其入侵模式,這就需要最大限度的拖延攻擊的入侵速度。蜜罐主機與未知的攻擊建立起TCP會話,并把會話的接受窗口大小始終保持為0[10]。這樣就能夠把攻擊阻擋在蜜罐中,為數據挖掘爭取更多的時間。當面對未知的攻擊時,調用數據挖掘模塊。綜合利用分類、序列分析、關聯規則等各種數據挖掘方法。分析經過預處理的數據,發現事件之間的時間和空間關系,從中提取相關的特征和規則。在此基礎上對行為集進行數據挖掘,根據給定的信任度和支持度,找出一些攻擊的行為模式,建立異常模式,并存入IDS的規則庫中,從而實現對新型攻擊的有效抵御。
文中介紹了入侵檢測系統、蜜罐技術、數據挖掘技術的相關概念。通過分析入侵檢測系統和蜜罐系統的優缺點,提出將兩者結合的方案,并將數據挖掘技術融入結合后的蜜罐模塊中,使用先關聯規則挖掘,后序列模式挖掘的方法,發現規則、模式等信息,并將其加入入侵檢測的規則庫,以便以后使用。與傳統入侵檢測系統相比,基于蜜罐和數據挖掘技術的新型入侵檢測系統完善了功能,提高了保護系統安全的能力。
[1]Denatious D K,John A.Survey on data mining techniques to enhance intrusion detection[J].ICCC,2012(1):1-5.
[2]Provos N,Holz T.虛擬蜜罐從僵尸網絡追蹤到入侵檢測[M].張浩軍,李景峰,等譯.北京:中國水利水電出版社,2011.
[3]夏磊,蔣建中,高志吳.入侵誘騙、入侵檢測、入侵響應三位一體的網絡安全新機制[J].計算機應用與軟件,2007,24(4):171-173.XIA Lei,JIANG Jian-zhong,Gao Zhi-wu.A new network security mechanism which containing honeypot IDS and intrusion response system[J].ComputerApplication and Software,2007,24(4):171-173.
[4]鄭君杰,肖軍模.基于Honeypot技術的網絡入侵檢測系統[J].電子科技大學學報,2007,36(2):257-259.ZHENG Jun-jie,XIAO Jun-mo.Network intrusion detection system based on honeypot[J].Journal of University of Electronic Science and Technology of China,2007,36 (2):257-259.
[5]姜染石.在蜜罐中應用數據挖掘技術[D].長春:長春工業大學,2007.
[6]序列挖掘模式.[EB/OL].(2012-04-24)http://site.douban.com/widget/notes/108962/note/88480888.
[7]王金磊.數據挖掘技術在網絡入侵檢測中的應用[D].鄭州:鄭州大學,2005.
[8]馮萍,孫偉,姚艷秋.一種基于數據挖掘的入侵檢測方法[J].長春師范學院學報:自然科學版,2009,28(5):30-32.FENG Ping,SUN Wei,YAO Yan-qiu.An intrusion detection method based on data mining[J].Journal of Changchun Normal University:Natural Science,2009,28(5):30-32.
[9]翟光群,陳向東,胡貴江,等.蜜罐與入侵檢測技術聯動系統的研究與設計[J].計算機工程與設計,2009,30(21):45-47.ZHAI Guang-qun,CHEN Xiang-dong,HU Gui-jiang,et al.Research and design on linkage system of honeypot and intrusion detected technology[J].Computer Engineering and Design,2009,30(21):45-47.
[10]潘立武.基于IDS和DM的Honeypot系統的設計[J].北京聯合大學學報,2010,24(1):42-45.PAN Li-wu.A design of honeypot system based on IDS and DM[J].Journal of Beijing Union University,2010,24(1):42-45.