關(guān)鍵詞:入侵檢測; 高速網(wǎng)絡(luò); 協(xié)議分析; 多機處理
1 引言
隨著Internet 網(wǎng)絡(luò)安全問題的不斷暴露和當(dāng)前黑客攻擊技術(shù)日益進步,人們逐漸認識到使用防火墻、數(shù)字簽名和加密技術(shù)這些被動式、靜態(tài)的防御技術(shù)越來越難于保證網(wǎng)絡(luò)的安全。于是,人們開始了主動式、動態(tài)地保護網(wǎng)絡(luò)安全的入侵檢測系統(tǒng)的研究。第一代和第二代網(wǎng)絡(luò)入侵檢測系統(tǒng)即傳統(tǒng)的網(wǎng)絡(luò)入侵檢測系統(tǒng)是基于特征模式匹配技術(shù),采用單機采集網(wǎng)絡(luò)數(shù)據(jù)源并加以處理的檢測系統(tǒng)。在過去只有幾兆、幾十兆的網(wǎng)絡(luò)流量的網(wǎng)絡(luò)環(huán)境下,傳統(tǒng)的網(wǎng)絡(luò)入侵檢測系統(tǒng)起了非常大的作用。
隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,幾百、上千兆的高速網(wǎng)絡(luò)環(huán)境已經(jīng)大量出現(xiàn)。在這種高速網(wǎng)絡(luò)環(huán)境下,傳統(tǒng)的網(wǎng)絡(luò)入侵檢測系統(tǒng)顯得力不從心,其應(yīng)用瓶頸問題非常突出:漏抓網(wǎng)絡(luò)數(shù)據(jù)包、誤報率高、檢測慢和檢測時有丟包現(xiàn)象發(fā)生。那么如何解決傳統(tǒng)的網(wǎng)絡(luò)入侵檢測系統(tǒng)的應(yīng)用瓶頸問題?文章提出的一種網(wǎng)絡(luò)入侵檢測系統(tǒng)是基于協(xié)議分析技術(shù),并結(jié)合特征模式匹配方法,采用高速采集器采集數(shù)據(jù)源并分發(fā)給多處理機進行數(shù)據(jù)處理的新型系統(tǒng),它有效的解決了傳統(tǒng)網(wǎng)絡(luò)入侵檢測系統(tǒng)的應(yīng)用瓶頸問題。
2 數(shù)據(jù)源采集及處理
數(shù)據(jù)源的采集及處理是網(wǎng)絡(luò)入侵檢測系統(tǒng)的核心部分。CIDF通用模型將一個網(wǎng)絡(luò)入侵檢測系統(tǒng)分為以下部分:事件產(chǎn)生器(Event generator)、事件分析器(Event analyzer)、響應(yīng)單元(Response units)和事件數(shù)據(jù)庫(Event database)。數(shù)據(jù)源的采集及處理就對應(yīng)于通用模型的事件產(chǎn)生器和事件分析器。
傳統(tǒng)的網(wǎng)絡(luò)入侵檢測系統(tǒng)一般采用一臺普通PC機作為采集器,進行網(wǎng)絡(luò)數(shù)據(jù)流的采集,并同時在該機對數(shù)據(jù)流進行分析處理。在低速網(wǎng)絡(luò)環(huán)境下,利用PC機的網(wǎng)卡采集數(shù)據(jù)不會出現(xiàn)丟包現(xiàn)象,并且單處理機的資源也能滿足對小流量數(shù)據(jù)的處理。但是,在高速網(wǎng)絡(luò)環(huán)境下,一臺普通PC機難以滿足大流量數(shù)據(jù)的采集和處理,會出現(xiàn)丟包和數(shù)據(jù)包漏檢現(xiàn)象。為此,新型網(wǎng)絡(luò)入侵檢測系統(tǒng)采用高速數(shù)據(jù)采集器,并將采集到的數(shù)據(jù)流分發(fā)給多臺高檔PC進行分布式數(shù)據(jù)檢測,這樣可以有效地解決丟包及漏檢問題。
高速數(shù)據(jù)采集器負責(zé)抓取完整的高速網(wǎng)絡(luò)數(shù)據(jù)流,這通過專門的的高性能硬件方案來實現(xiàn),主要包括實時嵌入式操作系統(tǒng)技術(shù)和具有高層交換功能的專用ASIC芯片技術(shù)。高速數(shù)據(jù)采集器采集到數(shù)據(jù)流后,通過負載均衡的原則將數(shù)據(jù)流分發(fā)給多臺高檔PC機進行處理。由于系統(tǒng)采用相同配置的PC作為數(shù)據(jù)處理機,同時為了提高采集器的工作效率,簡化數(shù)據(jù)包分發(fā)算法,系統(tǒng)采用最簡單的負載均衡算法,即分時傳送——采取循環(huán)的方法,每隔一定時間按序向每臺數(shù)據(jù)處理機傳送數(shù)據(jù)流。這樣就保證了每臺數(shù)據(jù)處理機在某一時刻可以分布式處理大體相同的網(wǎng)絡(luò)數(shù)據(jù)流量,提高了數(shù)據(jù)流檢測的工作效率,解決了單臺普通PC處理數(shù)據(jù)流量的效率低下、數(shù)據(jù)漏檢的問題 。
3 協(xié)議分析技術(shù)
3.1模式匹配的不足
傳統(tǒng)入侵檢測系統(tǒng)使用模式匹配技術(shù)作為網(wǎng)絡(luò)數(shù)據(jù)包分析技術(shù)。它是將采集的網(wǎng)絡(luò)數(shù)據(jù)流與已知的網(wǎng)絡(luò)入侵特征規(guī)則庫中的規(guī)則逐條進行比較,以發(fā)現(xiàn)入侵行為。其工作步驟如下:
1)從捕獲的網(wǎng)絡(luò)數(shù)據(jù)流的第一個數(shù)據(jù)包的第一個字節(jié)開始與入侵特征規(guī)則庫的第一個特征規(guī)則字符串比較。
2)如果比較結(jié)果相同,則說明檢測到一個可能的攻擊。
3)如果比較結(jié)果不同,則將數(shù)據(jù)包下移一個字節(jié)再進行比較。
4)直到把特征規(guī)則字符串的每一個字節(jié)都匹配完。
5)對于每一個入侵特征規(guī)則字符串,重復(fù)第二步。
6)直到每一個入侵特征規(guī)則都匹配完。
下面用模式匹配的一個例子來說明。
00E0 FC04 68AC 0011 5BD8 1FF2 0800 4500 0040 08AC 4000 2006 B06C AC53 6352 BD25 CD12 050D 0050 221A 0112 415B 063A 7010
以上為采集的數(shù)據(jù)包,對于入侵特征規(guī)則字符串“/technote/print.cgi ”,根據(jù)上述步驟,首先從數(shù)據(jù)包頭部開始比較:
/technote/print.cgi
00E0 FC04 68AC 0011 5BD8 1FF2 0800 4500 0040 08AC 4000 2006 B06C AC53 6352 BD25 CD12 050D 0050 221A 0112 415B 063A 7010
比較不成功,下移一個字節(jié)重新比較。
——/technote/print.cgi
00E0 FC04 68AC 0011 5BD8 1FF2 0800 4500 0040 08AC 4000 2006 B06C AC53 6352 BD25 CD12 050D 0050 221A 0112 415B 063A 7010
比較仍不成功,則又下移一個字節(jié)比較。如此重復(fù),最終沒有一次匹配成功。接著與入侵特征規(guī)則庫中的下一個規(guī)則進行比較。
從該例可以看出,模式匹配有以下缺點:
1)缺乏智能化,系統(tǒng)資源耗費大
模式匹配技術(shù)不對數(shù)據(jù)包進行智能分析,僅僅單純將特征字符串同數(shù)據(jù)包按字節(jié)依次匹配,這就導(dǎo)致計算工作量大,消耗系統(tǒng)資源。
對于一個特定網(wǎng)絡(luò)的數(shù)據(jù)流來說,采用數(shù)據(jù)匹配方法每秒需比較的最大次數(shù)估算為:
網(wǎng)絡(luò)數(shù)據(jù)包字節(jié)數(shù)×每秒數(shù)據(jù)包數(shù)量×入侵特征串字節(jié)數(shù)×入侵特征數(shù)量
如果網(wǎng)絡(luò)數(shù)據(jù)包平均長度為60字節(jié),每秒40000數(shù)據(jù)包,入侵特征庫中有3000條特征,每條特征字符串平均長度為10字節(jié),那么每秒比較的次數(shù)大約為:
60×40000×10×3000=72000000000
2)檢測效率低
模式匹配只能檢測特定類型的入侵。對入侵特征微小的變形都將使檢測失敗。如對于Web服務(wù)器, 入侵特征“/technote/print.cgi”的變形”/technote//print.cgi”、 “/technote%c0%afprint.cgi”用模式匹配方法不能檢測出來。
3.2協(xié)議分析技術(shù)的優(yōu)點
3.2.1減小匹配計算量
網(wǎng)絡(luò)數(shù)據(jù)流是按通信協(xié)議的要求構(gòu)成的,而通信協(xié)議規(guī)定了數(shù)據(jù)報文具有高度的格式,報文的每部分都有明確的含義和取值。傳統(tǒng)的模式匹配把網(wǎng)絡(luò)數(shù)據(jù)包看成是無序、無一定格式、隨意的字節(jié)流。它對網(wǎng)絡(luò)數(shù)據(jù)包的內(nèi)部結(jié)構(gòu)完全不了解,并且對于網(wǎng)絡(luò)中傳輸?shù)膱D象或音頻同樣進行匹配。這樣勢必造成檢測效率低下、不精確的后果。而協(xié)議分析技術(shù)有效的利用了網(wǎng)絡(luò)協(xié)議的層次性和相關(guān)協(xié)議的知識快速的判斷入侵特征是否存在。它的高效使得匹配的計算量大幅度減小。即使在100Mb/s以上的網(wǎng)絡(luò)中,也可以充分地檢測每一個數(shù)據(jù)包。
仍以上述數(shù)據(jù)包為例,討論一下基于協(xié)議分析技術(shù)的網(wǎng)絡(luò)入侵檢測系統(tǒng)是如何處理的。網(wǎng)絡(luò)協(xié)議規(guī)定以太網(wǎng)絡(luò)數(shù)據(jù)包中第13字節(jié)處包含了兩個字節(jié)的網(wǎng)絡(luò)層協(xié)議字段,如圖1所示。基于協(xié)議分析的入侵檢測系統(tǒng)利用這個知識開始第一步檢測:跳過數(shù)據(jù)包前面12個字節(jié),讀取第13字節(jié)處的2字節(jié)協(xié)議字段為0x0800。根據(jù)協(xié)議規(guī)定可以判斷這個網(wǎng)絡(luò)數(shù)據(jù)包是IP包。

