AI-Driven Dynamic Fuzz Testing for IoT Security: Detection and Mitigation of DDoS Attacks Using Graph Neural Networks
FuzzAIoT is an advanced security framework designed to safeguard IoT networks against Distributed Denial of Service (DDoS) attacks. By leveraging Dynamic Fuzz Testing combined with Graph Neural Networks (GNNs), this project provides a cutting-edge solution for ensuring the integrity, availability, and reliability of IoT systems. The framework detects and mitigates DDoS attacks in real-time, preserving network performance and protecting connected devices.
This project was developed using the Agile Scrum methodology. Our team organized the work into four key sprints, each corresponding to different phases of development, ensuring clear milestones and effective collaboration. All tasks and user stories were tracked in Microsoft Planner.
-
Sprint 1: Setup NS3 Simulation Environment
- Setup and configuration of the NS3 network simulation tool to emulate IoT environments.
-
Sprint 2: Generate Dataset for GNN Training
- Collected network traffic data from NS3 simulations, generating both benign and DDoS attack traffic for training.
-
Sprint 3: Train GNN Model for DDoS Detection
- Trained the Graph Neural Network model using the dataset generated in Sprint 2, focusing on improving detection accuracy.
-
Sprint 4: Implement Real-Time DDoS Mitigation in NS3
- Integrated real-time DDoS mitigation mechanisms into the NS3 environment to block malicious IPs.
Hereβs a snapshot of our Microsoft Planner Board showcasing the breakdown of tasks for each sprint:
- Dynamic Fuzz Testing: Simulates various attack scenarios to uncover vulnerabilities within IoT networks, providing a proactive approach to security.
- Graph Neural Networks (GNNs): Utilizes GNNs trained on realistic network traffic to accurately detect and mitigate DDoS attacks with a high success rate.
- NS3 Simulations: Employs the NS3 network simulator to generate diversified and realistic network traffic, ensuring comprehensive training and validation of AI models.
- Real-Time Mitigation: Implements real-time blocking of malicious IPs identified during the simulation, ensuring uninterrupted and secure network operations.
FuzzAIoT/
βββ data/ # Datasets used for training and validation
βββ models/ # Trained GNN models
βββ scripts/ # Scripts for data processing, model training, and evaluation
βββ outputs/ # CSV files after converting NS3 simulation files
βββ simulations/ # NS3 simulation scripts and configurations
βββ results/ # Graphs and simulation results
βββ README.md # Project documentation
βββ LICENSE # License file
-
Clone the repository:
git clone https://github.com/footcricket05/FuzzAIoT.git cd FuzzAIoT -
Install the required dependencies:
pip install -r requirements.txt
-
Run NS3 simulations to generate the dataset:
cd simulations/ ./waf --run your_simulation_script -
Train & Evaluate the GNN model:
python scripts/GNN_Identification.py
- Generate Network Traffic: Use NS3 simulations to create a realistic IoT network environment, generating both benign and malicious traffic.
- Train the Model: Use the generated data to train the GNN model for accurate DDoS detection.
- Deploy the Model: Integrate the trained model into the NS3 simulation environment for real-time detection and mitigation of DDoS attacks.
- Detection Accuracy: 74%
- Mitigation Success: 95%
- The model effectively differentiates between benign and malicious traffic while maintaining optimal network performance.
- Training Graphs: View the training loss and accuracy graphs to understand the modelβs learning process.
- Simulation Visualization: See the simulation results to observe how the GNN model mitigates DDoS attacks in real-time.
- Confusion Matrix: Check out the confusion matrix that illustrates the modelβs performance in distinguishing between benign and malicious traffic.
Note: To visualize these results, navigate to the
results/directory where all output graphs and screenshots are stored.
Hereβs the updated contributors section with specific roles:
We had a strong, dedicated team contributing to the success of this project:
- Shaurya Srinet (@footcricket05) - Lead Developer, NS3, IoT, and AI/ML Integration
- Charvi Jain (@charvijain12) - AI/ML Development, Agile Scrum Developer and Documentation
- Shounak Chandra (@Shounak2003) - IoT, Agile Scrum Developer and Documentation
We welcome contributions from the community! Feel free to fork this repository, create a feature branch, and submit a pull request. Your input is valuable in enhancing the robustness and effectiveness of FuzzAIoT.
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for more details.