吳金宇, 陶文偉, 吳昊, 陳剛
(1.中國南方電網有限責任公司,廣東 廣州 510623;2.中國南方電網數字電網研究院有限公司,廣東 廣州 510555)
針對工控系統服務安全運行的問題[1-3],國內外許多學者發表了研究方案。文獻[4]公開了一種基于K最近鄰分類算法的入侵檢測模型,利用對所有流量數據或惡意程序進行鄰近分類,達到快速處理提高整體工控系統的安全性能,然而該方法所耗時間較長、效率較低。文獻[5]提出了一種基于卷積神經網絡的入侵檢測模型,采用SVM支持向量機算法與K-means聚類算法結合使用,該方法對實時數據處理的效果很好,且效率有很大提高,但是面對多維異構數據無法進行特征提取,且聚類算法容易破壞數據之間的關聯性。
總結上述技術的不足,本文研究出新型狀態監測防火墻和CNN-Focal入侵檢測模型,以實現工控系統安全運行。
工控系統是各類工業生產控制系統(ICS)的簡稱,其主要任務是對各種國家的基礎設施或者工業活動進行監測控制和數據采集[6],典型的工業控制系統層次架構如圖1所示。
從圖1可以看出,一個工控系統層次架構有三層,分別是企業管理層、過程監控層和現場設備層。其中企業管理層主要是上層管理人員對整個工控系統的管理應用以及安全正常運維工作[7]。在整個工控系統中,設立工業防火墻是必要工作,這種高新技術需要管理工作站相關程序研發部門進行實施。過程監控層主要是對工作現場的設備調試和設備運行進行實時監控,例如流量數據采集系統、可編程邏輯控制器(PLC)以及各種無線通信設備。現場設備層是基礎,每天工業車間會產生大量數據,需要進行管理,是數據來源所在[8]。

圖1 典型的工業控制系統層次架構
隨著信息化和工業化的進一步融合,使智能電網工控系統遭到了比傳統攻擊更強、更大的破壞,如圖2所示。
圖2是一次對電網的典型攻擊過程,攻擊者借助病毒、惡意代碼和漏洞,通過網絡對目標電網控制系統進行攻擊,進而影響電力的配送。

圖2 攻擊者對電網工控系統攻擊示意圖
入侵檢測技術(IDS)是一種安全防護技術,屬于工控系統中安全運行體系的起始部分,可以對網絡的狀態和系統的使用情況進行監控。這種防護技術在工控系統中經常使用,檢測到有危險的行為后會發出預警。本文研發出一種新型的狀態監測防火墻,流量數據傳輸流程如圖3所示。

圖3 流量數據傳輸流程
狀態監測防火墻是對外部路由器端得到的流量數據進行監測篩選的防御手段。當收到安全信息流量數據包時會進行狀態監測,判斷其是否為惡意信息,正常則進入到相對應的板塊。然而在設立狀態監測防火墻的同時,由于檢測閾值是靜態的,在長時間段的工程中會出現網絡遲滯問題,因此需要對狀態監測防火墻內部的檢測算法進行優化。
2.1.1 動態閾值檢測算法
算法過程為:

(1)
式中:α為流量數據量大于流量數據權值的比例參數。根據時間平移加權,得出流量數據權值與流量數據量的關系式為:
(2)
式中:β為加權比例系數。在實際應用中,單采用式(1)、式(2)得出的結果存在很大的誤差,因此本文引入布爾型變量概念來判定工控系統是否遭到攻擊,布爾型變量h的條件判定公式為:
(3)
在以上式子的基礎上,設立動態閾值k,在滿足式(3)時布爾型變量h與動態閾值k的判別條件為:
(4)
然而,動態閾值k也并非隨意取值,k的值太大反而會影響工控系統安全性能。
2.1.2 Cubic擁塞控制算法
本文采用Cubic擁塞控制算法對狀態監測防火墻進行進一步的優化。Cubic算法與BIC算法非常相似,均屬于擁塞控制算法類型,其核心原理在于通過二進制搜索動態閾值處流量數據的輸送速率,非線性增長達到此速率以解決狀態監測防火墻網絡傳輸性能差的問題。關于Cubic擁塞控制算法增長函數如圖4所示。

圖4 Cubic擁塞控制算法增長函數
如圖4所示,Wmax表示窗口最大值。Cubic擁塞控制算法的計算過程如下:在狀態監測防火墻監測流量數據發生堵塞時,擁塞窗口會縮小,Cubic擁塞控制算法得出增長到窗口最大值Wmax所耗時間K的表達式為:
(5)
式中:C為常數;cwnd為擁塞窗口值。在發生網絡擁塞后,Cubic擁塞控制算法將調整擁塞窗口的大小,如果Cubic算法處于收斂狀態,計算Wmax為:
(6)
式中:BETA_SCALE為測試流量數據的窗口值。如果Cubic算法還沒有處于收斂狀態,則Wmax等于擁塞窗口值。其cwnd的取值由式(7)得出:
(7)
在式(7)中,max()函數確保cwnd有最小值2。通過以上式子,Cubic擁塞控制算法能得出K最優解,來提升狀態監測防火墻的網絡傳輸性能。
為了解決傳統方法面對多維異構數據無法進行特征提取的難題,研究出基于CNN-Focal入侵檢測模型來實現工控系統服務安全正常運行。CNN是卷積神經網絡的簡稱,與普通神經網絡一樣能方便提取數據特征圖像,不同的是比普通神經網絡模型架構多了一個卷積層。詳細劃分工控系統異常模式,可以在發生網絡攻擊時,CNN能快速定位攻擊源頭,并且緩解和恢復工業控制系統狀態,基于CNN的工控系統異常檢測流程如圖5所示。

