摘 要: 入侵檢測" title="入侵檢測">入侵檢測作為一種計(jì)算機(jī)系統(tǒng)安全監(jiān)測手段,已經(jīng)成為維護(hù)網(wǎng)絡(luò)安全的主要技術(shù)之一,。提出了一種新的模式匹配" title="模式匹配">模式匹配方法,,即基于動(dòng)態(tài)規(guī)則集和協(xié)議分析" title="協(xié)議分析">協(xié)議分析的模式匹配,它能縮短模式匹配的時(shí)間,,極大地提高了入侵檢測效率,為入侵檢測理論研究和相關(guān)產(chǎn)品研發(fā)提供了參考。
關(guān)鍵詞: 入侵檢測 動(dòng)態(tài)規(guī)則集 協(xié)議分析 模式匹配
入侵檢測系統(tǒng)" title="入侵檢測系統(tǒng)">入侵檢測系統(tǒng)IDS(Intrusion Detection System)是近年出現(xiàn)的新型網(wǎng)絡(luò)安全系統(tǒng),,它能夠發(fā)現(xiàn)入侵并且對(duì)其作出反應(yīng),如報(bào)警,、事件記錄,、終止惡意程序和斷開網(wǎng)絡(luò)等,為網(wǎng)絡(luò)安全提供實(shí)時(shí)保障,。IDS通常是根據(jù)已知攻擊方式構(gòu)建規(guī)則特征庫,,抓取數(shù)據(jù)包,然后基于特征逐條模式匹配,,匹配成功則說明有入侵發(fā)生,,否則繼續(xù)下一個(gè)數(shù)據(jù)包的處理。將模式匹配應(yīng)用于入侵檢測是由Sandeep Kumar最先提出的[4],。
IDS的主要性能參數(shù)有兩個(gè):誤報(bào)率和漏報(bào)率,。誤報(bào)率又叫虛警率,是指IDS在檢測時(shí)出現(xiàn)虛警的概率,;漏報(bào)率是指本來應(yīng)該報(bào)警卻沒有報(bào)警的概率,。
1 動(dòng)態(tài)規(guī)則集和協(xié)議分析
1.1 目前模式匹配中的問題
隨著網(wǎng)絡(luò)的發(fā)展,攻擊代碼不斷衍生,,例如phf攻擊將“/cgi-bin/phf”改變?yōu)椤?cgi-bin/xxx/../phf”或“\cgi-bin\phf”等,,攻擊方式也越來越多樣,,如沖擊波、振蕩波等,。新的漏洞不斷被發(fā)現(xiàn),,不得不增多規(guī)則條目來完善IDS的規(guī)則庫,這將使IDS的處理負(fù)荷增加,。規(guī)則集的膨脹和網(wǎng)絡(luò)流速的提高,,使得IDS來不及處理每一個(gè)數(shù)據(jù)包,致使丟包不可避免,。所丟的包中的攻擊100%被漏報(bào),,導(dǎo)致漏報(bào)率增大。網(wǎng)絡(luò)流速的單位為pps(packet per second),。
目前的IDS都是采用靜態(tài)規(guī)則集,,存在很多弊端:如果規(guī)則集大而全面,在理想的條件下,,降低了漏報(bào)率,,但是實(shí)際中反而增加了漏報(bào)率。因?yàn)橐?guī)則集膨脹,,模式匹配所耗時(shí)間增大,,處理負(fù)荷線性增加[3],網(wǎng)絡(luò)流速超出IDS的處理能力" title="處理能力">處理能力時(shí),,有些數(shù)據(jù)包來不及進(jìn)行模式匹配,,導(dǎo)致丟包,特別是在高速網(wǎng)絡(luò)下,,導(dǎo)致大量丟包,,漏報(bào)率明顯增大。
顯然,,各攻擊出現(xiàn)的概率存在較大差異,,有些攻擊每天都可能發(fā)生,有些攻擊一年甚至多年才可能發(fā)生一次,。因此可以根據(jù)概率對(duì)規(guī)則集進(jìn)行排序,,在模式匹配時(shí)優(yōu)先匹配那些概率大的規(guī)則。另外,,大部分的攻擊都不是孤立產(chǎn)生的,,相互之間存在著某種聯(lián)系,這種聯(lián)系多為依賴性,,即存在先后關(guān)系,,如80端口被掃描,就有可能發(fā)生CGI攻擊,。
多數(shù)IDS都忽略了這種概率性和依賴性,,從而暴露出模式匹配所消耗的時(shí)間資源太大,,浪費(fèi)大量不必要的時(shí)間。針對(duì)這個(gè)問題,,本文參照參考文獻(xiàn)[2]中提到的動(dòng)態(tài)規(guī)則集[2],,提出利用動(dòng)態(tài)規(guī)則集和協(xié)議分析來提高模式匹配效率。
1.2 動(dòng)態(tài)規(guī)則集
所謂動(dòng)態(tài)規(guī)則集,,其動(dòng)態(tài)性有兩種含義:
(1)建立一個(gè)動(dòng)態(tài)規(guī)則調(diào)整策略,,它可以獲得網(wǎng)絡(luò)流速和IDS的處理能力,然后根據(jù)相應(yīng)的策略來動(dòng)態(tài)調(diào)整規(guī)則集的范圍,。當(dāng)網(wǎng)絡(luò)流速大于靜態(tài)規(guī)則集IDS處理能力時(shí),,目前的IDS會(huì)丟掉來不及處理的數(shù)據(jù)包,特別是網(wǎng)絡(luò)流速很大時(shí),,會(huì)產(chǎn)生大量丟包,,導(dǎo)致較大的漏報(bào)率。而動(dòng)態(tài)規(guī)則調(diào)整策略則是把一些長期沒有匹配成功過的規(guī)則,,特別是一些多年才可能匹配成功一次的規(guī)則和一些已經(jīng)荒廢的規(guī)則過濾,。這就使IDS在模式匹配時(shí)不與這些小概率規(guī)則匹配,。這樣,,雖然有可能帶來一些漏報(bào)率,但是相對(duì)于前一種方法來說,,它帶來的漏報(bào)率要低很多,,使IDS在當(dāng)前流速下獲得最佳性能。當(dāng)網(wǎng)絡(luò)流速小于靜態(tài)規(guī)則集IDS處理能力時(shí),,根據(jù)動(dòng)態(tài)規(guī)則調(diào)整策略將規(guī)則集的范圍擴(kuò)大到全規(guī)則,,在此規(guī)則集上進(jìn)行模式匹配,可使系統(tǒng)資源得到充分利用,,也使IDS獲得了當(dāng)前流速下的最佳性能,。
(2)規(guī)則格式如圖1所示,規(guī)則格式中有兩項(xiàng),,分別為長期概率和短期概率,。長期概率有個(gè)初始默認(rèn)值,是IDS研發(fā)人員經(jīng)過大量真實(shí)數(shù)據(jù)測試得出的,,它是該規(guī)則在固定時(shí)間內(nèi)出現(xiàn)的平均次數(shù)值,,短期概率初始值為0。IDS安裝后,,如果某個(gè)規(guī)則被匹配成功一次,,則將短期概率加1,設(shè)定一個(gè)時(shí)間門檻T,,在時(shí)間到達(dá)T后,,計(jì)算長期概率×1/4+短期概率的值,,然后賦給長期概率,短期概率清零,,也就是動(dòng)態(tài)更新長期概率和短期概率,,使之與本地的網(wǎng)絡(luò)背景不斷接近。通常,,T的值不能太小,,因?yàn)樘〉腡值不能真實(shí)反映本地網(wǎng)絡(luò)背景的特點(diǎn)。之所以沒有把長期概率+短期概率的值賦給長期概率,,是因?yàn)槎唐诟怕时乳L期概率更能真實(shí)地反映本地的網(wǎng)絡(luò)背景,,短期概率優(yōu)先級(jí)別大于長期概率。
在圖1中,,后續(xù)規(guī)則1~5這五項(xiàng)是用來記錄這些規(guī)則被匹配成功之后常出現(xiàn)的后續(xù)攻擊所對(duì)應(yīng)的規(guī)則編號(hào),,這些編號(hào)也是IDS研發(fā)人員經(jīng)過推斷以及大量真實(shí)數(shù)據(jù)測試得出的。在IDS中可以定義六個(gè)變量:ID,、ID1,、ID2、ID3,、ID4和ID5,。ID為上一個(gè)被匹配成功的規(guī)則編號(hào),ID1,、ID2,、ID3、ID4和ID5為對(duì)應(yīng)規(guī)則編號(hào)ID的五個(gè)后續(xù)規(guī)則編號(hào),。IDS發(fā)現(xiàn)一個(gè)攻擊后,,用這六個(gè)變量分別記錄規(guī)則編號(hào)和五個(gè)后續(xù)規(guī)則編號(hào),在下一個(gè)數(shù)據(jù)包獲取后,,先將數(shù)據(jù)包分別與規(guī)則編號(hào)為ID1,、ID2、ID3,、ID4和ID5的規(guī)則匹配,,如有匹配成功則報(bào)警,否則繼續(xù)下一步匹配,。直到有一個(gè)數(shù)據(jù)包被匹配成功時(shí),,才將新的規(guī)則編號(hào)和五個(gè)后續(xù)規(guī)則編號(hào)分別賦給ID、ID1,、ID2,、ID3、ID4和ID5,。
1.3 協(xié)議分析
在以網(wǎng)絡(luò)為主的入侵檢測系統(tǒng)中,,由于把通過網(wǎng)絡(luò)獲得的數(shù)據(jù)包作為偵測的資料來源,,所以數(shù)據(jù)包在網(wǎng)絡(luò)傳輸中必須遵循固定的協(xié)議才能在計(jì)算機(jī)之間相互溝通,因此可以按照協(xié)議類別對(duì)規(guī)則集進(jìn)行分類,。
協(xié)議分析的原理就是根據(jù)現(xiàn)有的協(xié)議模式,,到固定的位置取值(而不是逐一地去比較),然后根據(jù)取得的值判斷其協(xié)議以及實(shí)施下一步分析動(dòng)作,。其作用十分類似于郵局的郵件自動(dòng)分撿設(shè)備,,有效地提高了分析效率,同時(shí)還可以避免單純模式匹配帶來的誤報(bào),。
根據(jù)以太網(wǎng)的幀結(jié)構(gòu)定義,,在以太幀的第13個(gè)字節(jié)處包含2字節(jié)的第三層協(xié)議標(biāo)識(shí),0800為IP協(xié)議,,0806為ARP協(xié)議,,8138為NOVELL協(xié)議等。在IP數(shù)據(jù)包的格式定義中,,第10個(gè)字節(jié)為第四層協(xié)議標(biāo)識(shí),,如:TCP為06,UDP為11,,ICMP為01等,。而TCP數(shù)據(jù)包的第3、第4個(gè)字節(jié)為應(yīng)用層協(xié)議標(biāo)識(shí)(端口號(hào)),,如80為HTTP協(xié)議,,21為FTP協(xié)議,,23為TELNET協(xié)議等,。
根據(jù)以上特點(diǎn),可以將協(xié)議分析算法用一棵協(xié)議分類樹來表示,,如圖2所示,。
這樣,當(dāng)IDS進(jìn)行模式匹配時(shí),,利用協(xié)議分析過濾許多規(guī)則,,可以節(jié)省大量的時(shí)間。在所有規(guī)則中又是關(guān)于TCP的規(guī)則最多,,大約占了50%以上,,因此在初步分類后,可以按照端口進(jìn)行第二次分類,。在兩次分類完成后,,可以快速比較特征庫中的規(guī)則,減少大量不必要的時(shí)間消耗,。如有必要,,還可進(jìn)行多次分類,,盡量在規(guī)則樹上分叉,盡可能地縮減模式匹配的范圍,。圖2就是對(duì)協(xié)議的多次分類,。
1.4 基于動(dòng)態(tài)規(guī)則集和協(xié)議分析的模式匹配算法設(shè)計(jì)
基于動(dòng)態(tài)規(guī)則集和協(xié)議分析的模式匹配算法包括以下六個(gè)主要步驟:(1)數(shù)據(jù)包獲取和流速測試;(2)根據(jù)網(wǎng)絡(luò)流速與IDS處理能力確定規(guī)則集范圍,;(3)協(xié)議分析,,將規(guī)則分類,過濾掉無需匹配的規(guī)則集,;(4)概率策略選擇,,將需要匹配的剩余規(guī)則集按概率降序排列;(5)取出上一條匹配成功的規(guī)則的五個(gè)后續(xù)規(guī)則編號(hào),,將數(shù)據(jù)包依次與其匹配,,若匹配成功則報(bào)警,并將短期概率加1,,否則繼續(xù)下一步,;(6)與按照概率策略算法所得的規(guī)則集進(jìn)行模式匹配,若成功則報(bào)警,,并將短期概率加1,,否則,返回步驟1重新開始下一數(shù)據(jù)包的處理,。
綜上所述,,可以給出整個(gè)模式匹配的流程圖,如圖3所示,。
從圖3中可以看出,,概率策略選擇有三種方案:長期概率優(yōu)先,短期概率優(yōu)先和綜合折中,。很明顯,,長期概率優(yōu)先機(jī)制在排序時(shí)考慮了短期概率,但是效果不明顯,,忽略了短期概率的重要性,;同樣,短期概率優(yōu)先機(jī)制忽略了長期概率的重要性,;而綜合折中機(jī)制綜合考慮了長期概率和短期概率的重要性,,是其中最佳的方案。
2 性能比較分析
實(shí)際的測試是在實(shí)驗(yàn)室進(jìn)行的,,根據(jù)自定義的測試攻擊數(shù)據(jù)和規(guī)則庫,,利用Smartbits設(shè)備制造背景流量(平均幀長為128字節(jié)),在C++語言的環(huán)境下編譯程序,針對(duì)不同的網(wǎng)絡(luò)流速進(jìn)行測試,。
根據(jù)程序中所設(shè)的計(jì)數(shù)器,,在不同網(wǎng)絡(luò)流速下測試不同方案的臨界丟包點(diǎn),也就是程序所處理的數(shù)據(jù)包個(gè)數(shù)開始小于網(wǎng)絡(luò)背景流量時(shí)的流速,,測試的臨界丟包點(diǎn)如表1所示,。
采用不同方案的IDS在不同網(wǎng)絡(luò)流速下對(duì)已知攻擊測得的漏報(bào)率如圖4所示。
?
在圖4中,,11萬pps是IDS采用靜態(tài)規(guī)則集的處理能力,,30萬pps是采用動(dòng)態(tài)規(guī)則集的處理能力,43萬pps是采用協(xié)議分析的處理能力,,61萬pps是采用動(dòng)態(tài)規(guī)則集和協(xié)議分析的處理能力,。
由于攻擊數(shù)據(jù)是已知攻擊,不存在未知攻擊,,所以網(wǎng)絡(luò)流速低于11萬pps時(shí),,已知攻擊的漏報(bào)率是0%。由圖4可以看出,,不管采用何種方案,,網(wǎng)絡(luò)流速小于11萬pps時(shí),漏報(bào)率保持不變,。比較各方案的性能,,可得出如下結(jié)論:
(1)采用靜態(tài)規(guī)則集的IDS:網(wǎng)絡(luò)流速大于11萬pps時(shí)開始出現(xiàn)丟包,導(dǎo)致漏報(bào)率增大,。
(2)采用動(dòng)態(tài)規(guī)則集的IDS:網(wǎng)絡(luò)流速大于11萬pps小于30萬pps時(shí),,沒有丟包,但是由于動(dòng)態(tài)調(diào)整了規(guī)則集的范圍,,過濾掉了一些小概率規(guī)則,,導(dǎo)致漏報(bào)率稍微增大,這種方案比第一種方案帶來的性能損失要??;網(wǎng)絡(luò)流速大于30萬pps后開始丟包,漏報(bào)率增大,。
(3)采用協(xié)議分析的IDS:網(wǎng)絡(luò)流速大于11萬pps小于43萬pps時(shí)沒有丟包,但是由于協(xié)議分析過程中不能完全正確地分類,,漏報(bào)率稍微增大,;網(wǎng)絡(luò)流速大于43萬pps后開始丟包,漏報(bào)率增大,。
(4)采用動(dòng)態(tài)規(guī)則集和協(xié)議分析的IDS:網(wǎng)絡(luò)流速大于11萬pps小于61萬pps時(shí),,沒有丟包,但是由于動(dòng)態(tài)調(diào)整了規(guī)則集的范圍和協(xié)議分析過程中不能完全正確地分類,漏報(bào)率稍微增大,;網(wǎng)絡(luò)流速大于61萬pps后開始出現(xiàn)丟包,,漏報(bào)率增大。
假設(shè)未知攻擊占所有攻擊的百分比為a,,未知攻擊的漏報(bào)率b為100%,,已知攻擊的漏報(bào)率為c,如圖4中的縱坐標(biāo),,則可以計(jì)算出實(shí)際的漏報(bào)率為P=a*b+(1-a)*c,, P=a+(1-a)*c,其中0≤a≤1,,b=1,,0≤c≤1。
綜上所述,,采用動(dòng)態(tài)規(guī)則集與協(xié)議分析結(jié)合的方案能夠極大地提高IDS的處理能力,,在不影響誤報(bào)率的條件下,大大降低了漏報(bào)率,,提高了IDS的性能,,使得IDS能夠適應(yīng)不同流速的網(wǎng)絡(luò)。
本論文提出了利用動(dòng)態(tài)規(guī)則集和協(xié)議分析來提高入侵檢測效率,。這種方案主要是通過協(xié)議分析縮小了模式匹配的規(guī)則集,,并把規(guī)則集按照概率降序排序,優(yōu)先匹配概率高的規(guī)則,,從而極大地提高了模式匹配的效率,,節(jié)省了不必要的匹配時(shí)間,解決了規(guī)則集不斷膨脹而導(dǎo)致IDS性能下降的問題,。
參考文獻(xiàn)
1 Kumar G.Classification and detection of computer intrusion[D].Purdue University,,1995
2 李朔峰,李雪瑩,,許榕生.運(yùn)用動(dòng)態(tài)規(guī)則集機(jī)制改善IDS性能的研究[J].計(jì)算機(jī)工程與應(yīng)用,,2003;(34):139~141
3 閆 巧,,喻建平,,謝維信.入侵檢測系統(tǒng)的可信問題[J].計(jì)算機(jī)研究與發(fā)展,2003,;(8):1203~1208