敖 麒,朱振乾,李大勇
(1.工業(yè)信息安全(四川)創(chuàng)新中心有限公司,四川 成都 610041;2.中國電子科技網(wǎng)絡信息安全有限公司,四川 成都 610041;3.北京北方車輛集團有限公司,北京 100072)
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)是指由計算機與工業(yè)過程控制部件組成的自動控制系統(tǒng)[1],廣泛應用于工業(yè)、能源、交通、水利等各個領域。
隨著網(wǎng)絡技術的發(fā)展,兩化融合的需要,工業(yè)控制系統(tǒng)需要更多地接入開放的網(wǎng)絡空間中,由此帶來的風險也不斷增加。近年來,以Stuxnet病毒為代表的針對工控系統(tǒng)的高級持續(xù)性威脅(Advanced Persistent Threat,APT)攻擊越來越頻繁,舊有的物理隔離防護策略已不能滿足現(xiàn)代ICS防護的需要。
APT攻擊綜合多種先進的攻擊手段,利用工控系統(tǒng)的漏洞,持續(xù)隱蔽地對工業(yè)控制過程(Industrial Control Process,ICP)進行干擾和破壞。由于工業(yè)控制過程與工業(yè)現(xiàn)場的物理設備直接連接,一旦受到攻擊將會產(chǎn)生難以估計的后果。由此可見,盡早發(fā)現(xiàn)持續(xù)隱蔽的攻擊行為將能夠有力地保護工業(yè)安全,避免人員和財產(chǎn)損失。
根據(jù)國際計算機安全協(xié)會(International Computer Security Association,ICSA)的定義,入侵檢測是通過從計算機網(wǎng)絡或計算機系統(tǒng)中的若干關鍵點收集信息并對其進行分析,從中發(fā)現(xiàn)網(wǎng)絡或系統(tǒng)中是否有違反安全策略的行為和遭到襲擊跡象的一種安全技術。入侵檢測系統(tǒng)(Intrusion Detection System,IDS)被稱為防火墻之后的第二道安全閘門,在工業(yè)生產(chǎn)過程中,能夠檢測到攻擊者對工業(yè)控制過程的內(nèi)部和外部攻擊,發(fā)出警告并啟動防護措施,以避免物理系統(tǒng)發(fā)生損壞。
由于工業(yè)控制系統(tǒng)自身與物理世界緊密聯(lián)系的特殊性,類似Stuxnet一類的病毒攻擊往往潛伏于工業(yè)控制節(jié)點中,修改控制邏輯時,并不會在網(wǎng)絡流量中表現(xiàn)出異常,僅體現(xiàn)在工業(yè)控制過程的狀態(tài)信息中,傳統(tǒng)的入侵檢測方法無法及時發(fā)現(xiàn)[2]。
根據(jù)采集數(shù)據(jù)的來源,入侵檢測方法可以分為基于主機(Host-Based)的入侵檢測和基于網(wǎng)絡(Network-Based)的入侵檢測。基于網(wǎng)絡的入侵檢測方法是對網(wǎng)絡傳輸數(shù)據(jù)包進行實時檢測,提取分析其中相關的數(shù)據(jù)特征信息,從而判斷網(wǎng)絡入侵是否發(fā)生。基于主機的入侵檢測方法是對系統(tǒng)主機的相關信息進行檢測,提取系統(tǒng)審計記錄、運行狀態(tài)、日志內(nèi)容等信息的關鍵特征,識別其中的異常數(shù)據(jù),進而中止攻擊行為。
為保證工業(yè)控制系統(tǒng)的可用性,工業(yè)現(xiàn)場往往采用較為穩(wěn)定的網(wǎng)絡拓撲結(jié)構(gòu)。基于網(wǎng)絡的入侵檢測可以針對網(wǎng)絡流量的規(guī)律性變化,通過神經(jīng)網(wǎng)絡,支持向量機(Support Vector Machine,SVM)、貝葉斯網(wǎng)絡等機器學習算法進行建模,若出現(xiàn)違反該模型/模式的行為出現(xiàn)時,即視為網(wǎng)絡入侵并發(fā)出警告。
文獻[3]針對Modbus/TCP協(xié)議漏洞頻出問題,設計了基于卷積神經(jīng)網(wǎng)絡的異常報文檢測模型,實現(xiàn)對Modbus/TCP異常報文檢測。文獻[4]設計并實現(xiàn)基于神經(jīng)網(wǎng)絡的多種工業(yè)協(xié)議入侵檢測模塊,并利用神經(jīng)網(wǎng)絡完成對模型的訓練和異常檢測。文獻[5]將n-gram算法用于特征提取,結(jié)合單類支持向量機(One-Class Support Vector Machine,OCSVM)與集成學習,對Modbus網(wǎng)絡進行異常檢測。文獻[6]針對電網(wǎng)工控系統(tǒng)的流量異常檢測需要,提出了基于熵的動態(tài)半監(jiān)督K-means算法,并通過OCSVM進行了改進。文獻[7]提出一種基于布隆過濾器(Bloom Filter)的入侵檢測機制,以應對針對汽車CAN總線的重放和修改攻擊。
基于網(wǎng)絡的入侵檢測需要實時監(jiān)聽網(wǎng)絡傳輸中的數(shù)據(jù)流量信息,對帶寬的要求較高,基于主機的入侵檢測則能有效避免此類問題。
文獻[8]從工業(yè)控制網(wǎng)絡流量中提取行為數(shù)據(jù)序列,建立控制器的正常行為模型和ICS的受控過程,并比較測試的行為數(shù)據(jù)和預測行為數(shù)據(jù)以檢測任何異常。文獻[9]研究如何將歷史相量測量單元(Phasor Measurement Unit,PMU)測量結(jié)果轉(zhuǎn)換為數(shù)據(jù)樣本以進行學習,建立分布式檢測框架以檢測整個電力系統(tǒng)中的數(shù)據(jù)操縱攻擊。文獻[10]針對SCADA組件的輸入輸出時間序列,提出兩種基于隱式馬爾可夫模型(Hidden Markov Model,HMM)和人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)算法的網(wǎng)絡攻擊檢測技術。文獻[11]研究通過分布式攻擊檢測(Distributed Attack Detection,DAD)的方法識別工廠物理過程的異常,實時檢測針對水處理廠傳感器的入侵攻擊。文獻[12]將來自制造過程級別和生產(chǎn)系統(tǒng)級別的物理數(shù)據(jù)與來自基于網(wǎng)絡和基于主機的IDS的網(wǎng)絡數(shù)據(jù)集成在一起,采用KNN等機器學習方法,實現(xiàn)網(wǎng)絡制造系統(tǒng)(Cyber-Manufacturing System,CMS)的惡意攻擊入侵檢測。文獻[13]介紹了一種完全分布式的通用異常檢測方案,該方案使用圖論并利用物理過程的時空相關性對通用大型網(wǎng)絡工業(yè)傳感系統(tǒng)(Networked Industrial Sensing Systems,NISS)進行實時異常檢測。
針對工業(yè)控制系統(tǒng)的入侵攻擊,具有信息物理耦合和攻擊隱蔽的特點:信息物理耦合使得攻擊的設計與業(yè)務流程緊密相關,最終體現(xiàn)在對物理系統(tǒng)的巨大破壞上;攻擊隱蔽是指攻擊者在成功獲取工業(yè)控制權限前,往往進行長期潛伏,躲避已有的安全防護措施。現(xiàn)有的入侵檢測方法往往較少考慮到工業(yè)控制過程自身的特點。本文提出一種面向工業(yè)控制過程的入侵檢測方法,從工業(yè)控制過程出發(fā),充分考慮工控攻擊的特點,將入侵檢測轉(zhuǎn)化為物理系統(tǒng)狀態(tài)變化檢測的最優(yōu)停止問題。
根據(jù)自動控制理論,對于離散線性控制系統(tǒng),可以用如下的狀態(tài)方程進行描述:

