專利名稱:防范cc攻擊的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種防范CC(Challenge Collapsar,挑戰(zhàn)黑洞)攻擊的方法和設(shè)備。
背景技術(shù):
隨著計算機網(wǎng)絡(luò)尤其是Internet(因特網(wǎng))在全球的普及和深入,計算機網(wǎng)絡(luò)技術(shù)不斷地在各行各業(yè)中得到推廣和普及。然而,網(wǎng)絡(luò)應(yīng)用的快速發(fā)展以及網(wǎng)絡(luò)規(guī)模的急劇膨脹,使得網(wǎng)絡(luò)中的安全漏洞無處不在,網(wǎng)絡(luò)攻擊正是利用這些存在的漏洞和安全缺陷對系統(tǒng)和資源進行攻擊。近年來流行的CC攻擊就是其中的一種。
CC攻擊是一種基于頁面的DDoS(Distributed Denial of Service,分布式拒絕服務(wù))攻擊。CC攻擊的原理如圖1所示,攻擊者通過一臺連接到Internet的終端,利用網(wǎng)絡(luò)中的多臺代理服務(wù)器對其實際身份進行隱藏,向目標服務(wù)器發(fā)送大量需要較長計算時間的URL(Uniform Resource Locator,統(tǒng)一資源定位系統(tǒng))請求,如數(shù)據(jù)庫查詢等,導(dǎo)致目標服務(wù)器進行大量計算,很快達到自身的處理能力極限而形成拒絕所有用戶終端的服務(wù)請求,而攻擊者一旦發(fā)送請求給代理后就主動斷開連接,因為代理并不因為用戶終端連接的斷開就不去連接目標服務(wù)器,因此,攻擊機的資源消耗相對很小。
由于只需要一臺主機就可以發(fā)起CC攻擊,相對傳統(tǒng)的DDoS攻擊,其發(fā)起攻擊的難度減小了很多。傳統(tǒng)的DDoS攻擊需要聚集大量的主機才能發(fā)起一次有規(guī)模的DDoS攻擊,但CC攻擊與傳統(tǒng)的DDoS攻擊不同。CC攻擊并不是以大量的數(shù)據(jù)流量對服務(wù)器實施拒絕服務(wù)攻擊,而是針對耗用系統(tǒng)資源高的頁面,使用不同的身份,進行頻繁的訪問,最終導(dǎo)致服務(wù)器資源耗盡,無法對外提供服務(wù)。只要在任何一用戶終端上使用已有的CC攻擊軟件,并使用足夠數(shù)量的代理服務(wù)器,就能在任何時間對任何目標發(fā)起大規(guī)模的分布式拒絕服務(wù)攻擊,導(dǎo)致目標服務(wù)器的服務(wù)處于癱瘓狀態(tài)。
由于攻擊原理的限制,CC攻擊的目標服務(wù)器大多為需要進行大量數(shù)據(jù)庫查詢的服務(wù)器,如游戲服務(wù)器、大型論壇,信息查詢系統(tǒng)等。這些服務(wù)器輻射面廣,實時性強,且大多數(shù)都與服務(wù)提供商的經(jīng)濟收入直接掛鉤,所以一旦受到CC攻擊,將會對服務(wù)提供商造成巨大的損失。
目前,一般采用IDS(Intrusion Detection System,入侵檢測系統(tǒng))或者IPS(Intrusion Prevention System,入侵防護系統(tǒng))以瞬時流量作為指標,判斷數(shù)據(jù)流是否為DDoS攻擊,這種判斷方法在CC攻擊面前顯得無能為力。特別是在網(wǎng)絡(luò)中處于旁路的IDS,即使檢測出CC攻擊,也無法與防火墻聯(lián)動,進行有效的防御,因為防火墻無法基于四層以上內(nèi)容進行數(shù)據(jù)包的截斷,而需要防御CC攻擊,需要對數(shù)據(jù)包四層以上內(nèi)容進行分析,這種方法對于IDS或者IPS來說,要求具有極高的處理性能。
另外一種技術(shù)方案為通過限制代理的訪問對CC攻擊進行預(yù)防,因為一般的代理都會在HTTP(Hyper Text Transport Protocol,超文本傳輸協(xié)議)報文頭中攜帶X_FORWARDED_FOR字段。但這種方法具有很大的局限性,首先,有些代理請求中是不帶該字段的,即并不是所有的代理服務(wù)器都會在HTTP報文頭中攜帶X_FORWARDED_FOR字段;另外,有些上網(wǎng)用戶確實需要代理才能連接目標服務(wù)器,這是一種客觀存在的現(xiàn)象,如果采用限制代理訪問的方式,就拒絕了這類合法用戶。
發(fā)明內(nèi)容
本發(fā)明提供一種防范CC攻擊的方法和設(shè)備,以對網(wǎng)絡(luò)中的目標服務(wù)器進行有效的保護,使其免于受到CC攻擊。
為達到上述目的,本發(fā)明提供一種防范CC攻擊的方法,包括如下步驟安全設(shè)備接收到向被保護設(shè)備發(fā)送的請求報文時,向所述請求報文的發(fā)送方設(shè)備發(fā)送重定向報文;所述安全設(shè)備接收所述發(fā)送方設(shè)備根據(jù)所述重定向報文發(fā)送的響應(yīng)報文,并根據(jù)所述響應(yīng)報文確定所述請求報文是否為攻擊報文。
其中,所述重定向報文中攜帶重定向碼,所述重定向碼為固定碼或動態(tài)生成碼。
其中,所述安全設(shè)備在預(yù)定的時間內(nèi)未收到所述響應(yīng)報文時,確定所述請求報文為攻擊報文,并丟棄所述請求報文。
其中,所述安全設(shè)備接收到所述響應(yīng)報文,且所述響應(yīng)報文攜帶的重定向碼與所述重定向報文中的重定向碼不一致時,確定所述請求報文為攻擊報文,并丟棄所述請求報文。
其中,所述安全設(shè)備接收到所述響應(yīng)報文,且所述響應(yīng)報文攜帶的重定向碼與所述重定向報文中的重定向碼一致時,確定所述請求報文不是攻擊報文,并將所述請求報文發(fā)送至所述被保護設(shè)備。
其中,所述安全設(shè)備向所述被保護設(shè)備發(fā)送所述請求報文后,還包括所述安全設(shè)備向所述發(fā)送方設(shè)備發(fā)送所述被保護設(shè)備對所述請求報文的響應(yīng)。
其中,所述請求報文的發(fā)送方設(shè)備包括直接與所述安全設(shè)備連接的用戶終端、或通過代理服務(wù)設(shè)備與所述安全設(shè)備連接的用戶終端。
其中,所述請求報文的發(fā)送方設(shè)備為通過代理服務(wù)設(shè)備與所述安全設(shè)備連接的用戶終端時,所述請求報文的發(fā)送流程為所述代理服務(wù)設(shè)備向所述安全設(shè)備轉(zhuǎn)發(fā)所述用戶終端發(fā)送的所述請求報文;所述重定向報文的發(fā)送流程為所述代理服務(wù)設(shè)備向所述用戶終端轉(zhuǎn)發(fā)所述安全設(shè)備發(fā)送的所述重定向報文;所述響應(yīng)報文的發(fā)送流程為所述代理服務(wù)設(shè)備向所述安全設(shè)備轉(zhuǎn)發(fā)所述用戶終端根據(jù)所述重定向報文發(fā)送的響應(yīng)報文。
其中,所述重定向碼的動態(tài)生成方法為所述安全設(shè)備根據(jù)所述請求報文請求的內(nèi)容、與所述請求報文的發(fā)送方設(shè)備的網(wǎng)絡(luò)連接參數(shù)生成所述重定向碼;所述網(wǎng)絡(luò)連接參數(shù)包括源IP、目的IP、源端口、目的端口、協(xié)議版本號中的一種或多種。
本發(fā)明還提供一種安全設(shè)備,包括
重定向報文生成模塊,用于在接收到發(fā)送方設(shè)備發(fā)送的請求報文時,生成重定向報文;判斷模塊,用于在所述發(fā)送方設(shè)備根據(jù)所述重定向報文發(fā)送響應(yīng)報文時,根據(jù)所述響應(yīng)報文確定所述請求報文是否為攻擊報文。
其中,安全設(shè)備還包括重定向碼生成模塊,用于生成所述重定向報文生成模塊所需的重定向碼;接收模塊,用于接收發(fā)送方設(shè)備發(fā)送的所述請求報文并轉(zhuǎn)發(fā)給所述重定向報文生成模塊,接收發(fā)送方設(shè)備發(fā)送的所述響應(yīng)報文并轉(zhuǎn)發(fā)給所述判斷模塊;發(fā)送模塊,用于向發(fā)送所述請求報文的發(fā)送方設(shè)備發(fā)送所述重定向報文生成模塊生成的重定向報文,并在所述判斷模塊判斷所述請求報文不是攻擊報文時,將所述請求報文轉(zhuǎn)發(fā)給被保護設(shè)備。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點通過使用本發(fā)明,依據(jù)對響應(yīng)報文的校驗,準確地發(fā)現(xiàn)企圖對目標服務(wù)器進行CC攻擊的用戶終端,可以有效防范CC攻擊,并且不會影響正常用戶終端的訪問。
圖1是現(xiàn)有技術(shù)中CC攻擊的原理示意圖;圖2是本發(fā)明的實施例一中防范CC攻擊的方法的流程圖;圖3是本發(fā)明的實施例二中防范CC攻擊的方法的流程圖;圖4是本發(fā)明的實施例三中防范CC攻擊的方法的流程圖;圖5是本發(fā)明的實施例四中防范CC攻擊的方法的流程圖;圖6是本發(fā)明的實施例五中防范CC攻擊的方法的流程圖;圖7是本發(fā)明的實施例七中安全設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明的核心思想在于,在被保護設(shè)備前設(shè)置安全設(shè)備,通過HTTP重定向技術(shù),在接收到發(fā)送方設(shè)備向被保護設(shè)備發(fā)送的請求報文時,生成重定向報文并向該發(fā)送方設(shè)備發(fā)送;安全設(shè)備在接收到發(fā)送方設(shè)備根據(jù)重定向報文發(fā)送的響應(yīng)報文時,通過對該響應(yīng)報文的校驗,確定發(fā)送方設(shè)備發(fā)送的請求報文是否為CC攻擊報文,從而達到防范CC攻擊的目的。
本發(fā)明的實施例一中,一種防范CC攻擊的方法如圖2所示,包括如下步驟步驟s101、安全設(shè)備接收到發(fā)送方設(shè)備請求連接被保護設(shè)備的請求報文。
步驟s102、安全設(shè)備向請求報文的發(fā)送方設(shè)備發(fā)送重定向報文。
步驟s103、安全設(shè)備接收發(fā)送方設(shè)備根據(jù)重定向報文發(fā)送的響應(yīng)報文。
步驟s104、安全設(shè)備根據(jù)該響應(yīng)報文確定請求報文是否為攻擊報文。
上述流程中,安全設(shè)備確定請求報文是否為攻擊報文的方法可以通過設(shè)置重定向碼的方式實現(xiàn),即在發(fā)送重定向報文時,在重定向報文中攜帶重定向碼,并對發(fā)送方設(shè)備發(fā)送的響應(yīng)報文進行校驗,如果發(fā)送方設(shè)備未發(fā)送響應(yīng)報文或響應(yīng)報文中的重定向碼不正確,則認為該發(fā)送方設(shè)備發(fā)送的請求報文為CC攻擊報文。本發(fā)明的實施例二中,一種通過校驗重定向碼防范CC攻擊的方法如圖3所示,包括如下步驟步驟s201、安全設(shè)備接收到發(fā)送方設(shè)備請求連接被保護設(shè)備的請求報文。
步驟s202、安全設(shè)備向請求報文的發(fā)送方設(shè)備發(fā)送重定向報文,其中攜帶重定向碼。
步驟s203、安全設(shè)備判斷在預(yù)定的時間內(nèi)是否接收到該發(fā)送方設(shè)備發(fā)送的響應(yīng)報文,接收到時進行步驟s204,否則進行步驟s206。
步驟s204、安全設(shè)備判斷接收到的響應(yīng)報文攜帶的重定向碼是否與步驟s202發(fā)送的重定向報文中攜帶的重定向碼一致,一致時進行步驟s205,否則進行步驟s206。
步驟s205、安全設(shè)備向被保護設(shè)備發(fā)送步驟s201中發(fā)送方設(shè)備發(fā)送的請求報文并結(jié)束。
步驟s206、確定該發(fā)送方設(shè)備發(fā)送的請求報文為攻擊報文,丟棄該請求報文并結(jié)束。
以下實施例分別具體描述發(fā)送方設(shè)備為不同的設(shè)備時,防范CC攻擊的具體方法。其中,均以安全設(shè)備為防火墻設(shè)備、被保護設(shè)備為受保護的服務(wù)器為例,說明本發(fā)明的實施方式。
本發(fā)明的實施例三中,以發(fā)送方設(shè)備為通過代理服務(wù)器連接目標服務(wù)器的正常用戶終端為例,一種防范CC攻擊的方法如圖4所示,包括以下步驟步驟s301、用戶終端向代理服務(wù)器發(fā)起HTTP Get請求,請求訪問目標地址。
對于用戶終端初次發(fā)送的HTTP Get請求報文,與本發(fā)明實施例有關(guān)的HTTP Get請求報文頭內(nèi)容包括GET項,內(nèi)容為“/somedir/page.html HTTP/1.1”,表明瀏覽器在請求對象/somedir/page.html,瀏覽器實現(xiàn)的是HTTP/1.1版本;Host項,內(nèi)容為“www.h3c.com”,表明存放請求對象“/somedir/page.html”的主機為“www.h3c.com”。
GET項和Host項描述了與本步驟中目標地址有關(guān)的內(nèi)容,即GET請求對象為“/somedir/page.html”,以及該請求對象所在的主機為“www.h3c.com”。
步驟s302、代理服務(wù)器接收到用戶終端的Get請求之后,對HTTP報文頭進行解析,直接訪問報文頭中GET字段指定的URL。
該步驟中,代理服務(wù)器轉(zhuǎn)發(fā)到防火墻設(shè)備的HTTP Get請求報文也是如上所描述的報文形式。
步驟s303、防火墻設(shè)備接收到代理服務(wù)器的初次Get請求之后,不立即轉(zhuǎn)發(fā)到后端受保護的服務(wù)器,而是向代理服務(wù)器回應(yīng)一個HTTP重定向報文,報文的響應(yīng)碼為302,表示所請求的資源臨時位于另外的URL(有關(guān)HTTP響應(yīng)碼的定義,請參考《(TCP(Transfer Control Protocol,傳輸控制協(xié)議)-IP詳解卷3TCP事務(wù)協(xié)議、HTTP、NNTP(Network News Transport Protocol,網(wǎng)絡(luò)新聞傳輸協(xié)議)、UNIX域協(xié)議》第13章)。與本發(fā)明實施例有關(guān)的HTTP重定向報文的內(nèi)容包括HTTP響應(yīng)碼項,內(nèi)容為“HTTP 1.1 302 Found”,響應(yīng)碼302表示所請求的資源臨時位于另外的URL;Location項,內(nèi)容為“http//www.h3c.com/A”,表明重定向后的URL,其中重定向碼A也攜帶在URL中。
所謂另外的URL,即上述HTTP重定向報文中,Location項所描述的“http//www.h3c.com/A”,其中A為重定向碼,可以為一固定的字符串,將重定向后的URL與之前用戶終端通過代理服務(wù)器請求的URL加以區(qū)別。
步驟s304、代理服務(wù)器將接收到的HTTP重定向報文發(fā)送到用戶終端。
步驟s305、用戶終端根據(jù)接收到的HTTP重定向報文,自動向代理服務(wù)器發(fā)送響應(yīng)報文,攜帶新的HTTP Get請求,請求連接重定向后的URL。
該步驟中,與本發(fā)明實施例有關(guān)的用戶終端發(fā)送的響應(yīng)報文頭內(nèi)容包括GET項,內(nèi)容為“/somedir/page.html HTTP/1.1”,表明瀏覽器在請求對象/somedir/page.html,瀏覽器實現(xiàn)的是HTTP/1.1版本;Host項,內(nèi)容為“www.h3c.com/A”,重定向碼A攜帶在新的HTTP Get請求的URL中,表明存放請求對象“/somedir/page.html”的主機為“www.h3c.com/A”。
其中,該報文的Host項攜帶了重定向的URL“http//www.h3c.com/A”,其中A為重定向碼。
步驟s306、代理服務(wù)器接收到用戶終端的響應(yīng)報文之后,對HTTP報文頭進行解析,直接訪問報文頭中GET字段指定的URL,這個URL就是步驟s305中描述的重定向后的URL“http//www.h3c.com/A”,其中A為重定向碼。
步驟s307、防火墻設(shè)備接收到代理服務(wù)器的響應(yīng)報文之后,首先校驗新的HTTP Get請求中攜帶的重定向碼與步驟s303中向代理服務(wù)器發(fā)送的HTTP重定向報文中攜帶的重定向碼是否一致,如果不一致則認為該連接請求不合法,直接丟棄請求報文,并返回一個響應(yīng)碼為401的HTTP應(yīng)答報文,該應(yīng)答報文內(nèi)容為“Not Found,服務(wù)器上沒有所請求的對象”。否則,讀取還原步驟s301中用戶終端發(fā)送的初始請求報文,向后端受保護服務(wù)器請求內(nèi)容“/somedir/page.html”。防火墻設(shè)備向后端受保護的服務(wù)器發(fā)送的HTTP Get請求中,與本發(fā)明實施例有關(guān)的HTTP Get請求報文頭內(nèi)容如下GET項,內(nèi)容為“/somedir/page.html HTTP/1.1”,表明瀏覽器在請求對象/somedir/page.html,瀏覽器實現(xiàn)的是HTTP/1.1版本;
Host項,內(nèi)容為“www.h3c.com”,表明存放請求對象“/somedir/page.html”的主機為“www.h3c.com”。
步驟s308、受保護的服務(wù)器返回HTTP Get應(yīng)答,其中包括頁面“/somedir/page.html”中的信息。此時,防火墻和代理服務(wù)器完成報文的轉(zhuǎn)發(fā)作用,用戶終端根據(jù)HTTP Get應(yīng)答,將內(nèi)容呈現(xiàn)在用戶終端的瀏覽器上。
本發(fā)明的實施例四中,以發(fā)送方設(shè)備為通過代理服務(wù)器連接目標服務(wù)器,并企圖對目標服務(wù)器進行CC攻擊的用戶終端為例,說明防范CC攻擊的方法。企圖通過代理服務(wù)器對目標服務(wù)器進行CC攻擊的用戶終端的特點在于,這些用戶終端只發(fā)送請求報文,在由代理服務(wù)器轉(zhuǎn)發(fā)請求后,用戶終端與代理服務(wù)器之間的TCP連接馬上斷開。基于該特點,本實施例的流程如圖5所示,包括以下步驟步驟s401、用戶終端向代理服務(wù)器發(fā)起HTTP Get請求,請求訪問目標地址。
對于用戶終端初次發(fā)送的HTTP Get請求報文,與本發(fā)明實施例有關(guān)的HTTP Get請求報文頭內(nèi)容包括GET項,內(nèi)容為“/somedir/page.html HTTP/1.1”,表明瀏覽器在請求對象/somedir/page.html,瀏覽器實現(xiàn)的是HTTP/1.1版本;Host項,內(nèi)容為“www.h3c.com”,表明存放請求對象“/somedir/page.html”的主機為“www.h3c.com”。
GET項和Host項描述了與本步驟中目標地址有關(guān)的內(nèi)容,即GET請求對象為“/somedir/page.html”,以及該請求對象所在的主機為“www.h3c.com”。
步驟s402、代理服務(wù)器接收到用戶終端的初次Get請求之后,對HTTP報文頭進行解析,直接訪問報文頭中GET字段指定的URL。
該步驟中,代理服務(wù)器轉(zhuǎn)發(fā)到防火墻設(shè)備的HTTP Get請求報文也是如步驟s401所描述的報文形式。
步驟s403、防火墻設(shè)備接收到代理服務(wù)器的初次Get請求之后,不立即轉(zhuǎn)發(fā)到后端受保護的服務(wù)器,而是向代理服務(wù)器回應(yīng)一個HTTP重定向報文,報文的響應(yīng)碼為302,表示所請求的資源臨時位于另外的URL。與本發(fā)明實施例有關(guān)的HTTP重定向報文的內(nèi)容包括HTTP響應(yīng)碼項,內(nèi)容為“HTTP 1.1 302 Found”,響應(yīng)碼302表示所請求的資源臨時位于另外的URL;Location項,內(nèi)容為“http//www.h3c.com/A”,表明重定向后的URL,其中重定向碼A也攜帶在URL中。
所謂另外的URL,即上述HTTP重定向報文中,Location項所描述的“http//www.h3c.com/A”,其中A為重定向碼,可以為一固定的字符串,將重定向后的URL與之前用戶終端通過代理服務(wù)器請求的URL加以區(qū)別。
步驟s404、代理服務(wù)器將接收到的HTTP重定向報文向用戶終端發(fā)送。
步驟s405、由于企圖攻擊目標服務(wù)器的用戶終端只發(fā)送初次數(shù)據(jù),由代理服務(wù)器轉(zhuǎn)發(fā)請求后,用戶終端與代理服務(wù)器之間的TCP連接馬上斷開。所以,當(dāng)代理服務(wù)器轉(zhuǎn)發(fā)防火墻設(shè)備生成的HTTP重定向報文給用戶終端時,該用戶終端不可能回應(yīng)重定向后的HTTP請求,所以此次交互結(jié)束。
這種情況下,防火墻設(shè)備后端受保護的服務(wù)器自始至終沒有接受到攻擊者任何的報文,前端的防火墻設(shè)備已經(jīng)將這些攻擊報文全部擋住,達到防范CC攻擊的目的。
本發(fā)明的實施例五中,以發(fā)送方設(shè)備為不通過代理服務(wù)器,而直接連接目標服務(wù)器的正常用戶終端為例,說明本發(fā)明中的防范CC攻擊的方法不會對直接連接目標服務(wù)器的用戶終端的使用造成影響。該種情況下的流程如圖6所示,包括以下步驟步驟s501、用戶終端發(fā)起HTTP Get請求,請求訪問目標地址。
對于用戶終端初次發(fā)送的HTTP Get請求報文,與本發(fā)明實施例有關(guān)的HTTP Get請求報文頭內(nèi)容包括GET項,內(nèi)容為“/somedir/page.html HTTP/1.1”,表明瀏覽器在請求對象/somedir/page.html,瀏覽器實現(xiàn)的是HTTP/1.1版本;Host項,內(nèi)容為“www.h3c.com”,表明存放請求對象“/somedir/page.html”的主機為“www.h3c.com”。
GET項和Host項描述了與本步驟中目標地址有關(guān)的內(nèi)容,即GET請求對象為“/somedir/page.html”,以及該請求對象所在的主機為“www.h3c.com”。
步驟s502、防火墻設(shè)備接收到用戶終端的Get請求之后,不立即轉(zhuǎn)發(fā)到后端受保護的服務(wù)器,而是向用戶終端回應(yīng)一個HTTP重定向報文,報文的響應(yīng)碼為302,表示所請求的資源臨時位于另外的URL。與本發(fā)明實施例有關(guān)的HTTP重定向報文的內(nèi)容包括HTTP響應(yīng)碼項,內(nèi)容為“HTTP 1.1 302 Found”,響應(yīng)碼302表示所請求的資源臨時位于另外的URL;Location項,內(nèi)容為“http//www.h3c.com/A”,表明重定向后的URL,其中重定向碼A也攜帶在URL中。
所謂另外的URL,即上述HTTP重定向報文中,Location項所描述的“http//www.h3c.com/A”,其中A為重定向碼,可以為一固定的字符串,以將重定向后的URL與之前用戶終端請求的URL加以區(qū)別。
步驟s503、用戶終端根據(jù)接收到的HTTP重定向報文,自動向防火墻設(shè)備發(fā)送響應(yīng)報文,攜帶新的HTTP Get請求,請求連接重定向后的URL。
該步驟中,與本發(fā)明實施例有關(guān)的用戶終端發(fā)送的響應(yīng)報文頭內(nèi)容包括GET項,內(nèi)容為“/somedir/page.html HTTP/1.1”,表明瀏覽器在請求對象/somedir/page.html,瀏覽器實現(xiàn)的是HTTP/1.1版本;Host項,內(nèi)容為“www.h3c.com/A”,重定向碼A攜帶在新的HTTP Get請求的URL中,表明存放請求對象“/somedir/page.html”的主機為“www.h3c.com/A”。
步驟s504、防火墻設(shè)備接收到用戶終端的Get請求之后,首先校驗響應(yīng)報文中攜帶的重定向碼與步驟s502中向該用戶終端發(fā)送的重定向報文中攜帶的重定向碼是否一致,如果不一致則為判斷為該請求不合法,直接丟棄請求報文,并返回一個響應(yīng)碼為401的HTTP應(yīng)答報文。否則,讀取還原步驟s501中用戶終端發(fā)送的初始請求報文,向后端受保護服務(wù)器請求內(nèi)容“/somedir/page.html”。
與本發(fā)明實施例有關(guān)的HTTP Get請求報文頭內(nèi)容包括GET項,內(nèi)容為“/somedir/page.html HTTP/1.1”,表明瀏覽器在請求對象/somedir/page.html。瀏覽器實現(xiàn)的是HTTP/1.1版本;Host項,內(nèi)容為“www.h3c.com”,表明存放請求對象“/somedir/page.html”的主機為“www.h3c.com”。
步驟s505、受保護的服務(wù)器返回HTTP Get應(yīng)答,此時,防火墻設(shè)備完成報文的轉(zhuǎn)發(fā)作用,用戶終端根據(jù)HTTP Get應(yīng)答,將內(nèi)容呈現(xiàn)在用戶終端的瀏覽器上。即新增的防火墻設(shè)備不會對不通過代理服務(wù)器直接連接目標服務(wù)器的用戶終端的正常使用造成影響。
上述實施例三至實施例五中,以不同情況下的用戶終端作為發(fā)送方設(shè)備,對目標服務(wù)器的HTTP Get請求的處理過程進行了描述,其中,在描述HTTP重定向報文“http//www.h3c.com/A”的結(jié)構(gòu)時,所使用的重定向碼A為一固定的字符串。使用這種HTTP重定向報文結(jié)構(gòu)時,由于A為固定的字符串,因此企圖發(fā)起CC攻擊的用戶終端通過對HTTP重定向報文進行多次解析、發(fā)現(xiàn)了HTTP重定向報文“http//www.h3c.com/A”的組成結(jié)構(gòu)時,可以在向代理服務(wù)器發(fā)送的初次HTTP Get請求報文時,直接使用“http//www.h3c.com/A”替換“http//www.h3c.com”,從而有可能使得防火墻設(shè)備無法發(fā)揮作用,達到繞開防火墻設(shè)備直接攻擊目標服務(wù)器的目的。鑒于這種可能性的存在,可以使用更為安全的重定向碼A的生成和校驗方式。
本發(fā)明的實施例六中,描述了一種更為安全的重定向碼A生成校驗方法,該方法中,防火墻設(shè)備在接收到代理服務(wù)器或用戶終端的HTTP Get請求報文時,防火墻設(shè)備依據(jù)代理服務(wù)器或用戶終端和防火墻設(shè)備之間的TCP連接參數(shù),以及該HTTP Get請求報文請求連接的URL,計算重定向碼A,該TCP連接參數(shù)也稱IP報文的五元組,具體包括請求報文中的SOURCE_IP(源IP)、DEST_IP(目的IP)、SOURCE_PORT(源端口)、DEST_PORT(目的端口)、Version(協(xié)議號)。在具體的計算方法上,可以采用如下方法防火墻接收到一個HTTP Get請求報文后,計算一個消息摘要macmac=MAC(V,k)其中,MAC是密碼學(xué)中的一個消息認證碼函數(shù),也就是滿足某種安全性質(zhì)的帶密鑰的HASH函數(shù),它能夠提供重定向碼計算中需要的安全性。
V為根據(jù)上述TCP連接參數(shù)中的一種或多種、以及請求連接的URL,通過某種算法得到的值,如V=Calc(SOURCE_IP,SOURCE_PORT,DEST_IP,DEST_PORT,URL)其中,K為防火墻設(shè)備獨有的密鑰。
在得到消息摘要mac后,防火墻設(shè)備根據(jù)消息摘要mac生成重定向碼,如取mac值的第0到32比特位重定向碼A=mac(0:32)對于正常的HTTP請求,防火墻設(shè)備中都保留有當(dāng)前連接的會話,該會話記錄了每一條數(shù)據(jù)流的TCP連接參數(shù)。因此,當(dāng)接收到響應(yīng)報文后,首先從該響應(yīng)報文的URL中得到重定向碼A’,然后從會話記錄中讀取出該連接對應(yīng)的初次HTTP請求,依據(jù)與重定向碼生成算法相同的算法,得到向代理服務(wù)器或用戶終端發(fā)送的HTTP重定向報文中的重定向碼A,如果A’=A,表示接收到的重定向后的HTTP請求合法,否則判斷為不合法的URL請求。
通過使用本實施例中描述的重定向碼A的生成方法,以發(fā)送方設(shè)備為通過代理服務(wù)器連接目標服務(wù)器的正常用戶終端為例,一種防范CC攻擊的方法流程與實施例三中所描述的流程相似,只是重定向碼A由實施例二中的固定字符串變化為動態(tài)生成,即若每次請求的URL不同或TCP連接參數(shù)不同,重定向碼A都互不不同,增強了該方法防范CC攻擊的安全性和適用性。且上述算法簡單,能快速地檢測重定向碼是否合法,不會明顯降低防火墻設(shè)備的性能。
通過使用如以上實施例一至實施例六描述的方法,通過網(wǎng)頁重定向,可以有效防范CC攻擊,而且不絕對地拒絕一切使用代理服務(wù)器的用戶終端,而是采用區(qū)別對待的方法,依據(jù)對重定向碼的校驗,準確地發(fā)現(xiàn)企圖對目標服務(wù)器進行CC攻擊的用戶終端,而且不會影響正常用戶終端的訪問。另外,通過對重定向碼的動態(tài)生成,增強了該方法的安全性和適用性。
本發(fā)明的實施例七中,一種安全設(shè)備的結(jié)構(gòu)如圖7所示,包括重定向報文生成模塊11和判斷模塊12、接收模塊13、發(fā)送模塊14和重定向碼生成模塊15。
重定向報文生成模塊11,用于在接收模塊13接收到向被保護設(shè)備20發(fā)送的請求報文時,生成重定向報文,并通過發(fā)送模塊14向該請求報文的發(fā)送方設(shè)備發(fā)送重定向報文。該發(fā)送方設(shè)備為用戶終端或代理服務(wù)器。
判斷模塊12,用于在接收到接收模塊13轉(zhuǎn)發(fā)的發(fā)送方設(shè)備發(fā)送的響應(yīng)報文時,根據(jù)該響應(yīng)報文判斷該發(fā)送方設(shè)備發(fā)送的請求報文是否合法。具體的,將該響應(yīng)報文中的重定向碼、與重定向報文生成模塊11最初向該發(fā)送方設(shè)備發(fā)送的重定向報文中的重定向碼進行比較,二者不一致時,判斷為該發(fā)送方設(shè)備發(fā)送的請求報文不合法,將該請求報文丟棄;二者一致時,判斷為該發(fā)送方設(shè)備發(fā)送的請求報文合法,并通過發(fā)送模塊14向受保護的服務(wù)器發(fā)送該發(fā)送方設(shè)備的請求報文。
接收模塊13,用于接收發(fā)送方設(shè)備發(fā)送的請求報文和響應(yīng)報文,將請求報文轉(zhuǎn)發(fā)至重定向報文生成模塊11,將響應(yīng)報文轉(zhuǎn)發(fā)至判斷模塊12。
發(fā)送模塊14,用于向請求報文的發(fā)送方設(shè)備發(fā)送重定向報文生成模塊11生成的重定向報文,在判斷模塊12判斷發(fā)送方設(shè)備合法時,向受保護的服務(wù)器發(fā)送該發(fā)送方設(shè)備發(fā)送的請求報文。
重定向碼生成模塊15,用于在重定向報文生成模塊11需要生成重定向報文時,向重定向報文生成模塊11發(fā)送所需的重定向碼。
上述實施例七的描述中,發(fā)送方設(shè)備為直接向安全設(shè)備發(fā)送報文的用戶終端,以及通過代理服務(wù)器向安全設(shè)備發(fā)送報文的用戶終端。
通過使用如以上實施例七描述的設(shè)備,可以有效防范CC攻擊,而且不絕對地拒絕一切使用代理服務(wù)器的用戶終端,依據(jù)對重定向碼的校驗,準確地發(fā)現(xiàn)企圖對目標服務(wù)器進行CC攻擊的用戶終端,而且不會影響正常用戶終端的訪問。另外,通過對重定向碼的動態(tài)生成,增強了該方法的安全性和適用性。
以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
權(quán)利要求
1.一種防范CC攻擊的方法,其特征在于,包括以下步驟安全設(shè)備接收到向被保護設(shè)備發(fā)送的請求報文時,向所述請求報文的發(fā)送方設(shè)備發(fā)送重定向報文;所述安全設(shè)備接收所述發(fā)送方設(shè)備根據(jù)所述重定向報文發(fā)送的響應(yīng)報文,并根據(jù)所述響應(yīng)報文確定所述請求報文是否為攻擊報文。
2.如權(quán)利要求1所述防范CC攻擊的方法,其特征在于,所述重定向報文中攜帶重定向碼,所述重定向碼為固定碼或動態(tài)生成碼。
3.如權(quán)利要求1所述防范CC攻擊的方法,其特征在于,所述安全設(shè)備在預(yù)定的時間內(nèi)未收到所述響應(yīng)報文時,確定所述請求報文為攻擊報文,并丟棄所述請求報文。
4.如權(quán)利要求2所述防范CC攻擊的方法,其特征在于,所述安全設(shè)備接收到所述響應(yīng)報文,且所述響應(yīng)報文攜帶的重定向碼與所述重定向報文中的重定向碼不一致時,確定所述請求報文為攻擊報文,并丟棄所述請求報文。
5.如權(quán)利要求2所述防范CC攻擊的方法,其特征在于,所述安全設(shè)備接收到所述響應(yīng)報文,且所述響應(yīng)報文攜帶的重定向碼與所述重定向報文中的重定向碼一致時,確定所述請求報文不是攻擊報文,并將所述請求報文發(fā)送至所述被保護設(shè)備。
6.如權(quán)利要求5所述防范CC攻擊的方法,其特征在于,所述安全設(shè)備向所述被保護設(shè)備發(fā)送所述請求報文后,還包括所述安全設(shè)備向所述發(fā)送方設(shè)備發(fā)送所述被保護設(shè)備對所述請求報文的響應(yīng)。
7.如權(quán)利要求1或6所述防范CC攻擊的方法,其特征在于,所述請求報文的發(fā)送方設(shè)備包括直接與所述安全設(shè)備連接的用戶終端、或通過代理服務(wù)設(shè)備與所述安全設(shè)備連接的用戶終端。
8.如權(quán)利要求7所述防范CC攻擊的方法,其特征在于,所述請求報文的發(fā)送方設(shè)備為通過代理服務(wù)設(shè)備與所述安全設(shè)備連接的用戶終端時,所述請求報文的發(fā)送流程為所述代理服務(wù)設(shè)備向所述安全設(shè)備轉(zhuǎn)發(fā)所述用戶終端發(fā)送的所述請求報文;所述重定向報文的發(fā)送流程為所述代理服務(wù)設(shè)備向所述用戶終端轉(zhuǎn)發(fā)所述安全設(shè)備發(fā)送的所述重定向報文;所述響應(yīng)報文的發(fā)送流程為所述代理服務(wù)設(shè)備向所述安全設(shè)備轉(zhuǎn)發(fā)所述用戶終端根據(jù)所述重定向報文發(fā)送的響應(yīng)報文。
9.如權(quán)利要求2或4或5所述防范CC攻擊的方法,其特征在于,所述重定向碼的動態(tài)生成方法為所述安全設(shè)備根據(jù)所述請求報文請求的內(nèi)容、與所述請求報文的發(fā)送方設(shè)備的網(wǎng)絡(luò)連接參數(shù)生成所述重定向碼;所述網(wǎng)絡(luò)連接參數(shù)包括源IP、目的IP、源端口、目的端口、協(xié)議版本號中的一種或多種。
10.一種安全設(shè)備,其特征在于,包括重定向報文生成模塊,用于在接收到發(fā)送方設(shè)備發(fā)送的請求報文時,生成重定向報文;判斷模塊,用于在所述發(fā)送方設(shè)備根據(jù)所述重定向報文發(fā)送響應(yīng)報文時,根據(jù)所述響應(yīng)報文確定所述請求報文是否為攻擊報文。
11.如權(quán)利要求10所述安全設(shè)備,其特征在于,還包括重定向碼生成模塊,用于生成所述重定向報文生成模塊生成重定向報文時所需的重定向碼;接收模塊,用于接收發(fā)送方設(shè)備發(fā)送的所述請求報文并轉(zhuǎn)發(fā)給所述重定向報文生成模塊,接收發(fā)送方設(shè)備發(fā)送的所述響應(yīng)報文并轉(zhuǎn)發(fā)給所述判斷模塊;發(fā)送模塊,用于向發(fā)送所述請求報文的發(fā)送方設(shè)備發(fā)送所述重定向報文生成模塊生成的重定向報文,并在所述判斷模塊判斷所述請求報文不是攻擊報文時,將所述請求報文轉(zhuǎn)發(fā)給被保護設(shè)備。
全文摘要
本發(fā)明公開了一種防范CC攻擊的方法,包括以下步驟安全設(shè)備接收到向被保護設(shè)備發(fā)送的請求報文時,向請求報文的發(fā)送方設(shè)備發(fā)送重定向報文;安全設(shè)備接收發(fā)送方設(shè)備根據(jù)重定向報文發(fā)送的響應(yīng)報文,并根據(jù)響應(yīng)報文確定請求報文是否為攻擊報文。本發(fā)明還公開了一種防范CC攻擊的安全設(shè)備。通過使用本發(fā)明,可以有效防范CC攻擊,依據(jù)對重定向碼的校驗,準確地發(fā)現(xiàn)企圖對目標服務(wù)器進行CC攻擊的用戶終端,而且不會影響正常用戶終端的訪問。
文檔編號H04L1/00GK101030889SQ20071009029
公開日2007年9月5日 申請日期2007年4月18日 優(yōu)先權(quán)日2007年4月18日
發(fā)明者王松波, 歐珊瑚 申請人:杭州華為三康技術(shù)有限公司