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

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

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

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

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

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

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

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

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

可判定該觀測(cè)序列值異常。

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

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

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

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

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