當前位置:
首頁 > 最新 > 基於機器學習的CC攻擊檢測技術研究與應用報告

基於機器學習的CC攻擊檢測技術研究與應用報告

來源|中國銀聯股份有限公司

摘要

CC(Challenge Collapsar)攻擊是一種藉助大量代理伺服器發起HTTP請求的應用層DDoS攻擊。由於CC攻擊的每次攻擊都異常分散,且並無明顯的區分特徵,目前業界的CC攻擊防禦方案均達不到良好的防禦效果。本文在分析CC攻擊的原理和防禦現狀的基礎上,對CC攻擊的特徵進行深入研究,提出了一種基於機器學習的CC攻擊檢測技術,並經過研發實現防禦系統原型。經測試該方案對CC攻擊有較好的防禦效果。

一、CC攻擊技術分析

與傳統的DDoS攻擊不同,CC攻擊具有攻擊IP真實分散、攻擊數據包無明顯異常等特點,導致目前並沒有很效的防禦方法。

(一)CC攻擊的原理

CC攻擊與傳統的DDoS攻擊原理相似,即發送大量的請求數據來導致伺服器拒絕服務,是一種連接攻擊。CC攻擊的攻擊目標是網站中的動態網頁,攻擊者控制大量的主機通過發起大量的代理流量來不停地發送大量數據請求,伺服器在接收到這些請求中的每一個時,都需要進行大量計算和數據訪問修改操作,從而造成伺服器資源耗盡,一直到宕機崩潰。

與一般網站在用戶的訪問峰值時容易被耗盡資源從而導致用戶不能正常訪問相似,CC攻擊就是模擬大量的用戶在同一時間不間斷的訪問哪些需要伺服器進行複雜處理的頁面,從而導致伺服器處理不完用戶請求,網路和計算資源被耗盡。

CC攻擊又可分為代理CC攻擊和肉雞CC攻擊。代理CC攻擊是黑客藉助網上的代理伺服器生成指向受害主機的合法網頁請求,而肉雞CC攻擊是黑客使用CC攻擊軟體,控制大量肉雞發動攻擊。

(二)CC攻擊的特點

與傳統的DDoS攻擊不同,CC攻擊具有攻擊IP真實分散、攻擊數據包無明顯異常等特點,具體如下:

1、CC攻擊來的IP都是真實分散的

因為CC攻擊是攻擊者利用大量的代理伺服器分別發起的,每個發起攻擊的IP地址都是真實的,而且單個IP僅發起較少的訪問請求,所以每個IP的訪問行為都沒有任何異常。

2、CC攻擊的數據包都是正常的數據包

與一般的DDoS攻擊不同,CC攻擊是發起的是應用層的數據包,每個數據包都是一個完整的HTTP請求。CC攻擊並不會構造畸形的、異常的或者是大量的數據包。

由於CC攻擊的上述兩個特點,當CC攻擊發生的時候,伺服器接收到的CC攻擊攻擊流量中的每個HTTP訪問均是正常有效的訪問請求。伺服器並不能輕易將任何一次請求拒絕掉,因為伺服器很難分辨出哪些是正常用戶的訪問,而哪些才是真正的攻擊流量。

(三)主流的CC攻擊防禦方案

目前主流的CC攻擊防禦方案主要有兩種,分別是:

1、對訪問IP的頻率進行限制

顧名思義,該防禦方案的防禦原理很簡單,即伺服器端對IP設定訪問頻率限制。這種方案的觸發機制有兩種,分別是全局IP閾值和單IP閾值。

全局IP閾值是指伺服器端設置所有IP單位時間內發起同類HTTP請求的次數限制。如伺服器設定全局Get請求是5000次/秒,當某一時刻訪問該伺服器的流量中Get請求次數超過5000時,伺服器就採取防禦措施。

單IP閾值是指伺服器端設置每個IP單位時間內發起同類HTTP請求的次數限制。例如,設定每個IP在1秒內可以發起5次Get請求,2次Post請求,請求頻率超過該閾值時,則被認定為攻擊請求,採取限制措施。

該防禦方法對使用較少代理伺服器,每個伺服器均需要發起較多請求的CC攻擊會有一定的防禦效果,但是對於攻擊者藉助大量的代理伺服器,且每個代理均發起較低數量請求的攻擊行為並沒有防禦效果。

2、將流量導流到人機識別頁面

