劉學君,張小妮,欒海英,李凱麗,蘇 鵬,黎 楊,晏 涌,沙 蕓
(1.北京石油化工學院 信息工程學院,北京 102617; 2.北京機械工業自動化研究所有限公司,北京 100120)
隨著互聯網技術和計算機信息技術的逐漸成熟、工業生產規模的逐漸擴大,把互聯網技術應用在工業控制系統當中已經成為一種普遍現象[1]。近年來網絡攻擊手段越來越多樣化也越來越隱蔽,出現的工業控制系統攻擊事件不斷增多,生產過程的異常或故障造成重大的經濟損失、環境災難甚至人員傷亡,促使國內外十分關注控制系統的信息安全[2]。不同于傳統IT網絡著重研究網絡層內的數據安全,工控系統強調的是物理層的信息[3]。一旦業務數據被篡改,就會對整個工控系統工作狀態出現誤判,因此,對工控系統業務數據攻擊進行研究,有利于提高工控系統的安全性。目前該領域的研究是基于工控系統上位機的歷史數據,采用狀態監控和異常檢測算法進行研究,如Amin等人[4]對水利灌溉SCADA建立被控系統狀態模型進行研究以及Teixeira等人[5]對電力控制系統的研究,但是他們的研究對于周期性的隱蔽攻擊效果有待提高。周期性攻擊[6-8]是注入一定幅值的周期性信號,幅值會長時間里在小范圍內波動并且低于工控系統的報警線,直接從數據上無法分辨,報警器也不會提示,但是此時從設備采集的業務數據是異常的。針對此類工控業務層數據中周期性攻擊,本文采用小波變換和多尺度主成分分析,把數據分解到多個尺度進行檢測。
小波變換因其在時間-頻率分析中所表現出的優越特性,被廣泛應用在信號處理上。它繼承和發展了短時傅里葉變換局部的思想,同時又克服了窗口大小不隨頻率變化等缺點,能夠提供一個隨頻率改變的時頻兩域的窗口。小波變換能夠充分突出某些方面的問題特征,能夠對時間(空間)頻率的局部化分析,通過伸縮平移運算對信號(函數)逐步進行多尺度細化,最終實現高頻和低頻處頻率細分[9]。張濤等人[6]采用離散小波變換的方法對采集到的數據集進行分析。
小波變換將信號分解為逼近和細節兩個過程[10]。信號f(t)小波離散變換[11]為:
(1)
式中,Φ(n)為小波函數,Φ*(n)為Φ(n)共軛,a為尺度參數,b為位移參數。本文把數據分解為兩層,分解后的數據為三維數據,具體的分解如圖1所示。

圖1 小波分解示意圖
利用小波分解把數據分為多個尺度每一個尺度作為一個訓練集,對每一個訓練集做主成分分析(PCA,principal component analysis),根據累計貢獻率確定主元個數以及協方差矩陣的特征值和特征向量,來建立單個尺度的PCA模型,把每個尺度包含重要信息的PCA模型整合成綜合的PCA模型[12]。為提取單個模型的有效數據以及檢測新數據是否受到攻擊,引入了T2統計量和SPE統計量的控制限[13-14]確定單尺度的PCA模型。
T2統計量是表征PCA模型內部變化的一種預測,具體定義如下[15]:
(2)
其中:n為建模數據的樣本個數,α為顯著性水平,在自由度為n-k,k條件下F分布臨界值。正常工控下,T2應該滿足下式:
(3)

(4)
式中,k為主成分模型中保留的主成分個數,λa為建模數據X的協方差矩陣的第a個特征值。
SPE統計量是模型外部數據變化的一種測度,具體定義如下[16]:
(5)
(6)
(7)
其中:Ca為正太分布在顯著水平a下的臨界值,λj為X的協方差矩陣的特征值。正常工控下,SPE應滿足下式:
SPE≥SPEa
(8)
SPEa是SPE統計量的控制限,可有下式計算得到:
(9)

