杜大軍 張競帆 張長達 費敏銳 YANG Tai-Cheng
分布式通信網絡在工業控制系統中大量的部署和應用,給信息傳輸帶來便利的同時,也打破了傳統控制系統的孤島壁壘,使得其從“封閉”走向“開放”,導致網絡化控制系統極易面臨惡意攻擊[1-4].中國經濟周刊報道: 工業控制系統中受網絡安全事件影響的企業占比達到了28.6%,造成工控網絡停機的企業高達19.1%,帶來極大的危害.如2010 年伊朗核電站遭受到震網病毒攻擊[5];2014 年德國一家鋼鐵制造廠的熔爐控制系統遭受網絡攻擊,導致整個生產線被迫停止運轉;同年流行于歐洲的新型木馬病毒Havex 對工控系統造成了重大損害[6];2015 年烏克蘭國內多個區域的電網因遭受網絡攻擊而導致大規模停電[7];2019 年委內瑞拉國內的電網遭受網絡攻擊造成了6 天的大規模停電事故[8].這些網絡攻擊不但帶來大規模物理破壞,而且經濟損失慘重.
為了應對網絡攻擊,目前國內外學者主要從攻擊檢測、攻擊后的隔離與恢復、安全控制等角度展開研究[9-10].其中,有助于迅速發現網絡攻擊的檢測方法尤其受到國內外學者重視[11-12].根據防御者在設計檢測機制時是否主動增加額外激勵信號以助檢測,可將檢測方法分為被動檢測和主動檢測方法.
被動檢測方法根據已知的系統信息進行攻擊檢測,并不干涉和影響原系統正常運行,如針對服從高斯分布的網絡攻擊信號[13-15],采用卡爾曼濾波-卡方法[16]進行檢測;針對拒絕服務攻擊,采用基于分組接收速率分析法[17]進行檢測;針對分布式系統遭受虛假數據注入攻擊,采用一致性分析法[18],根據各子系統物理耦合、狀態變量和控制決策之間相關性進行檢測;針對監視控制與數據采集系統(Supervisory control and data acquisition,SCADA)
的網絡攻擊,采用布谷鳥優化算法和神經網絡[19]進行檢測.然而,最近一些攻擊者精心構造網絡攻擊信號,以躲過被動攻擊檢測機制,進而破壞系統運行的穩定性和經濟性[20-22].因此,為了提高網絡攻擊檢測能力,主動檢測技術應運而生.
主動檢測方法不僅需要已知的系統信息,而且主動增加額外的激勵信號以助檢測,這將在一定程度上影響系統性能.例如,動態水印(Dynamic watermarking,DWM) 技術屬于典型的主動檢測方法[23],首先主動向系統增加一個私有激勵信號 (水印信號),然后根據水印信號的統計特征設計攻擊檢測機制,進而提高攻擊檢測能力.針對重放攻擊,在系統輸入中增加水印信號,然后根據水印信號的系統響應是否和預計的系統響應相一致以進行主動檢測[23];針對線性時不變系統遭受網絡攻擊,分別采用多水印[24]、周期水印[25]、乘性水印[26]和遞歸水印[27]等技術進行主動檢測以提高檢測精度;在此基礎上,文獻[28]針對確定性系統,提出基于動態水印的新型攻擊檢測方法;文獻[29]提出任意噪聲分布情況下的動態水印信號設計方法;文獻[30]將基于動態水印的網絡攻擊檢測算法應用于自動發電系統中,以提高系統安全性.
以上基于動態水印的主動檢測方法主要針對確定性系統展開,然而由于對實際系統特性缺乏足夠了解或環境變化導致某些物理參數產生漂移等,使得建立的模型往往具有不確定性.這時基于誤差方差與過程噪聲方差一致性原理的漸進檢測式顯然不適用,這是因為正常情況下模型不確定項的變化會導致檢測式計算出的值偏離設定值,從而導致檢測式在正常情況下發生誤判并持續報警,使得系統無法正常運行.
為了解決以上問題,本文的主要貢獻如下: 1) 分析系統模型中不確定性因素導致傳統水印檢測式失效的原因,然后考慮模型不確定項和過程噪聲的統計規律,將其影響轉化為對方差變化特性進行分析,提出兩個具有魯棒性的攻擊檢測式以及檢測式中關鍵時變方差閾值的確定方法;2) 采用系統失真信號功率定量刻畫攻擊信號造成系統性能損失程度,理論證明了系統失真信號功率上界;3) 基于水印信號與過程噪聲信號和模型不確定項組成的混合信號相互獨立的性質新增第三檢測式,理論證明了系統失真信號功率上界進一步受限范圍,進而提升系統的安全性.
基于動態水印的主動檢測框架如圖1 所示.被控對象為模型不確定系統且受到高斯噪聲w(k) 干擾;系統輸出y(k) 經過傳感器測量后通過網絡傳輸到緩存器,由于y(k) 可能遭受網絡攻擊,故到達緩存器時記為z(k).緩存器一方面將z(k) 送到控制器計算得到控制信號uc(k),進一步為了提高攻擊檢測能力,通過水印產生器主動向uc(k) 中注入動態水印信號e(k),進而形成帶有水印的控制信號u(k),最后傳送到執行器實現對系統控制;另一方面將z(k)傳送到攻擊檢測器,同時運用uc(k) 和e(k) 通過攻擊檢測機制(即3 個攻擊檢測式)進行檢測,當其中任意一個檢測結果超出設定閾值即判定系統遭受攻擊.