該防禦方法是指當伺服器出現資源消耗較大、訪問請求處理速度緩慢時,即認定發生CC攻擊時,將所有的流量均導流到人機識別的頁面,採用識別驗證碼、完成頁面動作等方法來鑒別流量是否由真實的用戶發起,這樣可以阻止CC攻擊流量耗盡伺服器資源。

該方案始終切實可行的方案,可以有效阻止CC攻擊行為,但是也有較大的缺點,即該方案嚴重影響用戶體驗。

二、CC攻擊檢測技術研究

針對CC攻擊檢測技術,我們分別針對CC攻擊流量數據包、CC攻擊時流量變化和來源IP進行的分析和研究。

(一)流量變化趨勢分析

CC攻擊的最終目的是耗盡伺服器資源,至少網站頁面不能正常訪問。但是僅靠這一標準來定性CC攻擊有很多風險,例如,無法發現未達到致使伺服器宕機,但是妨礙了部分用戶正常訪問的攻擊;發現伺服器資源被耗盡再採取防禦措施時往往需要更多的時間和資源恢復伺服器的正常運行。

我們在12:33分左右,對某一URL地址發起了CC攻擊測試,並且在伺服器端記錄了該URL地址的訪問流量變化趨勢,如圖1所示。可以看到,當發生CC攻擊時,URL訪問的流量是陡然上升的。所以我們可以根據實時流量的變化趨勢與正常訪問時間的變化趨勢對比情況來判斷是否遭受了CC攻擊。

圖1:流量趨勢

(二)攻擊源威脅情報判斷

我們提取了某次CC攻擊時的源IP地址2.187.*.4,放到網路中威脅情報庫中進行查詢,發現其在威脅情報庫中被打上了「垃圾郵件」、「殭屍網路」、「動態IP」的標籤。我們總計提取了某次CC攻擊樣本中20個IP地址放在威脅情報庫中進行查詢,發現其中有13條都被威脅情報庫標記為殭屍網路。可見,CC攻擊的攻擊者使用的代理往往就是已經被威脅情報庫已發現的有問題的IP地址。

圖2:威脅情報IP查詢

三、CC攻擊檢測技術設計

(一)檢測方案設計

結合前文的研究和分析,我們提出了全新的CC攻擊檢測技術設計方案。方案主要原理是:將網路流量進行DPI分析(Deep Packet Inspection,是一種基於數據包的深度檢測技術,針對不同的網路應用層載荷進行深度檢測,通過對報文的有效載荷檢測決定其合法性),進行URL自發現;再利用機器學習的方法,針對流量中的每個URL的流量進行建模處理,得到URL流量基線模型和攻擊特徵模型,並生成異常流量的特徵。然後利用異常流量特徵和威脅情報庫的知識信息,對網路流量進行實時檢測,發現攻擊行為,並採取防禦措施。

圖3:CC攻擊檢測技術方案

該方案主要分為三個模塊,分別是機器學習特徵建模模塊、威脅情報模塊、攻擊檢測與防禦模塊。

1、機器學習特徵建模模塊

該模塊是整個檢測技術方案的核心模塊,作用是將網路流量DPI處理的結果數據,進行URL的自學習發現,實時的將流量較大和異常波動的URL加入到檢測關鍵項中。然後分別針對每個URL,採用機器學習的演算法,進行數據清洗和提取,降維、訓練出流量基線模型和攻擊特徵模型,並最終輸出異常流量特徵。

2、威脅情報模塊

威脅情報庫的建立主要有兩方面數據,一方面是銀聯業務自身在長期風控積累和安全檢測方面的經驗數據;另一方面是安全業界主要的威脅情報廠商合作的資料庫。利用這兩方面的數據,可以更好進行的針對銀聯業務攻擊的CC攻擊地址檢測。

3、攻擊檢測與防禦模塊

在得到異常流量特徵和威脅情報庫數據之後,對網路設備中的實時流量進行檢測,發現CC攻擊行為,並根據攻擊判斷置信度來確定下一步採取的措施,例如直接阻斷或引導流量到人機識別模塊等,並同時判斷是否需要將該IP加入威脅情報庫。

(二)基於聚類分析的檢測演算法

聚類分析指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。在CC攻擊檢測中,聚類分析是很關鍵的步驟。根據針對CC攻擊的研究,我們可以發現有如下數據分析結論:大多數的WEB伺服器有大量獨特的URL;URL欄位可以枚舉;不同的應用系統各自的延遲時間不同。

系統響應延遲較大值通常複雜的邏輯的執行I / O操作,數據備份和批處理的正常操作造成的,但是當系統正常運行時,這些值相對會低於正常延遲的 90%。當系統受到攻擊,他們會變大很多,這代表整體的服務質量被瞬間降低。

