楊立揚(yáng)
摘要:入侵檢測(cè)系統(tǒng)是一種對(duì)網(wǎng)絡(luò)進(jìn)行動(dòng)態(tài)監(jiān)測(cè),在發(fā)現(xiàn)入侵行為時(shí)發(fā)布預(yù)警的主動(dòng)網(wǎng)絡(luò)安全技術(shù),該文首先介紹了通用入侵檢測(cè)系統(tǒng)的組成架構(gòu),然后介紹了兩種常用的入侵檢測(cè)分析技術(shù),最后設(shè)計(jì)并實(shí)現(xiàn)一個(gè)具有實(shí)際應(yīng)用價(jià)值的入侵檢測(cè)系統(tǒng)模型。
關(guān)鍵詞:入侵檢測(cè)系統(tǒng);IDS
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)22-5318-03
The Design and Implementation of Intrusion Detection System Model
YANG Li-yang
(Motorola Mobility Nanjing Software Center, Najing 211102,China)
Abstract:As a proactive network security technology, Intrusion Detection System dynamically monitor network state and send out alert once find intrusion behavior. This paper first introduce common architecture of Intrusion Detection System, then introduce two major intrusion detection analysis technology, finally design and implement a full Intrusion Detection System mode which can be actually applied.
Key words: intrusion detection system; IDS
網(wǎng)絡(luò)安全日益成為人們關(guān)注的焦點(diǎn),而構(gòu)建一個(gè)安全的網(wǎng)絡(luò)系統(tǒng)卻十分困難,首先,操作系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)軟件越來(lái)越復(fù)雜,導(dǎo)致軟件設(shè)計(jì)者無(wú)法預(yù)測(cè)程序?qū)嶋H運(yùn)行中的全部狀態(tài),系統(tǒng)漏洞是難以完全避免的;其次,目前網(wǎng)絡(luò)上的主要安全控制方法是身份認(rèn)證和訪問(wèn)控制等,然而,木馬程序可以輕易地竊取用戶的身份認(rèn)證信息,黑客可以利用系統(tǒng)漏洞提升權(quán)限而繞過(guò)訪問(wèn)控制,這些攻擊都會(huì)使得精心構(gòu)建的網(wǎng)路安全防御體系失效,所以一個(gè)完善的網(wǎng)絡(luò)安全體系,僅僅防御是不夠的,入侵檢測(cè)系統(tǒng)(IDS)因此被提出。
作為一種主動(dòng)的網(wǎng)絡(luò)安全防護(hù)技術(shù),入侵檢測(cè)系統(tǒng)可以用來(lái)發(fā)現(xiàn)外部攻擊和合法用戶濫用特權(quán),它智能地對(duì)數(shù)據(jù)進(jìn)行采集,分析和預(yù)警,可以有效地發(fā)現(xiàn)可疑的入侵行為,并警示系統(tǒng)管理員及時(shí)發(fā)現(xiàn)和處理。
1入侵檢測(cè)系統(tǒng)的組成架構(gòu)
通用的入侵檢測(cè)系統(tǒng)主要包括數(shù)據(jù)采集模塊,入侵分析引擎和用戶界面三大模塊,有的系統(tǒng)可能還有安全知識(shí)庫(kù)和數(shù)據(jù)存儲(chǔ)等功能模塊,從而可以提供更加完善的安全檢測(cè)和數(shù)據(jù)分析功能。
1)數(shù)據(jù)采集模塊:數(shù)據(jù)采集模塊在入侵檢測(cè)系統(tǒng)中處于基礎(chǔ)地位,負(fù)責(zé)從網(wǎng)絡(luò)和系統(tǒng)中采集可能包含入侵行為線索的數(shù)據(jù),如IP包,系統(tǒng)日志和資源使用狀態(tài)等。同時(shí)數(shù)據(jù)采集模塊還會(huì)對(duì)采集來(lái)的數(shù)據(jù)進(jìn)行過(guò)濾和預(yù)處理,然后將這些原始的審計(jì)數(shù)據(jù)發(fā)送到入侵分析引擎做進(jìn)一步的分析處理。
2)入侵分析引擎:入侵分析引擎從數(shù)據(jù)采集模塊接收數(shù)據(jù),調(diào)用預(yù)先設(shè)定的算法對(duì)數(shù)據(jù)進(jìn)行分析并確定是否發(fā)生了非法的入侵行為以及入侵行為的類別,如果有入侵行為,則生成一個(gè)預(yù)警信號(hào)并發(fā)送到用戶界面模塊,警示網(wǎng)絡(luò)管理員,預(yù)警信號(hào)中包含采集的入侵行為證據(jù)和判斷依據(jù),這樣可以允許網(wǎng)絡(luò)管理員做進(jìn)一步的判斷,排除誤警報(bào)。
3)用戶界面模塊:用戶界面主要將入侵分析引擎檢測(cè)到的入侵行為以可視化的方式通知網(wǎng)絡(luò)管理員,幫助網(wǎng)絡(luò)管理員對(duì)入侵行為作出主動(dòng)或者被動(dòng)的響應(yīng)。
2入侵檢測(cè)系統(tǒng)的分析技術(shù)
入侵分析引擎在整個(gè)入侵檢測(cè)系統(tǒng)中居于核心位置,其決定了整個(gè)系統(tǒng)的智能化程度,目前入侵分析引擎中廣泛應(yīng)用的技術(shù)主要是誤用檢測(cè)與異常檢測(cè)兩種。
2.1誤用檢測(cè)
誤用檢測(cè)屬于基于標(biāo)志的檢測(cè),它將已知攻擊方法的特征進(jìn)行提取,然后定義生成入侵模式庫(kù),入侵檢測(cè)系統(tǒng)通過(guò)監(jiān)測(cè)網(wǎng)絡(luò)中是否出現(xiàn)與庫(kù)中所存儲(chǔ)的入侵模式相匹配的行為來(lái)判斷是否發(fā)生入侵行為。誤用檢測(cè)依據(jù)入侵行為的特征庫(kù)來(lái)進(jìn)行判斷,所以準(zhǔn)確度高,但缺點(diǎn)是有些具體的入侵行為很難抽象成入侵模式,而且其檢測(cè)的范圍也僅僅限于已有模式庫(kù)中的入侵行為。
2.2異常檢測(cè)
異常檢測(cè)屬于基于行為的檢測(cè),它不依賴于具體的入侵模式是否出現(xiàn),而只是根據(jù)用戶行為和資源使用狀況是否正常來(lái)判斷是否發(fā)生入侵。異常檢測(cè)具有較強(qiáng)的通用性,甚至可以檢測(cè)出從未出現(xiàn)過(guò)的攻擊方法,其缺點(diǎn)是誤檢率比較高,因?yàn)閷?duì)于一個(gè)用戶眾多的網(wǎng)絡(luò)系統(tǒng)來(lái)說(shuō),用戶行為和資源使用狀況可能會(huì)頻繁改變,難以界定什么范圍屬于正常狀況,什么范圍屬于發(fā)生了入侵行為。
在實(shí)際的系統(tǒng)中,誤用檢測(cè)和異常檢測(cè)具有互補(bǔ)性,所以可以將它們結(jié)合在一起使用,對(duì)不同的數(shù)據(jù)來(lái)源,采用不同的檢測(cè)方法,如對(duì)系統(tǒng)日志可以使用異常檢測(cè),而對(duì)網(wǎng)絡(luò)數(shù)據(jù)包則更適合使用誤用檢測(cè)。
3入侵檢測(cè)系統(tǒng)模型的設(shè)計(jì)及實(shí)現(xiàn)
基于入侵檢測(cè)系統(tǒng)的原理,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了一種可實(shí)際應(yīng)用的入侵檢測(cè)系統(tǒng)模型,圖1描述了該模型依據(jù)功能劃分的系統(tǒng)架構(gòu)圖。該入侵檢測(cè)系統(tǒng)采集的數(shù)據(jù)信息來(lái)源于三個(gè)部分:系統(tǒng)日志,系統(tǒng)調(diào)用和網(wǎng)絡(luò)數(shù)據(jù)。
圖1入侵檢測(cè)系統(tǒng)架構(gòu)圖
3.1數(shù)據(jù)信息采集
在我們的模型中,數(shù)據(jù)信息的獲取和預(yù)處理都是由數(shù)據(jù)采集模塊來(lái)完成的,根據(jù)數(shù)據(jù)源的不同,我們?cè)O(shè)計(jì)了三種不同的數(shù)據(jù)采集模塊:網(wǎng)絡(luò)數(shù)據(jù)采集模塊,系統(tǒng)調(diào)用采集模塊,系統(tǒng)日志監(jiān)控模塊。
1)網(wǎng)絡(luò)數(shù)據(jù)采集模塊使用抓包工具Tcpdump從網(wǎng)絡(luò)中獲取IP包,并對(duì)這些抓獲的IP包按照協(xié)議層進(jìn)行分析和記錄,這樣可以獲得整個(gè)網(wǎng)絡(luò)的IP通信數(shù)據(jù)。
2)系統(tǒng)調(diào)用采集模塊里,我們通過(guò)修改Linux系統(tǒng)下的序列跟蹤程序Strace,來(lái)收集特定進(jìn)程的系統(tǒng)調(diào)用序列號(hào)。
3)系統(tǒng)日志監(jiān)控模塊里,我們通過(guò)對(duì)系統(tǒng)中的一些關(guān)鍵日志進(jìn)行實(shí)時(shí)監(jiān)控,來(lái)提取出可疑或越權(quán)的用戶行為。
數(shù)據(jù)采集模塊除了采集相關(guān)的數(shù)據(jù)以外,還要對(duì)采集來(lái)的數(shù)據(jù)進(jìn)行預(yù)處理和特征屬性提取后,然后再把它們保存到各自的數(shù)據(jù)庫(kù)中。
3.2入侵分析引擎
由于該模型系統(tǒng)中每一個(gè)數(shù)據(jù)源分析處理的方式都不同,我們?yōu)槊恳粋€(gè)數(shù)據(jù)源設(shè)計(jì)了一個(gè)相應(yīng)的數(shù)據(jù)分析引擎。
3.2.1網(wǎng)絡(luò)數(shù)據(jù)分析引擎
網(wǎng)絡(luò)數(shù)據(jù)分析的主要目的是監(jiān)測(cè)是否發(fā)生探測(cè)攻擊,拒絕服務(wù)攻擊和分布式攻擊。
探測(cè)攻擊和拒絕服務(wù)攻擊具有一個(gè)共同特征,那就是是在短時(shí)間內(nèi)會(huì)發(fā)出大量數(shù)據(jù)連接請(qǐng)求包,所以我們通過(guò)模擬探測(cè)攻擊和拒絕服務(wù)攻擊,可以記錄下攻擊發(fā)生時(shí)的網(wǎng)絡(luò)連接記錄作為原始數(shù)據(jù)集,然后采用遺傳算法對(duì)這些原始數(shù)據(jù)集進(jìn)行訓(xùn)練,從而生成三類網(wǎng)絡(luò)連接數(shù)據(jù)特征庫(kù):探測(cè)攻擊數(shù)據(jù)特征庫(kù),拒絕服務(wù)攻擊數(shù)據(jù)特征庫(kù),正常的數(shù)據(jù)特征庫(kù)。這些特征庫(kù)以后可以被用來(lái)與實(shí)際檢測(cè)網(wǎng)路的特征進(jìn)行匹配來(lái)判斷是否發(fā)生攻擊。
分布式攻擊是針對(duì)整個(gè)網(wǎng)段的攻擊,所以這里我們采用關(guān)聯(lián)分析的數(shù)據(jù)挖掘Apriori算法來(lái)訓(xùn)練得出網(wǎng)段內(nèi)各個(gè)主機(jī)之間的關(guān)聯(lián)規(guī)則,然后在入侵監(jiān)測(cè)階段就可以利用這些關(guān)聯(lián)規(guī)則來(lái)判斷是否發(fā)生了分布式攻擊。
3.2.2系統(tǒng)調(diào)用分析引擎
系統(tǒng)程序中由于有條件及循環(huán)語(yǔ)句,所以其實(shí)際的調(diào)用序列具有一定的隨機(jī)性,但如果將系統(tǒng)調(diào)用序列劃分成一定窗口大小的子序列后,隨著子序列的增加,這些子序列的系統(tǒng)調(diào)用關(guān)系將逐步呈現(xiàn)出穩(wěn)定性。當(dāng)發(fā)生異常攻擊時(shí),這種穩(wěn)定性將會(huì)被打破,所以在我們的系統(tǒng)中,通過(guò)對(duì)系統(tǒng)調(diào)用的子序列運(yùn)用挖掘算法,就可以生成正常的子序列調(diào)用集合和不正常的子序列調(diào)用集合。在入侵監(jiān)測(cè)過(guò)程中,如果發(fā)現(xiàn)系統(tǒng)調(diào)用子序列發(fā)生異常,并與不正常的子序列調(diào)用集合匹配,即可判斷發(fā)生了可疑入侵行為。
3.2.3用戶行為分析引擎
作為一個(gè)完整的入侵檢測(cè)系統(tǒng),除了要能夠檢測(cè)出來(lái)自外部的攻擊行為,另外一個(gè)重要的任務(wù)就是檢測(cè)出內(nèi)部合法用戶的越權(quán)行為,事實(shí)上,后者由于具有合法權(quán)限往往能夠造成更嚴(yán)重的后果。本系統(tǒng)中,我們專門設(shè)計(jì)了一個(gè)用戶行為分析引擎,用于對(duì)內(nèi)部用戶的行為進(jìn)行監(jiān)測(cè)分析,以發(fā)現(xiàn)可疑的用戶行為。
用戶行為分析引擎根據(jù)用戶的權(quán)限和正常行為特征建立用戶行為模式庫(kù),在實(shí)際監(jiān)測(cè)中,通過(guò)分析系統(tǒng)日志來(lái)提取出用戶當(dāng)前的行為特征并與模式庫(kù)進(jìn)行匹配來(lái)發(fā)現(xiàn)可以行為。
建立模式庫(kù)所選用的主要參數(shù)包括:失敗登錄次數(shù),是否試圖執(zhí)行su及嘗試次數(shù),登錄源IP地址是否來(lái)自外部,嘗試訪問(wèn)系統(tǒng)敏感文件的次數(shù),是否獲得根Shell等。
3.3用戶界面與入侵預(yù)警
用戶界面與入侵預(yù)警模塊在入侵分析引擎發(fā)現(xiàn)入侵行為后,通過(guò)可視化的用戶界面及時(shí)向網(wǎng)絡(luò)管理員發(fā)出預(yù)警。我們的系統(tǒng)中,對(duì)預(yù)警的級(jí)別進(jìn)行了分類,如果入侵分析引擎肯定當(dāng)前發(fā)生入侵行為則發(fā)出一級(jí)紅色警報(bào),如果發(fā)現(xiàn)可能的入侵行為,則發(fā)出二級(jí)黃色警報(bào),如果僅僅發(fā)現(xiàn)一些輕度異常的狀況,則將這些信息存入入侵檢測(cè)系統(tǒng)日志,以備網(wǎng)絡(luò)管理員日后查驗(yàn)。
一級(jí)和二級(jí)預(yù)警的通知方式為窗口報(bào)警,向管理員屏幕彈出告警對(duì)話框,該對(duì)話框除告知入侵檢測(cè)系統(tǒng)的判斷結(jié)論外,還列出與入侵相關(guān)的各種廣泛性數(shù)據(jù),幫助管理員主觀性地對(duì)入侵行為進(jìn)行分析判斷,防止發(fā)生過(guò)高的誤警率。
4結(jié)束語(yǔ)
該文中我們所設(shè)計(jì)和實(shí)現(xiàn)的入侵檢測(cè)系統(tǒng)模型較完整地體現(xiàn)了入侵檢測(cè)系統(tǒng)的主動(dòng)防護(hù)功能,能有效地檢測(cè)和預(yù)警探測(cè)攻擊,拒絕服務(wù)攻擊,分布式攻擊,異常系統(tǒng)調(diào)用以及用戶的越權(quán)行為等,但同時(shí)我們也看到,由于目前的網(wǎng)絡(luò)安全體系尚存在許多的缺陷,導(dǎo)致入侵檢測(cè)系統(tǒng)具有較高的誤警率,識(shí)別入侵的方法缺乏智能化,入侵檢測(cè)系統(tǒng)作為網(wǎng)絡(luò)安全的一個(gè)方向還有很多技術(shù)需要完善。
參考文獻(xiàn):
[1] Mukherjee B, Heberlein T L, Levitt K N. Network intrusion detection[J]. IEEE network 1994,8(3):26-41.
[2] Anderson, Computer Security Threat and Surveillance, 1980.
[3] Denning D E. An Intrusion-detection model[J]. IEEE Transaction on Software Engneering , 1987,13(2):222-232.
[4] Theuns Verwoerd, Ray Hunt. Intrusion detection techniques and approaches[J]. Computer Communication ,2002(25):1356 -1365.