劉仲維
(衡水學(xué)院,河北 衡水 053000)
分布式拒絕服務(wù)(Distributed Denial of Service,DDoS)是網(wǎng)絡(luò)安全領(lǐng)域的常見安全攻擊問題,DDoS攻擊通過利用大量受控的僵尸網(wǎng)絡(luò)(Botnet)向目標(biāo)系統(tǒng)發(fā)起集中請(qǐng)求,耗盡目標(biāo)網(wǎng)絡(luò)的帶寬或資源,使合法用戶無法獲取服務(wù)。隨著攻擊手法的多樣化與復(fù)雜化,傳統(tǒng)的基于特征的偵測方法已難以應(yīng)對(duì)新型、變種的DDoS攻擊,近年來,機(jī)器學(xué)習(xí)技術(shù)以其卓越的數(shù)據(jù)挖掘能力,為網(wǎng)絡(luò)流量的分析與異常檢測提供了新的視角。本文旨在探討和分析基于機(jī)器學(xué)習(xí)的DDoS攻擊網(wǎng)絡(luò)流量識(shí)別方法,研究機(jī)器學(xué)習(xí)算法在DDoS攻擊檢測中的應(yīng)用。
近年來,DDoS攻擊已然成為一個(gè)嚴(yán)重的網(wǎng)絡(luò)安全威脅。DDoS攻擊通過利用大量受控制的僵尸網(wǎng)絡(luò)(Botnet)向目標(biāo)發(fā)起大量請(qǐng)求數(shù)據(jù)包,耗盡目標(biāo)網(wǎng)絡(luò)帶寬或其他關(guān)鍵資源,嚴(yán)重干擾目標(biāo)服務(wù)器的正常工作,使大量合法用戶無法訪問網(wǎng)絡(luò)服務(wù)。僅2023年,全球就發(fā)生了將近1000萬起DDoS攻擊事件,造成的經(jīng)濟(jì)損失高達(dá)數(shù)十億美元。DDoS攻擊具有顯著的分布式、突發(fā)性和隱蔽性特征,這給網(wǎng)絡(luò)流量的分析帶來了極大困難。DDoS攻擊源地址經(jīng)過偽造和代理,動(dòng)用了成千上萬臺(tái)來自全球各地的“僵尸電腦”參與攻擊,源地址分布廣泛,難以回溯;攻擊流量在極短時(shí)間內(nèi)迅速增長,對(duì)網(wǎng)絡(luò)造成沖擊波[1];還利用各種手段偽裝成看似正常的流量,隱蔽性非常強(qiáng)。這些特點(diǎn)使得DDoS攻擊十分難以預(yù)防和檢測。目前,各大互聯(lián)網(wǎng)公司和云服務(wù)提供商每年投入巨資用于應(yīng)對(duì)DDoS攻擊的威脅。但是,依靠人工分析海量網(wǎng)絡(luò)數(shù)據(jù)已難以滿足實(shí)時(shí)檢測的需求。許多企業(yè)采用了基于攻擊簽名的檢測系統(tǒng),這類方法依賴手工提取已知攻擊的特征,對(duì)新型未知DDoS攻擊效果不佳。如何從龐大、復(fù)雜的網(wǎng)絡(luò)流量中快速準(zhǔn)確識(shí)別DDoS攻擊,實(shí)現(xiàn)流量的精細(xì)化分析和圖形化展示,一直是網(wǎng)絡(luò)安全領(lǐng)域亟待解決的問題。
DDoS攻擊作為一種典型的網(wǎng)絡(luò)拒絕服務(wù)攻擊方式,具有非常明顯的特點(diǎn),這些特點(diǎn)給識(shí)別DDoS攻擊流量帶來了很大的挑戰(zhàn)。主要特點(diǎn)可概括如下。
2.1.1 分布式參與
DDoS攻擊可以動(dòng)員數(shù)以萬計(jì)的各種互聯(lián)網(wǎng)設(shè)備參與攻擊。這些設(shè)備既包括服務(wù)器、PC機(jī),又包括各類物聯(lián)網(wǎng)設(shè)備,都可以成為僵尸網(wǎng)絡(luò)的一部分。攻擊者通過病毒、后門程序等方式,將這些設(shè)備變?yōu)椤敖┦?遠(yuǎn)程控制它們發(fā)起DDoS攻擊。由于攻擊源分布在全球各地,十分難以追蹤真實(shí)攻擊發(fā)起者。
2.1.2 流量突發(fā)性
正常的網(wǎng)絡(luò)流量通常相對(duì)平穩(wěn),而DDoS攻擊通過同時(shí)動(dòng)用大量節(jié)點(diǎn),可以在極短時(shí)間內(nèi)產(chǎn)生海量攻擊流量,在1~2 min內(nèi)達(dá)到峰值,流量驟增在流量圖上非常明顯,但若僅從短時(shí)數(shù)據(jù)看,很難分辨突發(fā)流量是否為DDoS,需要綜合判斷其他特征。
2.1.3 源地址偽造
由于源地址可以隨意偽造,DDoS攻擊通常采用隨機(jī)源IP地址或者存活主機(jī)IP地址,因此無法通過簡單的源地址過濾來實(shí)現(xiàn)防御。攻擊者還會(huì)使用IP地址欺騙,偽裝成知名可信服務(wù)的IP地址發(fā)動(dòng)攻擊。
2.1.4 協(xié)議類型復(fù)雜
DDoS攻擊可以使用多種協(xié)議實(shí)現(xiàn),既有ICMP、UDP洪水等基于量的攻擊,又有SYN洪水、ACK洪水等數(shù)據(jù)包洪水,甚至可以偽裝成HTTP、HTTPS等請(qǐng)求。不同協(xié)議載荷結(jié)構(gòu)復(fù)雜,給流量分析帶來難度。
2.1.5 流量模式隱蔽
為了縮小被識(shí)別的可能性,攻擊者會(huì)注重偽裝攻擊流量,使其模式接近于正常業(yè)務(wù)流量,如調(diào)整發(fā)送速率,避免流量過于集中,或在數(shù)據(jù)包中填充實(shí)際業(yè)務(wù)負(fù)載等,導(dǎo)致從單個(gè)流或數(shù)據(jù)包很難檢測到攻擊。
對(duì)于DDoS攻擊的檢測,傳統(tǒng)上廣泛采用的是基于攻擊簽名的方法。該方法通過提取已知攻擊的明顯特征,構(gòu)建簽名規(guī)則庫,根據(jù)預(yù)置規(guī)則對(duì)網(wǎng)絡(luò)流量進(jìn)行匹配和篩選,從而檢測出攻擊流量。這種方法在應(yīng)對(duì)大量已知攻擊時(shí)有一定效果,但隨著DDoS攻擊手段的不斷變化,基于簽名的檢測方式體現(xiàn)出一些局限性:(1)基于簽名的方法需要事先獲取攻擊實(shí)例,人工提取其特征構(gòu)建簽名。而新型DDoS攻擊手段層出不窮,攻擊者可以通過修改協(xié)議、調(diào)整流量規(guī)律等方式產(chǎn)生新的變種攻擊,基于簽名的系統(tǒng)由于缺乏對(duì)這些未知攻擊的特征提取和學(xué)習(xí),因此難以檢測新的攻擊變種。(2)依賴專業(yè)背景提取特征。攻擊簽名的生成需要安全專家針對(duì)具體攻擊流量提取特征,這依賴于很強(qiáng)的專業(yè)背景知識(shí)和大量人工工作量。不同的攻擊類型特征差異很大,提取過程缺乏統(tǒng)一規(guī)范,不利于簽名庫的共享應(yīng)用。(3)效率難以應(yīng)對(duì)高帶寬流量。基于簽名的方法需要將每個(gè)數(shù)據(jù)包或會(huì)話流與規(guī)則庫逐一匹配,時(shí)間復(fù)雜度較高,DDoS攻擊流量速率極快,對(duì)檢測系統(tǒng)效率需求非常高,海量流量下簽名匹配容易成為性能瓶頸,難以滿足實(shí)時(shí)檢測需求。
機(jī)器學(xué)習(xí)作為一種自主學(xué)習(xí)和模式識(shí)別的技術(shù),具有很強(qiáng)的數(shù)據(jù)建模和泛化能力?;跈C(jī)器學(xué)習(xí)算法訓(xùn)練的網(wǎng)絡(luò)流量分析模型,可以自動(dòng)從大規(guī)模的正常流量和攻擊流量數(shù)據(jù)集中學(xué)習(xí)提取流量統(tǒng)計(jì)特征和行為特征,形成網(wǎng)絡(luò)異常流量和已知攻擊類型的檢測模型,智能化、自動(dòng)化檢測網(wǎng)絡(luò)威脅。機(jī)器學(xué)習(xí)模型通過學(xué)習(xí)獲得流量特征的敏感性和泛化能力,可以泛化檢測訓(xùn)練數(shù)據(jù)集中沒有出現(xiàn)的新型網(wǎng)絡(luò)攻擊?;诹髁糠植嫉慕?機(jī)器學(xué)習(xí)模型可以檢測訓(xùn)練數(shù)據(jù)中沒有出現(xiàn)過的新型DDoS攻擊。模型通過學(xué)習(xí)對(duì)流量時(shí)間統(tǒng)計(jì)規(guī)律、協(xié)議結(jié)構(gòu)等的敏感性,對(duì)未知攻擊具有很強(qiáng)的檢測能力。機(jī)器學(xué)習(xí)模型經(jīng)過訓(xùn)練后,可以利用高度優(yōu)化的并行算法對(duì)流量進(jìn)行模式識(shí)別與分類,時(shí)間復(fù)雜度低?;贕PU并行處理,可以實(shí)現(xiàn)每秒鐘處理百萬級(jí)數(shù)據(jù)包的超高速分析。
在構(gòu)建基于機(jī)器學(xué)習(xí)的DDoS攻擊流量識(shí)別模型之前,需要預(yù)處理采集得到的網(wǎng)絡(luò)流量數(shù)據(jù),以消除數(shù)據(jù)噪聲,提取合適的特征,并將特征標(biāo)準(zhǔn)化到同一量綱。本研究使用UNSW-NB15數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)源,該數(shù)據(jù)集包含了正常流量和多種DDoS攻擊流量。使用Python的Pandas庫讀取數(shù)據(jù)集,并進(jìn)行數(shù)據(jù)清洗處理,提取了包括源IP、目的IP、源端口、目的端口、協(xié)議類型等在內(nèi)的多種網(wǎng)絡(luò)流量特征,組成特征矩陣:
from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
X=scaler.fit_transform(X)
對(duì)提取出的各個(gè)特征xi作標(biāo)準(zhǔn)化處理,以消除不同特征尺度帶來的影響。標(biāo)準(zhǔn)化轉(zhuǎn)換公式為:
其中,μi和σi分別是特征xi的均值和標(biāo)準(zhǔn)差。經(jīng)過上述步驟,獲得了干凈、標(biāo)準(zhǔn)化的特征數(shù)據(jù)和標(biāo)簽,以供后續(xù)DDoS攻擊流量識(shí)別模型的訓(xùn)練和測試。
特征工程是構(gòu)建高效機(jī)器學(xué)習(xí)模型的關(guān)鍵環(huán)節(jié)之一。為了從復(fù)雜的網(wǎng)絡(luò)流量數(shù)據(jù)中提煉出有利于DDoS攻擊識(shí)別的特征表示,先計(jì)算網(wǎng)絡(luò)流量時(shí)間窗口內(nèi)的基礎(chǔ)統(tǒng)計(jì)量特征,如平均數(shù)據(jù)包大小、平均到達(dá)時(shí)間間隔等,反映流量的統(tǒng)計(jì)分布。然后,應(yīng)用主成分分析(PCA)算法對(duì)原始網(wǎng)絡(luò)流量特征矩陣進(jìn)行正交轉(zhuǎn)換降維,提取主要成分作為特征,以過濾冗余信息壓縮特征空間。PCA的目標(biāo)函數(shù)為最大化投影方差:
from sklearn.decomposition import PCA
pca = PCA(n_components=10)
pca_features = pca.fit_transform(X)
其中,PCA優(yōu)化目標(biāo)函數(shù)為:
研究還構(gòu)建了基于深度神經(jīng)網(wǎng)絡(luò)的流量數(shù)據(jù)自編碼器模型,通過訓(xùn)練自編碼器使其在低維空間中重構(gòu)流量數(shù)據(jù),從而學(xué)習(xí)高階的非線性流量特征表達(dá):
from keras.layers import Input,Dense
from keras.models import Model
# 自編碼器模型
input_layer = Input(shape=(28,))
encoded = Dense(14,activation='relu')(input_layer)
decoded = Dense(28,activation='sigmoid')(encoded)
autoencoder = Model(input_layer,decoded)
autoencoder.compile(optimizer='adam',loss='binary_crossentropy')
# 提取編碼層作為特征
encoder = Model(input_layer,encoded)
encoded_features = encoder.predict(X)
在獲取經(jīng)過預(yù)處理的網(wǎng)絡(luò)流量數(shù)據(jù)集后,研究選擇了支持向量機(jī)(SVM)和隨機(jī)森林2種機(jī)器學(xué)習(xí)算法進(jìn)行建模,以實(shí)現(xiàn)DDoS攻擊流量的自動(dòng)識(shí)別。SVM是一種廣泛采用的監(jiān)督學(xué)習(xí)方法,其基本模型定義為f(x)=sign(wTx+b),通過學(xué)習(xí)最大間隔超平面實(shí)現(xiàn)分類分隔,從而可應(yīng)用于不同的模式識(shí)別與分類問題。SVM的學(xué)習(xí)可形式化為一個(gè)凸二次規(guī)劃問題:
這里C是正則化參數(shù)。通過引入核函數(shù),SVM可以學(xué)習(xí)復(fù)雜的非線性決策邊界,然后使用Python的scikit-learn庫構(gòu)建SVM模型:
from sklearn import svm
svm_clf = svm.SVC()
svm_clf.fit(X_train,y_train)
y_pred = svm_clf.predict(X_test)
隨機(jī)森林是一個(gè)包含多個(gè)決策樹的集成模型,通過在訓(xùn)練過程中引入隨機(jī)抽樣和特征采樣,可以有效降低模型的方差,增強(qiáng)模型的泛化性。使用信息熵作為分裂criterion,并選擇最佳的樹數(shù)n_estimators:
rfc = RandomForestClassifier()
n_estimators=[10,50,100,200,500]
grid_rfc=GridSearchCV(rfc,param_grid={'n_estimators':n_estimators})
grid_rfc.fit(X_train,y_train)
best_n = grid_rfc.best_params_['n_estimators']
訓(xùn)練完成的SVM和隨機(jī)森林模型在測試集上進(jìn)行性能評(píng)估,選擇最優(yōu)模型用于DDoS攻擊識(shí)別。
3.4.1 實(shí)驗(yàn)數(shù)據(jù)集和環(huán)境
在DDoS攻擊流量識(shí)別模型的訓(xùn)練和測試中,使用了公開的UNSW-NB15數(shù)據(jù)集。UNSW-NB15數(shù)據(jù)集包含了約175000條網(wǎng)絡(luò)流量記錄,特征包括流量基本屬性、內(nèi)容特征等。從該數(shù)據(jù)集中提取出只包含正常流量和DDoS攻擊流量的子集,做了流聚合和特征提取,最終構(gòu)建了一個(gè)規(guī)模為3萬條樣本、130維特征的實(shí)驗(yàn)數(shù)據(jù)集,按比例分為訓(xùn)練集和測試集。
考慮到機(jī)器學(xué)習(xí)模型對(duì)特征值范圍較為敏感,采用Z-Score方法對(duì)流量特征進(jìn)行標(biāo)準(zhǔn)化處理[2]。實(shí)驗(yàn)環(huán)境基于Python語言和TensorFlow框架,主要依賴庫包括NumPy、Pandas、Scapy、Sklearn、Keras等,模型訓(xùn)練和評(píng)估在具備Tesla V100 GPU的工作站上完成,使用GPU加速了訓(xùn)練過程,軟硬件配置充分。
3.4.2 關(guān)鍵參數(shù)設(shè)置
在訓(xùn)練 SVM 和隨機(jī)森林模型時(shí),通過Grid Search方法遍歷不同參數(shù)組合,分析了模型在驗(yàn)證集上的性能,調(diào)優(yōu)了一些關(guān)鍵超參數(shù),具體設(shè)置如表1—2所示。
表1 SVM模型參數(shù)
表2 隨機(jī)森林模型參數(shù)
其中,SVM的正則化參數(shù)C用于控制分類誤差與模型復(fù)雜度之間的權(quán)衡;核函數(shù)kernel選擇RBF以核擬合復(fù)雜決策邊界;gamma參數(shù)影響RBF核的解析能力。隨機(jī)森林中,n_estimators表示森林中決策樹的數(shù)量;max_depth控制單棵樹的最大深度;min_samples_split和min_samples_leaf表示節(jié)點(diǎn)分裂所需的最小樣本數(shù)。
3.4.3 實(shí)驗(yàn)結(jié)果及性能評(píng)估
為全面評(píng)估所構(gòu)建的支持向量機(jī)模型和隨機(jī)森林模型在DDoS攻擊流量檢測應(yīng)用上的效果,采用多項(xiàng)關(guān)鍵指標(biāo)對(duì)兩種模型在測試集上的性能進(jìn)行比較分析。主要考量了精確率、召回率、F1指標(biāo)以及ROC曲線下方面積AUC 4個(gè)指標(biāo)[3],這些指標(biāo)從不同角度反映了模型的準(zhǔn)確性和泛化性能,如表3所示。
表3 SVM和隨機(jī)森林在測試集上的性能
從定量結(jié)果可以看出,隨機(jī)森林模型的整體表現(xiàn)要略優(yōu)于支持向量機(jī)模型,其中隨機(jī)森林在測試集上取得了92.6%的高精確率,召回率也達(dá)到90.7%,F1得分為91.6%,AUC指標(biāo)達(dá)到0.97,支持向量機(jī)的各項(xiàng)指標(biāo)也均在89%以上的較優(yōu)水平。若從識(shí)別不同類型DDoS攻擊的角度進(jìn)行分析,隨機(jī)森林同樣顯示了更好地多類泛化能力,如表4所示。
表4 模型在不同攻擊類型上的檢測率
在SYN洪水攻擊、UDP洪水攻擊和ACK洪水攻擊3種典型DDoS攻擊場景上的檢測率也都高于支持向量機(jī)模型,尤其在UDP洪水攻擊上的識(shí)別率最高,可達(dá)92.3%。綜合以上定量結(jié)果可以發(fā)現(xiàn),所構(gòu)建的集成隨機(jī)森林模型不僅整體DDoS攻擊流量檢測精確率和召回率超過90%,不同類別的具體攻擊檢測率也在86%以上,已經(jīng)達(dá)到了較高的性能水平。
機(jī)器學(xué)習(xí)技術(shù)在網(wǎng)絡(luò)安全領(lǐng)域具有廣闊的應(yīng)用前景。實(shí)驗(yàn)結(jié)果顯示,經(jīng)過調(diào)參優(yōu)化的集成隨機(jī)森林模型達(dá)到了90%以上的總體檢測精確率,不同DDoS攻擊類型的識(shí)別率也均在86%以上。當(dāng)然,模型對(duì)新增未知攻擊類型的泛化能力還有待提高,后續(xù)工作的一個(gè)重點(diǎn)方向是繼續(xù)擴(kuò)充訓(xùn)練集樣本量和種類,以涵蓋更多DDoS攻擊模式,并研究模型集成的方式來增強(qiáng)檢測的魯棒性,實(shí)際應(yīng)用中還需要考慮算法的訓(xùn)練效率和檢測速度等方面的優(yōu)化,以及不同網(wǎng)絡(luò)環(huán)境的適配問題。