式中,x(t)=(x1t,…,xnt)∈Rn是系統(tǒng)變量,表示系統(tǒng)在t時刻的狀態(tài);A=(aij)∈Rn×n是狀態(tài)矩陣;B=(bij)∈Rn×m是輸入矩陣;u(t)=(u1t,…,umt)表示t時刻控制器的輸出;w(t)∈Rn是系統(tǒng)狀態(tài)的擾動變量。
系統(tǒng)的狀態(tài)x(t)一般難以直接測量,可以通過傳感器的觀測值建立聯(lián)系,觀測方程如下:

式中,y(t)=(y1t,…,ylt)∈Rl表示l個傳感器在t時刻的觀測值;C=(cij)∈Rl×n是輸出矩陣;v(t)∈Rl是觀測值的擾動變量。
針對工業(yè)控制過程的網(wǎng)絡攻擊,最終目的是通過干擾控制邏輯,造成不可接受的物理破壞。為防止異常情況發(fā)生,工業(yè)控制過程中往往都會設置一些報警閾值,物理系統(tǒng)的某些狀態(tài)監(jiān)測數(shù)值一旦超過這些閾值,保護機制會立刻響應。網(wǎng)絡入侵時,高級的攻擊者能夠規(guī)避報警機制,整個攻擊過程保持隱蔽,最終使被控對象的物理狀態(tài)值發(fā)生偏離,同時這種偏離又不至于觸發(fā)安全監(jiān)控警告,難以發(fā)現(xiàn)。
工業(yè)控制系統(tǒng)遭受到的攻擊大致可以分為欺騙攻擊和拒絕服務攻擊(Denial of Service,DoS)。欺騙攻擊是針對傳感器、執(zhí)行器、控制器等節(jié)點,通過注入(Injection)、更改(Modification)、重放(Replay)等方式,發(fā)送控制過程中的虛假信息,即y~≠y或u~≠u,實現(xiàn)攻擊者想要的系統(tǒng)失控。網(wǎng)絡DoS攻擊一般是通過阻塞或阻斷通信信道、封鎖報文等方式,使工業(yè)控制過程參與各方無法有效地傳輸信息。
圖1表示了工業(yè)控制過程可能遭受的潛在攻擊。其中:攻擊A表示對工業(yè)控制過程中的物理裝置進行直接的物理破壞;攻擊B和攻擊D表示欺騙攻擊,攻擊者通過注入、重播、修改等手段使控制過程中的數(shù)據(jù)發(fā)生變化,即攻擊C和攻擊E表示DoS攻擊,攻擊者通過阻斷通信信道的方式,使得工業(yè)控制過程的參與各方無法正常工作。

