All Projects → dhondta → rpl-attacks

dhondta / rpl-attacks

Licence: AGPL-3.0 License
RPL attacks framework for simulating WSN with a malicious mote based on Contiki

Programming Languages

python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
java
68154 projects - #9 most used programming language
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
Vim Snippet
174 projects

Projects that are alternatives of or similar to rpl-attacks

whitefield
Whitefield provides a simulation environment for wireless sensor networks by combining RF simulation provided by NS3 and network stack provided by popular IoT OSes such as Contiki/RIOT/OpenThread.
Stars: ✭ 70 (+25%)
Mutual labels:  wsn, contiki, rpl
contiki-uwb
Contiki OS, Glossy and Crystal port for the DecaWave EVB1000 and DWM1001 platforms featuring the DW1000 UWB transceiver
Stars: ✭ 22 (-60.71%)
Mutual labels:  wsn, contiki
IoTCodeRecipes
IoT Code Recipes: RPL, mDNS and REST
Stars: ✭ 19 (-66.07%)
Mutual labels:  contiki, rpl
docker
Scripts to build and use docker images including GHDL
Stars: ✭ 27 (-51.79%)
Mutual labels:  simulation
ORBITM
🌏 📡 🌏 📡 ORBITM - Orbit maintenance, propulsion sizing, and life-time estimation of space objects!
Stars: ✭ 28 (-50%)
Mutual labels:  simulation
mitre-visualizer
🧬 Mitre Interactive Network Graph (APTs, Malware, Tools, Techniques & Tactics)
Stars: ✭ 49 (-12.5%)
Mutual labels:  attack
elasty
A research-oriented elastic body simulator
Stars: ✭ 173 (+208.93%)
Mutual labels:  simulation
ss3sim
An R package for stock-assessment simulation with Stock Synthesis
Stars: ✭ 34 (-39.29%)
Mutual labels:  simulation
HELICS
Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS)
Stars: ✭ 76 (+35.71%)
Mutual labels:  simulation
HBTplus
HBT+ subhalo finder and merger tree builder, the tool to get you out of mess and back to physics.
Stars: ✭ 12 (-78.57%)
Mutual labels:  simulation
ROS-TCP-Connector
No description or website provided.
Stars: ✭ 123 (+119.64%)
Mutual labels:  simulation
megaverse
High-throughput simulation platform for Artificial Intelligence reseach
Stars: ✭ 148 (+164.29%)
Mutual labels:  simulation
amodeus
Autonomous Mobility-on-Demand Extremely Useful Simulation
Stars: ✭ 44 (-21.43%)
Mutual labels:  simulation
godesim
ODE system solver made simple. For IVPs (initial value problems).
Stars: ✭ 19 (-66.07%)
Mutual labels:  simulation
openfluid
OpenFLUID framework and applications
Stars: ✭ 19 (-66.07%)
Mutual labels:  simulation
Fluid-Solver
Rust based marker and cell fluid solver
Stars: ✭ 21 (-62.5%)
Mutual labels:  simulation
sbml-test-suite
The SBML Test Suite is a conformance testing system. It allows developers and users to test the degree and correctness of the SBML support provided in a software package.
Stars: ✭ 21 (-62.5%)
Mutual labels:  simulation
xssmap
Intelligent XSS detection tool that uses human techniques for looking for reflected cross-site scripting (XSS) vulnerabilities
Stars: ✭ 107 (+91.07%)
Mutual labels:  attack
rcssserver
The RoboCup Soccer Simulator Server
Stars: ✭ 100 (+78.57%)
Mutual labels:  simulation
atc-reinforcement-learning
Reinforcement learning for an air traffic control task. OpenAI gym based simulation.
Stars: ✭ 37 (-33.93%)
Mutual labels:  simulation

RPL Attacks Framework Tweet

Make simulations of a WSN with a malicious mote for attacking the RPL protocol.

Read The Docs Build Status Requirements Status Known Vulnerabilities DOI Black Hat Arsenal Europe 2018 Vagrant License Beerpay Donate

This project aims to provide a simple and convenient interface relying on Contiki OS to generate Cooja simulations and deploy malicious motes for a Wireless Sensor Network (WSN) that uses Routing Protocol for Low-power and lossy devices (RPL) (RFC 6550) as its network layer.

