Wattson is a research testbed that allows investigating and analyzing the effects of cyberattacks on power grids.
Project Website: https://wattson.it
Wattson comes without any warranty or guarantees to function. Use at your own risk. Wattson can mess up you computer's network configuration if used incorrectly.
Wattson is intended to be used for research enhancing the security of power grids.
When you refer to Wattson in your publication, please cite our paper:
Comprehensively Analyzing the Impact of Cyberattacks on Power Grids
in 8th IEEE European Symposium on Security and Privacy 2023 (Euro S&P).
For better performance, we suggest using a bare-metal installation instead of a virtual machine.
As the operating system, please use Ubuntu 22.04 LTS.
Other distributions might work, but you have to install dependencies yourself.
sudo apt update
sudo apt upgrade -y
sudo apt install -y python3-pip git gcc make perl docker.io python3-pyqt5
This automatically installs Wattson's system dependencies via APT and sets up FRRouting for correct use.
If you do not want this, skip the second step (python3 setup.py wattson
).
Then, you have to install the dependencies manually.
git clone https://github.com/fkie-cad/wattson
sudo python3 wattson/setup.py wattson
sudo python3 -m pip install -e ./wattson
To start a basic simulation, run
sudo python3 -m wattson wattson/scenarios/powerowl_example
Wattson is (internally) undergoing significant refactoring and this public repository does not contain all parts of Wattson due to ethical considerations.
This, for any problems or suggestions, please open a respective issue. If you can point out the changes to be made to fix your problem, feel free to do so as well.
Patches are then applied to our internal version of Wattson and mirrored back into this repository.
A special thank goes to Martin Unkel for his implementation of the C++-based Python bindings for the IEC104 protocol. The project is available at PyPi and on Github.