This repository contains the implementation of a network intrusion detection system using state-of-the-art and hybrid GNNs.
The following datasets were used in this project:
-
NSL-KDD: A dataset that improves upon the KDD Cup 1999 dataset, containing various network traffic features and attack types.
-
UNSW-NB15: A comprehensive dataset with a wide range of modern attack types and normal network traffic.
-
CICIDS2017: A dataset that includes various network traffic data with different types of attacks.
-
KDD Cup 1999: A classic dataset used for intrusion detection, containing a large amount of network traffic data.
The project follows a structured approach to build and evaluate GNN-based network intrusion detection models
To run the code in this repository, you need the following Python libraries:
- pandas
- numpy
- scikit-learn
- matplotlib
- seaborn
- xgboost
- torch_geometric
- torch
-
Clone the repository:
git clone https://github.com/Abrar2652/network-intrusion-detection.git cd network-intrusion-detection -
Download the datasets:
- Download the datasets from the provided links and place them in the
datadirectory.
- Download the datasets from the provided links and place them in the
-
Run the Jupyter Notebook:
- Open the Jupyter Notebook
network-intrusion-detection.ipynband run the cells to preprocess the data, train the models, and evaluate the results.
- Open the Jupyter Notebook
Contributions are welcome! Please open an issue or submit a pull request for any improvements or suggestions.
This project is licensed under the MIT License.
- The authors of the NSL-KDD, UNSW-NB15, CICIDS2017, and KDD Cup 1999 datasets for providing valuable data for research.
- The open-source community for providing tools and libraries that made this project possible.