Ioannis Oikonomopoulos, "Accurate IoT intrusion detection system via application of AI models", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2025
https://doi.org/10.26233/heallink.tuc.102444
The Internet of Things (IoT) keeps growing bigger every year. Based on IoT Ana-lytics data [1], connected devices worldwide are expected to reach over 29 billionby 2027, spreading across transportation, healthcare, warehousing, security, anddata monitoring. These devices have become so important in our daily lives andbusiness operations that we can hardly imagine functioning without them. Yet,we’ve seen how device failures in the past have seriously damaged both data pri-vacy and economic stability.With AI becoming the star technology of the 2020s, it’s revolutionizing how weapproach Network Intrusion Detection Systems (NIDS). While we’re getting bet-ter at training models to catch all sorts of attacks on servers and microservices,there’s still a big question mark when it comes to embedded devices - what canwe do when we’re working with limited computational resources?This thesis tackles the challenge of running effective NIDS on IoT devices withoutoverwhelming their modest resources. Our approach? We’re implementing clas-sification and outlier detection algorithms in GoLang - a lightweight, low-levellanguage that handles malicious traffic more efficiently than Python (the usual go-to for Machine Learning). While we started our experiments in Python, thanks toits user-friendly typing and rich Machine Learning libraries, we ultimately movedeverything to GoLang for the final product.We worked with a Mirai Botnet attack dataset, since it’s the most common type ofIoT attack out there. For our analysis, we used Light Gradient Boosting Machine(LightGBM - LGBM) for classification and One-Class Support Vector Machine(One Class SVM - OCSVM) for spotting anomalies. We compared how thesemethods stack up against Kitsune, a newer framework for detecting outliers. Thefinal test? Running everything on a Raspberry Pi [2] to see how Python, GoLang,and Kitsune perform in a real embedded system setup.