專利名稱:一種防范SYN Flood攻擊的方法及安全代理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù),尤其涉及一種防報(bào)文攻擊的方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)通信技術(shù)的進(jìn)步,各種網(wǎng)絡(luò)攻擊引發(fā)的網(wǎng)絡(luò)安全問題日益受到人們的關(guān)注。越來(lái)越多的企業(yè)以及運(yùn)營(yíng)商開始使用諸如防火墻等網(wǎng)絡(luò)安全設(shè)備為網(wǎng)絡(luò)通信提供保護(hù)措施?;赥CP協(xié)議的報(bào)文攻擊行為是相當(dāng)常見的網(wǎng)絡(luò)攻擊。這種攻擊的特點(diǎn)通過大量發(fā)送SYN報(bào)文來(lái)消耗大量的服務(wù)器資源,由于以致服務(wù)器沒有足夠的資源去響應(yīng)其他客戶端的訪問請(qǐng)求。這種攻擊被稱為SYN Flood。SYN flood攻擊是一種通過向目標(biāo)服務(wù)器發(fā)送SYN報(bào)文,消耗其系統(tǒng)資源,削弱目標(biāo)服務(wù)器的服務(wù)提供能力的行為。一般情況下,SYN Flood攻擊是在采用IP源地址欺騙行為的基礎(chǔ)上,利用TCP連接建立時(shí)的三次握手過程形成的。正常情況下,TCP連接的建立需要雙方進(jìn)行三次握手,只有當(dāng)三次握手都順利完成之后,一個(gè)TCP連接才能成功建立。當(dāng)客戶端向服務(wù)器發(fā)出請(qǐng)求,建立一個(gè)TCP連接時(shí),雙方要進(jìn)行以下消息交互(1)客戶端向服務(wù)器發(fā)送一個(gè)SYN報(bào)文;(2)如果服務(wù)器同意建立連接,則響應(yīng)客戶端一個(gè)對(duì)SYN報(bào)文的回應(yīng)(SYN/ACK);(3)客戶端收到服務(wù)器的SYN/ACK以后,再向服務(wù)器發(fā)送一個(gè)ACK報(bào)文進(jìn)行確認(rèn)。 當(dāng)服務(wù)器收到客戶端的ACK報(bào)文以后,一個(gè)TCP的連接成功完成。請(qǐng)參考圖1,在上述過程中,當(dāng)服務(wù)器收到SYN報(bào)文后,在發(fā)送SYN/ACK回應(yīng)客戶端之前,需要分配一個(gè)數(shù)據(jù)區(qū)記錄這個(gè)未完成的TCP連接,這個(gè)數(shù)據(jù)區(qū)通常稱為TCB資源,此時(shí)的TCP連接也稱為半開連接。這種半開連接只有在收到客戶端響應(yīng)報(bào)文或連接超時(shí)后才斷開,而客戶端在收到SYN/ACK報(bào)文之后才會(huì)分配TCB資源,因此這種不對(duì)稱的資源分配模式會(huì)被攻擊者所利用形成SYN Flood攻擊。攻擊者隨機(jī)構(gòu)造源IP地址向目標(biāo)服務(wù)器發(fā)起連接,該服務(wù)器回應(yīng)SYN/ACK消息作為響應(yīng),由于應(yīng)答消息的目的地址是隨機(jī)的,所以這個(gè)地址很可能不存在,不會(huì)對(duì)服務(wù)器進(jìn)行響應(yīng)。因此,TCP握手的最后一個(gè)步驟將永遠(yuǎn)不可能發(fā)生,該連接就一直處于半開狀態(tài)直到連接超時(shí)后被刪除。如果攻擊者用快于服務(wù)器TCP連接超時(shí)的速度,連續(xù)對(duì)目標(biāo)服務(wù)器開放的端口發(fā)送SYN報(bào)文,服務(wù)器的所有TCB資源都將被消耗,以至于不能再接受其他客戶端的正常連接請(qǐng)求。為了解決上述問題,現(xiàn)有技術(shù)中在單邊流情況下,對(duì)SYN Flood防護(hù)通常用SYN Safe Reset+白名單方式,即通過驗(yàn)證發(fā)起連接客戶端的合法性,使服務(wù)器免受SYN flood 攻擊。請(qǐng)參考圖2,Mfe Reset技術(shù)通過攔截TCPSYN(連接新建)報(bào)文,修改響應(yīng)報(bào)文序列號(hào)且?guī)дJ(rèn)證(稱之為cookie)信息發(fā)回給客戶端,再通過客戶端回應(yīng)的報(bào)文中攜帶的信息來(lái)驗(yàn)證客戶端的合法性。如驗(yàn)證通過,則會(huì)將客戶端IP地址加入白名單,同時(shí)設(shè)置老化時(shí)間,在老化時(shí)間內(nèi),此IP再次訪問服務(wù)器時(shí),會(huì)直接放行。即便如此,如果一旦攻擊者偽造的源IP地址與部分合法客戶端的IP地址一致時(shí), 服務(wù)器仍將遭受一定程度的攻擊。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種更可靠且實(shí)施成本較低的解決方案以解決現(xiàn)有技術(shù)的問題。本發(fā)明提供一種防范SYN Flood攻擊的安全代理裝置,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,該裝置包括報(bào)文檢查單元,用于檢查發(fā)出TCP SYN報(bào)文的客戶端是否在客戶端白名單中有對(duì)應(yīng)的表項(xiàng);如果是,允許該報(bào)文通過并刪除該客戶端對(duì)應(yīng)的表項(xiàng);如果否,則轉(zhuǎn)客戶端驗(yàn)證單元處理;客戶端驗(yàn)證單元,用于向發(fā)出TCP SYN報(bào)文的客戶端發(fā)出驗(yàn)證請(qǐng)求報(bào)文并通過客戶端返回的驗(yàn)證響應(yīng)報(bào)文檢驗(yàn)客戶端是否為合法客戶端,若客戶端為合法客戶端,則在客戶端白名單中增加對(duì)應(yīng)的表項(xiàng),否則丟棄該丟棄該驗(yàn)證響應(yīng)報(bào)文。優(yōu)選地,所述客戶端白名單的表項(xiàng)包括IP地址以及源端口號(hào)。優(yōu)選地,所述驗(yàn)證請(qǐng)求報(bào)文為攜帶Cookie的SYN ACK報(bào)文。優(yōu)選地,所述驗(yàn)證響應(yīng)報(bào)文為RST報(bào)文。優(yōu)選地,其中所述網(wǎng)絡(luò)安全設(shè)備還包括訪問控制單元,用于從接收到的報(bào)文中篩選出TCP SYN報(bào)文并提交給報(bào)文檢查單元,以及用于從接收到的報(bào)文中篩選出驗(yàn)證響應(yīng)報(bào)文并提交給客戶端驗(yàn)證單元。本發(fā)明還提供一種防范SYN Flood攻擊的方法,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,該方法包括A、檢查發(fā)出TCP SYN報(bào)文的客戶端是否在客戶端白名單中有對(duì)應(yīng)的表項(xiàng);如果是,允許該報(bào)文通過并刪除該客戶端對(duì)應(yīng)的表項(xiàng);如果否,則轉(zhuǎn)步驟B處理;B、向發(fā)出TCP SYN報(bào)文的客戶端發(fā)出驗(yàn)證請(qǐng)求報(bào)文并通過客戶端返回的驗(yàn)證響應(yīng)報(bào)文檢驗(yàn)客戶端是否為合法客戶端,若客戶端為合法客戶端,則在客戶端白名單中增加對(duì)應(yīng)的表項(xiàng),否則丟棄該驗(yàn)證響應(yīng)報(bào)文。優(yōu)選地,所述客戶端白名單的表項(xiàng)包括IP地址以及源端口號(hào)。優(yōu)選地,所述驗(yàn)證請(qǐng)求報(bào)文為攜帶Cookie的SYN ACK報(bào)文。優(yōu)選地,所述驗(yàn)證響應(yīng)報(bào)文為RST報(bào)文。優(yōu)選地,還包括C、從接收到的報(bào)文中篩選出TCP SYN報(bào)文并轉(zhuǎn)步驟A處理,以及D、從接收到的報(bào)文中篩選出驗(yàn)證響應(yīng)報(bào)文并轉(zhuǎn)步驟B處理。。本發(fā)明巧妙地改進(jìn)了表項(xiàng)刪除機(jī)制,解決了上述問題,其優(yōu)點(diǎn)是改動(dòng)小實(shí)施成本非常低,但效果卻非常顯著。同時(shí)再配合簽署IP地址+源端口的表項(xiàng)內(nèi)容設(shè)計(jì),充分利用了客戶端新建TCP連接時(shí)源端口號(hào)會(huì)呈現(xiàn)較強(qiáng)的隨機(jī)性這個(gè)特點(diǎn),使得攻擊者成功攻擊的難度再提高了一截,因此實(shí)施本發(fā)明之后,攻擊者想要利用白名單中合法客戶端的IP地址蒙混過關(guān)幾乎不可能。
圖1是一種典型的SYN Flood攻擊原理圖。圖2是現(xiàn)有技術(shù)中防范SYN Flood攻擊的原理圖。圖3是本發(fā)明安全代理裝置的邏輯結(jié)構(gòu)圖。圖4是本發(fā)明防范SYN Flood攻擊的流程圖
具體實(shí)施例方式本發(fā)明利用位于客戶端(Client)與服務(wù)器(Server)之間的安全代理裝置來(lái)防范基于TCP協(xié)議的SYN Flood攻擊。本發(fā)明所說的安全代理裝置是一種邏輯裝置,其可位于各種具有安全功能的物理網(wǎng)絡(luò)設(shè)備(如路由器、三層交換、防火墻等網(wǎng)絡(luò)安全設(shè)備)上。本發(fā)明安全代理裝置主要包括報(bào)文檢查單元11以及客戶端驗(yàn)證單元12,其中所述網(wǎng)絡(luò)安全設(shè)備還包括訪問控制單元20。以上各個(gè)單元都是邏輯意義上的單元,從實(shí)現(xiàn)上可以是軟件實(shí)現(xiàn)(即通過CPU運(yùn)行內(nèi)存中的軟件代碼實(shí)現(xiàn))也可以是硬件或者固件實(shí)現(xiàn)。以下結(jié)合圖 3以計(jì)算機(jī)軟件為例進(jìn)行說明。步驟101,從安全設(shè)備接收到的報(bào)文中篩選出TCP SYN報(bào)文以及驗(yàn)證響應(yīng)報(bào)文;本步驟由網(wǎng)絡(luò)安全設(shè)備的報(bào)文過濾單元執(zhí)行。通常情況下,網(wǎng)絡(luò)安全設(shè)備會(huì)報(bào)文接收環(huán)節(jié)設(shè)置各種規(guī)則來(lái)決定報(bào)文的處理流程。比如最典型的以底層芯片內(nèi)部的訪問控制列表為例,可以設(shè)置很多ACL規(guī)則來(lái)決定報(bào)文的下一步處理,比如允許某類報(bào)文通過,丟棄某類報(bào)文,將某類報(bào)文上送特定軟件單元進(jìn)行處理等等。在本發(fā)明中,訪問控制單元20主要的作用是將TCP SYN報(bào)文篩選出來(lái)送給報(bào)文檢查單元11處理;以及把驗(yàn)證響應(yīng)報(bào)文篩選出來(lái)送給客戶端驗(yàn)證單元處理。目前大部分芯片提供上述訪問控制的功能,而下發(fā)給中ACL規(guī)則也是本領(lǐng)域普通技術(shù)人員所知曉的一般技術(shù)知識(shí),因此不再贅述。需要補(bǔ)充說明的是,訪問控制單元依然可以采用軟件的方式加以實(shí)現(xiàn),這取決與安全設(shè)備整體設(shè)計(jì)的考量。步驟102,檢查發(fā)出TCP SYN報(bào)文的客戶端是否在客戶端白名單中有對(duì)應(yīng)的表項(xiàng); 如果是,允許該報(bào)文通過并刪除該客戶端對(duì)應(yīng)的表項(xiàng);如果否,則轉(zhuǎn)客戶端驗(yàn)證單元處理; 本步驟由報(bào)文檢查單元11執(zhí)行。步驟103,向發(fā)出TCP SYN報(bào)文的客戶端發(fā)出驗(yàn)證請(qǐng)求報(bào)文并通過客戶端返回的驗(yàn)證響應(yīng)報(bào)文檢驗(yàn)客戶端是否為合法客戶端,若客戶端為合法客戶端,則在客戶端白名單中增加對(duì)應(yīng)的表項(xiàng),否則丟棄該TCP SYN報(bào)文;本步驟由客戶端驗(yàn)證單元12執(zhí)行。對(duì)于成功地通過了驗(yàn)證的客戶端,客戶端驗(yàn)證單元12將把客戶端發(fā)出的TCP SYN 報(bào)文的源IP地址以及源端口放入白名單作為一條新的表項(xiàng)。在優(yōu)選的實(shí)施方式中,本發(fā)明的白名單表項(xiàng)包括IP地址以及源端口。如果一個(gè)客戶端創(chuàng)建一個(gè)新TCP連接,其首先會(huì)發(fā)出TCP SYN報(bào)文,報(bào)文檢查單元會(huì)檢查到該報(bào)文并不在白名單中,這是因?yàn)榧幢阍摽蛻舳酥霸?jīng)創(chuàng)建過TCP連接,雖然兩次TCP連接所使用的IP地址都是一樣的,但是兩次TCP連接的源端口號(hào)很多時(shí)候是不相同的。但是在現(xiàn)有技術(shù)中,由于白名單中的表項(xiàng)內(nèi)容僅僅包括IP地址,那么很有可能第二次TCP連接創(chuàng)建會(huì)被放行。這種特點(diǎn)很容易被攻擊者加以利用,攻擊者偽造大量的IP地址,其中部分可能與合法客戶端的IP地址相同,這部分攻擊TCP SYN報(bào)文就能夠蒙混過關(guān),到達(dá)服務(wù)器端。然而,對(duì)于本發(fā)明來(lái)說同樣也可以僅僅使用IP地址作為表項(xiàng)內(nèi)容。因?yàn)楸景l(fā)明依然有機(jī)制來(lái)保證攻擊報(bào)文難以蒙混過關(guān)。如前所述,客戶端第一次新建一個(gè)TCP連接會(huì)發(fā)送TCP SYN報(bào)文,客戶端此時(shí)不在白名單中,轉(zhuǎn)到驗(yàn)證流程進(jìn)行處理??蛻舳蓑?yàn)證單元12 發(fā)送驗(yàn)證響應(yīng)報(bào)文(典型的方式是攜帶Cookie的SYN ACK報(bào)文)給客戶端,客戶端協(xié)議棧會(huì)發(fā)送驗(yàn)證響應(yīng)報(bào)文(典型的方式是RST報(bào)文)進(jìn)行響應(yīng)??蛻舳蓑?yàn)證單元12收到驗(yàn)證響應(yīng)報(bào)文后對(duì)Cookie進(jìn)行檢查,如果通過,則視為通過驗(yàn)證,將客戶端加入到白名單中,如果無(wú)法通過,則丟棄該驗(yàn)證響應(yīng)報(bào)文??蛻舳蓑?yàn)證通過以后還會(huì)立刻再次發(fā)送TCP SYN報(bào)文,此時(shí)由于客戶端已經(jīng)在白名單中了,報(bào)文檢查單元11發(fā)現(xiàn)該報(bào)文屬于白名單中的合法客戶端發(fā)出的,因此會(huì)放行該報(bào)文并觸發(fā)對(duì)該合法客戶端對(duì)應(yīng)表項(xiàng)的刪除動(dòng)作。當(dāng)客戶端再次創(chuàng)建一個(gè)新的TCP連接時(shí),由于白名單中的表項(xiàng)已經(jīng)被刪除,那么客戶端需要重復(fù)上述流程。這個(gè)刪除動(dòng)作會(huì)保證每次客戶端新建一個(gè)TCP連接都需要進(jìn)行驗(yàn)證,因此攻擊者很難利用一個(gè)合法客戶端的IP 地址蒙混過關(guān)。在現(xiàn)有技術(shù)中,白名單的表項(xiàng)內(nèi)容都是通過時(shí)間進(jìn)行老化的,首先老化時(shí)間比較長(zhǎng),攻擊者可以加以利用;另外,由于很多客戶端一直處于活躍狀態(tài),那么白名單中的表項(xiàng)不會(huì)被老化,攻擊者有更高的機(jī)會(huì)利用合法客戶端的IP地址蒙混過關(guān)。在這一點(diǎn)上,本發(fā)明巧妙地改進(jìn)了表項(xiàng)刪除機(jī)制,解決了上述問題,其優(yōu)點(diǎn)是改動(dòng)小實(shí)施成本非常低,但效果卻非常顯著。同時(shí)再配合簽署IP地址+源端口的表項(xiàng)內(nèi)容設(shè)計(jì),充分利用了客戶端新建 TCP連接時(shí)源端口號(hào)會(huì)呈現(xiàn)較強(qiáng)的隨機(jī)性這個(gè)特點(diǎn),使得攻擊者成功攻擊的難度再提高了一截,因此實(shí)施本發(fā)明之后,攻擊者想要利用白名單中合法客戶端的IP地址蒙混過關(guān)幾乎不可能。以上所描述的僅僅是本發(fā)明較佳的實(shí)現(xiàn)方式,并不用以限定本發(fā)明的保護(hù)范圍, 任何等同的變化和修改皆應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種防范SYN Flood攻擊的安全代理裝置,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,該裝置包括報(bào)文檢查單元,用于檢查發(fā)出TCP SYN報(bào)文的客戶端是否在客戶端白名單中有對(duì)應(yīng)的表項(xiàng);如果是,允許該報(bào)文通過并刪除該客戶端對(duì)應(yīng)的表項(xiàng);如果否,則轉(zhuǎn)客戶端驗(yàn)證單元處理;客戶端驗(yàn)證單元,用于向發(fā)出TCP SYN報(bào)文的客戶端發(fā)出驗(yàn)證請(qǐng)求報(bào)文并通過客戶端返回的驗(yàn)證響應(yīng)報(bào)文檢驗(yàn)客戶端是否為合法客戶端,若客戶端為合法客戶端,則在客戶端白名單中增加對(duì)應(yīng)的表項(xiàng),否則丟棄該丟棄該驗(yàn)證響應(yīng)報(bào)文。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述客戶端白名單的表項(xiàng)包括IP地址以及源端口號(hào)。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述驗(yàn)證請(qǐng)求報(bào)文為攜帶Cookie的SYN ACK報(bào)文。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述驗(yàn)證響應(yīng)報(bào)文為RST報(bào)文。
5.根據(jù)權(quán)利要求1所述的裝置,其特征在于,其中所述網(wǎng)絡(luò)安全設(shè)備還包括訪問控制單元,用于從接收到的報(bào)文中篩選出TCP SYN報(bào)文并提交給報(bào)文檢查單元,以及用于從接收到的報(bào)文中篩選出驗(yàn)證響應(yīng)報(bào)文并提交給客戶端驗(yàn)證單元。
6.一種防范SYN Flood攻擊的方法,其應(yīng)用于網(wǎng)絡(luò)安全設(shè)備中,該方法包括A、檢查發(fā)出TCPSYN報(bào)文的客戶端是否在客戶端白名單中有對(duì)應(yīng)的表項(xiàng);如果是,允許該報(bào)文通過并刪除該客戶端對(duì)應(yīng)的表項(xiàng);如果否,則轉(zhuǎn)步驟B處理;B、向發(fā)出TCPSYN報(bào)文的客戶端發(fā)出驗(yàn)證請(qǐng)求報(bào)文并通過客戶端返回的驗(yàn)證響應(yīng)報(bào)文檢驗(yàn)客戶端是否為合法客戶端,若客戶端為合法客戶端,則在客戶端白名單中增加對(duì)應(yīng)的表項(xiàng),否則丟棄該驗(yàn)證響應(yīng)報(bào)文。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述客戶端白名單的表項(xiàng)包括IP地址以及源端口號(hào)。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述驗(yàn)證請(qǐng)求報(bào)文為攜帶Cookie的SYN ACK報(bào)文。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述驗(yàn)證響應(yīng)報(bào)文為RST報(bào)文。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括C、從接收到的報(bào)文中篩選出TCPSYN報(bào)文并轉(zhuǎn)步驟A處理,以及D、從接收到的報(bào)文中篩選出驗(yàn)證響應(yīng)報(bào)文并轉(zhuǎn)步驟B處理。
全文摘要
本發(fā)明提供一種防范SYN Flood攻擊的方法,該方法包括A、檢查發(fā)出TCP SYN報(bào)文的客戶端是否在白名單中;如果是,允許報(bào)文通過并刪除對(duì)應(yīng)表項(xiàng);如果否則轉(zhuǎn)B;B、向客戶端發(fā)出驗(yàn)證請(qǐng)求并通過客戶端返回的驗(yàn)證響應(yīng)檢驗(yàn)客戶端是否合法,若合法,則在名單中增加對(duì)應(yīng)表項(xiàng),否則丟棄響應(yīng)報(bào)文。本發(fā)明巧妙地改進(jìn)了表項(xiàng)刪除機(jī)制,解決了攻擊者偽造IP地址可能與客戶端IP地址重合的問題。本發(fā)明還可以再配合簽署IP地址+源端口的表項(xiàng)內(nèi)容設(shè)計(jì),充分利用了TCP連接源端口號(hào)會(huì)呈現(xiàn)較強(qiáng)的隨機(jī)性這個(gè)特點(diǎn),使得攻擊者利用白名單中合法IP地址蒙混過關(guān)幾乎不可能。
文檔編號(hào)H04L1/16GK102291441SQ20111021906
公開日2011年12月21日 申請(qǐng)日期2011年8月2日 優(yōu)先權(quán)日2011年8月2日
發(fā)明者汪慶權(quán) 申請(qǐng)人:杭州迪普科技有限公司