一種攻擊檢測方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種攻擊檢測方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的發(fā)展,基于互聯(lián)網(wǎng)環(huán)境的面向大眾的互聯(lián)網(wǎng)web應(yīng)用也越來越廣 泛。這些應(yīng)用無疑將會使web被攻擊的可能性大幅度增加。
[0003] 作為web應(yīng)用的核心協(xié)議,HTTP協(xié)議承載了web應(yīng)用的基本功能的實現(xiàn)。但HTTP 協(xié)議本身缺乏相關(guān)的安全特性,以及開發(fā)人員在編寫過程中缺乏安全相關(guān)的經(jīng)驗與意識, 因此web應(yīng)用存在不可避免的漏洞。Web應(yīng)用安全漏洞的多樣性和復(fù)雜性也決定了黑客攻 擊手段具有同樣的特點。
[0004] 目前,針對web漏洞的安全檢測方式為:通過對已知攻擊的特征進行提取建模,生 成規(guī)則庫,采取被動檢測的方式,檢測web漏洞。這種方法針對已知攻擊具有比較高的檢測 率和低誤檢率,但對于未知攻擊的檢測率很低,同時隨著攻擊的發(fā)現(xiàn),需要對規(guī)則庫進行及 時更新,使得規(guī)則庫不斷擴大,降低了檢測效率。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例的目的在于提供一種攻擊檢測方法及系統(tǒng),以主動發(fā)現(xiàn)未知攻擊, 提高對未知攻擊的檢測率,并提高檢測效率。
[0006] 為達到上述目的,本發(fā)明實施例公開了一種攻擊檢測方法,預(yù)先建立預(yù)設(shè)數(shù)量的 與HTTP請求相關(guān)的檢測模型,所述方法包括:
[0007] 獲得web訪問日志,所述web訪問日志包括多條記錄,每條記錄至少包括:該條記 錄的HTTP請求的多個參數(shù);
[0008] 對所獲得的web日志進行分解,得到多條記錄;
[0009] 針對所得到的每條記錄,判斷該條記錄的HTTP請求是否為成功狀態(tài);
[0010] 如果是,提取該條記錄的第一數(shù)據(jù),所述第一數(shù)據(jù)至少包括:該條記錄的HTTP請 求的多個參數(shù);
[0011] 分別利用預(yù)先建立的每個檢測模型對所述第一數(shù)據(jù)進行檢測,分別得到每個檢測 模型針對該條記錄的參數(shù)異常值;
[0012] 采用web訪問日志樣本集,根據(jù)優(yōu)化算法計算得到每個檢測模型的參數(shù)異常值對 應(yīng)的優(yōu)化加權(quán)值,以及每個檢測模型針對該條記錄的參數(shù)異常值,加權(quán)計算得到針對該條 記錄的最終參數(shù)異常值;
[0013] 根據(jù)所述web訪問日志樣本集中的所有記錄的最終參數(shù)異常值,通過迭代方式確 定最終異常門限閾值;
[0014] 針對待檢測日志記錄,獲得每個檢測模型針對所述待檢測日志記錄的參數(shù)異常 值;
[0015] 根據(jù)所述優(yōu)化加權(quán)值以及針對所述待檢測日志記錄的參數(shù)異常值,計算所述待檢 測日志記錄的最終參數(shù)異常值;
[0016] 判斷針對所述待檢測日志記錄的最終參數(shù)異常值是否大于所確定的最終異常門 限閾值;
[0017] 如果是,將所述待檢測日志記錄的HTTP請求確定為攻擊行為。
[0018] 可選的,所述判斷該條記錄的HTTP請求是否為成功狀態(tài),包括:
[0019] 判斷該條記錄的HTTP請求的響應(yīng)狀態(tài)碼的值是否在預(yù)設(shè)的數(shù)值范圍之內(nèi),如果 是,表不該條記錄的HTTP請求為成功狀態(tài)。
[0020] 可選的,預(yù)先建立4個與HTTP請求相關(guān)的檢測模型,分別為:
[0021 ] 枚舉類型模型、參數(shù)關(guān)聯(lián)模型、長度分布模型和字符分布模型。
[0022] 可選的,利用所述枚舉類型模型對所述第一數(shù)據(jù)進行檢測,得到所述枚舉類型模 型針對該條記錄的參數(shù)異常值,包括:
[0023] 根據(jù)該條記錄的HTTP請求參數(shù)的類型,確定所述枚舉類型模型針對該條記錄的 參數(shù)異常值。
[0024] 可選的,利用所述參數(shù)關(guān)聯(lián)模型對所述第一數(shù)據(jù)進行檢測,得到所述參數(shù)關(guān)聯(lián)模 型針對該條記錄的參數(shù)異常值,包括:
[0025] 根據(jù)該條記錄的HTTP請求查詢字符串中參數(shù)的出現(xiàn)情況以及通過訓(xùn)練得到的參 數(shù)子集集合中參數(shù)的出現(xiàn)情況,確定所述參數(shù)關(guān)聯(lián)模型針對該條記錄的參數(shù)異常值。
[0026] 可選的,利用所述長度分布模型對所述第一數(shù)據(jù)進行檢測,得到所述長度分布模 型針對該條記錄的參數(shù)異常值,包括:
[0027] 根據(jù)該條記錄的HTTP請求參數(shù)值長度以及由訓(xùn)練集得到的正常請求參數(shù)值長 度,確定所述長度分布模型針對該條記錄的參數(shù)異常值。
[0028] 可選的,利用所述字符分布模型對所述第一數(shù)據(jù)進行檢測,得到所述字符分布模 型針對該條記錄的參數(shù)異常值,包括:
[0029] 根據(jù)由訓(xùn)練集得到的各參數(shù)字符概率分布,計算該條記錄的HTTP請求參數(shù)的字 符分布與由訓(xùn)練集得到的各參數(shù)的字符概率分布的卡方值;
[0030] 根據(jù)計算得到的卡方值,確定所述字符分布模型針對該條記錄的參數(shù)異常值。
[0031] 可選的,所述根據(jù)優(yōu)化算法計算得到每個檢測模型的參數(shù)異常值對應(yīng)的優(yōu)化加權(quán) 值,以及每個檢測模型針對該條記錄的參數(shù)異常值,加權(quán)計算得到針對該條記錄的最終參 數(shù)異常值,
[0032] 該條記錄的最終參數(shù)異常值=ΣmWm*Pm;
[0033] 其中,me預(yù)先建立的檢測模型,Wm為針對檢測模型m的優(yōu)化加權(quán)值,P"為檢測模 型m針對該條記錄的參數(shù)異常值。
[0034] 可選的,根據(jù)所述web訪問日志樣本集中所有記錄的最終參數(shù)異常值,通過迭代 方式確定最終異常門限閾值,包括:
[0035] 根據(jù)所述web訪問日志樣本集中的所有記錄的最終參數(shù)異常值,確定異常概率 值,在所述異常概率值大于異常門限閾值時,獲得誤判率;
[0036] 在所述誤判率不小于預(yù)設(shè)誤判率的情況下,對異常門限閾值進行調(diào)整,迭代計算 直到獲得的誤判率小于預(yù)設(shè)誤判率,將當前的異常門限閾值,確定為最終異常門限閾值。
[0037] 為達到上述目的,本發(fā)明實施例還公開了一種攻擊檢測系統(tǒng),包括:與HTTP請求 相關(guān)的預(yù)設(shè)數(shù)量的檢測模型、數(shù)據(jù)預(yù)處理模塊、檢測模塊、優(yōu)化模塊和測試模塊,其中,
[0038] 所述數(shù)據(jù)預(yù)處理模塊,用于獲得web訪問日志,所述web訪問日志包括多條記錄, 每條記錄包括該條記錄的HTTP請求的多個參數(shù);對所獲得的web訪問日志進行分解,得到 多條記錄;針對所得到每條記錄,判斷該條記錄的HTTP請求是否為成功狀態(tài);如果是,提取 該條記錄的第一數(shù)據(jù),所述第一數(shù)據(jù)至少包括:該條記錄的HTTP請求的多個參數(shù);
[0039] 所述檢測模塊,用于分別利用預(yù)先建立的每個檢測模型對所述第一數(shù)據(jù)進行檢 測,分別得到每個檢測模型針對該條記錄的參數(shù)異常值;
[0040] 所述優(yōu)化模塊,用于采用web訪問日志樣本集,根據(jù)優(yōu)化算法計算得到每個檢測 模型的參數(shù)異常值對應(yīng)的優(yōu)化加權(quán)值,以及每個檢測模型針對該條記錄的參數(shù)異常值,加 權(quán)計算得到針對該條記錄的最終參數(shù)異常值;根據(jù)所述web訪問日志樣本集中的所有記錄 的最終參數(shù)異常值,通過迭代方式確定最終異常門限閾值;
[0041] 所述測試模塊,用于針對待檢測日志記錄,獲得每個檢測模型針對所述待檢測日 志記錄的參數(shù)異常值;根據(jù)所述優(yōu)化加權(quán)值以及針對所述待檢測日志記錄的參數(shù)異常值, 計算所述待檢測日志記錄的最終參數(shù)異常值;判斷針對所述待檢測日志記錄的最終參數(shù)異 常值是否大于所確定的最終異常門限閾值;如果是,將所述待檢測日志記錄的HTTP請求確 定為攻擊行為。
[0042] 由上述的技術(shù)方案可見,本發(fā)明實施例提供了一種攻擊檢測方法及系統(tǒng),預(yù)先建 立預(yù)設(shè)數(shù)量的與HTTP請求相關(guān)的檢測模型,方法包括:獲得web訪問日志,所述web訪問日 志包括多條記錄,每條記錄包括該條記錄的HTTP請求的多個參數(shù);對所獲得的web訪問日 志進行分解,得到多條記錄;針對所得到每條記錄,判斷該條記錄的HTTP請求是否為成功 狀態(tài);如果是,提取該條記錄的第一數(shù)據(jù),所述第一數(shù)據(jù)至少包括:該條記錄的HTTP請求的 多個參數(shù);分別利用預(yù)先建立的每個檢測模型對所述第一數(shù)據(jù)進行檢測,分別得到每個檢 測模型針對該條記錄的參數(shù)異常值;采用web訪問日志樣本集,根據(jù)優(yōu)化算法計算得到每 個檢測模型的參數(shù)異常值對應(yīng)的優(yōu)化加權(quán)值,以及每個檢測模型針對該條記錄的參數(shù)異常 值,加權(quán)計算得到該條記錄的最終參數(shù)異常值;根據(jù)所述web訪問日志樣本集中的所有記 錄的最終參數(shù)異常值,通過迭代方式確定最