正常工控下,SPE和T2應同時滿足:
(10)
若其中至少有一個不滿足,則表明數據遭受攻擊。
本文以工控網絡數據集來研究周期性攻擊檢測的具體的建模過程。目前工控方面公開數據集中異常數據一般不含周期性攻擊,所以本文構建了3種周期性攻擊的模型。由于周期性攻擊是在幅值和頻率上做微小變化,更接近偏差攻擊,因此3種攻擊模型是在偏差攻擊模型上進行修改。
假設所有數據Q集合數據遭受攻擊,則偏差攻擊模型定義如下[17]:

(11)
y(n)表示原始數據,幅值為E,在部分數據上加上一個小幅值構成偏差攻擊。正弦攻擊在偏差攻擊的基礎上添加頻率特性攻擊,使其隱蔽性更高。正弦攻擊模型如下:

(12)
式中,正弦攻擊角頻率ω決定攻擊信號周期,幅值E決定攻擊強度。
假設方波攻擊周期為N,幅值為E,把攻擊加入集合Q。則方波攻擊模型如下:
(13)
三角波攻擊與正弦攻擊類似,但是正弦攻擊相較于三角波攻擊更平緩。假設三角波攻擊的周期為N,幅值為E,把攻擊加入集合Q。三角波攻擊模型如下:
(14)
式(11)是偏差攻擊的模型,根據模型生成異常數據的方法是原始數據疊加一個相較于原始數據較小的數值。式(12)是正弦攻擊模型,與偏差攻擊模型的區別是疊加的幅值乘上了一個正弦函數,即原始數據疊加數據遵循正弦規律變化。式(13)是方波攻擊模型、式(14)是三角波攻擊模型,根據模型生成數據的方法與正弦攻擊相同。
通過模型生成異常數據后,選取正常數據作為訓練集,對選取的訓練集做數據預處理,數據預處理包括去中心化和標準化。處理后的數據做小波尺度分解,如(1)式所示,把數據分為多個尺度,具體分解的層數根據實際情況而定。文采用的小波函數是Daubechies簡稱為dbN,其中N為小波的分解階數。小波ψ(t)和尺度函數φ(t)中的支撐區為2N-1,ψ(t)的消失矩為N。本文用到的N=2,dbN沒有明確的表達式,但轉換函數h的平方模是明確的。

(15)
其中:
(16)
Daubechies小波函數提供了比Haar函數更具有效的分析和綜合。
采用訓練集訓練綜合模型,首先把正弦攻擊、方波攻擊和三角波攻擊疊加正常數據作為測試集。其次把測試集進行尺度分解,在對應尺度上的PCA模型中進行測試。最后如果一個測試集在多個單尺度PCA模型當中都檢測出了攻擊,就采用綜合尺度的PCA模型即多尺度主成分分析(MSPCA,multi-scale principal component analysis)進行檢測,算法流程如圖2所示。

圖2 異常數據檢測流程圖
由圖2可知,算法的運行步驟如下:
1)首先對訓練集數據預處理,在預處理階段是對數據進行標準化,采用小波濾除噪音,并分解為多個尺度。
2)其次在多個尺度的數據上分別訓練單尺度的PCA模型,把各個尺度提取出來的重要信息組合成新的矩陣,求取新矩陣的兩個控制限得到綜合模型。
3)最后在測試集上進行測試,測試集數據進行預處理,然后輸入到綜合模型中,如果存在數據只要超出一個控制限,那么判定數據為異常數據并輸出,反之為正常數據。直到把所有的數據檢測完,算法結束。
3.1.1 構建數據集
把原始數據集按照9∶1的比例劃分為訓練集和測試集。使用公式(12)~(14)模型構建異常數據,幅值設為原始數據集的數值的1%~2%,頻率設為100~1 000之間。根據3個模型隨機產生3組數據。3組隨機數分別隨機疊加到部分測試集上,形成3組含有異常數據的測試集。
3.1.2 訓練模型并進行檢測
把訓練集輸入到算法經訓練得到綜合模型,對測試集進行檢測。測試過程中為便于觀察實驗結果,在算法之中加入顯示模塊和數據統計模塊。顯示模塊畫出各個數據與綜合模型兩個控制限的距離,并把兩個控制限顯示在兩幅圖中,只要超出一個控制限,數據就為異常數據。數據統計模塊將會輸出異常數據的位置以及異常數據的數目。
本文采用同一訓練集分別訓練綜合模型和PCA模型,然后分別統計綜合模型和原始PCA算法檢測出的異常數據數目,來比較兩個算法檢測效果。
本文采用兩個數據集進行實驗,并用python中matplotlib進行繪圖。每組實驗結果兩張圖,T2統計量圖和SPE統計量圖,圖橫軸表示樣本,縱軸表示統計量值。兩張圖中的橫線表示綜合模型的控制限。
3.3.1 密西西比數據集
密西西比州立大學基礎設施保護中心于2014年建立的工控入侵檢測數據集,數據源為天然氣管道SCADA控制系統網絡層數據,包含4種類別的攻擊,26個特征和1個標簽值[18-21]。
1)三角波攻擊測試集實驗結果:
圖3和圖4分是PCA和MSPCA對三角波攻擊的檢測結果,三角波的攻擊幅度是正常數據±2%。左右兩幅圖的橫線以下為正常數據,超出其中一條都為異常數據。由圖3和圖4對比可見,圖4中檢測出的異常數據更多,對數據分解以后再檢測的靈敏度要高于原始直接檢測的靈敏度。