圖1 基于DWM 的主動檢測框架Fig.1 Active detection framework based on DWM
考慮圖1 中模型不確定系統的狀態方程為
其中,x(k) 是系統狀態變量,u(k) 是控制輸入,y(k)是系統輸出,w(k+1) 是均值為零、方差為的獨立同分布高斯噪聲;Δa(k)=EaΛa(k)Fa為系統的不確定性項[31],Ea和Fa是反映模型不確定參數結構信息的已知常數,(k)≤1.
系統輸出y(k) 通過傳感器測量并經過網絡以及緩存器傳輸到控制器為z(k),則
其中,zk=(z(0),z(1),···,z(k)),gk(·) 為系統正常運行的控制率,如狀態反饋控制、PID 控制等.
當系統輸出y(k) 未遭受網絡攻擊時,則z(k)=y(k),控制器會計算出正確的控制率;當y(k) 遭受網絡攻擊 (如虛假數據注入攻擊等) 時,則z(k)y(k),控制器計算出錯誤的控制率,這勢必影響控制系統性能.因此,需要設計攻擊檢測器以判斷z(k) 是否遭受到網絡攻擊.
當控制器計算出控制信號uc(k) 后,水印生成器生成動態水印信號e(k),主動注入到控制信號作為認證信號,即
其中,e(k) 是均值為零、方差為的獨立同分布高斯隨機信號.
將式(4)代入式(1),則系統閉環模型為
當系統控制信號被注入動態水印信號后,攻擊者通常無法將過程噪聲信號w(k) 和動態水印信號e(k)分離.在此基礎上,設計的攻擊檢測器能有效提高攻擊檢測率.針對確定性系統,傳統動態水印檢測根據系統閉環方程、水印信號和過程噪聲均為高斯分布特性[28]進行設計
根據式(6) 和式(7) 中檢測序列{x(k+1)-ax(k)-buc(k)}k和{x(k+1)-ax(k)-buc(k)-be(k)}k的方差是否與設定的方差值相一致,可判定系統有無遭受網絡攻擊.
然而,針對模型不確定系統,根據閉環方程(5),可得
注 1.與式(6)和式(7)不同,式(8)和式(9)中含有的模型不確定項 Δa(k)x(k) 導致其方差值不固定,若仍然采用傳統動態水印檢測方法,將使得檢測結果錯誤,進而導致檢測失效,這表明傳統基于方差一致性的水印檢測方法不適用于模型不確定系統.因此,需分析模型不確定項 Δa(k)x(k) 對式(8)和式(9)中兩個序列的方差影響,并提出針對不確定系統的動態水印檢測方法.
因此,式(8)和式(9)在每一時刻的統計規律為
基于式(10)和式(11),將模型不確定項和過程噪聲統計規律的影響轉化為對方差變化特性進行分析,設計了如下兩個具有魯棒性的攻擊檢測式:
檢測式 1 (Test 1).
正常情況下,D1 需滿足
檢測式 2 (Test 2).
正常情況下,D2 需滿足
當z(k+1) 同時滿足Test 1 和Test 2 時,則認為系統正常運行;否則認為系統遭受到攻擊,攻擊檢測器將會觸發報警.從Test 1 和Test 2 可以看出,相比較傳統水印檢測式無法適用于不確定系統的問題,本文將其轉換成具有一定魯棒性的不等式,避免了傳統檢測式將系統正常運行誤判為攻擊的行為,從而提升模型不確定系統的攻擊檢測魯棒性.
注 3.Test 1 和Test 2 中的時變方差閾值的選擇直接影響檢測性能.當閾值過小時,不等式范圍相應變小,將出現模型不確定項Δa(k)x(k)的變化被誤認為是攻擊的情況;當閾值較大時,不等式范圍相應變大,將出現攻擊無法被有效檢測出的情況,因此合理選擇閾值至關重要.
對式(14)兩邊進行求方差計算,可得
由于狀態變量、動態水印信號以及過程噪聲信號之間相互獨立,上式進一步化簡,可得
針對模型不確定系統,采用Test 1 和Test 2 能夠提高檢測率.然而,在最壞情況下,攻擊者若能夠躲過檢測,則攻擊造成的失真信號功率的大小以及對系統造成破壞的程度將是一個亟待解決的問題.
為了解決上述問題,首先定義每一時刻網絡攻擊造成的系統失真信號為
當系統未遭受網絡攻擊時,z(k)=y(k)=x(k),此時失真信號v(k)=0;當輸出數據遭受網絡攻擊被篡改時,則v(k)0.
為了定量評價攻擊信號對系統性能損失程度,采用信號功率對失真信號進行刻畫,網絡攻擊造成的系統失真信號功率定義為
式(17)反映了攻擊信號造成系統性能損失的大小,功率越大代表網絡攻擊造成系統性能損失越大.基于Test 1 和Test 2,并結合系統失真信號功率定義,可得定理1,其定量給出了系統失真信號功率的上界.
定理 1.當模型不確定系統遭受網絡攻擊并躲過Test 1 和Test 2 時,攻擊造成的系統失真信號功率為
證明.若z(k) 躲過攻擊檢測,則需滿足Test 1:
其中,l(k)=Δa(k)z(k-1)+w(k) 表示模型不確定項和噪聲構成的混合信號,其方差需滿足
同理,z(k) 也需滿足Test 2:
為了進一步簡化證明過程,定義3 個新的變量:ε1(k),ε2(k),ε3(k),分別為
進一步,將ε1(k) 與ε2(k) 相減,可得
將ε2(k) 與ε3(k) 代入式(20),可得
由于狀態變量、動態水印信號以及噪聲信號之間相互獨立,故e(k-1) 與l(k) 相互獨立,則可將式(25)化簡為
式(26)表明了水印信號與失真信號之間的相關性,并且其上界值和下界值滿足:ε2(k)/2-ε3(k)/2=(EaFa)2/2,即兩個信號的相關性大小和模型不確定項大小有關,當模型不確定項取值較小時,兩個信號之間的相關性相對較弱.如果系統無模型不確定性時 (Ea=Fa=0),則水印信號和失真信號不相關.
接下來,針對模型不確定項和噪聲構成的混合信號l(k)=Δa(k)z(k-1)+w(k)=x(k)-ax(k-1)-bgk-1(zk-1)-be(k-1),設一個可測集Sk=σ(xk,zk,ek-2)進行描述,即
攻擊者能獲得混合信號和水印信號的組合l(k)+be(k-1)=x(k)-ax(k-1)-bgk-1(zk-1),并且l(k)+be(k-1) 在每一時刻符合獨立同高斯分布,故通過條件估計獲得(k),條件估計分布為
將式(27)代入上式,進一步有
對上式兩邊同時除以T,并取極限有
將式(30)代入式(26),可得
進一步,將式(24)代入式(31),可得
式(32)中不等式右邊為
為了進一步簡化證明過程,定義一個新的變量Π,則
另一方面,當系統無模型不確定性時[8],則
當系統存在模型不確定性時,則
因此,可得
注 5.采用動態水印主動檢測方法后,利用攻擊者無法分離出水印信號這一特性,攻擊檢測器根據采集數據形成等式,即
該式表明,序列{Δa(k)x(k)+w(k+1)+v(k)}可以計算獲得,將該序列在正常情況下的統計規則作為標準,以判斷系統是否遭受到攻擊.當系統正常時,序列{Δa(k)x(k)+w(k+1)+v(k)}中的v(k) 為零;當攻擊存在時,v(k) 則不恒等于0.然而在最壞情況下,攻擊者能夠躲過檢測,此時v(k) 不恒等于0,會對系統造成一定的損害.定理1 定量給出攻擊造成的失真信號功率的上界,展示了兩個檢測式對攻擊造成系統失真信號功率的限制能力,這也表明了兩個檢測式具有抑制攻擊對系統造成破壞的能力,同時還表明當模型確定時,式(33)中失真信號的功率將恒等于0.
當只使用Test 1 和Test 2 進行攻擊檢測時,不可避免地存在以下一些不足:
1 ) 當模型不確定存在時,若閾值選擇不當,躲過攻擊檢測的失真信號功率上界有時會過大,這表明在最壞情況下躲過檢測的攻擊將會對系統造成比較大的損害;
2 ) 當無法保證水印信號e(k-1) 和失真信號v(k)無關時,攻擊者能夠使用包含水印信號信息的數據構造攻擊,以通過Test 1 和Test 2;
3 ) 當無法保證混合信號l(k) 和失真信號v(k)無關時,攻擊者能夠使用包含混合信號信息的數據構造攻擊,以通過Test 1 和Test 2;
4 ) 當對模型不確定性了解較少時,Test 1 和Test 2 的閾值選擇的保守性增加,會出現漏報攻擊情況,導致檢測失效.
由于以上缺陷的存在,攻擊者能夠構造新的攻擊信號躲避攻擊檢測,且對系統可能造成的破壞相對較大,需添加新的檢測式進行解決.因為水印信號并不依賴系統狀態變量和過程噪聲而產生,所以水印信號和混合信號必然是獨立的.當攻擊者篡改輸出信號z(k) 時,有可能改變水印信號和混合信號之間相關性,故需增加第三檢測式進行檢測.
檢測式 3 (Test 3).
正常情況下,D3 需滿足:D3=0.
當z(k) 同時滿足Test 1~ Test 3 時,則認為系統正常運行;否則認為系統遭受到攻擊,攻擊檢測器將會觸發報警.Test 3 作為Test 1 和Test 2 的補充,能提升攻擊檢測能力,接下來將通過定理2分析Test 3 如何解決Test 1 和Test 2 的不足,結合系統失真信號功率定義,進一步定量限制系統失真信號功率的上界.
定理 2.當模型不確定系統遭受網絡攻擊并躲過Test 1~ Test 3 時,攻擊造成的系統失真信號功率為
證明.在定理1 的基礎上進一步推導,若z(k)躲過攻擊檢測,則需滿足Test 3,即
水印信號e(k-1) 與混合信號l(k) 對于?k相互獨立,則可將上式化簡為
式(36)表明水印信號與失真信號是無關的,即攻擊所造成的失真信號不能帶有與水印相關的信息,否則將無法通過Test 3.同時,失真信號與混合信號之間的相關性也隨之發生改變,即定理1 證明中的式(29)變為
對上式兩邊同時除以T,并取極限
即混合信號與失真信號無關,結合式(19)和式(20),則
進一步,可得
注 6.定理2 表明新增的Test 3 能解決Test 1和Test 2 的不足,即能夠對包含水印信號或混合信號信息的攻擊進行有效檢測,同時證明了系統失真信號功率上界進一步受限范圍,即大大限制了躲過檢測式的失真信號功率上界,該上界值和閾值的選擇緊密相關,并且之差越小,說明閾值越接近真實值,失真信號功率的上界值越小,越能更好地限制攻擊.即使在最壞情況下,攻擊者也能夠躲過檢測,但是定理2 給出了攻擊造成的失真信號功率的上界,這表明Test 1~Test 3 對攻擊造成的系統失真信號功率具有限制能力,抑制了攻擊對系統造成的破壞.特別地,當模型確定時,代數差為零,失真功率也等于零,這表明模型不確定性信息越明確,防御者對閾值的選擇將會越合適,最終限制攻擊的效果將更好,反之則可能會選擇偏離程度較大的閾值,限制攻擊的效果或許不盡人意.
定理2 表明模型不確定系統中動態水印技術對攻擊信號造成系統性能損失程度的限制,進一步以最為常見的虛假數據注入攻擊信號為例,表現攻擊信號本身也會受到動態水印技術的限制.若虛假數據注入攻擊中的虛假數據信號為m(k)=z(k)-x(k),當該攻擊能夠同時躲過Test 1~ Test 3 時,虛假數據信號m(k) 的功率需滿足
為了驗證本文所提出方法的可行性和有效性,通過數值和實例仿真進行驗證.
由于Test 1~ Test 3 是在無窮時間統計下的漸進表達式,故采用工程實際中常用的窗口檢測統計方法,轉換為有限時間內的統計形式進行實驗.在本實驗中,窗口大小設為1 000 個采樣時刻,持續時間為20 000 個采樣時刻.
3.1.1 Test 1 和Test 2 的可行性和有效性
首先驗證Test 1 和Test 2 的可行性和有效性,考慮如下模型不確定系統
其中,Δa(k)x(k)=EaΛa(k)Fax(k) 為模型不確定項,設Ea=0.3,Fa=1.5,Λa(k) 為-1~1 的均勻分布.水印信號e(k) 的方差為=0.01,過程噪聲w(k+1) 方差為=0.01,控制率采用uc(k)=0.1z(k).
若根據基于式(6)和式(7)的傳統水印檢測方法對系統進行攻擊檢測,正常情況下兩個傳統水印檢測式的方差值分別設為 0.02 和 0.01,系統運行結果如圖2 和圖3 所示.由圖2 和圖3 中可以看出,當系統正常運行時,模型不確定項的變化會引起檢測式計算出的值偏離閾值,導致傳統水印檢測式在正常情況下發生誤判并持續報警,從而使得系統無法正常運行.

