劉學(xué)君,張小妮,欒海英,李凱麗,蘇 鵬,黎 楊,晏 涌,沙 蕓
(1.北京石油化工學(xué)院 信息工程學(xué)院,北京 102617; 2.北京機械工業(yè)自動化研究所有限公司,北京 100120)
隨著互聯(lián)網(wǎng)技術(shù)和計算機信息技術(shù)的逐漸成熟、工業(yè)生產(chǎn)規(guī)模的逐漸擴大,把互聯(lián)網(wǎng)技術(shù)應(yīng)用在工業(yè)控制系統(tǒng)當(dāng)中已經(jīng)成為一種普遍現(xiàn)象[1]。近年來網(wǎng)絡(luò)攻擊手段越來越多樣化也越來越隱蔽,出現(xiàn)的工業(yè)控制系統(tǒng)攻擊事件不斷增多,生產(chǎn)過程的異?;蚬收显斐芍卮蟮慕?jīng)濟損失、環(huán)境災(zāi)難甚至人員傷亡,促使國內(nèi)外十分關(guān)注控制系統(tǒng)的信息安全[2]。不同于傳統(tǒng)IT網(wǎng)絡(luò)著重研究網(wǎng)絡(luò)層內(nèi)的數(shù)據(jù)安全,工控系統(tǒng)強調(diào)的是物理層的信息[3]。一旦業(yè)務(wù)數(shù)據(jù)被篡改,就會對整個工控系統(tǒng)工作狀態(tài)出現(xiàn)誤判,因此,對工控系統(tǒng)業(yè)務(wù)數(shù)據(jù)攻擊進行研究,有利于提高工控系統(tǒng)的安全性。目前該領(lǐng)域的研究是基于工控系統(tǒng)上位機的歷史數(shù)據(jù),采用狀態(tài)監(jiān)控和異常檢測算法進行研究,如Amin等人[4]對水利灌溉SCADA建立被控系統(tǒng)狀態(tài)模型進行研究以及Teixeira等人[5]對電力控制系統(tǒng)的研究,但是他們的研究對于周期性的隱蔽攻擊效果有待提高。周期性攻擊[6-8]是注入一定幅值的周期性信號,幅值會長時間里在小范圍內(nèi)波動并且低于工控系統(tǒng)的報警線,直接從數(shù)據(jù)上無法分辨,報警器也不會提示,但是此時從設(shè)備采集的業(yè)務(wù)數(shù)據(jù)是異常的。針對此類工控業(yè)務(wù)層數(shù)據(jù)中周期性攻擊,本文采用小波變換和多尺度主成分分析,把數(shù)據(jù)分解到多個尺度進行檢測。
小波變換因其在時間-頻率分析中所表現(xiàn)出的優(yōu)越特性,被廣泛應(yīng)用在信號處理上。它繼承和發(fā)展了短時傅里葉變換局部的思想,同時又克服了窗口大小不隨頻率變化等缺點,能夠提供一個隨頻率改變的時頻兩域的窗口。小波變換能夠充分突出某些方面的問題特征,能夠?qū)r間(空間)頻率的局部化分析,通過伸縮平移運算對信號(函數(shù))逐步進行多尺度細化,最終實現(xiàn)高頻和低頻處頻率細分[9]。張濤等人[6]采用離散小波變換的方法對采集到的數(shù)據(jù)集進行分析。
小波變換將信號分解為逼近和細節(jié)兩個過程[10]。信號f(t)小波離散變換[11]為:
(1)
式中,Φ(n)為小波函數(shù),Φ*(n)為Φ(n)共軛,a為尺度參數(shù),b為位移參數(shù)。本文把數(shù)據(jù)分解為兩層,分解后的數(shù)據(jù)為三維數(shù)據(jù),具體的分解如圖1所示。
圖1 小波分解示意圖
利用小波分解把數(shù)據(jù)分為多個尺度每一個尺度作為一個訓(xùn)練集,對每一個訓(xùn)練集做主成分分析(PCA,principal component analysis),根據(jù)累計貢獻率確定主元個數(shù)以及協(xié)方差矩陣的特征值和特征向量,來建立單個尺度的PCA模型,把每個尺度包含重要信息的PCA模型整合成綜合的PCA模型[12]。為提取單個模型的有效數(shù)據(jù)以及檢測新數(shù)據(jù)是否受到攻擊,引入了T2統(tǒng)計量和SPE統(tǒng)計量的控制限[13-14]確定單尺度的PCA模型。
T2統(tǒng)計量是表征PCA模型內(nèi)部變化的一種預(yù)測,具體定義如下[15]:
(2)
其中:n為建模數(shù)據(jù)的樣本個數(shù),α為顯著性水平,在自由度為n-k,k條件下F分布臨界值。正常工控下,T2應(yīng)該滿足下式:
(3)
(4)
式中,k為主成分模型中保留的主成分個數(shù),λa為建模數(shù)據(jù)X的協(xié)方差矩陣的第a個特征值。
SPE統(tǒng)計量是模型外部數(shù)據(jù)變化的一種測度,具體定義如下[16]:
(5)
(6)
(7)
其中:Ca為正太分布在顯著水平a下的臨界值,λj為X的協(xié)方差矩陣的特征值。正常工控下,SPE應(yīng)滿足下式:
SPE≥SPEa
(8)
SPEa是SPE統(tǒng)計量的控制限,可有下式計算得到:
(9)
正常工控下,SPE和T2應(yīng)同時滿足:
(10)
若其中至少有一個不滿足,則表明數(shù)據(jù)遭受攻擊。
本文以工控網(wǎng)絡(luò)數(shù)據(jù)集來研究周期性攻擊檢測的具體的建模過程。目前工控方面公開數(shù)據(jù)集中異常數(shù)據(jù)一般不含周期性攻擊,所以本文構(gòu)建了3種周期性攻擊的模型。由于周期性攻擊是在幅值和頻率上做微小變化,更接近偏差攻擊,因此3種攻擊模型是在偏差攻擊模型上進行修改。
假設(shè)所有數(shù)據(jù)Q集合數(shù)據(jù)遭受攻擊,則偏差攻擊模型定義如下[17]:
(11)
y(n)表示原始數(shù)據(jù),幅值為E,在部分數(shù)據(jù)上加上一個小幅值構(gòu)成偏差攻擊。正弦攻擊在偏差攻擊的基礎(chǔ)上添加頻率特性攻擊,使其隱蔽性更高。正弦攻擊模型如下:
(12)
式中,正弦攻擊角頻率ω決定攻擊信號周期,幅值E決定攻擊強度。
假設(shè)方波攻擊周期為N,幅值為E,把攻擊加入集合Q。則方波攻擊模型如下:
(13)
三角波攻擊與正弦攻擊類似,但是正弦攻擊相較于三角波攻擊更平緩。假設(shè)三角波攻擊的周期為N,幅值為E,把攻擊加入集合Q。三角波攻擊模型如下:
(14)
式(11)是偏差攻擊的模型,根據(jù)模型生成異常數(shù)據(jù)的方法是原始數(shù)據(jù)疊加一個相較于原始數(shù)據(jù)較小的數(shù)值。式(12)是正弦攻擊模型,與偏差攻擊模型的區(qū)別是疊加的幅值乘上了一個正弦函數(shù),即原始數(shù)據(jù)疊加數(shù)據(jù)遵循正弦規(guī)律變化。式(13)是方波攻擊模型、式(14)是三角波攻擊模型,根據(jù)模型生成數(shù)據(jù)的方法與正弦攻擊相同。
通過模型生成異常數(shù)據(jù)后,選取正常數(shù)據(jù)作為訓(xùn)練集,對選取的訓(xùn)練集做數(shù)據(jù)預(yù)處理,數(shù)據(jù)預(yù)處理包括去中心化和標(biāo)準化。處理后的數(shù)據(jù)做小波尺度分解,如(1)式所示,把數(shù)據(jù)分為多個尺度,具體分解的層數(shù)根據(jù)實際情況而定。文采用的小波函數(shù)是Daubechies簡稱為dbN,其中N為小波的分解階數(shù)。小波ψ(t)和尺度函數(shù)φ(t)中的支撐區(qū)為2N-1,ψ(t)的消失矩為N。本文用到的N=2,dbN沒有明確的表達式,但轉(zhuǎn)換函數(shù)h的平方模是明確的。
(15)
其中:
(16)
Daubechies小波函數(shù)提供了比Haar函數(shù)更具有效的分析和綜合。
采用訓(xùn)練集訓(xùn)練綜合模型,首先把正弦攻擊、方波攻擊和三角波攻擊疊加正常數(shù)據(jù)作為測試集。其次把測試集進行尺度分解,在對應(yīng)尺度上的PCA模型中進行測試。最后如果一個測試集在多個單尺度PCA模型當(dāng)中都檢測出了攻擊,就采用綜合尺度的PCA模型即多尺度主成分分析(MSPCA,multi-scale principal component analysis)進行檢測,算法流程如圖2所示。
圖2 異常數(shù)據(jù)檢測流程圖
由圖2可知,算法的運行步驟如下:
1)首先對訓(xùn)練集數(shù)據(jù)預(yù)處理,在預(yù)處理階段是對數(shù)據(jù)進行標(biāo)準化,采用小波濾除噪音,并分解為多個尺度。
2)其次在多個尺度的數(shù)據(jù)上分別訓(xùn)練單尺度的PCA模型,把各個尺度提取出來的重要信息組合成新的矩陣,求取新矩陣的兩個控制限得到綜合模型。
3)最后在測試集上進行測試,測試集數(shù)據(jù)進行預(yù)處理,然后輸入到綜合模型中,如果存在數(shù)據(jù)只要超出一個控制限,那么判定數(shù)據(jù)為異常數(shù)據(jù)并輸出,反之為正常數(shù)據(jù)。直到把所有的數(shù)據(jù)檢測完,算法結(jié)束。
3.1.1 構(gòu)建數(shù)據(jù)集
把原始數(shù)據(jù)集按照9∶1的比例劃分為訓(xùn)練集和測試集。使用公式(12)~(14)模型構(gòu)建異常數(shù)據(jù),幅值設(shè)為原始數(shù)據(jù)集的數(shù)值的1%~2%,頻率設(shè)為100~1 000之間。根據(jù)3個模型隨機產(chǎn)生3組數(shù)據(jù)。3組隨機數(shù)分別隨機疊加到部分測試集上,形成3組含有異常數(shù)據(jù)的測試集。
3.1.2 訓(xùn)練模型并進行檢測
把訓(xùn)練集輸入到算法經(jīng)訓(xùn)練得到綜合模型,對測試集進行檢測。測試過程中為便于觀察實驗結(jié)果,在算法之中加入顯示模塊和數(shù)據(jù)統(tǒng)計模塊。顯示模塊畫出各個數(shù)據(jù)與綜合模型兩個控制限的距離,并把兩個控制限顯示在兩幅圖中,只要超出一個控制限,數(shù)據(jù)就為異常數(shù)據(jù)。數(shù)據(jù)統(tǒng)計模塊將會輸出異常數(shù)據(jù)的位置以及異常數(shù)據(jù)的數(shù)目。
本文采用同一訓(xùn)練集分別訓(xùn)練綜合模型和PCA模型,然后分別統(tǒng)計綜合模型和原始PCA算法檢測出的異常數(shù)據(jù)數(shù)目,來比較兩個算法檢測效果。
本文采用兩個數(shù)據(jù)集進行實驗,并用python中matplotlib進行繪圖。每組實驗結(jié)果兩張圖,T2統(tǒng)計量圖和SPE統(tǒng)計量圖,圖橫軸表示樣本,縱軸表示統(tǒng)計量值。兩張圖中的橫線表示綜合模型的控制限。
3.3.1 密西西比數(shù)據(jù)集
密西西比州立大學(xué)基礎(chǔ)設(shè)施保護中心于2014年建立的工控入侵檢測數(shù)據(jù)集,數(shù)據(jù)源為天然氣管道SCADA控制系統(tǒng)網(wǎng)絡(luò)層數(shù)據(jù),包含4種類別的攻擊,26個特征和1個標(biāo)簽值[18-21]。
1)三角波攻擊測試集實驗結(jié)果:
圖3和圖4分是PCA和MSPCA對三角波攻擊的檢測結(jié)果,三角波的攻擊幅度是正常數(shù)據(jù)±2%。左右兩幅圖的橫線以下為正常數(shù)據(jù),超出其中一條都為異常數(shù)據(jù)。由圖3和圖4對比可見,圖4中檢測出的異常數(shù)據(jù)更多,對數(shù)據(jù)分解以后再檢測的靈敏度要高于原始直接檢測的靈敏度。
圖3 PCA檢測三角波攻擊的結(jié)果
圖4 MSPCA檢測三角波攻擊的結(jié)果
2)方波攻擊測試集實驗結(jié)果如圖5和圖6所示。
圖5 PCA檢測方波攻擊的結(jié)果
圖6 MSPCA檢測方波攻擊的結(jié)果
圖5和圖6分別用PCA和MSPCA對方波攻擊的檢測結(jié)果,攻擊幅度是正常數(shù)據(jù)±2%。由兩組對比結(jié)果可知圖6中數(shù)據(jù)分解后檢測出來的異常點較多。
3)加入正弦攻擊,檢測結(jié)果如圖7和圖8所示。
圖7 PCA檢測正弦波攻擊的結(jié)果
圖8 MSPCA檢測正弦波攻擊的結(jié)果
圖7和圖8為正弦攻擊檢測結(jié)果,攻擊幅度是原始數(shù)據(jù)的1%,在單尺度檢測中僅依靠T2統(tǒng)計,而在MSPCA模型當(dāng)中,是由T2統(tǒng)計和SPE統(tǒng)計檢測共同決定。由圖像可知圖8中MSPCA檢測出來的異常數(shù)據(jù)要多于PCA檢測出來的數(shù)目。
3.3.2 自建數(shù)據(jù)集實驗結(jié)果
自建數(shù)據(jù)集是對某工控系統(tǒng)的多個設(shè)備采集數(shù)據(jù),其中包括油罐的液位、壓力以及溫度、管線壓力等共包含131個特征和1個標(biāo)簽。
圖9和圖10為某工控系統(tǒng)數(shù)據(jù)疊加正弦攻擊后采用算法檢測出來的異常數(shù)據(jù),其中攻擊幅度為攻擊前幅度±1%。
圖9 PCA檢測正弦波攻擊的結(jié)果
圖10 MSPCA檢測正弦波攻擊的結(jié)果
由圖9和圖10 的檢測結(jié)果可知,在攻擊幅度極小的情況下,圖10中MSPCA檢測效果依然比圖9中PCA異常檢測效果好。
工控系統(tǒng)為了保證數(shù)據(jù)的時效性,數(shù)據(jù)集采集的頻率比較高,系統(tǒng)設(shè)備傳感器數(shù)據(jù)變化量比較小,所以各個攻擊類型的攻擊幅度比較小控制在1%~2%之間。通過3.3節(jié)兩個數(shù)據(jù)集上的幾組實驗結(jié)果圖可知,MSPACA的檢測效果要高于PCA算法,具體的實驗統(tǒng)計數(shù)據(jù)如表1所示。
表1 正弦攻擊檢測統(tǒng)計
由表1可知,多尺度的主成分分析在多種類型的攻擊的檢測結(jié)果均優(yōu)于傳統(tǒng)的主成分分析算法,適用于檢測相關(guān)工控系統(tǒng)業(yè)務(wù)數(shù)據(jù)的異常。
針對工業(yè)控制系統(tǒng)采集到的各設(shè)備運行數(shù)據(jù)的周期攻擊,本文首先采用小波變換進行尺度分解,然后再對每一個尺度做主成分分析記錄每個尺度的PCA模型,通過指標(biāo)來篩選出每個尺度有價值的數(shù)據(jù),去除冗余,構(gòu)成MSPCA模型,對隱蔽性比較強的周期性攻擊提高了檢測效果。同時,根據(jù)輸出的異常數(shù)據(jù)可以確定受攻擊的時間和所攻擊的位置。下一步可以圍繞提高MSPCA的準確率和靈敏程度做進一步研究和探索。