/IDS-BestAlg

The IDS-BestAlg project aims to develop a robust and efficient Intrusion Detection System (IDS) by implementing and comparing seven different machine learning and deep learning algorithms.

Primary LanguageJupyter Notebook

IDS-BestAlg

Build an Intrusion Detection System (IDS) based on seven different algorithms and compare them to find the best one.

Abstract

An Intrusion Detection System (IDS) is a device or software application that monitors a network for malicious activity or policy violations. It scans a network or system for harmful activity or security breaches. IDS can be network-based (NIDS) or host-based (HIDS), and they work by looking for signatures of known attacks or deviations from normal activity. In this project, we implemented machine learning and deep learning solutions for detecting attacks using the following seven algorithms:

  • Gaussian Naive Bayes
  • Decision Tree
  • Random Rorest
  • Support Vector Machine
  • Logistic Regression
  • Gradient Boosting
  • Artificial Neural Network

We addressed the problem of data imbalance between normal (benign) and attack (malicious) instances using the imbalanced-learn(https://imbalanced-learn.org/stable/index.html) library.

Our approach was tested on the KDD99 benchmark dataset, which can be found here. The experimental results demonstrate that models based on Random Forest achieve the best accuracy for training and testing, considering both accuracy and time consumption.

Looking at visualize of training accuracy

training_accuracy_figure

Looking at visualize of testing accuracy

testing_accuracy_figure

Looking at visualize of training time

training_time_figure

Looking at visualize of testing time

testing_time_figure