Authors: Vita Santa Barletta, Danilo Caivano, and Mirko De Vincentiis
MaREA: Multi-class Random Forest for Automotive Intrusion Detection
@InProceedings{Caivano2024MaREA,
author="Caivano, Danilo
and Catalano, Christian
and De Vincentiis, Mirko
and Lako, Alfred
and Pagano, Alessandro",
editor="Kadgien, Regine
and Jedlitschka, Andreas
and Janes, Andrea
and Lenarduzzi, Valentina
and Li, Xiaozhou",
title="MaREA: Multi-class Random Forest for Automotive Intrusion Detection",
booktitle="Product-Focused Software Process Improvement",
year="2024",
publisher="Springer Nature Switzerland",
address="Cham",
pages="23--34",
isbn="978-3-031-49269-3"
}
Machine Learning for Automotive Security in Technology Transfer
@InProceedings{Barletta2024TechTransfer,
author="Barletta, Vita Santa
and Caivano, Danilo
and Catalano, Christian
and De Vincentiis, Mirko
and Pal, Anibrata",
editor="Rocha, Alvaro
and Adeli, Hojjat
and Dzemyda, Gintautas
and Moreira, Fernando
and Colla, Valentina",
title="Machine Learning for Automotive Security in Technology Transfer",
booktitle="Information Systems and Technologies",
year="2024",
publisher="Springer Nature Switzerland",
address="Cham",
pages="341--350",
isbn="978-3-031-45651-0"
}
The code relies on the following python3.7+ libs. Packages with the version used are:
The Car-Hacking Dataset, the Survival Analysis Dataset, and the Synthetic Automotive Dataset have used. For the Survivial Analysis only the KIA Soul were considered. The files for this dataset are trasformed from .txt to .csv. The Synthetic Automotive Dataset dataset is contained into the RandomForest\datasets
Corresponding labels for the Car-Hacking Dataset:
- 0: Normal
- 1: DoS
- 2: Fuzzy
- 3: Gear Spoofing
- 4: RPM Spoofing
Corresponding labels for the concantenated dataset (Survival Analysis Dataset and Synthetic Automotive Hacking Dataset):
- 0: Normal
- 1: Flooding
- 2: Fuzzy
- 3: Malfunction
- 4: Fabrication
The repository contains the following scripts: RandomForest\
- main.py: script to execute the different phases
- preprocessing.py: script that contains the preprocessing phases (load dataset, padding, conversion, ...).
- classification.py: script that contains the classification phases (model evaluation, split dataset, train and test, results evaluation)
generated_dataset\
- Fabrication.py: script that generate the normal and fabrication attacks using a virtual CAN interface
Use the configuration.json to configure the different paths in which the datasets are contained. Use the label "true" or "false" to select the dataset that you want to use. Then, run main.py script. The configuration.json contains also the best parameters founded for the Random Forest.