吳金宇, 陶文偉, 吳昊, 陳剛
(1.中國南方電網(wǎng)有限責(zé)任公司,廣東 廣州 510623;2.中國南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東 廣州 510555)
針對(duì)工控系統(tǒng)服務(wù)安全運(yùn)行的問題[1-3],國內(nèi)外許多學(xué)者發(fā)表了研究方案。文獻(xiàn)[4]公開了一種基于K最近鄰分類算法的入侵檢測模型,利用對(duì)所有流量數(shù)據(jù)或惡意程序進(jìn)行鄰近分類,達(dá)到快速處理提高整體工控系統(tǒng)的安全性能,然而該方法所耗時(shí)間較長、效率較低。文獻(xiàn)[5]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測模型,采用SVM支持向量機(jī)算法與K-means聚類算法結(jié)合使用,該方法對(duì)實(shí)時(shí)數(shù)據(jù)處理的效果很好,且效率有很大提高,但是面對(duì)多維異構(gòu)數(shù)據(jù)無法進(jìn)行特征提取,且聚類算法容易破壞數(shù)據(jù)之間的關(guān)聯(lián)性。
總結(jié)上述技術(shù)的不足,本文研究出新型狀態(tài)監(jiān)測防火墻和CNN-Focal入侵檢測模型,以實(shí)現(xiàn)工控系統(tǒng)安全運(yùn)行。
工控系統(tǒng)是各類工業(yè)生產(chǎn)控制系統(tǒng)(ICS)的簡稱,其主要任務(wù)是對(duì)各種國家的基礎(chǔ)設(shè)施或者工業(yè)活動(dòng)進(jìn)行監(jiān)測控制和數(shù)據(jù)采集[6],典型的工業(yè)控制系統(tǒng)層次架構(gòu)如圖1所示。
從圖1可以看出,一個(gè)工控系統(tǒng)層次架構(gòu)有三層,分別是企業(yè)管理層、過程監(jiān)控層和現(xiàn)場設(shè)備層。其中企業(yè)管理層主要是上層管理人員對(duì)整個(gè)工控系統(tǒng)的管理應(yīng)用以及安全正常運(yùn)維工作[7]。在整個(gè)工控系統(tǒng)中,設(shè)立工業(yè)防火墻是必要工作,這種高新技術(shù)需要管理工作站相關(guān)程序研發(fā)部門進(jìn)行實(shí)施。過程監(jiān)控層主要是對(duì)工作現(xiàn)場的設(shè)備調(diào)試和設(shè)備運(yùn)行進(jìn)行實(shí)時(shí)監(jiān)控,例如流量數(shù)據(jù)采集系統(tǒng)、可編程邏輯控制器(PLC)以及各種無線通信設(shè)備?,F(xiàn)場設(shè)備層是基礎(chǔ),每天工業(yè)車間會(huì)產(chǎn)生大量數(shù)據(jù),需要進(jìn)行管理,是數(shù)據(jù)來源所在[8]。
圖1 典型的工業(yè)控制系統(tǒng)層次架構(gòu)
隨著信息化和工業(yè)化的進(jìn)一步融合,使智能電網(wǎng)工控系統(tǒng)遭到了比傳統(tǒng)攻擊更強(qiáng)、更大的破壞,如圖2所示。
圖2是一次對(duì)電網(wǎng)的典型攻擊過程,攻擊者借助病毒、惡意代碼和漏洞,通過網(wǎng)絡(luò)對(duì)目標(biāo)電網(wǎng)控制系統(tǒng)進(jìn)行攻擊,進(jìn)而影響電力的配送。
圖2 攻擊者對(duì)電網(wǎng)工控系統(tǒng)攻擊示意圖
入侵檢測技術(shù)(IDS)是一種安全防護(hù)技術(shù),屬于工控系統(tǒng)中安全運(yùn)行體系的起始部分,可以對(duì)網(wǎng)絡(luò)的狀態(tài)和系統(tǒng)的使用情況進(jìn)行監(jiān)控。這種防護(hù)技術(shù)在工控系統(tǒng)中經(jīng)常使用,檢測到有危險(xiǎn)的行為后會(huì)發(fā)出預(yù)警。本文研發(fā)出一種新型的狀態(tài)監(jiān)測防火墻,流量數(shù)據(jù)傳輸流程如圖3所示。
圖3 流量數(shù)據(jù)傳輸流程
狀態(tài)監(jiān)測防火墻是對(duì)外部路由器端得到的流量數(shù)據(jù)進(jìn)行監(jiān)測篩選的防御手段。當(dāng)收到安全信息流量數(shù)據(jù)包時(shí)會(huì)進(jìn)行狀態(tài)監(jiān)測,判斷其是否為惡意信息,正常則進(jìn)入到相對(duì)應(yīng)的板塊。然而在設(shè)立狀態(tài)監(jiān)測防火墻的同時(shí),由于檢測閾值是靜態(tài)的,在長時(shí)間段的工程中會(huì)出現(xiàn)網(wǎng)絡(luò)遲滯問題,因此需要對(duì)狀態(tài)監(jiān)測防火墻內(nèi)部的檢測算法進(jìn)行優(yōu)化。
2.1.1 動(dòng)態(tài)閾值檢測算法
算法過程為:
(1)
式中:α為流量數(shù)據(jù)量大于流量數(shù)據(jù)權(quán)值的比例參數(shù)。根據(jù)時(shí)間平移加權(quán),得出流量數(shù)據(jù)權(quán)值與流量數(shù)據(jù)量的關(guān)系式為:
(2)
式中:β為加權(quán)比例系數(shù)。在實(shí)際應(yīng)用中,單采用式(1)、式(2)得出的結(jié)果存在很大的誤差,因此本文引入布爾型變量概念來判定工控系統(tǒng)是否遭到攻擊,布爾型變量h的條件判定公式為:
(3)
在以上式子的基礎(chǔ)上,設(shè)立動(dòng)態(tài)閾值k,在滿足式(3)時(shí)布爾型變量h與動(dòng)態(tài)閾值k的判別條件為:
(4)
然而,動(dòng)態(tài)閾值k也并非隨意取值,k的值太大反而會(huì)影響工控系統(tǒng)安全性能。
2.1.2 Cubic擁塞控制算法
本文采用Cubic擁塞控制算法對(duì)狀態(tài)監(jiān)測防火墻進(jìn)行進(jìn)一步的優(yōu)化。Cubic算法與BIC算法非常相似,均屬于擁塞控制算法類型,其核心原理在于通過二進(jìn)制搜索動(dòng)態(tài)閾值處流量數(shù)據(jù)的輸送速率,非線性增長達(dá)到此速率以解決狀態(tài)監(jiān)測防火墻網(wǎng)絡(luò)傳輸性能差的問題。關(guān)于Cubic擁塞控制算法增長函數(shù)如圖4所示。
圖4 Cubic擁塞控制算法增長函數(shù)
如圖4所示,Wmax表示窗口最大值。Cubic擁塞控制算法的計(jì)算過程如下:在狀態(tài)監(jiān)測防火墻監(jiān)測流量數(shù)據(jù)發(fā)生堵塞時(shí),擁塞窗口會(huì)縮小,Cubic擁塞控制算法得出增長到窗口最大值Wmax所耗時(shí)間K的表達(dá)式為:
(5)
式中:C為常數(shù);cwnd為擁塞窗口值。在發(fā)生網(wǎng)絡(luò)擁塞后,Cubic擁塞控制算法將調(diào)整擁塞窗口的大小,如果Cubic算法處于收斂狀態(tài),計(jì)算Wmax為:
(6)
式中:BETA_SCALE為測試流量數(shù)據(jù)的窗口值。如果Cubic算法還沒有處于收斂狀態(tài),則Wmax等于擁塞窗口值。其cwnd的取值由式(7)得出:
(7)
在式(7)中,max()函數(shù)確保cwnd有最小值2。通過以上式子,Cubic擁塞控制算法能得出K最優(yōu)解,來提升狀態(tài)監(jiān)測防火墻的網(wǎng)絡(luò)傳輸性能。
為了解決傳統(tǒng)方法面對(duì)多維異構(gòu)數(shù)據(jù)無法進(jìn)行特征提取的難題,研究出基于CNN-Focal入侵檢測模型來實(shí)現(xiàn)工控系統(tǒng)服務(wù)安全正常運(yùn)行。CNN是卷積神經(jīng)網(wǎng)絡(luò)的簡稱,與普通神經(jīng)網(wǎng)絡(luò)一樣能方便提取數(shù)據(jù)特征圖像,不同的是比普通神經(jīng)網(wǎng)絡(luò)模型架構(gòu)多了一個(gè)卷積層。詳細(xì)劃分工控系統(tǒng)異常模式,可以在發(fā)生網(wǎng)絡(luò)攻擊時(shí),CNN能快速定位攻擊源頭,并且緩解和恢復(fù)工業(yè)控制系統(tǒng)狀態(tài),基于CNN的工控系統(tǒng)異常檢測流程如圖5所示。
圖5 基于CNN的工控系統(tǒng)異常檢測流程圖
下面對(duì)關(guān)鍵層次結(jié)構(gòu)進(jìn)行說明:
(1) 兩個(gè)卷積層
卷積層對(duì)于工控異常數(shù)據(jù)圖像來說相當(dāng)于一種濾波器,與濾波器所不同的是卷積是通過卷積核的不同對(duì)輸入進(jìn)行訓(xùn)練處理,提高了效率,極大地減少了參數(shù)量。本文采用的是兩層卷積,第一層卷積采用的是64個(gè)3×3×3卷積核進(jìn)行卷積處理,卷積后的圖與原尺寸一致,在經(jīng)由一層池化之后,然后再通過第二層的16個(gè)3×3×3卷積核實(shí)施卷積計(jì)算。
(2) 兩個(gè)池化層
池化是利用卷積核來減少圖像數(shù)據(jù)的參數(shù)個(gè)數(shù),并依然能進(jìn)行圖像數(shù)據(jù)特征提取的過程。池化操作雖然丟失了一些信息,但保持了圖像的平移和擴(kuò)展的不變性。
(3) 兩個(gè)全連接層
本文通過固定輸入工控異常數(shù)據(jù)圖像大小以及全連接層系數(shù)矩陣,為輸出層提供更加突出的圖像特征。
在構(gòu)建好神經(jīng)網(wǎng)絡(luò)模型之后就可以進(jìn)行訓(xùn)練,通過Focal loss損失函數(shù)進(jìn)行模型測試。為了減少內(nèi)存消耗,通過添加神經(jīng)網(wǎng)絡(luò)壓縮加速技術(shù)對(duì)內(nèi)存進(jìn)行優(yōu)化。通過模型測試和優(yōu)化交替判斷處理,可以使訓(xùn)練時(shí)間更快。
試驗(yàn)硬件環(huán)境為Pentium(R)CPU、8核16 GB內(nèi)存、硬盤容量為512 GB,軟件的操作系統(tǒng)為Windows10、JDK5.0。
本文采用NSL-KDD數(shù)據(jù)集用于本試驗(yàn)測試,NSL-KDD數(shù)據(jù)集是目前入侵檢測領(lǐng)域內(nèi)最好的數(shù)據(jù)集之一,其包含41列特征和1列標(biāo)簽,測試集擁有22 543條,并且對(duì)試驗(yàn)測試服務(wù)器性能要求不高。NSL-KDD數(shù)據(jù)集部分特征及其權(quán)重值如表1所示。
表1 NSL-KDD數(shù)據(jù)集部分特征及其權(quán)重值
在采取試驗(yàn)所需數(shù)據(jù)的過程中:首先要進(jìn)行數(shù)據(jù)預(yù)處理,將NSL-KDD數(shù)據(jù)集中41列特征進(jìn)行合理篩選,得出原始流量數(shù)據(jù);其次要對(duì)原始流量數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,使得流量數(shù)據(jù)的收斂時(shí)間和精準(zhǔn)度進(jìn)一步提高。為了便于本試驗(yàn)測試,其權(quán)重值縮放到[0,1]區(qū)間內(nèi),變換式為:
(8)
式中:X為原始流量數(shù)據(jù)樣本的數(shù)據(jù)值,減去最小數(shù)據(jù)值再除以最大數(shù)據(jù)值之差即為標(biāo)準(zhǔn)化下的權(quán)重值。利用本文的監(jiān)測系統(tǒng)進(jìn)行數(shù)據(jù)處理。
在有了表1的數(shù)據(jù)樣本之后,為了驗(yàn)證本文所研究的關(guān)鍵技術(shù)的適用性和可行性,下面將分別對(duì)狀態(tài)監(jiān)測防火墻和多源異構(gòu)數(shù)據(jù)融合組合算法進(jìn)行試驗(yàn)設(shè)計(jì)與結(jié)果分析。
在上式動(dòng)態(tài)閾值監(jiān)測算法中,設(shè)立有關(guān)閾值k=4,根據(jù)式(4)可以得出:
(9)
以NSL-KDD數(shù)據(jù)集部分特征在攻擊工控系統(tǒng)后產(chǎn)生攻擊流量數(shù)據(jù)為例,設(shè)產(chǎn)生的攻擊流量數(shù)據(jù)包為1 000個(gè),輸出攻擊指令的延遲時(shí)間為0。下面將根據(jù)被攻擊后數(shù)據(jù)傳輸?shù)膩G包率以及吞吐量結(jié)果對(duì)本文監(jiān)測系統(tǒng)的性能進(jìn)行評(píng)估。
在整個(gè)工控系統(tǒng)還未受到攻擊時(shí),處于正常情況下系統(tǒng)流量數(shù)據(jù)的吞吐量(900 kpbs)和丟包率(10%)隨時(shí)間變化趨于穩(wěn)定狀態(tài),分別如圖6和圖7所示。
圖6 正常情況下工控系統(tǒng)的吞吐量結(jié)果
圖7 正常情況下流量數(shù)據(jù)丟包率結(jié)果
在整個(gè)工控系統(tǒng)受到攻擊后,采用普通防護(hù)墻和狀態(tài)監(jiān)測防火墻的流量數(shù)據(jù)丟包率結(jié)果如圖8所示。
從圖8可以看出,采用普通防護(hù)墻后,整個(gè)時(shí)間段平均約60%的流量數(shù)據(jù)包發(fā)生了丟包現(xiàn)象,只有40%的成功傳收比例,這表明普通防火墻應(yīng)對(duì)攻擊時(shí)流量數(shù)據(jù)的信息傳輸受到了嚴(yán)重干擾。而采用狀態(tài)監(jiān)測防護(hù)墻之后,只有約為16.6%的流量數(shù)據(jù)包發(fā)生了丟包現(xiàn)象,有83.4%的成功傳收,這表明狀態(tài)檢測防火墻能快速監(jiān)測到流量數(shù)據(jù)并準(zhǔn)確地進(jìn)行信息傳輸。
圖8 受攻擊狀況下流量數(shù)據(jù)丟包率結(jié)果
采用普通防護(hù)墻和狀態(tài)監(jiān)測防火墻的流量數(shù)據(jù)的吞吐量結(jié)果如圖9所示。
圖9 受攻擊狀況下流量數(shù)據(jù)的吞吐量結(jié)果
從圖9可以看出,本文研究的狀態(tài)監(jiān)測防火墻具有適用性。
為了驗(yàn)證本研究采用的CNN-Focal入侵檢測模型的可靠性,將采用SVM支持向量機(jī)入侵監(jiān)測模型進(jìn)行對(duì)比。在試驗(yàn)過程中所需要的有關(guān)具體實(shí)現(xiàn)CNN-Focal入侵檢測模型程序參數(shù)代碼如下:
迭代次數(shù):nmm_epochs=200
批處理個(gè)數(shù):batch_size=1 280
學(xué)習(xí)速率:lerning_rate=1×10-3
均方損失函數(shù):criterion=nn.MSELoss
NSL-KDD數(shù)據(jù)集Normal、Probe、Dos和R2L四大類標(biāo)簽特征在攻擊工控系統(tǒng)后產(chǎn)生攻擊流量數(shù)據(jù),設(shè)產(chǎn)生的攻擊流量數(shù)據(jù)包為1 000個(gè),輸出攻擊指令的延遲時(shí)間為0。下面根據(jù)運(yùn)算將兩種方法的損失函數(shù)總體指標(biāo)、損失函數(shù)準(zhǔn)確率以及損失函數(shù)的召回率結(jié)果進(jìn)行對(duì)比,結(jié)果詳見表2、表3和表4。
表2 兩種方法損失函數(shù)總體指標(biāo)對(duì)比
表3 兩種方法損失函數(shù)準(zhǔn)確率對(duì)比
表4 兩種方法損失函數(shù)召回率對(duì)比
從表格結(jié)果來看,本文研究的CNN-Focal入侵檢測模型的總體指標(biāo)量更高,準(zhǔn)確度更高,損失函數(shù)召回率更高,表明本研究的CNN-Focal入侵檢測模型更加可靠。
本文在分析了目前工控系統(tǒng)服務(wù)安全面臨的各種運(yùn)行問題和威脅,總結(jié)現(xiàn)有技術(shù)存在的缺陷之后,給出工控系統(tǒng)服務(wù)安全的解決方向,指出工控系統(tǒng)服務(wù)安全的重要性。但是本文所采用的方法依然沒有達(dá)到正常情況下流量數(shù)據(jù)丟包率的水平,還有待進(jìn)一步的研究。