專利名稱:防范http post泛洪攻擊的方法及防火墻的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及防范HTTP POST泛洪攻擊的方法及防火墻,適用于防范超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol) POST泛洪(Flood)攻擊。
背景技術(shù):
網(wǎng)絡(luò)(Web)服務(wù)器在當(dāng)前的互聯(lián)網(wǎng)應(yīng)用中擔(dān)當(dāng)著極為重要的角色,例如提供網(wǎng)頁(yè)瀏覽、電子郵件收發(fā)、資源下載等服務(wù),這些服務(wù)通常建立在HTTP協(xié)議基礎(chǔ)上。在開放的網(wǎng)絡(luò)環(huán)境下,Web服務(wù)器很容易受到HTTP Flood攻擊,這是一種拒絕服務(wù)(DOS :Denial ofService)攻擊,即攻擊者利用大量的服務(wù)請(qǐng)求或系統(tǒng)漏洞來(lái)占用服務(wù)資源,致使服務(wù)器超載,無(wú)法響應(yīng)其它正常用戶的請(qǐng)求的攻擊方式。HTTP Flood攻擊主要針對(duì)部署在Web服務(wù)器上使用ASP、 JSP、PHP等語(yǔ)言并調(diào)用MsSQL、MySQL、Oracle等數(shù)據(jù)庫(kù)的動(dòng)態(tài)網(wǎng)頁(yè)系統(tǒng)而設(shè)計(jì),其特征是通過(guò)僵尸網(wǎng)絡(luò)或攻擊工具與Web服務(wù)器建立正常的TCP連接,并不斷向腳本程序提交查詢、列表等大量耗費(fèi)數(shù)據(jù)庫(kù)資源的調(diào)用。 一但Web服務(wù)器受到HTTP Flood攻擊,將嚴(yán)重影響正常用戶的Web訪問(wèn)。由于HTTP Flood屬于應(yīng)用層攻擊,常??梢岳@過(guò)普通的防火墻防護(hù)。 目前有使用以下兩種技術(shù)來(lái)防范HTTP Flood攻擊
—、 HTTP連接統(tǒng)計(jì)防范技術(shù) 防火墻統(tǒng)計(jì)客戶端和服務(wù)器通信的每個(gè)源地址的并發(fā)連接數(shù)或者新建連接數(shù),當(dāng)發(fā)現(xiàn)某個(gè)源地址的連接數(shù)統(tǒng)計(jì)值超過(guò)預(yù)置的警戒值時(shí),則切斷該源到被保護(hù)服務(wù)器的所有HTTP流量。本發(fā)明的發(fā)明人在研究此方案的過(guò)程中發(fā)現(xiàn),對(duì)于僵尸網(wǎng)絡(luò)等分散源的分布式拒絕服務(wù)攻擊(DD0S distributed Denialof Service),由于每個(gè)源的HTTP連接速率并不高,甚至低于正常用戶連接的速率,該方案通過(guò)連接數(shù)統(tǒng)計(jì)很難判斷出是否異常,如果閾值配置不當(dāng),很容易出現(xiàn)誤判。
二、HTTP重定向技術(shù) 防火墻在接收到某個(gè)源的HTTP GET請(qǐng)求報(bào)文之后,解析該報(bào)文提取出統(tǒng)一資源定位符(URL, Uniform Resource Locator)信息,附加上特定的key值生成新的URL信息,并使用新的URL構(gòu)造出HTTP重定向報(bào)文,發(fā)送到客戶端。正常的客戶端在接收到該HTTP重定向報(bào)文之后將重新使用新的URL進(jìn)行請(qǐng)求。由于HTTP規(guī)范的限制,該方法只適用于針對(duì)GET請(qǐng)求攻擊的防范,無(wú)法用于處理POST請(qǐng)求攻擊。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種能夠有效防范HTTP POST Flood攻擊的方法及相應(yīng)的防火
攤I回o —種防范HTTP POST泛洪攻擊的方法,包括接收客戶端發(fā)送的超文本傳輸協(xié)議HTTP請(qǐng)求,判斷所述HTTP請(qǐng)求的源地址是否在白名單中;若不在白名單中,則代替服務(wù)器與所述客戶端建立HTTP連接,接收客戶端發(fā)送的HTTPPOST請(qǐng)求,判斷所述POST請(qǐng)求是否攜帶有驗(yàn)證信息;若未攜帶驗(yàn)證信息,則向所述客戶端返回第一響應(yīng),所述第一響應(yīng)攜帶有與所述POST請(qǐng)求的源地址對(duì)應(yīng)的驗(yàn)證信息,用于使客戶端重新發(fā)起攜帶所述驗(yàn)證信息的POST請(qǐng)求;若攜帶有驗(yàn)證信息,則根據(jù)所述POST請(qǐng)求的源地址驗(yàn)證所攜帶的驗(yàn)證信息是否符合所述第一響應(yīng)攜帶的驗(yàn)證信息;若攜帶的驗(yàn)證信息正確,則將所述POST請(qǐng)求的源地址加入所述白名單,并向所述客戶端返回第二響應(yīng),用于使客戶端重新發(fā)起POST請(qǐng)求;若攜帶的驗(yàn)證信息不正確,則濾除所述POST請(qǐng)求。 —種防范HTTP POST泛洪攻擊的防火墻,包括接收模塊,用于接收客戶端發(fā)送的超文本傳輸協(xié)議HTTP請(qǐng)求;第一處理模塊,用于判斷所述接收模塊接收的HTTP請(qǐng)求的源地址是否在白名單中,若在白名單中,則令所述HTTP請(qǐng)求透過(guò)防火墻到達(dá)服務(wù)器,若不在白名單中,則代替服務(wù)器與所述客戶端建立HTTP連接,觸發(fā)第二處理模塊的操作;第二處理模塊,用于判斷所述接收模塊接收的所述客戶端發(fā)送的HTTP POST請(qǐng)求是否攜帶有驗(yàn)證信息,若未攜帶驗(yàn)證信息,則向所述客戶端返回第一響應(yīng),所述第一響應(yīng)攜帶與所述POST請(qǐng)求的源地址對(duì)應(yīng)的驗(yàn)證信息,用于使客戶端重新發(fā)起攜帶所述驗(yàn)證信息的POST請(qǐng)求,若攜帶有驗(yàn)證信息,則觸發(fā)第三處理模塊的操作;第三處理模塊,用于根據(jù)所述POST請(qǐng)求的源地址驗(yàn)證所攜帶的驗(yàn)證信息是否符合所述第一響應(yīng)攜帶的驗(yàn)證信息,若攜帶的驗(yàn)證信息正確,則將所述POST請(qǐng)求的源地址加入所述白名單,并向所述客戶端返回第二響應(yīng),用于使客戶端重新發(fā)起POST請(qǐng)求,若攜帶的驗(yàn)證信息不正確,則濾除所述POST請(qǐng)求。
本發(fā)明實(shí)施例中,對(duì)客戶端的首次HTTP POST請(qǐng)求響應(yīng)驗(yàn)證信息,客戶端再次請(qǐng)求時(shí)攜帶該驗(yàn)證信息,通過(guò)檢測(cè)驗(yàn)證信息的正確性即可有效防范HTTP POST Flood攻擊,有效保護(hù)Web服務(wù)器的安全。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的
附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)
域普通技術(shù)人員來(lái)講,還可以根據(jù)這些附圖獲得其他的附圖。 圖1是本發(fā)明實(shí)施例一防范HTTP POST泛洪攻擊的方法的流程示意圖; 圖2是本發(fā)明實(shí)施例二采用注入Cookie機(jī)制的信令流程示意圖; 圖3是本發(fā)明實(shí)施例四防火墻的邏輯結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。本領(lǐng)域普通技術(shù)人員基于本發(fā)明中的實(shí)施例獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 實(shí)施例一、一種防范HTTP POST泛洪攻擊的方法,如圖1所示,包括
Al、防火墻接收客戶端發(fā)送的超文本傳輸協(xié)議HTTP請(qǐng)求。 本發(fā)明實(shí)施例中,防火墻可以旁路部署或直路部署。在旁路部署方式中,上游網(wǎng)絡(luò)的HTTP流量被引流到防火墻上,由防火墻按照本發(fā)明實(shí)施例方法對(duì)HTTP攻擊進(jìn)行防范,清洗過(guò)濾攻擊流量后,將HTTP的正常訪問(wèn)流量回注到下游網(wǎng)絡(luò)。在直路部署方式中,防火墻
5直接對(duì)來(lái)自上游網(wǎng)絡(luò)的HTTP攻擊流量進(jìn)行防范,過(guò)濾掉攻擊流量后,令正常的HTTP流量通過(guò)防火墻進(jìn)入下游網(wǎng)絡(luò)。 防火墻可以持續(xù)使用本實(shí)施例方法對(duì)POST Flood攻擊進(jìn)行防范,優(yōu)選的,防火墻也可以在檢測(cè)到發(fā)生POST Flood攻擊后,才啟動(dòng)本發(fā)明實(shí)施例的下述防范流程。具體可采用已有的各種檢測(cè)方式,例如檢測(cè)服務(wù)器收到的HTTP POST請(qǐng)求是否超過(guò)預(yù)定閥值等。在未發(fā)生POST Flood攻擊的情況下,防火墻可以不必啟動(dòng)本發(fā)明實(shí)施例的下述防范流程。
A2、防火墻判斷收到的HTTP請(qǐng)求的源地址是否在白名單中,若在白名單中,則執(zhí)行步驟A3,若不在白名單中,則執(zhí)行步驟A4。 防火墻可維護(hù)一個(gè)"源地址監(jiān)控表",對(duì)應(yīng)于源地址保存其白名單標(biāo)記,當(dāng)然,可以理解的是也可以設(shè)置相應(yīng)的黑名單標(biāo)記等,本實(shí)施例只是針對(duì)采用白名單標(biāo)記的方法進(jìn)行描述。在啟動(dòng)防范流程的時(shí)候,根據(jù)源地址監(jiān)控表對(duì)收到的HTTP請(qǐng)求進(jìn)行分別處理。
A3、防火墻將收到的HTTP請(qǐng)求透過(guò)防火墻發(fā)送到服務(wù)器。 通過(guò)后續(xù)即將描述的驗(yàn)證過(guò)程可知,白名單中記錄的源地址為驗(yàn)證通過(guò)的源地址,可以認(rèn)為是真實(shí)瀏覽器用戶的網(wǎng)絡(luò)協(xié)議(IP, Internet Protocol)地址,其HTTP請(qǐng)求將直接發(fā)送給服務(wù)器,進(jìn)行正常的Web訪問(wèn)。 A4、防火墻代替服務(wù)器與客戶端建立HTTP連接,接收該客戶端發(fā)送的HTTP POST請(qǐng)求,繼續(xù)執(zhí)行步驟A5。 為保護(hù)服務(wù)器,防火墻代替服務(wù)器與地址不在白名單中的客戶端建立HTTP連接。優(yōu)選的,防火墻可通過(guò)與客戶端進(jìn)行三次握手,建立傳輸控制協(xié)議(TCP,TransmissionControl Protocol)連接。對(duì)于偽造源IP的攻擊,如果源IP不能與防火墻建立TCP三次握手,即可將其阻止在三次握手階段,提高攻擊防范的效率。當(dāng)然,對(duì)于僵尸網(wǎng)絡(luò)發(fā)起的攻擊,由于攻擊源一般都可以與防火墻建立TCP三次握手后再發(fā)送POST請(qǐng)求,則需要通過(guò)下述進(jìn)一步的處理來(lái)達(dá)到防范攻擊的目的。 POST是HTTP的標(biāo)準(zhǔn)協(xié)議動(dòng)詞,用于編碼和傳送變量名以及變量值。每個(gè)POST請(qǐng)求都由一系列HTTP請(qǐng)求頭組成,這些請(qǐng)求頭定義了客戶端從服務(wù)器請(qǐng)求了什么,而響應(yīng)則是由一系列HTTP應(yīng)答頭和應(yīng)答數(shù)據(jù)組成,如果請(qǐng)求成功則返回應(yīng)答。 A5、防火墻判斷接收的POST請(qǐng)求是否攜帶有驗(yàn)證信息,若未攜帶驗(yàn)證信息,則執(zhí)行步驟A6,若攜帶有驗(yàn)證信息,則執(zhí)行步驟A7。 客戶端發(fā)送的POST請(qǐng)求可采用各種方式攜帶驗(yàn)證信息,例如報(bào)文頭中的cookie,或報(bào)文內(nèi)容中攜帶的超文本置標(biāo)語(yǔ)言(HTML, HyperText MarkupLanguage)頁(yè)面等,只要能夠?yàn)榉阑饓λR(shí)別即可。為便于與現(xiàn)有規(guī)范兼容,可優(yōu)選使用符合現(xiàn)有規(guī)范要求的攜帶方式。 A6、防火墻向客戶端返回第一響應(yīng),該第一響應(yīng)攜帶與POST請(qǐng)求的源地址對(duì)應(yīng)的驗(yàn)證信息,用于使客戶端重新發(fā)起攜帶該驗(yàn)證信息的POST請(qǐng)求。 防火墻所返回的第一響應(yīng)同樣可采用各種方式,只要能將驗(yàn)證信息帶給客戶端并使得客戶端重新發(fā)起攜帶該驗(yàn)證信息的POST請(qǐng)求即可。為便于與現(xiàn)有規(guī)范兼容,可優(yōu)選使用現(xiàn)有規(guī)范已提供的響應(yīng)方式。 A7、防火墻根據(jù)收到的POST請(qǐng)求的源地址驗(yàn)證所攜帶的驗(yàn)證信息是否符合所述第一響應(yīng)攜帶的驗(yàn)證信息,若攜帶的驗(yàn)證信息正確,則執(zhí)行步驟A8,若攜帶的驗(yàn)證信息不正
6確,則執(zhí)行步驟A9。 由于正確的驗(yàn)證信息是由防火墻相應(yīng)于源地址生成并發(fā)送給客戶端的,因此,防火墻能夠根據(jù)源地址與驗(yàn)證信息的對(duì)應(yīng)關(guān)系確認(rèn)其是否正確。 A8、防火墻將收到的P0ST請(qǐng)求的源地址加入白名單,并向客戶端返回第二響應(yīng),用于使客戶端重新發(fā)起POST請(qǐng)求。 防火墻所返回的第二響應(yīng)同樣可采用各種方式,只要能使客戶端重新發(fā)起POST
請(qǐng)求即可。為便于與現(xiàn)有規(guī)范兼容,可優(yōu)選使用現(xiàn)有規(guī)范已提供的響應(yīng)方式。 客戶端第三次發(fā)起POST請(qǐng)求時(shí),源地址已加入到白名單,因此后續(xù)的HTTP請(qǐng)求將
直接透過(guò)防火墻到達(dá)服務(wù)器,與服務(wù)器建立連接并進(jìn)行正常的Web訪問(wèn)。 A9、防火墻濾除收到的P0ST請(qǐng)求。 上述防范過(guò)程中,通過(guò)對(duì)客戶端的POST請(qǐng)求進(jìn)行驗(yàn)證來(lái)過(guò)濾攻擊,優(yōu)選的,還可以進(jìn)一步記錄收到的POST請(qǐng)求的源地址的驗(yàn)證情況,例如,可以擴(kuò)展"源地址監(jiān)控表",除了源地址字段和黑/白名單標(biāo)記字段外,再增加驗(yàn)證次數(shù)以及時(shí)間戳字段,對(duì)某個(gè)源地址進(jìn)行驗(yàn)證次數(shù)(例如,返回第一響應(yīng)的次數(shù)與/或驗(yàn)證信息不正確的次數(shù))以及時(shí)間間隔進(jìn)行記錄,若單位時(shí)間內(nèi),與某個(gè)源地址對(duì)應(yīng)的驗(yàn)證次數(shù)超過(guò)設(shè)定閾值(或返回第一響應(yīng)的次數(shù)超過(guò)設(shè)定的閥值,同時(shí)驗(yàn)證信息不正確的次數(shù)超過(guò)設(shè)定的閥值;或者返回第一響應(yīng)的次數(shù)超過(guò)設(shè)定的閥值),則可認(rèn)為該源地址為攻擊源,切斷該源地址的HTTP流量,以提高攻擊防范的效率。 本實(shí)施例中,對(duì)客戶端的首次HTTP POST請(qǐng)求響應(yīng)驗(yàn)證信息,客戶端再次請(qǐng)求時(shí)攜帶該驗(yàn)證信息,通過(guò)檢測(cè)驗(yàn)證信息的正確性來(lái)防范HTTP POSTFlood攻擊,由于僵尸網(wǎng)絡(luò)等攻擊源一般都不能對(duì)防火墻響應(yīng)的報(bào)文進(jìn)行響應(yīng),通常無(wú)法再次發(fā)起攜帶驗(yàn)證信息的POST請(qǐng)求,即便偽造驗(yàn)證信息直接發(fā)起POST請(qǐng)求也無(wú)法通過(guò)驗(yàn)證,因此防火墻可以有效的切斷攻擊報(bào)文,以保護(hù)Web服務(wù)器不會(huì)受到攻擊。 實(shí)施例二、本實(shí)施例在實(shí)施例一的基礎(chǔ)上詳細(xì)描述了采用注入Cookie機(jī)制進(jìn)行防范的具體執(zhí)行過(guò)程,本實(shí)施例中,防火墻在檢測(cè)到發(fā)生POST Flood攻擊后,啟動(dòng)下述防范流程,其中客戶端與防火墻之間的信令流程如圖2所示,包括 B1、防火墻接收客戶端發(fā)送的HTTP請(qǐng)求,該客戶端的源IP不在白名單中,防火墻代替web服務(wù)器與客戶端進(jìn)行三次握手,TCP連接成功后寫入源IP監(jiān)控表,記錄源IP的驗(yàn)證次數(shù)和時(shí)間戳。 B2、防火墻接收該客戶端發(fā)送的HTTP POST請(qǐng)求,該請(qǐng)求攜帶請(qǐng)求的URL以及數(shù)據(jù)(data),由于是客戶端第一次發(fā)送POST請(qǐng)求,還沒(méi)有攜帶驗(yàn)證信息。 B3、防火墻向客戶端返回"307臨時(shí)重定向"作為第一響應(yīng),并在響應(yīng)報(bào)頭中附加上
由源IP生成的cookie。 一個(gè)示例的307響應(yīng)報(bào)文描述如下 HTTP/1. 1307 Temporary Redirect Connection :Close Pragma :no_cache set-cookie :USGSESSID = Cookie值 cache—control :no—cache Content—Type :text/html ;charset = UTF—8 ;
Content-Length :0 ; B4、防火墻與客戶端之間關(guān)閉連接,第一次交互結(jié)束。 B5、如果客戶端是真實(shí)的瀏覽器而不是攻擊源,在收到"307臨時(shí)重定向"后,防火 墻生成的cookie就會(huì)寫入到瀏覽器中,用戶可通過(guò)對(duì)307響應(yīng)頁(yè)面的手動(dòng)確認(rèn),再次發(fā)送 POST請(qǐng)求,由于此時(shí)客戶端的源IP仍不在白名單中,還是由防火墻代替web服務(wù)器與客戶 端進(jìn)行三次握手。 B6、防火墻收到帶有cookie的POST請(qǐng)求。 B7、防火墻驗(yàn)證Cookie是否正確,如果正確則將源IP加入到白名單里(例如在 "源IP監(jiān)控表"中將該源IP標(biāo)記為"白")。 B8、防火墻向客戶端返回"408請(qǐng)求超時(shí)"響應(yīng)作為第二響應(yīng)。 一個(gè)示例的408響
應(yīng)報(bào)文描述如下 HTTP/1. 1408 Timeout Connection :Close Pragma :no_cache cache—control :no—cache Content-Type :text/html ;charset = UTF-8 ; Content-Length :0 ; 當(dāng)然,防火墻還會(huì)在源IP監(jiān)控表中記錄該源IP的cookie驗(yàn)證次數(shù)和時(shí)間間隔, 如果單位時(shí)間內(nèi)的驗(yàn)證次數(shù)超過(guò)設(shè)定閾值,則認(rèn)為此IP為攻擊源,可切斷此攻擊源的HTTP流量。 B9、防火墻與客戶端之間關(guān)閉連接,第二次交互結(jié)束。 B10、真實(shí)的客戶端瀏覽器在收到"408請(qǐng)求超時(shí)"后,會(huì)自動(dòng)再次發(fā)送POST請(qǐng)求, 此時(shí)客戶端源IP已加入到白名單,該請(qǐng)求以及后續(xù)的HTTP請(qǐng)求將直接透過(guò)防火墻到達(dá)服 務(wù)器,客戶端可以與服務(wù)器建立HTTP連接以進(jìn)行正常的Web訪問(wèn)。 本實(shí)施例采用防火墻對(duì)客戶端的瀏覽器注入Cookie機(jī)制來(lái)攜帶防火墻生成的驗(yàn) 證性信息,客戶端再次進(jìn)行POST請(qǐng)求時(shí)會(huì)在HTTP報(bào)頭(Header)上附加cookie,防火墻通 過(guò)檢測(cè)Cookie的真實(shí)性實(shí)時(shí)進(jìn)行HTTP POST Flood的攻擊防范,有效保護(hù)Web服務(wù)器的安 全。 實(shí)施例三、本實(shí)施例給出實(shí)施例一方法采用HTML頁(yè)面表單(Form)自動(dòng)提交技術(shù) 的一個(gè)實(shí)例。 本實(shí)施例的具體執(zhí)行過(guò)程與實(shí)施例二類似,區(qū)別之處在于 防火墻在首次響應(yīng)客戶端發(fā)送的HTTP POST請(qǐng)求時(shí),使用"200成功"作為第一響 應(yīng)(對(duì)應(yīng)于步驟B3),通過(guò)在200響應(yīng)的消息部分中的一個(gè)簡(jiǎn)易的表單頁(yè)面來(lái)攜帶驗(yàn)證信 息。 具體的,該表單頁(yè)面可以包括一個(gè)文本框和一個(gè)自動(dòng)提交按鈕,該文本框的內(nèi)容 即為用作驗(yàn)證信息的隨機(jī)驗(yàn)證碼,而自動(dòng)提交按鈕則用于使客戶端重新發(fā)起攜帶該文本框 的POST請(qǐng)求,該自動(dòng)提交按鈕可利用HTML的onload方法與Javascript腳本語(yǔ)言使得客 戶端瀏覽器收到此響應(yīng)后自動(dòng)進(jìn)行POST請(qǐng)求。 相應(yīng)的,客戶端在收到這個(gè)"200成功"響應(yīng)后,基于HTML頁(yè)面表單(Form)自動(dòng)提
8交技術(shù),會(huì)自動(dòng)使用原來(lái)的URL重新進(jìn)行POST請(qǐng)求(對(duì)應(yīng)于步驟B6),此時(shí)表單中的隨機(jī)驗(yàn) 證碼也會(huì)被攜帶發(fā)送給防火墻,防火墻即可將其作為驗(yàn)證信息進(jìn)行驗(yàn)證(對(duì)應(yīng)于步驟B7)。
本實(shí)施例采用HTML頁(yè)面表單自動(dòng)提交技術(shù)來(lái)防范HTTP POST Flood攻擊,能夠在 客戶端瀏覽器不支持cookie技術(shù)的情況下,既不影響正??蛻舻腤eb應(yīng)用,又有效保護(hù)Web 服務(wù)器的安全。 下面對(duì)本發(fā)明實(shí)施例涉及的裝置進(jìn)行說(shuō)明。 實(shí)施例四、一種防范HTTP POST泛洪攻擊的防火墻,可用于執(zhí)行實(shí)施例一中描述的 方法,如圖3所示,包括 接收模塊IOI,用于接收客戶端發(fā)送的超文本傳輸協(xié)議HTTP請(qǐng)求; 第一處理模塊102,用于判斷接收模塊101接收的HTTP請(qǐng)求的源地址是否在白名
單中,若在白名單中,則令該HTTP請(qǐng)求透過(guò)防火墻到達(dá)服務(wù)器,若不在白名單中,則代替服
務(wù)器與客戶端建立HTTP連接,觸發(fā)第二處理模塊103的操作; 第二處理模塊103,用于判斷接收模塊101接收的客戶端發(fā)送的HTTPP0ST請(qǐng)求 是否攜帶有驗(yàn)證信息,若未攜帶驗(yàn)證信息,則向客戶端返回第一響應(yīng),所稱第一響應(yīng)攜帶與 POST請(qǐng)求的源地址對(duì)應(yīng)的驗(yàn)證信息,用于使客戶端重新發(fā)起攜帶該驗(yàn)證信息的POST請(qǐng)求, 若攜帶有驗(yàn)證信息,則觸發(fā)第三處理模塊104的操作; 第三處理模塊104,用于根據(jù)POST請(qǐng)求的源地址驗(yàn)證所攜帶的驗(yàn)證信息是否符合 所述第一響應(yīng)攜帶的驗(yàn)證信息,若攜帶的驗(yàn)證信息正確,則將該P(yáng)OST請(qǐng)求的源地址加入白 名單,并向客戶端返回第二響應(yīng),用于使客戶端重新發(fā)起POST請(qǐng)求,若攜帶的驗(yàn)證信息不 正確,則濾除該P(yáng)OST請(qǐng)求。 本發(fā)明實(shí)施例中,對(duì)客戶端的首次HTTP POST請(qǐng)求響應(yīng)驗(yàn)證信息,客戶端再次請(qǐng)求 時(shí)攜帶該驗(yàn)證信息,通過(guò)檢測(cè)驗(yàn)證信息的正確性即可有效防范HTTP POST Flood攻擊,有效 保護(hù)Web服務(wù)器的安全。 優(yōu)選的,相應(yīng)于實(shí)施例一中的描述,本實(shí)施例防火墻可進(jìn)一步包括 記錄模塊105 (在圖3中以虛線框示出),用于記錄POST請(qǐng)求的源地址的驗(yàn)證情
況,若單位時(shí)間內(nèi),與某個(gè)源地址對(duì)應(yīng)的返回第一響應(yīng)的次數(shù)與/或驗(yàn)證信息不正確的次
數(shù)超過(guò)設(shè)定閾值,則切斷該源地址的HTTP流量。 優(yōu)選的,相應(yīng)于實(shí)施例一中的描述,第一處理模塊102代替服務(wù)器與客戶端建立
HTTP連接,是通過(guò)與客戶端進(jìn)行三次握手,建立傳輸控制協(xié)議TCP連接。 優(yōu)選的,相應(yīng)于實(shí)施例一中的描述,本實(shí)施例防火墻可進(jìn)一步包括控制模塊
106 (在圖3中以虛線框示出),用于在檢測(cè)到發(fā)生HTTP POST泛洪攻擊后,觸發(fā)第一處理模
塊102的判斷操作。 與實(shí)施例一中的描述相應(yīng)的,本實(shí)施例防火墻可以旁路部署或直路部署。在旁路 部署的情況下,當(dāng)啟用防火墻進(jìn)行HTTP流量過(guò)濾時(shí),上游網(wǎng)絡(luò)的流量被引流到防火墻經(jīng)過(guò) 過(guò)濾后再回注到下游網(wǎng)絡(luò),在未啟用防火墻時(shí),則流量不必引流到防火墻,直接從上游網(wǎng)絡(luò) 發(fā)送到下游網(wǎng)絡(luò)。在直路部署情況下,上游網(wǎng)絡(luò)流量直接經(jīng)過(guò)防火墻到達(dá)下游網(wǎng)絡(luò),此時(shí)防 火墻支持路由模式和透明模式,路由模式下,防火墻可以對(duì)流經(jīng)的HTTP流量進(jìn)行攻擊清洗 過(guò)濾,透明模式下,防火墻令流量直接穿過(guò)而不進(jìn)行處理。本實(shí)施例防火墻對(duì)客戶端的首 次HTTP POST請(qǐng)求響應(yīng)驗(yàn)證信息,客戶端再次請(qǐng)求時(shí)攜帶該驗(yàn)證信息,通過(guò)檢測(cè)驗(yàn)證信息的正確性來(lái)防范HTTP POST Flood攻擊,由于僵尸網(wǎng)絡(luò)等攻擊源一般都不能對(duì)防火墻響應(yīng)的 報(bào)文進(jìn)行響應(yīng),通常無(wú)法再次發(fā)起攜帶驗(yàn)證信息的POST請(qǐng)求,即便偽造驗(yàn)證信息直接發(fā)起 POST請(qǐng)求也無(wú)法通過(guò)驗(yàn)證,因此防火墻可以有效的切斷攻擊報(bào)文,以保護(hù)Web服務(wù)器不會(huì) 受到攻擊。 本領(lǐng)域普通技術(shù)人員可以理解,上述實(shí)施例中各種方法的全部或部分步驟可以通 過(guò)程序來(lái)指令相關(guān)硬件完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以 包括只讀存儲(chǔ)器、隨機(jī)存儲(chǔ)器、磁盤或光盤等。 以上對(duì)本發(fā)明實(shí)施例所提供的防范HTTP POST泛洪攻擊的方法及防火墻進(jìn)行了詳 細(xì)介紹,本文中應(yīng)用了具體實(shí)施例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的 說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依 據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容 不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
一種防范HTTP POST泛洪攻擊的方法,其特征在于,包括接收客戶端發(fā)送的超文本傳輸協(xié)議HTTP請(qǐng)求,判斷所述HTTP請(qǐng)求的源地址是否在白名單中;若不在白名單中,則代替服務(wù)器與所述客戶端建立HTTP連接,接收客戶端發(fā)送的HTTP POST請(qǐng)求,判斷所述POST請(qǐng)求是否攜帶有驗(yàn)證信息;若未攜帶驗(yàn)證信息,則向所述客戶端返回第一響應(yīng),所述第一響應(yīng)攜帶有與所述POST請(qǐng)求的源地址對(duì)應(yīng)的驗(yàn)證信息,用于使客戶端重新發(fā)起攜帶所述驗(yàn)證信息的POST請(qǐng)求;若攜帶有驗(yàn)證信息,則根據(jù)所述POST請(qǐng)求的源地址驗(yàn)證所攜帶的驗(yàn)證信息是否符合所述第一響應(yīng)攜帶的驗(yàn)證信息;若攜帶的驗(yàn)證信息正確,則將所述POST請(qǐng)求的源地址加入所述白名單,并向所述客戶端返回第二響應(yīng),用于使客戶端重新發(fā)起POST請(qǐng)求;若攜帶的驗(yàn)證信息不正確,則濾除所述POST請(qǐng)求。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括記錄所述POST請(qǐng)求的源地址的驗(yàn)證情況,若單位時(shí)間內(nèi),與某個(gè)源地址對(duì)應(yīng)的返回第一響應(yīng)的次數(shù)和驗(yàn)證信息不正確的次數(shù)均超過(guò)設(shè)定閾值,或者,與某個(gè)源地址對(duì)應(yīng)的返回第一響應(yīng)的次數(shù)和驗(yàn)證信息不正確的次數(shù)兩者任一超過(guò)設(shè)定閾值,則切斷該源地址的HTTP流量。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于代替服務(wù)器與客戶端建立HTTP連接包括通過(guò)與客戶端進(jìn)行三次握手建立傳輸控制協(xié)議TCP連接。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述接收客戶端發(fā)送的超文本傳輸協(xié)議HTTP請(qǐng)求之后,還包括檢測(cè)是否發(fā)生HTTP POST泛洪攻擊,若檢測(cè)到發(fā)生HTTP POST泛洪攻擊,執(zhí)行所述判斷步驟。
5. 根據(jù)權(quán)利要求1至4任意一項(xiàng)所述的方法,其特征在于所述第一響應(yīng)包括臨時(shí)重定向響應(yīng)或成功響應(yīng),所述驗(yàn)證信息包括攜帶在臨時(shí)重定向響應(yīng)報(bào)頭中的小型文字檔案cookie,所述成功響應(yīng)的消息部分?jǐn)y帶用作所述驗(yàn)證信息的驗(yàn)證碼和提交按鈕,所述提交按鈕用于使客戶端重新發(fā)起攜帶所述驗(yàn)證碼的POST請(qǐng)求;所述第二響應(yīng)包括請(qǐng)求超時(shí)響應(yīng)。
6. —種防范HTTP POST泛洪攻擊的防火墻,其特征在于,包括接收模塊,用于接收客戶端發(fā)送的超文本傳輸協(xié)議HTTP請(qǐng)求;第一處理模塊,用于判斷所述接收模塊接收的HTTP請(qǐng)求的源地址是否在白名單中,若在白名單中,則令所述HTTP請(qǐng)求透過(guò)防火墻到達(dá)服務(wù)器,若不在白名單中,則代替服務(wù)器與所述客戶端建立HTTP連接,觸發(fā)第二處理模塊的操作;第二處理模塊,用于判斷所述接收模塊接收的所述客戶端發(fā)送的HTTPPOST請(qǐng)求是否攜帶有驗(yàn)證信息,若未攜帶驗(yàn)證信息,則向所述客戶端返回第一響應(yīng),所述第一響應(yīng)攜帶與所述POST請(qǐng)求的源地址對(duì)應(yīng)的驗(yàn)證信息,用于使客戶端重新發(fā)起攜帶所述驗(yàn)證信息的POST請(qǐng)求,若攜帶有驗(yàn)證信息,則觸發(fā)第三處理模塊的操作;第三處理模塊,用于根據(jù)所述POST請(qǐng)求的源地址驗(yàn)證所攜帶的驗(yàn)證信息是否符合所述第一響應(yīng)攜帶的驗(yàn)證信息,若攜帶的驗(yàn)證信息正確,則將所述POST請(qǐng)求的源地址加入所述白名單,并向所述客戶端返回第二響應(yīng),用于使客戶端重新發(fā)起POST請(qǐng)求,若攜帶的驗(yàn)證信息不正確,則濾除所述POST請(qǐng)求。
7. 根據(jù)權(quán)利要求6所述的防火墻,其特征在于,還包括記錄模塊,用于記錄所述POST請(qǐng)求的源地址的驗(yàn)證情況,若單位時(shí)間內(nèi),與某個(gè)源地址對(duì)應(yīng)的返回第一響應(yīng)的次數(shù)與/或驗(yàn)證信息不正確的次數(shù)超過(guò)設(shè)定閾值,則切斷該源地址的HTTP流量。
8. 根據(jù)權(quán)利要求6所述的防火墻,其特征在于所述第一處理模塊代替服務(wù)器與客戶端建立HTTP連接,是通過(guò)與客戶端進(jìn)行三次握手,建立傳輸控制協(xié)議TCP連接。
9. 根據(jù)權(quán)利要求6所述的防火墻,其特征在于,還包括控制模塊,用于在檢測(cè)到發(fā)生HTTP POST泛洪攻擊后,觸發(fā)第一處理模塊的判斷操作。
10. 根據(jù)權(quán)利要求6至9任意一項(xiàng)所述的防火墻,其特征在于所述第一響應(yīng)包括臨時(shí)重定向響應(yīng),所述驗(yàn)證信息包括攜帶在臨時(shí)重定向響應(yīng)報(bào)頭中的小型文字檔案cookie,或所述第一響應(yīng)為成功響應(yīng),所述成功響應(yīng)的消息部分?jǐn)y帶有用作所述驗(yàn)證信息的驗(yàn)證碼和提交按鈕,所述提交按鈕用于使客戶端重新發(fā)起攜帶所述驗(yàn)證碼的POST請(qǐng)求;所述第二響應(yīng)包括請(qǐng)求超時(shí)響應(yīng)。
全文摘要
本發(fā)明實(shí)施例公開了一種防范HTTP POST泛洪攻擊的方法及防火墻。本發(fā)明實(shí)施例對(duì)客戶端的首次超文本傳輸協(xié)議HTTP POST請(qǐng)求響應(yīng)驗(yàn)證信息,客戶端再次請(qǐng)求時(shí)攜帶該驗(yàn)證信息,通過(guò)檢測(cè)驗(yàn)證信息的正確性即可有效防范HTTP POST泛洪攻擊,有效保護(hù)網(wǎng)絡(luò)服務(wù)器的安全。
文檔編號(hào)H04L29/08GK101789947SQ201010110948
公開日2010年7月28日 申請(qǐng)日期2010年2月21日 優(yōu)先權(quán)日2010年2月21日
發(fā)明者吳波, 毛世峰, 肖洪亮 申請(qǐng)人:成都市華為賽門鐵克科技有限公司