本申請(qǐng)涉及安全防護(hù)領(lǐng)域,特別涉及一種實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)的不斷發(fā)展,DDOS(Distributed Denial of Service,分布式拒絕服務(wù))攻擊(比如CC攻擊)開(kāi)始越來(lái)越多地針對(duì)互聯(lián)網(wǎng)具體的應(yīng)用和業(yè)務(wù),如:游戲、購(gòu)物、視頻等;一方面DDOS攻擊的針對(duì)性更為明確;另一方面,DDOS攻擊從傳統(tǒng)的高帶寬、大流量攻擊演化為隱蔽性更強(qiáng)的針對(duì)應(yīng)用協(xié)議的小流量、慢速攻擊,檢測(cè)難度提高。
在傳統(tǒng)的針對(duì)DDOS攻擊進(jìn)行流量檢查時(shí),通常是通過(guò)為與客戶(hù)端對(duì)接的HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)服務(wù)器設(shè)置流量的固定訪問(wèn)閾值,當(dāng)客戶(hù)端與HTTP服務(wù)器之間的連接數(shù)超出這個(gè)閾值時(shí),則認(rèn)為存在流量異常,可能有針對(duì)HTTP服務(wù)器的DDOS攻擊。
然而,傳統(tǒng)的設(shè)置固定閾值的方式,通常只能通過(guò)一步步手動(dòng)或異步的方式更新閾值,通過(guò)調(diào)低預(yù)警基線,來(lái)提高預(yù)警精度,并未考慮流量的變化規(guī)律;例如:周末流量區(qū)別于工作日流量;業(yè)務(wù)低峰和高峰周期性更替等;因此,通過(guò)設(shè)置固定的閾值來(lái)完成流量檢測(cè),并不能適應(yīng)復(fù)雜的業(yè)務(wù)場(chǎng)景。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┮环N實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法及裝置,用以解決傳統(tǒng)設(shè)置固定閾值的方式不適用于復(fù)雜的業(yè)務(wù)場(chǎng)景的問(wèn)題。
具體地,本申請(qǐng)是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
一種實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法,應(yīng)用于基于流式處理框架的服務(wù)端,包括:
匯總客戶(hù)端的訪問(wèn)日志并實(shí)時(shí)統(tǒng)計(jì)所述訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù);
從統(tǒng)計(jì)得到的各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)中,獲取目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù),以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù);
針對(duì)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)進(jìn)行統(tǒng)計(jì)分析,得到對(duì)應(yīng)于所述目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值;其中,所述動(dòng)態(tài)連接數(shù)閾值用于表征與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的時(shí)刻是否存在流量異常;
獲取與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù),當(dāng)所述目標(biāo)時(shí)間戳的連接數(shù)大于所述目標(biāo)時(shí)間戳對(duì)應(yīng)的所述動(dòng)態(tài)連接數(shù)閾值時(shí),確定存在流量異常。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法中,所述針對(duì)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)進(jìn)行統(tǒng)計(jì)分析,得到對(duì)應(yīng)于所述目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值,包括:
根據(jù)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)生成第一序列,并將所述第一序列輸入預(yù)設(shè)的自回歸模型進(jìn)行預(yù)測(cè)計(jì)算,以得到與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值;
根據(jù)所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)生成第二序列,并計(jì)算所述第二序列的標(biāo)準(zhǔn)差;
計(jì)算所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和,得到所述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法中,所述方法還包括:
在將所述第一序列輸入預(yù)設(shè)的自回歸模型進(jìn)行預(yù)測(cè)計(jì)算前,對(duì)所述第一序列進(jìn)行零均值化處理。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法中,所述方法還包括:
計(jì)算所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和,并將所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和加上預(yù)設(shè)的修正值,得到所述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法中,所述預(yù)設(shè)系數(shù),根據(jù)檢測(cè)靈敏度需求進(jìn)行自定義;所述預(yù)設(shè)系數(shù)的取值范圍包括[1,3]。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法中,所述預(yù)設(shè)的修正值包括所述第一序列的平均數(shù)。
一種實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置,應(yīng)用于基于流式處理框架的服務(wù)端,包括:
統(tǒng)計(jì)單元,用于匯總客戶(hù)端的訪問(wèn)日志并實(shí)時(shí)統(tǒng)計(jì)所述訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù);
獲取單元,用于從統(tǒng)計(jì)得到的各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)中,獲取目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù),以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù);
計(jì)算單元,用于針對(duì)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)進(jìn)行統(tǒng)計(jì)分析,得到對(duì)應(yīng)于所述目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值;其中,所述動(dòng)態(tài)連接數(shù)閾值用于表征與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的時(shí)刻是否存在流量異常;
判斷單元,用于獲取與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù),當(dāng)所述目標(biāo)時(shí)間戳的連接數(shù)大于所述目標(biāo)時(shí)間戳對(duì)應(yīng)的所述動(dòng)態(tài)連接數(shù)閾值時(shí),確定存在流量異常。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置中,所述計(jì)算單元,進(jìn)一步用于:
根據(jù)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)生成第一序列,并將所述第一序列輸入預(yù)設(shè)的自回歸模型進(jìn)行預(yù)測(cè)計(jì)算,以得到與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值;
根據(jù)所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)生成第二序列,并計(jì)算所述第二序列的標(biāo)準(zhǔn)差;
計(jì)算所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和,得到所述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置中,所述計(jì)算單元,進(jìn)一步用于:
在將所述第一序列輸入預(yù)設(shè)的自回歸模型進(jìn)行預(yù)測(cè)計(jì)算前,對(duì)所述第一序列進(jìn)行零均值化處理。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置中,所述計(jì)算單元,進(jìn)一步用于:
計(jì)算所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和,并將所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和加上預(yù)設(shè)的修正值,得到所述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置中,所述預(yù)設(shè)系數(shù),根據(jù)檢測(cè)靈敏度需求進(jìn)行自定義;所述預(yù)設(shè)系數(shù)的取值范圍包括[1,3]。
在所述實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置中,所述預(yù)設(shè)的修正值包括所述第一序列的平均數(shù)。
在本申請(qǐng)實(shí)施例中,由于目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)閾值,是由基于流式處理框架的服務(wù)端通過(guò)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)的時(shí)間戳對(duì)應(yīng)的連接數(shù),以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)計(jì)算得到的動(dòng)態(tài)連接數(shù)閾值,因而可以有效適用于復(fù)雜的業(yè)務(wù)場(chǎng)景。
附圖說(shuō)明
圖1是本申請(qǐng)示出的一種實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法的流程圖;
圖2是本申請(qǐng)示出的一種流式處理框架的示意圖;
圖3是本申請(qǐng)示出的一種實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置的邏輯框圖;
圖4是本申請(qǐng)示出的一種實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置的硬件結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)現(xiàn)有技術(shù)方案和本發(fā)明實(shí)施例中的技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。
為了應(yīng)對(duì)現(xiàn)有技術(shù)中,通過(guò)設(shè)置固定閾值針對(duì)DDOS攻擊進(jìn)行流量異常檢測(cè)時(shí),無(wú)法應(yīng)對(duì)真實(shí)復(fù)雜的業(yè)務(wù)場(chǎng)景的問(wèn)題,本申請(qǐng)?zhí)岢鲆环N動(dòng)態(tài)閾值機(jī)制,可以結(jié)合大數(shù)據(jù)框架,實(shí)時(shí)地統(tǒng)計(jì)目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)的時(shí)間戳對(duì)應(yīng)的連接數(shù)和該目標(biāo)時(shí)間戳之前與該目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù),并對(duì)統(tǒng)計(jì)到的連接數(shù)進(jìn)行分析計(jì)算,低延遲的估算出對(duì)應(yīng)于上述目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值。
由于該動(dòng)態(tài)連接數(shù)閾值是隨著上述目標(biāo)時(shí)間戳之前的若干個(gè)連續(xù)的時(shí)間戳對(duì)應(yīng)的連接數(shù),以及與該目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)而變化的,從而可以避免采用固定閾值的缺陷,能夠有效適用于真實(shí)復(fù)雜的業(yè)務(wù)場(chǎng)景。
參見(jiàn)圖1,為本申請(qǐng)示出的一種實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法的流程圖,該流程圖的執(zhí)行主體是基于流式處理框架的服務(wù)端;所述方法包括以下步驟:
步驟101:匯總客戶(hù)端的訪問(wèn)日志并實(shí)時(shí)統(tǒng)計(jì)所述訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)。
步驟102:從統(tǒng)計(jì)得到的各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)中,獲取目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù),以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)。
步驟103:針對(duì)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)進(jìn)行統(tǒng)計(jì)分析,得到對(duì)應(yīng)于所述目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值;其中,所述動(dòng)態(tài)連接數(shù)閾值用于表征與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的時(shí)刻是否存在流量異常。
步驟104:獲取與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù),當(dāng)所述目標(biāo)時(shí)間戳的連接數(shù)大于所述目標(biāo)時(shí)間戳對(duì)應(yīng)的所述動(dòng)態(tài)連接數(shù)閾值時(shí),確定存在流量異常。
上述服務(wù)端,可以是基于流式處理框架的服務(wù)器集群,或者是由基于流失處理框架的服務(wù)器集群所搭建的大數(shù)據(jù)處理平臺(tái);其中,上述流式處理框架的具體框架形態(tài),在本例中不進(jìn)行特別限定;例如,如圖2所示,在示出的一種實(shí)施方式中,上述流式處理框架可以是storm框架。
上述訪問(wèn)日志,可以是指客戶(hù)端在訪問(wèn)與客戶(hù)端對(duì)接的HTTP服務(wù)器上的資源時(shí),所產(chǎn)生的日志文件;其中,在該日志文件中,通常可以記錄客戶(hù)端IP地址、瀏覽器、時(shí)間戳、域名等信息。
上述目標(biāo)時(shí)間戳,可以是指需要進(jìn)行流量異常檢測(cè)的當(dāng)前時(shí)刻;例如,假設(shè)當(dāng)前時(shí)刻為T(mén),那么如果需要針對(duì)當(dāng)前時(shí)刻的流量執(zhí)行異常檢測(cè),則可以將當(dāng)前時(shí)刻T轉(zhuǎn)換成為時(shí)間戳,此時(shí)轉(zhuǎn)換后的該時(shí)間戳,即為上述目標(biāo)時(shí)間戳。
在本例中,服務(wù)端可以匯總各客戶(hù)端的訪問(wèn)日志,然后基于流式處理框架,對(duì)匯總的訪問(wèn)日志實(shí)時(shí)統(tǒng)計(jì)各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù),并基于統(tǒng)計(jì)得到的當(dāng)前時(shí)刻之前的若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)和與當(dāng)前時(shí)刻保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù),進(jìn)行分析計(jì)算,從而可以低延遲地估算出對(duì)應(yīng)于當(dāng)前時(shí)刻的動(dòng)態(tài)連接數(shù)閾值,從而避免了采用固定閾值的缺陷,能夠有效適用于真實(shí)復(fù)雜的業(yè)務(wù)場(chǎng)景
在本申請(qǐng)實(shí)施例中,上述服務(wù)端在匯總各客戶(hù)端的訪問(wèn)日志時(shí),可以是接收與客戶(hù)端對(duì)接的HTTP服務(wù)器上傳的訪問(wèn)日志。當(dāng)匯總完成后,上述服務(wù)端可以實(shí)時(shí)統(tǒng)計(jì)訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù);例如,假設(shè)當(dāng)前時(shí)刻為tk+1,匯總的訪問(wèn)日志中包括t1、t2、t3……tk-1、tk等時(shí)間戳,則可以分別統(tǒng)計(jì)與時(shí)間戳t1、t2、t3……tk-1、tk對(duì)應(yīng)的連接數(shù)c1、c2、c3……ck-1、ck。
在實(shí)際應(yīng)用中,與當(dāng)前時(shí)刻對(duì)應(yīng)的連接數(shù),通常與當(dāng)前時(shí)刻之前的若干個(gè)連續(xù)時(shí)刻的連接數(shù)線性相關(guān),因此,在本例中,當(dāng)實(shí)時(shí)統(tǒng)計(jì)出匯總的訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)后,可以進(jìn)一步獲取上述目標(biāo)時(shí)間戳(即當(dāng)前時(shí)刻)之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù);例如,假設(shè)當(dāng)前時(shí)刻為tk+1,則可以獲取當(dāng)前時(shí)刻之前tk、tk-1、tk-2……tk-p+1等p個(gè)時(shí)間戳的連接數(shù),ck、ck-1、ck-2……ck-p+1。
另外,當(dāng)前時(shí)刻對(duì)應(yīng)的連接數(shù),除了與當(dāng)前時(shí)刻之前的若干個(gè)連續(xù)時(shí)刻的連接數(shù)線性相關(guān)以外,在實(shí)際應(yīng)用中,根據(jù)歷史數(shù)據(jù)分析可知,連接數(shù)的大小通常呈現(xiàn)周期性變化,因此,基于這一規(guī)律,在本例中,當(dāng)實(shí)時(shí)統(tǒng)計(jì)出匯總的訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)后,還可以進(jìn)一步獲取目標(biāo)時(shí)間戳之前與該目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù);例如,假設(shè)當(dāng)前時(shí)刻為ts,則可以獲取時(shí)間戳ts-q、ts-2q、ts-3q……ts-mq對(duì)應(yīng)的連接數(shù)cs-q、cs-2q、cs-3q……cs-mq。其中,時(shí)間間隔周期q可以根據(jù)實(shí)際應(yīng)用場(chǎng)景進(jìn)行調(diào)整,如果連接數(shù)的大小變化的周期為一周,則q可以設(shè)置為一周,m為獲取的歷史連接數(shù)的數(shù)量。
在本申請(qǐng)實(shí)施例中,當(dāng)服務(wù)端在獲得上述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)以及上述目標(biāo)時(shí)間戳之前與上述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)后,可以針對(duì)統(tǒng)計(jì)結(jié)果進(jìn)行建模計(jì)算,得到對(duì)應(yīng)于上述目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值。其中,上述動(dòng)態(tài)連接數(shù)閾值隨上述目標(biāo)時(shí)間戳的變化而動(dòng)態(tài)變化,用于表征與上述目標(biāo)時(shí)間戳對(duì)應(yīng)的時(shí)刻是否存在流量異常。
在本申請(qǐng)實(shí)施例中,服務(wù)端在獲得上述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)后,可以根據(jù)上述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)生成第一序列,然后將該第一序列輸入預(yù)設(shè)的自回歸模型進(jìn)行預(yù)測(cè)計(jì)算,以獲得上述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值;例如,假設(shè)當(dāng)前時(shí)刻為tk+1,可以生成包括目標(biāo)時(shí)間戳tk+1之前p個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)的第一序列(ck,ck-1,ck-2……ck-p+1),然后可以將該第一序列輸入自回歸模型進(jìn)行預(yù)測(cè)計(jì)算,得到計(jì)算結(jié)果,即上述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值ck+1;其中,自回歸模型的階數(shù)為p。
其中,上述自回歸模型建模的具體過(guò)程,在本例中不再進(jìn)行詳述,本領(lǐng)域技術(shù)人員在將本申請(qǐng)記載的技術(shù)方案付諸實(shí)現(xiàn)時(shí),可以參考相關(guān)技術(shù)中的記載。
當(dāng)然,除了上述自回歸模型以外,在實(shí)際應(yīng)用中,也可以采用諸如小波分析、神經(jīng)網(wǎng)絡(luò)、協(xié)方差分析等方法對(duì)目標(biāo)時(shí)間戳之前的若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)進(jìn)行預(yù)測(cè)計(jì)算,得到目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值,在此不再贅述。
其中,在示出的一種實(shí)施方式中,服務(wù)端在將上述第一序列輸入自回歸模型進(jìn)行預(yù)測(cè)計(jì)算之前,為了提高預(yù)測(cè)計(jì)算的準(zhǔn)確性,可以對(duì)上述第一序列進(jìn)行零均值化處理,在零均值化處理完成后,再輸入自回歸模型進(jìn)行預(yù)測(cè)計(jì)算;例如:假設(shè)第一序列是(ck,ck-1,ck-2……ck-p+1),將上述第一序列中的各連接數(shù)減去上述第一序列的平均數(shù)得到一個(gè)新序列然后將上述新序列輸入自回歸模型進(jìn)行預(yù)測(cè)計(jì)算,得到上述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值ck+1。
在本申請(qǐng)實(shí)施例中,當(dāng)服務(wù)端計(jì)算出上述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值后,服務(wù)端還可以根據(jù)上述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值以及上述目標(biāo)時(shí)間戳之前與該目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù),生成第二序列,并計(jì)算得到該第二序列的標(biāo)準(zhǔn)差;
例如,假設(shè)當(dāng)前時(shí)刻為ts,預(yù)測(cè)值為cs,時(shí)間間隔周期為q,生成包括預(yù)測(cè)值cs以及目標(biāo)時(shí)間戳ts之前m個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)的第二序列(cs,cs-q,cs-2q,cs-3q……cs-mq),然后可以計(jì)算該第二序列的標(biāo)準(zhǔn)差σs。
在本例中,當(dāng)服務(wù)端計(jì)算出上述第二序列的標(biāo)準(zhǔn)差之后,此時(shí)可以計(jì)算上述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值與上述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和,獲得上述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值。
例如,在示出的一種實(shí)施方式中,上述動(dòng)態(tài)連接數(shù)閾值可以用如下公式來(lái)表征:
ns=cs+ασs
其中,在上述公式中,ns即為用于衡量ts時(shí)刻是否存在流量異常的上述動(dòng)態(tài)連接數(shù)閾值;cs表示上述目標(biāo)時(shí)間戳ts對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值,α表示上述預(yù)設(shè)系數(shù),σs表示上述目標(biāo)時(shí)間戳ts對(duì)應(yīng)的上述第二序列的標(biāo)準(zhǔn)差。
在本申請(qǐng)實(shí)施例中,計(jì)算上述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值,除將上述預(yù)測(cè)值和上述標(biāo)準(zhǔn)差與上述預(yù)設(shè)系數(shù)的乘積相加以外,還可以根據(jù)實(shí)際應(yīng)用的網(wǎng)絡(luò)環(huán)境,加上預(yù)設(shè)的修正值,得到上述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值;
例如,在示出的另一種實(shí)施方式中,上述動(dòng)態(tài)連接數(shù)閾值可以用如下公式來(lái)表征:
ns=cs+ασs+b
其中,b表示上述預(yù)設(shè)的修正值。
在示出的另一種實(shí)施方式中,上述預(yù)設(shè)的修正值b可以是上述第一序列的平均數(shù)在這種情況下,上述動(dòng)態(tài)連接數(shù)閾值可以用如下公式來(lái)表征:
其中,需要說(shuō)明的是,上述預(yù)設(shè)系數(shù)α可以根據(jù)檢測(cè)靈敏度需求進(jìn)行自定義;例如,在示出的一種實(shí)施方式中,由于各時(shí)間戳對(duì)應(yīng)的連接數(shù),通常符合正態(tài)分布,因此可以將上述預(yù)設(shè)系數(shù)的取值范圍設(shè)置為[1,3];比如,在實(shí)際應(yīng)用中,上述預(yù)設(shè)系數(shù)可以設(shè)置為3。
在本申請(qǐng)實(shí)施例中,當(dāng)服務(wù)端基于實(shí)時(shí)統(tǒng)計(jì)獲取到的上述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù),以及上述目標(biāo)時(shí)間戳之前與上述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù),并根據(jù)統(tǒng)計(jì)結(jié)果建模計(jì)算,得到上述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值后,可以獲取與上述目標(biāo)時(shí)間戳對(duì)應(yīng)的實(shí)際連接數(shù),并將獲得的該實(shí)際連接數(shù)與上述動(dòng)態(tài)連接數(shù)閾值進(jìn)行比較。
如果獲得的實(shí)際連接數(shù)大于上述動(dòng)態(tài)連接數(shù)閾值,則確定存在流量異常;在這種情況下,客戶(hù)端對(duì)接的HTTP服務(wù)器可能遭受攻擊。管理員可以針對(duì)流量異常可能的原因采取相應(yīng)的解決措施。
綜上所述,在本申請(qǐng)實(shí)施例中,基于流式處理框架的服務(wù)端,根據(jù)客戶(hù)端上傳的訪問(wèn)日志,實(shí)時(shí)統(tǒng)計(jì)該訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù),并從統(tǒng)計(jì)結(jié)果中獲取目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù),以及與該目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù);然后通過(guò)對(duì)獲取到的連接數(shù)進(jìn)行分析計(jì)算,得到對(duì)應(yīng)于該目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值。同時(shí),獲取該目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù),并將該連接數(shù)與上述動(dòng)態(tài)連接數(shù)閾值進(jìn)行比較,確定是否存在流量異常。
由于本申請(qǐng)實(shí)施例是實(shí)時(shí)采樣,實(shí)時(shí)建模計(jì)算,使得每一個(gè)時(shí)刻的連接數(shù)閾值都是獨(dú)一無(wú)二的,制定閾值的依據(jù)綜合了當(dāng)前時(shí)刻前的短期規(guī)律和長(zhǎng)期的周期性規(guī)律,因此可以有效地適用于真實(shí)復(fù)雜的業(yè)務(wù)場(chǎng)景。
與本申請(qǐng)實(shí)時(shí)閾值自適應(yīng)流量預(yù)警方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了用于執(zhí)行上述方法實(shí)施例的裝置的實(shí)施例。
參見(jiàn)圖3,為本申請(qǐng)實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置的一個(gè)實(shí)施例框圖:
如圖3所述,該實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置30包括:
統(tǒng)計(jì)單元310,用于匯總客戶(hù)端的訪問(wèn)日志并實(shí)時(shí)統(tǒng)計(jì)所述訪問(wèn)日志中各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)。
獲取單元320,用于從統(tǒng)計(jì)得到的各個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)中,獲取目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù),以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)。
計(jì)算單元330,用于針對(duì)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)進(jìn)行統(tǒng)計(jì)分析,得到對(duì)應(yīng)于所述目標(biāo)時(shí)間戳的動(dòng)態(tài)連接數(shù)閾值;其中,所述動(dòng)態(tài)連接數(shù)閾值用于表征與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的時(shí)刻是否存在流量異常。
判斷單元340,用于獲取與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù),當(dāng)所述目標(biāo)時(shí)間戳的連接數(shù)大于所述目標(biāo)時(shí)間戳對(duì)應(yīng)的所述動(dòng)態(tài)連接數(shù)閾值時(shí),確定存在流量異常。
在本例中,所述計(jì)算單元330,進(jìn)一步用于:
根據(jù)所述目標(biāo)時(shí)間戳之前若干個(gè)連續(xù)時(shí)間戳對(duì)應(yīng)的連接數(shù)生成第一序列,并將所述第一序列輸入自回歸模型進(jìn)行預(yù)測(cè)計(jì)算,以得到與所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值;
根據(jù)所述目標(biāo)時(shí)間戳對(duì)應(yīng)的連接數(shù)的預(yù)測(cè)值以及所述目標(biāo)時(shí)間戳之前與所述目標(biāo)時(shí)間戳保持預(yù)設(shè)時(shí)間間隔周期的若干個(gè)時(shí)間戳對(duì)應(yīng)的連接數(shù)生成第二序列,并計(jì)算所述第二序列的標(biāo)準(zhǔn)差;
計(jì)算所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和,得到所述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值。
在本例中,所述計(jì)算單元330,進(jìn)一步用于:
在將所述第一序列輸入自回歸模型進(jìn)行預(yù)測(cè)計(jì)算前,對(duì)所述第一序列進(jìn)行零均值化處理。
在本例中,所述計(jì)算單元330,進(jìn)一步用于:
計(jì)算所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和,并將所述預(yù)測(cè)值與所述標(biāo)準(zhǔn)差與預(yù)設(shè)系數(shù)的乘積之和加上預(yù)設(shè)的修正值,得到所述目標(biāo)時(shí)間戳對(duì)應(yīng)的動(dòng)態(tài)連接數(shù)閾值。
在本例中,所述預(yù)設(shè)系數(shù),根據(jù)檢測(cè)靈敏度需求進(jìn)行自定義;所述預(yù)設(shè)系數(shù)的取值范圍包括[1,3]。
在本例中,所述預(yù)設(shè)的修正值包括所述第一序列的平均數(shù)。
本申請(qǐng)實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置的實(shí)施例可以應(yīng)用在基于流式處理框架的服務(wù)端上。裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在基于流式處理框架的服務(wù)端的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖4所示,為本申請(qǐng)實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置所在基于流式處理框架的服務(wù)端的一種硬件結(jié)構(gòu)圖,除了圖4所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的基于流式處理框架的服務(wù)端通常根據(jù)該實(shí)時(shí)閾值自適應(yīng)流量預(yù)警裝置的實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。
上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。