圖3 PCA檢測三角波攻擊的結果

圖4 MSPCA檢測三角波攻擊的結果
2)方波攻擊測試集實驗結果如圖5和圖6所示。

圖5 PCA檢測方波攻擊的結果

圖6 MSPCA檢測方波攻擊的結果
圖5和圖6分別用PCA和MSPCA對方波攻擊的檢測結果,攻擊幅度是正常數據±2%。由兩組對比結果可知圖6中數據分解后檢測出來的異常點較多。
3)加入正弦攻擊,檢測結果如圖7和圖8所示。

圖7 PCA檢測正弦波攻擊的結果

圖8 MSPCA檢測正弦波攻擊的結果
圖7和圖8為正弦攻擊檢測結果,攻擊幅度是原始數據的1%,在單尺度檢測中僅依靠T2統計,而在MSPCA模型當中,是由T2統計和SPE統計檢測共同決定。由圖像可知圖8中MSPCA檢測出來的異常數據要多于PCA檢測出來的數目。
3.3.2 自建數據集實驗結果
自建數據集是對某工控系統的多個設備采集數據,其中包括油罐的液位、壓力以及溫度、管線壓力等共包含131個特征和1個標簽。
圖9和圖10為某工控系統數據疊加正弦攻擊后采用算法檢測出來的異常數據,其中攻擊幅度為攻擊前幅度±1%。

圖9 PCA檢測正弦波攻擊的結果

圖10 MSPCA檢測正弦波攻擊的結果
由圖9和圖10 的檢測結果可知,在攻擊幅度極小的情況下,圖10中MSPCA檢測效果依然比圖9中PCA異常檢測效果好。
工控系統為了保證數據的時效性,數據集采集的頻率比較高,系統設備傳感器數據變化量比較小,所以各個攻擊類型的攻擊幅度比較小控制在1%~2%之間。通過3.3節兩個數據集上的幾組實驗結果圖可知,MSPACA的檢測效果要高于PCA算法,具體的實驗統計數據如表1所示。

表1 正弦攻擊檢測統計
由表1可知,多尺度的主成分分析在多種類型的攻擊的檢測結果均優于傳統的主成分分析算法,適用于檢測相關工控系統業務數據的異常。
針對工業控制系統采集到的各設備運行數據的周期攻擊,本文首先采用小波變換進行尺度分解,然后再對每一個尺度做主成分分析記錄每個尺度的PCA模型,通過指標來篩選出每個尺度有價值的數據,去除冗余,構成MSPCA模型,對隱蔽性比較強的周期性攻擊提高了檢測效果。同時,根據輸出的異常數據可以確定受攻擊的時間和所攻擊的位置。下一步可以圍繞提高MSPCA的準確率和靈敏程度做進一步研究和探索。