常昊 張錚 陳岑 李暖暖
(國網(wǎng)河南省電力公司電力科學研究院 河南省鄭州市 450000)
Dos是Denialof Serviceattack(拒絕服務攻擊)的簡稱,該行為也可以被稱作洪水攻擊,是一種非常典型的網(wǎng)絡攻擊手段,其攻擊行為的目的是在一定時間向特定目標機器,發(fā)送大量的請求服務,導致服務器CPU、內存等資源使用情況升高,使得目標電腦的網(wǎng)絡或者系統(tǒng)資源耗盡,中斷或暫停其服務,使得一般用戶無法正常訪問。
DDos[1]攻擊是在Dos攻擊的基礎上,進一步升級而來。DDos是 distributed denial-of-service attack(分布式拒絕服務攻擊)的簡稱,該攻擊是通過大規(guī)模互聯(lián)網(wǎng)流量淹沒目標服務器或其周邊基礎設施,以破壞和干擾目標服務器、服務或網(wǎng)絡正常流量的惡意行為。通常情況下可以造成網(wǎng)絡異常緩慢、網(wǎng)頁無法打開、網(wǎng)絡異常斷開、垃圾郵件數(shù)量急劇增加等情況。當攻擊者使用網(wǎng)絡上兩個或以上受損的計算機系統(tǒng)或聯(lián)網(wǎng)設備作為攻擊流量來源向特定目標機器發(fā)動Dos攻擊時,由于攻擊的發(fā)出點是分散于不同地方的,因此被稱作DDos攻擊。DDos攻擊常見的方式有:UDP洪水攻擊、ICMP洪水攻擊、死亡Ping、SYN洪水攻擊、分布式HTTP洪水攻擊、僵尸網(wǎng)絡攻擊、應用程序洪水攻擊等。DDoS發(fā)起者一般針對重要服務和知名網(wǎng)站進行攻擊,如游戲公司、銀行、信用卡支付網(wǎng)關、甚至根域名服務器等,主要目的為惡意玩家作弊和敲詐勒索。
根據(jù)國家互聯(lián)網(wǎng)應急中心CNCERT/CC公布的2021年第2季度我國DDoS攻擊資源分析報告中顯示,利用肉雞進行攻擊的方式仍是目前占比較大的一種攻擊手段[2],利用肉雞終端發(fā)起DDos攻擊的活躍控制端有741個,其中境外控制端占比96.6%,云平臺控制端占比78.7%,其中參與真實地址攻擊(包括真實地址攻擊與反射攻擊等其他攻擊的混合攻擊)的肉雞高達491680個,境外肉雞占比為94.7%,云平臺肉雞占比為2.8%。騰訊安全2020年DDos威脅報告指出,2020年時充滿挑戰(zhàn)和變化的一年,近些年DDos攻擊次數(shù)逐年上漲,2020年相比2019年而言攻擊次數(shù)翻翻,海外攻擊大幅上漲,游戲行業(yè)的攻擊次數(shù)和占比也都創(chuàng)造了新高,其中UDP洪水攻擊仍是當前攻擊手段的主力,攻擊次數(shù)占比高達88%。
如今網(wǎng)絡安全的問題已經(jīng)上升至國家層面,2017年隨著《網(wǎng)絡安全法》的實施,進一步加快了網(wǎng)絡安全規(guī)范和基礎設施建設。面對日益劇增的DDos攻擊,不僅涉及到企業(yè)自身利益,也與國家網(wǎng)絡安全息息相關,隨著網(wǎng)絡技術手段的發(fā)展,DDos的攻擊模式也在不斷的更新如何高效、正確、快速的識別DDos攻擊也是當前一大熱門問題。本文提出了一種基于流量可視化的DDos網(wǎng)絡攻擊識別的方法,該方法首先將捕獲的網(wǎng)絡流量進行數(shù)據(jù)清洗,保留重要的特征值,將特征值轉化為二進制文本用以生成數(shù)據(jù)流的灰度圖,為了提高圖片的差異性更好的分辨正常訪問流量與DDos攻擊流量,將灰度圖進行傅里葉變換,生成最終的圖片模型使得流量數(shù)據(jù)可視化,從而進行機器學習圖片分類,該方法將原本的流量文本分類轉化為了圖片分類的問題,明顯提高數(shù)據(jù)預測的準確率和檢測效果。
目前檢測DDos攻擊的方式有多種,可以通過檢測方式的不同或部署位置的細分分為大致兩大類:按檢測模式分類的方法和按部署位置分類的方法。
2.1.1 基于誤用的DDos攻擊檢測
基于誤用檢測方法是根據(jù)以往攻擊事件的特征庫與流量進行特征匹配從而檢測DDos流量攻擊的一種方式,故誤用檢測的IDS能精準的檢測出已經(jīng)出現(xiàn)過的舊式攻擊。但當攻擊者使用新型DDos進行網(wǎng)絡攻擊時,基于誤用的檢測方式便無法檢測出DDos攻擊,因為新型的DDoS攻擊的特征尚不在特征庫內,因此可以逃避掉DDos檢測。王功聰?shù)热送ㄟ^將數(shù)據(jù)包頭和數(shù)據(jù)包內容兩部分與建立的異常行為特征庫進行比對匹配,從而檢測DDos攻擊。[3]
2.1.2 基于異常的DDos攻擊檢測
基于異常的DDos攻擊檢測方式主要是通過檢測流量數(shù)據(jù)記錄,篩查異常流量,檢測出可能存在網(wǎng)絡攻擊的事件。目前絕大多數(shù)的DDos檢測方式均為基于異常的DDos檢測方式,該檢測方式依賴于所建立的檢測模型,根據(jù)不同檢測模型產(chǎn)生了統(tǒng)計檢測、行為模式匹配檢測兩類模式。張新躍等人使用了一種自適應的異常流量檢測方法,將靜態(tài)匹配與動態(tài)過濾調整的方式相結合,用以快速甄別異常流量。[4]黃長慧等人通多分析受到攻擊時流量分布的狀態(tài),提出了基于自相似流量檢測的DDos攻擊檢測手段。[5]
2.1.3 基于混合模式的攻擊檢測
基于混合模式的攻擊檢測方法將基于誤用的檢測方法和基于異常的檢測模式相結合,最后使用機器學習等方法進行檢測。夏玉明等人提出了一種將日志信息轉為灰度化圖像然后基于卷積神經(jīng)網(wǎng)絡進行流量分類從而完成對DDos檢測的方法。[6]劉奕等人通過計算流量特征的的信息熵,使用信息熵作為特征集對DDos進行檢測。[7]孟偉東等人提出了基于網(wǎng)絡流量特征和自適應匹配追蹤的方法用以檢測低密度DDos攻擊。[8]近些年機器學習檢測DDos攻擊的的方法較為常見,且檢測效果相對較好。
根據(jù)目前對于DDos檢測的程序或設備部署位置的不同又可以分為源端檢測、中間網(wǎng)絡檢測、目的端檢測。
2.2.1 源端檢測
源端檢測DDos指的是將檢測算法部署到攻擊方所屬網(wǎng)絡的邊界路由器上,從而做到在攻擊流量進入網(wǎng)絡前將其阻隔。羅華等人提出了一種使用網(wǎng)絡全局流量特征來檢測DDos的方法,該方法可以在近源測快速定位到DDos攻擊,進一步降低被攻擊的可能性。[9]
2.2.2 中間網(wǎng)絡檢測
中間網(wǎng)絡檢測是指將檢測算法部署到包括路由器、交換機在內的整個網(wǎng)絡上,通常情況下需要在網(wǎng)絡的核心設備中部署分布式的檢測系統(tǒng)降低漏報率。Lee K等人提出了新路由算法和站點分配算從而盡可能避免CDN網(wǎng)絡中的DDos攻擊。[10]
2.2.3 目的端檢測
目的端檢測指的是將檢測算法部署到被攻擊主機或被攻擊主機所在網(wǎng)絡的邊界路由器上,從目的端阻隔攻擊流量的進入,目前為止,目的端檢測DDos的方法也是部署最多的檢測方式。鄒大立等人提出了基于流量牽引的防御系統(tǒng)將攻擊流量鎖定到局部,降低被攻擊風險。[11]
本文提出了一種基于流量可視化的DDos檢測方法,該方法首先對網(wǎng)絡流量中的重要數(shù)據(jù)特征進行提取,然后對特征進行數(shù)據(jù)清洗和數(shù)據(jù)填充,將數(shù)據(jù)數(shù)據(jù)轉化為二進制生成灰度圖,為了放大正常訪問流量與DDos惡意流量特征的差別,提高預測準確率,進一步將灰度圖通過傅里葉變換生成新的圖像,最后使用機器學習進行惡意流量的識別,將惡意流量識別的問題轉化為了圖像識別的問題。
可以捕獲到的網(wǎng)絡流量特征有包括Flow Duration(流持續(xù)時間)、Tot FwdPkts(在正向上包的數(shù)量)、Tot BwdPkts(在反向上包的數(shù)量)、TotLenFwdPkts(正向數(shù)據(jù)包的總大小)等在內的幾十種,由于用戶正常訪問所產(chǎn)生的流量和DDos攻擊所產(chǎn)生的流量在部分特征上有顯著的差別,因此首先可以將具有顯著差別的特征進行篩選,之后對篩選出的特征進行數(shù)據(jù)清洗與數(shù)據(jù)格式填充,將所有流量經(jīng)過篩選出的特征數(shù)據(jù)拼接后轉化為統(tǒng)一格式,為生成灰度圖做鋪墊。
3.1.1 數(shù)據(jù)預處理
數(shù)據(jù)預處理要對篩選出來的特征數(shù)據(jù)進行清洗與填充,首先對流量數(shù)據(jù)特征中的臟數(shù)據(jù)進行數(shù)據(jù)清洗,然后對特征數(shù)據(jù)格式長度不滿足實驗要求的數(shù)據(jù)進行0字節(jié)填充,使得最終每一條流量數(shù)據(jù)的特征數(shù)據(jù)拼接后的數(shù)據(jù)長度都保持統(tǒng)一。
灰度圖又稱為灰階圖,是將白色和黑色之間的按照對數(shù)關系分成為若干等級,稱之為灰度?;叶葥碛?56階,用灰度表示的圖像被稱為灰度圖。惡意代碼通常情況下經(jīng)過改造,可以輕松繞過檢測手段,因此使用靜態(tài)的檢測方式無法及時的發(fā)現(xiàn)惡意代碼程序;而使用動態(tài)檢測的成本過高,通常需要擁有隔離環(huán)境進行測試。近些年來,隨著計算機性能和機器學習技術的發(fā)展,學者們提出了一種基于灰度圖的可視化二分類方法,因為惡意代碼和正常代碼在二進制表達上有著較為顯著的差別,并且可以較為精確的區(qū)別惡意代碼家族,因此灰度圖在惡意代碼識別領域有了較為廣泛的應用。圖1所示為cobaltstrike生成的惡意代碼家族的灰度圖像。
圖1:惡意代碼灰度圖
傅里葉變換是一種線性積分的變換,常見于信號在時域(或空域)和頻域之間的變換,多應用于物理學和工程學的領域中。其表示能將滿足一定條件的某個函數(shù)表示成三角函數(shù)(正弦和/或余弦函數(shù))或者它們的積分的線性組合。當應用于不同的領域的時候,傅里葉變換擁有包括連續(xù)傅里葉變換和離散傅里葉變換在內的多種不同的變形形式。在圖像處理領域,將一幅圖像從其空間域轉換為頻域,圖像處理用到的主要是離散傅立葉變換。將灰度圖經(jīng)過傅里葉變換后可以有效放大圖片在頻域上的特征,提高機器學習的預測準確率。
通過以上步驟最終將流量二分類問題轉化為可視化圖像的識別二分類問題,不依賴于特征庫,可以有效防范較新的DDos攻擊,在目的端對DDos攻擊的流量進行有效檢測。
實驗數(shù)據(jù)來自于CSE-CIC-IDS2018,該數(shù)據(jù)集最初由新不倫瑞克大學創(chuàng)建,用于分析 DDoS 數(shù)據(jù)。數(shù)據(jù)集本身基于大學服務器的日志,該日志在公開可用期間發(fā)現(xiàn)了各種DDoS 攻擊。數(shù)據(jù)集中的流量擁有多達80項的流量特征。
經(jīng)過將正常訪問產(chǎn)生的流量和DDos攻擊產(chǎn)生的流量進行比對,發(fā)現(xiàn)有部分特征數(shù)據(jù)用有明顯的差異,在本文中,從80個流量特征中篩選出了20個特征作為本次實驗的特征集合。篩選出的20個特征如表1所示。
表1:篩選出的流量特征
由于每條數(shù)據(jù)流量中的特征值數(shù)據(jù)格式不統(tǒng)一,故需要在轉化為灰度圖之前將數(shù)據(jù)進行清洗和填充,對于每個特征值而言,將其轉化為二進制數(shù)據(jù),并將其低位以0比特填充,使得每個特征值最終的長度為10個字節(jié),最后將其生成灰度圖,為了進一步擴大特征區(qū)別,再將灰度圖經(jīng)過傅里葉變換生成新的圖像,使用KNeighborsClassifier算法k值為5的KNN機器學習模型對圖像進行二分類。
通過數(shù)據(jù)清洗和填充后,將流量數(shù)據(jù)集中的正常訪問流量與DDos攻擊流量分別生成灰度圖,正常訪問流量灰度圖如圖2所示,DDos攻擊流量生成的灰度圖如圖3所示。
圖2:正常訪問流量灰度圖
圖3:DDos攻擊流量灰度圖
將灰度圖進一步經(jīng)過傅里葉變換生成新的圖像,進一步放大特征區(qū)別,正常訪問流量灰度圖經(jīng)過傅里葉變換后如圖4所示,DDos攻擊流量灰度圖經(jīng)過傅里葉變換后如圖5所示。
圖4:正常訪問流量灰度圖傅里葉變換
圖5:DDos攻擊流量灰度圖傅里葉變換
經(jīng)過傅里葉變換后可以放大流量特征,對DDos的流量更容易鑒別,進一步提高機器學習預測準確率,經(jīng)過KNN機器學習可以較好的對流量進行分類,對 DDos預測準確率可以達到92.78%。
本文中所提出的基于流量可視化的DDos的網(wǎng)絡攻擊識別方法,通過機器學習算法,可以在目的端較為準確的識別已知的DDos網(wǎng)絡流量攻擊,對于未知的網(wǎng)絡流量和較新的DDos流量也可以和正常訪問流量較好的區(qū)分。
本文首先對目前已有的DDos檢測方式進行了介紹,針對不同的DDos檢測方法的工作原理以及優(yōu)點缺點進行了闡述,針對目前已有的檢測算法而言,檢測的準確率主要依托于特征集以及數(shù)據(jù)的質量,面對較新的DDos攻擊時,目前的檢測方法在準確率方面無法得到保障,本文提出了一種基于流量可視化的DDos檢測方法,該方法通過將流量數(shù)據(jù)轉為二進制數(shù)據(jù),使用二進制數(shù)據(jù)生成灰度圖后,經(jīng)過傅里葉變換放大流量特征,最終使用機器學習模型進行圖像識別分類,將文本分類問題轉化為了圖像分類問題,不依賴于特征庫,對于較新的DDos攻擊手段也可以較好的識別,證明了本文提出的方法具有可行性。