All Projects → Fortiphyd → GRFICSv2

Fortiphyd / GRFICSv2

Licence: GPL-3.0 license
Version 2 of the Graphical Realism Framework for Industrial Control Simulation (GRFICS)

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
shell
77523 projects
Yacc
648 projects
objective c
16641 projects - #2 most used programming language
LLVM
166 projects

Projects that are alternatives of or similar to GRFICSv2

CyberICS.github.io
News and publication on cybersecurity in industry
Stars: ✭ 29 (-75.63%)
Mutual labels:  cybersecurity, ics-security
ICS-Security-Products
Lists of products useful for ICS security
Stars: ✭ 78 (-34.45%)
Mutual labels:  cybersecurity, ics-security
TcBlack
Opnionated code formatter for TwinCAT.
Stars: ✭ 67 (-43.7%)
Mutual labels:  industrial-automation, plc-programming
digital-copyright
Stamp your code with a trackable digital copyright
Stars: ✭ 17 (-85.71%)
Mutual labels:  cybersecurity
AttackSurfaceManagement
Discover the attack surface and prioritize risks with our continuous Attack Surface Management (ASM) platform - Sn1per Professional #pentest #redteam #bugbounty
Stars: ✭ 45 (-62.18%)
Mutual labels:  cybersecurity
SCANNER-INURLBR
Advanced search in search engines, enables analysis provided to exploit GET / POST capturing emails & urls, with an internal custom validation junction for each target / url found.
Stars: ✭ 90 (-24.37%)
Mutual labels:  cybersecurity
PoW-Shield
Project dedicated to fight Layer 7 DDoS with proof of work, featuring an additional WAF. Completed with full set of features and containerized for rapid and lightweight deployment.
Stars: ✭ 99 (-16.81%)
Mutual labels:  cybersecurity
attack-evals
ATT&CK Evaluations website (DEPRECATED)
Stars: ✭ 57 (-52.1%)
Mutual labels:  cybersecurity
attack-stix-data
STIX data representing MITRE ATT&CK
Stars: ✭ 118 (-0.84%)
Mutual labels:  cybersecurity
EventTranscriptParser
Python based tool to extract forensic info from EventTranscript.db (Windows Diagnostic Data)
Stars: ✭ 22 (-81.51%)
Mutual labels:  cybersecurity
csn09112
CSN09112 Module
Stars: ✭ 15 (-87.39%)
Mutual labels:  cybersecurity
mitrecnd.github.io
MITRE Shield website
Stars: ✭ 17 (-85.71%)
Mutual labels:  cybersecurity
RedBook
基于Threathunting-book基础上完善的狩猎视角红队handbook
Stars: ✭ 56 (-52.94%)
Mutual labels:  cybersecurity
I40KG
Contains the development for the Industry 4.0 standards knowledge graph (I40KG). Its current collaborative development is driven by VoCol - http://vocol.iais.fraunhofer.de/sto/
Stars: ✭ 50 (-57.98%)
Mutual labels:  industrial-automation
echoCTF.RED
A platform to develop, run and administer CTF competitions. The online echoCTF.RED platform user interfaces and codebase
Stars: ✭ 33 (-72.27%)
Mutual labels:  cybersecurity
1earn
ffffffff0x 团队维护的安全知识框架,内容包括不仅限于 web安全、工控安全、取证、应急、蓝队设施部署、后渗透、Linux安全、各类靶机writup
Stars: ✭ 3,715 (+3021.85%)
Mutual labels:  ics-security
argus
Argus Advanced Remote & Local Keylogger For macOS and Windows
Stars: ✭ 87 (-26.89%)
Mutual labels:  cybersecurity
Reverse-Engineering
A FREE comprehensive reverse engineering tutorial covering x86, x64, 32-bit ARM & 64-bit ARM architectures.
Stars: ✭ 7,234 (+5978.99%)
Mutual labels:  cybersecurity
URL-obfuscator
Python Program to obfuscate URLs to make Phishing attacks more difficult to detect. Uses Active open redirect list and other URL obfuscation techniques.
Stars: ✭ 101 (-15.13%)
Mutual labels:  cybersecurity
BTPS-SecPack
This repository contains a collection of PowerShell tools that can be utilized to protect and defend an environment based on the recommendations of multiple cyber security researchers at Microsoft. These tools were created with a small to medium size enterprise environment in mind as smaller organizations do not always have the type of funding a…
Stars: ✭ 33 (-72.27%)
Mutual labels:  cybersecurity

GRFICSv2

Version 2 of the Graphical Realism Framework for Industrial Control Simulation (GRFICS)

Overview

