本申請的實施方式涉及網(wǎng)絡(luò)安全領(lǐng)域,更具體地,本申請的實施方式涉及攻擊檢測方法和裝置。
背景技術(shù):
:本部分旨在為權(quán)利要求書中陳述的本申請的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是現(xiàn)有技術(shù)。目前,隨著網(wǎng)絡(luò)能夠為用戶提供的內(nèi)容越來越多,而且用戶數(shù)量不斷增大,如何提高網(wǎng)絡(luò)安全成為行業(yè)內(nèi)不但深入解決的問題。具體來說,為了維護網(wǎng)絡(luò)安全,需要對惡意用戶的攻擊行為進行檢測。相關(guān)技術(shù)中通常統(tǒng)計同一用戶在一定時間段內(nèi)發(fā)送的訪問請求的數(shù)量。具體的,統(tǒng)計同一IP(InternetProtocol,網(wǎng)絡(luò)之間互連的協(xié)議)地址,在一定時間段內(nèi)發(fā)送的URL(UniformResourceLocator,統(tǒng)一資源定位符)的數(shù)量,若該數(shù)量超過閾值,則確定檢測到攻擊行為。并進一步的攔截該IP發(fā)送的訪問請求。技術(shù)實現(xiàn)要素:出于相關(guān)技術(shù)中僅通過IP地址來檢測是否發(fā)生攻擊行為的原因,現(xiàn)有技術(shù)中,網(wǎng)絡(luò)攻擊檢測的檢測維度單一,檢測結(jié)果不夠準確。此外,考慮到誤判的影響,現(xiàn)有技術(shù)中攻擊檢測的閾值設(shè)置的較高,使得攻擊檢測的靈敏度低。而且,現(xiàn)有技術(shù)中,一旦檢測到攻擊行為,就封鎖用戶IP,該用戶不能夠在發(fā)送訪問請求,在存在誤判的情況下,使得誤判的用戶無法繼續(xù)進行訪問操作,降低用戶體驗。因此在現(xiàn)有技術(shù)中,存在檢測維度單一、檢測結(jié)果不夠準確、靈敏度低以及誤判率高的問題,使得用戶被誤判后無法操作,用戶整體滿意度低,這是非常令人煩惱的過程。為此,非常需要一種改進的攻擊檢測方法和裝置,達到提高檢測準確性,降低誤判率的目的,并能夠提高用戶的應(yīng)用體驗。在本上下文中,本申請的實施方式期望提供一種攻擊檢測方法和裝置。在本申請實施方式的第一方面中,提供了一種攻擊檢測方法,包括:獲取訪問請求中的用戶標識和URL;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。進一步的,所述若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊之前,所述方法還包括:確定構(gòu)建的所述訪問行為描述信息不在訪問行為白名單中;和/或,確定所述用戶標識不在攻擊者名單中。進一步的,若所述用戶標識不在所述攻擊者名單中,所述方法還包括:將構(gòu)建的所述訪問行為描述信息提交到預(yù)置分析隊列中;所述若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊,具體包括:采用獨立的線程處理所述預(yù)置分析隊列,并若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。進一步的,所述方法還包括:判斷所述預(yù)置分析隊列中的訪問行為描述信息總量是否達到指定總量;若是,則丟棄構(gòu)建的所述訪問行為描述信息;若否,則將構(gòu)建的所述訪問行為描述信息提交到預(yù)置分析隊列中。進一步的,所述采用獨立的線程處理所述預(yù)置分析隊列,并若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊,具體包括:采用獨立的線程從所述預(yù)置分析隊列中獲取構(gòu)建的所述訪問行為描述信息;并,采用原子操作的方式將分布式內(nèi)存緩存中記錄的包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量累加1,并獲取累加結(jié)果;若在預(yù)設(shè)時長內(nèi)所述累加結(jié)果大于所述預(yù)設(shè)閾值,則確定檢測到攻擊。進一步的,所述獲取訪問請求中的用戶標識和統(tǒng)一資源定位符URL之前,所述方法還包括:確定自動熔斷開關(guān)處于關(guān)閉狀態(tài);所述方法還包括:若第一指定時長內(nèi)未獲取到累加結(jié)果的次數(shù)超過第一預(yù)設(shè)次數(shù),則配置所述自動熔斷開關(guān)處于打開狀態(tài)。進一步的,所述確定構(gòu)建的所述訪問行為描述信息不在訪問行為白名單中,具體包括:確定構(gòu)建的所述訪問行為描述信息不在分布式內(nèi)存緩存中存儲的訪問行為白名單中;所述確定所述用戶標識不在攻擊者名單中,具體包括:確定所述用戶標識不在分布式內(nèi)存緩存中存儲的攻擊者名單中。進一步的,所述獲取訪問請求中的用戶標識和統(tǒng)一資源定位符URL之前,所述方法還包括:確定自動熔斷開關(guān)處于關(guān)閉狀態(tài);所述方法還包括:若第二指定時長內(nèi)確定訪問行為描述信息是否在訪問行為白名單中的操作和/或確定用戶標識是否在攻擊者名單中的操作的超時的總次數(shù)超過第二預(yù)設(shè)次數(shù),則配置所述自動熔斷開關(guān)處于打開狀態(tài)。進一步的,若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,所述方法還包括:若確定所述用戶標識不在所述攻擊者名單中,則將所述用戶標識添加到所述攻擊者名單中。進一步的,確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識,具體包括:確定所述URL與滿足預(yù)設(shè)正則規(guī)則的URL集合中的URL類是否匹配;若匹配,則將匹配的URL類對應(yīng)的分組標識、確定為所述URL歸屬的預(yù)設(shè)URL分組的分組標識。進一步的,所述方法還包括:接收攜帶至少一組URL分組的攻擊檢測參數(shù)的配置指令;根據(jù)所述配置指令配置所述至少一組攻擊檢測參數(shù);其中,所述攻擊檢測參數(shù)包括:對應(yīng)URL分組的所述預(yù)設(shè)時長、對應(yīng)URL分組和對應(yīng)URL分組的所述預(yù)設(shè)閾值。進一步的,若確定所述用戶標識在所述攻擊者名單中,所述方法還包括:請求用于發(fā)送所述訪問請求的終端返回指定的需要手動輸入的驗證信息;若所述終端返回正確的驗證信息,則將構(gòu)建的所述用戶訪問行為描述信息添加到所述訪問行為白名單中;以及,將所述訪問請求所請求的數(shù)據(jù)發(fā)送給所述終端。進一步的,所述確定檢測到攻擊之后,所述方法還包括:輸出遭到攻擊的報警提示。進一步的,所述獲取訪問請求中的用戶標識和統(tǒng)一資源定位符URL之前,所述方法還包括:確定手動攔截校驗開關(guān)處于關(guān)閉狀態(tài)、且自動檢測開關(guān)處于打開狀態(tài)、以及所述訪問請求對應(yīng)的IP地址不在預(yù)置的IP地址白名單中。進一步的,所述方法還包括:針對所述訪問行為白名單中的每一條訪問行為描述信息,若該條訪問行為描述信息在所述訪問行為白名單中的存儲時長大于第一預(yù)設(shè)存儲時長,則刪除該條訪問行為描述信息;針對所述攻擊者名單中的每一個用戶標識,若該用戶標識在所述攻擊者名單中的存儲時長大于第二預(yù)設(shè)存儲時長,則刪除該用戶標識。在本申請實施方式的第二方面中,提供了一種攻擊檢測裝置,包括:URL獲取模塊,用于獲取訪問請求中的用戶標識和URL;分組標識確定模塊,用于確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;構(gòu)建模塊,用于構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;檢測模塊,用于若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。在本申請實施方式的第三方面中,提供了一種攻擊檢測設(shè)備,例如,可以包括存儲器和處理器,其中,處理器可以用于讀取存儲器中的程序,執(zhí)行下列過程:獲取訪問請求中的用戶標識和URL;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。在本申請實施方式的第四方面中,提供了一種程序產(chǎn)品,其包括程序代碼,當所述程序產(chǎn)品運行時,所述程序代碼用于執(zhí)行以下過程:獲取訪問請求中的用戶標識和URL;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。根據(jù)本申請實施方式的攻擊檢測方法和裝置,在獲取訪問請求中的用戶標識和URL后;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;并構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。這樣,本申請相當于將用戶的訪問行為抽象成用戶行為描述信息。那么,攻擊檢測是基于訪問行為描述信息來進行的,也即預(yù)設(shè)時長內(nèi),相同的訪問行為描述信息的數(shù)量超過預(yù)設(shè)閾值則說明,該訪問行為描述信息對應(yīng)的訪問行為是攻擊行為。用戶行為描述信息是基于用戶標識和訪問的URL的分組標識構(gòu)建的,相對于現(xiàn)有技術(shù)中僅通過IP地址來檢測,用戶行為描述信息更適用于來判斷用戶訪問行為是否為攻擊行為。所以,本申請?zhí)峁┑募夹g(shù)方案能夠提高檢測結(jié)果的準確性。進一步地,由于檢測的準確性提高,誤判率也就會降低,檢測時的預(yù)設(shè)閾值相比現(xiàn)有技術(shù)也能夠設(shè)置的小一些,從而檢測的靈敏度也能夠提高。誤判率降低了,故此也能夠進一步提高用戶整體的應(yīng)用體驗。附圖說明通過參考附圖閱讀下文的詳細描述,本申請示例性實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本申請的若干實施方式,其中:圖1示意性地示出了根據(jù)本申請實施方式的應(yīng)用場景示意圖之一;圖2示意性地示出了根據(jù)本申請實施方式的應(yīng)用場景示意圖之二;圖3示意性地示出了根據(jù)本申請一實施例的攻擊檢測方法的流程示意圖;圖4示意性地示出了根據(jù)本申請另一實施例的攻擊檢測方法的流程示意圖;圖5示意性地示出了根據(jù)本申請再一實施例的攻擊檢測裝置的結(jié)構(gòu)示意圖;圖6示意性地示出了根據(jù)本申請再一實施例的攻擊檢測裝置的結(jié)構(gòu)示意圖;圖7示意性地示出了根據(jù)本申請一實施例的攻擊檢測的程序產(chǎn)品的結(jié)構(gòu)示意圖;在附圖中,相同或?qū)?yīng)的標號表示相同或?qū)?yīng)的部分。具體實施方式下面將參考若干示例性實施方式來描述本申請的原理和精神。應(yīng)當理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進而實現(xiàn)本申請,而并非以任何方式限制本申請的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。本領(lǐng)域技術(shù)人員知道,本申請的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。根據(jù)本申請的實施方式,提出了一種攻擊檢測方法和裝置。在本文中,需要理解的是,所涉及的術(shù)語:1、URL分組:根據(jù)設(shè)定的分類規(guī)則對不同的URL進行分類,一類URL為一個URL分組;也就是說,每個URL分組中包括至少一個URL。2、訪問行為描述信息:顧名思義,用來描述用戶的訪問行為的信息,一個用戶標識加一個URL分組的分組標識可以構(gòu)建一條訪問行為描述信息。3、攻擊行為:統(tǒng)計一個檢測周期內(nèi)的同一訪問行為描述信息的數(shù)量,若該數(shù)量大于預(yù)設(shè)閾值,則確定檢測到訪問攻擊。其中,檢測周期,指下文中的預(yù)設(shè)時長。4、原子操作:線程間交互數(shù)據(jù)最細粒度的同步操作,它可以保證線程間讀寫某個數(shù)值的原子性。由于不需要加重量級的互斥鎖進行同步,因此非常輕量,而且也不需要在內(nèi)核間來回切換調(diào)度,效率較高。5、分布式內(nèi)存緩存:可以緩存至少一個服務(wù)器的內(nèi)存。此外,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。下面參考本申請的若干代表性實施方式,詳細闡釋本申請的原理和精神。發(fā)明概述本發(fā)明人在實現(xiàn)本發(fā)明的過程中研究發(fā)現(xiàn),現(xiàn)有技術(shù)中,出于相關(guān)技術(shù)中僅通過IP地址來檢測是否發(fā)生攻擊行為的原因,現(xiàn)有技術(shù)中,網(wǎng)絡(luò)攻擊檢測的檢測維度單一,檢測結(jié)果不夠準確。此外,考慮到誤判的影響,現(xiàn)有技術(shù)中攻擊檢測的閾值設(shè)置的較高,使得攻擊檢測的靈敏度低。而且,現(xiàn)有技術(shù)中,一旦檢測到攻擊行為,就封鎖用戶IP,該用戶不能夠在發(fā)送訪問請求,在存在誤判的情況下,使得誤判的用戶無法繼續(xù)進行訪問操作,降低用戶體驗。本申請實施例中,在獲取訪問請求中的用戶標識和URL后;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;并構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。這樣,本申請相當于將用戶的訪問行為抽象成用戶行為描述信息。那么,攻擊檢測是基于訪問行為描述信息來進行的,也即預(yù)設(shè)時長內(nèi),相同的訪問行為描述信息的數(shù)量超過預(yù)設(shè)閾值則說明,該訪問行為描述信息對應(yīng)的訪問行為是攻擊行為。用戶行為描述信息是基于用戶標識和訪問的URL的分組標識構(gòu)建的,相對于現(xiàn)有技術(shù)中僅通過IP地址來檢測,用戶行為描述信息更適用于來判斷用戶訪問行為是否為攻擊行為。所以,本申請?zhí)峁┑募夹g(shù)方案能夠提高檢測結(jié)果的準確性。進一步地,由于檢測的準確性提高,誤判率也就會降低,檢測時的預(yù)設(shè)閾值相比現(xiàn)有技術(shù)也能夠設(shè)置的小一些,從而檢測的靈敏度也能夠提高。誤判率降低了,故此也能夠進一步提高用戶整體的應(yīng)用體驗。在介紹了本申請的基本原理之后,下面具體介紹本申請的各種非限制性實施方式。應(yīng)用場景總覽首先參考圖1其為本申請實施例提供的攻擊檢測方法的應(yīng)用場景示意圖之一。該場景例如可以包括發(fā)送訪問請求的用戶10、用戶終端11和提供訪問服務(wù)的訪問資源服務(wù)器12。其中,所述用戶終端11中可安裝有各種客戶端,如網(wǎng)易新聞客戶端、網(wǎng)易一元購客戶端、視頻客戶端等。用戶10可基于所述用戶終端11中的客戶端,向訪問資源服務(wù)器12下發(fā)攜帶用戶標識和URL的訪問請求;由訪問資源服務(wù)器12獲取訪問請求中的用戶標識和統(tǒng)一資源定位符URL;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。此外,管理攻擊檢測的管理員可以通過訪問資源服務(wù)器配置用于進行攻擊檢測的參數(shù)。例如配置URL分組的參數(shù)、配置檢測周期即預(yù)設(shè)時長的參數(shù)等等。該檢測維護設(shè)備可以為訪問資源服務(wù)器12,也可以是訪問資源服務(wù)器12之外的其它設(shè)備(例如除用戶終端11之外的另一個終端,或者其它服務(wù)器)。如圖2所示,為本申請實施例提供的攻擊檢測方法的應(yīng)用場景示意圖之二。該場景例如可以包括發(fā)送訪問請求的用戶10、用戶終端11和至少一個訪問資源服務(wù)器12(圖2中示出了包含多個訪問資源服務(wù)器的情況)和分布式內(nèi)存緩存服務(wù)器13以及配置平臺14。其中,可以由訪問資源服務(wù)器12進行攻擊檢測,管理攻擊檢測的管理員可以通過配置平臺14配置進行攻擊檢測的參數(shù),如前述的URL分組、檢測周期等。分布式內(nèi)存緩存服務(wù)器13可以為訪問資源服務(wù)器12提供內(nèi)存緩存功能,以便于提高攻擊檢測的效率。其中,所述用戶終端11中可安裝有各種客戶端,如網(wǎng)易新聞客戶端、網(wǎng)易一元購客戶端、視頻客戶端等。用戶10可基于所述用戶終端11中的客戶端,向所述訪問資源服務(wù)器12下發(fā)攜帶用戶標識和URL的訪問請求;由所述訪問資源服務(wù)器12獲取訪問請求中的用戶標識和統(tǒng)一資源定位符URL;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。其中,進一步的,內(nèi)存緩存服務(wù)器13中可以存儲有訪問行為白名單和/或攻擊者名單。當具有訪問行為白名單和攻擊者名單時,訪問資源服務(wù)器12在執(zhí)行若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊之前,可以先確定構(gòu)建的所述訪問行為描述信息不在所述訪問行為白名單中,并且確定所述用戶標識不在所述攻擊者名單中。具體實施時,分布式內(nèi)存緩存服務(wù)器中還可以存儲和管理有其它信息,具體的將在后文中描述,這里暫不詳述。綜上,在圖1和圖2所示的應(yīng)用場景中,用戶終端11和訪問資源服務(wù)器12可通過通信網(wǎng)絡(luò)進行通信連接,該網(wǎng)絡(luò)可以為局域網(wǎng)、廣域網(wǎng)等。用戶終端11可以為手機、平板電腦、筆記本電腦、個人計算機等,訪問資源服務(wù)器12可以為任何能夠支持相應(yīng)的攻擊檢測的服務(wù)器設(shè)備。示例性方法下面結(jié)合圖1和圖2所述的應(yīng)用場景,參考圖3-4來描述根據(jù)本申請示例性實施方式的用于的方法。需要注意的是,上述應(yīng)用場景僅是為了便于理解本申請的精神和原理而示出,本申請的實施方式在此方面不受任何限制。相反,本申請的實施方式可以應(yīng)用于適用的任何場景。如圖3所示,為本申請實施例提供的攻擊檢測方法的流程示意圖,包括:步驟301:獲取訪問請求中的用戶標識和URL。步驟302:確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識。步驟303:構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息。步驟304:若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。其中,在一個實施例中,可以預(yù)先配置有預(yù)設(shè)URL分組。例如/product/*.html為一個預(yù)設(shè)URL分組,其中“*”可以理解為通配符,用于與任意字符匹配。也就是說包含/product/*.html的URL均屬于該URL分組。例如,/product/123.html,/product/456.html等頁面均屬于/product/*.html分組。具體實施時,為了提高確定分組標識的效率,步驟302中確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識,可具體包括:步驟A1:確定所述URL與滿足預(yù)設(shè)正則規(guī)則的URL集合中的URL類是否匹配。步驟A2:若匹配,則將匹配的URL類對應(yīng)的分組標識、確定為所述URL歸屬的預(yù)設(shè)URL分組的分組標識。其中,具體實施時,分組標識可以根據(jù)實際需求設(shè)定,本申請對此不做限定。當然,需要說明的是,也可以采用其他方法進行URL分組,例如提供相似展示對象的URL分為一組,相似展示對象例如是外觀和功能相似的手機的圖片。當然,任何能夠分組的方法均適用于本申請實施例,本申請對此不做限定。其中,在一個實施例中,為了滿足功能性需求,管理攻擊檢測的管理員可根據(jù)實際需求配置用于攻擊檢測的參數(shù)。具體的,所述方法還包括:步驟B1:接收攜帶至少一組URL分組的攻擊檢測參數(shù)的配置指令。步驟B2:根據(jù)所述配置指令配置所述至少一組攻擊檢測參數(shù);其中,所述攻擊檢測參數(shù)包括:對應(yīng)URL分組的所述預(yù)設(shè)時長、對應(yīng)URL分組和對應(yīng)URL分組的所述預(yù)設(shè)閾值。例如,具體實施時,管理員可以通過應(yīng)用場景2中的配置平臺14配置第一URL分組,第二URL分組,并分別配置第一URL分組和第二URL分組各自對應(yīng)的預(yù)設(shè)時長和預(yù)設(shè)閾值。例如,第一URL分組對應(yīng)的預(yù)設(shè)時長為T1,第二URL分組對應(yīng)的預(yù)設(shè)時長為T2(當然T1和T2可以相同也可以不同)。然后,配置平臺生成配置指令發(fā)送出去。然后,應(yīng)用場景2中的訪問資源服務(wù)器12在接收到配置指令后進行相應(yīng)配置。這樣,管理員可以根據(jù)自身需求來進行參數(shù)配置,以便于動態(tài)的調(diào)整參數(shù),滿足當前的需求,實現(xiàn)更加合理的攻擊檢測。其中,在一個實施例中,還可以接收刪除URL分組及對應(yīng)的攻擊檢測參數(shù)的刪除指令,這樣,以便于將不需要的URL分組及攻擊檢測參數(shù)刪除,節(jié)約存儲資源。進一步地,本申請實施例中為了提高攻擊檢測的效率,在所述若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊之前,所述方法還包括:確定構(gòu)建的所述訪問行為描述信息不在訪問行為白名單中;和/或,確定所述用戶標識不在攻擊者名單中。其中,訪問行為白名單中存儲的訪問行為描述信息是表示沒有攻擊行為的訪問行為描述信息。所以,當步驟303中構(gòu)建的訪問行為描述信息在白名單中時,可以表示無需執(zhí)行步驟304。同理,攻擊者名單中存儲的用戶標識表示的是具有攻擊行為的用戶的用戶標識。所以,當步驟303中構(gòu)建的訪問行為描述信息中的用戶標識存在于攻擊者名單中時,則可以直接確定檢測到攻擊或執(zhí)行其它操作,而無需執(zhí)行步驟304。故此,可以提高檢測的效率。具體實施時,訪問行為白名單和攻擊者名單可以是獨立的名單,也可以是混合在一起的名單?;旌显谝黄饡r的訪問行為白名單和攻擊者名單,可以如表1所示,各個訪問行為描述信息都有對應(yīng)的名單成員標識,稱為Key值,在表1中,0表示攻擊者名單成員,1表示訪問行為白名單成員。需要說明的是,表1僅用于說明訪問行為白名單和攻擊者名單,并不用于限定本申請實施例。具體實施時,可以根據(jù)實際需要確定,本申請對此不作限定。表1訪問行為描述信息名單成員標識(Key值)A10…………Nn1具有key值時,確定構(gòu)建的所述訪問行為描述信息不在訪問行為白名單中;可具體執(zhí)行為,若構(gòu)建的所述訪問行為描述信息對應(yīng)的key值不為1,則確定構(gòu)建的所述訪問行為描述信息不在訪問行為白名單中。同理,確定所述用戶標識不在攻擊者名單中,可具體執(zhí)行為若所述用戶標識對應(yīng)的訪問行為描述信息對應(yīng)的key值不為0則確定所述用戶標識不在攻擊者名單中。當然,若具體實施時,根據(jù)訪問行為描述信息查詢訪問行為白名單和攻擊者名單后,返回的訪問行為描述信息對應(yīng)的key值為空,則說明即不在訪問行為描述信息白名單中也不在攻擊者名單中。當然,具體實施時,為了進一步便于描述訪問行為描述信息,也可以為訪問行為描述信息生成對應(yīng)的信息標識。當然,同樣訪問行為描述信息的信息標識相同。其中,訪問行為白名單中存儲的訪問行為描述信息可以是根據(jù)實際需要添加的。例如,預(yù)先可以確定安全用戶的用戶標識,以及安全用戶訪問請求中的安全URL分組,由安全用戶的用戶標識和安全URL分組的分組標識構(gòu)建訪問行為描述信息,然后可以將該訪問行為描述信息添加到訪問行為白名單中。同理,針對攻擊者名單,也可以將預(yù)先確定的攻擊者的用戶標識添加到攻擊者名單中。進一步的,若采用攻擊者名單時,為了實現(xiàn)對攻擊者名單的自動完善,以保證攻擊者名單中各用戶標識的全面性和有效性。本申請實施例中,若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值的情況下,所述方法還包括:若確定所述用戶標識不在所述攻擊者名單中,則將所述用戶標識添加到所述攻擊者名單中。也就是說,當訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值時,說明發(fā)生了攻擊行為,該攻擊行為的發(fā)起者即是該訪問行為描述信息中的用戶標識對應(yīng)的用戶;與此同時,若攻擊者名單中沒有該用戶標識,則需要將該攻擊者補入到攻擊者名單中,實現(xiàn)對攻擊者名單的自動完善和優(yōu)化。進一步的,攻擊行為通常由機器實現(xiàn),并非人工發(fā)送多個訪問請求。故此,本申請實施例中,為了降低誤判帶來的風(fēng)險,降低誤判造成的訪問用戶的體驗差,若確定所述用戶標識在所述攻擊者名單中,所述方法還包括:步驟C1:請求用于發(fā)送所述訪問請求的終端返回指定的需要手動輸入的驗證信息。其中,需要手動輸入的驗證信息,例如是需要手動輸入的驗證碼等。步驟C2:若所述終端返回正確的驗證信息,則將構(gòu)建的所述用戶訪問行為描述信息添加到所述訪問行為白名單中。與此同時,在添加到訪問行為白名單中之后或同時,還可以將所述訪問請求中的用戶標識從攻擊者名單中刪除。也就是說,若終端返回正確的驗證信息則產(chǎn)生了誤判,可以將構(gòu)建的所述用戶訪問行為描述信息添加到所述訪問行為白名單來表明該終端發(fā)送的訪問請求不存在攻擊行為。其中,若所述終端沒有返回正確的驗證信息時,或者若所述終端沒有返回正確的驗證信息的次數(shù)達到預(yù)設(shè)驗證次數(shù)時,則可以確定該終端的訪問請求對應(yīng)的訪問行為是攻擊行為,從而可以丟棄該訪問請求不予處理,并可以攔截該終端而不處理該終端的訪問請求。步驟C3:將所述訪問請求所請求的數(shù)據(jù)發(fā)送給所述終端。也就是說,若所述終端返回正確的驗證信息則說明,則說明終端的訪問請求不是機械性大量發(fā)出的,也就是該終端不存在攻擊行為,則可以減少誤判發(fā)生率。需要說明的是步驟C2中的將構(gòu)建的所述用戶訪問行為描述信息添加到所述訪問行為白名單中和步驟C3的執(zhí)行順序不受限。其中,在一個實施例中,為了實現(xiàn)對訪問行為白名單和攻擊者名單的不斷更新,若采用訪問行為白名單,則針對所述訪問行為白名單中的每一條訪問行為描述信息,若該條訪問行為描述信息在所述訪問行為白名單中的存儲時長大于第一預(yù)設(shè)存儲時長,則刪除該條訪問行為描述信息。同理,若采用攻擊者名單,則針對所述攻擊者名單中的每一個用戶標識,若該用戶標識在所述攻擊者名單中的存儲時長大于第二預(yù)設(shè)存儲時長,則刪除該用戶標識。當然,具體實施時,還可以采用進一步細化的方案來更新訪問行為白名單和攻擊者名單。具體的,針對訪問行為白名單,在上述刪除訪問行為白名單中的訪問行為描述信息之前,還可以進一步確定從當前時間開始的第一指定時間段內(nèi)未構(gòu)建該訪問行為描述信息。也就是說,該第一指定時間段內(nèi)沒有接收到該訪問行為描述信息對應(yīng)的訪問請求。需要說明的是,由上述分析可知,訪問請求中的URL對應(yīng)一個URL分組,所以不同的訪問請求構(gòu)建的訪問行為描述信息可能相同。所以,同一訪問行為描述信息可以對應(yīng)多個訪問請求。而,針對攻擊者名單,在上述刪除攻擊者名單中的用戶標識之前,還可以確定從當前時間開始的第二指定時間段內(nèi)未接收到攜帶該用戶標識的訪問請求。其中,第二指定時間段和第一指定時間段可以相同也可以不同。進一步地,為了提高處理效率,訪問行為白名單和/或攻擊者名單可以預(yù)先存儲在分布式內(nèi)存緩存中,那么所述確定構(gòu)建的所述訪問行為描述信息不在訪問行為白名單中,可具體包括:確定構(gòu)建的所述訪問行為描述信息不在分布式內(nèi)存緩存中存儲的訪問行為白名單中;同理,所述確定所述用戶標識不在攻擊者名單中,可具體包括:確定所述用戶標識不在分布式內(nèi)存緩存中存儲的攻擊者名單中。也就是說,通過分布式內(nèi)存緩存能夠提高操作訪問行為白名單和/或攻擊者名單的效率,而之后針對訪問行為白名單和/或攻擊者名單都可以基于分布式內(nèi)存緩存實現(xiàn),從而提高處理效率。其中,在一個實施例中,若攻擊檢測和攔截和處理訪問請求的業(yè)務(wù)代碼在同一進程中會消耗處理資源,如CPU(CentralProcessingUnit,中央處理器)和內(nèi)存等。為了不影響業(yè)務(wù),盡量實現(xiàn)不耦合業(yè)務(wù)代碼,使得本申請的攻擊檢測方案使用簡單。另一方面,為了盡可能少地占用處理資源,也為了不明顯影響正常訪問的響應(yīng)時間,提高運行的穩(wěn)定性。本申請實施例中,若所述用戶標識不在所述攻擊者名單中,所述方法還可包括:將構(gòu)建的所述訪問行為描述信息提交到預(yù)置分析隊列中;則,所述若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊,可具體包括:采用獨立的線程處理所述預(yù)置分析隊列,并若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。也就是說,訪問請求的處理可以由一線程來實現(xiàn),具體的攻擊檢測可以由另一獨立的線程進行處理。具體的,由第一線程處理訪問請求,并構(gòu)建訪問行為描述信息,而由獨立的第二線程來判斷若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量是否大于預(yù)設(shè)閾值。這樣,數(shù)量的判斷和訪問請求的處理可以分別由獨立的線程完成,能夠盡量不耦合業(yè)務(wù)代碼,同時提高運行的穩(wěn)定性。此外,在將構(gòu)建的所述訪問行為描述信息提交到預(yù)置分析隊列中之后,還可以返回訪問請求所請求的數(shù)據(jù),從而減少對訪問的響應(yīng)時間的影響,保證訪問請求業(yè)務(wù)處理的及時性,提高訪問用戶的應(yīng)用體驗。進一步的,為了保證運行的穩(wěn)定性,減少可能出現(xiàn)的風(fēng)險,所述方法還包括:步驟D1:判斷所述預(yù)置分析隊列中的訪問行為描述信息總量是否達到指定總量。步驟D2:若是,則丟棄構(gòu)建的所述訪問行為描述信息;若否,則將構(gòu)建的所述訪問行為描述信息提交到預(yù)置分析隊列中。也就是說,在將訪問行為描述信息提交到預(yù)置分析隊列之前,先確定預(yù)置分析隊列是否已滿,若是則可能導(dǎo)致預(yù)置分析隊列溢出,而出現(xiàn)異常。所以,在本申請實施例中,及時丟棄構(gòu)建的所述訪問行為描述信息能夠避免預(yù)置分析隊列溢出,降低風(fēng)險。其中,在一個實施例中,在提供訪問服務(wù)的分布式系統(tǒng)中,如果同一用戶的訪問請求一部分落在該分布式系統(tǒng)中的第一服務(wù)器處理,另一部分落在第二服務(wù)器處理。故此,同一訪問行為描述信息可能部分落在第一服務(wù)器上,另一部分落在第二服務(wù)器上。所以如果單機檢測將丟掉部分訪問行為描述信息,導(dǎo)致累加結(jié)果不準確。故此,為了實現(xiàn)分布式檢測,提高檢測的準確性和效率,所述采用獨立的線程處理所述預(yù)置分析隊列,并若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊,可具體包括:步驟E1:采用獨立的線程從所述預(yù)置分析隊列中獲取構(gòu)建的所述訪問行為描述信息。步驟E2:采用原子操作的方式將分布式內(nèi)存緩存中記錄的包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量累加1,并獲取累加結(jié)果。步驟E3:若在預(yù)設(shè)時長內(nèi)所述累加結(jié)果大于所述預(yù)設(shè)閾值,則確定檢測到攻擊。也就是說,具體實施時,分布式內(nèi)存緩存可統(tǒng)計各個提供訪問服務(wù)的服務(wù)器中的同一訪問行為描述信息的數(shù)量。例如具體實施時,若采用原子操作的方式實現(xiàn)整數(shù)的加減,在分布式系統(tǒng)集群中,各個執(zhí)行攻擊檢測的設(shè)備,只需要一條語句就可以實現(xiàn)分布式內(nèi)存緩存中對同一條訪問行為描述信息的計數(shù)。而攻擊檢測設(shè)備之間不需要使用互斥鎖來決定誰來控制分布式內(nèi)存緩存,具體的執(zhí)行由分布式內(nèi)存緩存執(zhí)行即可。故此,采用分布式內(nèi)存緩存加原子操作的方式,能夠有效的統(tǒng)計同一訪問行為信息的數(shù)量,提高攻擊檢測的準確性和效率。其中,在一個實施例中,引入分布式內(nèi)存緩存之后,容易帶來額外的風(fēng)險,例如,分布式內(nèi)存緩存出現(xiàn)故障將導(dǎo)致攻擊檢測無法操作或者操作錯誤。故此,為了保證正常運行,降低風(fēng)險、以便于能夠正常處理用戶的訪問業(yè)務(wù),本申請實施例中,將引入自動熔斷開關(guān)。該自動熔斷開關(guān)處于打開狀態(tài)時,可以暫停攻擊檢測,而對用戶的訪問請求則正常處理并返回請求的數(shù)據(jù)。該自動熔斷開關(guān)處于關(guān)閉狀態(tài)時,則本申請實施例的攻擊檢測方案照常進行。較佳的,當確定存在指定的異常事件時,則自動將自動熔斷開關(guān)配置成打開狀態(tài)。該異常事件例如是一定時長內(nèi)對分布式內(nèi)存緩存操作的超時次數(shù)達到預(yù)設(shè)超時次數(shù)。具體執(zhí)行時,所述獲取訪問請求中的用戶標識和URL之前,所述方法還包括確定自動熔斷開關(guān)處于關(guān)閉狀態(tài);也就是說,在自動熔斷開關(guān)處于關(guān)閉狀態(tài)時,可以繼續(xù)進行后續(xù)的攻擊檢測。相應(yīng)的,為了根據(jù)實際需求開關(guān)自動熔斷開關(guān),所述方法還包括:若第一指定時長內(nèi)未獲取到累加結(jié)果的次數(shù)超過第一預(yù)設(shè)次數(shù),則配置所述自動熔斷開關(guān)處于打開狀態(tài)。也就是說,如果第一指定時長內(nèi)未獲取到累加結(jié)果的次數(shù)超過第一預(yù)設(shè)次數(shù),則可能無法正常訪問分布式內(nèi)存緩存,為了避免用戶的訪問請求不能及時處理,所以,自動打開自動熔斷開關(guān)。同理,所述方法還包括:若第二指定時長內(nèi)確定訪問行為描述信息是否在訪問行為白名單中的操作和/或確定用戶標識是否在攻擊者名單中的操作的超時的總次數(shù)超過第二預(yù)設(shè)次數(shù),則配置所述自動熔斷開關(guān)處于打開狀態(tài)。也就是說,對訪問行為白名單和/或攻擊者名單的操作超時次數(shù)較多時,則也可能表示無法正常訪問分布式內(nèi)存緩存,所以自動打開自動熔斷開關(guān)。其中,在一個實施例中,為了能夠提供各種的攻擊檢測方案,以便于實施攻擊檢測的管理員能夠根據(jù)自身的需求確定采用何種攻擊檢測方式。本申請實施例中可以提供手動攔截校驗開關(guān),若手動攔截校驗開關(guān)處于開啟狀態(tài)時,則確定執(zhí)行手動攔截校驗,而無需執(zhí)行本申請實施例中的攻擊檢測方案。相應(yīng)的,所述獲取訪問請求中的用戶標識和URL之前,所述方法還包括:確定手動攔截校驗開關(guān)處于關(guān)閉狀態(tài)、且自動檢測開關(guān)處于打開狀態(tài)、以及所述訪問請求對應(yīng)的IP地址不在預(yù)置的IP地址白名單中。其中,預(yù)置的IP地址白名單中用于存儲表示不存在攻擊行為的用戶的IP地址。例如合作用戶,由于發(fā)起攻擊的用戶往往不會是合作用戶,所以對合作用戶不執(zhí)行步驟301及后續(xù)的操作,可以節(jié)省處理資源,提高處理效率。其中,自動檢測開關(guān)處于打開狀態(tài)則表示采用本申請實施例中提供的攻擊檢測方案即執(zhí)行步驟301及后續(xù)的操作。其中,在一個實施例中,為了便于管理員能夠了解到檢測到攻擊,使其采取后續(xù)的有效處理措施,本申請實施例中,所述確定檢測到攻擊之后,所述方法還包括:輸出遭到攻擊的報警提示。這樣,管理員可以根據(jù)該提示了解檢測到攻擊行為。具體實施時,該提示可以包括發(fā)出攻擊的用戶標識和攻擊的提供訪問服務(wù)的服務(wù)器。那么管理員可以根據(jù)實際情況采取保護措施。綜上所述,本申請實施例中,將用戶的訪問行為抽象成用戶行為描述信息。那么,攻擊檢測是基于訪問行為描述信息來進行的,也即預(yù)設(shè)時長內(nèi),相同的訪問行為描述信息的數(shù)量超過預(yù)設(shè)閾值則說明,該訪問行為描述信息對應(yīng)的訪問行為是攻擊行為。用戶行為描述信息是基于用戶標識和訪問的URL的分組標識構(gòu)建的,相對于現(xiàn)有技術(shù)中僅通過IP地址來檢測,用戶行為描述信息更適用于來判斷用戶訪問行為是否為攻擊行為。所以,本申請?zhí)峁┑募夹g(shù)方案能夠提高檢測結(jié)果的準確性。進一步地,由于檢測的準確性提高,誤判率也就會降低,檢測時的預(yù)設(shè)閾值相比現(xiàn)有技術(shù)也能夠設(shè)置的小一些,從而檢測的靈敏度也能夠提高。誤判率降低了,故此也能夠進一步提高用戶整體的應(yīng)用體驗。此外,通過分布式內(nèi)存緩存訪問行為白名單和/或攻擊者名單,能夠提高檢測的效率。同時實現(xiàn)分布式集群的攻擊檢測,而非單機檢測,從而進一步提高攻擊檢測的準確性。還有,通過加入自動熔斷機制,可以減少分布式內(nèi)存緩存帶來的風(fēng)險。此外,通過采用獨立的線程統(tǒng)計相同的訪問行為描述信息,能夠提高運行的穩(wěn)定性。減少對訪問業(yè)務(wù)的影響。此外,通過引入手動校驗機制(即請求終端返回指定的需要手動輸入的驗證信息),可以降低誤判帶來的風(fēng)險。進一步的,還可以進一步引入全局開關(guān)開確定是否進行攻擊檢測。進一步地,以訪問資源服務(wù)器中可以運行有第一線程和獨立的第二線程為例,對本申請實施例提供的技術(shù)方案進行說明。需要說明的是具體實施時,本申請實施例可以提供一個JAR包,執(zhí)行攻擊檢測的設(shè)備,只需要安裝該JAR包既可以具有本申請實施例提供的攻擊檢測功能。如圖4所示的為該方法的流程示意圖,包括以下步驟:步驟401:第一線程接收終端發(fā)送的訪問請求。步驟402:第一線程判斷全局開關(guān)是否處于打開狀態(tài),若是,則執(zhí)行步驟404,若否,則執(zhí)行步驟403。步驟403:第一線程獲取訪問請求所請求的數(shù)據(jù),若獲取到數(shù)據(jù)則返回給終端。步驟404:第一線程判斷手動攔截校驗開關(guān)是否處于關(guān)閉狀態(tài),若否,則執(zhí)行步驟405,若是,則執(zhí)行步驟406.步驟405:第一線程攔截處理。步驟406:第一線程判斷自動檢測開關(guān)是否處于打開狀態(tài),若否,則執(zhí)行步驟403;若是,則執(zhí)行步驟407。步驟407:第一線程判斷自動熔斷開關(guān)是否處于關(guān)閉狀態(tài),若否,則執(zhí)行步驟403;若是,則執(zhí)行步驟408。步驟408:第一線程確定訪問請求對應(yīng)的IP地址是否在預(yù)置的IP地址白名單中,若是,則執(zhí)行步驟403;若否,則執(zhí)行步驟409。步驟409:第一線程獲取訪問請求中的用戶標識和URL。步驟410:第一線程確定步驟409中獲取的URL歸屬的預(yù)設(shè)URL分組的分組標識。步驟411:第一線程構(gòu)建一條包含獲取的用戶標識和分組標識的訪問行為描述信息。步驟412:第一線程從分布式內(nèi)存緩存中獲取步驟411中的訪問行為描述信息對應(yīng)的key值,并若確定key值為1,則執(zhí)行步驟403;若確定key值為0,則執(zhí)行步驟419;若確定key值為空,則執(zhí)行步驟413。其中,key值為1表示在訪問行為白名單中,key值為0表示在攻擊者名單中,key值為空表示即不在訪問行為白名單中也不在攻擊者名單中。當然,具體實施時,也可以生成訪問行為描述信息對應(yīng)的信息標識用于標識一類訪問行為描述信息。步驟413:第一線程判斷預(yù)置分析隊列中的訪問行為描述信息總量是否達到指定總量,若是,執(zhí)行步驟414,若否,執(zhí)行步驟415。步驟414:第一線程丟棄構(gòu)建的訪問行為描述信息。步驟415:第一線程將構(gòu)建的訪問行為描述信息提交到預(yù)置分析隊列中。步驟416:采用獨立的第二線程從所述預(yù)置分析隊列中獲取構(gòu)建的所述訪問行為描述信息。步驟417:第二線程采用原子操作的方式將分布式內(nèi)存緩存中記錄的包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量累加1,并獲取累加結(jié)果。其中,在一個實施例中,第二線程若第一指定時長內(nèi)未獲取到累加結(jié)果的次數(shù)超過第一預(yù)設(shè)次數(shù),則配置自動熔斷開關(guān)處于打開狀態(tài)。步驟418:第二線程若在預(yù)設(shè)時長內(nèi)確定所述累加結(jié)果大于所述預(yù)設(shè)閾值,則確定檢測到攻擊,并將訪問請求中包含的用戶標識添加到攻擊者名單中。具體,可以執(zhí)行為將該用戶標識對應(yīng)的訪問行為描述信息添加到分布式內(nèi)存緩存中并設(shè)置其key值為0。步驟419:第一線程請求終端返回指定的需要手動輸入的驗證信息。步驟420:第一線程若終端返回正確的驗證信息,則將構(gòu)建的用戶訪問行為描述信息添加到訪問行為白名單中,并返回執(zhí)行步驟403。其中,在一個實施例中,還可以記錄第一線程和第二線程在第三指定時長內(nèi)對分布式內(nèi)存緩存操作失敗的次數(shù),操作失敗例如是包含下述操作的至少一種:第一指定時長內(nèi)未成功獲取到累加結(jié)果、第二指定時長內(nèi)未成功獲取到構(gòu)建的訪問行為描述信息的key值、步驟418中在第四指定時長內(nèi)未成功將訪問請求中包含的用戶標識添加到攻擊者名單中、步驟420中未在第五指定時長內(nèi)成功將構(gòu)建的用戶訪問行為描述信息添加到訪問行為白名單中。若第三指定時長內(nèi)操作失敗的次數(shù)大于預(yù)設(shè)失敗次數(shù),則確定可能無法訪問分布式內(nèi)存緩存,而配置自動熔斷開關(guān)處于打開狀態(tài)。綜上所述,本申請實施例中,可以將用戶的訪問行為抽象成用戶行為描述信息。那么,攻擊檢測是基于訪問行為描述信息來進行的,也即預(yù)設(shè)時長內(nèi),相同的訪問行為描述信息的數(shù)量超過預(yù)設(shè)閾值則說明,該訪問行為描述信息對應(yīng)的訪問行為是攻擊行為。用戶行為描述信息是基于用戶標識和訪問的URL的分組標識構(gòu)建的,相對于現(xiàn)有技術(shù)中僅通過IP地址來檢測,用戶行為描述信息更適用于來判斷用戶訪問行為是否為攻擊行為。所以,本申請?zhí)峁┑募夹g(shù)方案能夠提高檢測結(jié)果的準確性。進一步地,由于檢測的準確性提高,誤判率也就會降低,檢測時的預(yù)設(shè)閾值相比現(xiàn)有技術(shù)也能夠設(shè)置的小一些,從而檢測的靈敏度也能夠提高。誤判率降低了,故此也能夠進一步提高用戶整體的應(yīng)用體驗。示例性設(shè)備在介紹了本申請示例性實施方式的方法之后,接下來,參考圖5對本申請示例性實施方式的攻擊檢測裝置進行說明。如圖5所示,為本申請實施例提供的攻擊檢測裝置的結(jié)構(gòu)示意圖,包括:URL獲取模塊501,用于獲取訪問請求中的用戶標識和統(tǒng)一資源定位符URL;分組標識確定模塊502,用于確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;構(gòu)建模塊503,用于構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;檢測模塊504,用于若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。其中,在一個實施例中,所述裝置還包括:訪問行為白名單校驗?zāi)K505,用于在所述若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊之前,確定構(gòu)建的所述訪問行為描述信息不在訪問行為白名單中;和/或,攻擊者名單校驗?zāi)K506,用于在所述若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊之前,確定所述用戶標識不在攻擊者名單中。其中,在一個實施例中,若所述用戶標識不在所述攻擊者名單中,所述裝置還包括:分析隊列提交模塊507,用于將構(gòu)建的所述訪問行為描述信息提交到預(yù)置分析隊列中;所述檢測模塊504,具體用于:采用獨立的線程處理所述預(yù)置分析隊列,并若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。其中,在一個實施例中,所述裝置還包括:隊列容量判斷模塊508,用于判斷所述預(yù)置分析隊列中的訪問行為描述信息總量是否達到指定總量;丟棄模塊509,用于若是,則丟棄構(gòu)建的所述訪問行為描述信息;所述分析隊列提交模塊507,具體用于若否,則將構(gòu)建的所述訪問行為描述信息提交到預(yù)置分析隊列中。其中,在一個實施例中,所述檢測模塊504,具體用于采用獨立的線程從所述預(yù)置分析隊列中獲取構(gòu)建的所述訪問行為描述信息;并,采用原子操作的方式將分布式內(nèi)存緩存中記錄的包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量累加1,并獲取累加結(jié)果;若在預(yù)設(shè)時長內(nèi)所述累加結(jié)果大于所述預(yù)設(shè)閾值,則確定檢測到攻擊。其中,在一個實施例中,所述裝置還包括:第一自動熔斷開關(guān)判斷模塊510,用于在所述URL獲取模塊501獲取訪問請求中的用戶標識和URL之前,確定自動熔斷開關(guān)處于關(guān)閉狀態(tài);第一自動熔斷開關(guān)配置模塊511,用于若第一指定時長內(nèi)未獲取到累加結(jié)果的次數(shù)超過第一預(yù)設(shè)次數(shù),則配置所述自動熔斷開關(guān)處于打開狀態(tài)。其中,在一個實施例中,所述訪問行為白名單校驗?zāi)K505,具體用于確定構(gòu)建的所述訪問行為描述信息不在分布式內(nèi)存緩存中存儲的訪問行為白名單中;所述攻擊者名單校驗?zāi)K506,具體用于確定所述用戶標識不在分布式內(nèi)存緩存中存儲的攻擊者名單中。其中,在一個實施例中,所述裝置還包括:第二自動熔斷開關(guān)判斷模塊512,用于在所述URL獲取模塊501獲取訪問請求中的用戶標識和統(tǒng)一資源定位符URL之前,確定自動熔斷開關(guān)處于關(guān)閉狀態(tài);第二自動熔斷開關(guān)配置模塊513,用于若第二指定時長內(nèi)確定訪問行為描述信息是否在訪問行為白名單中的操作和/或確定用戶標識是否在攻擊者名單中的操作的超時的總次數(shù)超過第二預(yù)設(shè)次數(shù),則配置所述自動熔斷開關(guān)處于打開狀態(tài)。其中,在一個實施例中,所述裝置還包括:攻擊者名單更新模塊514,用于在檢測模塊504確定若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值之后,若確定所述用戶標識不在所述攻擊者名單中,則將所述用戶標識添加到所述攻擊者名單中。其中,在一個實施例中,分組標識確定模塊502,具體包括:匹配單元515,用于確定所述URL與滿足預(yù)設(shè)正則規(guī)則的URL集合中的URL類是否匹配;分組單元516,用于若匹配,則將匹配的URL類對應(yīng)的分組標識、確定為所述URL歸屬的預(yù)設(shè)URL分組的分組標識。其中,在一個實施例中,所述裝置還包括:配置指令接收模塊517,用于接收攜帶至少一組URL分組的攻擊檢測參數(shù)的配置指令;配置模塊518,用于根據(jù)所述配置指令配置所述至少一組攻擊檢測參數(shù);其中,所述攻擊檢測參數(shù)包括:對應(yīng)URL分組的所述預(yù)設(shè)時長、對應(yīng)URL分組和對應(yīng)URL分組的所述預(yù)設(shè)閾值。其中,在一個實施例中,若確定所述用戶標識在所述攻擊者名單中所述裝置還包括:驗證信息請求模塊519,用于請求用于發(fā)送所述訪問請求的終端返回指定的需要手動輸入的驗證信息;白名單更新模塊520,用于若所述終端返回正確的驗證信息,則將構(gòu)建的所述用戶訪問行為描述信息添加到所述訪問行為白名單中;以及,發(fā)送模塊521,用于將所述訪問請求所請求的數(shù)據(jù)發(fā)送給所述終端。其中,在一個實施例中,所述裝置還包括:報警提示輸出模塊522,用于在所述檢測模塊504確定檢測到攻擊之后,輸出遭到攻擊的報警提示。其中,在一個實施例中,所述裝置還包括:綜合信息確定模塊523,用于在所述URL獲取模塊501獲取訪問請求中的用戶標識和URL之前,確定手動攔截校驗開關(guān)處于關(guān)閉狀態(tài)、且自動檢測開關(guān)處于打開狀態(tài)、以及所述訪問請求對應(yīng)的IP地址不在預(yù)置的IP地址白名單中。其中,在一個實施例中,所述裝置還包括:訪問行為描述信息刪除模塊524,用于針對所述訪問行為白名單中的每一條訪問行為描述信息,若該條訪問行為描述信息在所述訪問行為白名單中的存儲時長大于第一預(yù)設(shè)存儲時長,則刪除該條訪問行為描述信息;用戶標識刪除模塊525,用于針對所述攻擊者名單中的每一個用戶標識,若該用戶標識在所述攻擊者名單中的存儲時長大于第二預(yù)設(shè)存儲時長,則刪除該用戶標識。根據(jù)本申請實施方式的攻擊檢測裝置,在獲取訪問請求中的用戶標識和URL后;確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;并構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。這樣,本申請相當于將用戶的訪問行為抽象成用戶行為描述信息。那么,攻擊檢測是基于訪問行為描述信息來進行的,也即預(yù)設(shè)時長內(nèi),相同的訪問行為描述信息的數(shù)量超過預(yù)設(shè)閾值則說明,該訪問行為描述信息對應(yīng)的訪問行為是攻擊行為。用戶行為描述信息是基于用戶標識和訪問的URL的分組標識構(gòu)建的,相對于現(xiàn)有技術(shù)中僅通過IP地址來檢測,用戶行為描述信息更適用于來判斷用戶訪問行為是否為攻擊行為。所以,本申請?zhí)峁┑募夹g(shù)方案能夠提高檢測結(jié)果的準確性。進一步地,由于檢測的準確性提高,誤判率也就會降低,檢測時的預(yù)設(shè)閾值相比現(xiàn)有技術(shù)也能夠設(shè)置的小一些,從而檢測的靈敏度也能夠提高。誤判率降低了,故此也能夠進一步提高用戶整體的應(yīng)用體驗。在介紹了本發(fā)明示例性實施方式的方法和裝置之后,接下來,介紹根據(jù)本發(fā)明的另一示例性實施方式的攻擊檢測裝置。所屬
技術(shù)領(lǐng)域:
的技術(shù)人員能夠理解,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。在一些可能的實施方式中,根據(jù)本發(fā)明的攻擊檢測裝置可以包括至少一個處理單元、以及至少一個存儲單元。其中,所述存儲單元存儲有程序代碼,當所述程序代碼被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實施方式的攻擊檢測方法中的各種步驟。例如,所述處理單元可以執(zhí)行如圖3中所示的步驟301:獲取訪問請求中的用戶標識和URL;步驟302:確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;步驟303:構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;步驟304:若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。下面參照圖6來描述根據(jù)本申請的這種實施方式的攻擊檢測裝置60。圖6顯示的攻擊檢測裝置僅僅是一個示例,不應(yīng)對本申請實施例的功能和使用范圍帶來任何限制。如圖6所示,攻擊檢測裝置60可以以通用計算設(shè)備的形式表現(xiàn),例如其可以為服務(wù)器設(shè)備。攻擊檢測裝置60的組件可以包括但不限于:上述至少一個處理單元61、上述至少一個存儲單元62、連接不同系統(tǒng)組件(包括存儲單元62和處理單元61)的總線63??偩€63表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器、外圍總線、處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。存儲單元62可以包括易失性存儲器形式的可讀介質(zhì),例如隨機存取存儲器(RAM)621和/或高速緩存存儲器622,還可以進一步包括只讀存儲器(ROM)623。存儲單元62還可以包括具有一組(至少一個)程序模塊624的程序/實用工具625,這樣的程序模塊624包括但不限于:操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。攻擊檢測裝置60也可以與一個或多個外部設(shè)備64(例如鍵盤、指向設(shè)備等)通信,還可與一個或者多個使得用戶能與該攻擊檢測裝置60交互的設(shè)備通信,和/或與使得該攻擊檢測裝置60能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口65進行。并且,攻擊檢測裝置60還可以通過網(wǎng)絡(luò)適配器66與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器66通過總線63與攻擊檢測裝置60的其它模塊通信。應(yīng)當明白,盡管圖中未示出,可以結(jié)合攻擊檢測裝置60使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。示例性程序產(chǎn)品在一些可能的實施方式中,本申請的各個方面還可以實現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當所述程序產(chǎn)品在服務(wù)器設(shè)備上運行時,所述程序代碼用于使所述服務(wù)器設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本申請各種示例性實施方式的方法中的步驟,例如,所述服務(wù)器設(shè)備可以執(zhí)行如圖3中所示的步驟301:獲取訪問請求中的用戶標識和URL;步驟302:確定所述URL歸屬的預(yù)設(shè)URL分組的分組標識;步驟303:構(gòu)建一條包含所述用戶標識和所述分組標識的訪問行為描述信息;步驟304:若預(yù)設(shè)時長內(nèi)包含所述用戶標識和所述分組標識的訪問行為描述信息的數(shù)量大于預(yù)設(shè)閾值,則確定檢測到攻擊。所述程序產(chǎn)品可以采用一個或多個可讀介質(zhì)的任意組合。可讀介質(zhì)可以是可讀信號介質(zhì)或者可讀存儲介質(zhì)??勺x存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。如圖7所示,描述了根據(jù)本申請的實施方式的用于攻擊檢測的程序產(chǎn)品70,其可以采用便攜式緊湊盤只讀存儲器(CD-ROM)并包括程序代碼,并可以在服務(wù)器設(shè)備上運行。然而,本申請的程序產(chǎn)品不限于此,在本文件中,可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。可讀信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合??勺x信號介質(zhì)還可以是可讀存儲介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、有線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本申請操作的程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言—諸如Java、C++等,還包括常規(guī)的過程式程序設(shè)計語言—諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算設(shè)備上部分在遠程計算設(shè)備上執(zhí)行、或者完全在遠程計算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠程計算設(shè)備的情形中,遠程計算設(shè)備可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算設(shè)備,或者,可以連接到外部計算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。應(yīng)當注意,盡管在上文詳細描述中提及了裝置的若干單元或子單元,但是這種劃分僅僅是示例性的并非強制性的。實際上,根據(jù)本申請的實施方式,上文描述的兩個或更多單元的特征和功能可以在一個單元中具體化。反之,上文描述的一個單元的特征和功能可以進一步劃分為由多個單元來具體化。此外,盡管在附圖中以特定順序描述了本申請方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。雖然已經(jīng)參考若干具體實施方式描述了本申請的精神和原理,但是應(yīng)該理解,本申請并不限于所公開的具體實施方式,對各方面的劃分也不意味著這些方面中的特征不能組合以進行受益,這種劃分僅是為了表述的方便。本申請旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。當前第1頁1 2 3