一種防御資源消耗型Web攻擊方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種防御資源消耗型攻擊的方法及裝置;方法包括:S101、每當一個周期結束時,如果該周期中存在平均響應時間大于預置的響應時間閾值的預定Web頁面,則進行步驟S102;S102、對于各Web客戶端對預定Web頁面的訪問請求,當最近K個周期中存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄時,允許將該訪問請求發(fā)給Web服務器;當最近K個周期中不存在該Web客戶端訪問該訪問請求對應的前導Web頁面的記錄時,丟棄該訪問請求。本發(fā)明能夠在不干預正常的Web訪問行為、且不修改Web頁面代碼的情況下,實現(xiàn)高效率的資源消耗型Web攻擊防御。
【專利說明】一種防御資源消耗型Web攻擊方法及裝置
【技術領域】
[0001] 本發(fā)明涉及一種實現(xiàn)Web安全訪問的方法,具體涉及一種防御資源消耗型Web攻 擊的方法及裝置。
【背景技術】
[0002] Web應用是目前最為廣泛的互聯(lián)網應用,它在給人們獲取信息帶來了極大便利的 同時,也成為了黑客最為關注的對象。常見的針對Web應用的攻擊包括SQL注入攻擊、跨站 腳本攻擊(XSS)、跨站請求偽造(CSRF)以及各種可能導致Web服務器拒絕服務的Web攻擊 方式。本文主要關注針對Web服務器的資源消耗型Web攻擊的檢測和防御方法。
[0003] 常見的資源消耗型Web攻擊包括HTTP Flood攻擊和CC攻擊。CC攻擊是一種應用 層DoS攻擊,它以Web網站上那些需要消耗較多服務器資源的Web頁面(比如站內搜索頁 面)為主要攻擊目標,通過對這些可能導致高消耗的Web頁面進行突發(fā)式的大流量訪問,使 得Web服務器疲于應付,最后資源耗盡,無法響應正常用戶的Web頁面請求,從而造成拒絕 服務攻擊。由于CC攻擊工具所產生的Web訪問流量大多數符合HTTP協(xié)議規(guī)范,傳統(tǒng)Web 應用防火墻無法對其進行正確區(qū)分和過濾,因此,傳統(tǒng)Web應用防火墻在檢測和防御CC攻 擊類Web應用層攻擊時效果欠佳。
[0004] 傳統(tǒng)方法通過優(yōu)化網站代碼來檢測和防御此類Web攻擊,比如,在Web代碼中采用 Cookie來對訪問者進行主動標識和認證,或者通過在Web頁面中嵌入圖形識別碼來避免攻 擊者自動請求那些可能導致Web服務器高消耗的Web頁面。但這些方法都需要主動修改頁 面代碼,或者通過一個中間Web安全網關設備來修改Web安全相關的代碼,這些傳統(tǒng)方法可 能導致的問題是:1)很多情況下無法對代碼進行修改或者修改代價太大;2)在Web安全網 關上對Web訪問行為進行過多干預會為Web應用帶來很多問題,比如延遲問題;同時,這也 會增加 Web安全網關資源開銷,很難應對大Web流量場景。
【發(fā)明內容】
[0005] 本發(fā)明要解決的技術問題是如何在不干預正常的Web訪問行為、且不修改Web頁 面代碼的情況下,實現(xiàn)高效率的資源消耗型Web攻擊防御。
[0006] 為了解決上述問題,本發(fā)明提供了一種防御資源消耗型攻擊的方法,包括:
[0007] S101、每當一個周期結束時,分別將監(jiān)控到的各預定Web頁面的訪問請求的平均 響應時間和該預定Web頁面對應的響應時間閾值比較;如果該周期中存在平均響應時間大 于預置的響應時間閾值的預定Web頁面,則進行步驟S102 ;
[0008] S102、對于各Web客戶端對預定Web頁面的訪問請求,當最近K個周期中存在該 Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄時,允許將該訪問請求發(fā)給Web服 務器;當最近K個周期中不存在該Web客戶端訪問該訪問請求對應的前導Web頁面的記錄 時,丟棄該訪問請求;K為大于1的預定整數。
[0009] 可選地,各周期分別采用一個布隆過濾器存儲當前周期中各Web客戶端對前導 Web頁面的訪問記錄;各周期所采用的布隆過濾器構成一個布隆過濾器序列;
[0010] 采用一個寬度為K個周期長度的滑動窗口覆蓋最近K個周期的布隆過濾器,所述 滑動窗口的最右側是最新生成的布隆過濾器。
[0011] 可選地,所述布隆過濾器各散列函數輸入為前導Web頁面URL和Web客戶端IP地 址;
[0012] 所述步驟S101還包括:從前導Web頁面訪問請求中提取前導Web頁面URL和Web 客戶端IP地址,輸入當前周期對應的布隆過濾器;
[0013] 所述步驟S102還包括:從預定Web頁面訪問請求中提取所述前導Web頁面URL和 Web客戶端IP地址,輸入所述滑動窗口所覆蓋的K個布隆過濾器,以檢索最近K個周期中是 否存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄。
[0014] 可選地,當最近K個周期中不存在該Web客戶端對該訪問請求對應的前導Web頁 面的訪問記錄時,丟棄該訪問請求的步驟前包括:
[0015] 如果所述滑動窗口內的K個布隆過濾器中不存在該Web客戶端對該預定Web頁面 訪問請求的前導Web頁面的訪問記錄,則檢索當前周期內正在創(chuàng)建的布隆過濾器;如果正 在創(chuàng)建的布隆過濾器中存在該Web客戶端對該預定Web頁面訪問請求的前導Web頁面的訪 問記錄,則允許將該訪問請求發(fā)給Web服務器;如果正在創(chuàng)建的布隆過濾器中也不存在所 述訪問記錄,貝 1J丟棄該訪問請求。
[0016] 可選地,所述步驟S102中還包括:
[0017] 如果在一個周期內各預定Web網頁的平均響應時間均未超過該Web網頁所對應的 響應時間閾值,且過濾比例低于預定閾值,則返回步驟S101 ;所述過濾比例為在針對所述 預定Web頁面的訪問請求中,丟棄的訪問請求所占的比例。
[0018] 本發(fā)明還提供了一種防御資源消耗型攻擊的裝置,包括:過濾單元;
[0019] 檢測單元,用于每當一個周期結束時,分別將監(jiān)控到的各預定Web頁面的訪問請 求的平均響應時間和該預定Web頁面對應的響應時間閾值比較;如果該周期中存在平均響 應時間大于預置的響應時間閾值的預定Web頁面,則啟動所述過濾單元;
[0020] 所述過濾單元用于在啟動后對于各Web客戶端對預定Web頁面的訪問請求,當最 近K個周期中存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄時,允許將 該訪問請求發(fā)給Web服務器;當最近K個周期中不存在該Web客戶端訪問該訪問請求對應 的前導Web頁面的記錄時,丟棄該訪問請求;K為大于1的預定整數。
[0021] 可選地,所述檢測單元還用于對各周期分別采用一個布隆過濾器存儲該周期中各 Web客戶端對前導Web頁面的訪問記錄;各周期所采用的布隆過濾器構成一個布隆過濾器 序列;采用一個寬度為K個周期長度的滑動窗口覆蓋最近K個周期的布隆過濾器,所述滑動 窗口的最右側是最新生成的布隆過濾器。
[0022] 可選地,所述布隆過濾器各散列函數輸入為前導Web頁面URL和Web客戶端IP地 址;
[0023] 所述檢測單元還用于從前導Web頁面訪問請求中提取前導Web頁面URL和Web客 戶端IP地址,輸入當前周期對應的布隆過濾器;
[0024] 所述過濾單元還用于從預定Web頁面訪問請求中提取所述前導Web頁面URL和 Web客戶端IP地址,輸入所述滑動窗口所覆蓋的K個布隆過濾器,以檢索最近K個周期中是 否存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄。
[0025] 可選地,所述過濾單元還用于在丟棄訪問請求前,檢索當前周期內正在創(chuàng)建的布 隆過濾器;如果正在創(chuàng)建的布隆過濾器中存在該Web客戶端對該該預定Web頁面訪問請求 的前導Web頁面的訪問記錄,則允許將該訪問請求發(fā)給Web服務器;如果正在創(chuàng)建的布隆過 濾器中也不存在所述訪問記錄,則丟棄該訪問請求。
[0026] 可選地,所述檢測單元還用于當所述過濾單元啟動后,如果在一個周期內各預定 Web網頁的平均響應時間均未超過該Web網頁所對應的響應時間閾值,且過濾比例低于預 定閾值,則關閉所述過濾單元;所述過濾比例為在針對所述預定Web頁面的訪問請求中,丟 棄的訪問請求所占的比例。
[0027] 本發(fā)明的實施例提供了一種輕量級的資源消耗型Web攻擊防御方案,可以部署在 傳統(tǒng)Web安全網關上或Web應用防火墻上,不用修改Web服務器端的應用程序代碼,也不需 要修改Web頁面代碼,易于部署和實施;而且無須對正常的Web訪問行為進行干預,副作用 小。本發(fā)明的實施例主要利用了 Web攻擊流量和合法Web訪問流量的訪問上下文環(huán)境不同 來區(qū)分兩者流量,從而在防御時,能夠正確將Web攻擊流量和合法Web訪問流量區(qū)分開來, 對Web攻擊流量進行有效過濾,同時,可以最大限度保障正常用戶的Web訪問服務質量。本 發(fā)明的一個優(yōu)化實施例采用基于滑動窗口的布隆過濾器序列記錄最近K個單位時間段內 前導Web頁面訪問情況,可以確保前導Web頁面訪問記錄的時效性,同時能夠大大節(jié)省存儲 空間。
【專利附圖】
【附圖說明】
[0028] 圖1為實施例一的防御資源消耗型攻擊的方法的部署位置示意圖;
[0029] 圖2為實施例一中所述布隆過濾器記錄新元素 a的示意圖;
[0030] 圖3為實施例一中基于布隆迪過濾器的元素查找示意圖;
[0031] 圖4為實施例一中所述各個周期所產生的布隆過濾器序列和以及寬度為K的滑動 窗口的不意圖;
[0032] 圖5為實施例一的例子的流程示意圖;
[0033] 圖6為實施例二的例子的示意框圖。
【具體實施方式】
[0034] 下面將結合附圖及實施例對本發(fā)明的技術方案進行更詳細的說明。
[0035] 需要說明的是,如果不沖突,本發(fā)明實施例以及實施例中的各個特征可以相互結 合,均在本發(fā)明的保護范圍之內。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況 下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0036] 實施例一、一種防御資源消耗型攻擊的方法,包括:
[0037] S101、每當一個周期結束時,分別將監(jiān)控到的各預定Web頁面的訪問請求的平均 響應時間和該預定Web頁面對應的響應時間閾值比較;如果該周期中存在平均響應時間大 于預置的響應時間閾值的預定Web頁面,則進行步驟S102 ;比如有10個預定Web頁面,則 相應得到這10個預定Web頁面各自的訪問請求在該周期的平均響應時間,響應時間閾值也 有10個,和預定Web頁面--對應,比較時是分別用每個預定Web頁面的訪問請求的平均 響應時間和對應的響應時間閾值比較;
[0038] S102、對于各Web客戶端對預定Web頁面的訪問請求,當最近K個周期中存在該 Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄時,允許將該訪問請求發(fā)給Web服 務器;當最近K個周期中不存在該Web客戶端訪問該訪問請求對應的前導Web頁面的記錄 時,丟棄該訪問請求;K為大于1的預定整數。
[0039] 本實施例中,所述前導Web頁面是指包含一個指向預定Web頁面超級鏈接的Web 頁面。
[0040] 本實施例的防御資源消耗型Web攻擊的方法適合在Web安全網關或Web應用防火 墻上實現(xiàn)。如圖1所示,實施了本實施例的Web安全網關位于Web客戶端和受保護的Web 服務器之間,從Web客戶端接收HTTP請求并轉發(fā)給受保護的Web服務器,從受保護的Web 服務器接收HTTP響應并轉發(fā)給Web客戶端。所述Web客戶端可能為正常用戶使用的標準 Web瀏覽器,也可能是攻擊者用來發(fā)動Web攻擊的攻擊工具。Web客戶端通過HTTP協(xié)議與 受保護的Web服務器上的應用系統(tǒng)進行通信。Web客戶端與受保護的Web服務器上的應用 系統(tǒng)之間的通信都通過Web安全網關進行轉發(fā)。
[0041] 本實施例中,所述預定Web頁面可以但不限于是受保護的Web網站上那些資源消 耗較多從而可能被Web攻擊利用的脆弱Web頁面。所述響應時間閾值可以為該預定Web頁 面的普通平均響應時間值的指定倍數;所述普通平均響應時間值可以根據經驗值、理論值 或實驗值得到。所述周期的時間長度可以但不限于為30秒,也可以為60秒或其它值。K為 3或4,或選擇其它的值,選擇的K值越大,則需要的存儲空間越多,但記錄的訪問歷史更長; 選擇的K值越小,則可以節(jié)省存儲空間,但記錄的前導Web頁面訪問歷史更短;實際使用時, 可以根據需求和存儲空間的實際情況自行選擇K的取值。
[0042] 本實施例中,可以記錄各Web客戶端對各前導Web頁面的訪問情況,包括前導Web 頁面請求的客戶端IP、Web頁面URL以及請求時間。然后,在防御資源消耗型Web攻擊時, 通過查找前導Web頁面訪問歷史日志來判定該預定Web頁面的訪問請求是否存在關聯(lián)的前 導Web頁面請求,就可判定該預定Web頁面訪問請求是否符合Web訪問上下文,如果符合, 則轉發(fā),否則丟棄。
[0043] 本實施例中,當接收到針對預定Web頁面的訪問請求時,通過解析HTTP請求消息, 直接從HTTP請求消息的Referer字段中提取出的字符串就是前導Web頁面的URL值。如 果該URL中包含URL參數,則需要從原始URL值中去除URL參數,即去除URL中"?"字符串 之后所有內容得到的值為前導Web頁面URL的值??梢缘幌抻谕ㄟ^網頁爬蟲識別包含指 向所述預定Web頁面超級鏈接的前導Web頁面信息。
[0044] 本實施例中,在檢測階段(步驟S101)中,如果一個周期中各Web頁面的平均響應 時間均不大于預置的響應時間閾值,則認為未檢測到資源消耗型攻擊,無需進入防御階段 (步驟S102),因此不進行步驟S102。
[0045] 本實施例的一種實施方式中,各周期分別采用一個布隆過濾器(Bloom Filter)存 儲當前周期中各Web客戶端對前導Web頁面的訪問記錄。布隆過濾器是一個壓縮的數據結 構,用來表示一個集合中所有元素,并支持對該集合中元素的查找,即可以回答"某個元素 是否屬于某個集合? "的問題。
[0046] 本實施方式中,各周期所采用的布隆過濾器將構成一個布隆過濾器序列;每當一 個周期結束時,將生成一個新的布隆過濾器并追加到所述布隆過濾器序列中。在步驟S102 中,可通過對這個布隆過濾器序列中最近K個布隆過濾器進行檢索,從而判定Web客戶端在 發(fā)出所述預定Web頁面訪問請求前是否發(fā)出過對相關前導Web頁面的訪問。
[0047] 用來記錄單位時間段T內各Web客戶端對前導Web頁面訪問情況的布隆過濾器 如附圖2所示。布隆過濾器使用長為m的位串(bit Vector) V來表達數據元素集合A = {ap a2, . . . an}。設有k個具有均勻分布特性的哈希函數{hj, i = 1,. . .,k,滿足如下條件: Vx e 為比(X) e {1,2, · · ·,m},則:
[0048] 集合表示方法:對于集合中任一元素%,使用預先定義的k個哈希函數依次 對31進行哈希,得到k個哈希值e [l..m],然后依次將位串向量V的 bp b2,... bk位置1。圖2為將一個元素 a插入到Bloom Filter數據結構的過程(k = 3), 使用哈希函數氏、H2和H3對a進行哈希,得到bp b2和b3,將位串向量V的bp b2和b3位均 置為1,其它保持為0。從圖2可以看出,Bloom Filter數據表示方法實質是采用多個短標 簽來表示一個元素。
[0049] 集合元素查找方法:當需要判定某一元素 a是否屬于上述Bloom Filter表示的集 合時,方法如下:1)使用預先定義的k個哈希函數依次對元素 a進行哈希,得到k個哈希值 {bp b2,…bk},bi e [1. · m];然后判斷位串向量V的bp b2,…bk位置上是否都為1,如果都 為1,則表示該元素在集合中,否則表示不在集合中。圖3示意了基于Bloom Filter實現(xiàn)的 集合元素查找過程(即歸屬判定算法),對于要查找的元素 a,使用哈希函數氏、H2和H3進 行哈希得到bi、b2和b 3,將位串向量V的bi、b2和b3位作為與門的輸入,進行與運算,如果結 果為1則說明存在該元素 a,為0則說明不存在。。
[0050] 基于Bloom Filter實現(xiàn)集合元素查找時可能存在誤報,但是可以通過控制位串V 的長度m來將誤報率控制在可接受的范圍之內。
[0051] 本實施方式中,需要每個布隆過濾器的位串向量V的長度m。m可根據歷史訪問量 來決定,建議選擇長度m時需要確保每個周期結束時,所對應的布隆過濾器的位串的填充 率為1/2以下為最佳。布隆過濾器的位串V長度太長則浪費不必要的空間,位串V長度太 短則會導致誤報,過濾情況不佳。
[0052] 本實施方式中,布隆過濾器各散列函數輸入為前導Web頁面URL和Web客戶端IP 地址。在每個周期開始時,創(chuàng)建新的布隆過濾器,然后,對于每個Web客戶端對前導Web頁 面的訪問請求,取該前導Web頁面URL和Web客戶端IP地址作為布隆過濾器散列函數輸入, 對布隆過濾器相應位置進行修改,從而將Web客戶端對該前導Web頁面的訪問記錄到當前 周期的布隆過濾器中。
[0053] 在防御階段,當需要對針對預定Web頁面訪問請求進行過濾時,需要從預定Web頁 面訪問請求中提取前導Web頁面URL和Web客戶端IP地址;其中,前導Web頁面URL從預 定Web頁面訪問請求的Referer字段提取,然后,以所提取的前導Web頁面URL和Web客戶 端IP地址為最近K個布隆過濾器散列函數輸入,判定所述Web客戶端在最近K個周期內是 否訪問了該關聯(lián)的前導Web頁面。
[0054] 本實施方式中,可以但不限于采用一個寬度為K個周期長度的滑動窗口覆蓋最近 K個周期的布隆過濾器,所述滑動窗口的最右側是最新生成的布隆過濾器;也就是說,當創(chuàng) 建完成一個新的布隆過濾器后,要將所述滑動窗口向右移動,以保證最后生成的布隆過濾 器位于滑動窗口內最右側,原先位于滑動窗口最左側的布隆過濾器不再保存。
[0055] 為了確保所存儲前導Web頁面訪問歷史記錄的時效性,本實施方式采用基于滑動 窗口的布隆過濾器序列來記錄和存儲各個周期內各Web客戶端對前導Web頁面的訪問情 況。如圖4所示,從第一個周期開始,為每個周期創(chuàng)建獨立的如圖2所示的布隆過濾器結構 體,得到布隆過濾器序列,包括第一個周期對應的布隆過濾器結構體11、……第m個周期對 應的布隆過濾器結構體12、滑動窗口 13 (長度為4個周期)中的最近4個周期對應的布隆 過濾器、以及當前周期正在創(chuàng)建的布隆過濾器結構體14。初始時,滑動窗口 13位于布隆過 濾器序列中的第一個布隆過濾器結構體11的左側,即滑動窗口為空;第一個周期結束時, 第二個周期開始,為第二個周期創(chuàng)建新的布隆過濾器結構體,同時滑動窗口向前移動一格, 此時滑動窗口中包含了第一個周期中創(chuàng)建的布隆過濾器結構體11 ;第二個周期結束時,第 三個周期開始,為第三個周期創(chuàng)建新的布隆過濾器結構體11,同時滑動窗口向前移動一格, 它包含了第一、第二和第三個周期(假設K = 4)分別創(chuàng)建的布隆過濾器結構體11 ;以此類 推,當滑動窗口內的布隆過濾器個數達到了預先確定的K個時,位于滑動窗口左側的布隆 過濾器就可以丟棄,這樣就確保了當前滑動窗口中總是保存了最近K個周期中各Web客戶 端訪問前導Web頁面的歷史記錄。
[0056] 本實施方式中,在防御階段,當最近K個周期中不存在該Web客戶端對預定Web頁 面訪問請求對應的前導Web頁面的訪問記錄時,丟棄該訪問請求的步驟前具體可以包括:
[0057] 如果所述滑動窗口內的K個布隆過濾器中不存在該Web客戶端對該預定Web頁面 訪問請求的前導Web頁面的訪問記錄,則檢索當前周期內正在創(chuàng)建的布隆過濾器;如果正 在創(chuàng)建的布隆過濾器中存在該Web客戶端對該預定Web頁面訪問請求的前導Web頁面的訪 問記錄,則允許將該訪問請求發(fā)給Web服務器;如果正在創(chuàng)建的布隆過濾器中也不存在所 述訪問記錄,貝 1J丟棄該訪問請求。
[0058] 由于在步驟S102開始采取防御后,一些正常的Web客戶端可能會開始針對Web服 務器的正常訪問,為確保這部分合法Web流量的正常轉發(fā),在過濾資源消耗型Web攻擊流量 而判斷所述Web客戶端是否訪問了所述預定Web頁面相關的前導Web頁面時,除了檢索最 近K個周期所對應的K個布隆過濾器外,還檢索當前周期內正在創(chuàng)建的布隆過濾器。
[0059] 本實施例的一種實施方式中,所述步驟S102中還可以包括:
[0060] 如果在一個周期內各預定Web網頁的平均響應時間均未超過該Web網頁所對應的 響應時間閾值,且過濾比例低于預定閾值,則返回步驟S101 ;所述過濾比例為在針對所述 預定Web頁面的訪問請求中,丟棄的訪問請求所占的比例。
[0061] 本實施方式中,如果各預定Web網頁的平均響應時間均未超過該Web網頁所對應 的響應時間閾值,且過濾比例低于預定閾值,則判定針對Web服務器的Web攻擊結束,可 以回到步驟S101繼續(xù)檢測;如果達不到上述條件則認為攻擊還在繼續(xù),則依然執(zhí)行步驟 S102。
[0062] 本實施方式在防御過程中還將定期評估當前針對受保護Web服務器的Web攻擊是 否結束,當發(fā)現(xiàn)資源消耗型Web攻擊結束時,就可以返回資源消耗型Web攻擊檢測階段,在 資源消耗型Web攻擊檢測階段,只需要記錄當前單位時間段T內各Web客戶端對前導Web 頁面的訪問情況,以及通過監(jiān)控各預定Web頁面的平均響應時間來檢測資源消耗型Web攻 擊,而不進行流量過濾;當檢測到資源消耗型Web攻擊后再轉入防御階段。
[0063] 下面用一個具體例子說明本實施例,如圖5所示,該例子包括步驟一?三。該例子 中以脆弱Web頁面作為預定Web頁面。
[0064] 步驟501 :使用網頁爬蟲識別包含指向脆弱Web頁面超級鏈接的前導Web頁面信 息(包括前導Web頁面的URL和Web客戶端IP地址);確定每個脆弱Web頁面的普通平均 響應時間值,以及確定周期的時間長度T ;確定需要保存的最新前導Web頁面訪問歷史的有 效時間為K個周期;
[0065] 502 :創(chuàng)建一個布隆過濾器結構體存儲當前周期內各Web客戶端對前導Web頁面的 訪問情況;監(jiān)控當前周期內各脆弱Web頁面訪問請求的平均響應時間(比如有10個脆弱 Web頁面訪問請求,那么就有10個平均響應時間);當前周期結束時,如果發(fā)現(xiàn)當前周期內 存在平均響應時間大于預先設置的該脆弱Web頁面的響應時間閾值(一個脆弱Web頁面的 響應時間閾值可以但不限于為該脆弱Web頁面的所述普通平均響應時間值的指定倍數)的 脆弱Web頁面,則判定檢測到針對該脆弱Web頁面的資源消耗型Web攻擊,進入503執(zhí)行, 否則繼續(xù)執(zhí)行502 ;
[0066] 503 :針對各Web客戶端發(fā)出的每個脆弱Web頁面的訪問請求,提取關聯(lián)的前導 Web頁面信息(包括前導Web頁面的URL和Web客戶端IP地址),并檢索最近K個周期所 對應的K個布隆過濾器是否存在所提取的Web頁面信息,如果一個脆弱Web頁面訪問請求 關聯(lián)的前導Web頁面信息存在于K個布隆過濾器所記錄的前導Web頁面訪問歷史中(即: 所述K個布隆過濾器中存在所述Web客戶端訪問過所述前導Web頁面的記錄),表示該脆 弱Web頁面訪問請求存在對前導Web頁面的訪問記錄,貝U允許所述脆弱Web頁面訪問請求 通過,否則丟棄所述Web頁面訪問請求。
[0067] 實施例二,一種防御資源消耗型Web攻擊的裝置,包括:過濾單元;
[0068] 檢測單元,用于每當一個周期結束時,分別將監(jiān)控到的各預定Web頁面的訪問請 求的平均響應時間和該預定Web頁面對應的響應時間閾值比較;如果該周期中存在平均響 應時間大于預置的響應時間閾值的預定Web頁面,則啟動所述過濾單元;
[0069] 所述過濾單元用于在啟動后對于各Web客戶端對預定Web頁面的訪問請求,當最 近K個周期中存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄時,允許將 該訪問請求發(fā)給Web服務器;當最近K個周期中不存在該Web客戶端訪問該訪問請求對應 的前導Web頁面的記錄時,丟棄該訪問請求;K為大于1的預定整數。
[0070] 本實施例中,所述前導Web頁面是指包含一個指向預定Web頁面超級鏈接的Web 頁面。
[0071] 本實施例的一種實施方式中,所述檢測單元還可以用于對各周期分別采用一個布 隆過濾器存儲該周期中各Web客戶端對前導Web頁面的訪問記錄;各周期所采用的布隆過 濾器構成一個布隆過濾器序列;采用一個寬度為K個周期長度的滑動窗口覆蓋最近K個周 期的布隆過濾器,所述滑動窗口的最右側是最新生成的布隆過濾器。
[0072] 當然,在其它實施方式中,也可以采用別的方式存儲訪問記錄。
[0073] 本實施方式中,所述布隆過濾器各散列函數輸入可以但不限于為前導Web頁面 URL和Web客戶端IP地址;
[0074] 所述檢測單元還用于從前導Web頁面訪問請求中提取前導Web頁面URL和Web客 戶端IP地址,輸入當前周期對應的布隆過濾器;
[0075] 所述過濾單元還用于從預定Web頁面訪問請求中提取所述前導Web頁面URL和 Web客戶端IP地址,輸入所述滑動窗口所覆蓋的K個布隆過濾器,以檢索最近K個周期中是 否存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄。
[0076] 本實施方式的一種備選方案中,所述過濾單元還可以用于在丟棄訪問請求前,檢 索當前周期內正在創(chuàng)建的布隆過濾器;如果正在創(chuàng)建的布隆過濾器中存在該Web客戶端對 該該預定Web頁面訪問請求的前導Web頁面的訪問記錄,則允許將該訪問請求發(fā)給Web服 務器;如果正在創(chuàng)建的布隆過濾器中也不存在所述訪問記錄,則丟棄該訪問請求。
[0077] 本實施例的一種實施方式中,所述檢測單元還可以用于當所述過濾單元啟動后, 如果在一個周期內各預定Web網頁的平均響應時間均未超過該Web網頁所對應的響應時 間閾值,且過濾比例低于預定閾值,則關閉所述過濾單元;所述過濾比例為在針對所述預定 Web頁面的訪問請求中,丟棄的訪問請求所占的比例。
[0078] 下面用一個具體例子說明本實施例,該例子中,預定Web頁面為脆弱Web頁面;本 實施例的防御資源消耗型Web攻擊的裝置應用在如圖6所示的Web安全網關中,該Web安 全網關還包括:Web網頁請求轉發(fā)模塊和Web頁面響應轉發(fā)模塊;
[0079] Web頁面請求轉發(fā)模塊:用于將接收到的Web頁面訪問請求轉發(fā)給受保護的Web 服務器;
[0080] Web響應轉發(fā)模塊:用于接收來自受保護Web服務器的Web頁面響應消息,然后轉 發(fā)給對應的Web客戶端。
[0081] 本例子中,防御資源消耗型Web攻擊的裝置里的檢測單元具體可以包括:網頁爬 蟲模塊、Web網頁請求分類模塊、前導Web網頁訪問記錄模塊、脆弱Web網頁監(jiān)控模塊;
[0082] Web網頁請求分類模塊:接收來自Web客戶端的Web頁請求,并分為三類:針對脆 弱Web頁面的訪問請求,交給脆弱Web頁面監(jiān)控模塊處理;針對前導Web頁面的訪問請求, 交給前導Web頁面訪問記錄模塊處理;其它Web頁面訪問請求,直接發(fā)送給Web頁面請求轉 發(fā)模塊;
[0083] 網頁爬蟲模塊:對受保護Web網站進行掃描,識別被保護Web網站上那些資源消耗 較多從而可能被Web攻擊利用的脆弱Web頁面,以及包含指向這些脆弱Web頁面超級鏈接 的前導Web頁面信息;所述脆弱Web頁面信息和前導Web頁面信息提供給Web網頁請求分 類模塊以分類,還分別提供給前導Web頁面訪問記錄模塊和脆弱Web頁面監(jiān)控模塊使用;
[0084] 前導Web網頁訪問記錄模塊:接收來自Web頁面請求分類模塊轉發(fā)來的前導Web 頁面訪問請求,提取前導Web頁面的URL以及Web客戶端IP地址,從所述Web響應轉發(fā)模 塊提取Web頁面響應結果和響應時間;采用布隆過濾器來記錄當前周期內的前導Web頁面 訪問情況,各個周期T所生成的布隆過濾器構成一個布隆過濾器序列;
[0085] 脆弱Web網頁監(jiān)控模塊:在資源消耗型Web攻擊檢測階段,接收來自Web頁面請求 分類模塊轉發(fā)來的脆弱Web頁面訪問請求,并從Web頁面響應轉發(fā)模塊提取脆弱Web頁面 的響應時間,計算當前周期內每個脆弱Web頁面的平均響應時間;如果剛結束的周期中存 在平均響應時間大于預置的響應時間閾值的脆弱Web頁面,則啟動所述過濾單元,并將脆 弱Web頁面訪問請求轉發(fā)給該過濾單元;
[0086] 防御資源消耗型Web攻擊的裝置里的過濾單元用于在啟動后從脆弱Web頁面訪問 請求中提取包含在脆弱Web頁面請求消息中的前導Web頁面URL信息以及Web客戶端IP 地址,并以此檢索所述布隆過濾器序列中最近K個布隆過濾器,來判定該Web客戶端是否在 最近的K個時間段內發(fā)起過與所述脆弱Web頁面請求相關的前導Web頁面請求:如果是,則 表明針對該脆弱Web頁面的請求符合Web訪問上下文語義,轉發(fā)該脆弱Web頁面請求給Web 頁面請求轉發(fā)模塊;否則判定為針對該脆弱Web頁面的惡意請求,直接丟棄。
[0087] 本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令 相關硬件完成,所述程序可以存儲于計算機可讀存儲介質中,如只讀存儲器、磁盤或光盤 等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應 地,上述實施例中的各模塊/單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的 形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結合。
[〇〇88]當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟 悉本領域的技術人員當可根據本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變 形都應屬于本發(fā)明的權利要求的保護范圍。
【權利要求】
1. 一種防御資源消耗型攻擊的方法,包括: 5101、 每當一個周期結束時,分別將監(jiān)控到的各預定Web頁面的訪問請求的平均響應 時間和該預定Web頁面對應的響應時間閾值比較;如果該周期中存在平均響應時間大于預 置的響應時間閾值的預定Web頁面,則進行步驟S102 ; 5102、 對于各Web客戶端對預定Web頁面的訪問請求,當最近K個周期中存在該Web客 戶端對該訪問請求對應的前導Web頁面的訪問記錄時,允許將該訪問請求發(fā)給Web服務器; 當最近K個周期中不存在該Web客戶端訪問該訪問請求對應的前導Web頁面的記錄時,丟 棄該訪問請求;K為大于1的預定整數。
2. 如權利要求1所述的方法,其特征在于: 各周期分別采用一個布隆過濾器存儲當前周期中各Web客戶端對前導Web頁面的訪問 記錄;各周期所采用的布隆過濾器構成一個布隆過濾器序列; 采用一個寬度為K個周期長度的滑動窗口覆蓋最近K個周期的布隆過濾器,所述滑動 窗口的最右側是最新生成的布隆過濾器。
3. 如權利要求2所述的方法,其特征在于: 所述布隆過濾器各散列函數輸入為前導Web頁面URL和Web客戶端IP地址; 所述步驟S101還包括:從前導Web頁面訪問請求中提取前導Web頁面URL和Web客戶 端IP地址,輸入當前周期對應的布隆過濾器; 所述步驟S102還包括:從預定Web頁面訪問請求中提取所述前導Web頁面URL和Web 客戶端IP地址,輸入所述滑動窗口所覆蓋的K個布隆過濾器,以檢索最近K個周期中是否 存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄。
4. 如權利要求2所述的方法,其特征在于,當最近K個周期中不存在該Web客戶端對該 訪問請求對應的前導Web頁面的訪問記錄時,丟棄該訪問請求的步驟前包括: 如果所述滑動窗口內的K個布隆過濾器中不存在該Web客戶端對該預定Web頁面訪問 請求的前導Web頁面的訪問記錄,則檢索當前周期內正在創(chuàng)建的布隆過濾器;如果正在創(chuàng) 建的布隆過濾器中存在該Web客戶端對該預定Web頁面訪問請求的前導Web頁面的訪問記 錄,則允許將該訪問請求發(fā)給Web服務器;如果正在創(chuàng)建的布隆過濾器中也不存在所述訪 問記錄,貝IJ丟棄該訪問請求。
5. 如權利要求1?4中任一項所述的方法,其特征在于,所述步驟S102中還包括: 如果在一個周期內各預定Web網頁的平均響應時間均未超過該Web網頁所對應的響應 時間閾值,且過濾比例低于預定閾值,則返回步驟S101 ;所述過濾比例為在針對所述預定 Web頁面的訪問請求中,丟棄的訪問請求所占的比例。
6. -種防御資源消耗型攻擊的裝置,其特征在于,包括:過濾單元; 檢測單元,用于每當一個周期結束時,分別將監(jiān)控到的各預定Web頁面的訪問請求的 平均響應時間和該預定Web頁面對應的響應時間閾值比較;如果該周期中存在平均響應時 間大于預置的響應時間閾值的預定Web頁面,則啟動所述過濾單元; 所述過濾單元用于在啟動后對于各Web客戶端對預定Web頁面的訪問請求,當最近K 個周期中存在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄時,允許將該訪 問請求發(fā)給Web服務器;當最近K個周期中不存在該Web客戶端訪問該訪問請求對應的前 導Web頁面的記錄時,丟棄該訪問請求;K為大于1的預定整數。
7. 如權利要求6所述的裝置,其特征在于: 所述檢測單元還用于對各周期分別采用一個布隆過濾器存儲該周期中各Web客戶端 對前導Web頁面的訪問記錄;各周期所采用的布隆過濾器構成一個布隆過濾器序列;采用 一個寬度為K個周期長度的滑動窗口覆蓋最近K個周期的布隆過濾器,所述滑動窗口的最 右側是最新生成的布隆過濾器。
8. 如權利要求7所述的裝置,其特征在于: 所述布隆過濾器各散列函數輸入為前導Web頁面URL和Web客戶端IP地址; 所述檢測單元還用于從前導Web頁面訪問請求中提取前導Web頁面URL和Web客戶端 IP地址,輸入當前周期對應的布隆過濾器; 所述過濾單元還用于從預定Web頁面訪問請求中提取所述前導Web頁面URL和Web客 戶端IP地址,輸入所述滑動窗口所覆蓋的K個布隆過濾器,以檢索最近K個周期中是否存 在該Web客戶端對該訪問請求對應的前導Web頁面的訪問記錄。
9. 如權利要求7所述的裝置,其特征在于: 所述過濾單元還用于在丟棄訪問請求前,檢索當前周期內正在創(chuàng)建的布隆過濾器;如 果正在創(chuàng)建的布隆過濾器中存在該Web客戶端對該該預定Web頁面訪問請求的前導Web頁 面的訪問記錄,則允許將該訪問請求發(fā)給Web服務器;如果正在創(chuàng)建的布隆過濾器中也不 存在所述訪問記錄,貝 1J丟棄該訪問請求。
10. 如權利要求6?9中任一項所述的裝置,其特征在于: 所述檢測單元還用于當所述過濾單元啟動后,如果在一個周期內各預定Web網頁的平 均響應時間均未超過該Web網頁所對應的響應時間閾值,且過濾比例低于預定閾值,則關 閉所述過濾單元;所述過濾比例為在針對所述預定Web頁面的訪問請求中,丟棄的訪問請 求所占的比例。
【文檔編號】H04L29/06GK104113525SQ201410222702
【公開日】2014年10月22日 申請日期:2014年5月23日 優(yōu)先權日:2014年5月23日
【發(fā)明者】葉潤國, 范科峰, 徐克超, 蔡磊 申請人:中國電子技術標準化研究院