圖1利用協(xié)議分析技術(shù)進行數(shù)據(jù)包分析
根據(jù)IP協(xié)議規(guī)定,數(shù)據(jù)包的第24字節(jié)處有一個1字節(jié)的傳輸層協(xié)議標(biāo)識。系統(tǒng)直接從第15字節(jié)跳到第24字節(jié)讀取傳輸層協(xié)議字段為0x06,這個數(shù)據(jù)包是TCP協(xié)議包。
再根據(jù)TCP協(xié)議規(guī)定,在數(shù)據(jù)包第37字節(jié)處有一個2字節(jié)的應(yīng)用層協(xié)議字段,即端口號。于是系統(tǒng)從第25字節(jié)直接跳到第37字節(jié)讀取端口號為0x0050,即80。從該端口號可知數(shù)據(jù)包是一個HTTP協(xié)議的數(shù)據(jù)包。
再根據(jù)HTTP協(xié)議規(guī)定,在數(shù)據(jù)包第55字節(jié)是URL開始處,要檢測入侵特征“/technote/print.cgi”,只需要仔細檢測這個URL就可以了。
從上述數(shù)據(jù)包的檢測過程可以看出,利用協(xié)議分析可以大大減小模式匹配的計算量,提高匹配的精確度,減少誤報率。
3.2.2有效地針對欺騙性攻擊
單純采用模式匹配對網(wǎng)絡(luò)數(shù)據(jù)包進行特征查找的方法,必須是針對某些特定的已知攻擊。但是很多攻擊者越來越狡猾,他們往往使用一些攻擊程序的變體進行攻擊,以求逃過檢測系統(tǒng)的檢測。而模式匹配對這種變體欺騙卻無能為力,但是協(xié)議分析可以有效地針對欺騙性攻擊。
舉例來說,假設(shè)需要對含有/way-board/way-board.cgi的URL發(fā)出警報。入侵者可以使用反斜杠\代替斜杠/。大多數(shù)Web服務(wù)器對于使用反斜杠\還是斜杠/來劃分目錄不敏感,所以Web服務(wù)器認為含有/way-board/way-board.cgi和含有\(zhòng)way-board\way-board.cgi的URL是一回事。而基于模式匹配的入侵檢測系統(tǒng)只是進行簡單的字符匹配工作,所以對出現(xiàn)\way-board\way-board.cgi不加理睬。但協(xié)議分析方法可以識別這種變體入侵。當(dāng)一個HTTP通信開始被監(jiān)控時,IDS傳感器從URL中讀出路徑,然后對其進行分析。它適當(dāng)?shù)胤治龇葱备埽筓RL標(biāo)準(zhǔn)化,然后找出可疑的目錄內(nèi)容,如/way-board/way-board.cgi。又例如在unicode攻擊中,與ASCII字符相關(guān)的HEX編碼一直到%7f,Unicode編碼的值要高于它。以包含/store%c0%afagora.cgi的URL路徑為例,%c0%af在Unicode中相當(dāng)于斜杠/,這樣就是/store/agora.cgi。這也是攻擊特征。使用包含Unicode編碼解析的協(xié)議分析,就可以識別這種欺騙。
下面說明協(xié)議分析如何識別包含/store%c0%afagora.cgi的URL,流程如圖2所示。
1)對網(wǎng)絡(luò)數(shù)據(jù)包的IP包頭進行解析,確定IP有效負載所包含的協(xié)議。本例IP協(xié)議字段為6即TCP協(xié)議。
2)對TCP頭進行解析,確定TCP目的端口。本例TCP目的端口是Web服務(wù)器端口80,說明數(shù)據(jù)部分采用HTTP協(xié)議。
3)對HTTP協(xié)議進行解析,識別URL路徑。
4)對URL進行解析,識別路徑欺騙、HEX編碼和Unicode編碼。
5)最后判斷路徑中是否包含 /store/agora.cgi,若有則報警。