圖2 基于式(6)的傳統水印檢測結果Fig.2 Traditional watermark detection results based on (6)

圖3 基于式(7)的傳統水印檢測結果Fig.3 Traditional watermark detection results based on (7)

圖4 基于Test 1 的檢測結果Fig.4 Detection results based on Test 1

圖5 基于Test 2 的檢測結果Fig.5 Detection results based on Test 2
為了解決以上傳統水印檢測方法無法適用問題,采用本文所提的兩個具有魯棒性的檢測式,其考慮模型不確定項 Δa(k)x(k) 帶來的影響,設定合適的閾值,能夠避免以上誤報發生.當控制率確定時,根據式(15)選擇的閾值為
3.1.2 Test 3 的可行性和有效性
當對模型不確定性了解較少時,Test 1 和Test 2 的方差閾值選擇不一定合適,則攻擊將能夠躲過檢測,接下來驗證Test 3 的有效性.考慮如下模型不確定性系統:
本實驗中采用虛假數據注入攻擊,將虛假數據注入到真實數據z(k) 中,構造的虛假數據信號為m(k)=n(k)-0.(k)-0.13z(k),其中n(k) 是均值為零、=0.01 的高斯信號,(k) 是根據式(27)得到的混合信號l(k) 的估計(k+1)=0.7(z(k+1)-0.6z(k)).
當攻擊者估計出每一時刻的混合信號后,便可構造虛假數據注入攻擊信號m(k).在k=8 500 時,將虛假數據信號開始注入到系統中,傳感器輸出數據被篡改為z(k)=y(k)+m(k).接著,采用Test 1~Test 3 對z(k) 進行檢測,檢測結果如圖6~ 8 所示.

