劉遠彬 徐茹枝 崔東
(1.華北電力大學(北京)控制與計算機工程學院,北京 102206;2.內蒙古大唐國際托克托發電有限責任公司,內蒙古 呼和浩特 010205)
工業控制系統(ICS,Industrial Control Control System)是指由計算機與工業過程控制部件等共同組成的,以工業生產、提供服務為主要目的的自動控制系統[1],是生產活動的控制中心和神經中樞,負責數據監測和智能控制,涉及能源轉化、商品生產、交通運輸等眾多涉及支撐國家發展的重點行業。在ICS最初發展過程中,極大地忽視了網絡安全方面的考慮,采取隔離的方式切斷與外界的通信,同時工業控制系統信息化程度有限[2],對于網絡安全的需求較低,隨著“兩化”融合以及工業智能化發展趨勢,工業控制系統對于數據通信的需求急劇增加,工業控制系統的網絡安全能夠對工業控制系統產生嚴重影響。2010年發生的“震網病毒”事件,證明了網絡攻擊能夠對現實設備產生實質性損壞[3]。相關報道顯示,對于工業控制系統的攻擊變得越來越頻繁[4],且隨著“等保2.0”時代的到來,工控安全問題得到了足夠重視,但是現實的理論研究與實際需求之間仍有較大差距,主要由于工業控制系統具有自身特殊原因,互聯網中成熟的安全方案不適合工業控制系統,例如很多工業控制系統不能輕易加裝防病毒軟件,系統補丁不能迅速更新、工業控制系統對于數據實時性和網絡穩定性要求較高以及工業控制系統中協議眾多等[2]。在某國對電網的一次攻擊中,黑客被認為在能源公司的IT網絡中隱藏了六個月而未被發現,他們在采取有條不紊的步驟使電源脫機之前獲得了訪問系統的特權[5]。在對某工廠的攻擊中,Stuxnet蠕蟲使用零時差攻擊來感染系統,同時使用復雜的rootkit隱藏其更改,并使用被盜的受信任證書來驗證其驅動程序[6]。火電廠是一個復雜的工業控制系統,作為重點電力基礎設施,其安全性關乎國家和人民的用電質量。而為了提高電力基礎設施網絡信息的安全水平,人們對于電力監控系統網絡安全防護技術進行了研究,由于電力監控系統屬于工業控制系統的一種并且在網絡安全研究方面具有較大的相似度,本研究以傳統工業控制系統為對象進行建模,說明網絡攻擊方法和檢測技術的有效性。
近些年對于工業控制系統的網絡安全研究較多,對于不同的網絡攻擊形式提出了針對性的檢測方法,進行數據攻擊的檢測往往采用主成分分析、小波分析和機器學習等檢測方法。王金煥等人[7]提出一種基于田納西伊斯曼過程(TE)的數據攻擊方式,并采用小波與KPCA方法進行檢測。劉大龍等人[8]提出一種基于多尺度主成分的檢測方法,用于檢測數據的欺騙性攻擊,這種檢測方法不依賴物理模型,能夠很好地檢測正弦攻擊。Li,Senyu等人[9]適用布谷鳥搜索方法優化BP神經網絡,提高了檢測的準確性和檢測效率。Krotofil,M等人在TE系統的基礎上研發了一個DVCP攻擊框架,支持Dos攻擊和數據攻擊,并將TE仿真初始種子設為隨機數,使得每次仿真的數據是變化的,便于驗證數據攻擊的有效性。Krotofil,M等人提出一種基于相關熵的數據攻擊檢測方法,并說明工控系統數據之間存在一定相關性,這種相關性能夠在檢測攻擊行為時提供幫助。Aoudi等人[10]提出一種基于過程數據的數據攻擊檢測方法(Pasad),能夠適用于數據攻擊及具有欺騙性質的數據攻擊,具有較高的魯棒性,利用系統過程參數的矩陣映射,通過判斷系統過程數據是否偏離正常值來確定是否受到網絡攻擊。
為了提高火電廠機組安全運行的穩定性,本文提出一種多傳感器攻擊方法,其攻擊數據與原始正常數據盡可能相似,傳統的檢測方法難以檢測出攻擊行為,并提出一種基于過程穩定性的檢測模型以檢測控制器和傳感器信號是否被惡意操縱,以便及時發現問題進行報警,檢測模型通過引入相關性特點,對異常數據進行放大,并對Pasad模型優化,使其適用于全廠數據的檢測,通過weiszfeld算法求矩陣的中位中心,增強檢測的準確性和及時性,并使用田納西伊士曼模型進行驗證,證明檢測方法的有效性。
本文選取的實驗對象為田納西-伊斯曼模型,是由美國伊斯曼化學公司開發的一個基于matlab的仿真平臺,模擬了一個真實的化工生產過程,其中包括反應釜、冷凝器、分離器、汽提塔和壓縮機等設備,構成了一個復雜的非線性控制過程,常被用于多變量控制、故障診斷等領域,Downs和Vogel[11]于1993年對該控制過程進行詳細的描述。這使得TE系統成為一個很好的案例,支持研究人員在此基礎上開展各種研究。
該生產過程主要為通過使用A、B、C、D、E五種反應物生產G和H兩個主要產品,其中B為一種惰性氣體,F為一種副產品,該過程所有反應都是放熱、不可逆過程。TE系統共有41個傳感器變量(19個成分測量值和22個連續數據測量值)、12個控制器變量和15個環境擾動,其中根據G/H的出產率不同TE系統有六種工作模式。
其反應過程為:

