Skip to content

cyb3rlab/SBCSE

Repository files navigation

SBCSE: Smart Building Control System Emulator

SBCSE is a smart building control system emulation platform that makes it possible to conduct security testing in connection with smart building control systems and communication protocols. The security testing capabilities of SBCSE include both evaluating the consequences of cyberattacks in the emulated smart building, and validating the implementation of appropriate security measures to counter those attacks. SBCSE is being developed by the Cybersecurity Research Lab at Japan Advanced Institute of Science and Technology (JAIST), Ishikawa, Japan.

NOTE: SBCSE was created and is intended only for research activities. You should only use SBCSE in your own local network environment and at your own risk. SBCSE implements several offensive actions that may affect target hosts, and any other kind of use may lead to your legal liability. Consequently, SBCSE should always be used with due care in real network environments.

SBCSE was designed and implemented based on information and experiment log data regarding a actual smart building. The main components of the control system emulated in SBCSE are as follows:

  • BOS: Building operating system that manages the smart building
  • MQTT-Broker: Broker that facilitates the communication between the other components
  • ELV and ROB: Elevators and autonomous robots in the smart building
  • RPF: External robot platform for controlling the autonomous robots

The architecture of SBCSE includes several modules, as shown in the figure below. The Network Communication Module is in charge of emulating the building control system communication based on the MQTT protocol. The Device Motion Module defines and configures the simulated motion of the autonomous robots and elevators, including robot navigation routes and elevator transitions between floors. The Security Attack Module makes it possible to use SBCSE for security testing by recreating different cyberattack scenarios within the emulator in order to quantify their effects and validate possible countermeasures.

More details about the SBCSE implementation are available in the implementation documentation, and also in the references mentioned at the end of this file.

Prerequisites

SBCSE is implemented in Python, and several libraries must be installed before using it, such as the kivy library for the user interface, and the PyYAML library for YAML files. Examples of the necessary commands for their installation are provided below:

pip install kivy
pip install pyyaml
pip install sqlalchemy
pip install bcrypt
pip install psutil
pip install numpy
pip install scipy

In addition, an MQTT broker, such as Mosquitto, must be installed. For your reference, we provide detailed instructions for the case of macOS in the MQTT setup documentation.

Quick Start

To run SBCSE, you can start the main program as shown below, and the scenario in the file utils/scenario.yaml will be executed:

python SBCSE.py

The scenario file can be modified as needed to change the settings. Alternatively, you can start the graphical user interface (GUI) of SBCSE, which makes it easy to change experiment settings, such as protocols, robots, elevators, attacks and targets. A screenshot of the user interface is shown below.

To use the GUI, run the following command, make the desired settings, then press the Start button to begin scenario execution.

python -m interface.interface  

For more information about the security testing capabilities of SBCSE, refer to the security testing documentation.

Note that we have also implemented additional functionality for validating the communication protocol implemented in SBCSE by using two methods: fuzz testing (aka, fuzzing), and formal verification. More details about these two methods are available in the fuzzing documentation and formal verification documentation, respectively.

References

For a research background about SBCSE, please consult the following paper and master's theses:

About

SBCSE: Smart Building Control System Emulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors