前言:本站為你精心整理了狀態(tài)協(xié)議技術(shù)實現(xiàn)范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
摘要:隨著人類社會生活對Internet需求的日益增長,網(wǎng)絡(luò)安全逐漸成為Internet及各項網(wǎng)絡(luò)服務(wù)和應(yīng)用進一步發(fā)展所需解決的關(guān)鍵問題。入侵檢測作為一種積極主動防御的網(wǎng)絡(luò)技術(shù),已經(jīng)成為網(wǎng)絡(luò)防護安全體系中的重要組成部分。首先比較了各種入侵檢測技術(shù),提出了利用基于狀態(tài)的協(xié)議分析技術(shù)檢測多步驟等復(fù)雜攻擊的有效性,但面對高速發(fā)展的網(wǎng)絡(luò),也提出了這種深度檢測的技術(shù)存在著的弊端。
關(guān)鍵詞:狀態(tài)協(xié)議;分析;NIDS
1協(xié)議解析
(1)協(xié)議解析。
傳統(tǒng)的網(wǎng)絡(luò)入侵檢測方法,要么不做任何協(xié)議分析(圖1中A方法),要么只對TCP/IP進行分析(圖1中的B方法)。基于應(yīng)用的入侵檢測方法(圖1中的C方法)在進行TCP/IP分析后,還要對應(yīng)用協(xié)議進行分析,并分別取出應(yīng)用協(xié)議數(shù)據(jù)中的命令部分與數(shù)據(jù)部分,然后分別對命令進行解釋和對應(yīng)用數(shù)據(jù)進行模式匹配,從而對入侵檢測進行檢測。方法A在IP包中利用模式匹配技術(shù)盲目匹配攻擊特征,很可能會將FTP的攻擊特征用來匹配HTTP的包;方法B由于不能理解應(yīng)用協(xié)議,只能將應(yīng)用協(xié)議數(shù)據(jù)看成沒有結(jié)構(gòu)的比特流,進行盲目地匹配。因此,隨著模式與待匹配網(wǎng)絡(luò)包的增加,傳統(tǒng)檢測方法的效率將呈線性的下降,其時間復(fù)雜度為O(n),n為模式和網(wǎng)絡(luò)包長度的總和;而基于應(yīng)用的檢測系統(tǒng)由于采用基于協(xié)議的樹形結(jié)構(gòu)來分析檢測,隨模式的增加,其復(fù)雜度僅為O(log2n)。
(2)協(xié)議數(shù)據(jù)的上下文關(guān)聯(lián)分析。
①IP分片合并。
分片合并對網(wǎng)絡(luò)入侵檢測系統(tǒng)具有重要意義。有一些攻擊方法利用了操作系統(tǒng)協(xié)議棧中分片合并實現(xiàn)上的漏洞,例如著名的Teardrop攻擊就是在短時間內(nèi)發(fā)送若干成對的偏移量有重疊的IP分片,目標(biāo)接收到這樣的分片的時候就會合并分片,由于其偏移量的重疊而發(fā)生內(nèi)存錯誤,甚至?xí)?dǎo)致協(xié)議棧的崩潰。這種攻擊手段單從一個數(shù)據(jù)包上是無法辨認(rèn)的,需要在協(xié)議分析中模擬操作系統(tǒng)的分片合并,以發(fā)現(xiàn)不合法的分片。
在分片過程中有兩種樹結(jié)構(gòu):不同的IP數(shù)據(jù)包生成一棵分組Splay樹,稱作分組樹,在程序初始化部分即生成,在程序退出時消亡;每個IP數(shù)據(jù)包的所有分片生成一棵分片Splay樹,稱作分片樹,在接收到IP數(shù)據(jù)包的第一個分片時生成,在完成分片合并或超時刪除。
分組樹節(jié)點主要包括IP數(shù)據(jù)包中的源IP地址字段,目的IP地址字段,標(biāo)識字段和協(xié)議字段,對于同一個IP數(shù)據(jù)包的不同分片這些值相同,這四個值作為一個分組樹節(jié)點的關(guān)鍵值,即對于兩個IP數(shù)據(jù)包A和B,它們的大小關(guān)系可以定義為:如果A的源IP地址大于B則A大于B;如果小于,則A小于B;如果相等,則繼續(xù)比較目的IP地址、標(biāo)識字段和協(xié)議字段,直到比較出大小或相等。分片樹的節(jié)點主要包括偏移量字段和數(shù)據(jù)字段,其中偏移量是關(guān)鍵值。當(dāng)IP數(shù)據(jù)包的第一個分片和最后一個分片都到達(dá)時,進行IP數(shù)據(jù)包合并。在合并的過程中如果發(fā)現(xiàn)偏移量不連續(xù)或重疊,則給出報警信息,放棄合并;合并后的IP數(shù)據(jù)包拷貝了所有分片的內(nèi)容,與每個分片具有相同的源IP地址字段,目的IP地址字段,標(biāo)識字段和協(xié)議字段,在格式上是一個不分片的IP數(shù)據(jù)包,然后上交給傳輸層協(xié)議進行分析。
②TCP會話重組。
一些攻擊利用了TCP協(xié)議的漏洞,TCP會話劫持是其中最典型的一種。在這種攻擊下,攻擊者偽造具有某IP地址的數(shù)據(jù)包,發(fā)送給與該IP地址進行TCP會話通信的另一端。檢測TCP會話劫持是很困難的,因為如果不和真正的通信方進行交互,幾乎無法發(fā)現(xiàn)偽裝的通信方。但是通過模擬操作系統(tǒng)協(xié)議棧的工作原理,對TCP會話進行處理,能夠從一定程度上檢測到可能的會話劫持。檢測系統(tǒng)通過重組會話能夠發(fā)現(xiàn)序列號錯誤,以及出現(xiàn)序列號錯誤后雙方重新建立同步的握手信息,從而判斷可能的入侵。
TCP會話重組利用了和分片合并類似的樹狀結(jié)構(gòu)。網(wǎng)絡(luò)上存在的各個會話組織成一棵有序二叉樹,每個節(jié)點包含會話雙方的連接狀態(tài)、序列號、一些統(tǒng)計信息以及必要的歷史信息如上次序列號和確認(rèn)序列號等。每個會話中,發(fā)自客戶端和服務(wù)器端的數(shù)據(jù)包分別組織成兩棵二叉樹,在會話節(jié)點中包含指向這兩個二叉樹的根節(jié)點的指針。重組后的TCP會話記錄了一次TCP會話中所有的數(shù)據(jù)包,并且記錄了每個數(shù)據(jù)包到來前和到來后的TCP會話狀態(tài)。
2基于狀態(tài)協(xié)議分析的入侵檢測實現(xiàn)
協(xié)議分析方法可以根據(jù)協(xié)議信息精確定位檢測域,分析攻擊特征,有針對性地使用詳細(xì)具體的檢測手段。提高了檢測的全面性、準(zhǔn)確性和效率。針對不同的異常和攻擊,靈活定制檢測方式,由此可檢測大量異常。但對于一些多步驟,分布式的復(fù)雜攻擊的檢測單憑單一數(shù)據(jù)包檢測或簡單重組是無法實現(xiàn)的。所以在協(xié)議分析基礎(chǔ)上引入狀態(tài)轉(zhuǎn)移檢測技術(shù),下面就分析利用基于狀態(tài)的協(xié)議分析技術(shù)檢測一些典型入侵的實現(xiàn)。
根據(jù)網(wǎng)絡(luò)協(xié)議狀態(tài)信息分析,所有網(wǎng)絡(luò)都能以狀態(tài)轉(zhuǎn)移形式來描述,狀態(tài)轉(zhuǎn)移將攻擊描述成網(wǎng)絡(luò)事件的狀態(tài)和操作(匹配事件),被觀測的事件如果符合有窮狀態(tài)機的實例(每個實例都表示一個攻擊場景),都可能引起狀態(tài)轉(zhuǎn)移的發(fā)生。如果狀態(tài)轉(zhuǎn)移到一個危害系統(tǒng)安全的終止?fàn)顟B(tài),就代表著攻擊的發(fā)生。這種方式以一種簡單的方式來描述復(fù)雜的入侵場景,步式攻擊。
借助聲明原語來計算狀態(tài)轉(zhuǎn)換的條件,包括數(shù)據(jù)包和網(wǎng)絡(luò)日志原語,如檢查IP地址是否是假冒地址的原語ip_saddr_fake(ip_packet),檢查包總長度選項中所聲明長度與實際長度是否一致的原語ip_fray_overlap(ip_packet)等等。
A:接收到IP包且分片標(biāo)記為1,轉(zhuǎn)入狀態(tài)1;B:規(guī)定的時間片中,接收到一個包的所有分片,轉(zhuǎn)入狀態(tài)2;C:比較IP包長度與包頭中聲明的包總長度,不相等則進入狀態(tài)3。
依據(jù)上面介紹的檢測過程,利用檢查網(wǎng)絡(luò)入侵的原語提出檢測IP碎片攻擊的簡單算法:
intCheckIPfragment(receivedIPPacket){
state=s0;
while(TRUE)
{
switch(state)
cases0:
if(ip_is_frazgment(receiveIPPacket)=TRUE)
state=s1;
cases1:
if(timer_exceed()=FALSE&&receive_all_frag(receiveIPPacket)=TRUE)
steate=s2;
cases2:
if(ip_frag_overlap(receiveIPPacket)=FALSE;
alert();break;
}
return0;
}
2.1檢測TCPSynFlooding攻擊
攻擊描述:在短時間內(nèi),攻擊者發(fā)送大量SYN報文建立TCP連接,在服務(wù)器端發(fā)送應(yīng)答包后,客戶端不發(fā)出確認(rèn),服務(wù)器端會維持每個連接直到超時,這樣會使服務(wù)端的TCP資源迅速枯竭,導(dǎo)致正常連接不能進入。
解決方式:當(dāng)客戶端發(fā)出的建立TCP連接的SYN包時,便跟蹤記錄此連接的狀態(tài),直到成功完成或超時。同時統(tǒng)計在規(guī)定時間內(nèi),接受到這種SYN包的個數(shù)超過了某個規(guī)定的臨界值,則發(fā)生TCPSynFlooding攻擊。A:檢查包的協(xié)議項,若該協(xié)議項為TCP協(xié)議,則轉(zhuǎn)入狀態(tài)1;
B:檢查TCP頭的選項,若flag選項為SYN,則轉(zhuǎn)入狀態(tài)2;
C:打開計時器和計數(shù)器,在規(guī)定時間內(nèi),接收到這種SYN包的個數(shù)超過臨界值則發(fā)生攻擊。
2.2檢測FTP會話
一個FTP會話可以分為以下四個步驟:
(1)建立控制連接:FTP客戶端建立一個TCP連接到服務(wù)器的FTP端21;
(2)客戶身份驗證:FTP用戶發(fā)送用戶名和口令,或用匿名登陸到服務(wù)器;
(3)執(zhí)行客戶命令:客戶向服務(wù)器發(fā)出命令,如果要求數(shù)據(jù)傳輸,則客戶使用一個臨時端口和服務(wù)器端口20建立一個數(shù)據(jù)連接進行數(shù)據(jù)的傳輸;
(4)斷開連接:FTP會話完成后,斷開TCP連接。
客戶端通過身份驗證后才合法執(zhí)行命令,以LIST命令為例,LIST命令列表顯示文件或目錄,將引發(fā)一個數(shù)據(jù)連接的建立和使用,客戶端使用PORT命令發(fā)送客戶IP地址和端口號給服務(wù)器用于建立臨時數(shù)據(jù)連接。
3協(xié)議分析技術(shù)在高速網(wǎng)絡(luò)下的局限性
網(wǎng)絡(luò)的速度的增長已經(jīng)大大超過了處理器的發(fā)展,所以集中的解決方案已經(jīng)到了他們的極限。特別是如果想要進行深入地、基于狀態(tài)入侵檢測分析,這種情況就更明顯了。既然這樣,傳感器不得不在進行中保存攻擊的信息(例如多步驟攻擊)或?qū)Π膬?nèi)容進行應(yīng)用層的分析。這些工作都是極其耗費資源,并且在單結(jié)點安裝會嚴(yán)重影響到基本數(shù)據(jù)包正常捕獲。
由于要保證與高速網(wǎng)絡(luò)同步以及網(wǎng)絡(luò)流量加密的廣泛使用給入侵檢測帶來的困難,一個普遍的觀點是在高速網(wǎng)絡(luò)環(huán)境下網(wǎng)絡(luò)入侵檢測是不具有實用性的。還有人主張在計算機網(wǎng)絡(luò)的外圍(periphery)分布安裝傳感器,這種方式需要網(wǎng)絡(luò)負(fù)載應(yīng)該更加易于管理。盡管以上提到的兩種觀點都有好的方面,但在高速網(wǎng)絡(luò)交互的環(huán)境下進行流量分析仍然是實現(xiàn)網(wǎng)絡(luò)裝置的一個基礎(chǔ)要求。一些公司盡量在研究如何滿足這一需求,很多產(chǎn)品銷售商聲稱他們擁有可以運行在高速ATM或千兆以太網(wǎng)環(huán)境下的傳感器產(chǎn)品。例如,ISS提供了Net-ICEGigabitSentry,這個系統(tǒng)被設(shè)計來在高速網(wǎng)絡(luò)下監(jiān)控網(wǎng)絡(luò)流量。公司在產(chǎn)品廣告中宣稱系統(tǒng)可以進行協(xié)議重組和分析不同應(yīng)用層的協(xié)議(例如HTTP,SMTP,POP)來識別惡意行為。這個工具被稱為“第一個處理千兆網(wǎng)絡(luò)流量的網(wǎng)絡(luò)入侵檢測系統(tǒng)”。然而GigaSentry在實驗室環(huán)境下可以處理千兆網(wǎng)絡(luò),在實際網(wǎng)絡(luò)環(huán)境中它的性能將會減弱。用戶一般期望在實際網(wǎng)絡(luò)環(huán)境的使用中工具可以處理至少300Mbps,并且可以適應(yīng)網(wǎng)絡(luò)本身特點。GigaSentry每秒鐘只能捕獲到不到500000個數(shù)據(jù)包。這些表明了在高速網(wǎng)絡(luò)下實現(xiàn)網(wǎng)絡(luò)入侵檢測的困難程度。產(chǎn)品在上層網(wǎng)絡(luò)(TopLayerNetworks)提供一個交換機來劃分應(yīng)用層協(xié)議會話。網(wǎng)絡(luò)流也根據(jù)這些會話進行分組,將分組分發(fā)到各個入侵檢測傳感器,同屬于一個會話的包都發(fā)送到一個傳感器。這樣傳感器就可以在一個單獨的會話中實現(xiàn)多步驟攻擊的檢測。但是,在不同會話之間的關(guān)聯(lián)性卻不支持。這樣導(dǎo)致如果一個攻擊針對多個主機(例如pingsweep)或分布在多個會話中就無法檢測出來。
參考文獻(xiàn)
[1]薛靜鋒,寧宇鵬,閻慧.入侵檢測技術(shù)[M].北京:機械工業(yè)出版社,2006.
[2]唐正軍.入侵檢測技術(shù)導(dǎo)論[M].北京:機械工業(yè)出版社,2005.
[3]劉文濤.Linux網(wǎng)絡(luò)入侵檢測系統(tǒng)[M].北京:電子工業(yè)出版社,2006.