avinashkarhana / F2MD

Framework For Misbehavior Detection in C-ITS (ITS-G5 & C-V2X)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Framework For Misbehavior Detection (F2MD)

This project aims to recreate within a simulation all the elements that form the chain of misbehavior detection.

The scientific publication is available on ResearchGate. If you find this code useful in your research, please consider citing :

@ARTICLE{9056489,
    author={J. {Kamel} and M. R. {Ansari} and J. {Petit} and A. {Kaiser} and I. {Ben Jemaa} and P. {Urien}},
    title={Simulation Framework for Misbehavior Detection in Vehicular Networks},
    journal={IEEE Transactions on Vehicular Technology},
    year={2020}
}

Supported network technologies:

  • ITS-G5 (IEEE 802.11p)
  • C-V2X (3GPP PC5 Mode 4)

Features

  • Basic Plausibility Checks on Received Beacons (mdChecks)
  • Node Level Plausibility Investigation (mdApplications)
  • Real Time Machine Learning for Plausibility Investigation (HTTP to the Python Server: machine-learning-server)
  • Real Time Detection Status Output (mdStats, see README in f2md-results)
  • Support for Multiple Reporting Mechanisms (mdReport)
  • Support for Global Reports Collection and Investigation (HTTP to the Python Server: misbehavior-authority-server)
  • Basic Psudonym Change Policies (mdPCPolicies)
  • Local and Global Misbehavior Attacks Implementation (mdAttacks)
  • Launch Attacks in Real Time (HTTP to the Python Server: attack-server)

Installation

The easiest way

Alternatively, you can download a preinstalled Instant F2MD virtual machine here:

Instant-F2MD Download Link

Or access the Docker Image here:

F2MD Docker Repository

The easy way

  1. If you're running a Debian-based Linux distribution, use the automatic install script (tested on Debian 9 and Ubuntu 18.04)
$ ./installF2MD

The hard way

  1. Install Sumo 1.5.0
  2. Install OMNeT++ 5.6.1
  3. Clone this repository along with all the submodules to your local machine
$ git clone --recurse-submodules https://github.com/avinashkarhana/F2MD.git
  1. Build all f2md modules (inet, veins, veins_inet3 and simulte)
$ ./buildF2MD

For more information check the Veins Tutorial or the OpenCV2X Tutorial.

Running a simulation

  1. Launch the SUMO TraCI daemon
$ ./launchSumoTraciDaemon
  1. Run a simulation scenario
$ ./runScenario
  1. Visualise the output
$ cd f2md-results && ./plotScenario

Project Diagram

alt text

About

Framework For Misbehavior Detection in C-ITS (ITS-G5 & C-V2X)


Languages

Language:Python 60.4%Language:Gnuplot 18.6%Language:Shell 17.8%Language:HTML 2.4%Language:OpenEdge ABL 0.6%Language:Visual Basic 6.0 0.1%