本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,特別是指一種報(bào)警關(guān)聯(lián)方法及裝置。
背景技術(shù):
當(dāng)Web應(yīng)用越來(lái)越為豐富的同時(shí),Web服務(wù)器以其強(qiáng)大的計(jì)算能力、處理性能及蘊(yùn)含的較高價(jià)值逐漸成為主要攻擊目標(biāo),結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language,簡(jiǎn)稱(chēng)SQL)注入、網(wǎng)頁(yè)篡改、網(wǎng)頁(yè)掛馬等安全事件頻繁發(fā)生,因此Web應(yīng)用防火墻(Web Application Firewall,簡(jiǎn)稱(chēng)WAF)應(yīng)運(yùn)而生。WAF工作在應(yīng)用層,對(duì)來(lái)自Web應(yīng)用程序客戶(hù)端的各類(lèi)請(qǐng)求進(jìn)行內(nèi)容檢測(cè)和驗(yàn)證,確保其安全性與合法性,對(duì)非法的請(qǐng)求予以實(shí)時(shí)阻斷,從而對(duì)各類(lèi)網(wǎng)站站點(diǎn)進(jìn)行有效防護(hù)。WAF在運(yùn)行過(guò)程中會(huì)產(chǎn)生大量報(bào)警且每條報(bào)警只能反映單個(gè)攻擊行為,而由于現(xiàn)實(shí)的網(wǎng)絡(luò)攻擊往往結(jié)合多種工具和方法在一定的時(shí)間和空間跨度內(nèi)實(shí)施多步攻擊,WAF報(bào)警中分散的單個(gè)攻擊行為可能只是同一次攻擊的組成部分,只著眼于單個(gè)攻擊行為不利于發(fā)現(xiàn)攻擊者真實(shí)的攻擊意圖,因此如何將多個(gè)分散但有邏輯關(guān)系的細(xì)粒度的攻擊行為組合成粗粒度的攻擊過(guò)程是一個(gè)所面臨的重要問(wèn)題。
目前國(guó)內(nèi)對(duì)于報(bào)警關(guān)聯(lián)方法的研究主要集中在入侵檢測(cè)系統(tǒng)(Intrusion Detection System,簡(jiǎn)稱(chēng)IDS)領(lǐng)域,關(guān)聯(lián)方法主要分為三大類(lèi):
1.基于報(bào)警之間的相似性
這類(lèi)方法通過(guò)計(jì)算不同的報(bào)警之間屬性值的相似性來(lái)衡量報(bào)警的相似性,進(jìn)而對(duì)報(bào)警進(jìn)行聚類(lèi)。
2.基于攻擊的因果關(guān)系
這類(lèi)方法首先標(biāo)識(shí)出每個(gè)攻擊類(lèi)型的前提和結(jié)果,然后通過(guò)匹配不同的攻擊行為之間因果關(guān)系建立多步攻擊的關(guān)聯(lián)。
3.基于已知攻擊場(chǎng)景
這類(lèi)方法通過(guò)把報(bào)警和已知的攻擊場(chǎng)景相匹配來(lái)關(guān)聯(lián)不同的攻擊行為,重建多步攻擊場(chǎng)景。
在傳統(tǒng)的面向IDS報(bào)警的報(bào)警關(guān)聯(lián)方法中,基于報(bào)警之前的相似性的報(bào)警關(guān)聯(lián)方法由于只立足于攻擊形式、攻擊來(lái)源上的相似性對(duì)攻擊行為聚類(lèi),難以對(duì)具有多種攻擊形式、多種攻擊來(lái)源的多步攻擊完成聚類(lèi)?;诠舻囊蚬P(guān)系和基于已知攻擊場(chǎng)景的報(bào)警關(guān)聯(lián)方法由于需要大量先驗(yàn)知識(shí),難以構(gòu)造完善的先驗(yàn)知識(shí)庫(kù),而且需要不斷更新先驗(yàn)知識(shí)庫(kù)來(lái)適應(yīng)新的攻擊方法、攻擊過(guò)程。
由于WAF報(bào)警與IDS報(bào)警所包含的信息不盡相同,如WAF報(bào)警中攻擊者訪(fǎng)問(wèn)的域名就是IDS報(bào)警中不具備的信息,無(wú)法直接使用面向IDS報(bào)警的報(bào)警關(guān)聯(lián)方法來(lái)關(guān)聯(lián)WAF報(bào)警,因此如何設(shè)計(jì)一個(gè)面向WAF報(bào)警的報(bào)警關(guān)聯(lián)方法是一個(gè)所面臨的重要問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種報(bào)警關(guān)聯(lián)方法及裝置,用以解決WAF報(bào)警只著眼于單個(gè)攻擊行為,不能將多個(gè)分散但有邏輯關(guān)系的細(xì)粒度的攻擊行為組合成粗粒度的攻擊過(guò)程,從而不利于發(fā)現(xiàn)攻擊者真實(shí)的攻擊意圖的問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種報(bào)警關(guān)聯(lián)方法,包括:
根據(jù)應(yīng)用防火墻WAF報(bào)警日志,得到攻擊行為信息;
根據(jù)所述攻擊行為信息,獲取攻擊者的攻擊模式信息,所述攻擊模式信息包括攻擊者在一個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息;
根據(jù)不同的攻擊者的攻擊模式信息之間的相似度,對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理。
其中,所述根據(jù)應(yīng)用防火墻WAF報(bào)警日志,得到攻擊行為信息,包括:
從所述WAF報(bào)警日志中提取出至少一個(gè)攻擊行為,每個(gè)所述攻擊行為包括:被攻擊者的域名信息、攻擊時(shí)間信息、攻擊類(lèi)型信息及攻擊者的IP信息;
根據(jù)每個(gè)所述攻擊者的IP信息,分配一用于標(biāo)識(shí)攻擊者身份的標(biāo)識(shí)信息,其中,不同的IP對(duì)應(yīng)于不同的標(biāo)識(shí)信息;
將包括所述攻擊行為及用于標(biāo)識(shí)所述攻擊行為中攻擊者身份的標(biāo)識(shí)信息的信息組合,作為所述攻擊行為信息。
其中,所述根據(jù)所述攻擊行為信息,獲取攻擊者的攻擊模式信息,包括:
根據(jù)所述攻擊行為信息,將具有相同域名信息和相同標(biāo)識(shí)信息、且攻擊時(shí)間的差值小于第一預(yù)設(shè)閾值的攻擊行為劃分為同一個(gè)攻擊過(guò)程;
獲取每個(gè)攻擊過(guò)程中的攻擊類(lèi)型信息;
將每個(gè)攻擊過(guò)程對(duì)應(yīng)的域名信息、標(biāo)識(shí)信息及攻擊類(lèi)型信息作為所述標(biāo)識(shí)信息所標(biāo)識(shí)攻擊者的攻擊模式信息。
其中,所述獲取每個(gè)攻擊過(guò)程中的攻擊類(lèi)型信息,包括:
根據(jù)攻擊時(shí)間信息,對(duì)每個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息進(jìn)行排序處理,得到每個(gè)攻擊過(guò)程中的攻擊類(lèi)型序列信息;
將每個(gè)攻擊過(guò)程的攻擊類(lèi)型序列信息中相鄰且相同的兩個(gè)攻擊類(lèi)型信息進(jìn)行合并處理,并將合并后的攻擊類(lèi)型序列信息,作為該攻擊過(guò)程中的攻擊類(lèi)型信息。
其中,所述根據(jù)不同的攻擊者的攻擊模式信息之間的相似度,對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理,包括:
獲取不同的攻擊者的攻擊模式信息之間的相似度;
若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息。
其中,所述獲取不同的攻擊者的攻擊模式信息之間的相似度,包括:
分別獲取兩個(gè)不同的攻擊者的攻擊類(lèi)型序列信息Sa和Sb;
通過(guò)如下公式獲取Sa和Sb的最長(zhǎng)公共子序列的長(zhǎng)度ma,b:
ma,b=f(na,nb);
其中,Typea,i表示Sa中的第i個(gè)攻擊類(lèi)型,Typeb,j表示Sb中的第j個(gè)攻擊類(lèi)型,na表示Sa的長(zhǎng)度,nb表示Sb的長(zhǎng)度;
根據(jù)所述最長(zhǎng)公共子序列的長(zhǎng)度ma,b是否滿(mǎn)足預(yù)設(shè)條件,判斷所述兩個(gè)不同的攻擊者的攻擊模式信息是否相似,所述預(yù)設(shè)條件為
若相似,則通過(guò)公式計(jì)算所述兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度。
其中,在所述若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息之后,所述報(bào)警關(guān)聯(lián)方法還包括:
判斷根據(jù)WAF報(bào)警日志得到的攻擊行為信息中,是否存在所述兩個(gè)不同的攻擊者的攻擊行為信息;
若存在,則將所述兩個(gè)不同的攻擊者的攻擊行為信息中的標(biāo)識(shí)信息修改為重新分配的標(biāo)識(shí)信息。
本發(fā)明還提供了一種報(bào)警關(guān)聯(lián)裝置,包括:
第一獲取模塊,用于根據(jù)應(yīng)用防火墻WAF報(bào)警日志,得到攻擊行為信息;
第二獲取模塊,用于根據(jù)所述攻擊行為信息,獲取攻擊者的攻擊模式信息,所述攻擊模式信息包括攻擊者在一個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息;
關(guān)聯(lián)模塊,用于根據(jù)不同的攻擊者的攻擊模式信息之間的相似度,對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理。
其中,所述第一獲取模塊包括:
提取子模塊,用于從所述WAF報(bào)警日志中提取出至少一個(gè)攻擊行為,每個(gè)所述攻擊行為包括:被攻擊者的域名信息、攻擊時(shí)間信息、攻擊類(lèi)型信息及攻擊者的IP信息;
分配子模塊,用于根據(jù)每個(gè)所述攻擊者的IP信息,分配一用于標(biāo)識(shí)攻擊者身份的標(biāo)識(shí)信息,其中,不同的IP對(duì)應(yīng)于不同的標(biāo)識(shí)信息;
第一確定子模塊,用于將包括所述攻擊行為及用于標(biāo)識(shí)所述攻擊行為中攻擊者身份的標(biāo)識(shí)信息的信息組合,作為所述攻擊行為信息。
其中,所述第二獲取模塊包括:
劃分子模塊,用于根據(jù)所述攻擊行為信息,將具有相同域名信息和相同標(biāo)識(shí)信息、且攻擊時(shí)間的差值小于第一預(yù)設(shè)閾值的攻擊行為劃分為同一個(gè)攻擊過(guò)程;
第一獲取子模塊,用于獲取每個(gè)攻擊過(guò)程中的攻擊類(lèi)型信息;
第二確定子模塊,用于將每個(gè)攻擊過(guò)程對(duì)應(yīng)的域名信息、標(biāo)識(shí)信息及攻擊類(lèi)型信息作為所述標(biāo)識(shí)信息所標(biāo)識(shí)攻擊者的攻擊模式信息。
其中,所述第一獲取子模塊包括:
第一獲取單元,用于根據(jù)攻擊時(shí)間信息,對(duì)每個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息進(jìn)行排序處理,得到每個(gè)攻擊過(guò)程中的攻擊類(lèi)型序列信息;
第二獲取單元,用于將每個(gè)攻擊過(guò)程的攻擊類(lèi)型序列信息中相鄰且相同的兩個(gè)攻擊類(lèi)型信息進(jìn)行合并處理,并將合并后的攻擊類(lèi)型序列信息,作為該攻擊過(guò)程中的攻擊類(lèi)型信息。
其中,所述關(guān)聯(lián)模塊包括:
第二獲取子模塊,用于獲取不同的攻擊者的攻擊模式信息之間的相似度;
分配子模塊,用于若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息。
其中,所述第二獲取子模塊包括:
第三獲取單元,用于分別獲取兩個(gè)不同的攻擊者的攻擊類(lèi)型序列信息Sa和Sb;
第一計(jì)算單元,用于通過(guò)如下公式獲取Sa和Sb的最長(zhǎng)公共子序列的長(zhǎng)度ma,b:
ma,b=f(na,nb);
其中,Typea,i表示Sa中的第i個(gè)攻擊類(lèi)型,Typeb,j表示Sb中的第j個(gè)攻擊類(lèi)型,na表示Sa的長(zhǎng)度,nb表示Sb的長(zhǎng)度;
判斷單元,用于根據(jù)所述最長(zhǎng)公共子序列的長(zhǎng)度ma,b是否滿(mǎn)足預(yù)設(shè)條件,判斷所述兩個(gè)不同的攻擊者的攻擊模式信息是否相似,所述預(yù)設(shè)條件為
第二計(jì)算單元,用于若相似,則通過(guò)公式計(jì)算所述兩個(gè) 不同的攻擊者的攻擊模式信息之間的相似度。
其中,上述報(bào)警關(guān)聯(lián)裝置,還包括:
判斷模塊,用于在所述若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息之后,判斷根據(jù)WAF報(bào)警日志得到的攻擊行為信息中,是否存在所述兩個(gè)不同的攻擊者的攻擊行為信息;
重新分配模塊,用于若根據(jù)WAF報(bào)警日志得到的攻擊行為信息中存在所述兩個(gè)不同的攻擊者的攻擊行為信息,則將所述兩個(gè)不同的攻擊者的攻擊行為信息中的標(biāo)識(shí)信息修改為重新分配的標(biāo)識(shí)信息。
本發(fā)明實(shí)施例具有以下有益效果:
本發(fā)明實(shí)施例的報(bào)警關(guān)聯(lián)方法,根據(jù)應(yīng)用防火墻WAF報(bào)警日志,得到攻擊行為信息;根據(jù)所述攻擊行為信息,獲取攻擊者的攻擊模式信息,所述攻擊模式信息包括攻擊者在一個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息;根據(jù)不同的攻擊者的攻擊模式信息之間的相似度,對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理。本發(fā)明實(shí)施例不需要額外的報(bào)警關(guān)聯(lián)規(guī)則、報(bào)警關(guān)聯(lián)知識(shí)庫(kù)等先驗(yàn)知識(shí),自動(dòng)從WAF報(bào)警日志中提取攻擊行為信息并進(jìn)一步提取攻擊者的攻擊模式信息,通過(guò)攻擊者的攻擊模式信息對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理,進(jìn)而將大量細(xì)粒度的WAF報(bào)警信息關(guān)聯(lián)成粗粒度的WAF報(bào)警信息。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例的報(bào)警關(guān)聯(lián)方法的第一工作流程圖;
圖2為本發(fā)明實(shí)施例的報(bào)警關(guān)聯(lián)方法的第二工作流程圖;
圖3為本發(fā)明實(shí)施例的報(bào)警關(guān)聯(lián)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明要解決的技術(shù)問(wèn)題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合具體實(shí)施例及附圖進(jìn)行詳細(xì)描述。
本發(fā)明的實(shí)施例提供了一種報(bào)警關(guān)聯(lián)方法及裝置,解決了WAF報(bào)警只著眼于單個(gè)攻擊行為,不能將多個(gè)分散但有邏輯關(guān)系的細(xì)粒度的攻擊行為組合成粗 粒度的攻擊過(guò)程,從而不利于發(fā)現(xiàn)攻擊者真實(shí)的攻擊意圖的問(wèn)題。
如圖1所示,本發(fā)明實(shí)施例的報(bào)警關(guān)聯(lián)方法,包括:
步驟11:根據(jù)應(yīng)用防火墻WAF報(bào)警日志,得到攻擊行為信息。
這里,攻擊行為信息可具體包括:被攻擊者的域名信息、攻擊時(shí)間信息、攻擊類(lèi)型信息、攻擊者的IP信息及用于標(biāo)識(shí)攻擊者身份的標(biāo)識(shí)信息。
步驟12:根據(jù)上述攻擊行為信息,獲取攻擊者的攻擊模式信息,上述攻擊模式信息包括攻擊者在一個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息。
在本發(fā)明的具體實(shí)施例中,對(duì)攻擊行為信息進(jìn)行劃分處理,將具有相同域名信息和標(biāo)識(shí)信息,且攻擊時(shí)間小于預(yù)設(shè)閾值的攻擊行為劃分為同一個(gè)攻擊過(guò)程,然后根據(jù)該攻擊過(guò)程對(duì)應(yīng)的域名信息和標(biāo)識(shí)信息,得到該攻擊過(guò)程對(duì)應(yīng)的攻擊模式信息。
步驟13:根據(jù)不同的攻擊者的攻擊模式信息之間的相似度,對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理。
本發(fā)明實(shí)施例首先計(jì)算不同攻擊者的攻擊模式的相似性,若兩個(gè)不同攻擊者的攻擊模式之間的相似性大于預(yù)定值,則重新為兩個(gè)不同攻擊者分配一標(biāo)識(shí)信息。本發(fā)明實(shí)施例中基于攻擊模式的相似性能夠更加準(zhǔn)確的合并攻擊者,進(jìn)而達(dá)到將細(xì)粒度的WAF報(bào)警信息關(guān)聯(lián)成粗粒度的WAF報(bào)警信息的目的。
進(jìn)一步地,在本發(fā)明的具體實(shí)施例中,上述步驟11包括:
從所述WAF報(bào)警日志中提取出至少一個(gè)攻擊行為,每個(gè)所述攻擊行為包括:被攻擊者的域名信息、攻擊時(shí)間信息、攻擊類(lèi)型信息及攻擊者的IP信息;根據(jù)每個(gè)所述攻擊者的IP信息,分配一用于標(biāo)識(shí)攻擊者身份的標(biāo)識(shí)信息,其中,不同的IP對(duì)應(yīng)于不同的標(biāo)識(shí)信息;將包括所述攻擊行為及用于標(biāo)識(shí)所述攻擊行為中攻擊者身份的標(biāo)識(shí)信息的信息組合,作為所述攻擊行為信息。本發(fā)明實(shí)施例通過(guò)為每一個(gè)IP分配唯一一個(gè)身份標(biāo)識(shí)信息ID,方便后續(xù)根據(jù)所述ID對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理。
進(jìn)一步地,在本發(fā)明的具體實(shí)施例中,上述步驟12包括:
根據(jù)所述攻擊行為信息,將具有相同域名信息和相同標(biāo)識(shí)信息、且攻擊時(shí)間的差值小于第一預(yù)設(shè)閾值的攻擊行為劃分為同一個(gè)攻擊過(guò)程;獲取每個(gè)攻擊過(guò)程中的攻擊類(lèi)型信息;將所述同一攻擊過(guò)程對(duì)應(yīng)的域名信息、標(biāo)識(shí)信息及攻 擊類(lèi)型信息作為所述標(biāo)識(shí)信息所標(biāo)識(shí)攻擊者的攻擊模式信息。
上述獲取每個(gè)攻擊過(guò)程中的攻擊類(lèi)型信息具體包括:根據(jù)攻擊時(shí)間信息,對(duì)每個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息進(jìn)行排序處理,得到每個(gè)攻擊過(guò)程的攻擊類(lèi)型序列信息;將每個(gè)攻擊過(guò)程的攻擊類(lèi)型序列信息中相鄰且相同的兩個(gè)攻擊類(lèi)型信息進(jìn)行合并處理,并將合并后的攻擊類(lèi)型序列信息,作為所述該攻擊過(guò)程中的攻擊類(lèi)型信息。
本發(fā)明實(shí)施例不需要額外的報(bào)警關(guān)聯(lián)規(guī)則、報(bào)警關(guān)聯(lián)知識(shí)庫(kù)等先驗(yàn)知識(shí),自動(dòng)從WAF報(bào)警日志中提取攻擊行為信息并進(jìn)一步提取攻擊者的攻擊模式信息,通過(guò)攻擊者的攻擊模式信息對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理,進(jìn)而將大量細(xì)粒度的WAF報(bào)警信息關(guān)聯(lián)成粗粒度的WAF報(bào)警信息。
進(jìn)一步地,在本發(fā)明的具體實(shí)施例中,上述步驟13包括:
獲取不同的攻擊者的攻擊模式信息之間的相似度;若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息。
下面具體說(shuō)明如何獲取不同攻擊者的攻擊模式信息之間的相似度。
假定任意兩個(gè)具有不同ID的攻擊者a,b,其攻擊模式信息分別為Pa,Pb,攻擊類(lèi)型序列信息分別為Sa,Sb,設(shè)Sa的長(zhǎng)度為na,Sb的長(zhǎng)度為nb。
首先通過(guò)如下公式計(jì)算Sa和Sb的最長(zhǎng)公共子序列的長(zhǎng)度ma,b:
ma,b=f(na,nb);
其中,Typea,i表示Sa中的第i個(gè)攻擊類(lèi)型,Typeb,j表示Sb中的第j個(gè)攻擊類(lèi)型,na表示Sa的長(zhǎng)度,nb表示Sb的長(zhǎng)度;
接著,判斷ma,b是否滿(mǎn)足以下預(yù)設(shè)條件:
若ma,b能夠滿(mǎn)足以上預(yù)設(shè)條件,則認(rèn)為a,b的攻擊模式信息相似,并通過(guò)公式計(jì)算a,b的攻擊模式信息之間的相似度。
另外,在本發(fā)明的具體實(shí)施例中,在所述若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息之后,所述報(bào)警關(guān)聯(lián)方法還包括:判斷根據(jù)WAF報(bào)警日志得到的攻擊行為信息中,是否存在所述兩個(gè)不同的攻擊者的攻擊行為信息;若存在,則將所述兩個(gè)不同的攻擊者的攻擊行為信息中的標(biāo)識(shí)信息修改為重新分配的標(biāo)識(shí)信息。
下面具體說(shuō)明本發(fā)明實(shí)施例的工作流程。
如圖2所示,本發(fā)明實(shí)施例的報(bào)警關(guān)聯(lián)方法,包括:
步驟21:從WAF報(bào)警日志中提取攻擊行為。
具體的,將WAF報(bào)警日志中各條記錄格式化為攻擊行為A=<Time,Domain,Type,IP,ID>,其中Time表示實(shí)施攻擊的時(shí)間,Domain表示被攻擊的域名,Type表示攻擊的類(lèi)型,IP表示攻擊者的IP,ID用來(lái)標(biāo)識(shí)攻擊者的身份。初始時(shí)Time,Domain,Type,IP均從WAF報(bào)警日志記錄中直接讀取,同時(shí)為每個(gè)IP分配一個(gè)唯一的ID值,即相同的IP具有相同的ID值,不同的IP具有不同的ID值。
步驟22:根據(jù)攻擊行為,提供攻擊者的攻擊模式信息。
在本發(fā)明的具體實(shí)施例中,可根據(jù)設(shè)定的時(shí)間間隔閾值ΔT(如ΔT=12小時(shí)),將時(shí)間間隔小于ΔT且具有相同Domain和ID的攻擊行為A視為同一個(gè)攻擊過(guò)程。對(duì)于每個(gè)攻擊過(guò)程,按時(shí)序列出其包含的各個(gè)攻擊行為A的Type屬性的值,并將相鄰且相同的Type合并為一個(gè),得到攻擊類(lèi)型序列S=<Type1,Type2,...>,綜合該攻擊過(guò)程對(duì)應(yīng)的Domain和ID,得到該攻擊過(guò)程對(duì)應(yīng)的攻擊模式P=<Domain,ID,S>。最后根據(jù)設(shè)定的攻擊類(lèi)型序列長(zhǎng)度閾值ΔL(如ΔL=5),舍棄所有攻擊類(lèi)型序列S長(zhǎng)度小于ΔL的攻擊模式P。
步驟23:判斷是否有可以合并的攻擊者。
這里,通過(guò)上述公式判斷是存在攻擊模式相似的攻擊者,若存在,則認(rèn)為有可以合并的攻擊者。
步驟24:若存在可以合并的攻擊者,則合并相似度最高的攻擊者,并返回步驟22。
設(shè)具有最高相似度的攻擊模式為Px和Py,合并攻擊者IDx和IDy:為攻擊者 IDx和IDy分配一個(gè)新的唯一的ID值u,并逐一檢查從WAF報(bào)警日志中提取出的各個(gè)攻擊行為A,如果其ID值為IDx或IDy,則將其ID值修改為新分配的ID值u。
在本發(fā)明的具體實(shí)施例中,若存在可以合并的攻擊者,則迭代執(zhí)行“合并相似度最高的攻擊者”以及“提供攻擊者的攻擊模式信息”直至不存在ID不同且相似的攻擊模式,也即不存在可以合并的攻擊者為止。
步驟25:若不存在可以合并的攻擊者,則生成結(jié)果。
這里生成的結(jié)果包括每個(gè)攻擊過(guò)程中,按時(shí)序列出的各個(gè)攻擊行為信息<A1,A2,...>,即關(guān)聯(lián)得到的粗粒度的WAF報(bào)警信息。
本發(fā)明實(shí)施例中,通過(guò)將WAF報(bào)警日志中多個(gè)分散但有邏輯關(guān)系的細(xì)粒度的攻擊行為組合成粗粒度的攻擊過(guò)程,能夠?yàn)橄哂鄨?bào)警、重現(xiàn)攻擊場(chǎng)景、分析攻擊者攻擊意圖等相關(guān)工作提供基礎(chǔ)和便捷。
另外,由于在不同域名下提供的Web服務(wù)往往是不同的,攻擊者在不同域名下的攻擊往往屬于不同的攻擊過(guò)程,因而相比于直接使用傳統(tǒng)的面向IDS報(bào)警的報(bào)警關(guān)聯(lián)方法,結(jié)合被攻擊的域名來(lái)區(qū)分不同的攻擊過(guò)程能夠提高關(guān)聯(lián)WAF報(bào)警的準(zhǔn)確率。
如圖3所示,本發(fā)明的實(shí)施例還提供了一種報(bào)警關(guān)聯(lián)裝置,包括:
第一獲取模塊31,用于根據(jù)應(yīng)用防火墻WAF報(bào)警日志,得到攻擊行為信息;
第二獲取模塊32,用于根據(jù)所述攻擊行為信息,獲取攻擊者的攻擊模式信息,所述攻擊模式信息包括攻擊者在一個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息;
關(guān)聯(lián)模塊33,用于根據(jù)不同的攻擊者的攻擊模式信息之間的相似度,對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理。
進(jìn)一步地,所述第一獲取模塊31包括:
提取子模塊311,用于從所述WAF報(bào)警日志中提取出至少一個(gè)攻擊行為,每個(gè)所述攻擊行為包括:被攻擊者的域名信息、攻擊時(shí)間信息、攻擊類(lèi)型信息及攻擊者的IP信息;
分配子模塊312,用于根據(jù)每個(gè)所述攻擊者的IP信息,分配一用于標(biāo)識(shí)攻擊者身份的標(biāo)識(shí)信息,其中,不同的IP對(duì)應(yīng)于不同的標(biāo)識(shí)信息;
第一確定子模塊313,用于將包括所述攻擊行為及用于標(biāo)識(shí)所述攻擊行為中攻擊者身份的標(biāo)識(shí)信息的信息組合,作為所述攻擊行為信息。
進(jìn)一步地,所述第二獲取模塊32包括:
劃分子模塊321,用于根據(jù)所述攻擊行為信息,將具有相同域名信息和相同標(biāo)識(shí)信息、且攻擊時(shí)間的差值小于第一預(yù)設(shè)閾值的攻擊行為劃分為同一個(gè)攻擊過(guò)程;
第一獲取子模塊322,用于獲取每個(gè)攻擊過(guò)程中的攻擊類(lèi)型信息;
第二確定子模塊323,用于將每個(gè)攻擊過(guò)程對(duì)應(yīng)的域名信息、標(biāo)識(shí)信息及攻擊類(lèi)型信息作為所述標(biāo)識(shí)信息所標(biāo)識(shí)攻擊者的攻擊模式信息。
進(jìn)一步地,所述第一獲取子模塊322包括:
第一獲取單元3221,用于根據(jù)攻擊時(shí)間信息,對(duì)每個(gè)攻擊過(guò)程中的各個(gè)攻擊行為所對(duì)應(yīng)的攻擊類(lèi)型信息進(jìn)行排序處理,得到每個(gè)攻擊過(guò)程中的攻擊類(lèi)型序列信息;
第二獲取單元3222,用于將每個(gè)攻擊過(guò)程的攻擊類(lèi)型序列信息中相鄰且相同的兩個(gè)攻擊類(lèi)型信息進(jìn)行合并處理,并將合并后的攻擊類(lèi)型序列信息,作為該攻擊過(guò)程中的攻擊類(lèi)型信息。
進(jìn)一步地,所述關(guān)聯(lián)模塊33包括:
第二獲取子模塊331,用于獲取不同的攻擊者的攻擊模式信息之間的相似度;
分配子模塊332,用于若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息。
進(jìn)一步地,所述第二獲取子模塊331包括:
第三獲取單元3311,用于分別獲取兩個(gè)不同的攻擊者的攻擊類(lèi)型序列信息Sa和Sb;
第一計(jì)算單元3312,用于通過(guò)如下公式獲取Sa和Sb的最長(zhǎng)公共子序列的長(zhǎng)度ma,b:
ma,b=f(na,nb);
其中,Typea,i表示Sa中的第i個(gè)攻擊類(lèi)型,Typeb,j表示Sb中的第j個(gè)攻擊類(lèi)型,na表示Sa的長(zhǎng)度,nb表示Sb的長(zhǎng)度;
判斷單元3313,用于根據(jù)所述最長(zhǎng)公共子序列的長(zhǎng)度ma,b是否滿(mǎn)足預(yù)設(shè)條件,判斷所述兩個(gè)不同的攻擊者的攻擊模式信息是否相似,所述預(yù)設(shè)條件為
第二計(jì)算單元3314,用于若相似,則通過(guò)公式計(jì)算所述兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度。
進(jìn)一步地,上述報(bào)警關(guān)聯(lián)裝置,還包括:
判斷模塊34,用于在所述若兩個(gè)不同的攻擊者的攻擊模式信息之間的相似度大于第二預(yù)設(shè)閾值,則為所述兩個(gè)不同的攻擊者重新分配同一標(biāo)識(shí)信息之后,判斷根據(jù)WAF報(bào)警日志得到的攻擊行為信息中,是否存在所述兩個(gè)不同的攻擊者的攻擊行為信息;
重新分配模塊35,用于若根據(jù)WAF報(bào)警日志得到的攻擊行為信息中存在所述兩個(gè)不同的攻擊者的攻擊行為信息,則將所述兩個(gè)不同的攻擊者的攻擊行為信息中的標(biāo)識(shí)信息修改為重新分配的標(biāo)識(shí)信息。
需要說(shuō)明的是,該裝置是與上述方法實(shí)施例對(duì)應(yīng)的裝置,上述方法實(shí)施例中所有實(shí)現(xiàn)方式均適用于該裝置的實(shí)施例中,也能達(dá)到相同的技術(shù)效果。
本發(fā)明實(shí)施例的報(bào)警關(guān)聯(lián)方法及裝置,不需要額外的報(bào)警關(guān)聯(lián)規(guī)則、報(bào)警關(guān)聯(lián)知識(shí)庫(kù)等先驗(yàn)知識(shí),自動(dòng)從WAF報(bào)警日志中提取攻擊行為信息并進(jìn)一步提取攻擊者的攻擊模式信息,通過(guò)攻擊者的攻擊模式信息對(duì)不同的攻擊者進(jìn)行關(guān)聯(lián)處理,進(jìn)而將大量細(xì)粒度的WAF報(bào)警信息關(guān)聯(lián)成粗粒度的WAF報(bào)警信息。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。