圖1 針對工業(yè)控制過程的攻擊
黑客對于工業(yè)控制系統(tǒng)的攻擊,最終目的是要對物理控制系統(tǒng)產(chǎn)生影響,因此工業(yè)控制過程中的物理狀態(tài)參數(shù)在受到入侵攻擊后必然發(fā)生變化。基于工業(yè)控制過程的入侵檢測可以抽象成一個統(tǒng)計學上的變點檢測問題,即利用一定的統(tǒng)計指標和方法,對物理狀態(tài)的時序數(shù)據(jù)進行監(jiān)測,當某個時刻數(shù)據(jù)發(fā)生異常變化時,盡快檢測出來。由于針對ICS的攻擊呈現(xiàn)隱蔽性的特點,入侵檢測方法需要對微小的數(shù)據(jù)偏移變化有相當?shù)拿舾卸取?/p>
累積和(Cumulative Sum,CUSUM)是變點檢測問題的常用分析方法。其設計思想是:將每個樣本值與目標值的偏差進行累計求和,過程均值中的微小波動帶來累計偏差值的穩(wěn)定增加(或降低),從而提高檢測過程中對小偏移的靈敏度。CUSUM適用于在一個相對平穩(wěn)的觀測序列中,發(fā)現(xiàn)異常突變的數(shù)據(jù)。工業(yè)控制過程中的系統(tǒng)狀態(tài)參數(shù)符合特定的物理規(guī)律,呈現(xiàn)出相對穩(wěn)定的特點,適合應用CUSUM算法進行入侵檢測。
20世紀90年代提出的非參量CUSUM算法,通過對觀測統(tǒng)計量均值的正向漂移來判斷變化點是否出現(xiàn),而無須獲得攻擊狀態(tài)下的被檢測序列的概率分布,是一種獨立于黑客攻擊統(tǒng)計模型的非參量檢測算法,更符合工業(yè)實際需要。
非參量CUSUM算法判決統(tǒng)計量表達式為:

式中,Sn是判決統(tǒng)計量,zn是觀測統(tǒng)計量,k是為了降低誤報率而選擇的一個較小的正數(shù),稱作偏移常數(shù)。a+右上的“+”表示當a>0時,a+=a;a≤0時,a+=0。檢測結(jié)束時刻由下式?jīng)Q定:

h是報警閾值,若Sn超過h,判定異常變化出現(xiàn)。
圖2是針對傳感器欺騙攻擊的入侵檢測過程。攻擊者以隱蔽的方式修改現(xiàn)場傳感器的輸出值,將真實觀測值yt修改為攻擊設計值(低于報警閾值)。假設控制系統(tǒng)的近似模型已知,能夠計算得到物理系統(tǒng)的預期輸出則入侵檢測模塊可以通過CUSUM算法比較發(fā)現(xiàn)傳感器數(shù)據(jù)發(fā)生改變的攻擊事實。

