Skip to content

The project focuses on utilizing federated machine learning to enhance the detection of malware in Internet of Things (IoT) devices. The code includes experiments simulating various configurations where clients collaboratively train deep learning models for malware detection without sharing raw data.

Notifications You must be signed in to change notification settings

MohammadShabazuddin/FedSecGuard-Federated_Learning_Techniques_for_Advanced_Malware_Detection

Repository files navigation

Project Title: #FedSecGuard - Federated Learning Techniques for Advanced Malware Detection

🔍 Overview: The project focuses on utilizing federated machine learning to enhance the detection of malware in Internet of Things (IoT) devices. The code includes experiments simulating various configurations where clients collaboratively train deep learning models for malware detection without sharing raw data.

🛠️ Setup Instructions:

  1. Recommendations:

    • Use Linux (preferably Ubuntu 20.04) for easier dataset handling.
    • Employ Python 3.9 for compatibility.
    • Consider using PyCharm for streamlined configuration handling.
  2. Repository Setup:

    • Clone or download the repository to your machine.
  3. Data Acquisition:

    • Manually create a data/ folder in fed_iot_guard/.
    • Download and extract the N-BaIoT dataset into the data/N-BaIoT/ folder.
    • On Linux, execute a command to download the dataset. If not on Linux, find an alternative method.
    • Use the unar command to extract files with .rar extension.
  4. Python Library Installation:

    • Using PyCharm: Create a new Python interpreter, PyCharm will prompt to install requirements from requirements.txt.
    • Using virtualenv: Create a new virtual environment, activate it, and install requirements using pip install -r requirements.txt.
  5. Usage:

    • Run experiments with different configurations by adjusting program arguments.
    • Examples include collaborative grid search for classifiers and federated training/testing for autoencoders.
    • Detailed instructions for PyCharm users and terminal commands are provided.
  6. Hyper-Parameters:

    • Hyper-parameters are defined in the code; fixed parameters are in constant_params, varying ones in varying_params.
    • After running a grid search, check results using the provided Jupyter notebook GS Results.ipynb.
    • Copy the best hyper-parameters for each configuration into configuration_params lists.
  7. Modification and Code Structure:

    • The code is designed for easy extension, organized into files for specific functionalities.
    • Explanation provided for each file's purpose, such as data handling, machine learning functions, and experiments.
  8. Context and Additional Information:

    • The project uses federated learning to collaborate on model training without sharing raw data, enhancing malware detection for IoT devices.
    • Detailed insights into the structure, modifications, and usage are provided for better understanding.

📚 References:

Contact

Connect with me through various portals :

Social Media Username Link
Email shabazuddin.198@gmail.com Email
LinkedIn Shabazuddin Mohammad LinkedIn
Instagram shabaz_uddin Instagram
Facebook Shabaz Facebook
Twitter shabazuddin786 Twitter

I'm always open to collaboration and new opportunities! Feel free to reach out and connect with me. 🌟

🚀 Note: The project requires careful attention to setup details and may involve lengthy execution times for experiments. Adjust parameters as needed for your environment.

About

The project focuses on utilizing federated machine learning to enhance the detection of malware in Internet of Things (IoT) devices. The code includes experiments simulating various configurations where clients collaboratively train deep learning models for malware detection without sharing raw data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published