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