徐丙鳳 鐘志成 何高峰



摘 要:針對信息物理融合系統(CPS)中的網絡安全攻擊會導致系統失效的問題,提出一種基于動態故障樹的CPS風險建模及分析方法。首先,對動態故障樹和攻擊樹集成建模,構建攻擊動態故障樹(Attack-DFTs)模型;然后,分別采用二元決策圖和輸入輸出馬爾可夫鏈給出攻擊動態故障樹中的靜態子樹和動態子樹的形式化模型,并在此基礎上給出攻擊動態故障樹的定性分析方法,即分析網絡安全攻擊導致系統失效的基本事件路徑;最后,通過一個典型的排污系統應用實例對方法的有效性進行驗證。案例分析結果表明,所提方法能夠分析CPS中由于網絡安全攻擊導致系統失效的事件序列,有效實現了CPS的綜合安全評估。
關鍵詞:信息物理融合系統;動態故障樹;攻擊樹;風險分析;二元決策圖
中圖分類號: TP311.5軟件工程
文獻標志碼:A
Abstract: In order to solve the problem that network security attacks against the Cyber-Physical System (CPS) will cause a system failure, a CPS risk modeling and analysis method based on dynamic fault tree was proposed. Firstly, the integrated modeling was performed to dynamic fault tree and dynamic attack tree to build the Attack-Dynamic Fault Trees (Attack-DFTs) model. Then, the formal models of static subtree and dynamic subtree in Attack-DFTs were given by binary decision graph and input-out Markov chain respectively. On this basis, the qualitative analysis method of Attack-DFTs was given to analyze the basic event path of the system failure caused by network security attacks. Finally, the effectiveness of the proposed method was verified by the typical case study of a pollution system. The case analysis results show that, the proposed method can analyze the event sequence of system failure caused by network security attack in CPS, and effectively realize the formal safety assessment of CPS.
Key words: Cyber-Physical System (CPS); dynamic fault tree; attack tree; risk analysis; binary decision diagram
0 引言
信息物理融合系統(Cyber-Physical System, CPS)通過計算進程和物理進程相互影響的反饋循環實現系統的智能感知、自主判斷與自動執行,是工業4.0、中國制造2025等下一代智能制造的基礎形態,與人們的日常生活和國家經濟運行密切相關[1]。針對CPS的網絡安全攻擊不僅會破壞系統的完整性、機密性和可用性,甚至會引起生命財產的損失和環境的破壞[2]。如:2015年烏克蘭電力網絡遭受魚叉式網絡釣魚(Spear phishing)攻擊,黑客以含有惡意宏的Microsoft Office文件為攻擊載體,清空數據采集和監控(Supervisory Control And Data Acquisition, SCADA)系統數據,致使烏克蘭西部地區約70萬戶居民用戶停電數小時[3];2016年出現了多起由于醫院醫療設備遭到黑客攻擊而造成的嚴重安全事故[4],特別是2017年WannaCry病毒大規模爆發,導致醫療系統的攻擊事件日益增多,直接威脅到病人的生命安全[5]。因此,分析網絡攻擊可能導致的系統失效問題已成為當前學術界和工業界共同關注的熱點。
為了解決該問題,現有的工作主要從面向過程的方法[6]和基于模型的方法[7]兩個方面進行。其中,面向過程的方法考慮防危性(safety)和安全性(security)的生命周期,依賴防危性/安全性標準規定的要求,主要應用于系統工程的早期階段,特別是在概念和需求階段;而基于模型方法的基本思想是基于系統的功能/非功能的形式化或半形式化表示,以統一的模型建模系統的防危性和安全性,能應用于系統開發的所有階段。因此,本文重點研究基于模型的方法。
基于模型的CPS風險建模及分析框架近年來被廣泛研究,即基于統一的模型建模系統的防危性和安全性,并實現分析。其中,基于故障/攻擊樹集成的方法[8-9]以防危性模型為基礎,對網絡安全攻擊步驟進行擴展,實現防危性和安全性的集成建模。其基本思想是引入擴展故障樹,攻擊樹[10]被集成到一個預先存在的故障樹中,將惡意攻擊視為系統失效的因素之一。該方法既支持定性分析,也支持定量分析,且所使用的故障樹技術和攻擊樹技術已在工業界廣泛應用,因而正成為工業界和學術界共同關注的研究課題。但如文獻[11]綜述中所強調的,現有的集成故障樹和攻擊樹模型的信息物理融合系統風險分析模型均基于靜態模型進行,難以建模軟件控制系統的動態和時序等特性,無法有效建模系統故障事件發生之后失效(即意外或者惡意失效)的傳播路徑,從而無法推導網絡安全攻擊所導致的最終影響。
因此,本文針對CPS安全風險建模與分析進行深入研究,提出了一種基于動態故障樹(Dynamic Fault Trees, DFTs)的CPS風險建模和分析方法。主要工作包括:首先,通過集成動態故障樹和攻擊樹,提出攻擊動態故障樹(Attack-Dynamic Fault Trees, Attack-DFTs),構建網絡安全攻擊所導致的CPS失效場景模型;在此基礎上基于二元決策圖和輸入/輸出交互馬爾可夫鏈模型分別建立Attack-DFTs的靜態子樹和動態子樹的分析模型,進而進行Attack-DFTs的定性分析。最后,通過案例分析驗證了本文方法的有效性。
1 相關工作
CPS風險分析包括防危性和安全性兩個方面。防危性旨在保護系統避免意外失效,僅考慮意外的組件故障和人為錯誤所導致的風險;而安全性旨在保護系統免受故意攻擊,處理有意識的人類行為造成的故意/惡意威脅[12]。傳統的風險標準關注防危性(Safety)或者安全性(Security),如:防危性分析方法主要有失效模式效應和關鍵性分析(Failure Mode, Effect and Criticality Analysis, FMECA)[13]、針對SAE(Society of Automotive Engineers)標準語言AADL(Architecture Analysis and Design Language)添加錯誤附注的分析方法[14];安全性分析的方法主要有FAIR(Factor Analysis of Information Risk)[15]和基于統一建模語言(Unified Modeling Language, UML)的CORAS[16]等。而在最新的ISO 26262標準[17]和近年來歐洲的研究項目[18]中,充分論證了CPS中集成防危性和安全性分析的必要性。文獻[12]針對防危性和安全性集成的研究進展進行了綜述。
其中,集成故障樹與攻擊樹的信息物理融合系統風險識別、評估和分析方法最早由文獻[8]給出,其基本思想是引入擴展故障樹,攻擊樹[10]被集成到一個預先存在的故障樹中,以擴展傳統風險分析包括惡意風險?;谠撍枷耄墨I[19]綜合故障樹和攻擊樹的邏輯符號建立CPS系統的風險模型,并提供了定量分析方法;文獻[20]在構件故障樹基礎上擴展了攻擊樹模型用于建模安全攻擊造成系統失效的場景,并且提供了失效事件的概率分析方法;文獻[21]在狀態事件故障樹的基礎上集成建模攻擊流程,用于CPS系統安全建模,并提供了概率分析方法。這些基于靜態故障樹和攻擊樹的方法都存在共同的不足,即所有的邏輯門都只有靜態依賴,無法有效建模CPS等復雜系統中軟件控制系統的動態行為和失效傳播路徑。
因此,本文的基本思想是設計一種基于動態故障樹的信息物理融合系統風險建模及分析方法。具體做法是以動態故障樹模型為基礎,以攻擊樹作為系統安全攻擊模型,集成這兩種模型的優勢進行CPS系統風險場景的綜合建模與分析。
2 Attack-DFTs模型
攻擊樹(Attack Trees, ATs)通常描述在系統上未經授權的操作,即產生意料之外的事件。而動態故障樹通常描述基本事件發生導致最終系統失效發生的失效因果鏈。因此,可以考慮增加導致DFTs中的基本或中間事件發生的惡意行為(由攻擊樹建模)豐富DFTs的語義,這就意味著攻擊者可以利用系統中的某些故障,最終導致DFTs頂層事件的發生。也就是說,當且僅當存在以DFTs中的事件作為攻擊樹的攻擊目標時,DFTs才能與攻擊樹集成。基于該思想,本文構造攻擊動態故障樹模型。
2.1 DFTs的形式化描述
動態故障樹集成了故障樹分析和馬爾可夫鏈的優點,通過引入表征動態特性的邏輯門建立動態系統的失效因果鏈,目前已經廣泛應用于工業控制系統中。動態故障樹是一種由事件和邏輯門組成的有向無環圖[22],用于描述基本事件發生引起系統失效的失效因果鏈。其中,事件用來描述元部件和系統的狀態,分為基本事件(原子事件)、頂事件(位于動態故障樹的頂部)和中間事件(由一個或多個其他事件導致)。動態故障樹的邏輯門除了包含傳統的靜態故障樹的與門(AND)、或門(OR)之外,還定義了一組動態邏輯門描述失效優先順序、相關性及功能相關性等動態失效特征,包括優先與門(Priority-AND Gate, PAND)、功能相關門(Functional DEPendency gate, FDEP)和備件門(SPARE, SP)三種典型的動態邏輯門。
1)優先與門(PAND)失效機理:當觸發事件按照從左至右的順序發生時,輸出事件發生。
2)功能相關門(FDEP)失效機理:當觸發事件發生時,所有相關事件被強制發生。
3)備件門(SPARE)的失效機理:用功能相同的備件替代系統中故障的部件,當備件的數量小于系統所需的最小數量時,頂事件發生。
圖1是一個描述處理器失效場景的動態故障樹,系統由兩個處理器P1和P2組成,每個處理器都帶有自己的備件,分別是S1和S2。圖1描述的失效場景是當且僅當處理器P1先故障,備件S1故障,然后處理器P2故障且備件S2也故障時,系統故障發生。
在動態故障樹分析方面,實際系統的動態故障樹分析往往計算量巨大。因此,在對動態故障樹進行分析的過程中,通常將動態故障樹劃分成獨立的靜態子樹和動態子樹模塊,然后靜態子樹用二元決策圖求解,動態子樹則用馬爾可夫鏈模型求解[23]。通過模塊化的處理結果,可以直接降低動態故障樹分析的復雜度。
2.2 攻擊樹的形式化描述
攻擊樹采用結構化的方式建模網絡攻擊。以攻擊目標作為根節點(即頂層事件),以部分攻擊作為中間節點或葉節點,事件之間的組合采用與門(AND)、或門(OR)和順序與門(SAND)進行表達。任何一條從葉節點到根節點的路徑表示一次完整的攻擊過程。