本文采用的DVCP攻擊框架將Ricker[12]的初始模型的傳感器信號和執行器實施數據攻擊和Dos攻擊,并且通過修改原始代碼,為每次模擬運行生成隨機數,從而在模型中允許模擬中的隨機性,保證數據運行有隨機干擾,每次仿真所產生的數據都有所不同。
單個模擬時間設為72小時,仿真數據的實時信號采樣為fs=2000s/h的采樣速率進行采樣,數據輸出數據的采樣為100s/h存儲在Matlab的工作空間。
傳感器的時序數據M是一個t×n的矩陣,表示n個傳感器在時間t中每個時間點數據值的大小。

Pasad模型為Aoudi[12]等人提出的一種數據驅動的檢測技術,Pasad方法主要分為兩部分,第一部分為訓練部分,其將傳感器測量的連續時間序列作為輸入,通過獲取正常時間段的穩定狀態,將待檢測時間段的數據映射到狀態矩陣中,檢測異常行為。

假設有一個單個傳感器中連續的時序數據,設滯后參數為L,其中K=N-L+1,將其嵌入L×K的hankel矩陣中,得到如下的矩陣X成為軌跡空間:

矩陣X包含系統運行中產生的誤差信息,為了獲取數據,將穩定時間段的數據X進行奇異值分解,獲得L個特征向量的正交集,保留r個前導正交特征向量(r 將時序數據進行計算時序的平均值: 通過將時序數據投影到投影矩陣中,得到此數據對應的狀態中心,則數據狀態中心為: 對于工業控制系統來說,傳感器的數據所反映的狀態變換具有相互關聯性,例如同一區域相似類型的傳感器比來自其他區域傳感器之間變化的關聯更加緊密。為了分析傳感器信號的相關性,使用皮爾遜相關系數(Pearson Correlation Coefficient)計算獨立的兩個傳感器之間的相關程度,其數值大小介于-1和1之間,具體公式如下: 相關系數的引入能夠區分不同數值之間的密切程度,通過對不同信號進行區分,將數據趨勢變化密切的信號劃分為一種信號簇,同簇的信號變化呈大致相同的趨勢,在攻擊者進行網絡攻擊的過程中會導致數據進入紊亂的狀態,導致信號之間的相關性減小。本文將對于同簇之間傳感器變化進行有選擇的放大,以達到放大攻擊的目的,方便檢測裝置檢測進行更好的檢測。 對于工業控制系統的攻擊往往是對單個控制器或傳感器進行攻擊,為了最終實現系統中斷生產過程,往往需要修改控制值或傳感器值以與正常值產生較大程度的偏離,且為了構建一種更加難以被監測到同時能產生較大危害的攻擊行為,本文采取將傳感器或控制器進行組合的方式來攻擊。 為了產生攻擊組合,本文提出一種基于相關系數來構造多傳感器攻擊的方法,使得攻擊能夠盡可能減少被檢測到的可能性。本文在重放歷史數據的基礎上增加選取均值為0的白噪聲作為攻擊信號。 ω(k)為正常數據最大值與最小值差的1/5與能量為0.01的白噪聲的乘積,這樣在保證能夠干擾適中的情況下,躲避常規的檢測手段同時能夠對系統產生影響。Δd數值為20,y1(k-Δd)表示2小時前此結點數據的參數,利用歷史數據重放能夠在確保數據最大可能的接近正常數據的同時使得數據進行欺騙,達到難以被檢測的效果。 為了確定攻擊結點,首先,對系統確定響應的攻擊對象,從被攻擊對象中選取被攻擊的目標,通過執行攻擊行為達到攻擊效果,確定攻擊結點個數;其次,根據系統各參數之間的相關性數據嘗試增加被攻擊結點;最后,驗證攻擊是否能夠引起系統失衡。 對于系統內n結點時序數據M,表示n個結點在時間為N范圍內的所有時序數據: 第一步:對每個結點的數據,將數據以10為步長求時序數據的滑動平均值,將數據進行平滑處理,減少系統噪聲和設備測量誤差帶來的影響。為了方便數據后續疊加計算,將數據進行標準化處理,將數據變成以100為均值、以10為方差的時序數據。 第二步:根據3.2中計算數據相關性公式,計算系統中各個數據的相關性,當相關性絕對值大于等于0.8時,說明數據之間存在較強的相關關系,對于數據的升降變化存在聯系。將相關性大于0.8的結點歸類為同簇數據,通過隨機設定一個結點作為標準結點,200減去與其相關性呈負相關所對應結點的數據,目的使其對應數據進行翻轉,使數據的相關性均統一變為正相關。然后利用下式對同簇的數據進行放大,作為訓練數據,mean(st)表示同簇數據相同時間所有結點對應的數據的均值,stj表示同簇數據中第j個結點的數據,data為數據空間矩陣。 第三步:將每個結點對應的放大后的數據x_j分別嵌入L為1100、K為1101的hankel矩陣中,形成如下矩陣。 第四步:將每個結點所對應的hankel矩陣數據進行運算并疊加,得到軌跡空間。 其中, 第六步:取訓練數據的2小時后逐漸穩定的數據,投影到投影空間矩陣中,得到狀態矩陣c。 對于狀態矩陣c中數據x通過weiszfeld算法求狀態矩陣的中位中心,其中y(i+1)表示下一個時間點的中心,第一個y可以選取算數平均數中心,‖xj-yi‖表示第j個時間的數據與第i個中心值的歐式距離,最后通過迭代優化的限值讓迭代停止,本文設置當迭代優化步長低于0.0001視為已獲得最優中位中心值。本文中位中心的獲取比Aoudi等人[12]所提出方法均值獲取的數據更能準確地表達數據的穩定狀態。 第七步:取長度為L的數據data作為訓練數據,通過對data中同一時間所有結點數據求二范數,獲得當前系統狀態距離。 通過投影空間進行投影得到穩定狀態,然后將穩定狀態中心與獲得的新的穩定狀態矩陣進行做差,求矩陣的歐式距離,得到穩定狀態空間與形心之間的距離ΔD。將訓練數據ΔD+δ的最大值作為距離上限,用來檢測測試數據是否存在異常,本文δ取值為100。 第一步:按照訓練部分對數據進行平滑處理的運算方式對待檢測時序數據進行平滑處理,然后使用訓練部分獲取的均值和方差對待檢測數據進行標準化處理,得到時序數據st。 第二步:如訓練部分第二步所示,利用公式(17)~(18)得到待檢測部分的數據空間矩陣data。 第三步:如訓練部分第七步所示,利用公式(25)~(27)得到狀態矩陣w,然后利用訓練部分獲得的穩定狀態中心Y和投影空間P,進行公式(28)的運算,得到穩定狀態空間與形心之間的距離,通過檢測每個時間點的距離ΔD值的大小判斷是否存在異常行為。 基于過程穩定性的檢測方法主要結合Pasad方法所提出的投影矩陣思想,將適用于單個結點的檢測方法改進為適用于全廠大量結點數據的對象,同時結合相關性思想,將攻擊行為進行放大,增強檢測算法對于隱藏性較強的攻擊行為的檢測能力,同時能夠減少檢測時間,增強檢測攻擊行為的實時性,能夠使得運行維護人員及時發現攻擊行為,對于減小損失和及時的災后重建具有重要意義。 為了說明攻擊方法的有效性,本文選取攻擊對象為TE模型中的反應器,為了對TE生產過程產生破壞,實現攻擊途徑為主要對反應器液位進行攻擊,最終導致系統生產過程中斷,并確定攻擊結點個數為4。本文按照第2部分多傳感器攻擊模型描述步驟,通過實驗確定對于一個多結點的系統,有眾多攻擊方式組合可以達到對攻擊對象產生嚴重影響的目的。本文列舉三種攻擊方式,攻擊方式1(xmv8、xmeas1、xmeas4、xmeas8)、攻擊方式2(xmeas1、xmeas5、xmeas7、xmeas8)、攻擊方式3(xmv8、xmeas1、xmeas4、xmeas8)和攻擊方式3(xmv1、xmeas5、xmeas7、xmeas8)均可導致系統生產過程中斷。其中對于攻擊方式1中xmv5中加的ω(k)(噪聲)取正值,目的是增大給進量,同時結點xmeas1、xmeas4、xmeas8噪聲均為負,使采集數據低于正常水平,這種噪聲增加方式能夠縮短攻擊引起系統中斷的時間;對于攻擊方式2,只有對于xmeas8采用負值的噪聲,其余均為正值的噪聲,這樣能夠激化測量值的矛盾,縮短攻擊引起系統中斷的時間。為展示攻擊效果本文以攻擊方式1和2為代表進行展示,結果如圖1和圖2所示。 圖1 攻擊方式1 圖2 攻擊方式2 為了說明本文提出的攻擊方式具有較強的欺騙性,本文使用Aoudi等人[12]所提出的Pasad模型對于以上攻擊方式1和攻擊方式2檢測攻擊行為,檢測結果如圖3和圖4所示。 圖3 檢測攻擊方式1 圖4 檢測攻擊方式2 根據檢測結果可知,對于多傳感器構造的攻擊模型,適用Pasad方法均檢測不出攻擊結點遭受攻擊的情況。 為了說明基于過程穩定性檢測模型的有效性,利用此模型對于攻擊方式1和攻擊方式2分別進行檢測,檢測結果如圖5所示。 圖5 基于過程穩定性的檢測結果 對于攻擊方式1,在5008時間檢測到攻擊行為;對于攻擊方式2,在5008時間檢測到攻擊行為。根據TE模型仿真時間每小時有100個數據點,所以對于以上兩種攻擊方法,均在攻擊發生后的4.8分時檢測到攻擊行為,檢測時間較常規方法有較大提升。 為了說明基于過程穩定性檢測方法的性能,同時對于Aoudi等人[12]提出Pasad方法文中所列的網絡攻擊所有行為進行檢測,結果證實均能檢測出攻擊行為,結合文中描述的DA1攻擊數據,將基于過程穩定性檢測模型與Pasad模型的檢測結果進行比較,檢測結果如圖6所示。 圖6 檢測結果對比 如圖6所示,攻擊在4小時的時間點發生,使用Pasad模型檢測,在4363時間點檢測到攻擊行為,使用基于過程穩定性的檢測模型進行檢測,在4190時間點檢測到攻擊行為,檢測到的時間較之前提前1.5小時。由于基于過程穩定性的檢測模型能夠對系統所有數據進行分析,相較于之前的算法能夠極大節省算力。綜上所述,基于過程穩定性的檢測模型在檢測準確性、及時性以及計算性能上都有顯著提升。 本文提出一種多傳感器攻擊模型,在對控制系統進行攻擊時具有較高的隱藏性,并能夠導致系統中止生產過程,為了應對這種多傳感器攻擊方式,本文結合相關性特點改進一種Pasad檢測模型,提出一種基于過程穩定性的檢測模型,使其適用于全廠設備同時檢測,并在TE系統中進行實驗論證,實驗結果表明基于過程穩定性的檢測模型能夠提高檢測網絡攻擊的準確性、及時性和計算性能。



1.3 相關系數

2 多傳感器攻擊模型

3 基于過程穩定性的檢測模型











3.2 攻擊檢測
4 結果實驗與分析
4.1 多傳感器攻擊結果





4.2 其他攻擊數據分析

5 結論