Security Verification of Industrial Control Systems using Partial Model Checking
Industrial control systems are moving from isolated to distributed and cloud-connected architectures. While the operational benefits of this migration form the driving force for this trend, the necessary security assurance is often difficult to achieve. Formal methods, including model checking, provide capable technologies to deal with this challenge. However, when formal verification must account for the complexity of modern control systems the state space being explored grows drastically as more details are included in the analysis. This may eventually cause a state space explosion, which makes formal verification infeasible. To address this, we propose a method for decomposing cloud-connected control systems into modules representing the different parts of the system (clients, the cloud, the control network, etc.). Based on the decomposed version of the system, we use UPPAAL to analyse several well-known cyber attacks and formally verify the system’s behavior under these attacks. To determine viability of our approach we first use statistical model checking to assess the probabilities of success for selected attacks. Based on the probability outcomes, we use symbolic model checking to individually analyse the sub-systems affected by each attack. The results obtained from this analysis are then used to demonstrate the feasibility of our approach. We demonstrate our method using a control system architecture provided by our industrial partner.