圖5 基于CNN的工控系統異常檢測流程圖
下面對關鍵層次結構進行說明:
(1) 兩個卷積層
卷積層對于工控異常數據圖像來說相當于一種濾波器,與濾波器所不同的是卷積是通過卷積核的不同對輸入進行訓練處理,提高了效率,極大地減少了參數量。本文采用的是兩層卷積,第一層卷積采用的是64個3×3×3卷積核進行卷積處理,卷積后的圖與原尺寸一致,在經由一層池化之后,然后再通過第二層的16個3×3×3卷積核實施卷積計算。
(2) 兩個池化層
池化是利用卷積核來減少圖像數據的參數個數,并依然能進行圖像數據特征提取的過程。池化操作雖然丟失了一些信息,但保持了圖像的平移和擴展的不變性。
(3) 兩個全連接層
本文通過固定輸入工控異常數據圖像大小以及全連接層系數矩陣,為輸出層提供更加突出的圖像特征。
在構建好神經網絡模型之后就可以進行訓練,通過Focal loss損失函數進行模型測試。為了減少內存消耗,通過添加神經網絡壓縮加速技術對內存進行優化。通過模型測試和優化交替判斷處理,可以使訓練時間更快。
試驗硬件環境為Pentium(R)CPU、8核16 GB內存、硬盤容量為512 GB,軟件的操作系統為Windows10、JDK5.0。
本文采用NSL-KDD數據集用于本試驗測試,NSL-KDD數據集是目前入侵檢測領域內最好的數據集之一,其包含41列特征和1列標簽,測試集擁有22 543條,并且對試驗測試服務器性能要求不高。NSL-KDD數據集部分特征及其權重值如表1所示。

表1 NSL-KDD數據集部分特征及其權重值
在采取試驗所需數據的過程中:首先要進行數據預處理,將NSL-KDD數據集中41列特征進行合理篩選,得出原始流量數據;其次要對原始流量數據進行標準化,使得流量數據的收斂時間和精準度進一步提高。為了便于本試驗測試,其權重值縮放到[0,1]區間內,變換式為:
(8)
式中:X為原始流量數據樣本的數據值,減去最小數據值再除以最大數據值之差即為標準化下的權重值。利用本文的監測系統進行數據處理。
在有了表1的數據樣本之后,為了驗證本文所研究的關鍵技術的適用性和可行性,下面將分別對狀態監測防火墻和多源異構數據融合組合算法進行試驗設計與結果分析。
在上式動態閾值監測算法中,設立有關閾值k=4,根據式(4)可以得出:
(9)
以NSL-KDD數據集部分特征在攻擊工控系統后產生攻擊流量數據為例,設產生的攻擊流量數據包為1 000個,輸出攻擊指令的延遲時間為0。下面將根據被攻擊后數據傳輸的丟包率以及吞吐量結果對本文監測系統的性能進行評估。
在整個工控系統還未受到攻擊時,處于正常情況下系統流量數據的吞吐量(900 kpbs)和丟包率(10%)隨時間變化趨于穩定狀態,分別如圖6和圖7所示。

圖6 正常情況下工控系統的吞吐量結果

圖7 正常情況下流量數據丟包率結果
在整個工控系統受到攻擊后,采用普通防護墻和狀態監測防火墻的流量數據丟包率結果如圖8所示。
從圖8可以看出,采用普通防護墻后,整個時間段平均約60%的流量數據包發生了丟包現象,只有40%的成功傳收比例,這表明普通防火墻應對攻擊時流量數據的信息傳輸受到了嚴重干擾。而采用狀態監測防護墻之后,只有約為16.6%的流量數據包發生了丟包現象,有83.4%的成功傳收,這表明狀態檢測防火墻能快速監測到流量數據并準確地進行信息傳輸。

圖8 受攻擊狀況下流量數據丟包率結果
采用普通防護墻和狀態監測防火墻的流量數據的吞吐量結果如圖9所示。

圖9 受攻擊狀況下流量數據的吞吐量結果
從圖9可以看出,本文研究的狀態監測防火墻具有適用性。
為了驗證本研究采用的CNN-Focal入侵檢測模型的可靠性,將采用SVM支持向量機入侵監測模型進行對比。在試驗過程中所需要的有關具體實現CNN-Focal入侵檢測模型程序參數代碼如下:
迭代次數:nmm_epochs=200
批處理個數:batch_size=1 280
學習速率:lerning_rate=1×10-3
均方損失函數:criterion=nn.MSELoss
NSL-KDD數據集Normal、Probe、Dos和R2L四大類標簽特征在攻擊工控系統后產生攻擊流量數據,設產生的攻擊流量數據包為1 000個,輸出攻擊指令的延遲時間為0。下面根據運算將兩種方法的損失函數總體指標、損失函數準確率以及損失函數的召回率結果進行對比,結果詳見表2、表3和表4。

表2 兩種方法損失函數總體指標對比

表3 兩種方法損失函數準確率對比

表4 兩種方法損失函數召回率對比
從表格結果來看,本文研究的CNN-Focal入侵檢測模型的總體指標量更高,準確度更高,損失函數召回率更高,表明本研究的CNN-Focal入侵檢測模型更加可靠。
本文在分析了目前工控系統服務安全面臨的各種運行問題和威脅,總結現有技術存在的缺陷之后,給出工控系統服務安全的解決方向,指出工控系統服務安全的重要性。但是本文所采用的方法依然沒有達到正常情況下流量數據丟包率的水平,還有待進一步的研究。