張婷婷,唐 勇,李云天,許云飛,張衛(wèi)豐
(1.炫彩互動網(wǎng)絡(luò)科技有限公司 江蘇南京 210019;2.中國銀行信息科技運營中心 上海 201210;3.南京郵電大學計算機學院、軟件學院、網(wǎng)絡(luò)空間安全學院 江蘇南京 210046)
由于應(yīng)用層DDoS 攻擊具有很強的分布性,攻擊者可通過全網(wǎng)搜捕傀儡機,使用抓捕到的傀儡機進行多次遞歸搜捕其它機器,依據(jù)應(yīng)用層協(xié)議軟件漏洞等方法攻擊目標主機[1-3]。
現(xiàn)有攻擊檢測方法無法及時響應(yīng)攻擊初期的網(wǎng)絡(luò)流量包,只能等待大規(guī)模流量進入目標主機后才能進行反應(yīng),然而此時流量值可能已經(jīng)超出目標主機的承受范圍[4-5]。例如,Github 入侵事件中顯露出該類檢測系統(tǒng)的弊端,雖然Github 具備較強的DDoS 防御系統(tǒng),能夠在短時間內(nèi)恢復(fù)網(wǎng)絡(luò),但仍然在沖擊下對網(wǎng)絡(luò)造成了一定程度的影響。
根據(jù)騰訊安全聯(lián)合綠盟科技發(fā)布的《2021 上半年全球DDoS 威脅報告》顯示,DDoS 攻擊次數(shù)連續(xù)4 年呈高速增長趨勢,并在國外個別地區(qū)更為明顯,增長率高達50%。隨著云計算、5G、AI 等技術(shù)發(fā)展,100G 以上大流量攻擊呈現(xiàn)高發(fā)態(tài)勢,僅2021 年上半年攻擊次數(shù)達2 544 次,同比增長50%以上。
由此可見,將檢測系統(tǒng)作用在目標主機處,大流量攻擊必然會造成服務(wù)器宕機。為此,本文提出一種基于近攻擊源部署的應(yīng)用層DDoS 攻擊檢測方法。該方法將檢測節(jié)點前向部署于近攻擊源處,通過定時和強化學習將正常流量進行信息融合至目標處,在檢測攻擊的同時攔截攻擊流量。
目前國內(nèi)外針對應(yīng)用層DDoS 檢測的方法可以分為基于主機負載、數(shù)據(jù)流特征和基于用戶行為3種檢測方法。
該方法通過觀察流量包對主機資源的影響確定是否屬于攻擊流量,例如內(nèi)存、帶寬占用情況。景泓斐等[6]根據(jù)應(yīng)用層DDoS 攻擊特點,結(jié)合包速率、URL 信息熵、URL條件熵3 種有效特征,提出一種基于誤差逆向傳播(Back Propagation,BP)神經(jīng)網(wǎng)絡(luò)的應(yīng)用層DDoS 攻擊檢測算法。然而該算法需要觀測攻擊流量對包速率等特征的影響,此時目標主機已受到攻擊。
該方法通過統(tǒng)計網(wǎng)絡(luò)流量包特征進行相似性檢測,從而確定應(yīng)用層DDoS 攻擊類型。張斌等[7]提出一種基于偏二叉樹SVM 多分類算法的應(yīng)用層DDoS 檢測方法。首先,通過Hash 函數(shù)對多周期內(nèi)不同源IP 地址建立索引,實時計算流量趨勢及源IP 地址分布差異所需的特征參數(shù)。然后,采用偏二叉樹結(jié)構(gòu)SVM 分類器訓(xùn)練特征參數(shù)。最后,將該方法與傳統(tǒng)SVM、Navie Bayes 進行比較,結(jié)果表明所提方法檢測率更高,誤檢率更低,能有效區(qū)分攻擊的具體類型。然而,該方法也需要在目標主機上進行,無法從根本上避免主機遭受DDoS 攻擊。
該方法根據(jù)正常和攻擊用戶訪問行為間的差異進行檢測。劉澤宇等[8]提出一種基于Web 訪問路徑的防御檢測模型,根據(jù)訪問路徑軌跡、攻擊行為特點和網(wǎng)站鏈接規(guī)則,建立請求路徑、請求分布、路徑循環(huán)、行為時隙和路徑長度5 種異常檢測模型。通過計算合法用戶訪問網(wǎng)站的正常值及具有攻擊行為用戶的實時異常值之間的偏離程度,判定網(wǎng)絡(luò)是否遭受應(yīng)用層DDoS 攻擊。
然而,該模型的缺陷是需要觀察用戶行為,即在攻擊主機后才能進行檢測,因此無法避免主機遭受DDoS 攻擊。例如,馬蘭等[9]提出一種基于隱半馬爾可夫模型檢測應(yīng)用層DDoS 攻擊。首先,采用改進的前向后向算法,利用HSMM 建立動態(tài)異常檢測模型追蹤正常用戶瀏覽行為。然后,學習、預(yù)測正常用戶行為得出正常檢測區(qū)間。最后,選取訪問包大小和請求時間間隔為特征進行建模,檢測異常。
綜上所述,現(xiàn)如今已使用流量特征分析、行為分析、負載分析等方法檢測應(yīng)用層遭受的DDoS 攻擊。然而,上述方法均在被攻擊者一端進行流量檢測,即使在較短時間內(nèi)對攻擊行為進行反應(yīng),也無法避免地對網(wǎng)絡(luò)造成一定程度的影響。
為了從根本上防止主機遭受DDoS 攻擊,本文提出一種基于近攻擊源部署的應(yīng)用層DDoS 攻擊檢測方法。在近攻擊源處部署檢測節(jié)點,將流量檢測工作提前在目標主機之前,避免主機受到攻擊流量干擾。同時,提出兩種信息融合機制實現(xiàn)檢測節(jié)點與目標主機的信息通信,使正常流量匯聚于目標主機,攔截攻擊流量。此外,通過節(jié)點、系統(tǒng)兩種評估指標驗證系統(tǒng)有效性。
基于近攻擊源部署原則是將檢測節(jié)點盡可能部署在攻擊源的位置,每個檢測節(jié)點負責檢測最近網(wǎng)段攻擊任務(wù),如果檢測到攻擊流量或判定此流量超過閾值,則將其劃分為攻擊流量進行過濾。同時,通過信息融合技術(shù)將正常流量引流至目標主機處。具體操作流程如圖1所示。
Fig.1 Detection model based on near attack source deployment圖1 基于近攻擊源部署的檢測模型
由圖1 可見,近攻擊源并非指部署于黑客所操控的攻擊主機,而是部署于網(wǎng)絡(luò)入口處的核心骨干網(wǎng)絡(luò),相較于基于目標主機檢測而言,檢測節(jié)點在實際網(wǎng)絡(luò)中以DDoS清洗節(jié)點方式獨立存在,并由網(wǎng)絡(luò)設(shè)備保證相應(yīng)流量的路由牽引和回送。
通過該方式,可保證檢測節(jié)點只接收網(wǎng)段流量,不會影響正常業(yè)務(wù)系統(tǒng)開銷,但由于檢測節(jié)點部署在網(wǎng)絡(luò)各處,DDoS 攻擊又具有很強的分布性,在實際部署中每個檢測節(jié)點遇到的攻擊流量占比較少,因此會導(dǎo)致檢測節(jié)點模型訓(xùn)練不足,使部分攻擊流量到達目標主機。為了解決以上問題,本文提出融合定時信息融合機制與強化學習信息機制對模型進行改進。
定時融合機制在每個檢測節(jié)點中部署一個定時器,當達到時間閾值時,向目標主機傳遞檢測節(jié)點流量包。檢測系統(tǒng)通過融合節(jié)點與主機間的信息,利用目標主機進行二次檢測以提高檢測準確率,但會增加系統(tǒng)性能開銷,造成傳遞信息時間增長。
由于用戶只關(guān)注系統(tǒng)開銷時間,因此會降低模型評估性能。為減少系統(tǒng)開銷,本文流量包只包含經(jīng)過檢測節(jié)點降維處理后的目標IP。定時融合機制下的檢測節(jié)點結(jié)構(gòu)如圖2所示。
Fig.2 Detection node structure under timing information fusion圖2 定時信息融合下的檢測節(jié)點結(jié)構(gòu)
由圖2 可見,基于定時融合檢測節(jié)點具有以下優(yōu)點:①檢測節(jié)點發(fā)現(xiàn)攻擊時,直接丟棄攻擊流量,從攻擊源處阻斷流量到達目標主機,減少網(wǎng)絡(luò)通信和帶寬成本;②通過數(shù)據(jù)預(yù)處理和特征降維后的數(shù)據(jù)作為信息融合載體,減少傳送信息量,降低通訊代價;③定時進行信息融合,保證檢測節(jié)點中漏報的攻擊流量在匯聚時均能被目標主機處的檢測模型識別。
基于定時融合檢測方法的具體工作流程如下:
步驟1:流量備份處理。
步驟2:檢測節(jié)點模型訓(xùn)練。
步驟3:若目標IP 不為目標主機IP 的流量,系統(tǒng)將直接放行;否則進行數(shù)據(jù)預(yù)處理、特征降維,將處理后的數(shù)據(jù)輸入檢測模塊進行分類。
步驟4:直接丟棄攻擊流量,并進行信息記錄;正常流量包則存儲于信息融合模塊。
步驟5:定時器達到時間閾值,將此時間段中流量包發(fā)送至目標主機進行信息融合。
強化學習信息融合機制提供反饋方法使各檢測節(jié)點間在處理流量包時,自行決定是否需要進行信息融合。為了使檢測節(jié)點擁有自主信息融合機制,在模塊中加入基于支持向量機置信度的強化學習算法(Hingle Loss Function Reinforcement Learning Algorithm For Support Vector Machines,SVMHLEL)進行實現(xiàn)[10-11]。
基于強化學習信息融合機制具體步驟為:
步驟1:流量備份處理,完成模型數(shù)據(jù)預(yù)處理、特征重要度評估和特征降維。
步驟2:訓(xùn)練SVM 檢測模型,獲取超平面參數(shù)值w,b。
步驟3:定義SVM 置信度為P(n)(0
步驟4:定義激勵值rewardA、rewardB、rewardC。其中,rewardA 步驟5:檢測時,如果樣本為攻擊流量則將流量進行過濾、記錄。如果樣本為正常流量且置信度超出設(shè)定閾值M時,則作為正常流量放行。如果樣本為正常流量但置信度未超出設(shè)定閾值M時,將根據(jù)置信度所在節(jié)點區(qū)間進行下一步操作。 基于強化學習的檢測節(jié)點結(jié)構(gòu)是在檢測模塊中,依據(jù)SVMHLEL 算法動態(tài)決定節(jié)點是否進行信息交融。相較于定時信息交融,強化學習信息交融具有更強的動態(tài)適應(yīng)性和更小的通信代價。檢測節(jié)點結(jié)構(gòu)如圖3所示。 Fig.3 Detection node structure under reinforcement learning information fusion圖3 強化學習信息融合下的檢測節(jié)點結(jié)構(gòu) 假設(shè)基于近攻擊源部署的應(yīng)用層DDoS 檢測系統(tǒng)由3個檢測結(jié)點構(gòu)成,通過不同檢測節(jié)點測試不同信息融合方式對系統(tǒng)性能的影響,各檢測結(jié)點相互獨立,通過信息融合方法將正常流量匯集至目標主機。檢測系統(tǒng)結(jié)構(gòu)設(shè)計如圖4所示。 Fig.4 Application layer DDoS attack detection system architecture based on near attack source deployment圖4 基于近攻擊源部署的應(yīng)用層DDoS攻擊檢測系統(tǒng)結(jié)構(gòu) CSE-CIC-IDS2018 入侵檢測數(shù)據(jù)集是通信安全機構(gòu)和加拿大網(wǎng)絡(luò)安全研究所在2018 年整理的網(wǎng)絡(luò)攻擊記錄數(shù)據(jù)集,該數(shù)據(jù)集包含最新的網(wǎng)絡(luò)攻擊案例,滿足現(xiàn)實網(wǎng)絡(luò)攻擊的所有標準。由于本文主要研究應(yīng)用層DDoS 攻擊,因此對數(shù)據(jù)集進行篩選,將符合要求的數(shù)據(jù)劃分為8類,如表1所示。 Table 1 Labels in CSE-CIC-IDS2018 data-set表1 CSE-CIC-IDS2018 data-set數(shù)據(jù)集標簽 由表1 可見,數(shù)據(jù)集數(shù)量過大將影響實驗處理效率,并且正常流量與攻擊流量數(shù)據(jù)不平衡也會影響模型檢測率。因此,本文對數(shù)據(jù)集進行篩選,降低正常流量在總流量的占比。同時,將數(shù)據(jù)集按照9∶1 劃分訓(xùn)練集和測試集。 根據(jù)CSE-CIC-IDS2018 數(shù)據(jù)集攻擊IP 源的特點,將數(shù)據(jù)集根據(jù)src_ip 特征分為以下3 類:①172.*.*.*~192.*.*.*代表檢測節(jié)點A 的數(shù)據(jù)集;②18.*.*.*~51.*.*.*代表檢測節(jié)點B 的數(shù)據(jù)集;③52.*.*.*~171.*.*.*代表檢測節(jié)點C 的數(shù)據(jù)集。其中,A 為定時信息融合檢測節(jié)點,B、C 為強化學習信息融合檢測節(jié)點。各節(jié)點數(shù)據(jù)相互獨立,分別進行模型訓(xùn)練和測試。目標主機處的檢測系統(tǒng)則通過CSE-CICIDS2018 攻擊數(shù)據(jù)集和切分后的正常流量數(shù)據(jù)集進行模型訓(xùn)練,以確保模型檢測性能。 本文分別從系統(tǒng)、節(jié)點維度進行分析。其中,前者包括系統(tǒng)檢測率、通信有效率和攔截率;后者包括節(jié)點檢測率、通信有效率和攔截率。定義系統(tǒng)中的指標為: 在局域網(wǎng)中,通過CSE-CIC-IDS2018 數(shù)據(jù)集對3 個目標主機檢測節(jié)點和近攻擊源檢測節(jié)點進行SVM 的二分類模型訓(xùn)練。由于檢測節(jié)點間訓(xùn)練樣本數(shù)不同,檢測節(jié)點檢測率不同,訓(xùn)練后的檢測率如圖5所示。 Fig.5 Node detection rate圖5 節(jié)點檢測率 由圖5 所示,目標主機處檢測節(jié)點檢測率較高,而3 個近攻擊源檢測節(jié)點的檢測率較差。因此,本文將檢測節(jié)點發(fā)送至主機的正常流量進行二次分類。 由于定時融合機制在達到時間閾值時,將時間段所有正常流量發(fā)送至目標主機檢測節(jié)點。為此,通過拆分測試數(shù)據(jù)集,檢測等量數(shù)據(jù)模擬定時操作,一旦檢測到攻擊流量,系統(tǒng)將進行記錄。在檢測完成后,將所有正常流量匯聚目標主機處進行二次檢測。本文將測試集分為5 等分,驗證結(jié)果如表2所示。 由表2 可見,通過定時機制進行信息融合的節(jié)點攔截率與檢測率一致,證明定時信息融合方式僅利用檢測節(jié)點分類結(jié)果作為信息發(fā)送并未提升攔截率?;趶娀瘜W習信息融合下的檢測節(jié)點中,檢測率仍然較差。因此,通過強化學習算法進行信息融合,對正常流量進行二次檢測,以確認是否進行通信。強化學習算法的訓(xùn)練結(jié)果如圖6所示(彩圖掃OSID 可見,下同)。 Fig.6 Training results of reinforcement learning圖6 強化學習的訓(xùn)練結(jié)果 Table 2 Node detection rate of timing information fusion表2 定時信息融合的節(jié)點檢測率 (%) 由圖6 可見,算法激勵值與置信度呈正相關(guān),即樣本置信度越高,信息融合可能性越大。由此可知,可設(shè)定合適的信息融合閾值確定需要進行融合的樣本。檢測結(jié)果如表3所示。 Table 3 Node detection rate of reinforcement learning information fusion表3 強化學習信息融合的節(jié)點檢測率 (%) 由表3 可見,基于強化學習信息融合的檢測節(jié)點既提升了攔截率,又能保證較為優(yōu)秀的通信有效率。在實際系統(tǒng)部署中,能夠降低系統(tǒng)通信代價。 為了比較兩種方式的性能差異,選用4 種節(jié)點組合方案進行檢測系統(tǒng)性能比較。其中,A 為定時信息融合機制節(jié)點,B 為強化學習信息融合機制節(jié)點,測試結(jié)果如表4所示。 Table 4 System performance comparison of different types of node表4 不同類型節(jié)點的系統(tǒng)性能對比 (%) 由表4 可知,系統(tǒng)檢測率與A 節(jié)點數(shù)目呈正相關(guān)性,而與通訊有效率和攔截呈負相關(guān)性。由于定時信息交融機制將所有漏報攻擊流量交付目標主機時進行二次檢測,雖然消耗了目標主機部分資源,但提高了系統(tǒng)檢測率。然而,強化學習將置信度低的樣本進行攔截,并未進行二次檢測,因此提高了系統(tǒng)通訊的有效率和攔截率。 如果服務(wù)器檢測時間和帶寬資源較少,而對系統(tǒng)檢測率要求不高的情況下,建議使用以B 節(jié)點為主的系統(tǒng)。反之則適用于以A 節(jié)點為主的檢測系統(tǒng)。最后,本文將4 種組合節(jié)點總體性能進行比較,具體結(jié)果見表5。 Table 5 Overall system performance of different types of node combination表5 不同類型節(jié)點組合的系統(tǒng)總體性能 (%) 綜上所述,基于強化學習的信息融合機制具有更好的系統(tǒng)總體性能,在系統(tǒng)帶寬資源緊張的情況下,仍能保證系統(tǒng)的檢測效率的攔截率。由于本文實驗是對實時流量進行檢測,如果將流量攔截、分類后,通過信息融合完成路由牽引,將影響正常業(yè)務(wù)的通信效率。 因此,在實際業(yè)務(wù)場景中,基于近攻擊源部署的應(yīng)用層DDoS 攻擊檢測系統(tǒng)中的各節(jié)點均可異步進行系統(tǒng)檢測,檢測流量由流量備份提供,原始流量在經(jīng)過清洗節(jié)點后,便能夠直接參與正常業(yè)務(wù)流程。 此外,基于離線學習的機器學習算法在訓(xùn)練時需要花費較多時間,而在分類檢測時時耗較少,一旦清洗節(jié)點檢測到異常流量,便能立即通知系統(tǒng)進行流量過濾,極大降低了攻擊流量給目標主機帶來的危害。 本文針對現(xiàn)有應(yīng)用層DDoS 攻擊檢測方法在檢測時易受大流量影響的情況,提出基于近攻擊源部署的應(yīng)用層DDoS 攻擊檢測方法。首先,將檢測節(jié)點前向部署于近攻擊源處,并利用兩種信息融合機制與主機進行通信,建立起能使目標主機免受大流量攻擊的檢測方法。然后,對模型進行基于近攻擊源檢測框架建立、信息融合機制、測試分析等測試。實驗表明,該系統(tǒng)具有良好的檢測效果和攔截率,能及時檢測并攔截攻擊流量,減少目標主機的流量負載。 然而,該系統(tǒng)的檢測率和攔截率還不足以滿足實際需求,下一步將持續(xù)優(yōu)化方法性能,以期為解決應(yīng)用層DDoS的大流量攻擊提出新的解決方法。3 實驗分析
3.1 測試環(huán)境
4.2 數(shù)據(jù)集
4.3 評估指標
4.4 測試流程
4 結(jié)語