Virtual Control System Network

Welcome to the wiki page for the Virtualization of Industrial Control Systems capstone project at the University of Idaho. Here someone can find all the information you need to know about the project, such as the background, specifications, design choices, team information, and document archive.

Background
The goal of this project is to create a portable system for presentations about security in virtual control systems. Previously this role has been filled by a physical system containing a relay, PLC, gateway, RTAC, and a HMI.http://mindworks.shoutwiki.com/wiki/Virtual_Control_System_Network

Problem Statement
The current physical system has two major drawbacks, flexibility and portability. Because the system is hard-wired with a fixed number of devices it cannot be reconfigured to run different types of simulations and presentations. This also means that as new technology comes out is difficult to implement it into the design. Although the previous system was designed with portability in mind, there is a limit to how portable a system can be while implementing physical devices. The bulk of the device means that it cannot be moved easily or brought on board a plane as a carry-on. This is an issue, as it limits the audiences it can be presented to due to the logistics of transport.

Project Goals
To create a system of devices to simulate an industrial control network, including the following devices: - a relay - Programmable Logic Unit - Gateway - Firewall - RTAC or similar device (stretch goal) - Human-Machine Interface

This system must behave as a real industrial control system would, and will take input from a custom-built input generating program. The input will generated from a pre-created file containing real-world data, modified for the specific test cases created.

Schedule
Project Learning

Drafting

Implementation

Finishing

Overall Structure
The infrastructure for this project will be a Linux server hosted externally (during development this will be on an Amazon Web Services hosted server, then during use it will be hosted on a server owned by PNNL for use and further development). We will use Docker containers for each individual component of the industrial control system. These component Docker containers will communication over a Docker Virtual Network using the modbus protocol (a common protocol used in industrial control systems). The infrastructure will be created such that in the future this can be extended to include other common communication protocols such as DNP3.

Relay
The relay will be written from scratch in C++. the basic structure of it includes three threads; a main thread, a communication thread, and a control thread.

Human Machine Interface
The Human Machine Interface (HMI) will be created with a simple base developed using python with flask. Initial iterations of it will poll slave devices (such as relays) for data to display. It will have a simple file system to enable cashing of information such as slave device IP addresses, and to enable other convenience features. In future iterations it will be able to send a interrupt communications to slave devices to force certain actions to be taken (such as manually switching a breaker when doing maintenance or testing).

Input Generation Program
asdfklj as;lkdfj;asldkj f;lasdkjf l;dsajk fl;sadkjf ;lsadkjf ;dslk jfasd;ljkf sdf; lkj

Implementation/Testing
Implementation details and design iterations will be listed here

Joey Chereck
Joey is a Computer Science student from Kirkland Washington. He is a member of the University of Idaho Cyber Defense team, and enjoys rock climbing and backpacking in his free time.

Gabe Gibler
Gabe is a man of mystery with years of experience working in professional IT and web development. In his free time he enjoys long bouts with Compilers assignments and martial arts.

Ben Merritt
Ben works for the University of Idaho as a systems administrator, managing servers used for research. In his free time he enjoys exploring new programming languages (Rust is a favorite of his), and amateur radio.

Contact
Ben Merritt   (merr4001@vandals.uidaho.edu)

Gabe Gibler (gibl3465@vandals.uidaho.edu)

Joey Chereck (cher3222@vandals.uidaho.edu)

Jessica Smith (jessica.smith@pnnl.gov)