With this framework, it is possible to easily define campaign of simulations (in JSON format) either redefining RPL configuration constants, modifying single lines from the ContikiRPL library or using an own external RPL library. Moreover, experiments in a campaign can be generated either based on a same or a randomized topology for each simulation.

Additional Documentation

A few test cases made with the framework:

Test case 1: flooding attack

The malicious mote has 3, 7, 10 in its range Power tracking without the malicious mote Power tracking with the malicious mote
The malicious mote has 3, 7, 10 in its range Power tracking without the malicious mote Power tracking with the malicious mote

Test case 2: versioning attack

Legitimate DODAG Versioning attack in action (global repair)
Legitimate DODAG Versioning attack
Power tracking without the malicious mote Power tracking with the malicious mote
Power tracking without the malicious mote Power tracking with the malicious mote

Test case 3a: blackhole attack

Legitimate DODAG Blackhole attack in action
Legitimate DODAG Blackhole attack

Test case 3b: blackhole attack

Legitimate DODAG Blackhole attack in action
Legitimate DODAG Blackhole attack

💿 Installation

  1. Clone this repository
$ git clone https://github.com/dhondta/rpl-attacks.git

Behind a proxy ?

Setting: git config --global http.proxy http://[user]:[pwd]@[host]:[port]

Unsetting: git config --global --unset http.proxy

Getting: git config --global --get http.proxy

  1. Create the VM
$ vagrant login
[...]
$ vagrant up

Important notes

The downloads of the Vagrant box may take a while, please be patient...

Also, after the creation of the VM, Vagrant may complain that the SSH connection was unexpectedly closed by the remote end. In practice, this does not affect the creation and operation of the box.

Behind a proxy ?

Install the plugin: vagrant plugin install vagrant-proxyconf

Configure Vagrant: Uncomment the lines starting with config.proxy in the Vagrantfile

Troubleshooting:

  • Ensure the latest version of Vagrant is installed
  • If using virtualbox provider, ensure Oracle Extension Pack is installed (see Oracle website)

Using Instant Contiki or another distribution:

The full manual installation procedure is available here and mentions InstantContiki but it is advised to use the Vagrant box as it was fully tested.

😎 Demonstration

This will make 3 complete examples of attacks : hello flood, version number and blackhole.

Open the console like before and type:

user@instant-contiki:rpl-attacks>> demo

Or simply launch the demo command with Fabric:

./rpl-attacks$ fab demo

Quick Start

  1. Open the console (you should see something like in the following screenshot)
./rpl-attacks$ python main.py

or

./rpl-attacks$ fab console

  1. Create a campaign of simulations
user@instant-contiki:rpl-attacks>> prepare sample-attacks
  1. Go to your experiments folder (default: ~/Experiments) and edit your new sample-attacks.json to suit your needs

See How to create a campaign of simulations ? for more information.

  1. Make the simulations
user@instant-contiki:rpl-attacks>> make_all sample-attacks
  1. Run the simulations (multi-processed)
user@instant-contiki:rpl-attacks>> run_all sample-attacks

Hint : You can type status during make_all and run_all processing for getting the status of pending tasks.

  1. Once tasks are in status SUCCESS in the status tables (visible by typing status), just go to the experiment's results folders to get pictures and logs of the simulations. The related paths are the followings :

[EXPERIMENTS_FOLDER]/[experiment_name]/without-malicious/results/ [EXPERIMENTS_FOLDER]/[experiment_name]/with-malicious/results/

😬 Issues management

In case of bug, there should be a crash report generated in the folder of the experiment that the framework was processing. By convention, this is named crash-report-[...].txt. Please copy its content (without the title) in a new Issue.

For contributions or suggestions, please open an Issue and clearly explain, using an example or a use case if appropriate.

If you want to build new RPL attacks, please refer to the How to make new building blocks ? section. In this case, please submit your new attack through a Pull Request.

👏 Supporters

Stargazers repo roster for @dhondta/rpl-attacks

Forkers repo roster for @dhondta/rpl-attacks

Back to top

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].