基於聚類分析的CC攻擊檢測的核心演算法有聚類演算法、平均閾值演算法和時間序列分解和指數平滑演算法。

1、聚類演算法

l建立細粒度的應用程序層檢測來發現每個URL的訪問流量的異常。

l有必要對應用系統的URL進行聚類,來消除每個URL的訪問特徵和流量特徵對檢測結果的影響。

2、平均閾值

平均閾值是指使用歷史平均值和標準偏差計算閾值。

μ是歷史數據的預期,反映當前的平均水平;

σ為標準差,反映的正常波動範圍;

c是權重可以根據實際情況調整;

3、時間序列分解和指數平滑

時間序列分解需要分解每個時間序列數據點的趨勢項(Lt)、周期項(St)和雜訊項(Nt)。

指數平滑法是生產預測中常用的一種方法。一次指數平滑一般應用於直線型數據,且一次指數平滑具有滯後性。二次指數平滑一般也應用於直線型,但是效果會比一次指數平滑好很多,也就相當於加強版的一次指數平滑。三次指數平滑可以應用於拋物線型的數據,因為數據在二次平滑過後還是具有斜率,那麼可以繼續使用三次指數平滑。

在本方案中我們使用三次指數平滑的Holt Winters演算法來預測每個URL的未來流量。

(四)流量基線模型學習

流量基線模型學習是本CC檢測技術方案中的關鍵技術之一。為了更有效的識別CC攻擊的發生,我們需要對正常的流量變化進行學習,得到一個未來時間內的預測趨勢,利用實時流量與該趨勢的區別大小來判斷攻擊的發生。在預測值的機器學習過程中,我們主要解決了兩方面的問題,分別是特徵工程和模型訓練與優化。

1、數據選取與處理

為了預測未來某一時刻的流量值,我們需要從歷史流量值中有選擇的選取可參考的數據。

1) 數據預處理

數據的預處理第一步是數據清洗、異常點處理、預設值補充等操作,將有明顯異常的數據點進行處理。

數據的預處理第二步是提出關鍵特徵向量,在原始數據中,我們可以獲取的數據有數據上行流量、下行流量、上行數據包、下行數據包等。最終我們選取上行流量和上行數據包作為關鍵特徵向量。

2)日期分類

我們結合實際業務情況,將時間分為三種情況,分別是活動日、節假日、工作日。其中,活動日是指銀聯在特定的日期進行活動營銷,可能導致流量異常的時間,例如62營銷、重陽節營銷等。節假日則指一般的法定節假日和周末。除活動日和節假日之外的時間,我們歸類為工作日。

3)時間選取和加權

根據本場景模型,每計算一個時間節點流量時,學習歷史時間流量值的選取數量我們定為15個。其中,有歷史5個同類型日期的相同時刻流量值,有歷史最近5個不同類型日期相同時刻流量值,以及最近一小時內,前50分鐘內分別每十分鐘的流量平均值。

例如,當預測2017.9.1 周五 10:00的流量值大小時,需要分別取前五個周五:8.25、8.18、8.11、8.4、7.28 同一時刻的流量值;8.27、8.28、8.29、8.30、8.31五天同一時刻的流量值以及9.1日9:10-9:19、9:20-9:29、9:30-9:39、9:40-9:49、9:50-9:59五個時間段的平均值。

2、模型訓練與優化

1)模型訓練

本次研究採用成熟的機器學習開源庫,以達到應用分析的效果。目前常見的回歸演算法有一元線性回歸、多元線性回歸和廣義線性回歸兩種。在我們的場景中,預測流量的值是與多個因素相聯繫的,由多個自變數的最優組合共同來預測或估計因變數,比只用一個自變數進行預測或估計更有效,更符合實際。因此多元線性回歸比一元線性回歸的實用意義更大。經分析與對比,我們採用多元線性回歸來進行學習計算。

2)模型優化

通過上述方法選取的三類攻擊15個點的數據值,每個值對於預測值得意義顯然也並不同。我們通過加權值的方法將每個值對預測值的影響調整的更合理。

在模型的訓練過程中,我們嘗試了多種加權方法,最終我們確定了一種相對較為合理,學習效果最好的加權方法。首先我們將權值1分為0.5、0.3和0.2,分別賦予同類歷史值、最近五天值、最近時間段均值。其中每一類數據的不同數值點之間的權值也分別不同,最終這15個數值的最終權值如下表所示:

