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:
-
Recommendations:
- Use Linux (preferably Ubuntu 20.04) for easier dataset handling.
- Employ Python 3.9 for compatibility.
- Consider using PyCharm for streamlined configuration handling.
-
Repository Setup:
- Clone or download the repository to your machine.
-
Data Acquisition:
- Manually create a
data/
folder infed_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.
- Manually create a
-
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
.
- Using PyCharm: Create a new Python interpreter, PyCharm will prompt to install requirements from
-
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.
-
Hyper-Parameters:
- Hyper-parameters are defined in the code; fixed parameters are in
constant_params
, varying ones invarying_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.
- Hyper-parameters are defined in the code; fixed parameters are in
-
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.
-
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:
Connect with me through various portals :
Social Media | Username | Link | |
---|---|---|---|
shabazuddin.198@gmail.com |
|||
Shabazuddin Mohammad |
|||
shabaz_uddin |
|||
Shabaz |
|||
shabazuddin786 |
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.