Coder Social home page Coder Social logo

kooiot / iec61850toolchain Goto Github PK

View Code? Open in Web Editor NEW

This project forked from smartgridadsc/iec61850toolchain

0.0 2.0 0.0 15.75 MB

An opensource software creates customized datasets for the validation of cybersecurity solutions for IEC 61850 communication-based substations.

License: GNU General Public License v3.0

CMake 0.28% Makefile 0.22% C 97.89% Shell 0.12% SuperCollider 0.04% Java 0.98% C++ 0.01% CSS 0.21% HTML 0.01% Objective-C 0.04% Python 0.20%

iec61850toolchain's Introduction

IEC61850 Toolchain

This toolchain aims to enable users (e.g., power grid operators) to easily create customized datasets for the validation of cybersecurity solutions for IEC 61850 communication-based substations. This toolchain processes different inputs (e.g., substation configurations, attack configurations, and simulation settings) and carries out the necessary processing steps needed for generating the customized datasets. This toolchain is basing on an open source project libIEC61850

Features

3 types of attack allowed to create

  • Injection attck
  • Data tampering attack
  • DoS attack

3 ways to trigger attacks

  • by time
  • by certain packet parameters
  • by certain payload values

Installation

Clone this project to your local system and extract it.

User Manual

You can create IEDs as many as you want. In this user manul we give an example to create one IED and run it to get security traffic traces.

Create IED model by using SCL file:

  • Open java program "EC61850ToolChain/model_generator_java/" in your IDE。
  • Indicate your own SCL file to launch Java file "IEC61850ToolChain/model_generator_java/src/com/libiec61850/tools/StaticModelGenerator.java"
  • Get new created model files at "IEC61850ToolChain/model_generator_java/src/static_model.c and static_model.h"

Customize IED

 cd IEC61850ToolChain/toolchain/

You will see lots of "IEDXX" folders in this directory. Each folder represents one IED already running in this toolchain. Suppose you want to customize "IED1" with your new created IED model.

Copy and paste new created model files "static_model.c" and "static_model.h" to "/IED1/models" for replacing old ones. At IEC61850ToolChain/toolchain/IED1 comiple updated source code by:

make

Configure IED non-attack packets payload

Open "IEC61850ToolChain/toolchain/IED1/value.csv", each row in this file is the payload every time IED1 broadcast. Modify those value to set the payload you want IED1 to send out.

Configure IED attack behavior

open "IEC61850ToolChain/toolchain/IED1/AttackScenarioConfiguration.xml", in this file gives a template how to define 3 attacks: Injection, Data tampering and DoS. Tweak the value in this file to customize your attacking.

Run the toolchain

Go back to directory "IEC61850ToolChain/toolchain/", open "simulationConfiguration.xml", this file defines the network interfaces used by each IED. If you only run IED1, delete other related items and only keep following content:

Rembmer give a valid interface name and port to IED1. Then launch the software:

sudo python run.py

Open wireshark or other traffic capture tools to collect your IEC6180 trace!

License

GNU General Public License v3.0

iec61850toolchain's People

Contributors

liyuan3520 avatar smartgridadsc avatar manoraaju avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.