圖2 識別URL的流程圖
4 結(jié)束語
實驗驗證,在高速大流量網(wǎng)絡(luò)環(huán)境下,采用高速采集器采集數(shù)據(jù)源并分發(fā)給多處理機進行數(shù)據(jù)處理,同時使用協(xié)議分析技術(shù),并結(jié)合模式匹配方法的新一代網(wǎng)絡(luò)入侵檢測系統(tǒng)與采用普通采集器,單純使用模式匹配方法的網(wǎng)絡(luò)入侵檢測系統(tǒng)相比,在檢測效率、性能等方面都有很大提高。在后續(xù)的工作中,檢測系統(tǒng)在檢測方法上還須結(jié)合異常(anomaly)統(tǒng)計的檢測技術(shù), 以便能夠檢測更廣泛及更多未知的攻擊。
參考文獻
[1]余揚,孔夢榮. 基于FPGA器件的高速以太網(wǎng)入侵檢測系統(tǒng)設(shè)計與實現(xiàn)[J].微計算機信息,2005,(3):55-57
[2]蔣文保.寬帶網(wǎng)絡(luò)入侵檢測系統(tǒng)的分析與實現(xiàn)[J].計算機工程, 2003,(1):30-31
[3]劉文濤.Linux網(wǎng)絡(luò)入侵檢測系統(tǒng)[M].北京: 電子工業(yè)出版社,2004
[4]高光勇等.聯(lián)動防火墻的主機入侵檢測系統(tǒng)的研究[J]. 微計算機信息,2005,(7-3):66-68
[5]唐正軍 等.網(wǎng)絡(luò)入侵檢測系統(tǒng)的設(shè)計和 實現(xiàn)[M].北京:電子工業(yè)出版社,2002