專(zhuān)利名稱(chēng):一種抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及一種防止網(wǎng)絡(luò)安全因遭受拒絕服務(wù)攻擊事件而出現(xiàn)網(wǎng)絡(luò)崩潰現(xiàn)象的方法。
背景技術(shù):
互聯(lián)網(wǎng)上出現(xiàn)的DDoS(Distributed Denial of Service)分布式拒絕服務(wù)攻擊事件,甚至?xí)沟靡恍┐笮途W(wǎng)站都因遭受入侵而全面癱瘓。很多政府網(wǎng)站、ISP信息服務(wù)提供商、IDC托管機(jī)房、商業(yè)站點(diǎn)、游戲服務(wù)器、聊天網(wǎng)絡(luò)等網(wǎng)絡(luò)服務(wù)商長(zhǎng)期以來(lái)一直被DDOS攻擊所困擾,其主要影響是數(shù)據(jù)庫(kù)無(wú)法正常使用,服務(wù)器被入侵機(jī)密資料丟失、以及一些連帶問(wèn)題。但是目前全球?qū)DoS攻擊進(jìn)行防范、預(yù)測(cè)和反擊的研究工作還沒(méi)有突破性的進(jìn)展。
SYN/ACK Flood攻擊作為其中最典型的拒絕服務(wù)攻擊方式,其原理主要是通過(guò)向受害主機(jī)發(fā)送大量偽造源IP和源端口的TCP請(qǐng)求包,導(dǎo)致主機(jī)緩存資源因處理這些欺騙請(qǐng)求包被耗盡或因忙于發(fā)送回應(yīng)包而拒絕服務(wù),普通防火墻大多無(wú)法抵御此種攻擊。常用的攻擊方式有1、半連接攻擊,通過(guò)許多僵尸主機(jī)不斷地與受害服務(wù)器建立大量的TCP連接,直到服務(wù)器的內(nèi)存等資源被耗盡而被拖跨,從而造成拒絕服務(wù);2、反射式分布式拒絕服務(wù),也稱(chēng)洪水方式的拒絕服務(wù),以阻塞帶寬為目的。黑客利用特殊的發(fā)包工具,首先把偽造了源地址的TCP連接請(qǐng)求包發(fā)送到那些被欺騙的計(jì)算機(jī)上,根據(jù)TCP三次握手的規(guī)則,這些計(jì)算機(jī)會(huì)向源IP發(fā)出SYN+ACK或RST包來(lái)響應(yīng)這些請(qǐng)求。
抵御拒絕服務(wù)攻擊較常用的方法,主要分為網(wǎng)關(guān)防火墻法、中繼防火墻法和SYNcookies。如圖1所示,為現(xiàn)有技術(shù)中的網(wǎng)關(guān)防火墻結(jié)構(gòu)圖。圖中,按網(wǎng)絡(luò)在防火墻內(nèi)側(cè)還是外側(cè)將其分為內(nèi)網(wǎng)、外網(wǎng),其中內(nèi)網(wǎng)是受防火墻保護(hù)的。
1、網(wǎng)關(guān)防火墻法網(wǎng)關(guān)防火墻抵御攻擊的基本思想是對(duì)于內(nèi)網(wǎng)服務(wù)器所發(fā)的SYN+ACK包,防火墻立即發(fā)送ACK包響應(yīng)。當(dāng)內(nèi)網(wǎng)服務(wù)器接到ACK包后,從backlog隊(duì)列中移出此半連接,連接轉(zhuǎn)為開(kāi)連接,TCP連接建成。該方法的缺點(diǎn)是當(dāng)受到TCP攻擊時(shí),將使連接隊(duì)列數(shù)目增加,但一般服務(wù)器所能承受的連接數(shù)量比半連接數(shù)量大得多。然而,由于服務(wù)器對(duì)連接數(shù)量也有限制,隨著攻擊時(shí)間和攻擊強(qiáng)度的加大,就會(huì)超過(guò)全連接限制,最終導(dǎo)致拒絕服務(wù)。
2、中繼防火墻法防火墻在向內(nèi)網(wǎng)服務(wù)器發(fā)TCP包之前,首先完成與外網(wǎng)的三次握手連接,從而消除拒絕服務(wù)攻擊的成立條件。該方法的缺點(diǎn)是此處,中繼防火墻的作用就相當(dāng)于一個(gè)TCP代理,代替了服務(wù)器去處理TCP攻擊,TCP代理程序工作在用戶層,處理半連接數(shù)量也是有限的,很容易被攻破。另外,由于增加了一次代理進(jìn)行TCP的三層握手,不可避免的引起TCP連接的延遲。
3、SYN cookiesLinux/BSD都支持SYN cookies,它通過(guò)修改TCP協(xié)議的序列號(hào)生成方法來(lái)加強(qiáng)抵御拒絕服務(wù)攻擊能力。該方法的缺點(diǎn)是某些TCP選項(xiàng)必須禁用,如大窗口等,另外,計(jì)算cookies有花銷(xiāo),當(dāng)受攻擊時(shí)嚴(yán)重消耗CPU資源,甚至導(dǎo)致死機(jī)。
發(fā)明內(nèi)容
本發(fā)明正是為了解決上述現(xiàn)有技術(shù)所存在的缺陷,而提出一種抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,在基于數(shù)據(jù)鏈路層的設(shè)計(jì)的防護(hù)模塊,過(guò)濾具有拒絕服務(wù)攻擊性的TCP包,通過(guò)構(gòu)成一個(gè)模塊級(jí)混合型防火墻,實(shí)現(xiàn)對(duì)服務(wù)攻擊的主動(dòng)防護(hù)。
本發(fā)明所提出的一種抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,在數(shù)據(jù)鏈路層設(shè)計(jì)了防護(hù)模塊,通過(guò)對(duì)接收的來(lái)自各種IP地址的網(wǎng)絡(luò)TCP請(qǐng)求包進(jìn)行判斷,以實(shí)現(xiàn)對(duì)拒絕服務(wù)攻擊包的過(guò)濾,該方法包括以下步驟第一步,防火墻截獲外網(wǎng)客戶端發(fā)向內(nèi)網(wǎng)服務(wù)器TCP數(shù)據(jù)包,實(shí)現(xiàn)第一層防護(hù)處理,通過(guò)第一層防護(hù)的TCP數(shù)據(jù)包,進(jìn)入第二層防護(hù)處理;第二步,將通過(guò)第一層防護(hù)進(jìn)入第二層防護(hù)的TCP數(shù)據(jù)包,與合法連接記錄鏈表中的相關(guān)內(nèi)容進(jìn)行匹配,有匹配項(xiàng)的,則視為正常的TCP數(shù)據(jù)包,可直接交給內(nèi)核處理;第三步,對(duì)于在合法的IP地址連接記錄鏈表中沒(méi)有匹配項(xiàng)的TCP數(shù)據(jù)包,則根據(jù)最近一段時(shí)間內(nèi)進(jìn)行TCP包的流量統(tǒng)計(jì)如果流量統(tǒng)計(jì)結(jié)果為正常,則該TCP數(shù)據(jù)被視為正常的數(shù)據(jù)包,交給內(nèi)核處理;如果流量統(tǒng)計(jì)結(jié)果為不正常,則根據(jù)TCP數(shù)據(jù)包的源IP地址,查找自定義的TCP數(shù)據(jù)包鏈表,如有匹配項(xiàng),將其加入合法鏈表中,并將該TCP包交給內(nèi)核去處理;如果沒(méi)有匹配項(xiàng),那么將該TCP包記錄到自定義鏈表結(jié)構(gòu)中,并將該TCP包丟棄。
與已有技術(shù)相比,本發(fā)明能夠?qū)o(wú)論哪種攻擊工具進(jìn)行的拒絕服務(wù)攻擊,進(jìn)行主動(dòng)防御,真正的達(dá)到了內(nèi)核主動(dòng)防御的防護(hù)效果,達(dá)到了預(yù)期的目的。該方法不但大大的增加了防火墻的處理性能而且充分的利用了TCP/IP協(xié)議的特點(diǎn)用全新的設(shè)計(jì)思想,幾乎該算法模塊可以通用于所有的防火墻中。
圖1為現(xiàn)有技術(shù)中網(wǎng)絡(luò)防火墻結(jié)構(gòu)示意圖。
圖2為本發(fā)明的帶有防護(hù)模塊的網(wǎng)絡(luò)數(shù)據(jù)包處理流程圖。
圖3為本發(fā)明的網(wǎng)橋模式的工作流程圖。
具體實(shí)施例方式
本發(fā)明所提出的防護(hù)模塊在受到拒絕服務(wù)攻擊時(shí)啟動(dòng)并進(jìn)行主動(dòng)防護(hù),其具體做法是根據(jù)拒絕服務(wù)攻擊的特點(diǎn),攻擊發(fā)生時(shí)TCP請(qǐng)求包的數(shù)量瞬時(shí)會(huì)變得很大,所以本發(fā)明中通過(guò)采用對(duì)TCP請(qǐng)求包流量進(jìn)行統(tǒng)計(jì)的方式,來(lái)判定網(wǎng)絡(luò)是否受到攻擊。系統(tǒng)首先根據(jù)TCP包頭信息判斷是何種類(lèi)型的數(shù)據(jù)包,從而統(tǒng)計(jì)每秒鐘到達(dá)TCP請(qǐng)求包的個(gè)數(shù),防火墻一旦檢測(cè)出TCP流量超過(guò)服務(wù)器正常處理的限制時(shí),啟動(dòng)防護(hù)模塊處理TCP請(qǐng)求包,而當(dāng)TCP流量恢復(fù)到網(wǎng)絡(luò)正常情況下時(shí),防火墻就不再啟動(dòng)防護(hù)模塊,仍然允許客戶機(jī)與服務(wù)器直接進(jìn)行TCP連接。
防護(hù)模塊設(shè)計(jì)基于數(shù)據(jù)鏈路層,具體做法是在數(shù)據(jù)鏈路層實(shí)現(xiàn)對(duì)自定義數(shù)據(jù)結(jié)構(gòu)進(jìn)行查詢,并結(jié)合拒絕服務(wù)攻擊的防護(hù)算法。
這樣一來(lái)無(wú)論遇到哪種形式的拒絕服務(wù)攻擊,只要系統(tǒng)檢測(cè)到TCP流量不正常就會(huì)啟動(dòng)防護(hù)模塊,無(wú)需借助其他入侵檢測(cè)工具和掃描工具,也無(wú)需人為干預(yù)系統(tǒng)會(huì)自動(dòng)識(shí)別合法與非法的數(shù)據(jù)包,實(shí)現(xiàn)了主動(dòng)防護(hù)拒絕服務(wù)攻擊的效果,圖2是本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包處理流程圖。與現(xiàn)有技術(shù)區(qū)別之處在于,本發(fā)明在網(wǎng)絡(luò)驅(qū)動(dòng)與IP地址的網(wǎng)絡(luò)過(guò)濾之間的數(shù)據(jù)鏈路層上,增加了一個(gè)用于抵御服務(wù)攻擊的防護(hù)模塊。并且,在Linux系統(tǒng)將網(wǎng)卡設(shè)置成網(wǎng)橋的工作模式,網(wǎng)卡接收到數(shù)據(jù)包后,經(jīng)過(guò)的網(wǎng)絡(luò)協(xié)議層次如圖3所示。
本發(fā)明所提出的抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,包括以下步驟第一步,防火墻截獲外網(wǎng)客戶端發(fā)向內(nèi)網(wǎng)服務(wù)器TCP數(shù)據(jù)包,調(diào)用第一層防護(hù)代碼首先進(jìn)行防護(hù)處理,將包長(zhǎng)是40或其他非法TCP請(qǐng)求包丟掉;第二步,將通過(guò)第一層防護(hù)進(jìn)入第二層防護(hù)的TCP數(shù)據(jù)包,與合法連接記錄鏈表中的相關(guān)內(nèi)容進(jìn)行匹配,有匹配項(xiàng)的,則視為正常的TCP數(shù)據(jù)包,可直接交給內(nèi)核處理。
第三步,對(duì)于合法連接記錄鏈表中沒(méi)有匹配項(xiàng)的TCP數(shù)據(jù)包,則根據(jù)最近一段時(shí)間內(nèi)進(jìn)行TCP包的流量統(tǒng)計(jì)如果流量統(tǒng)計(jì)結(jié)果為正常,則該TCP數(shù)據(jù)被視為正常的TCP數(shù)據(jù)包,交給內(nèi)核處理;如果流量統(tǒng)計(jì)結(jié)果為不正常,則根據(jù)TCP數(shù)據(jù)包的源IP地址,查找自定義的TCP數(shù)據(jù)包鏈表,如有匹配項(xiàng),將其加入合法鏈表中,并將該TCP包交給內(nèi)核去處理;如果沒(méi)有匹配項(xiàng),那么將該TCP包記錄到自定義鏈表結(jié)構(gòu)中,并將該TCP包丟棄。
下面通過(guò)一具體實(shí)例,進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案和實(shí)現(xiàn)原理。
本發(fā)明是基于Linux 2.6內(nèi)核而開(kāi)發(fā)的,通用于其他操作系統(tǒng)內(nèi)核。Linux 2.6內(nèi)核采用的一種提高網(wǎng)絡(luò)處理效率的技術(shù)(NAPI技術(shù)),它的核心概念就是不采用中斷的方式讀取數(shù)據(jù),而代之以首先采用中斷喚醒數(shù)據(jù)接收的服務(wù)程序,然后用POLL的方法來(lái)輪詢數(shù)據(jù),Linux 2.6內(nèi)核的netif_rx函數(shù)中提供了專(zhuān)門(mén)的POLL方法--process_backlog來(lái)處理輪詢的方法;process_backlog調(diào)用netif_receive_skb向上層提交數(shù)據(jù)。而netif_receive_skb中嵌入了handle_bridge用于把數(shù)據(jù)包skb送入網(wǎng)橋模塊處理。
為實(shí)現(xiàn)在驅(qū)動(dòng)程序之后且在調(diào)用網(wǎng)橋模塊之前進(jìn)行數(shù)據(jù)包過(guò)濾,以提高內(nèi)核處理效率,最合適的位置就是在調(diào)用netif_receive_skb函數(shù)前調(diào)用本發(fā)明的包過(guò)濾函數(shù),因此,把我們的算法主要函數(shù)lyg_firewall放到process_backlog函數(shù)調(diào)用netif_receive_skb之前。
通過(guò)改進(jìn)Linux內(nèi)核源代碼,將算法實(shí)現(xiàn)在Linux2.6的內(nèi)核源代碼網(wǎng)絡(luò)部分,具體位置是/net/core/dev.c文件,修改dev.c文件的process_backlog函數(shù),在函數(shù)中調(diào)用lyg_firewall()根據(jù)函數(shù)返回結(jié)果處理數(shù)據(jù)包,如果函數(shù)返回值是LYG_DROP,將數(shù)據(jù)包釋放,釋放方法是調(diào)用kfree_skb(skb);否則,netif_receive_skb(skb)會(huì)將該數(shù)據(jù)包給內(nèi)核進(jìn)一步處理。
本發(fā)明的防護(hù)模塊共分兩層結(jié)構(gòu)防護(hù)第一層防護(hù),利用數(shù)據(jù)包長(zhǎng)度判定法進(jìn)行非法TCP請(qǐng)求包的判定及過(guò)濾。對(duì)于包長(zhǎng)是40字節(jié)的非正常TCP請(qǐng)求包丟棄,并且對(duì)包長(zhǎng)不是40字節(jié)的TCP請(qǐng)求包進(jìn)行流量統(tǒng)計(jì),如果流量超過(guò)每秒50個(gè)TCP請(qǐng)求包,而且包長(zhǎng)是某一個(gè)固定值,又不是合法操作系統(tǒng)下發(fā)送TCP請(qǐng)求的合法包長(zhǎng)如64、60、48字節(jié),那么將這些包丟棄。
第二層防護(hù),利用TCP連接請(qǐng)求超時(shí)重傳機(jī)制辨別真假連接的辦法,當(dāng)防火墻收到任何地址任何端口發(fā)來(lái)的第一次TCP請(qǐng)求都將端口、地址和接收時(shí)間紀(jì)錄并將這個(gè)TCP數(shù)據(jù)包丟棄,特定時(shí)間內(nèi)防火墻再次收到這個(gè)地址發(fā)來(lái)的端口一致并且未超時(shí)的數(shù)據(jù)包那么就將其轉(zhuǎn)發(fā)給服務(wù)器,并認(rèn)為這次連接是真實(shí)的。
從TCP協(xié)議三次握手的特點(diǎn)出發(fā),分析正常TCP連接時(shí)發(fā)包的特點(diǎn),發(fā)起TCP連接的主機(jī)會(huì)向目的主機(jī)發(fā)送TCP請(qǐng)求包,然后等待目的主機(jī)返回SYN+ACK包,如果在一定時(shí)間內(nèi)源主機(jī)未能收到SYN+ACK數(shù)據(jù)包,那么就會(huì)認(rèn)為T(mén)CP包已經(jīng)丟失,并且重新發(fā)送TCP數(shù)據(jù)包,當(dāng)連續(xù)3次發(fā)送TCP包都沒(méi)有能夠收到SYN+ACK應(yīng)答,就認(rèn)為該目的主機(jī)不可達(dá)并放棄數(shù)據(jù)傳輸。
當(dāng)前各種偽地址拒絕服務(wù)攻擊都是在最短時(shí)間內(nèi)利用多線程來(lái)向服務(wù)器發(fā)送大量TCP包,造成服務(wù)器系統(tǒng)資源耗盡,無(wú)法響應(yīng)合法TCP請(qǐng)求。但是這種攻擊往往不會(huì)等待SYN+ACK應(yīng)答,也就是說(shuō),攻擊者使用IP地址只發(fā)送一個(gè)TCP請(qǐng)求便改變到其他IP地址進(jìn)行攻擊,因此,可以認(rèn)為,如果在一段時(shí)間內(nèi),目標(biāo)機(jī)收到了兩個(gè)相同IP地址的TCP請(qǐng)求,就認(rèn)為這個(gè)IP地址合法。TCP/IP協(xié)議里規(guī)定的第一次超時(shí)時(shí)間是5.8秒,第二次超時(shí)重傳時(shí)間是24秒,而經(jīng)過(guò)抓包試驗(yàn)測(cè)得結(jié)果是一般的http連接和ftp連接都在0.8秒內(nèi)有第二個(gè)TCP請(qǐng)求重發(fā)。所以我們可以在延遲0.8秒后斷定IP地址合法,而防護(hù)代碼只在受到拒絕服務(wù)攻擊時(shí)才啟用,所以在受到攻擊時(shí),在延遲0.8秒后將請(qǐng)求發(fā)送給服務(wù)器,防止服務(wù)器拒絕服務(wù)攻擊。
為了得到合法的IP地址,每收到一個(gè)IP地址發(fā)來(lái)的TCP請(qǐng)求,就要記錄下該IP地址,并將該TCP包丟棄,我們?cè)O(shè)定在6秒內(nèi),再次收到該IP地址發(fā)來(lái)的TCP請(qǐng)求,就將這個(gè)IP地址加入到一個(gè)合法IP鏈表中去。對(duì)每一個(gè)收到的TCP包,如果在合法IP鏈表中能夠匹配到相同項(xiàng),就認(rèn)為該數(shù)據(jù)包合法,并讓其通過(guò),否則記錄其IP地址,然后丟掉。在合法鏈表的IP地址節(jié)點(diǎn),在記錄后的存活時(shí)間是6秒,時(shí)間到將被從鏈表中刪除。
要記錄合法IP,首先要記錄每一個(gè)到達(dá)的TCP包的IP地址,如果使用一個(gè)普通的鏈表記錄這些IP地址,當(dāng)受到偽地址的SYN flood攻擊時(shí),隨著攻擊的進(jìn)行鏈表會(huì)越來(lái)越長(zhǎng),而IP地址有255×255×255×255這么多,可見(jiàn)當(dāng)受到偽地址攻擊時(shí),CPU每收到一個(gè)TCP請(qǐng)求包都需要對(duì)這個(gè)巨大的鏈表進(jìn)行查找,而受到攻擊時(shí),偽地址TCP請(qǐng)求包一般都在每秒鐘一萬(wàn)個(gè)以上,合法TCP請(qǐng)求包只有幾個(gè)或幾十個(gè),所占比例極小,而為了匹配到比例極小的合法TCP請(qǐng)求,需要對(duì)每個(gè)TCP請(qǐng)求包對(duì)這個(gè)巨大的鏈表進(jìn)行匹配操作,這將嚴(yán)重消耗系統(tǒng)資源,造成防火墻響應(yīng)慢甚至防火墻系統(tǒng)癱瘓,阻塞所有數(shù)據(jù)包。那么黑客實(shí)際上以另外一種形式對(duì)服務(wù)器進(jìn)行了拒絕服務(wù)攻擊。
因此,本發(fā)明設(shè)計(jì)了一個(gè)新的鏈表結(jié)構(gòu),該鏈表分四層,將IP地址的分為4段,每段代表32位IP地址中的8位,鏈表的四層對(duì)應(yīng)IP地址的四段,將IP地址其分別記錄到4個(gè)不同鏈表的節(jié)點(diǎn)中去,每個(gè)節(jié)點(diǎn)分別指向下一層鏈表的表頭,形成一個(gè)四層鏈表每層表指向上層節(jié)點(diǎn)的鏈表套鏈表的數(shù)據(jù)結(jié)構(gòu)。
假設(shè),當(dāng)一個(gè)新的TCP包到達(dá)時(shí),設(shè)其IP地址為192.168.0.1,首先去第一層鏈表中進(jìn)行查找,即查找192,如果找到192,那么就順著該節(jié)點(diǎn)去查找以該節(jié)點(diǎn)作為表頭的子鏈表即第二層鏈表找到168的節(jié)點(diǎn),然后順著這個(gè)節(jié)點(diǎn)找一個(gè)它為表頭的第三層鏈表中找到0,一直找到第4層鏈表,如果在第4個(gè)鏈表中也找到了與1匹配的選項(xiàng),那么就認(rèn)為該IP在鏈表中匹配成功。否則,將該IP作為新的節(jié)點(diǎn)插入到鏈表,插入鏈表時(shí)按層次建立分段IP的節(jié)點(diǎn)并作為下層鏈表的表頭。
使用這樣一個(gè)鏈表,只需要搜索4組鏈表就可以得到結(jié)果,也就是說(shuō),最多也只需要255×4次鏈表操作。該方法與普通鏈表所采用的算法相比,已經(jīng)大大簡(jiǎn)化。
基于Linux2.6內(nèi)核開(kāi)發(fā)的用于防護(hù)拒絕服務(wù)攻擊模塊,工作在Linux系統(tǒng)內(nèi)核網(wǎng)絡(luò)協(xié)議棧的底層,隨內(nèi)核工作而工作,從原理上解決拒絕服務(wù)攻擊,無(wú)論哪種攻擊工具進(jìn)行拒絕服務(wù)攻擊,主動(dòng)防御拒絕服務(wù)系統(tǒng)都能抵御。真正的做到了內(nèi)核主動(dòng)防御的防護(hù)效果,達(dá)到了預(yù)期的目的。
盡管受到拒絕服務(wù)攻擊時(shí),主動(dòng)防御系統(tǒng)資源有所消耗,但是對(duì)網(wǎng)絡(luò)正常使用沒(méi)有任何影響,沒(méi)有一個(gè)TCP拒絕服務(wù)攻擊包通過(guò)防御系統(tǒng),達(dá)到了預(yù)期防護(hù)拒絕服務(wù)攻擊的目的,按理論值計(jì)算在100MB網(wǎng)絡(luò)中TCP包包長(zhǎng)為64字節(jié)情況下,攻擊包每秒最多達(dá)到(100×1024×1024/64)164萬(wàn)個(gè),結(jié)果表明,主動(dòng)防御系統(tǒng)可以保證其正常網(wǎng)絡(luò)傳輸同時(shí)可以防御小于等于160萬(wàn)/秒的拒絕服務(wù)攻擊。唯一美中不足之處就是防御系統(tǒng)的資源消耗根據(jù)攻擊強(qiáng)度的加大略微有所提高,實(shí)際防護(hù)效果是根據(jù)防御系統(tǒng)的CPU處理速度、主板的總線速度、內(nèi)存的速度來(lái)決定。其測(cè)試結(jié)果已經(jīng)遠(yuǎn)遠(yuǎn)優(yōu)于部分國(guó)內(nèi)/國(guó)際的專(zhuān)業(yè)防火墻抗拒絕服務(wù)攻擊產(chǎn)品。
權(quán)利要求
1.一種抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,在數(shù)據(jù)鏈路層設(shè)置防護(hù)模塊,通過(guò)對(duì)接收的來(lái)自各種IP地址的TCP類(lèi)型的數(shù)據(jù)包進(jìn)行判斷,以實(shí)現(xiàn)對(duì)拒絕服務(wù)攻擊包的過(guò)濾,該方法包括以下步驟第一步,防火墻截獲外網(wǎng)客戶端發(fā)向內(nèi)網(wǎng)服務(wù)器TCP類(lèi)型數(shù)據(jù)包,進(jìn)行第一層防護(hù)處理,通過(guò)第一層防護(hù)的TCP類(lèi)型數(shù)據(jù)包,進(jìn)入第二層防護(hù)處理;第二步,將通過(guò)第一層防護(hù)進(jìn)入第二層防護(hù)的TCP數(shù)據(jù)包,與合法連接記錄鏈表中的相關(guān)內(nèi)容進(jìn)行匹配,有匹配項(xiàng)的,則視為正常的數(shù)據(jù)包,可直接交給內(nèi)核處理;第三步,對(duì)于在合法的IP地址連接記錄鏈表中沒(méi)有匹配項(xiàng)的TCP數(shù)據(jù)包,則根據(jù)最近一段時(shí)間內(nèi)進(jìn)行TCP包的流量統(tǒng)計(jì)如果流量統(tǒng)計(jì)結(jié)果為正常,則該數(shù)據(jù)被視為正常的TCP數(shù)據(jù)包,交給內(nèi)核處理;如果流量統(tǒng)計(jì)結(jié)果為不正常,則根據(jù)TCP數(shù)據(jù)包的包頭信息,源IP地址,查找自定義的TCP數(shù)據(jù)包鏈表,如有匹配項(xiàng),將其加入合法鏈表中,并將該TCP數(shù)據(jù)包交給內(nèi)核去處理;如果沒(méi)有匹配項(xiàng),那么將該TCP包記錄到自定義鏈表結(jié)構(gòu)中,并將該TCP數(shù)據(jù)包丟棄。
2.如權(quán)利要求1所述的抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,其特征在于,所述防火墻截獲外網(wǎng)客戶端發(fā)向內(nèi)網(wǎng)服務(wù)器TCP數(shù)據(jù)包,實(shí)現(xiàn)第一層防護(hù)處理,更進(jìn)一步包含利用數(shù)據(jù)包長(zhǎng)度判定法進(jìn)行非法TCP請(qǐng)求包的判定及過(guò)濾。對(duì)于包長(zhǎng)是40字節(jié)的非正常TCP請(qǐng)求包丟棄,對(duì)包長(zhǎng)不是40字節(jié)的TCP請(qǐng)求包進(jìn)行流量統(tǒng)計(jì),如果包長(zhǎng)是某一個(gè)固定值的TCP包流量超過(guò)每秒50個(gè),又不是合法操作系統(tǒng)下發(fā)送TCP請(qǐng)求的包長(zhǎng),那么將這些TCP數(shù)據(jù)包丟棄。
3.如權(quán)利要求1所述的抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,其特征在于,所述第二層防護(hù)處理,更進(jìn)一步包含當(dāng)防火墻收到任何地址任何端口發(fā)來(lái)的第一次TCP請(qǐng)求都將端口、地址和接收時(shí)間紀(jì)錄并將這個(gè)TCP數(shù)據(jù)包丟棄,特定時(shí)間內(nèi)防火墻再次收到這個(gè)地址發(fā)來(lái)的端口一致并且未超時(shí)的數(shù)據(jù)包那么就將其轉(zhuǎn)發(fā)給服務(wù)器,并認(rèn)為這次連接是真實(shí)的。
4.如權(quán)利要求1所述的抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,其特征在于,所述IP地址被定義為四層的鏈表結(jié)構(gòu),該鏈表分四層,將IP地址的分為4段,每段代表32位IP地址中的8位,鏈表的四層對(duì)應(yīng)IP地址的四段,將IP地址分別記錄到4個(gè)不同鏈表的節(jié)點(diǎn)中去,每個(gè)節(jié)點(diǎn)分別指向下一層鏈表的表頭,形成一個(gè)四層鏈表每層表指向上層節(jié)點(diǎn)的鏈表套鏈表的數(shù)據(jù)結(jié)構(gòu)。
5.如權(quán)利要求1所述的抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,其特征在于,所述檢查所接收的TCP數(shù)據(jù)是否與合法的IP地址連接記錄鏈表相匹配的步驟,更進(jìn)一步包含當(dāng)一個(gè)新的TCP請(qǐng)求包到達(dá)時(shí),首先在第1層鏈表中進(jìn)行查找;如果找到第1個(gè)相同節(jié)點(diǎn),根據(jù)該節(jié)點(diǎn)查找以該節(jié)點(diǎn)作為表頭的第2層鏈表,如果找到第二個(gè)相同的節(jié)點(diǎn),則根據(jù)這第2個(gè)相同節(jié)點(diǎn)查找一個(gè)以該節(jié)點(diǎn)為表頭的第3層鏈表,找到第3個(gè)相同的節(jié)點(diǎn),一直找到第4層鏈表,如果在第4個(gè)鏈表中也找到了與它匹配的選項(xiàng),則該IP在鏈表中匹配成功;否則,將該IP作為新的節(jié)點(diǎn)插入到鏈表,插入鏈表時(shí)按層次建立分段IP的節(jié)點(diǎn)并作為下層鏈表的表頭。
6.如權(quán)利要求1所述的抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,其特征在于,該方法基于Linux內(nèi)核,并通用于各種系統(tǒng)內(nèi)核,位于網(wǎng)絡(luò)協(xié)議棧的底層。
7.如權(quán)利要求1所述的抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,其特征在于,所述合法操作系統(tǒng)下發(fā)送TCP請(qǐng)求的合法包長(zhǎng)為64字節(jié)、60字節(jié)或48字節(jié)。
全文摘要
一種抵御拒絕服務(wù)攻擊事件的網(wǎng)絡(luò)安全保護(hù)方法,在數(shù)據(jù)鏈路層設(shè)計(jì)了防護(hù)模塊,通過(guò)對(duì)接收的來(lái)自各種IP地址的TCP請(qǐng)求包進(jìn)行判斷,以實(shí)現(xiàn)對(duì)拒絕服務(wù)攻擊的過(guò)濾,該方法包括以下步驟防火墻截獲外網(wǎng)客戶端發(fā)向內(nèi)網(wǎng)服務(wù)器TCP數(shù)據(jù)包,實(shí)現(xiàn)第一層防護(hù)處理,通過(guò)第一層防護(hù)的TCP數(shù)據(jù)包,進(jìn)入第二層防護(hù)處理,檢查所接收的TCP類(lèi)型數(shù)據(jù)是否在合法的IP地址連接記錄鏈表中有匹配項(xiàng)。有匹配項(xiàng)的,則視為正常的數(shù)據(jù)包,可直接交給內(nèi)核處理;沒(méi)有匹配項(xiàng)的TCP數(shù)據(jù)包,則先對(duì)其在一定時(shí)間段內(nèi)進(jìn)行包的流量統(tǒng)計(jì)。本發(fā)明能夠主動(dòng)防御無(wú)論哪種攻擊工具進(jìn)行的拒絕服務(wù)攻擊,真正做到了內(nèi)核主動(dòng)防御的防護(hù)效果。
文檔編號(hào)H04L12/56GK1822593SQ20061001333
公開(kāi)日2006年8月23日 申請(qǐng)日期2006年3月20日 優(yōu)先權(quán)日2006年3月20日
發(fā)明者趙洪宇, 劉亞光, 朱睿 申請(qǐng)人:趙洪宇