圖6 基于Test 1 的虛假數據注入攻擊檢測結果 (數值仿真)Fig.6 Detection results based on Test 1 under false data injection attack (numerical simulation)
由圖6 和圖7 可以看出,當虛假數據注入攻擊發生時,檢測值D1 和D2 將無法超過上限值,即Test 1 和Test 2 不能夠有效檢測出攻擊.圖8 表明Test 3 的結果與正常運行系統結果在攻擊發生時有明顯偏離,即Test 3 能有效檢測攻擊并觸發警報.因此,Test 3 作為Test 1 和Test 2 的補充,能夠解決這兩個檢測式帶來的不足.

圖7 基于Test 2 的虛假數據注入攻擊檢測結果 (數值仿真)Fig.7 Detection results based on Test 2 under false data injection attack (numerical simulation)

圖8 基于Test 3 的虛假數據注入攻擊檢測結果(數值仿真)Fig.8 Detection results based on Test 3 under false data injection attack (numerical simulation)
根據定理1,當攻擊能夠躲過Test 1 和Test 2 時,設定系統失真信號功率閾值為0.0741,系統失真信號功率變化如圖9 所示.圖9 展示了系統失真信號功率的變化,表明當攻擊能夠躲過Test 1 和Test 2 時,攻擊信號造成的失真信號功率小于定理1 設定的閾值,即Test 1 和Test 2 在一定程度上抑制了攻擊所能造成的破壞.

