本發(fā)明涉及移動通信領域,特別涉及一種漏洞攻擊的檢測方法和裝置。
背景技術(shù):
傳統(tǒng)的漏洞攻擊檢測方法,通常是將訪問數(shù)據(jù)包中的相關(guān)信息與漏洞攻擊樣本特征庫中的關(guān)鍵字進行逐一匹配,然后根據(jù)匹配結(jié)果來判定當前訪問請求是否包含漏洞攻擊。若匹配成功,則判定當前訪問請求為漏洞攻擊;若匹配失敗,則判定當前訪問請求為安全訪問請求。傳統(tǒng)的漏洞攻擊檢測方法的缺點在于,極度依賴漏洞攻擊樣本特征庫,只能判定樣本特征庫中已有的漏洞攻擊,即與樣本特征庫中的特征完全匹配的漏洞攻擊,并且將訪問數(shù)據(jù)包中的相關(guān)信息與漏洞攻擊樣本特征庫中的關(guān)鍵字進行逐一匹配會造成很大的時間開銷。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的一個技術(shù)問題是提供一種檢測效率高、且能檢測未知的變異漏洞攻擊的漏洞攻擊檢測方法。
根據(jù)本發(fā)明實施例的一個方面,提供了一種漏洞攻擊的檢測方法,包括:利用K均值聚類算法對樣本數(shù)據(jù)分簇;將實際訪問數(shù)據(jù)在樣本數(shù)據(jù)簇中進行歸類;根據(jù)將實際訪問數(shù)據(jù)在樣本數(shù)據(jù)簇中的歸類結(jié)果確定實際訪問數(shù)據(jù)是否為漏洞攻擊。
在一個實施例中,漏洞攻擊為跨站腳本攻擊。
在一個實施例中,利用K均值聚類算法對樣本數(shù)據(jù)分簇包括:利用靜態(tài)分析技術(shù)檢測存在的漏洞類型,確定樣本數(shù)據(jù)簇的數(shù)量K,并根據(jù)K值對樣本數(shù)據(jù)進行分簇。
在一個實施例中,K=M+N,其中M表示靜態(tài)分析檢測得到的漏洞數(shù)目,N為正常訪問數(shù)據(jù)簇的數(shù)目。
在一個實施例中,利用K均值聚類算法對樣本數(shù)據(jù)進行分簇還包括:提取樣本數(shù)據(jù)的關(guān)鍵特征,并對樣本數(shù)據(jù)的關(guān)鍵特征進行標準化處理后,再根據(jù)K值對標準化處理后的樣本數(shù)據(jù)的關(guān)鍵特征進行分簇,從而完成對樣本數(shù)據(jù)進行分簇。
在一個實施例中,關(guān)鍵特征包括:cookie、URI、useragent、referer、method、post等數(shù)據(jù)中的一種或多種。
在一個實施例中,利用K均值聚類算法對樣本數(shù)據(jù)進行分簇還包括:根據(jù)樣本數(shù)據(jù)的關(guān)鍵特征及漏洞攻擊的特點,確定每個樣本數(shù)據(jù)簇的初始質(zhì)心。
在一個實施例中,利用K均值聚類算法對樣本數(shù)據(jù)進行分簇還包括:刪除與所有樣本數(shù)據(jù)簇距離大于預定閾值的異常樣本數(shù)據(jù)。
根據(jù)本發(fā)明實施例的一個方面,提供了一種漏洞攻擊的檢測裝置,包括:樣本數(shù)據(jù)分簇模塊,用于利用K均值聚類算法對樣本數(shù)據(jù)分簇;漏洞攻擊檢測模塊,用于將實際訪問數(shù)據(jù)在樣本數(shù)據(jù)簇中進行歸類,并根據(jù)將實際訪問數(shù)據(jù)在樣本數(shù)據(jù)簇中的歸類結(jié)果確定實際訪問數(shù)據(jù)是否為漏洞攻擊。
在一個實施例中,漏洞攻擊的檢測裝置為跨站腳本漏洞攻擊的檢測裝置。
在一個實施例中,樣本數(shù)據(jù)分簇模塊包括:漏洞檢測單元,用于利用靜態(tài)分析技術(shù)檢測存在的漏洞類型,確定樣本數(shù)據(jù)簇的數(shù)量K;分簇執(zhí)行單元,用于根據(jù)K值對樣本數(shù)據(jù)進行分簇。
在一個實施例中,樣本數(shù)據(jù)分簇模塊還包括:關(guān)鍵特征提取單元,用于提取樣本數(shù)據(jù)的關(guān)鍵特征;標準化處理單元,用于對樣本數(shù)據(jù)的關(guān)鍵特征進行標準化處理;分簇執(zhí)行單元根據(jù)K值對標準化處理后的樣本數(shù)據(jù)的關(guān)鍵特征進行分簇,從而完成對樣本數(shù)據(jù)進行分簇。
在一個實施例中,樣本數(shù)據(jù)分簇模塊還包括:初始質(zhì)心確定單元,用于根據(jù)樣本數(shù)據(jù)的關(guān)鍵特征及漏洞攻擊的特點,確定每個簇的初始 質(zhì)心。
在一個實施例中其特征在于,樣本數(shù)據(jù)分簇模塊還包括:異常樣本數(shù)據(jù)刪除單元,用于刪除與所有樣本數(shù)據(jù)簇距離大于預定閾值的異常樣本數(shù)據(jù)。
本發(fā)明至少具有以下優(yōu)點:
通過對實際網(wǎng)頁訪問數(shù)據(jù)的分簇,可以得知實際網(wǎng)頁訪問數(shù)據(jù)歸類于哪一個樣本數(shù)據(jù)簇,從而能夠檢測到漏洞攻擊樣本特征庫中不包含的漏洞攻擊,并且提高了檢測漏洞攻擊的效率。
通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其優(yōu)點將會變得清楚。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出本發(fā)明漏洞攻擊的檢測方法的一個實施例的流程示意圖。
圖2示出本發(fā)明利用K均值聚類算法對樣本數(shù)據(jù)分簇的一個實施例的流程示意圖。
圖3示出本發(fā)明利用K均值聚類算法對樣本數(shù)據(jù)進行分簇的另一個實施例的流程示意圖。
圖4示出本發(fā)明漏洞攻擊的檢測裝置的一個實施例的結(jié)構(gòu)示意圖。
圖5示出本發(fā)明樣本數(shù)據(jù)分簇模塊的一個實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案 進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應用或使用的任何限制?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
下面結(jié)合圖1描述本發(fā)明一個實施例的漏洞攻擊的檢測方法。
圖1示出本發(fā)明漏洞攻擊的檢測方法的一個實施例的流程示意圖。如圖1所示,在本實施例中,以網(wǎng)頁頁面上檢測XSS(Cross Site Scripting,跨站腳本攻擊)漏洞為例。首先,利用工具對網(wǎng)頁頁面存在的XSS漏洞進行攻擊,這些XSS漏洞包括頁面輸入、get請求參數(shù)、post請求參數(shù)、useragent以及referer等處。然后,將漏洞攻擊獲得的攻擊數(shù)據(jù)和安全的頁面訪問數(shù)據(jù)結(jié)合,構(gòu)成了樣本數(shù)據(jù)。然后執(zhí)行以下步驟:
步驟S102,利用K均值聚類算法對樣本數(shù)據(jù)分簇,使得樣本數(shù)據(jù)被分成K個樣本數(shù)據(jù)簇。
步驟S104,將待檢測的實際網(wǎng)頁訪問數(shù)據(jù)在K個樣本數(shù)據(jù)簇中進行歸類。
步驟S106,根據(jù)將待檢測的實際網(wǎng)頁訪問數(shù)據(jù)在K個樣本數(shù)據(jù)簇中的歸類結(jié)果,來確定實際的網(wǎng)頁訪問數(shù)據(jù)是否為XSS漏洞攻擊。
在上述方法中,待檢測的實際網(wǎng)頁訪問數(shù)據(jù)可能并不存在于樣本數(shù)據(jù)中,但是通過對實際網(wǎng)頁訪問數(shù)據(jù)的分簇,可以得知實際網(wǎng)頁訪問數(shù)據(jù)歸類于哪一個樣本數(shù)據(jù)簇,從而能夠檢測到漏洞攻擊樣本特征庫中不包含的攻擊,并且提高了檢測漏洞攻擊的效率。
下面結(jié)合圖2描述本發(fā)明一個實施例的利用K均值聚類算法對樣本數(shù)據(jù)分簇方法。
圖2示出本發(fā)明利用K均值聚類算法對樣本數(shù)據(jù)分簇的一個實施例的流程示意圖。如圖2所示,在上述實施例的基礎上,本實施例方法中的步驟S102具體包括:
步驟S1022,利用靜態(tài)分析技術(shù)檢測已存在的漏洞類型,并根據(jù) 檢測到的已存在漏洞類型數(shù)目來確定樣本數(shù)據(jù)簇的數(shù)值K。
例如,利用靜態(tài)分析技術(shù)檢測到已存在漏洞類型的數(shù)目為M,正常訪問數(shù)據(jù)簇的數(shù)目N,那么可以得到K=M+N,即K值和靜態(tài)分析得到的漏洞數(shù)目M呈線性關(guān)系。
步驟S1026,根據(jù)K值對樣本數(shù)據(jù)進行分簇。
可選的,在步驟S1022執(zhí)行完畢之后,可以執(zhí)行以下步驟:
步驟S1023,根據(jù)樣本數(shù)據(jù)的關(guān)鍵特征及漏洞攻擊的特點,確定每個樣本數(shù)據(jù)簇的初始質(zhì)心。
對于K均值聚類算法而言,一個難點在于初始聚類中心的選擇,并且需要反復試驗才能的到較優(yōu)的聚類數(shù)值K。本方法利用改進了K均值算法中的K值選取方法,更利于使用K均值算法對漏洞攻擊進行檢測,對于漏洞的攻擊檢測針對性更強。
此外,在一個實施例中,利用K均值聚類算法對樣本數(shù)據(jù)分簇方法還包括:
步驟S1028,刪除與所有樣本數(shù)據(jù)簇距離大于預定閾值的異常樣本數(shù)據(jù)。
利用K均值算法對每個樣本數(shù)據(jù)分簇時,都需要對有變化的樣本數(shù)據(jù)簇重新計算均值。因此,樣本數(shù)據(jù)如果距離樣本數(shù)據(jù)分簇的質(zhì)心距離越遠,則對于樣本數(shù)據(jù)簇重新均值的計算影響越大。對于樣本數(shù)據(jù)距離樣本數(shù)據(jù)分簇的質(zhì)心距離很遠的樣本數(shù)據(jù),我們稱之為異常樣本數(shù)據(jù)。在利用K均值聚類算法對樣本數(shù)據(jù)分簇方法還中,預先設定一個閾值,然后刪除與所有樣本數(shù)據(jù)簇距離大于預定閾值的異常樣本數(shù)據(jù),不僅可以解決K均值聚類算法對異常點敏感的問題,還可以節(jié)省算法的計算開銷,保證了利用K均值聚類算法對樣本數(shù)據(jù)分簇方法的高效性。
下面結(jié)合圖3描述本發(fā)明另一個實施例的利用K均值聚類算法對樣本數(shù)據(jù)分簇方法。
圖3示出本發(fā)明利用K均值聚類算法對樣本數(shù)據(jù)分簇的另一個實施例的流程示意圖。如圖3所示,在上述實施例的基礎上,本實施 例的步驟S102進一步包括:
步驟S1024,提取樣本數(shù)據(jù)的關(guān)鍵特征。
其中,樣本數(shù)據(jù)具體的關(guān)鍵特征可以包括cookie、URI、useragent、referer、method、post等。如果這些特征在待檢測的網(wǎng)頁頁面中出現(xiàn),則它們都是最終作為關(guān)鍵特征的數(shù)據(jù)。
步驟S1025,對樣本數(shù)據(jù)的關(guān)鍵特征進行標準化處理。
對樣本數(shù)據(jù)的關(guān)鍵特征進行標準化處理的一種具體實現(xiàn)方式,是對樣本數(shù)據(jù)的關(guān)鍵特征進行歸一化。例如,樣本數(shù)據(jù)的某一關(guān)鍵特征值為x,樣本數(shù)據(jù)簇的質(zhì)心值為μ,歸一化常量為σ,則歸一化后的關(guān)鍵特征值為x’=(x-μ)/σ。然后,利通K均值算法迭代計算個簇的質(zhì)心直至結(jié)果收斂。
在上述方法中,對樣本數(shù)據(jù)提取關(guān)鍵特征,可以使得對網(wǎng)頁頁面所含的漏洞攻擊檢測針對性更強。同時,對樣本數(shù)據(jù)的關(guān)鍵特征進行標準化處理可以提高計算效率。
下面結(jié)合圖4描述本發(fā)明一個實施例的漏洞攻擊的檢測裝置。
圖4示出本發(fā)明漏洞攻擊的檢測裝置的一個實施例的結(jié)構(gòu)示意圖。如圖4所示,該實施例的漏洞攻擊的檢測裝置40包括:
樣本數(shù)據(jù)分簇模塊402,用于利用K均值聚類算法對樣本數(shù)據(jù)分簇。
漏洞攻擊檢測模塊404,用于將實際訪問數(shù)據(jù)在樣本數(shù)據(jù)簇中進行歸類,并根據(jù)將所述實際訪問數(shù)據(jù)在所述樣本數(shù)據(jù)簇中的歸類結(jié)果確定所述實際訪問數(shù)據(jù)是否為漏洞攻擊。
下面結(jié)合圖5描述本發(fā)明另一個實施例的漏洞攻擊的檢測裝置。
圖5示出本發(fā)明樣本數(shù)據(jù)分簇模塊的一個實施例的結(jié)構(gòu)示意圖。如圖5所示,該實施例的樣本數(shù)據(jù)分簇模塊402包括:漏洞檢測單元5022,用于利用靜態(tài)分析技術(shù)檢測存在的漏洞類型,確定所述樣本數(shù)據(jù)簇的數(shù)量K。分簇執(zhí)行單元5026,用于根據(jù)K值對樣本數(shù)據(jù)進行分簇。
在一個實施例中,樣本數(shù)據(jù)分簇模塊還可以包括:關(guān)鍵特征提取 單元5024,用于提取樣本數(shù)據(jù)的關(guān)鍵特征。標準化處理單元5025,用于對所述樣本數(shù)據(jù)的關(guān)鍵特進行標準化處理。分簇執(zhí)行單元5026根據(jù)K值對標準化處理后的樣本數(shù)據(jù)的關(guān)鍵特征進行分簇,從而完成對樣本數(shù)據(jù)進行分簇。
在一個實施例中,樣本數(shù)據(jù)分簇模塊還可以包括:初始質(zhì)心確定單元5023,用于根據(jù)所述樣本數(shù)據(jù)的關(guān)鍵特征及漏洞攻擊的特點,確定每個簇的初始質(zhì)心。異常樣本數(shù)據(jù)刪除單元5028,用于刪除與所有樣本數(shù)據(jù)簇距離大于預定閾值的異常樣本數(shù)據(jù)。
本領域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。