異常流量的攻擊特征如何發(fā)生演變,通過本發(fā)明提供的異常流量的檢測方法均可以將該攻擊Web的異常流量檢測出來。因此,本發(fā)明提供的異常流量檢測方法能否檢測出異常流量不受先前設置的“黑名單”的限制,所以,相較于現(xiàn)有技術基于“黑名單”進行異常流量的檢測方法,本發(fā)明提供的異常流量檢測方法克服了防御滯后的缺陷。另外,由于本發(fā)明提供的異常流量檢測方法的基準流量特征不受攻擊特征的影響,不管攻擊特征現(xiàn)在或將來如何演變,該方法均能夠將與基準流量特征不匹配的流量檢測出來,從而能夠將異常流量檢測出來。因此,本發(fā)明提供的方法能夠很好地應對Oday漏洞,有利于提高網(wǎng)絡安全。
【附圖說明】
[0051]為了清楚地理解本發(fā)明的技術方案,下面將描述本發(fā)明的【具體實施方式】時用到的附圖做一簡要說明。顯而易見地,這些附圖僅是本發(fā)明的部分實施例,本領域普通技術人員在不付出創(chuàng)造性勞動的前提下,還可以獲得其它附圖。
[0052]圖1是本發(fā)明實施例一提供的異常流量檢測方法的流程示意圖;
[0053]圖2是本發(fā)明實施例一提供的獲取基準流量特征的方法流程示意圖;
[0054]圖3是本發(fā)明實施例一提供的異常流量檢測裝置的結構示意圖;
[0055]圖4是本發(fā)明實施例二提供的防御Web攻擊的方法流程示意圖;
[0056]圖5是本發(fā)明實施例二提供的防御Web攻擊的裝置的結構示意圖。
【具體實施方式】
[0057]為使本發(fā)明的發(fā)明目的、技術手段和技術效果更加清楚、完整,下面結合附圖對本發(fā)明的【具體實施方式】進行詳細描述。
[0058]實施例一
[0059]圖1是本發(fā)明實施例一提供的異常流量的檢測方法的流程示意圖。如圖1所示,該方法包括以下步驟:
[0060]S101、獲取網(wǎng)站的基準流量特征:
[0061]需要說明的是,本發(fā)明實施例所述的基準流量特征是根據(jù)網(wǎng)站的合法URL構建得到的URL特征。如何確定一個URL是否合法呢?在本發(fā)明實施例中,可以通過檢查URL的響應來確定URL是否合法。例如,當URL的響應為“HTTP 200 OK”,則表明該URL是合法正確的;當URL的響應為“HTTP 404 Not Found”時,則表明該URL不存在或者該URL是一個已斷開的鏈接或引用,其是不合法的。
[0062]在本發(fā)明實施例中,可以采用以下三種方式中的任意一種方式獲取網(wǎng)站的基準特征流量。
[0063]第一種、通過內(nèi)置的方式記錄網(wǎng)站的合法URL的特征,然后根據(jù)網(wǎng)站的合法URL的特征構建網(wǎng)站的基準流量特征:
[0064]這種方式適用于針對一種或者幾種被廣泛認知的Web應用,如phpbb、wordpress等。但是由于網(wǎng)站的實現(xiàn)技術千差萬別,而且內(nèi)置的流量特征只能是事先知道的Web應用類型,因此該通過內(nèi)置的方式記錄網(wǎng)站的合法URL的特征不能適用于任意類型的網(wǎng)站。
[0065]第二種、通過管理員的配置記錄網(wǎng)站的合法URL的特征,然后根據(jù)網(wǎng)站的合法URL的特征構建基準流量特征:
[0066]這種方式可以適用于任意類型的網(wǎng)站,但是這種方式需要管理員手動配置和更新一個可能包含成千上萬數(shù)量的URL、表單子段和參數(shù)的巨大白名單。因而這種方式不僅容易出錯,而且會給管理人員帶來巨大的配置負擔。
[0067]第三種、通過學習的方式構建網(wǎng)站的合法URL的特征,然后根據(jù)網(wǎng)站的合法URL的特征獲取基準流量特征:
[0068]通過學習用戶訪問網(wǎng)站的過程中輸入的合法URL構建網(wǎng)站的URL特征,這種方式不僅可以適用于任何類型的網(wǎng)站,而且不需要管理員手動配置,并且每次學習到的特征都是針對特定網(wǎng)站,具有很尚的準確性。
[0069]通過學習的方式獲取基準流量特征的具體過程至少包括第一迭代學習過程,其中,第一迭代學習過程包括第一學習階段和第二學習階段,該通過學習的方式獲取基準流量特征的方法流程示意圖如圖2所示,其以下步驟:
[0070]S201、在第一學習階段內(nèi),記錄合法URL的特征以及輸入該合法URL的第一用戶,并累積輸入該合法URL的第一用戶量,直到輸入該合法URL的第一用戶量達到第一預設數(shù)量,當輸入該合法URL的用戶量達到第一預設數(shù)量后,Web防御系統(tǒng)的學習階段從第一學習階段切換到第二學習階段:
[0071]需要說明的是,Web防御系統(tǒng)部署在網(wǎng)站的前端,Web防御系統(tǒng)在接收到用戶訪問網(wǎng)站時輸入的URL請求后,首先要驗證該URL是否為合法URL,只有在確定該URL是合法URL后,才會將該URL加入到學習列表中,對該URL進行學習。本發(fā)明實施例通過檢查該URL對應的響應是否正確來確定URL是否合法。當URL的響應正確時,則該URL是合法正確的,當URL的響應表明該URL不存在或者該URL是一個已斷開的鏈接或引用,則該URL不是合法的。
[0072]在確定接收到的URL為合法URL后,Web防御系統(tǒng)將該合法URL加入到學習列表中進行學習。其中,Web防御系統(tǒng)在學習合法URL的第一學習階段內(nèi)執(zhí)行以下操作:記錄合法URL的特征以及輸入該合法URL的第一用戶,并累積輸入該合法URL的第一用戶量,直到輸入該合法URL的第一用戶量達到第一預設數(shù)量。
[0073]設定被學習到的合法URL的第一用戶量從O開始累積到第一預設數(shù)量的學習階段為第一學習階段。其中,第一預設數(shù)量為經(jīng)驗值,根據(jù)網(wǎng)站設計的大小,第一預設數(shù)量可以取不同數(shù)值。經(jīng)過多次試驗驗證,當?shù)谝活A設數(shù)量為30時,可以滿足絕大多數(shù)網(wǎng)站的需求。另外,為了方便描述,在本發(fā)明實施例中,將第一學習階段學習到的合法URL的用戶定義為第一用戶,需要說明的是,第一用戶不是一個用戶,而是多個用戶的統(tǒng)稱。當同一個用戶在第一學習階段內(nèi)多次輸入合法URL時,在累計第一用戶量時只對該用戶累計一次。
[0074]根據(jù)URL的特征信息,記錄合法URL的特征可以具體包括:記錄合法URL的Method信息、Query String信息、Cookie信息以及Referer信息中的至少一種。其中,QueryString信息由一個或者多個key-value對構成。學習過程中會記錄下key的名稱以及與之對應的value的類型與長度,例如,key的名稱為name (姓名),value的類型為字符串,最大長度為20。
[0075]S202、在第二學習階段內(nèi),記錄合法URL的特征以及輸入該合法URL的第二用戶,并累積合法URL的第二用戶量,直到輸入所述合法URL的第二用戶量達到第二預設數(shù)量;所述第二用戶與所述第一用戶不同:
[0076]需要說明的是,本發(fā)明實施例所述的學習URL的特征的階段包括兩個學習階段:第一學習階段和第二學習階段。不同學習階段學習不同用戶輸入的合法URL。當?shù)谝粚W習階段學習完成后,Web防御系統(tǒng)自動切換到第二學習階段。
[0077]需要說明的是,在第二學習階段對合法URL的學習過程與在第一學習階段對合法URL的學習過程相同,其區(qū)別僅在于,在第一學習階段學習的合法URL來自于第一用戶,在第二學習階段學習的合法URL來自于第二用戶。其中,與第一用戶相似,第二用戶也不是一個用戶,而是在第二學習階段學習到的合法URL對應的多個用戶的統(tǒng)稱,并且,第二用戶中的每一個用戶與第一用戶中的每一個用戶均不相同。
[0078]另外,與第一預設數(shù)量相同,第二預設數(shù)量也是經(jīng)驗值,根據(jù)網(wǎng)站設計的大小,第二預設數(shù)量可以取不同數(shù)值。通常情況下,為了準確地獲取到基準流量特征,第二預設數(shù)量大于第一預設數(shù)量。舉例來說,當?shù)谝活A設數(shù)量為30時,第二預設數(shù)量可以為100。
[0079]S203、比較第二學習階段內(nèi)記錄的流量特征是否與第一學習階段內(nèi)記錄的流量特征是否一致,如果是,執(zhí)行步驟S204,如果否,執(zhí)行步驟S205至步驟S207:
[0080]由于第一學習階段內(nèi)記錄的合法URL的用戶與第二學習階段內(nèi)記錄的合法URL的用戶不同,所以,第一學習階段內(nèi)學習到的URL的特征與第二學習階段內(nèi)學習到的URL特征不會導致因為固定用戶的上網(wǎng)習慣而導致兩個學習階段學習到的URL特征一致的問題,所以,當兩個學習階段學習到的URL特征一致時,說明,學習到的合法URL的特征進行穩(wěn)定狀態(tài),因此,也就能夠將第二學習階段和第一學習階段學習到的合法URL的特征確定為網(wǎng)站的基準流量特征。
[0081]另外,由于第二學習階段內(nèi)記錄的合法URL的用戶與第一學習階段內(nèi)記錄的合法URL的用戶不同,所以,不會出現(xiàn)由于固定用戶的上網(wǎng)習慣導致URL的特征進行穩(wěn)定狀態(tài)的假象,因此,當?shù)谝粚W習階段和第二學習階段學習到的URL特征一致時,就表明URL特征真正進入了穩(wěn)定狀態(tài),所以,由此得到的基準流量特征的精度較高。
[0082]另外,一個URL的特征通常會包括多個子特征信息,因此,所述比較第二學習階段內(nèi)記錄的流量特征是否與第一學習階段內(nèi)