English

Finding Causally Different Tests for an Industrial Control System

Software Engineering 2023-07-25 v2

Abstract

Industrial control systems (ICSs) are types of cyber-physical systems in which programs, written in languages such as ladder logic or structured text, control industrial processes through sensing and actuating. Given the use of ICSs in critical infrastructure, it is important to test their resilience against manipulations of sensor/actuator inputs. Unfortunately, existing methods fail to test them comprehensively, as they typically focus on finding the simplest-to-craft manipulations for a testing goal, and are also unable to determine when a test is simply a minor permutation of another, i.e. based on the same causal events. In this work, we propose a guided fuzzing approach for finding 'meaningfully different' tests for an ICS via a general formalisation of sensor/actuator-manipulation strategies. Our algorithm identifies the causal events in a test, generalises them to an equivalence class, and then updates the fuzzing strategy so as to find new tests that are causally different from those already identified. An evaluation of our approach on a real-world water treatment system shows that it is able to find 106% more causally different tests than the most comparable fuzzer. While we focus on diversifying the test suite of an ICS, our formalisation may be useful for other fuzzers that intercept communication channels.

Keywords

Cite

@article{arxiv.2302.04175,
  title  = {Finding Causally Different Tests for an Industrial Control System},
  author = {Christopher M. Poskitt and Yuqi Chen and Jun Sun and Yu Jiang},
  journal= {arXiv preprint arXiv:2302.04175},
  year   = {2023}
}

Comments

Accepted by the 45th IEEE/ACM International Conference on Software Engineering (ICSE 2023)

R2 v1 2026-06-28T08:35:13.244Z