一種http慢速攻擊的防范方法
【技術領域】
[0001 ]本發明涉及一種HTTP慢速攻擊的防范方法,屬于自動控制技術領域。
【背景技術】
[0002]目前,DDoS(Distributed Denial of Service,分布式拒絕服務)攻擊的主要目的是讓指定目標無法提供正常服務,是目前最強大、最難防御的攻擊之一。按照發起的方式,傳統的DDoS簡單分為三類。第一類以力取勝,海量數據包從互聯網的各個角落蜂擁而來,堵塞互聯網數據中心的(IDC, Internet Data Center)入口,讓各種強大的硬件防御系統、快速高效的應急流程無用武之地。這種類型的攻擊典型代表是ICMP Flood和UDP Flood。第二類以巧取勝,這類攻擊主要是利用協議或者軟件的漏洞或者缺陷發起,靈動而難以察覺,例如SYN Flood攻擊、DNS Query Flood攻擊,是當前的主流攻擊方式。第三類是針對現有的目標對象,利用大量僵尸主機采用了無賴方式的消耗訪問,慢速訪問消耗資源的對象,導致防護設備失效和服務器無法正常服務,例如HTTP的慢速攻擊,這種方式的訪問本身和正常訪問沒有區別,只是由于僵尸主機較多,大量的這類慢速訪問能夠使服務器消耗資源處理這些訪問,從而影響正常用戶的訪問。而本發明要解決的問題是這種和正常訪問類似的HTTP慢速攻擊防護。例如= SlowHTTPTest是一個可配置的應用層拒絕服務攻擊測試攻擊,它能工作在Linux,OSX和Cygwin環境以及Windows命令行接口,能幫助安全測試人員檢驗服務器對慢速攻擊的處理能力。這個工具能模擬低帶寬耗費下的DoS攻擊,比如慢速攻擊,慢速HTTPPOST,通過并發連接池進行的慢速讀攻擊(基于TCP持久時間)。慢速攻擊基于HTTP協議,通過精心的設計和構造,這種特殊的請求包會造成服務器延時,而當服務器負載能力消耗過大即會導致拒絕服務。
[0003]通常DDoS防護部署在專業的DDoS清洗設備上。DDoS防護分成兩部分,一個是DDoS檢測模塊,一個是DDoS防護模塊。管理中心用來管理清洗設備。
[0004]在一些場景里面,防火墻也集成DDoS功能,這樣DDoS檢測模塊和清洗模塊也直接集成到防火墻中,作為防火墻的DdoS防護特性。
[0005]無論是DDoS清洗設備還是帶DDoS防護的FW,通常的步驟如下:
[0006]1、設備從網口通過驅動獲得網絡數據報文
[0007]2、數據報文送入DDoS檢測模塊進行DDoS攻擊檢測
[0008]3、當DDoS檢測模塊發現攻擊發生的時候,則會把發生攻擊的流量送入DDoS防護模塊進行清洗。清洗完后的流量送入下一階段。如果DDoS檢測模塊沒有發現數據報文有攻擊,則會把流量直接送入下一階段。
[0009]4、數據報文按照目的IP查找路由表,如果沒有路由信息,則該數據包進行丟棄。如果查到有匹配的路由條目,則送入下一階段
[0010]5、根據下一跳的地址,查看是否是該設備直接的網絡鏈路,如果是,則送到鏈路接口,再由驅動轉發出去;如果不是直連的鏈路,則設定下一跳地址為目標地址,然后再查找路由表,找到下一跳的直連接口,然后通過該接口進行報文封裝并轉發。[0011 ]目前常見的HTTP的DDoS攻擊檢測方法,主要采用頻率統計的方式來識別惡意訪問源IP。通常是流量檢測模塊進行攻擊檢測。該算法步驟如下:
[0012]1.數據報文送入檢測模塊,首先要進行HTTP協議解析,也就是對HTTP數據報文中需要的字段進行解析,識別五元組信息;
[0013]2.根據保護的主機IP地址,構建目的IP的監控表,主要的是監控目的IP的HTTP流量的大小、HTTP連接數;
[0014]3.判斷每個被保護的IP地址的HTTP的監控參數的統計數值是否超過閾值,連續N個周期超過,則進入精細化分析狀態。如果沒有超過,則恢復目的IP的監控統計過程;
[0015]4.啟動攻擊源的檢測是精細話分析狀態,為每個超過閾值的目的IP,構建源IP監控表;
[0016]5.對每個目的IP監控超過M周期,則回復初略統計的狀態,如果沒有超過,則進行源IP監控;
[0017]6.源IP監控表主要監控訪問源IP的HTTP請求的頻率,如果發現頻率過快,說明該源IP很有可能是攻擊源IP,則輸出該源IP ;
[0018]7.針對攻擊源IP進行防護。具體的防護方式有多種,有阻斷、限速、重定向、挑戰輸入。
[0019]綜上所述,現有技術的缺點如下:
[0020]1、基于頻率進行防護,對于一些本身訪問流量很大的IP地址,容易誤判;常規的基于IP地址維度進行統計,會對大流量的訪問產生效果,而實際上慢速攻擊的流量和頻率不大,因此該方式無法正常區分。
[0021]2、有些頁面本身并不容易造成拒絕服務,也容易進行監控范圍并消耗檢測資源;網站大量靜態頁面和不耗資源的動態頁面,黑客就算訪問,一般情況下也不會造成太大影響。而耗時的頁面很少的流量都會造成服務器大的負擔。采用這種方式不做區分的統計,實際上消耗檢測資源。
【發明內容】
[0022]本發明的目的在于提供一種能夠克服上述技術問題的HTTP慢速攻擊的防范方法,本發明要解決技術問題是:避免基于流量和訪問頻率統計不精準造成的誤判以及減少無效的頁面訪問流量的檢測;本發明采用HTTP(HyperText Transfer Protocol,超文本傳輸協議)響應時間方式來進行URL耗時識別;針對耗時URL(Uniform Resoure Locator,統一資源定位器)列表分析耗時URL列表的訪問次數并與常規正常模式比較來檢測異常訪問。
[0023]正常情況下用戶不會連續多次大量訪問耗時頁面,要么瀏覽網站的內容每次訪問會有幾十秒的間隔時間,要么也會點擊一些非耗時的頁面。黑客如果要攻擊網站,也會攻擊耗時URL(Uniform Resoure Locator,統一資源定位器)的網站頁面。本方案就是基于用戶是否連續訪問大量耗時頁面來判斷用戶是否是惡意行為。
[0024]本發明的技術方案是首先依賴流量學習,對正常訪問的被保護主機的流量進行智能學習,利用訪問的時間差值從而能夠識別哪些頁面是耗費資源的頁面。記錄下來這些頁面的信息。然后利用這些消耗資源的頁面URL構建URL哈希監控表,具體統計每個周期內各源IP對各耗資源頁面的訪問次數和其訪問該網站的總次數,然后在周期時間截至時進行匯總,計算每個源IP的耗時頁面訪問次數。如果連續幾個周期內,出現一些源IP訪問的耗資源的頁面次數超過設定的閾值,則說明這幾個源IP—直在從事低流量而獲取大計算量的服務器資源,則進行限制其訪問。本發明能解決一些黑客利用僵尸網絡并下發攻擊URL列表來進行以小博大的慢速隨機攻擊。
[0025]本發明能夠應用在網關設備上,例如應用在分布式拒絕服務(DDoS,DistributedDenial of Service)專業設備、NGFW、IPS、UTM、WAF設備上。
[0026]本發明包括以下步驟:
[0027](I)解碼步驟:對數據報文進行解析,解析出HTTP的URL相關字段,然后送給后面的學習步驟和檢測步驟;
[0028](2)學習步驟:能夠對設置為保護對象的HTTP服務進行流量學習,學習其訪問的HTTP流量的特性,從而識別消耗資源的頁面,并學習其相關的參數;
[0029](3)攻擊識別步驟:能夠根據學習來的信息,構建URL監控表,能夠對訪問過這些URL的源IP的耗時頁面訪問次數和耗時頁面訪問次數占比進行統計。連續周期超過閾值,則識別這些源IP為有惡意企圖的IP;
[0030](4)防護步驟:啟用對所述URL的防護,例如啟用對所述URL限制連接、黑名單一定時間、進行重定向并要求輸入挑戰數據驗證是否真實用戶請求的防范措施;
[0031](5)檢測步驟;首先,針對耗時URL構建哈希表。哈希表以哈希值即HASH(URL)的數值為KEY,采用盡可能少碰撞的散列算法NHASH;再構建一個源IP訪問統計表。其次,新周期T計時啟動,當有HTTP的URL請求來的時候,首先對URL進行正規化,然后對其計算其哈希值,獲得該數據后,然后再用NHASH進行散列,獲取其在耗時URL哈希表中的桶位置,然后再判斷其哈希值是否與該桶元素里的哈希值相等,如果不等,則說明沒有命中,則該請求不需要記錄。如果命中,則在該哈希表中創建一個節點(NODE),同時把該IP地址記錄在該節點(NODE)中,這個節點(NODE)還包含了本周期訪問該URL的次數,這個次數每次有命中則加一。
[0032]再次,當本周期T時間截至,遍歷該哈希表的所有節點,把相同IP地址的訪問次數進行累加,則能形成每個周期的該源IP訪問耗時URL的總次數,判斷這個總次數是否遠大于正常用戶訪問的閾值。如果超過,記錄下該源IP。正常用戶訪問的閾值由經驗數據來獲得,例如通常瀏覽網頁,一般耗時網站I分鐘不會打開超過5個,因此閾值能放大到每分鐘不超過10個。
[0033]最后,連續統計M個周期,如果該源IP連續都是超過常規閾值,則說明該源IP是異常訪問,啟動防護流程。
[0034]本發明的學習步驟(2)的具體過程如下:
[0035]用戶設置被保護的網站的IP地址,并啟動本發明的學習步驟,則網關對經過的流量進行學習。對于保護的網站,每次網關發出查詢報文的時刻記錄為Til,網關收到其對應的應答報文Ti2,其中i為客戶機的代號。則每次網關的響應時間為:Pi = (T