近年來,電力信息安全事故頻發(fā),電力作為關(guān)乎國計民生的重要基礎(chǔ)設(shè)施,一直以來都是網(wǎng)絡(luò)攻擊的重點對象,極易成為網(wǎng)絡(luò)戰(zhàn)的首要目標(biāo)。烏克蘭大停電事故也進一步印證了網(wǎng)絡(luò)攻擊已成為破壞電力等國家關(guān)鍵基礎(chǔ)設(shè)施的新型武器。
電力監(jiān)控系統(tǒng)的信息安全建設(shè),已經(jīng)從原來的只考慮網(wǎng)絡(luò)邊界的“十六字方針”(橫向隔離、縱向認證、安全分區(qū)、網(wǎng)絡(luò)專用)過渡到電力監(jiān)控系統(tǒng)內(nèi)部。盡管電力監(jiān)控系統(tǒng)采用專網(wǎng)專用的形式,但是監(jiān)控專用網(wǎng)絡(luò)中一旦有設(shè)備或計算機被黑客攻陷,極易在專用網(wǎng)絡(luò)環(huán)境下傳播,導(dǎo)致產(chǎn)生網(wǎng)絡(luò)安全問題。
在軌道交通網(wǎng)絡(luò)信息系統(tǒng)、配電網(wǎng)自動化通信系統(tǒng)和直流控制保護系統(tǒng)中均存在較復(fù)雜的網(wǎng)絡(luò)安全問題。其中,特別是分布式拒絕服務(wù)(distributed denial-of-service, DDoS)攻擊帶來的危害不可小覷,DDoS攻擊的主要目的是消耗攻擊目標(biāo)的計算資源,令網(wǎng)絡(luò)服務(wù)在一段時間內(nèi)不可被訪問,致使服務(wù)癱瘓,在電力監(jiān)控系統(tǒng)中則會導(dǎo)致重要設(shè)備如監(jiān)控后臺無法及時響應(yīng)控制命令,發(fā)生嚴(yán)重電力安全事故。
DDoS攻擊流量大、范圍廣、造成的損失大,已經(jīng)嚴(yán)重威脅電力系統(tǒng)網(wǎng)絡(luò)的安全,因此,如何使用較少的資源實時準(zhǔn)確地檢測出DDoS攻擊是目前一個亟待解決的問題。
本文基于準(zhǔn)確性和實時性要求,提出一種基于防火墻裝置的軟硬件結(jié)合的實時DDoS攻擊檢測方法,硬件負責(zé)采集數(shù)據(jù),軟件負責(zé)檢測和分析,軟硬件各司其職,大大提升了電力監(jiān)控系統(tǒng)內(nèi)DDoS攻擊檢測的準(zhǔn)確性和實時性。
國內(nèi)外針對DDoS攻擊檢測的研究有很多,在電力監(jiān)控系統(tǒng)網(wǎng)絡(luò)環(huán)境和互聯(lián)網(wǎng)環(huán)境下,也有很多方法來檢測DDoS攻擊。但是,相關(guān)文獻的所提方法較少用于電力監(jiān)控系統(tǒng)內(nèi)部。因為這些方法要么計算量太大導(dǎo)致無法做到實時性,要么可以實時檢測但是準(zhǔn)確率較低,無法滿足電力系統(tǒng)對攻擊檢測的實時性和準(zhǔn)確性要求。
為解決上述問題,本文提出一種基于防火墻裝置的軟硬件結(jié)合的實時DDoS攻擊檢測方法。電力監(jiān)控系統(tǒng)中采用的防火墻裝置,一般都擁有可編程特性,本文利用電力監(jiān)控系統(tǒng)防火墻的可編程特性,新增硬件計數(shù)器,通過讀取硬件計數(shù)器對DDoS攻擊進行預(yù)判斷,在疑似發(fā)生DDoS攻擊時,將報文提取至防火墻的軟件層面,并運行機器學(xué)習(xí)模塊對報文數(shù)據(jù)進行檢測,從而實現(xiàn)資源占用低、識別準(zhǔn)確率高的實時DDoS攻擊檢測。
本文基于電力監(jiān)控系統(tǒng)專用防火墻裝置,該裝置用于電力監(jiān)控系統(tǒng)內(nèi)網(wǎng)絡(luò)報文過濾,采用多核CPU作核心處理,同時輔以現(xiàn)場可編程門陣列(field programmable gate array, FPGA),兩者互相配合,以便實現(xiàn)特定的功能。由于CPU與FPGA的結(jié)合,防火墻裝置可以同時編寫軟硬件程序,控制其對報文的處理,實現(xiàn)可編程功能。
因此,本文在防火墻裝置中編寫軟件代碼,在FPGA中運行硬件程序,軟件代碼可以通過對應(yīng)的應(yīng)用程序接口(application programming interface, API)讀取相應(yīng)的硬件計數(shù)器,可以較為方便地在該平臺上實現(xiàn)軟硬件的配合,收發(fā)并分析報文,以及配置規(guī)則等,電力監(jiān)控系統(tǒng)專用防火墻裝置提供了硬件基礎(chǔ),可以實現(xiàn)實時DDoS攻擊檢測。
本文從降低設(shè)備資源使用率、實時性和準(zhǔn)確性出發(fā),提出基于防火墻裝置的軟硬件結(jié)合的實時DDoS攻擊檢測方法,該方法由兩大模塊組成:基于FPGA的實時數(shù)據(jù)采集模塊和基于機器學(xué)習(xí)的攻擊識別模塊。兩大模塊均在防火墻裝置的用戶空間中運行,數(shù)據(jù)采集模塊基于FPGA進行編程,改變報文在防火墻中的流向,同時記錄重要數(shù)據(jù)并保存在寄存器中;攻擊識別模塊提取寄存器值和報文特征值進行在線識別,基于機器學(xué)習(xí)技術(shù)可以高準(zhǔn)確率地檢測出是否存在DDoS攻擊。
2.1 基于FPGA的實時數(shù)據(jù)采集模塊
在對DDoS攻擊的檢測中,實時數(shù)據(jù)采集比較影響網(wǎng)絡(luò)性能,容易造成網(wǎng)絡(luò)堵塞,影響防火墻裝置的正常轉(zhuǎn)發(fā),因此采用硬件方式實時感知網(wǎng)絡(luò)狀態(tài)。經(jīng)過對DDoS攻擊的調(diào)研可知,攻擊過程中一般會在短時間內(nèi)有大量不同的源端訪問同一個目的機器,而目的機器無法處理大量的請求,從而導(dǎo)致拒絕服務(wù)。
這樣在鏈路上可以看到接收的報文數(shù)遠大于發(fā)出的報文數(shù),會出現(xiàn)收發(fā)數(shù)量不對等和流量激增等特征,利用這樣的特征可以通過對FPGA編程,從硬件層面上獲取網(wǎng)絡(luò)鏈路狀態(tài)值,同時將數(shù)據(jù)保存在寄存器中,便于軟件程序讀取硬件計數(shù)器,以最小的資源代價提前感知網(wǎng)絡(luò)異常狀態(tài)。
實時采集模塊基于FPGA的可編程特性,將流經(jīng)防火墻的報文在經(jīng)過簡單的計算后保存在相應(yīng)的計數(shù)器中,用戶空間的軟件可以通過硬件API獲取實時采集的數(shù)據(jù)。報文在被FPGA捕獲到后,首先解析用戶定義的關(guān)鍵字信息,隨后根據(jù)關(guān)鍵字提取報文中的相應(yīng)值,然后通過查表模塊將獲取的值更新到對應(yīng)的硬件寄存器中,最后報文由自定義動作模塊轉(zhuǎn)發(fā)到目的地址,硬件原理框圖如圖1所示。
圖1 硬件原理框圖
為了減少軟件和硬件之間的交互時間,本文在收集消息特征時使用字節(jié)速率來幫助實現(xiàn)實時攻擊預(yù)測。一般來說,正常流中的字節(jié)率會比較穩(wěn)定。當(dāng)主機受到DDoS攻擊時,字節(jié)率的差異會在短時間內(nèi)急劇增加,在統(tǒng)計上呈現(xiàn)出一定的突變。
本文基于滑動窗口法進行DDoS攻擊檢測預(yù)判,通過計算相鄰時間段內(nèi)的狀態(tài)及狀態(tài)的變化量推算是否產(chǎn)生異常。采取該方法以窗口的形式計算網(wǎng)絡(luò)中的字節(jié)速率,判斷電力監(jiān)控系統(tǒng)網(wǎng)絡(luò)環(huán)境是否穩(wěn)定無突變等。
綜上所述,基于FPGA的實時數(shù)據(jù)采集模塊能夠?qū)崟r采集數(shù)據(jù),并根據(jù)閾值進行DDoS攻擊檢測預(yù)判,一旦檢測到網(wǎng)絡(luò)異常,將通知DDoS攻擊識別模塊,在該模塊中,利用機器學(xué)習(xí)技術(shù)對DDoS攻擊進行識別。
2.2 基于機器學(xué)習(xí)的攻擊識別模塊
1)基于機器學(xué)習(xí)的DDoS攻擊識別機制
在發(fā)生DDoS攻擊時,網(wǎng)絡(luò)環(huán)境中的某些特征在統(tǒng)計上與正常流量差異較為明顯,如IP數(shù)量、端口數(shù)量、雙向報文數(shù)量等特征值。因此可以利用機器學(xué)習(xí)技術(shù)分析正常流量和異常流量數(shù)據(jù),提取特征值并建模,以識別DDoS攻擊。
基于機器學(xué)習(xí)的DDoS攻擊識別機制首先進行訓(xùn)練和測試,訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的處理如下文所述。訓(xùn)練和測試完成后將得到分類模型,DDoS攻擊識別器加載該分類模型后根據(jù)實時從報文中提取出的特征值進行DDoS攻擊識別。
為了達到實時性,本文選擇以2s為時間單位,在有報文流入該模塊后,分析每個周期的流量情況,提取該周期內(nèi)的特征值,形成特征向量,由訓(xùn)練好的DDoS攻擊識別程序進行分類,以進行實時DDoS攻擊檢測。
2)數(shù)據(jù)集處理
為達到最佳訓(xùn)練效果,本文選用CICIDS2017數(shù)據(jù)集,該數(shù)據(jù)集由標(biāo)記的網(wǎng)絡(luò)流組成,包括完整的數(shù)據(jù)包pcap文件和進行過標(biāo)記的CSV文件等。
本文首先從數(shù)據(jù)集中提取與DDoS攻擊相關(guān)的報文和相應(yīng)的CSV文件,根據(jù)已知的DDoS攻擊的發(fā)生時間和攻擊者與受害者IP等信息,對不同的記錄進行標(biāo)記,將正常記錄標(biāo)記為0,DDoS攻擊記錄標(biāo)記為1,提取出正常記錄約9.0萬條,攻擊記錄約13.0萬條,共約22.0萬條。
隨后對數(shù)據(jù)集進行隨機劃分,按照9:1的比例將數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,數(shù)據(jù)集劃分結(jié)果見表1。
表1 數(shù)據(jù)集劃分結(jié)果
3)特征選擇與分類器
特征選擇指的是在特征向量中選擇出那些優(yōu)秀的特征,組成新的、更精簡的特征向量的過程。它在高維數(shù)據(jù)分析中十分常用,可以剔除冗余和無關(guān)的特征,提升分類器的性能。
本文在選擇特征時基于協(xié)議分析和流量模型分析等兩大類方法,泛化性較好。本文采用封裝的特征選擇方法,其核心思想是將子集的選擇視為一個搜索優(yōu)化問題,生成不同的組合,對這些組合進行評估,并與其他組合進行比較。
在特征選擇的過程中,采用的具體算法為遞歸消除特征法。首先隨機構(gòu)建模型,然后選出最差的特征,把選出來的特征剔除,在剩余的特征中重復(fù)這個過程,直至遍歷完所有的特征值。該特征選擇法使用比較簡單,可以面向分類器算法進行優(yōu)化,但由于存在龐大的搜索空間,因此可能具有不穩(wěn)定性,需要通過知識儲備預(yù)先定義啟發(fā)式策略,因此本文在選擇特征的過程中,同時考慮了Karimazad的建議,最終選擇表2中的11個特征值進行DDoS
表2 DDoS攻擊檢測算法特征值
攻擊識別和分類。其中,8個特征值為計數(shù)特征值,可直接從防火墻設(shè)備上的硬件計數(shù)器獲取,3個特征值為計算特征值,需要在防火墻軟件層進行簡單計算。
分類器作用是在標(biāo)記好類別的訓(xùn)練數(shù)據(jù)基礎(chǔ)上判斷一個新的觀察樣本所屬的類別。針對DDoS攻擊識別,分類器依據(jù)的學(xué)習(xí)方式為監(jiān)督學(xué)習(xí),每個訓(xùn)練樣本包括訓(xùn)練樣本的特征和相對應(yīng)的標(biāo)簽。
本文選取支持向量機(support vector machine, SVM)分類算法,利用支持向量機建立的分類器能夠同時最小化經(jīng)驗誤差與最大化幾何邊緣區(qū),提高查準(zhǔn)率和查全率。軟件選擇開源的支持向量機的庫LibSVM。
2.3 軟硬件結(jié)合的DDoS攻擊檢測原型系統(tǒng)
為驗證所提的DDoS攻擊檢測算法能夠低能耗、高準(zhǔn)確率地檢測出DDoS攻擊,在電力監(jiān)控系統(tǒng)防火墻裝置中編寫軟硬件代碼,根據(jù)2.1節(jié)和2.2節(jié)中的算法實現(xiàn)了DDoS攻擊檢測原型系統(tǒng),原型系統(tǒng)運行在該防火墻上。
原型系統(tǒng)由三個模塊組成:FPGA模塊、硬件感知模塊和在線識別模塊。首先根據(jù)需求對FPGA進行編程,使電力監(jiān)控系統(tǒng)防火墻設(shè)備在轉(zhuǎn)發(fā)報文的同時可以進行計數(shù),并提供2.2節(jié)中要求的計數(shù)型特征值。
硬件感知模塊定期讀取防火墻的硬件計數(shù)器,根據(jù)閾值判斷網(wǎng)絡(luò)是否波動。在線識別模塊在硬件感知模塊識別出異常的網(wǎng)絡(luò)波動后啟動,提取報文的特征值,并使用訓(xùn)練好的分類器模型識別是否為DDoS攻擊。原型系統(tǒng)的流程如圖2所示。
3.1 實驗環(huán)境
采用變電站網(wǎng)絡(luò)交換機作為網(wǎng)絡(luò)交換設(shè)備,電力系統(tǒng)專用防火墻中安裝DDoS攻擊檢測原型系統(tǒng),PC作為終端,針對服務(wù)器進行DDoS攻擊檢測實驗。所有機器均直接或間接地連接在變電站網(wǎng)絡(luò)交換機上,彼此可以互相訪問,其中服務(wù)器與PC之間安裝有電力監(jiān)控系統(tǒng)防火墻。實驗拓撲如圖3所示。
在PC1和PC2上,運行DDoS攻擊流量產(chǎn)生軟件Hyenae,用于模擬對服務(wù)器進行DDoS攻擊,PC和服務(wù)器上均運行變電站站內(nèi)通信常用程序等以模擬正常流量。PC2除了運行以上程序外,還用作電力監(jiān)控系統(tǒng)防火墻的控制器,用于配置流表、下發(fā)規(guī)則、離線訓(xùn)練分類器、下發(fā)分類器模型及控制DDoS攻擊產(chǎn)生器等。在電力監(jiān)控系統(tǒng)防火墻中,運行2.3節(jié)中實現(xiàn)的軟硬件結(jié)合的DDoS攻擊檢測原型系統(tǒng)。
圖2 原型系統(tǒng)流程
圖3 實驗拓撲
3.2 實驗內(nèi)容
首先通過Hyenae程序產(chǎn)生大量的正常流量和TCP、UDP、ICMP等攻擊流量,在防火墻中采集報文,每隔單位時間匯總至控制器處,本次數(shù)據(jù)采集共運行2天,每一種類型(Normal、TCP、UDP、ICMP)各24h,每隔2s采集一次數(shù)據(jù),共采集17.28萬條數(shù)據(jù),然后在控制器上訓(xùn)練SVM分類器,并采用Radial Basis核函數(shù)進行驗證。訓(xùn)練完成后控制器將分類模型更新至電力監(jiān)控系統(tǒng)防火墻裝置的配置中。
實驗開始后,在兩臺機器之間正常通信,將某電力監(jiān)控系統(tǒng)站內(nèi)報文進行還原和重放,分類結(jié)果一直顯示為0(即沒有攻擊產(chǎn)生),在Hyenae產(chǎn)生攻擊流量(TCP SYN Flood)后,分類結(jié)果顯示為1(即有TCP SYN Flood攻擊),當(dāng)調(diào)整DDoS攻擊類型后,如進行UDP Flood攻擊時,電力監(jiān)控系統(tǒng)防火墻裝置中的分類程序顯示結(jié)果為相應(yīng)的代碼。
3.3 實驗結(jié)果分析
在發(fā)起攻擊后,本實驗監(jiān)控DDoS攻擊檢測和識別的實時性能。實驗發(fā)現(xiàn),識別系統(tǒng)可以在1~2個周期內(nèi),即2s內(nèi)確定DDoS攻擊類型,并通過控制臺打印攻擊類型。每種攻擊類型測試10min,計算周期2s,計算識別準(zhǔn)確率。表3為實時DDoS攻擊識別程序?qū)Σ煌愋凸舻淖R別準(zhǔn)確率。
表3 不同DDoS攻擊的識別準(zhǔn)確率
由表3可見,該方法能夠準(zhǔn)確識別TCP、UDP、ICMP三種不同類型的DDoS攻擊,其中對TCP SYN Flood攻擊的識別準(zhǔn)確率最高,達到96.3%。不同算法的對比見表4,由表4可知,與Karimazad提出的RBF神經(jīng)網(wǎng)絡(luò)算法和Subbulakshmi提出的EMC-SVM算法相比,本文提出的基于硬件感知器和在線SVM的DDoS攻擊檢測有更高的準(zhǔn)確率,較高的準(zhǔn)確率為后續(xù)的DDoS攻擊流量的清洗提供了前提。
表4 不同攻擊檢測算法的準(zhǔn)確率對比
同時注意到,在線識別對防火墻裝置的系統(tǒng)資源消耗較大,所以本文采用硬件感知結(jié)合機器學(xué)習(xí)在線識別的方式對DDoS攻擊進行檢測,降低了資源使用率。實驗中對防火墻裝置的資源使用率進行了監(jiān)控,其在識別期間的CPU和RAM的使用率變化曲線如圖4所示。
由圖4可見,系統(tǒng)運行時CPU只使用了30%左右,當(dāng)開始在線識別DDoS攻擊后,CPU使用率最高也只是在35%左右,而RAM則一直穩(wěn)定在42%~48%之間。由此可見,本文提出的實時DDoS攻擊檢測方法具有占用系統(tǒng)資源小的特點。
圖4 防火墻裝置的資源使用率
本文提出了一種基于電力監(jiān)控系統(tǒng)防火墻裝置的軟硬件結(jié)合的實時DDoS攻擊檢測方法,該方法采用軟硬件結(jié)合的方式,首先利用硬件計數(shù)器感知網(wǎng)絡(luò)狀態(tài),占用資源較少,在檢測到可能的網(wǎng)絡(luò)異常后,使用機器學(xué)習(xí)技術(shù)在線識別DDoS攻擊。
由于電力監(jiān)控系統(tǒng)防火墻裝置可以從硬件層面提供大多數(shù)特征值,因而大大減少了計算量,達到實時檢測的效果,且準(zhǔn)確率較高。實驗表明,本文所提方法可以有效地進行實時DDoS攻擊檢測。
本文編自2022年第2期《電氣技術(shù)》,論文標(biāo)題為“電力監(jiān)控系統(tǒng)實時DDoS攻擊檢測方法”,作者為繆海飛、曹翔 等。