This version of GRFICS is organized as 5 VirtualBox VMs (a 3D simulation, a soft PLC, an HMI, a pfsense firewall, and a workstation) communicating with each other on host-only virtual networks. For a more detailed explanation of the entire framework and some background information on ICS networks, please refer to the workshop paper located at https://www.usenix.org/conference/ase18/presentation/formby

A video series walking through VM setup and example attacks is available on the Fortiphyd YouTube channel at https://www.youtube.com/playlist?list=PL2RSrzaDx0R670yPlYPqM51guk3bQjFG5

A commercial version of GRFICS with more scenarios, advanced features, and streamlined usability is being offered by Fortiphyd Logic. Find out more at https://www.fortiphyd.com/training

Simulation

The simulation VM (named ChemicalPlant) runs a realistic simulation of a chemical process reaction that is controlled and monitored by simulated remote IO devices through a simple JSON API. These remote IO devices are then monitored and controlled by the PLC VM using the Modbus protocol. This VM is located in the ICS network subnet (192.168.95.0/24) with the IP addresses 192.168.95.10-192.168.95.15 simulation

Programmable Logic Controller

The PLC VM (named plc_2) is a modified version of OpenPLC (https://github.com/thiagoralves/OpenPLC_v2) that uses an older version of the libmodbus library with known buffer overflow vulnerabilities. This VM is located in the ICS network subnet (192.168.95.0/24) at 192.168.95.2

Human Machine Interface

The HMI VM (named ScadaBR) primarily contains an operator HMI created using the free ScadaBR software. This HMI is used to monitor the process measurements being collected by the PLC and send commands to the PLC. This VM is located in the DMZ network subnet (192.168.90.0/24) at 192.168.90.5 hmi

PfSense Firewall/Router

The firewall VM (named pfSense) provides routing and firewall features between the DMZ and ICS network. The WAN interface is on the DMZ subnet (192.168.90.0/24) at 192.168.90.100 and the LAN interface is on the ICS subnet (192.168.95.0/24) at 192.168.95.1

Engineering Workstation

The workstation VM is an Ubuntu 16.04 machine with software used for programming the OpenPLC. The workstation is located in the ICS network (192.168.95.0/24) at 192.168.95.5.

Installing from scratch

  1. Download and install the latest version of VirtualBox.

  2. Create a host-only interface in VirtualBox.

  3. Download an image for both the desktop and server versions of 64-bit Ubuntu 16.04.

  4. See instructions for each VM in corresponding directories.

Pre-built VMs

  1. Download VMs:

    • Simulation VM - MD5=02af6c2502ecaab6c6d138deb560b27d
    • HMI VM - MD5=20ef1ff9e36f80ea3e257806bec09274
    • pfsense VM - MD5=521745220cd2f6e268eb188934d6b0ad
    • PLC VM - MD5=0fbb1254fb166466496f2a48780ae774
    • Workstation - MD5=68c21a9057d68c637c358b05f1f816e8
  2. Add 2 host-only adapters in VirtualBox:

    • VirtualBox Host-Only Ethernet Adapter: 192.168.90.111 and 255.255.255.0 netmask
    • VirtualBox Host-Only Ethernet Adapter: 192.168.95.111 and 255.255.255.0 netmask

Your VirtualBox settings should look something like the below screenshot, although the names will likely differ.

netset3

  1. Import each VM into VirtualBox using File->Import Appliance

  2. Go into each VM's network settings, and attach each adapter to the correct network:

    • plc_2 Adapter 1 => 192.168.95.0/24
    • ScadaBR Adapter 1 => 192.168.90.0/24
    • ChemPlant Adapter 2 => 192.168.95.0/24
    • workstation Adapter 1 => 192.168.95.0/24
    • pfSense Adapter 1 => 192.168.90.0/24
    • pfSense Adapter 2 => 192.168.95.0/24
  3. Start all the VMs.

  4. VM credentials

    • Simulation (Chemical Plant): simulation | Fortiphyd
    • HMI (ScadaBR): scadabr | scadabr web console: admin | admin
    • Pfsense: admin | pfsense
    • PLC: user | password
    • Workstation: workstation | password
  5. If you downloaded a VM, the simulation scripts should start on boot. If not, log into the simulation VM and open 2 terminals. In one, cd into the ~/GRFICSv2/simulation_vm/simulation directory and run ./simulation. In the second terminal, cd into the ~/GRFICSv2/simulation_vm/simulation/remote_io/modbus directory and run sudo bash run_all.sh.

  6. If you downloaded a VM, the PLC should start on boot. If not, log into plc VM, cd into the OpenPLC_v2 directory, and run sudo nodejs server.js

  7. Point your internet browser to the IP address of the simulation VM (default 192.168.95.10) to view the visualization.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].