Engineering a Real-Time ML Network IDS Dashboard
Summary
The Sentinel project introduces a lightweight, real-time network intrusion detection dashboard powered by a Random Forest model trained on the NSL-KDD dataset. Unlike typical ML IDS projects that stop at model training, Sentinel captures live network traffic, reconstructs the necessary feature space, and displays attack verdicts in a Flask dashboard as packets arrive. The system uses a Kali Linux VM as an attacker and a Windows host as a target within an isolated VirtualBox network. The Random Forest model, chosen for its tolerance to mixed inputs and lack of feature scaling needs, achieves 99.68% accuracy, 1.00 precision, 0.99 recall, and 1.00 F1 score on a 30% validation split. A key engineering challenge addressed is transforming live packets into connection-level features, which Sentinel handles using a rolling connection window and honest approximation of missing NSL-KDD fields. Validation with Kali's hping3 SYN flood confirmed the live pipeline's ability to detect attack patterns.
Key takeaway
For MLOps Engineers building real-time security systems, you must prioritize robust feature engineering and artifact alignment over raw model accuracy. Your live pipeline's ability to transform messy packet data into the exact feature structure expected by the model is critical. Ensure you save fitted encoders and feature column order alongside your trained model to prevent train-serve mismatch. This approach ensures your system remains observable and reliable against actual network traffic, even with necessary feature approximations.
Key insights
Bridging the gap between trained ML models and real-time network traffic requires meticulous feature engineering and honest pipeline design.
Principles
- Live data must match training feature structure.
- Telemetry quality directly impacts model performance.
- Model artifacts (encoders, columns) require alignment.
Method
Sentinel captures live packets, derives connection features using a rolling window, encodes categorical values, builds model input, predicts, and sends verdicts to a Flask dashboard.
In practice
- Use Random Forest for mixed data, no scaling.
- Save model, encoders, feature order via joblib.
- Validate with real attack traffic like hping3.
Topics
- Network IDS
- Real-time ML
- Feature Engineering
- Random Forest
- MLOps
- Scapy
Code references
Best for: Machine Learning Engineer, AI Engineer, MLOps Engineer
Related on AIssential
See Counsel's argued verdicts on the open AI decisions leaders are weighing →
Editorial summary, takeaway, and curation by AIssential. Original article published by Machine Learning on Medium.