員天佑,劉 金,周小偉,安寶冉
(中國工程物理研究院計算機應用研究所,四川 綿陽 621900)
基于多變體的控制軟件異構冗余與動態重構技術研究
員天佑,劉 金,周小偉,安寶冉
(中國工程物理研究院計算機應用研究所,四川 綿陽 621900)
針對控制軟件的防篡改問題,從工控安全角度出發,提出了一種利用多變體技術和虛擬化技術構建控制軟件動態目標防御體系的新方法;通過多變體的異構冗余、動態重構和多模表決實現了軟件層面的主動防御和安全態勢感知,通過虛擬化技術實現了多變體執行環境的快速構建;著重介紹了技術路線、系統架構、動態重構策略、表決算法和同步機制;研究結果表明,該技術在提高控制系統可靠性的同時,使其具備了較強的主動安全防御能力。
多變體;動態目標防御;工控安全;異構冗余;動態重構
工業控制系統長期遵循COTS原則,強調開放性、兼容性和可靠性,對信息安全的關注度不夠[1],在信息化和工業化融合過程中逐步暴漏出嚴重的安全隱患。“震網”[2-3]事件的發生有力證明工業控制系統逐漸成為網絡黑客、恐怖分子和敵對國家的重點攻擊對象[4]。由于工業控制系統遍布工業、能源、水利、交通、市政和軍工設施等重要領域,一旦出現問題將給工業生產、國家經濟安全和人民生命財產造成巨大損失。為此工信部、國務院專門出臺相關文件要求重視和加強工控系統信息安全。
目前的技術防護措施大都從傳統信息安全領域繼承而來,期間也不乏有新理論、新思想的提出。美國的動態目標防御技術[5-8]和我國科學家提出的擬態安全思想,成為顛覆傳統防御思想的典型代表。旨在改變“游戲規則”,通過目標對象內在形態的多樣化、動態化和隨機化,使傳統的基于先驗知識和靜態特性的攻擊難度和成本大幅增加,是對象本身具備主動防御特性。
本文以動態目標防御和擬態安全思想為基礎重點探討利用多變體技術實現控制軟件異構冗余和動態重構的技術途徑。通過在虛擬環境下構件一套支持異構冗余、多模表決、動態重構和異常行為感知的多變體執行環境,確保單個控制軟件變體被惡意篡改或出現異常時,控制系統功能不受影響。
軟件多變體是指功能等價,結構不同的軟件個體[9-10],當多個變體同時運行時,通過同步比較它們的行為,可以感知由攻擊導致的系統異常,并通過輸出結果表決機制避免控制系統出錯。要構件這樣一個多元化的系統,要有足夠多的變體程序和支撐多變體運行并能對其進行有效監控的執行環境。軟件多變體可以通過隨機編譯技術自動生成,也可以人工編制。
多變體執行環境的結構復雜,由監視器、執行器和表決器構成,本文擬通過虛擬化技術進行構建,具體方法為:利用內核虛擬化技術構建多個虛擬容器,將控制軟件的不同變體置于不同的容器中,它們之間通過通訊中間件進行數據訪問、消息傳遞和行為同步,由監視器負責多變體控制軟件的執行狀態監測與同步控制,由多模表決器負責輸出結果的仲裁和異常行為識別。系統綜合運用了虛擬化技術、多變體技術和多模表決技術,攻擊者很難穿透多個命名空間同時對多個變體進行精確攻擊,使監控軟件的安全性得到大幅提升。具體結構如圖1所示。

圖1 系統架構圖
多變體執行環境采用類似PLC的循環結構,由數據采集開始,經過信息輸入,變體執行和結果表決,最終產生正確的控制信號。數據采集器負責收集設備狀態信息、傳感器信息、運行參數和控制指令等,將其統一傳遞給多個執行器;執行器并行運行多個控制軟件的變體程序,通過一系列控制業務相關的復雜運算產生多個輸出結果給表決器;表決器通過表決產生唯一正確的控制信號,輸出給被控對象。整個循環執行過程由監視器進行監測,并通過各種同步信號對數據采集器、執行器和表決器的行為進行精確控制。系統運行過程中如果有控制程序被惡意篡改,執行器將輸出錯誤的運算結果,通過多模表決可以實現容錯處理,確保控制系統穩定運行,同時對執行器的這一異常行為進行感知,并通過人機接口向操作員發出報警指示。具體結構如圖2所示。

圖2 多變體執行環境內核模型
中間件可在不同虛擬容器之間進行高效通訊,各部組建之間的數據及信息傳遞通過它來實現。
該模型中監視器發揮著至關重要的作用,其它模塊的行為由它通過同步信號進行嚴格控制,其控制行為可通過圖3所示的有限狀態機加以描述和實現。
S0:初始化,配置各模塊的運行參數,隨機加載多變體程序;
S1:觸發數據采集模塊進行數據采集,等待結果;
S2:將采集數據統一傳遞給所有的執行器;
S3:觸發執行器運行,等待結果;
S4:獲取執行結果,將其傳遞給表決器;
S5:觸發表決器,等待結果;
S6:獲取表決結果,將正確結果輸出;
S7:超時處置;
S8:表決錯誤,輸出安全值;
S9:循環周期等待。

圖3 監視器控制狀態圖
狀態遷移過程通過表1中的同步信號進行觸發,在軟件實現時這些信號以消息的形式存在,通過中間件進行傳遞。