圖2 工業(yè)控制過程中的傳感器攻擊

代入式(4)中,可以得到判決準則:

在正常狀態(tài)的工業(yè)控制過程中,zt的實際觀測值與預測值偏差的期望值應該為0,即隨著檢測時間變長,n越來越大,由大數(shù)定律得到而式(7)的判決準則表示不管時間有多長,與均值0都有一個固定的偏移k,這對于檢測偏移小于k的攻擊是不利的,容易發(fā)生漏報。為降低漏報,需要進一步對k進行優(yōu)化。
假設有一服從正態(tài)分布N(μ,σ2)的檢測序列x1,x2,…根據(jù)統(tǒng)計學的3σ準則,若第一個觀測值x1>3σ,可以判定x1異常,否則繼續(xù)觀察第二個值x2,若x2>3σ或x1+x2>3σ+3σ,可以判定x1+x2異常。另外,由于x1+x2~N(2μ,2σ2),若,也可以判定x1+x2異常。一般地,對于n個觀測值x1,x2,…,xn,若:

可判定該觀測序列值異常。

本節(jié)將以高爐熱風爐的爐頂溫度自適應控制系統(tǒng)為對象,對基于非參量CUSUM的工業(yè)控制系統(tǒng)入侵檢測方法進行仿真實驗驗證。熱風爐拱頂溫度是熱風爐生產(chǎn)中的重要參數(shù),拱頂溫度較低時,在送風期將不能保證規(guī)定的熱風溫度,而拱頂溫度過高將會對拱頂造成損傷。
為了使仿真數(shù)據(jù)接近工業(yè)的真實情況,對拱頂溫度傳感器輸出疊加的隨機噪聲應略大于熱電偶的測量誤差,取2.5℃。熱風爐拱頂溫度的模型預測誤差不超過15℃,與隨機噪聲疊加后,觀測統(tǒng)計量zt的誤差設定在[-17.5,17.5]。將該誤差與熱電偶誤差再次疊加,在MATLAB中進行仿真,得到圖3,zt的均值約為9℃,方差σ約為10℃。
本文假定黑客對熱風爐拱頂溫度傳感器實施偏差攻擊,即對溫度傳感器的輸出做出一個微小偏差常數(shù)δ的修改,傳感器值為y~=y^-δ。由式(9)可知,從時間t=0開始,攻擊若要不被發(fā)現(xiàn),δ需滿足:

檢測到入侵攻擊的時間與攻擊偏差常數(shù)δ、判別參數(shù)k和h的大小有關。參考3σ準則,取k=3σ,即k約為30℃。在仿真中,假設傳感器采樣周期為0.1秒,當攻擊偏差常數(shù)為2℃時,則60秒后攻擊累積偏差可達1 200 ℃,綜合考慮檢測準確率和效率,取h=500。
圖4表示δ取不同值時,拱頂溫度傳感器測量值與預測值的偏差曲線。偏差攻擊持續(xù)進行一段時間后,危害開始顯現(xiàn),拱頂溫度難以達到規(guī)定值,熱風爐難以正常運轉(zhuǎn)。

圖3 溫度傳感器檢測值與預測值誤差分布(正常運行)

圖4 溫度傳感器檢測值與預測值誤差分布(偏差攻擊)
不同偏差攻擊下,基于非參量CUSUM算法的報警時間如表1所示。

表1 偏差攻擊的報警時間
從仿真結(jié)果可見,以攻擊偏差δ 為特征的攻擊力度越大,基于非參量CUSUM的工業(yè)控制系統(tǒng)入侵檢測效果越有效,越能夠及時發(fā)現(xiàn)攻擊行為。
針對以破壞工業(yè)物理系統(tǒng)為目的的網(wǎng)絡攻擊場景,本文提出面向工業(yè)控制過程的入侵檢測算法,針對攻擊隱蔽性的特點和控制系統(tǒng)攻擊實時檢測的要求,將此類攻擊檢測抽象為“觀測對象狀態(tài)變化檢測的最優(yōu)停止問題”。針對黑客攻擊的概率分布難以獲得、概率密度難以計算的問題,由傳感器的觀測值和預測值的差值構(gòu)成檢測序列,提出基于非參量CUSUM的ICS入侵檢測方法。最后,以熱風爐的拱頂溫度控制系統(tǒng)為對象,在溫度傳感器受到偏差攻擊的場景下,通過仿真驗證了算法的有效性。下一步將在目前研究的基礎上,提高檢測精度,并研究其他隱藏攻擊方式下的檢測方法。