Federated Learning-based IDS for IoT
Overview
This project, developed as part of my Master’s Thesis at Stockholm University, focuses on an Intrusion Detection System (IDS) for IoT networks using Federated Learning. The system ensures privacy by using Differential Privacy (ε = 5) during the aggregation of model weights.
Key Accomplishments
- High Accuracy: Achieved 94.3% accuracy in identifying security incidents and classifying attack patterns from over 3 million network records.
- Privacy-Preserving: Implemented ε-differential privacy to ensure data protection compliance and maintain secure audit trails.
- Cloud-Native Deployment: Deployed and monitored a distributed network of containerized nodes using Docker, Kubernetes, and Azure AKS.
System Architecture
- IoT Nodes: Local devices that train on local traffic data (CIC-IDS datasets).
- Federated Server: Aggregates model updates from nodes using the FedAvg algorithm.
- Privacy Layer: Adds Laplacian noise to model weights to satisfy differential privacy requirements.
Files
fl_simulation.py: A Python simulation of the federated learning process with DP.
Dockerfile: Containerization setup for IoT nodes.
k8s-deployment.yaml: Kubernetes manifests for orchestrating the distributed IDS.
Technologies Used
- Python (NumPy, Scikit-learn)
- Docker & Kubernetes
- Azure AKS
- Differential Privacy