表1 同步信號表
本課題主要研究應用軟件層面的控制系統動態重構技術。擬通過兩種方法實現:一是在系統啟動過程中隨機選擇多個變體程序進行動態加載和運行,實現啟動環節的動態重構。二是在系統運行態同時并行運行多個變體,隨機選擇其中3個變體的輸出結果進行表決,實現運行態動態重構。這兩種方法可混合使用。為了確保表決器不受攻擊,可通過沙箱進行保護,后期可采用FPGA對表決算法進行硬件化處理。
在工業控制系統中,運算結果最終以數字量和模擬量形式呈現,通過I/O模塊輸出到設備。其表決方法也有所不同。
1)數字量表決算法。
對于離散量而言,運算結果有“true”和“false”兩種情況,分別用“1”和“0”表示,其表決算法為:
Out=(Out1&Out2)|(Out2&Out3)|(Out1&Out3)
2)模擬量表決算法
模擬量通過相似度判定法則進行表決,具體方法為:將a,b,c三個運算結果值看作同一坐標軸上的三個點,求它們之間的歐幾里德距離,通過歐幾里德距離判定它們之間的相似程度。歐幾里德距離計算公式為:


表2 真值表
判定結果分為相似和非相似兩種情況,通過與一個事先設定的閾值λ作比較,大于等于該值表示差異較大,小于該值表示相似,判定結果用&表示,具體表達式如下:

仲裁規則如下所示,L代表表決后的正確輸出值,m代表安全輸出。本例只考慮3個變體程序中的一個被惡意篡改產生錯誤輸出時的結果仲裁。當3個變體中有二個以上的變體程序被篡改時仲裁沒有意義。
&ab&ac&bcL

傳統的控制系統冗余大都采取軟硬一體的同構、熱備方式,在可靠性方面可以做到故障切換,但很難實現系統級的多模冗余容錯。在信息安全方面完全是一個開放、同構、靜態的系統,極易受到攻擊,如果控制程序被惡意篡改產生錯誤的運算結果和輸出,系統將無法識別。本文所提出的多模異構冗余和動態重構技術雖然僅限于控制軟件層面但能同時兼顧可靠性和安全性。由于系統在啟動和運行過程中能夠動態重構,且具備多模冗余表決機制,在單個控制軟件變體被惡意篡改或出現錯誤時系統控制功能不受影響,具備一定的主動安全防御功能。在系統實現方面利用成熟的虛擬化和中間件技術,共享一套硬件資源,成本低、可實現性強。本文研究重點是多變體執行環境構建、同步技術和多模表決機制,給出了模型和算法,軟件實現過程不做詳解,用戶可根據需要選擇不同的語言進行開發。
由于采取了多模冗余和表決技術,系統的實時性會有一定影響,但在硬件性能不斷提升的今天,依然能夠滿足大多數控制系統的應用需求。
[1] Dzung D, Naedele M, von Hoff T, et al. Security for industrial communication systems[J]. Proceedings of the IEEE, 2005,93(6):1152-1177.
[2] 華 镕.震網給工業控制敲響了警鐘[J].儀器儀表標準化與計量,2011(2):30-34.
[3] 嚴宵鳳.震網引發網絡安全新思考[J].信息安全與技術,2011,2:17-19.
[4] Shreeve J L. The new breed of cyber terrorist, The Independent,online edition[EB/OL]. http://news.independent.co.uk/world/science technology/article622421.ece, May 2006.
[5] 張曉玉,李振邦.移動目標防御技術綜述[J].通訊科技,2013(6):111-113.
[6] Sushil J, Anup K G, Vipin S, et.al.Moving Target Defense-Creating Asymmetric Uncertainty for Cyber Threats[M].[s.l]:Springer Press,2011,1.
[7] Matthew D, Stephen F, William U, et.al, MT6D: A Moving Target IPv6 Defense[C].MILCOM.U.S:IEEE Communication Committee,2011,1321-1326.
[8] Jafar H J, Ehab A, Quan Q. Transparent Moving Target Defense Using Software Defined Networking[J].HotSDN,2012(12):127-132.
[9] Cox B, Evans D, Filipi A, et al.N-variant systems:A Secretless Framework for security through Diversity[A]. Proceedings of the 15th USENIX Security Symposium[C]. pages 105-120.USENIX Association,2006.
[10] Salamat B, Jackson T, Wagner G,et al. Run-Time Defense against Code Injection Attacks using Replicated Execution[J]. IEEE Transactions on Dependable and Secure Computing,2011.
Research on Heterogeneous Redundancy and Dynamic Reconfiguration of Control Software Based on Multi-Variant
Yun Tianyou, Liu Jin, Zhou Xiaowei, An Baoran
(Institute of Computer Application, China Academy of Engineering Physics, Mianyang 621900,China)
To meet the anti-tamper requirement for control software, a new method is proposed to construct the moving target defense system of control software based on multi-variant and virtualization. The function of active defense and security situational awareness is achieved by heterogeneous redundancy, Dynamic reconfiguration and multimode voting of variant. multi-variant execution environment is structured by virtualization. The technical route, system architecture, dynamic reconfiguration, voting algorithm and synchronization mechanism are detailed in this paper. The research results show that this technique can improve the reliability and security actively for industrial control systems.
multi-variant;moving target defense;industrial control security;heterogeneous redundancy; dynamic reconfiguration
2016-07-22;
2016-08-24。
國家重點研發計劃項目(2016YFB0800203);國防基礎科研項目(JCKY2016212C005)。
員天佑(1977-),男,高級工程師,主要從事自動控制、故障診斷和工控安全相關技術方向的研究。
1671-4598(2017)01-0105-02
10.16526/j.cnki.11-4762/tp.2017.01.030
TP3
A