/DHALSIM

Digital Twin for Water Distribution Systems. A work by the SUTD Critical Infrastructure Systems Lab, TU Delft, CISPA, and iTrust

Primary LanguagePythonMIT LicenseMIT

Digital HydrAuLic SIMulator (DHALSIM)

A Digital Twin for Water Distribution Systems. A work by the SUTD Critical Infrastructure Systems Lab, TU Delft Department of Water Management, CISPA, and iTrust

DHALSIM uses the WNTR EPANET wrapper to simulate the behaviour of water distribution systems. In addition, DHALSIM uses Mininet and MiniCPS to emulate the behavior of industrial control system controlling a water distribution system. This means that in addition to physical data, DHALSIM can also provide network captures of the PLCs, SCADA server, and other network and industrial devices present in the a water distribution system.

DHALSIM was presented in the ICSS Workshop in ACSAC'20, with the paper: Co-Simulating Physical Processes and Network Data for High-Fidelity Cyber-Security Experiments

Two papers in the Journal of Water Resources Planning and Management explain in detail DHALSIM architecture, features, and capabilities: High-fidelity cyber and physical simulation of water distribution systems. I: Models and Data and High-fidelity cyber and physical simulation of water distribution systems. II: Enabling cyber-physical attack localization

Installation

In order to offer a simple installation we have included an installation script which will install DHALSIM on an Ubuntu 20.04 machine. This script is located in the root of the repository and can be run with ./install.sh.

Running

DHALSIM can be run using the command sudo dhalsim path/to/config.yaml.

Replacing the text between "< >" with the path to one example topology or your own configuration files. For example, for the anytown example, you'd use: sudo dhalsim <examples/anytown_topology/anytown_config.yaml>