韓鳳董,宗學軍*,何戡,連蓮
(1.沈陽化工大學信息工程學院,沈陽 110142;2.遼寧省石油化工行業(yè)信息安全重點實驗室,沈陽 110142)
計算機技術高速發(fā)展的現(xiàn)代,網(wǎng)絡環(huán)境呈現(xiàn)復雜化和多變化的發(fā)展趨勢,這也導致了網(wǎng)絡安全事件的多發(fā)[1]。網(wǎng)絡環(huán)境中的流量和告警日志是進行網(wǎng)絡安全分析的主要依據(jù),對流量和告警日志的統(tǒng)計分析及數(shù)據(jù)挖掘則成為了分析網(wǎng)絡動態(tài)的重要方法[2]。另外,隨著互聯(lián)網(wǎng)時代的加速發(fā)展,網(wǎng)絡流量呈現(xiàn)指數(shù)級增長,通過建立網(wǎng)絡數(shù)據(jù)流量的主動分類模型,能為網(wǎng)絡監(jiān)管、故障診斷、態(tài)勢感知等領域提供重要的評估和預測手段[3],提升對網(wǎng)絡環(huán)境和網(wǎng)絡資產(chǎn)的保護能力。
近年來許多學者在提升數(shù)據(jù)分類準確率方面提出了方法。劉云等[4]通過使用代價約束算法自動提取少數(shù)樣本的特征矩陣,提高了入侵檢測算法對于未知攻擊的識別精度。伍德軍等[5]將集成學習引入入侵檢測,提高了攻擊數(shù)據(jù)的檢測精度。Fu等[6]為了提高模型的分類準確率和泛化性,提出一種梯度增強的特征融合技術,將特征融合和特征增強相結(jié)合,使得模型能更關注與分類相關的有效特征。Panigrahi等[7]使用基于混合決策表和樸素貝葉斯技術構(gòu)建了基于簽名的入侵檢測分類模型,實驗獲得了較好的分類結(jié)果。Alazab等[8]使用飛蛾撲火優(yōu)化算法為入侵檢測系統(tǒng)生成有效的特征子集,在決策樹模型上進行了驗證,獲得了較好的分類效果。Jiang等[9]將粒子群優(yōu)化算法與極端梯度提升樹 (extreme gradient boosting,XGBoost)結(jié)合,通過優(yōu)化XGBoost分類模型的參數(shù),在NSL-KDD網(wǎng)絡安全數(shù)據(jù)集上取得了較好的分類結(jié)果。
雖然現(xiàn)有的很多方法能夠提升數(shù)據(jù)分類準確率,但較少關注樣本不平衡的問題。在真實的網(wǎng)絡環(huán)境中,網(wǎng)絡數(shù)據(jù)流多呈現(xiàn)高維度和類別不平衡的狀態(tài),正常數(shù)據(jù)流量遠遠大于異常數(shù)據(jù)流量,因此對于少數(shù)類異常流量數(shù)據(jù)的識別與分類更具有價值。并且,現(xiàn)有模型在數(shù)據(jù)類不平衡狀態(tài)下特征學習效果及分類準確率依舊不是很理想,無法對攻擊類型進行有效的檢測。
針對網(wǎng)絡安全數(shù)據(jù)樣本不平衡的缺點,現(xiàn)將不平衡數(shù)據(jù)集的預處理與機器學習模型的優(yōu)化相結(jié)合,提出一種改進SMOTE+GA-XGBoost機器學習數(shù)據(jù)分類方法。利用改進SMOTE(synthetic minoritye over-sampling technique)對少數(shù)類樣本過采樣,并對多數(shù)類樣本隨機欠采樣,從而實現(xiàn)了樣本再平衡;為增加模型特征學習的擬合度,將遺傳算法 (genetic algorithm,GA)與XGBoost結(jié)合。實驗結(jié)果表明,本文方法在網(wǎng)絡安全不平衡數(shù)據(jù)集上擁有較好的機器學習性能以及分類準確率。
機器學習算法的應用,本質(zhì)上是對數(shù)據(jù)執(zhí)行分類和回歸的過程,模型性能的提升依賴于數(shù)據(jù)端的處理和模型端的優(yōu)化。通過數(shù)據(jù)端改進SMOTE插值和隨機欠采樣實驗樣本再平衡,模型端采用GA-XGBoost組合優(yōu)化模型增加擬合度,具體原理解析如下。
1.1.1 SMOTE算法原理
SMOTE算法是一種針對不平衡數(shù)據(jù)中少數(shù)類樣本過采樣技術[10],區(qū)別于傳統(tǒng)的隨機過采樣來增加樣本,SMOTE通過數(shù)據(jù)點之間的線性插值“人為”制造出更多的少數(shù)類樣本,從而平衡數(shù)據(jù)集來提升模型的學習能力。其計算表達式為
Snew=S+λ(Si-S),λ∈(0,1)
(1)
式(1)中:Snew表示新生成的樣本;S表示當前取樣的樣本點;Si表示S樣本點周圍K個近鄰中的第i個樣本,通過式(1)在樣本點之間進行線性插值,即可為模型學習少數(shù)類樣本提供更多的數(shù)據(jù)特征。
1.1.2 LOF-SMOTE算法
傳統(tǒng)SMOTE算法在最近鄰插值點的選擇上存在一定的盲目性,一旦選中噪聲點與異常離群點進行插值操作,則會產(chǎn)生更多的冗余樣本,造成樣本邊界的模糊化,降低后續(xù)模型的學習能力。
局部離群因子(local outlier factor,LOF)能夠科學地度量樣本之間的離散性,是一種密度計量方法[11]。為增進SMOTE插值的有效性,應用LOF計算樣本點與其領域密度的比值,從而選擇合適的SMOTE插值點。該方法通過對樣本點離群值的有效量化,避免對噪聲點和離群度較高的點進行插值處理,減少了冗余數(shù)據(jù)的產(chǎn)生,從而有效保證了生成樣本的質(zhì)量。LOF-SMOTE基本原理,如圖1所示。
圖1 改進SMOTE插值原理圖Fig.1 Schematic diagram of improved SMOTE interpolation
LOF主要計算步驟如下所示。
(2)
(2)則可以得到計算每個樣本的局部可達密度表達式為
(3)
(3)最終可得到每個樣本的局部離群因子量化值表達式為
(4)
通過樣本點離群值的科學量化,表現(xiàn)了樣本點與樣本群體之間的密度關系。若樣本點離群度量值值遠大于1,則表示該樣本點為離群點,應避免對該樣本點進行插值處理,從而可以有效篩選可插值點。
1.2.1 遺傳算法原理
遺傳算法是基于模擬生物遺傳和進化的一種全局概率優(yōu)化算法,具有良好的適應能力和全局搜索能力,能夠有效尋找模型的全局最優(yōu)參數(shù)[12]。在遺傳算法中,將j維決策空間向量X用j個Xj=[x1,x2,…,xn]組成的符號串表示。將每一個Xj當作一個可遺傳基因,X則組成了問題可行解空間,所以最優(yōu)化問題的解則是對染色體X的求解過程。
遺傳算法的運算對象為群體M,M由多個個體組成,將第t代迭代群體稱為p(t)。遺傳算法迭代優(yōu)化的過程主要通過群體p(t)的selection(選擇)、crossover(交叉)和mutation(變異)完成,產(chǎn)生群體p(t+1),在迭代過程中不斷輸出相應的fitness(適應度),從而更新群體p(t)。經(jīng)過算法不斷的迭代過程,最終確定較優(yōu)群體以及較優(yōu)擬合度。具體的遺傳算法迭代過程如流程圖2所示。
圖2 遺傳算法迭代原理Fig.2 Iterative principle of genetic algorithm
1.2.2 XGBoost原理
XGBoost算法由Chen等[13]提出,以分類和回歸樹(classification and regression tree,CART)為基礎,被廣泛應用于回歸和分類問題。XGBoost算法目標函數(shù)由損失函數(shù)和正則化兩項組成,表達式為
(5)
(6)
將XGBoost目標函數(shù)由泰勒公式展開,得到一個凸優(yōu)化函數(shù),因此為求出使目標函數(shù)達到最小值的ωj,對ωj求導并令導函數(shù)等于零可得
(7)
(8)
(9)
式(9)中:IL及IR分別表示左、右子樹葉子結(jié)點集合。
1.2.3 融合遺傳算法與XGBoost
融合遺傳算法與XGBoost的分類預測模型流程如圖3所示,其迭代原理如圖4所示。
圖3 GA-XGBoost分類預測模型Fig.3 GA-XGBoost classification prediction model
圖4 GA-XGBoost迭代原理圖Fig.4 GA-XGBoost iteration schematic
XGBoost基礎模型超參數(shù)眾多,人工調(diào)參過程繁瑣。將遺傳算法應用于XGBoost調(diào)參過程,經(jīng)過遺傳算法的不斷迭代優(yōu)化,能夠解決XGBoost模型擬合度較差、特征學習收斂過慢的問題,有效增加模型的全局搜索能力,避免模型陷入局部最優(yōu)。通常設定k為GA迭代的總次數(shù),一次迭代需要的時間復雜度為ε,則至少需要k×ε時間復雜度。
改進SMOTE算法利用過采樣方法解決少數(shù)類樣本數(shù)據(jù)量過少的問題,提升整體樣本的均衡率。將改進SMOTE與GA-XGBoost算法進行組合,從數(shù)據(jù)和模型層面提升了機器學習對于不平衡數(shù)據(jù)的分類和檢測能力。本文模型的整體架構(gòu)主要由預處理模塊、數(shù)據(jù)再平衡模塊、特征學習模塊組成,如圖5所示。
圖5 數(shù)據(jù)分類整體架構(gòu)Fig.5 Overall architecture of data classification
由于原始數(shù)據(jù)存在較多“異構(gòu)”數(shù)據(jù),所以對于原始數(shù)據(jù)的預處理是非常必要的。
為增加實驗的參照性,采用公開的UNSW_NB15數(shù)據(jù)集,該數(shù)據(jù)集是綜合性的網(wǎng)絡入侵數(shù)據(jù)集,挑選的數(shù)據(jù)集中含有175 432條數(shù)據(jù)以及45個維度特征[14-16]。
對數(shù)值型數(shù)據(jù)和字符型數(shù)據(jù)進行數(shù)據(jù)清洗工作,處理缺失值和異常值,保證數(shù)據(jù)的一致性。采用one-hot編碼對字符型數(shù)據(jù)進行預處理,將字符型特征轉(zhuǎn)換為數(shù)字維度特征。為解決數(shù)據(jù)極差較大的問題,增加模型處理性能,對數(shù)據(jù)進行歸一化處理,歸一化公式為
(10)
式(10)中:X為原始數(shù)據(jù)列;Xmin表示原始數(shù)據(jù)列中的最小值;Xmax表示原始數(shù)據(jù)列中的最大值。
為避免處理后數(shù)據(jù)的維度過高,模型陷入維度詛咒(curse of dimensionality)的問題,使用皮爾遜系數(shù)對標簽與數(shù)據(jù)特征進行相關性分析,計算公式為
(11)
式(11)中:cov(X,Y)表示數(shù)據(jù)列X與數(shù)據(jù)列Y樣本之間的協(xié)方差;σX與σY分別表示數(shù)據(jù)列X與數(shù)據(jù)列Y樣本的標準差;μX與μY分別表示數(shù)據(jù)列X與數(shù)據(jù)列Y樣本的平均值;E表示求均值函數(shù)。
根據(jù)統(tǒng)計的皮爾遜相關系數(shù)篩選與標簽相關系數(shù)值超過0.3的特征,達到降維的目的,并且避免了重復特征對于機器學習性能的影響。處理好的數(shù)據(jù)共有81 173條,15個特征維度。經(jīng)數(shù)據(jù)預處理后的數(shù)據(jù)樣本分析表如表1所示。
從表1可知,經(jīng)過預處理后的UNSW_NB15數(shù)據(jù)集存在類別不平衡的問題,類別不平衡會導致分類模型偏向多數(shù)類樣本,降低了少數(shù)類樣本的分類精度,因此需要增加少數(shù)類樣本實現(xiàn)樣本的再平衡。
表1 預處理后樣本分析表Table 1 Sample analysis table after pretreatment
將預處理后的數(shù)據(jù)集劃分為7份訓練集和3份測試集,劃分隨機種子設定為10。訓練集樣本的再平衡如表2所示。
如表2所示,對于樣本量少于300的數(shù)據(jù)進行自身樣本量5倍的改進SMOTE過采樣。為進一步平衡數(shù)據(jù)集,對于樣本量在5 000~20 000的數(shù)據(jù)進行自身數(shù)據(jù)量0.5倍隨機欠采樣,對于樣本量超過20 000的超量樣本進行0.25倍自身數(shù)據(jù)量的隨機欠采樣。
表2 訓練集樣本再平衡Table 2 Training set sample rebalancing
基于參數(shù)重要性原則,挑選XGBoost模型中學習率(learning_rate)、基學習器(n_estimators)、樹最大深度(max_depth)、子采樣比例(subsample)、懲罰項(gamma)這5個參數(shù)作為優(yōu)化對象,在梯度提升樹中,這些參數(shù)對于模型的性能具有重要影響[17]。
針對遺傳算法的參數(shù)設置,編碼方式設置為“BG”(二進制/格雷碼),初始總?cè)簲?shù)(population_size)設定為10,迭代次數(shù)(generations)設定為40,交叉概率(crossover_probability)設定為0.8,變異概率(mutation_probability)設定為0.1。模型使用3折交叉驗證,求解目標為測試集上擬合度較高的函數(shù)參數(shù)。
將再平衡訓練集輸入GA-XGBoost模型進行參數(shù)擬合。為表現(xiàn)擬合效果,輸出遺傳算法優(yōu)化下XGBoost模型在再平衡訓練集上的擬合情況如圖6所示。
圖6 模型在訓練集上擬合情況Fig.6 Fitness on training set
從圖6可知經(jīng)過遺傳算法的迭代優(yōu)化,模型在再平衡訓練集上漸趨波蕩性穩(wěn)定。列出XGBoost優(yōu)化后的參數(shù)與原默認參數(shù)的對比表如表3所示。
表3中各個參數(shù)的作用在于,learning_rate控制迭代后更新權(quán)重的步長避免欠擬合和過擬合,n_estimators默認為“gbtree”(樹模型),max_depth控制樹最大深度從而限制模型過擬合,subsample通過子采樣率限制模型過擬合,gamma控制節(jié)點斐裂最小損失函數(shù)下降值限制模型過擬合。從表3可知XGBoost參數(shù)的變動較大,默認值顯然不滿足對數(shù)據(jù)精確的需求,表明經(jīng)過遺傳算法優(yōu)化的XGBoost模型擁有更好的擬合參數(shù)。
表3 XGBoost默認參數(shù)與優(yōu)化參數(shù)對比Table 3 Comparison of XGBoost default parameters and optimization parameters
3.2.1 評估標準
以準確率(accuracy,ACC)、召回率(recall)、查準率(precision)、F1-score以及誤報率((false negative rate,F(xiàn)NR)、漏報率(false positive rate,F(xiàn)PR)作為本文模型的評價標準。在對模型進行評估時,通常將模型的輸出分為4類:真正常類(true positive,TP) 、真異常類(true negative,TN) 、假正常類(false positive,F(xiàn)P)和假異常類(false negative,F(xiàn)N)。則accuracy、recall、precision以及F1-score計算公式為
(12)
(13)
(14)
(15)
對于機器學習分類效果而言,正確率、召回率、查準率、F1-score越大,則分類效果越好。與召回率和查準率相對應的便是漏報率(FNR)和誤報率(FPR),計算公式為
(16)
(17)
漏報率和誤報率越低,則說明模型對于網(wǎng)絡安全數(shù)據(jù)集的分類效果越好及可靠性越高。
3.2.2 評估結(jié)果分析
通過在再平衡訓練集上的擬合,將測試集上的分類結(jié)果作為各個模型對比的依據(jù)。為控制變量,本文所提其他相關模型的訓練集均為降維后未進行改動的訓練集。
將本文模型與常用多層感知機(multi-layer perceptron,MLP),K近鄰(K-nearest neighbor,KNN)、決策樹、隨機森林 (random forest,RF)以及原XGBoost模型進行比較分析[18],輸出各模型對于各標簽數(shù)據(jù)的查準率如表4所示。
表4 不同模型查準率對比Table 4 Comparison of accuracy of different models
從表4可知,本文所提出的改進SMOTE+GA-XGBoost模型相對于其他模型對于各標簽查準率最高,性能最平穩(wěn)。但通過表4也可知,對于進行改進SMOTE插值的樣本數(shù)據(jù),只有標簽8的準確率顯著提升,而標簽1的查準率相對于原XGBoost模型依然為0,說明對于標簽1的分類效果并沒有提升,根本原因還是在于樣本量過少的影響,可見現(xiàn)實情況下,大量的數(shù)據(jù)樣本依然是分類器工作的必然要求。
假設每一個類別數(shù)據(jù)都是公平存在的,設定總體F1-score和recall均為各個樣本相應計算值和的均值,則輸出各模型的平均召回率、平均F1-score、平均誤報率、平均漏報率以及整體準確率如表5所示。從表5可知,本文提出的改進SMOTE+GA-XGBoost模型在測試集上的平均召回率、F1-score及 總的模型準確率與常用機器算法相比都為最高,并且擁有最小的平均漏報率和平均誤報率。
表5 各模型召回率、F1-score、準確率對比Table 5 Comparison ofrecall,F1-score and accuracy
另外,對比本文方法與SMOTE+XGBoost、隨機欠采樣(random undersampling,RS)+XGBoost等不平衡數(shù)據(jù)分類方法的機器學習性能,如表6所示。從表6可知,本文方法擁有較好的不平衡數(shù)據(jù)分類性能。
表6 不平衡數(shù)據(jù)分類模型對比Table 6 Comparison of unbalanced data classification models
綜上,通過對比常用機器學習分類算法及相關不平衡數(shù)據(jù)分類方法,表明本文模型對于網(wǎng)絡安全不平衡數(shù)據(jù)集的分類效果較好,綜合性能較優(yōu)。
網(wǎng)絡維護人員對網(wǎng)絡環(huán)境中的數(shù)據(jù)流信息進行分析時,需要對數(shù)據(jù)包的特征對象加強甄別以捕獲網(wǎng)絡威脅[21]。XGBoost作為一種極端梯度提升樹,能夠有效對特征進行重要性評估,輸出訓練集特征重要性得分排序性得分圖如圖7所示。
圖7 各特征重要性得分Fig.7 Importance score of each feature
圖7中,將特征在提升樹中作為分裂節(jié)點的次數(shù)作為評價標準,剔除得分為0的特征。由特征得分圖7可知,再平衡訓練集中存在10個特征作用于模型最后的準確分類。其中synack(TCP的SYN和SYN_ACK數(shù)據(jù)包之間的時間)、tcprtt(TCP的“synack”和“ackdat”之和)以及ackdat(SYN_ACK和TCP的ACK數(shù)據(jù)包之間的時間)為辨別數(shù)據(jù)為異常攻擊數(shù)據(jù)時最重要的3個特征。在通信過程中,這3個特征為TCP/IP協(xié)議簇正常工作的重要表現(xiàn)形式,表明TCP/IP協(xié)議簇對網(wǎng)絡安全運行的重要性。
模型學習能力,一定程度上也受到特征數(shù)量的影響,為進一步確定特征子集數(shù)量對于總體準確率的影響,對特征重要性進行排序,設置閾值比例輸入模型,輸出總體準確率變化如圖8所示。
圖8 不同子特征數(shù)量準確率Fig.8 Accuracy of number of different sub features
從圖8可知,隨著特征子集的增加,模型整體準確率是逐漸提高直至穩(wěn)定,收斂速度隨著特征子集的增多逐步放緩。在特征子集數(shù)量為8時,模型整體準確率達到了初始平衡點,表明這8個特征對網(wǎng)絡數(shù)據(jù)流的正確分類起到了重要作用。
通過圖8曲線的收斂速度,進一步將這8個特征劃分為4個關鍵特征和4個重要特征,即synack、tcprtt、ackdat、attcak_cat_Exploits(漏洞攻擊)為關鍵特征,attcak_cat_Analysis(分析攻擊)、attcak_cat_Dos(拒絕服務攻擊)、attcak_cat_Normal(正常數(shù)據(jù)攻擊)、service_dns(域名解析服務)為重要特征。關鍵特征對于網(wǎng)絡數(shù)據(jù)流的正確分類具有關鍵作用,進一步驗證了上述特征重要性得分的正確性,而attcak_cat_Exploits為操作系統(tǒng)自身的漏洞所導致的攻擊,所以操作系統(tǒng)本身的漏洞處理以及TCP/IP協(xié)議簇的穩(wěn)定運行是網(wǎng)絡安全運行的關鍵因素。重要特征則是外部鏈接或者攻擊行為所產(chǎn)生的數(shù)據(jù)流信息特征,造成操作系統(tǒng)權(quán)限的丟失及破壞正常的DNS(域名解析)服務等,這表明穩(wěn)固正常的系統(tǒng)服務以及增加網(wǎng)絡防護也至關重要。
為進一步分析本文算法模型在實際場景數(shù)據(jù)下應用的有效性,將本文模型與遼寧省石油化工行業(yè)信息安全重點實驗室的工業(yè)信息安全平臺結(jié)合。通過在工業(yè)安全平臺控制站中引入木馬程序(該木馬程序通過收集主機注冊表和漏洞信息以及復制重要工控配置文件以數(shù)據(jù)流的形式在網(wǎng)絡環(huán)境傳播),使用wireshark監(jiān)聽內(nèi)存和網(wǎng)絡環(huán)境中的數(shù)據(jù)包信息,工業(yè)信息安全平臺如圖9所示。
圖9 工業(yè)信息安全平臺Fig.9 Industrial information security simulation platform
在該木馬程序運行時間內(nèi)總計收集1 000條數(shù)據(jù),經(jīng)過特征工程處理后,其中234 條數(shù)據(jù)標記為異常數(shù)據(jù),剩余的766條數(shù)據(jù)標記為正常數(shù)據(jù),正常數(shù)據(jù)標簽為0,異常數(shù)據(jù)標簽為1。將數(shù)據(jù)集劃分7份為訓練集,3份為測試集,計算相應的Acc、F1-score如表7所示。
表7 實際場景應用結(jié)果分析Table 7 Analysis of application results in actual scenarios
從表7可知,本文的改進SMOTE+GA-XGBoost模型在實際的二分類數(shù)據(jù)下依然能夠有效增加模型對于異常數(shù)據(jù)的檢測率,有較高的單項檢測率以及F1-score,改善了模型對于少數(shù)類樣本數(shù)據(jù)的檢測效果。
針對網(wǎng)絡安全數(shù)據(jù)集多存在樣本不平衡、特征復雜度較高的問題,提出一種改進SMOTE+GA-XGBoost不平衡數(shù)據(jù)分類方法?;赨NSW_NB15數(shù)據(jù)集進行樣本多分類實驗,結(jié)果表明,對比不同的機器學習分類方法,本文模型擁有較高的分類準確率(97.4%)和平均F1-score(68.8%),符合不平衡網(wǎng)絡安全數(shù)據(jù)分類的要求。使用本實驗室工業(yè)信息安全平臺提取的數(shù)據(jù)集進行二分類驗證,模型依然有較高的分類準確率(99%)及平均F1-score(98.6%),證明了本文模型的有效性和可行性。另外,通過特征子集提取的研究,得出了影響網(wǎng)絡數(shù)據(jù)流正確分類的重要表現(xiàn)特征,這為網(wǎng)絡安全運維人員對網(wǎng)絡環(huán)境的監(jiān)控和解決網(wǎng)安安全事件提供了新的方向與途徑。
雖然本文模型提升了整體分類準確率,但對于樣本中某些少數(shù)類的識別還未達到理想結(jié)果,因此為不平衡網(wǎng)絡安全數(shù)據(jù)樣本建立更為準確的分類模型,進一步總結(jié)攻擊行為的規(guī)律將是下一步需要研究的工作。