針對web伺服器進行DDOS攻擊的防禦方法和設備的製作方法
2023-10-05 14:22:09 1
專利名稱:針對web伺服器進行DDOS攻擊的防禦方法和設備的製作方法
技術領域:
本發明涉及web伺服器,具體的說涉及為針對web伺服器的DDOS攻擊提供防禦的方法和設備。
背景技術:
用戶網絡瀏覽器獲取網際網路(Internet)站點網絡信息時,在一般情況下,必須直接連接其Web伺服器,對網頁發送讀取請求。Web伺服器對用戶進行響應,將信息傳送回來。很多情況下,用戶也可以通過代理伺服器連接web伺服器。
代理伺服器是介於瀏覽器和Web伺服器之間的一臺伺服器。使用代理伺服器時,瀏覽器並不直接到Web伺服器請求讀取網頁,而是向代理伺服器發出請求。請求會先送到代理伺服器。由代理伺服器發起對Web伺服器的請求,並將Web伺服器回應的網頁傳送給用戶瀏覽器。而且,大部分代理伺服器都具有高速緩存的功能,它有很大的存儲空間,不斷將新取得數據儲存到代理伺服器的存儲器上。如果用戶瀏覽器所請求的數據在它本機的存儲器上已經存在而且是最新的,那麼它就不重新從Web伺服器取數據,而直接將存儲器上的數據傳送給用戶的瀏覽器。這樣就能顯著提高瀏覽速度和效率。
利用代理伺服器的這一特性,針對Web伺服器,網絡上出現了一種新型的分布式拒絕服務(DDoS)攻擊方式其原理是利用眾多代理伺服器模擬大量用戶訪問,向伺服器動態頁面(asp,php.aspx,jsp等)發送大量請求。這些頁面可以是並不存在的頁面。攻擊者通過代理伺服器隱藏其真實的網際網路協議(IP)地址,因此很難對真正的攻擊者進行防禦。並且,由於網頁並不存在,代理伺服器無法直接將本機緩存的數據直接發給攻擊者,只能將攻擊者的請求發給web伺服器處理。而web伺服器處理這些請求的開銷較大,通常會進行資料庫查詢等非常耗時的操作。由於這些操作不能立刻完成,web伺服器會將未能處理完成的請求入隊列緩存,從而很快佔滿web伺服器應用層服務的連接數,達到拒絕正常用戶訪問的目的。例如,很多apache伺服器能夠處理的並發連接數不過是512或者1024,通過這種攻擊,很容易造成拒絕服務(DoS)。甚至造成web伺服器處理負荷過於繁重導致web伺服器癱瘓。
圖1是利用傳輸控制協議(tcp)連接交互信息進行DDoS攻擊的典型過程的示意圖。攻擊者通過代理伺服器在同一條tcp連接中,不斷地向web伺服器請求一個不存在的頁面。如果攻擊者同時啟動多個攻擊連接,會使得web伺服器忙於處理攻擊者發起的請求,從而達到搶佔並佔用web伺服器應用層服務的連接數,最終導致DoS的目的。
由於此類攻擊模擬正常用戶的正常訪問行為,當前的防火牆設備不能有效的防禦此類攻擊。
由於此類攻擊模擬正常用戶的正常訪問行為,所以常用的SynFlood防禦技術tcp代理不能對其進行有效防範。在一種現有技術中,針對這種攻擊通常會在每個代理伺服器上發起一定數目連接請求的特徵,可以在防火牆類設備上對用戶的流量進行管理,限定某個IP的帶寬,或者針對每個IP位址進行連接數目的限制。在一定程度上可以防禦此類攻擊。
然而,通過對用戶的流量進行管理,限定某個IP的帶寬或者限定每個IP位址發起連接數目有以下局限性1.此類攻擊是通過大量代理伺服器發起的,每個代理伺服器發起的攻擊連接可能很少。如果限制每個IP的連接數,需要將連接數限制在很小的範圍內才可能有效。但是,如果攻擊者使用的代理伺服器數量很多,那麼攻擊伺服器的連接仍然很多。流量進行管理的方法就達不到防禦的目的。
2.此類攻擊主要針對伺服器在處理動態網頁時的性能瓶頸,而不是消耗伺服器的帶寬。因此較小的攻擊流量仍然可以消耗大量的伺服器資源,從而達到攻擊的目的。
3.對用戶的流量進行管理可能會影響正常用戶對伺服器的正常訪問,導致上網速度慢等問題,影響用戶體驗。
在另一種現有技術中,由於此類攻擊模擬正常用戶的正常訪問都需要通過代理伺服器來完成,檢測超文本傳輸協議(http)的請求(request)報文中是否存在某些特殊的能表示通過代理訪問的信息,並以此確定這是一次代理訪問並作相應的過濾。
該方案具備一定的防攻擊能力,但是也存在一些問題1、這對真正在內部網絡通過代理訪問外部網絡的請求會形成誤判;2、http代理伺服器的行為不可預測,對於那些不攜帶特殊信息的請求無法進行識別和過濾。
發明內容
本發明的目的是提供能夠解決以上問題從而對DDoS攻擊進行有效防禦的方法。
防火牆通常放在伺服器前面對伺服器進行保護。本發明將通過在防火牆等中間設備上檢測諸如http的tcp連接狀態,強制斷開攻擊者與伺服器的tcp連接的機制來保護伺服器免受拒絕服務攻擊的方法。
根據第一方面,本發明提供一種防火牆防禦針對web伺服器DDOS攻擊的方法,所述防火牆設置在web伺服器之前,所述方法包括步驟接收用戶向web伺服器發起的tcp連接請求;將所述請求轉發給web伺服器;接收並且檢查web伺服器的回應報文;當回應報文中包括差錯碼時,斷開與所述tcp連接請求對應的tcp連接。
根據第二方面,提供一種設置在web伺服器之前的防火牆,用於防禦針對所述web伺服器的DDOS攻擊,所述防火牆包括接收用戶向web伺服器發起的tcp連接請求的裝置;將所述請求轉發給web伺服器的裝置;接收並且檢查web伺服器的回應報文的裝置;當回應報文中包括差錯碼時,斷開tcp連接的裝置。
本發明的技術方案能夠防禦攻擊者對http伺服器發起的無效網頁攻擊,減輕伺服器的負擔,使正常用戶能夠連接到伺服器。
下面將通過舉例參照附圖對本發明進行更詳細的說明,在附圖中圖1是利用tcp連接交互信息進行DDoS攻擊的典型過程的示意圖;圖2是根據本發明的利用防火牆防禦DDoS攻擊的實施方案的示意圖。
具體實施例方式
本發明通過防火牆等中間設備,對web伺服器進行保護。下文將具體說明本發明的實施方案。
圖2是根據本發明的利用防火牆防禦DDoS攻擊的實施方案的示意圖。
防火牆監控用戶與web伺服器之間的tcp連接。當用戶向web伺服器發起tcp連接時,防火牆為該tcp連接建立會話表。會話表例如可以採用五元組(源IP、源埠、協議類型、目的IP、目的埠)表示。經過防火牆的tcp報文都將被檢測。如果報文的目的埠是http報文埠80,則防火牆判斷該報文是http報文,並且因此設置對應會話信息的協議類型為http。需要說明的是,用戶發起的網頁請求也可以通過代理伺服器發送給防火牆。
然後,防火牆將報文轉發給Web伺服器。
對於用戶請求,web伺服器做出相應的響應。響應的第一行是狀態行,以HTTP版本號開始,後面跟著3位數字表示響應代碼,最後是易讀的響應短語。下表是HTTP的3位響應碼及其說明。
如果回應的報文命中會話表,說明它是http報文。防火牆對web伺服器回應的http報文進行深度檢測,搜索web伺服器回應報文中的用戶差錯碼等信息。如果web伺服器返回的是用戶差錯碼報文,則防火牆直接拆除用戶與web伺服器之間的tcp連接,終止針對web伺服器的連接。通過防火牆上保留的http會話信息,可以在防火牆上以用戶的名義向web伺服器發出復位RST或終止FIN報文通知web伺服器關閉連接。
如果攻擊者使用大量代理伺服器向同一個web伺服器發起攻擊,那麼,即使拆除了web伺服器與某一個代理之間的連接,也還會有大量的攻擊報文,一樣可以消耗web伺服器資源。因此,在一個優選實施方案中,可以同時採用限制訪問的方法,即對同一源IP發起的http連接數進行統計,如果在一定時間內,web伺服器向用戶返回差錯碼的次數大於某一指定的值,則將這一IP加入黑名單,限制此源IP發起的對web伺服器的訪問。
上文以http連接為例,對本發明的實施方案做了具體說明。需要指出,本發明不限於此,還可應用於諸如ftp的其它tcp連接。
顯而易見,在此描述的本發明可以有許多變化,這種變化不能認為偏離本發明的精神和範圍。因此,所有對本領域技術人員顯而易見的改變,都包括在本權利要求書的涵蓋範圍之內。
權利要求
1.一種防火牆防禦針對web伺服器DDOS攻擊的方法,所述防火牆設置在web伺服器之前,所述方法包括步驟接收用戶向web伺服器發起的tcp連接請求;將所述請求轉發給web伺服器;接收並且檢查web伺服器的回應報文;當回應報文中包括差錯碼時,斷開與所述tcp連接請求對應的tcp連接。
2.如權利要求1所述的方法,其特徵在於所述用戶發起的tcp連接請求通過代理伺服器發送給防火牆。
3.如權利要求1所述的方法,其特徵在於所述斷開tcp連接的步驟包括防火牆以用戶的名義向web伺服器發出復位或終止報文。
4.如權利要求1所述的方法,其特徵在於包括為tcp連接設立會話表的步驟,所述會話表包括源IP位址、源埠、協議類型、目的IP位址和目的埠。
5.如權利要求1所述的方法,其特徵在於所述tcp連接是http連接。
6.如權利要求1所述的方法,其特徵在於包括對一定時間內web伺服器向一個源IP位址返回差錯碼的次數進行統計,如果該次數大於某一閾值,則限制該源IP位址發起的對web伺服器的訪問。
7.一種設置在web伺服器之前的防火牆,用於防禦針對所述web伺服器的DDOS攻擊,所述防火牆包括接收用戶向web伺服器發起的tcp連接請求的裝置;將所述請求轉發給web伺服器的裝置;接收並且檢查web伺服器的回應報文的裝置;當回應報文中包括差錯碼時,斷開tcp連接的裝置。
8.如權利要求7所述的防火牆,其特徵在於包括對一定時間內web伺服器向一個源IP位址返回差錯碼的次數進行統計的裝置,和如果該次數大於某一閾值,則限制該源IP位址發起的對web伺服器的訪問的裝置。
全文摘要
本發明提供一種防火牆防禦針對web伺服器DDOS攻擊的方法和設備。所述防火牆設置在web伺服器之前,所述方法包括步驟接收用戶向web伺服器發起的tcp連接請求;將所述請求轉發給web伺服器;接收並且檢查web伺服器的回應報文;當回應報文中包括差錯碼時,斷開與所述tcp連接請求對應的tcp連接。
文檔編號H04L29/06GK101047697SQ20061003479
公開日2007年10月3日 申請日期2006年3月29日 優先權日2006年3月29日
發明者雷奕康, 王寧, 張日華, 齊志, 朱志強 申請人:華為技術有限公司