Tcp連接的處理方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種TCP連接的處理方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]SYN FLOOD攻擊是DDoS分布式拒絕服務(wù)攻擊中非常重要的一種手段。其擁有發(fā)動(dòng)方法簡(jiǎn)單且效果明顯等特點(diǎn),能夠快速消耗服務(wù)器的性能,導(dǎo)致服務(wù)器的服務(wù)不可用。
[0003]SYN FLOOD攻擊利用了在建立TCP連接時(shí)的三次握手處理過(guò)程的協(xié)議脆弱的缺陷,發(fā)送大量偽造的TCP連接請(qǐng)求,使服務(wù)器維持大量的半開(kāi)連接,從而使被攻擊服務(wù)器的資源耗盡,影響正常連接的建立。
[0004]在正常的通過(guò)TCP建立連接的處理過(guò)程當(dāng)中,服務(wù)器在每收到一個(gè)SYN同步包之后,會(huì)在內(nèi)核協(xié)議棧中創(chuàng)建一個(gè)連接表項(xiàng),等待該連接后續(xù)的報(bào)文并做進(jìn)一步處理。攻擊者往往通過(guò)偽造源IP,向服務(wù)器發(fā)起大量SYN同步包,每個(gè)SYN同步包都會(huì)使服務(wù)器創(chuàng)建一個(gè)處于SYN_RECV半連接狀態(tài)的連接表項(xiàng),由于沒(méi)有后續(xù)的ACK報(bào)文,服務(wù)器無(wú)法完成TCP的三次握手,因此這些連接就會(huì)在一段時(shí)間內(nèi)一直保持在SYN_RECV半連接狀態(tài)。當(dāng)處于半連接狀態(tài)的連接數(shù)量達(dá)到一定程度之后,由于服務(wù)器為了維護(hù)一個(gè)非常龐大的半連接列表而消耗非常多的資源,因此,服務(wù)器對(duì)于正常連接的處理速度就變得很慢,甚至無(wú)法建立。
[0005]目前,在現(xiàn)有技術(shù)中常規(guī)的用于應(yīng)對(duì)SYNFLOOD攻擊的防護(hù)方法,包括基于SYNC00KIE驗(yàn)證的方式,在防護(hù)設(shè)備或者防護(hù)模塊收到SYN同步包后,并不將SYN同步包交給服務(wù)器,而是先確認(rèn)發(fā)送SYN同步包的源IP客戶(hù)端是否能夠通過(guò)三次握手建立正常的連接,然后再把該IP的報(bào)文轉(zhuǎn)發(fā)給服務(wù)器。其具體的處理方式,一種是先回應(yīng)SYN C00KIE,等后續(xù)的ACK驗(yàn)證通過(guò)之后,把該源IP加白名單并把當(dāng)前連接斷掉,由客戶(hù)端重新發(fā)起連接,由于已經(jīng)加了白名單,該IP后續(xù)的報(bào)文會(huì)被轉(zhuǎn)發(fā)到服務(wù)器;另一種是做TCP代理,等SYN C00KIE驗(yàn)證通過(guò)之后,由防護(hù)設(shè)備向服務(wù)器作為客戶(hù)端向服務(wù)器發(fā)起一個(gè)新的連接,并把客戶(hù)端的請(qǐng)求通過(guò)該連接轉(zhuǎn)到服務(wù)器。
[0006]上述現(xiàn)有的防護(hù)方法存在如下兩個(gè)弊端:
[0007]1、在通過(guò)ACK驗(yàn)證之后利用白名單的方式,將使通過(guò)驗(yàn)證的正常的客戶(hù)端連接中斷并且需要客戶(hù)端重新向服務(wù)器發(fā)起連接和請(qǐng)求,增大了響應(yīng)時(shí)間,影響客戶(hù)體驗(yàn)。
[0008]2、通過(guò)TCP代理的方式,防護(hù)設(shè)備需要同時(shí)維護(hù)大量處于連接狀態(tài)中的連接信息,并且還需要對(duì)TCP連接進(jìn)行轉(zhuǎn)發(fā),在對(duì)防護(hù)性能造成影響,也會(huì)增加響應(yīng)延遲。
[0009]針對(duì)上述由于在對(duì)客戶(hù)端發(fā)送的TCP連接進(jìn)行驗(yàn)證后需要重新建立連接,導(dǎo)致的防護(hù)性能低、連接響應(yīng)延遲的問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0010]本發(fā)明實(shí)施例提供了一種TCP連接的處理方法、裝置及系統(tǒng),以至少解決由于在對(duì)客戶(hù)端發(fā)送的TCP連接進(jìn)行驗(yàn)證后需要重新建立連接,導(dǎo)致的防護(hù)性能低、連接響應(yīng)延遲的技術(shù)問(wèn)題。
[0011]根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種TCP連接的處理系統(tǒng),包括:防護(hù)設(shè)備,通過(guò)互聯(lián)網(wǎng)與客戶(hù)端建立通訊連接,用于接收客戶(hù)端發(fā)送的用于與服務(wù)器端建立TCP連接的連接報(bào)文,并判斷接收到的連接報(bào)文的報(bào)文類(lèi)型,其中,當(dāng)連接報(bào)文的報(bào)文類(lèi)型為應(yīng)答報(bào)文時(shí),利用連接校驗(yàn)信息對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn),當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)時(shí),將應(yīng)答報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端設(shè)置的連接設(shè)備;連接設(shè)備,設(shè)置于服務(wù)器端,分別與客戶(hù)端和防護(hù)設(shè)備建立通訊連接,用于接收防護(hù)設(shè)備轉(zhuǎn)發(fā)的用于與服務(wù)器端建立TCP連接的連接報(bào)文,并判斷接收到的連接報(bào)文的報(bào)文類(lèi)型,其中,當(dāng)連接報(bào)文的報(bào)文類(lèi)型為應(yīng)答報(bào)文時(shí),按照預(yù)先設(shè)置的校驗(yàn)規(guī)則對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn),當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)時(shí),利用應(yīng)答報(bào)文與發(fā)送應(yīng)答報(bào)文的客戶(hù)端建立TCP連接。
[0012]根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種TCP連接的處理方法,應(yīng)用于防護(hù)設(shè)備,包括:接收客戶(hù)端發(fā)送的用于與服務(wù)器端建立TCP連接的連接報(bào)文;判斷接收到的連接報(bào)文的報(bào)文類(lèi)型,其中,連接報(bào)文的報(bào)文類(lèi)型至少包括:同步報(bào)文和應(yīng)答報(bào)文;當(dāng)連接報(bào)文的報(bào)文類(lèi)型為應(yīng)答報(bào)文時(shí),利用連接校驗(yàn)信息對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn),其中,連接校驗(yàn)信息根據(jù)同步報(bào)文生成;當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)時(shí),將應(yīng)答報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端。
[0013]進(jìn)一步地,當(dāng)連接報(bào)文的報(bào)文類(lèi)型為同步報(bào)文時(shí),在判斷接收到的連接報(bào)文的報(bào)文類(lèi)型之后,方法還包括:統(tǒng)計(jì)在預(yù)先設(shè)置的預(yù)定時(shí)間內(nèi),接收到同步報(bào)文的報(bào)文數(shù)量;判斷報(bào)文數(shù)量是否大于等于預(yù)先設(shè)置的閾值;當(dāng)報(bào)文數(shù)量大于或等于閾值時(shí),根據(jù)同步報(bào)文生成連接校驗(yàn)信息;當(dāng)報(bào)文數(shù)量小于閾值時(shí),將同步報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端。
[0014]進(jìn)一步地,在當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)之后,方法還包括:獲取發(fā)送應(yīng)答報(bào)文的客戶(hù)端的第一客戶(hù)端地址;將第一客戶(hù)端地址保存至預(yù)先創(chuàng)建的客戶(hù)端地址表。
[0015]進(jìn)一步地,在利用連接校驗(yàn)信息對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn)之后,方法還包括:當(dāng)應(yīng)答報(bào)文校驗(yàn)未通過(guò)時(shí),獲取發(fā)送應(yīng)答報(bào)文的客戶(hù)端的第二客戶(hù)端地址;將第二客戶(hù)端地址與客戶(hù)端地址表進(jìn)行匹配;當(dāng)?shù)诙蛻?hù)端地址與客戶(hù)端地址表中的地址匹配時(shí),將應(yīng)答報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端;當(dāng)?shù)诙蛻?hù)端地址與客戶(hù)端地址表中的地址不匹配時(shí),丟棄應(yīng)答報(bào)文。
[0016]根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種TCP連接的處理裝置,包括:應(yīng)用于防護(hù)設(shè)備,包括:第一接收模塊,用于接收客戶(hù)端發(fā)送的用于與服務(wù)器端建立TCP連接的連接報(bào)文;第一判斷模塊,用于判斷接收到的連接報(bào)文的報(bào)文類(lèi)型,其中,連接報(bào)文的報(bào)文類(lèi)型至少包括:同步報(bào)文和應(yīng)答報(bào)文;第一校驗(yàn)?zāi)K,用于當(dāng)連接報(bào)文的報(bào)文類(lèi)型為應(yīng)答報(bào)文時(shí),利用連接校驗(yàn)信息對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn),其中,連接校驗(yàn)信息根據(jù)同步報(bào)文生成;第一轉(zhuǎn)發(fā)模塊,用于當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)時(shí),將應(yīng)答報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端。
[0017]進(jìn)一步地,裝置還包括:統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)在預(yù)先設(shè)置的預(yù)定時(shí)間內(nèi),接收到同步報(bào)文的報(bào)文數(shù)量;第二判斷模塊,用于判斷報(bào)文數(shù)量是否大于等于預(yù)先設(shè)置的閾值;生成模塊,用于當(dāng)報(bào)文數(shù)量大于或等于閾值時(shí),根據(jù)同步報(bào)文生成連接校驗(yàn)信息;第二轉(zhuǎn)發(fā)模塊,用于當(dāng)報(bào)文數(shù)量小于閾值時(shí),將同步報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端。
[0018]進(jìn)一步地,裝置還包括:第一獲取模塊,用于獲取發(fā)送應(yīng)答報(bào)文的客戶(hù)端的第一客戶(hù)端地址;存儲(chǔ)模塊,用于將第一客戶(hù)端地址保存至預(yù)先創(chuàng)建的客戶(hù)端地址表。
[0019]進(jìn)一步地,裝置還包括:第二獲取模塊,用于當(dāng)應(yīng)答報(bào)文校驗(yàn)未通過(guò)時(shí),獲取發(fā)送應(yīng)答報(bào)文的客戶(hù)端的第二客戶(hù)端地址;匹配模塊,用于將第二客戶(hù)端地址與客戶(hù)端地址表進(jìn)行匹配;第三轉(zhuǎn)發(fā)模塊,用于當(dāng)?shù)诙蛻?hù)端地址與客戶(hù)端地址表中的地址匹配時(shí),將應(yīng)答報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端;丟棄模塊,用于當(dāng)?shù)诙蛻?hù)端地址與客戶(hù)端地址表中的地址不匹配時(shí),丟棄應(yīng)答報(bào)文。
[0020]根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種TCP連接的處理方法,應(yīng)用于服務(wù)器端,包括:接收防護(hù)設(shè)備轉(zhuǎn)發(fā)的用于與服務(wù)器端建立TCP連接的連接報(bào)文;判斷接收到的連接報(bào)文的報(bào)文類(lèi)型,其中,連接報(bào)文的報(bào)文類(lèi)型至少包括:同步報(bào)文和應(yīng)答報(bào)文;當(dāng)連接報(bào)文的報(bào)文類(lèi)型為應(yīng)答報(bào)文時(shí),按照預(yù)先設(shè)置的校驗(yàn)規(guī)則對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn);當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)時(shí),利用應(yīng)答報(bào)文與發(fā)送應(yīng)答報(bào)文的客戶(hù)端建立TCP連接。
[0021]根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種TCP連接的處理裝置,包括:應(yīng)用于服務(wù)器端,包括:第二接收模塊,用于接收防護(hù)設(shè)備轉(zhuǎn)發(fā)的用于與服務(wù)器端建立TCP連接的連接報(bào)文;第三判斷模塊,用于判斷接收到的連接報(bào)文的報(bào)文類(lèi)型,其中,連接報(bào)文的報(bào)文類(lèi)型至少包括:同步報(bào)文和應(yīng)答報(bào)文;第二校驗(yàn)?zāi)K,用于當(dāng)連接報(bào)文的報(bào)文類(lèi)型為應(yīng)答報(bào)文時(shí),按照預(yù)先設(shè)置的校驗(yàn)規(guī)則對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn);第一連接模塊,用于當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)時(shí),利用應(yīng)答報(bào)文與發(fā)送應(yīng)答報(bào)文的客戶(hù)端建立TCP連接。
[0022]在本發(fā)明實(shí)施例中,采用接收客戶(hù)端發(fā)送的用于與服務(wù)器端建立TCP連接的連接報(bào)文;判斷接收到的連接報(bào)文的報(bào)文類(lèi)型,其中,連接報(bào)文的報(bào)文類(lèi)型至少包括:同步報(bào)文和應(yīng)答報(bào)文;當(dāng)連接報(bào)文的報(bào)文類(lèi)型為應(yīng)答報(bào)文時(shí),利用連接校驗(yàn)信息對(duì)應(yīng)答報(bào)文進(jìn)行校驗(yàn),其中,連接校驗(yàn)信息根據(jù)同步報(bào)文生成;當(dāng)應(yīng)答報(bào)文校驗(yàn)通過(guò)時(shí),將應(yīng)答報(bào)文轉(zhuǎn)發(fā)至服務(wù)器端的方式,達(dá)到了對(duì)SYN FLOOD攻擊進(jìn)行防護(hù)的目的,從而實(shí)現(xiàn)了提升對(duì)SYN FLOOD攻擊進(jìn)行防護(hù)的防護(hù)性能的技術(shù)效果,進(jìn)而解決了由于在對(duì)客戶(hù)端發(fā)送的TCP連接進(jìn)行驗(yàn)證后需要重新建立連接,導(dǎo)致的防護(hù)性能低、連接響應(yīng)延遲的技術(shù)問(wèn)題。
【附圖說(shuō)明】
[0023]此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0024]圖1是根據(jù)本申請(qǐng)實(shí)施例的