一種實時閾值自適應流量預警方法及裝置與流程
2023-09-21 05:12:00 1

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