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}
}
- ITS-G5 (IEEE 802.11p)
- C-V2X (3GPP PC5 Mode 4)
- 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)
Alternatively, you can download a preinstalled Instant F2MD virtual machine here:
Or access the Docker Image here:
- If you're running a Debian-based Linux distribution, use the automatic install script (tested on Debian 9 and Ubuntu 18.04)
$ ./installF2MD
- Install Sumo 1.5.0
- Install OMNeT++ 5.6.1
- Clone this repository along with all the submodules to your local machine
$ git clone --recurse-submodules https://github.com/josephkamel/F2MD.git
- Build all f2md modules (inet, veins, veins_inet3 and simulte)
$ ./buildF2MD
For more information check the Veins Tutorial or the OpenCV2X Tutorial.
- Launch the SUMO TraCI daemon
$ ./launchSumoTraciDaemon
- Run a simulation scenario
$ ./runScenario
- Visualise the output
$ cd f2md-results && ./plotScenario