圖9 系統失真信號功率變化Fig.9 Variation of system distortion signal power
工業電加熱爐系統[33]的溫度特性建模為
其中,x(k) 是系統狀態變量(即k時刻的溫度),y(k)是系統輸出,w(k+1) 表示均值為零、方差為=1的獨立同分布高斯過程噪聲;Δa(k)=EaΛa(k)Fa為系統的模型不確定性,設Ea=0.2,Fa=0.02,Λa(k)為-1~1 的均勻分布;u(k) 采用PI 控制.
采用動態水印策略,則閉環系統模型為
在圖10~ 12 中,當k=5 000 時,攻擊者將虛假數據信號注入到系統中,即傳感器輸出數據被篡改為z(k)=y(k)+m(k).從圖10 中可以看出,當虛假數據注入攻擊發生時,文獻[34]中閾值檢測方法的結果幾乎沒有變化,導致該方法無法有效檢測出攻擊.然而,從圖11 和圖12 可以看出,當虛假數據注入攻擊發生時,本文所提方法的檢測值D1 和D2均超過上限值,能夠有效檢測出攻擊,再次驗證了本文所提方法的可行性和有效性.

圖10 基于閾值檢測的虛假數據注入攻擊檢測結果(實例仿真)Fig.10 Detection results based on threshold detection under false data injection attack(real example simulation)

圖11 基于Test 1 的虛假數據注入攻擊檢測結果(實例仿真)Fig.11 Detection results based on Test 1 under false data injection attack (real example simulation)

圖12 基于Test 2 的虛假數據注入攻擊檢測結果(實例仿真)Fig.12 Detection results based on Test 2 under false data injection attack (real example simulation)
本文提出了基于動態水印的模型不確定系統攻擊檢測魯棒性方法.首先分析了模型不確定項導致傳統動態水印檢測方法失效的原因,然后提出了兩個具有魯棒性的攻擊檢測式以及檢測式中關鍵時變方差閾值的確定方法,理論證明了系統失真信號功率上界以定量刻畫攻擊信號造成系統性能損失程度,進一步考慮攻擊能夠躲過檢測的最壞情況新增加第三檢測式,以進一步限制系統失真信號功率上界,從而提升不確定系統的安全性.與文獻[28]提出的針對確定系統水印檢測方法相比,本文解決了模型不確定系統中的攻擊檢測問題.然而水印信號的添加會對系統的性能產生一定的影響,如何衡量水印信號對控制性能的影響和檢測效果是未來研究的一個重要研究方向.