本申請涉及網(wǎng)絡(luò)安全
技術(shù)領(lǐng)域:
,特別是涉及一種惡意攻擊識別方法及系統(tǒng)。
背景技術(shù):
:目前一些比較大型的地方論壇社區(qū)由于種種原因,經(jīng)常會遭受黑客的攻擊,最終經(jīng)常都損失慘重,有的服務(wù)器會帶寬耗盡,有的服務(wù)器負載很高。其中,常見的攻擊為CC(ChallengeCollapsar)攻擊,可以歸為DDoS攻擊的一種,是一種連接攻擊,原理為通過發(fā)送大量的請求數(shù)據(jù)來導致服務(wù)器拒絕服務(wù)。其中CC攻擊又可分為代理CC攻擊和肉雞CC攻擊。代理CC攻擊是黑客借助代理服務(wù)器生成指向受害主機的合法網(wǎng)頁請求,實現(xiàn)攻擊。肉雞就是被黑客攻破,種植了木馬病毒的電腦,肉雞CC攻擊是黑客使用CC攻擊軟件,控制大量肉雞,發(fā)動攻擊。對于前述的連接攻擊,目前的解決方案基本上都是實時獲取每個IP地址的鏈接數(shù),即頁面請求數(shù),將預(yù)定時間內(nèi)鏈接數(shù)超過一定閥值的IP地址加入黑名單中,禁止該IP地址的訪問。這種方法,對于普通的ddos攻擊,可以取得較好的效果,但是針對黑客掌握大量肉雞,然后通過肉雞來攻擊,并通過控制肉雞的連接數(shù)的情況,這可能起不到任何效果,因此目前的方法具有一定的使用局限性,無法準確的識別肉雞CC攻擊。技術(shù)實現(xiàn)要素:本申請?zhí)峁┮环N惡意攻擊識別方法及系統(tǒng),能夠解決惡意攻擊識別局限性和準確性的問題。為了解決上述問題,本申請公開了一種惡意攻擊識別方法,包括以下步驟:讀取最新的web訪問日志;判斷所述最新的web訪問日志中是否包含靜態(tài)資源文件,若是,則不作處理,反之,則進行下一步驟;獲取所述新的web訪問日志中所包含的IP地址的頁面請求數(shù),判斷單個IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊。進一步地,所述讀取最新的web訪問日志包括:間隔預(yù)定時間讀取一次;或?qū)π碌膚eb訪問日志數(shù)量進行監(jiān)控,若新的web訪問日志數(shù)量超過預(yù)定值,則讀取一次。進一步地,所述讀取最新的web訪問日志包括:間隔預(yù)定時間讀取固定數(shù)量的web訪問日志;記錄每次讀取的最新web訪問日志產(chǎn)生的時間點,并進行標識;若下次讀取的web訪問日志中包含有前一次讀取的最新web訪問日志產(chǎn)生的時間點,則只保留該時間點之后的web訪問日志。進一步地,判斷所述最新的web訪問日志中是否包含靜態(tài)資源文件包括:獲取新的web訪問日志中各文件的后綴;將所述后綴與預(yù)先存儲的后綴進行匹配;若新的web訪問日志中任何一個文件的后綴能與預(yù)先存儲的后綴中的任何一個匹配上,則確定新的web訪問日志中包含有靜態(tài)資源文件。進一步地,所述判斷單個IP地址的頁面請求數(shù)是否超過閾值包括:統(tǒng)計新的web訪問日志中每個IP地址分別對應(yīng)的頁面請求數(shù);選取頁面請求數(shù)最大的IP地址;判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并進行下一步驟;反之,則確定新的web訪問日志中所包含的IP地址的頁面請求數(shù)未超過閾值;從余下的IP地址中選取頁面請求數(shù)最大的IP地址,并重復(fù)前一步驟。進一步地,所述判斷單個IP地址的頁面請求數(shù)是否超過閾值包括:S1,統(tǒng)計新的web訪問日志中每個IP地址分別對應(yīng)的頁面請求數(shù);S2,按照頁面請求數(shù)從大到小的順序?qū)λ械腎P地址進行排序;S3,選取序號在預(yù)定數(shù)值內(nèi)的IP地址;S4,逐個判斷選取的IP地址中各IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并進行步驟S5,反之,則不作處理;S5,對未被選取的IP地址按照頁面請求數(shù)從大到小的順序重新進行排序,并重復(fù)步驟S3和S4。進一步地,所述步驟S4包括:按照序號從大到小選取最大序號的IP地址;判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定序號小于和等于當前IP地址的所有IP地址的頁面請求數(shù)都超過閾值;若否,則進行下一步驟;按照序號從大到小選取下一序號的IP地址,重復(fù)前一步驟。進一步地,所述方法還包括:禁止確定為惡意攻擊的IP地址的訪問。進一步地,所述禁止確定為惡意攻擊的IP地址的訪問包括:將確定為惡意攻擊的IP地址加入軟件防火墻的禁用列表中。為了解決上述問題,本申請還公開了一種惡意攻擊識別系統(tǒng),包括:訪問日志讀取模塊,用于讀取最新的web訪問日志;靜態(tài)資源文件判斷模塊,用于判斷所述最新的web訪問日志中是否包含靜態(tài)資源文件;頁面請求數(shù)判斷模塊,用于獲取所述新的web訪問日志中所包含的IP地址的頁面請求數(shù),判斷單個IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊。進一步地,所述訪問日志讀取模塊包括:時間單元,用于間隔預(yù)定時間觸發(fā)訪問日志模塊讀取新的web訪問日志;或數(shù)量單元,用于對新的web訪問日志數(shù)量進行監(jiān)控,若新的web訪問日志數(shù)量超過預(yù)定值,則觸發(fā)訪問日志模塊讀取新的web訪問日志。進一步地,所述訪問日志讀取模塊包括:讀取單元,用于間隔預(yù)定時間讀取固定數(shù)量的web訪問日志;時間點標識單元,用于記錄每次讀取的最新web訪問日志產(chǎn)生的時間點,并進行標識;選擇單元,用于判斷下次讀取的web訪問日志中是否包含有前一次讀取的最新web訪問日志產(chǎn)生的時間點,若有,則只保留該時間點之后的web訪問日志。進一步地,所述靜態(tài)資源文件判斷模塊包括:后綴獲取單元,用于獲取新的web訪問日志中各文件的后綴;匹配單元,用于將所述后綴與預(yù)先存儲的后綴進行匹配;確定單元,用于根據(jù)匹配結(jié)果確定新的web訪問日志中是否包含靜態(tài)資源文件。進一步地,所述頁面請求數(shù)判斷模塊包括:統(tǒng)計單元,用于統(tǒng)計新的web訪問日志中每個IP地址分別對應(yīng)的頁面請求數(shù);最大頁面請求數(shù)選取單元,用于選取頁面請求數(shù)最大的IP地址;比較單元,用于判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并觸發(fā)最大頁面請求數(shù)選取單元重新選取新的IP地址再次進行比較;反之,則確定新的web訪問日志中所包含的IP地址的頁面請求數(shù)未超過閾值。進一步地,所述頁面請求數(shù)判斷模塊包括:統(tǒng)計單元,用于統(tǒng)計新的web訪問日志中每個IP地址分別對應(yīng)的頁面請求數(shù);排序單元,用于按照頁面請求數(shù)從大到小的順序?qū)λ械腎P地址進行排序;選取單元,用于選取序號在預(yù)定數(shù)值內(nèi)的IP地址;判斷單元,用于逐個判斷選取的IP地址中各IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并觸發(fā)排序單元對余下的IP地址重新排序,然后通過選取單元和判斷單元重新選取和判斷,反之,則不作處理。進一步地,所述判斷單元包括:最大序號選取子單元,用于按照序號從大到小選取最大序號的IP地址;確定子單元,用于判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定序號小于和等于當前IP地址的所有IP地址的頁面請求數(shù)都超過閾值,若否,則觸發(fā)最大序號選取子單元重新選取并再次判斷。進一步地,所述系統(tǒng)還包括:禁止訪問模塊,用于禁止確定為惡意攻擊的IP地址的訪問。與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點:本申請的惡意攻擊識別方法及系統(tǒng),通過實時監(jiān)控新的web訪問日志,根據(jù)新的web訪問日志中所包含的文件來判斷一個IP地址對服務(wù)器的訪問是否為惡意訪問,利用人工正常訪問和惡意攻擊的區(qū)別進行實時判斷,同時再結(jié)合頁面請求數(shù)來綜合判斷,可以保證判斷結(jié)果的準確性,同時可以識別出惡意攻擊者利用正常用戶的客戶端來進行的惡意攻擊,提高了惡意攻擊識別率。另外,在進行新的web訪問日志讀取的過程中,采用時間點和數(shù)量像結(jié)合的方式,可以實時獲取最新的web訪問日志,又可以避免重復(fù)讀取,可以提高識別惡意攻擊的效率。進一步地,在進行頁面請求數(shù)判斷的時候,通過對新的web訪問日志中各IP地址的頁面請求數(shù)進行排序的方式來進行是否超過閾值的比較,可以快速的得出結(jié)果,提高了識別效率。當然,實施本申請的任一產(chǎn)品不一定需要同時達到以上所述的所有優(yōu)點。附圖說明圖1是本申請的惡意攻擊識別實現(xiàn)的系統(tǒng)架構(gòu)圖;圖2是本申請的惡意攻擊識別方法實施例一的流程圖;圖3是本申請的惡意攻擊識別方法實施例二的流程圖;圖4是本申請的惡意攻擊識別系統(tǒng)實施例一的結(jié)構(gòu)示意圖;圖5是本申請的惡意攻擊識別系統(tǒng)實施例二的結(jié)構(gòu)示意圖。具體實施方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本申請作進一步詳細的說明。參照圖1,示出實現(xiàn)本申請的惡意攻擊識別系統(tǒng)架構(gòu)圖。通過在服務(wù)器中設(shè)置惡意攻擊識別裝置來實時獲取各IP地址對網(wǎng)站的web訪問日志,并從web訪問日志中獲取相關(guān)信息來進行判斷,并將實時判斷結(jié)果反饋給服務(wù)器,從而實現(xiàn)對惡意攻擊的IP地址的實時監(jiān)控。下面對本申請的惡意攻擊識別方法及系統(tǒng)進行詳細的說明。參照圖2,示出本申請的一種惡意攻擊識別方法實施例一,包括以下步驟:步驟101,讀取最新的web訪問日志。其中最新的web訪問日志可以通過如下方式讀?。嚎梢栽O(shè)定讀取的時間,間隔預(yù)定時間讀取一次,例如每隔一分鐘讀取這一分鐘內(nèi)的所有新的web訪問日志。也可以設(shè)定讀取的條數(shù),通過對新的web訪問日志數(shù)量進行實時監(jiān)控,當新的web訪問日志數(shù)量超過設(shè)定條數(shù)時從服務(wù)器中存儲web訪問日志的數(shù)據(jù)庫中讀取,例如當新的web訪問日志數(shù)量超過1000時,讀取一次??梢岳斫?,還可以采用間隔一定時間讀取一定數(shù)量的web訪問日志的方式,即不對web訪問日志數(shù)量進行監(jiān)控,也不監(jiān)控是否是新的web訪問日志。而是以讀取的web訪問日志的時間點來進行判斷。每隔一定時間讀取固定數(shù)量的web訪問日志,讀取后記錄本次讀取的最新web訪問日志產(chǎn)生的時間點,并進行標識,當下次讀取出來的web訪問日志包含有上次讀取的最新web訪問日志產(chǎn)生的時間點,則截止到這個時間點,即只保留這個時間點以后產(chǎn)生的web訪問日志。通過數(shù)量與時間點的結(jié)合,可以保證每次讀取的web訪問日志不會重復(fù),同時無需進行實時監(jiān)控,可以減少對服務(wù)器資源的占用??梢岳斫獾氖?,為了避免每次讀取的web訪問日志中包含較多上次讀取的時間點前的web訪問日志,或者不能完全讀取新的web訪問日志??梢灶A(yù)先對web訪問日志產(chǎn)生的數(shù)量進行統(tǒng)計和估計,確定一個較為合適的數(shù)量。步驟102,判斷所述最新的web訪問日志中是否包含靜態(tài)資源文件,若是,則不作處理,反之,則進行下一步驟。判斷是否包含靜態(tài)資源文件可以通過獲取web訪問日志中各文件的后綴,并與預(yù)先存儲的代表靜態(tài)資源文件的后綴進行匹配,若新的web訪問日志中任何一個文件的后綴能與預(yù)先存儲的后綴中的任何一個匹配上,則說明最新的web訪問日志中包含有靜態(tài)資源文件,反之,則說明不包含。其中預(yù)先存儲的代表靜態(tài)資源文件的后綴可以通過實際情況分析獲取,并與記錄表等形式存儲在服務(wù)器中或者下載到本地客戶端。通常情況下,靜態(tài)資源文件包含圖片、css樣式文件或javascript腳本文件??梢詫@些文件的后綴進行提取并存儲,以供后續(xù)匹配使用。因為是否包含靜態(tài)資源文件是正常用戶與惡意攻擊者在訪問網(wǎng)站時的區(qū)別點,通常情況下,惡意攻擊者為了實現(xiàn)惡意攻擊,只是不斷提出訪問請求,并不會真正的去請求網(wǎng)站中所有頁面資源,特別是耗時的靜態(tài)頁面資源,通過此種方式,可以對惡意攻擊進行很好的識別。步驟103,獲取所述新的web訪問日志中所包含的IP地址的頁面請求數(shù),判斷單個IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊。單個IP地址的頁面請求數(shù)可以根據(jù)web訪問日志的數(shù)量來確定,每個IP地址的web訪問日志的數(shù)量即為其頁面請求數(shù)。優(yōu)選地,為了減少判斷次數(shù),還可以通過如下方式來對web訪問日志所包含的IP地址的頁面請求數(shù)是否超過閾值進行判斷:統(tǒng)計新的web訪問日志中每個IP地址分別對應(yīng)的頁面請求數(shù);選取頁面請求數(shù)最大的IP地址;判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并進行下一步驟;反之,則確定新的web訪問日志中所包含的IP地址的頁面請求數(shù)未超過閾值;從余下的IP地址中選取頁面請求數(shù)最大的IP地址,并重復(fù)前一步驟。閾值可以根據(jù)設(shè)定的讀取新的web訪問日志的時間間隔等因素設(shè)定,例如,當讀取新的web訪問日志的時間間隔為1分鐘時,可以設(shè)定閾值為100個或50個,因為正常情況下,一個正常用戶幾乎不可能在短時間內(nèi)提出100次或50次訪問請求。具體數(shù)值本申請對此并不限制,可以理解的是,為了避免出現(xiàn)誤判,可以在允許的情況下適當提高閾值。可以理解,還可以通過如下方式來對web訪問日志所包含的IP地址的頁面請求數(shù)是否超過閾值進行判斷:S1,統(tǒng)計新的web訪問日志中所有的IP地址分別對應(yīng)的頁面請求數(shù);S2,按照頁面請求數(shù)從大到小的順序?qū)λ械腎P地址進行排序;S3,選取序號在預(yù)定數(shù)值內(nèi)的IP地址;S4,逐個判斷選取的IP地址中各IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并進行步驟S5,反之,則不作處理;S5,對未被選取的IP地址按照頁面請求數(shù)從大到小的順序重新進行排序,并重復(fù)步驟S3和S4。其中,預(yù)定數(shù)值可以根據(jù)實際情況設(shè)定,可以考慮的因素包括但不限于服務(wù)器的運算能力和效率、新的web訪問日志中可能包含的IP地址數(shù)量,或者新的web訪問日志中可能超過閾值的IP地址數(shù)量等等。其中,IP地址數(shù)量可以根據(jù)歷史數(shù)據(jù)統(tǒng)計得出,也可以根據(jù)經(jīng)驗估計??偟膩頃?,預(yù)定數(shù)值的設(shè)定,只要能夠快速的得出判斷結(jié)果即可,本申請對此并不限制。例如,每次選取50個序號等等。優(yōu)選地,因為各IP地址按照頁面請求數(shù)的大小進行過排序,因此步驟S4還可以通過如下方式進行判斷,即:按照序號從大到小選取最大序號的IP地址;判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定序號小于和等于當前IP地址的所有IP地址的頁面請求數(shù)都超過閾值;若否,則進行下一步驟;按照序號從大到小選取下一序號的IP地址,重復(fù)前一步驟。參照圖3,示出本申請的惡意攻擊識別方法實施例二,在實施例一的基礎(chǔ)上還包括:步驟201,禁止確定為惡意攻擊的IP地址的訪問。禁止所述IP地址的訪問包括將IP地址加入軟件防火墻的禁用列表中,可以理解,還可以通過其他方式來實現(xiàn),具體可以通過根據(jù)需要設(shè)定特定程序來實現(xiàn)。例如,在centos或redhat下一般為iptables,這些軟件都會提供命令來執(zhí)行將IP地址加入禁用列表的過程,例如,/sbin/iptables-AINPUT-ptcp-s192.168.1.12-jDROP。在前述方法中,通過實時監(jiān)控新的web訪問日志,根據(jù)新的web訪問日志中所包含的文件來判斷一個IP地址對服務(wù)器的訪問是否為惡意訪問,利用人工正常訪問和惡意攻擊的區(qū)別進行實時判斷,同時再結(jié)合頁面請求數(shù)來綜合判斷,可以保證判斷結(jié)果的準確性,同時可以識別出惡意攻擊者利用正常用戶的客戶端來進行的惡意攻擊,提高了惡意攻擊識別率。另外,在進行新的web訪問日志讀取的過程中,采用時間點和數(shù)量像結(jié)合的方式,可以實時獲取最新的web訪問日志,又可以避免重復(fù)讀取,可以提高識別惡意攻擊的效率。進一步地,在進行頁面請求數(shù)判斷的時候,通過對新的web訪問日志中各IP地址的頁面請求數(shù)進行排序的方式來進行是否超過閾值的比較,可以快速的得出結(jié)果,提高了識別效率。參照圖4,示出本申請的一種惡意攻擊識別系統(tǒng),包括訪問日志讀取模塊10、靜態(tài)資源文件判斷模塊20和頁面請求數(shù)判斷模塊30。訪問日志讀取模塊10,用于讀取最新的web訪問日志。靜態(tài)資源文件判斷模塊20,用于判斷所述最新的web訪問日志中是否包含靜態(tài)資源文件。頁面請求數(shù)判斷模塊30,用于獲取所述新的web訪問日志中所包含的IP地址的頁面請求數(shù),判斷單個IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊。其中,訪問日志讀取模塊10包括時間單元或數(shù)量單元。時間單元,用于間隔預(yù)定時間觸發(fā)訪問日志模塊讀取新的web訪問日志。數(shù)量單元,用于對新的web訪問日志數(shù)量進行監(jiān)控,若新的web訪問日志數(shù)量超過預(yù)定值,則觸發(fā)訪問日志模塊讀取新的web訪問日志。優(yōu)選地,訪問日志讀取模塊10也可以包括讀取單元、時間點標識單元和選擇單元。讀取單元,用于間隔預(yù)定時間讀取固定數(shù)量的web訪問日志。時間點標識單元,用于記錄每次讀取的最新web訪問日志產(chǎn)生的時間點,并進行標識。選擇單元,用于判斷下次讀取的web訪問日志中是否包含有前一次讀取的最新web訪問日志產(chǎn)生的時間點,若有,則只保留該時間點之后的web訪問日志。優(yōu)選地,靜態(tài)資源文件判斷模塊20包括后綴獲取單元、匹配單元和確定單元。后綴獲取單元,用于獲取新的web訪問日志中各文件的后綴。匹配單元,用于將所述后綴與預(yù)先存儲的后綴進行匹配。確定單元,用于根據(jù)匹配結(jié)果確定新的web訪問日志中是否包含靜態(tài)資源文件。優(yōu)選地,頁面請求數(shù)判斷模塊30包括統(tǒng)計單元、最大頁面請求數(shù)選取單元和比較單元。統(tǒng)計單元,用于統(tǒng)計新的web訪問日志中每個IP地址分別對應(yīng)的頁面請求數(shù)。最大頁面請求數(shù)選取單元,用于選取頁面請求數(shù)最大的IP地址。比較單元,用于判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并觸發(fā)最大頁面請求數(shù)選取單元重新選取新的IP地址再次進行比較;反之,則確定新的web訪問日志中所包含的IP地址的頁面請求數(shù)未超過閾值??梢岳斫猓撁嬲埱髷?shù)判斷模塊30還可以包括統(tǒng)計單元、排序單元、選取單元和判斷單元。統(tǒng)計單元,用于統(tǒng)計新的web訪問日志中每個IP地址分別對應(yīng)的頁面請求數(shù)。排序單元,用于按照頁面請求數(shù)從大到小的順序?qū)λ械腎P地址進行排序。選取單元,用于選取序號在預(yù)定數(shù)值內(nèi)的IP地址。判斷單元,用于逐個判斷選取的IP地址中各IP地址的頁面請求數(shù)是否超過閾值,若是,則確定所述IP地址的訪問為惡意攻擊,并觸發(fā)排序單元對余下的IP地址重新排序,然后通過選取單元和判斷單元重新選取和判斷,反之,則不作處理。優(yōu)選地,判斷單元還可以包括最大序號選取子單元和確定子單元。最大序號選取子單元,用于按照序號從大到小選取最大序號的IP地址。確定子單元,用于判斷該IP地址的頁面請求數(shù)是否超過閾值,若是,則確定序號小于和等于當前IP地址的所有IP地址的頁面請求數(shù)都超過閾值,若否,則觸發(fā)最大序號選取子單元重新選取并再次判斷。參照圖5,示出本申請的惡意攻擊識別系統(tǒng)實施例二,在實施例一的基礎(chǔ)上還包括禁止訪問模塊40,用于禁止確定為惡意攻擊的IP地址的訪問。其中可以通過將IP地址添加入軟件防火墻的禁用列表中的方式來實現(xiàn)禁止訪問。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上對本申請所提供的惡意攻擊識別方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。當前第1頁1 2 3