表1:最終權值分配

3、CC攻擊流量檢測

根據前文的分析,在本方案中,CC攻擊流量我們可以視為突發流量的檢測。為了檢測該突發流量,我們採用了預測基線對比法、滑動時間窗口法和歷史基線對比法。

預測基線對比:根據流量基線模型的學習結果,將預測基線與實際流量進行比對,若某一時刻變化的倍數超過預設值,且接下來10秒鐘的流量變化倍數始終高於1時,我們判定為CC攻擊發生。

滑動時間窗口:比較最近幾個採集點的數據與歷史數據進行對比,檢測流量突增、突減情況。

歷史基線對比:對比歷史基線數據,與歷史同時間段內的流量基線進行對比,檢測流量異常情況。

(五)攻擊特徵提出和處理

CC攻擊特徵提出和處理流量基線模型學習是本CC檢測技術方案中的另一關鍵技術。攻擊特徵提出和處理的關鍵步驟有關鍵特徵選取、特徵處理與歸一、演算法模型選取和訓練等。

1、關鍵特徵選取

由於CC攻擊流量的核心在於其是位於應用層的攻擊請求,而且其攻擊流量的網路層及以下的特徵上並沒有任何異常。所以我們的關鍵特徵選取的範圍定位在HTTP請求頭中。根據電子支付研究院之前在網路安全上的研究積累,並結合業界安全經驗,對CC攻擊流量的特徵做如下提取。

表2:特徵提取

2、特徵處理與歸一

在特徵提取之後,為了加快訓練數據的收斂性,提高演算法識別正確率。對遇到的具體問題和處理方式為:對於不同特徵的範圍與規格差異,採用歸一標準化,區間縮放等方法進行了無量綱化處理;對於某些無需具體數值的定量特徵,為其包含的有效信息進行區間劃分;定性特徵轉換:由於某些機器學習演算法和模型只能接受定量特徵的輸入,故需將定性特徵轉換為定量特徵。

3、演算法模型選取

經過對CC攻擊流量的特徵提取後,利用機器學習,對數據集進行下一步的訓練,並對模型進行適當的調優。

與流量基線模型不同,攻擊特徵的學習模型是一個傳統的分類模型,目前常見的分類器有樸素貝葉斯、邏輯回歸、決策樹、支持向量機等。經分析與對比,支持向量機有較高的分類正確率,對過擬合也有很好的理論保證,同時在高維度的樣本分類效果最佳,最終選用SVM演算法來處理CC攻擊流量分類問題。在核函數的選取問題上,由於CC攻擊流量識別線性不可分、參數眾多的特點,選取RBF核函數。

四、小結

CC攻擊是生產網路中實際存在的安全問題,具有較難區分和防禦的特點。在其面前,傳統的安全防護設備顯得束手無策。本方案針對流量中的每個URL的流量進行建模處理,得到URL流量基線模型和攻擊特徵模型,並生成異常流量的特徵。然後利用異常流量特徵和威脅情報庫的知識信息,對網路流量進行實時檢測,發現攻擊行為,並採取防禦措施。與傳統的CC攻擊防禦設備相比,本方案具有如下優勢:

(一)利用機器學習建立流量基線和CC攻擊模型

利用機器學習的方法建立流量基線和CC攻擊模型,解決了傳統的CC攻擊方法難以區分CC攻擊流量,難以進行有針對性防範的問題。

(二)採用聚類分析針對每個自發現的URL進行檢測

本方案中,利用URL自發現功能,將流量較高和變化較大的URL實時載入到檢測關鍵項,並採用聚類分析的演算法針對不同的URL進行相應的特徵檢測。

(三)結合威脅情報庫進行攻擊檢測

利用銀聯歷史業務風險數據和信息安全積累以及業界先進的威脅情報庫,有效的對流量中可疑IP的請求進行發現和識別。

(四)有效解決傳統安全設備對銀聯生產流量的不兼容

利用本方案的方法,可以解析銀聯網路流量中格式特殊的數據包,從而進行針對性的有效檢測和防禦。

本文CC攻擊檢測技術方案以機器學習的技術為基礎,生成結合實際業務場景建立模型,引入威脅情報知識庫,使用了IT領域的新技術和手段解決傳統安全軟硬體難以防禦的CC攻擊安全威脅。經過原型系統的研發,目前CC攻擊檢測系統也已經在銀聯生產網試運行。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

YouTube視頻機器學習推薦演算法探測
在互聯網大潮中,機器學習是做什麼的?

TAG:機器學習 |