專(zhuān)利名稱(chēng):一種防范報(bào)文攻擊的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù),尤其涉及一種防報(bào)文攻擊的方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)通信技術(shù)的進(jìn)步,各種網(wǎng)絡(luò)攻擊引發(fā)的網(wǎng)絡(luò)安全問(wèn)題日益受到人們的關(guān)注。越來(lái)越多的企業(yè)以及運(yùn)營(yíng)商開(kāi)始使用諸如防火墻等網(wǎng)絡(luò)安全設(shè)備為網(wǎng)絡(luò)通信提供保護(hù)措施?;赥CP協(xié)議的報(bào)文攻擊行為是相當(dāng)常見(jiàn)的網(wǎng)絡(luò)攻擊。這種攻擊的特點(diǎn)通過(guò)大量發(fā)送SYN報(bào)文來(lái)消耗大量的服務(wù)器資源,由于以致服務(wù)器沒(méi)有足夠的資源去響應(yīng)其他客戶(hù)端的訪問(wèn)請(qǐng)求。這種攻擊被稱(chēng)為SYN Flood,這種攻擊是目前最流行的DoS (Denial of Service,拒絕服務(wù))攻擊。Dos攻擊有很多變形,比如說(shuō)DDos (Distributed Denial of krvice,分布式拒絕服務(wù))攻擊?,F(xiàn)有技術(shù)開(kāi)發(fā)出很多應(yīng)對(duì)SYN Flood攻擊的安全防護(hù)技術(shù),比如通過(guò)報(bào)文速率統(tǒng)計(jì),甚至分布式的報(bào)文速率統(tǒng)計(jì)來(lái)應(yīng)對(duì)這些攻擊行為。然而即便是SYN Flood攻擊被有效抑制,但基于TCP協(xié)議進(jìn)行報(bào)文攻擊仍然有不完善的地方需要加以改進(jìn)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供以下技術(shù)方案解決現(xiàn)有技術(shù)存在的問(wèn)題。本發(fā)明提供一種防范報(bào)文攻擊的裝置,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,所述網(wǎng)絡(luò)安全設(shè)備與網(wǎng)絡(luò)設(shè)備相連,用于對(duì)網(wǎng)絡(luò)設(shè)備發(fā)送過(guò)來(lái)的報(bào)文進(jìn)行安全處理,其中該裝置包括會(huì)話檢查單元,用于根據(jù)從網(wǎng)絡(luò)設(shè)備接收到的TCP報(bào)文的會(huì)話特征查找會(huì)話列表以確定該TCP報(bào)文是否屬于已存在的會(huì)話;如果不是,則轉(zhuǎn)到會(huì)話創(chuàng)建單元處理;會(huì)話創(chuàng)建單元,用于進(jìn)一步檢查所述TCP報(bào)文是否為握手報(bào)文,如果不是,則丟棄該TCP報(bào)文。優(yōu)選地,所述握手報(bào)文為SYN報(bào)文或者SYN ACK報(bào)文。優(yōu)選地,還包括,其他處理單元,用以對(duì)報(bào)文進(jìn)行進(jìn)一步的安全處理或者轉(zhuǎn)發(fā)處理,所述會(huì)話創(chuàng)建單元用于進(jìn)一步檢查握手報(bào)文的類(lèi)型,如果握手報(bào)文是SYN報(bào)文,則轉(zhuǎn)到其他處理單元處理;如果握手報(bào)文是SYN ACK報(bào)文,則基于該報(bào)文的會(huì)話特征在會(huì)話列表中創(chuàng)建相應(yīng)的會(huì)話表項(xiàng)。優(yōu)選地,所述會(huì)話檢查單元確定TCP報(bào)文屬于已經(jīng)存在的會(huì)話時(shí),將報(bào)文提交其他單元進(jìn)行處理。優(yōu)選地,所述會(huì)話特征為報(bào)文的五元組。本發(fā)明還提供一種防范報(bào)文攻擊的方法,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,所述網(wǎng)絡(luò)安全設(shè)備與網(wǎng)絡(luò)設(shè)備相連,用于對(duì)網(wǎng)絡(luò)設(shè)備發(fā)送過(guò)來(lái)的報(bào)文進(jìn)行安全處理,其中該方法包括A、根據(jù)從網(wǎng)絡(luò)設(shè)備接收到的TCP報(bào)文的會(huì)話特征查找會(huì)話列表以確定該TCP報(bào)文是否屬于已存在的會(huì)話;如果不是,則轉(zhuǎn)到會(huì)話創(chuàng)建單元處理;B、檢查所述TCP報(bào)文是否為握手報(bào)文,如果不是,則丟棄該TCP報(bào)文。7、根據(jù)權(quán)利要求6所述的方法,其特征在于,所述握手報(bào)文為SYN報(bào)文或者SYN ACK報(bào)文。優(yōu)選地,所述步驟B還包括進(jìn)一步檢查握手報(bào)文的類(lèi)型,如果握手報(bào)文是SYN報(bào)文,則對(duì)報(bào)文進(jìn)行進(jìn)一步的安全處理或者轉(zhuǎn)發(fā)處理;如果握手報(bào)文是SYN ACK報(bào)文,則基于該報(bào)文的會(huì)話特征在會(huì)話列表中創(chuàng)建相應(yīng)的會(huì)話表項(xiàng)。優(yōu)選地,所述會(huì)話檢查單元確定TCP報(bào)文屬于已經(jīng)存在的會(huì)話時(shí),將報(bào)文提交其他單元進(jìn)行處理。優(yōu)選地,所述會(huì)話特征為報(bào)文的五元組。
圖1是一種典型的安全設(shè)備旁路組網(wǎng)圖。圖2是本發(fā)明防范報(bào)文攻擊的裝置邏輯結(jié)構(gòu)圖。圖3是本發(fā)明防范報(bào)文攻擊的流程圖。
具體實(shí)施例方式在現(xiàn)有技術(shù)中,為了防止SYN Flood攻擊,可以從網(wǎng)絡(luò)入手,比如比如說(shuō)利用路由器(Router)內(nèi)嵌的防火墻模塊來(lái)執(zhí)行檢查,當(dāng)然也可以從可能被攻擊的服務(wù)器入手。。請(qǐng)參考圖1,考慮到攻擊行為基本都是發(fā)生在客戶(hù)端(Client)至服務(wù)器(Server)方向。因此可以在客戶(hù)端與服務(wù)器通信的重點(diǎn)對(duì)客戶(hù)端發(fā)送給服務(wù)器的TCP報(bào)文進(jìn)行檢查。一種比較有效的檢查模式是旁路檢查模式,也就是路由器把客戶(hù)端的報(bào)文送到網(wǎng)絡(luò)安全設(shè)備(Dev) 進(jìn)行檢查,檢查完畢后再回注給路由器,路由器再對(duì)返回的報(bào)文進(jìn)行路由轉(zhuǎn)發(fā)。本發(fā)明正式是基于上述旁路的組網(wǎng)模式來(lái)完善對(duì)TCP攻擊的防范的?,F(xiàn)有技術(shù)雖然提出了大量的針對(duì)SYN Flood攻擊的應(yīng)對(duì)措施。這種旁路組網(wǎng)模式也非常適用于防范SYN Flood攻擊。然而旁路組網(wǎng)模式仍然有其比較致命的缺點(diǎn)。旁路模式對(duì)報(bào)文的檢查主要集中在客戶(hù)端發(fā)出的報(bào)文。比如說(shuō)通過(guò)設(shè)定源IP范圍來(lái)確定哪些報(bào)文需要檢查。一般并不檢查服務(wù)器端發(fā)出的報(bào)文。在這單邊檢查的模型下,網(wǎng)絡(luò)安全設(shè)備只能觀察到從客戶(hù)端到服務(wù)器的流量,不能觀察到服務(wù)器返回的流量。這將導(dǎo)致網(wǎng)絡(luò)安全設(shè)備無(wú)法知曉每個(gè)TCP 會(huì)話的狀態(tài)機(jī)。在不能知曉TCP會(huì)話狀態(tài)機(jī)的情況下,網(wǎng)絡(luò)安全設(shè)備雖然能夠?qū)YN Flood 這種基于TCP協(xié)議報(bào)文的攻擊進(jìn)行有效防護(hù),但無(wú)法對(duì)基于TCP數(shù)據(jù)報(bào)文的攻擊進(jìn)行有效的防護(hù)。本發(fā)明恰恰可以有效解決這個(gè)問(wèn)題,填補(bǔ)安全設(shè)備旁路的組網(wǎng)模型中單邊流量檢查機(jī)制所引發(fā)的較大的安全風(fēng)險(xiǎn)。請(qǐng)參考圖2以及圖3。以下以網(wǎng)絡(luò)安全設(shè)備通過(guò)CPU執(zhí)行內(nèi)存中的計(jì)算機(jī)軟件為例進(jìn)行介紹,然而本發(fā)明顯然不局限于純計(jì)算機(jī)軟件的實(shí)現(xiàn)方式,其完全可以通過(guò)軟硬結(jié)合甚至包括固件的組合方式加以實(shí)現(xiàn)。本發(fā)明防范報(bào)文攻擊的裝置包括報(bào)文過(guò)濾單元11、 會(huì)話檢查單元12、會(huì)話創(chuàng)建單元13以及其他處理單元14。本發(fā)明防范報(bào)文攻擊的裝置10 在運(yùn)行時(shí),主要執(zhí)行如下步驟。
步驟101,從網(wǎng)絡(luò)設(shè)備接收待檢查的報(bào)文,并根據(jù)協(xié)議類(lèi)型過(guò)濾出TCP報(bào)文;本步驟由報(bào)文過(guò)濾單元11執(zhí)行。在一般的組網(wǎng)情形中,所述網(wǎng)絡(luò)設(shè)備通常是三層設(shè)備,比如路由器或者三層交換機(jī)。網(wǎng)絡(luò)設(shè)備可以根據(jù)管理員下發(fā)的轉(zhuǎn)發(fā)策略配置,把需要進(jìn)行安全檢查的報(bào)文與安全設(shè)備相連的旁路端口送給安全設(shè)備。步驟101屬于常見(jiàn)的報(bào)文過(guò)濾手段,其可以基于報(bào)文頭部的協(xié)議類(lèi)型等字段對(duì)特定協(xié)議進(jìn)行一般甚至深度的過(guò)濾與篩選,器中更為具體的實(shí)施細(xì)節(jié)不再一一細(xì)述。步驟102,根據(jù)從網(wǎng)絡(luò)設(shè)備接收到的TCP報(bào)文的會(huì)話特征查找會(huì)話列表以確定該 TCP報(bào)文是否屬于已存在的會(huì)話;如果不是,則轉(zhuǎn)到會(huì)話創(chuàng)建單元處理;本步驟由會(huì)話檢查單元12執(zhí)行。如果一個(gè)客戶(hù)端創(chuàng)建發(fā)起一個(gè)新的會(huì)話,那么安全設(shè)備收到該會(huì)話的首報(bào)文時(shí), 內(nèi)部是沒(méi)有任何會(huì)話記錄(又稱(chēng)會(huì)話表項(xiàng))的。因?yàn)榘踩O(shè)備內(nèi)部很多處理單元對(duì)報(bào)文的處理都是基于會(huì)話的,所以會(huì)話的記錄對(duì)于安全設(shè)備來(lái)說(shuō)是基礎(chǔ)性的工作。正常流程下,可以基于報(bào)文的五元組(源目的IP、源目的端口、協(xié)議類(lèi)型)或者三元組等會(huì)話特征進(jìn)行會(huì)話查找與記錄。如果基于報(bào)文的會(huì)話特征找不到相應(yīng)的會(huì)話記錄,通常表明其屬于會(huì)話的首報(bào)文,因此需要轉(zhuǎn)入步驟103進(jìn)行會(huì)話的創(chuàng)建與記錄。如果報(bào)文存在有會(huì)話記錄,這說(shuō)明是某個(gè)會(huì)話的后續(xù)報(bào)文,其通??梢赃M(jìn)入其他的處理單元,如進(jìn)入各種安全檢查單元進(jìn)行安全檢查或者進(jìn)入報(bào)文轉(zhuǎn)發(fā)單元進(jìn)行轉(zhuǎn)發(fā)處理,本發(fā)明在此將這些處理單元統(tǒng)稱(chēng)為其他處理單元14。步驟103,進(jìn)一步檢查所述TCP報(bào)文是否為握手報(bào)文,如果不是,則丟棄該TCP報(bào)文。通常情況下,在現(xiàn)有技術(shù)中一直只考慮報(bào)文是否有會(huì)話記錄,如果沒(méi)有則默認(rèn)為首報(bào)文,然后基于報(bào)文的會(huì)話特征進(jìn)行會(huì)話創(chuàng)建。這種做法在技術(shù)上是非常不嚴(yán)謹(jǐn)?shù)?。雖然安全設(shè)備可以包括很多種基于會(huì)話的安全檢查單元。然而這些安全檢查單元在理論上都是尤其局限性的。因此對(duì)于安全風(fēng)險(xiǎn)的防范如果能提前則盡量提前。本發(fā)明步驟103在發(fā)現(xiàn)報(bào)文為會(huì)話首報(bào)文的基礎(chǔ)上仍然檢查報(bào)文是否為握手報(bào)文。這一進(jìn)一步的檢查的技術(shù)原理是檢查首報(bào)文是否符合TCP會(huì)話的產(chǎn)生規(guī)律。如果這個(gè)TCP報(bào)文(也就是首報(bào)文)是一個(gè)握手報(bào)文,其符合正常的TCP協(xié)議處理流程的,因?yàn)門(mén)CP會(huì)話的產(chǎn)生必然是從三次握手開(kāi)始的。因此這種TCP報(bào)文在本步驟可以暫時(shí)視其為合法用戶(hù)報(bào)文,然后轉(zhuǎn)入其他單元14做其他的必要處理。如果該TCP報(bào)文是一個(gè)數(shù)據(jù)報(bào)文,則說(shuō)明該報(bào)文的產(chǎn)生是不符合正常TCP協(xié)議處理流程的,基本上是屬于攻擊報(bào)文,因此應(yīng)該加以丟棄。這樣一來(lái),如果攻擊者試圖利用安全設(shè)備在旁路的組網(wǎng)模型缺乏完整TCP狀態(tài)機(jī)這個(gè)缺陷進(jìn)行TCP數(shù)據(jù)報(bào)文攻擊的話,這些攻擊TCP數(shù)據(jù)報(bào)文將會(huì)被丟棄。具體來(lái)說(shuō),前述的握手報(bào)文通常包括SYN報(bào)文或者SYN ACK報(bào)文。以上兩種報(bào)文可以通過(guò)TCP頭部的若干標(biāo)志位的檢查進(jìn)行確定,具體可以參考TCP協(xié)議的報(bào)文格式。在這里需要強(qiáng)調(diào)的是,SYN報(bào)文與SYN ACK報(bào)文都屬于會(huì)話的首報(bào)文,本發(fā)明所說(shuō)的會(huì)話首報(bào)文并不是單純指第一個(gè)報(bào)文,而是說(shuō)會(huì)話沒(méi)有創(chuàng)建前的報(bào)文都屬于廣義的首報(bào)文。因?yàn)闄z查到SYN報(bào)文時(shí),并不一定需要在安全設(shè)備上創(chuàng)建會(huì)話記錄。因?yàn)橛幸恍┗赥CP協(xié)議報(bào)文的攻擊方式可能只是通過(guò)發(fā)出大量的SYN報(bào)文來(lái)消耗服務(wù)端或者安全設(shè)備的處理資源。 這些攻擊者本身消耗自身的資源來(lái)發(fā)送SYN ACK報(bào)文完成TCP完整的握手流程。所以本發(fā)明利用這些攻擊的特征,對(duì)首報(bào)文可能產(chǎn)生的安全隱患進(jìn)一步加以規(guī)避??紤]到上述可能存在的攻擊情形,在檢查是否為握手報(bào)文之后,進(jìn)一步檢查握手報(bào)文的類(lèi)型,如果握手報(bào)文是SYN報(bào)文,則轉(zhuǎn)到其他處理單元14做進(jìn)一步的安全或者轉(zhuǎn)發(fā)處理。如果握手報(bào)文是SYN ACK報(bào)文,則基于該報(bào)文的會(huì)話特征在會(huì)話列表中創(chuàng)建相應(yīng)的會(huì)話記錄(會(huì)話表項(xiàng))。本發(fā)明提出了對(duì)廣義的會(huì)話首報(bào)文(會(huì)話表項(xiàng)創(chuàng)建之前的所有報(bào)文)進(jìn)行更為嚴(yán)格的安全檢查,丟棄為T(mén)CP數(shù)據(jù)報(bào)文的首報(bào)文。從而有效地防范了單邊流檢查機(jī)制因?yàn)槿狈CP完整狀態(tài)機(jī)可能引發(fā)的TCP報(bào)文攻擊的安全隱患。進(jìn)一步地,本發(fā)明對(duì)首報(bào)文進(jìn)行區(qū)分,有效地規(guī)避了通過(guò)發(fā)送SYN報(bào)文進(jìn)行資源消耗攻擊所引發(fā)的安全風(fēng)險(xiǎn)。本發(fā)明總體的實(shí)施成本較低,開(kāi)發(fā)難度小,但安全防護(hù)效果的提升卻是非常顯著。以上所描述的僅僅是本發(fā)明較佳的實(shí)現(xiàn)方式,并不用以限定本發(fā)明的保護(hù)范圍,任何等同的變化和修改皆應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種防范報(bào)文攻擊的裝置,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,所述網(wǎng)絡(luò)安全設(shè)備與網(wǎng)絡(luò)設(shè)備相連,用于對(duì)網(wǎng)絡(luò)設(shè)備發(fā)送過(guò)來(lái)的報(bào)文進(jìn)行安全處理,其中該裝置包括會(huì)話檢查單元,用于根據(jù)從網(wǎng)絡(luò)設(shè)備接收到的TCP報(bào)文的會(huì)話特征查找會(huì)話列表以確定該TCP報(bào)文是否屬于已存在的會(huì)話;如果不是,則轉(zhuǎn)到會(huì)話創(chuàng)建單元處理;會(huì)話創(chuàng)建單元,用于進(jìn)一步檢查所述TCP報(bào)文是否為握手報(bào)文,如果不是,則丟棄該 TCP報(bào)文。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述握手報(bào)文為SYN報(bào)文或者SYNACK報(bào)文。
3.根據(jù)權(quán)利要求2所述的裝置,其特征在于,還包括,其他處理單元,用以對(duì)報(bào)文進(jìn)行進(jìn)一步的安全處理或者轉(zhuǎn)發(fā)處理,所述會(huì)話創(chuàng)建單元用于進(jìn)一步檢查握手報(bào)文的類(lèi)型,如果握手報(bào)文是SYN報(bào)文,則轉(zhuǎn)到其他處理單元處理;如果握手報(bào)文是SYN ACK報(bào)文,則基于該報(bào)文的會(huì)話特征在會(huì)話列表中創(chuàng)建相應(yīng)的會(huì)話表項(xiàng)。
4.根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述會(huì)話檢查單元確定TCP報(bào)文屬于已經(jīng)存在的會(huì)話時(shí),將報(bào)文提交其他單元進(jìn)行處理。
5.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述會(huì)話特征為報(bào)文的五元組。
6.一種防范報(bào)文攻擊的方法,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,所述網(wǎng)絡(luò)安全設(shè)備與網(wǎng)絡(luò)設(shè)備相連,用于對(duì)網(wǎng)絡(luò)設(shè)備發(fā)送過(guò)來(lái)的報(bào)文進(jìn)行安全處理,其中該方法包括A、根據(jù)從網(wǎng)絡(luò)設(shè)備接收到的TCP報(bào)文的會(huì)話特征查找會(huì)話列表以確定該TCP報(bào)文是否屬于已存在的會(huì)話;如果不是,則轉(zhuǎn)到會(huì)話創(chuàng)建單元處理;B、檢查所述TCP報(bào)文是否為握手報(bào)文,如果不是,則丟棄該TCP報(bào)文。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述握手報(bào)文為SYN報(bào)文或者SYNACK報(bào)文。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟B還包括進(jìn)一步檢查握手報(bào)文的類(lèi)型,如果握手報(bào)文是SYN報(bào)文,則對(duì)報(bào)文進(jìn)行進(jìn)一步的安全處理或者轉(zhuǎn)發(fā)處理;如果握手報(bào)文是SYN ACK報(bào)文,則基于該報(bào)文的會(huì)話特征在會(huì)話列表中創(chuàng)建相應(yīng)的會(huì)話表項(xiàng)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述會(huì)話檢查單元確定TCP報(bào)文屬于已經(jīng)存在的會(huì)話時(shí),將報(bào)文提交其他單元進(jìn)行處理。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述會(huì)話特征為報(bào)文的五元組。
全文摘要
本發(fā)明提供一種防范報(bào)文攻擊的裝置,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,所述網(wǎng)絡(luò)安全設(shè)備用于對(duì)網(wǎng)絡(luò)設(shè)備發(fā)送過(guò)來(lái)的報(bào)文進(jìn)行安全處理,其中該裝置包括會(huì)話檢查單元,用于根據(jù)從網(wǎng)絡(luò)設(shè)備接收到的TCP報(bào)文的會(huì)話特征查找會(huì)話列表以確定該TCP報(bào)文是否屬于已存在的會(huì)話;如果不是,則轉(zhuǎn)到會(huì)話創(chuàng)建單元處理;以及會(huì)話創(chuàng)建單元,用于檢查所述TCP報(bào)文是否為握手報(bào)文,如果不是,則丟棄該報(bào)文。本發(fā)明能有效防范單邊流檢查機(jī)制因?yàn)槿狈CP完整狀態(tài)機(jī)可能引發(fā)的TCP數(shù)據(jù)報(bào)文攻擊隱患。本發(fā)明實(shí)施成本較低且開(kāi)發(fā)難度小,安全防護(hù)效果非常顯著。
文檔編號(hào)H04L29/06GK102333080SQ20111021905
公開(kāi)日2012年1月25日 申請(qǐng)日期2011年8月2日 優(yōu)先權(quán)日2011年8月2日
發(fā)明者汪慶權(quán) 申請(qǐng)人:杭州迪普科技有限公司