Next-generation IoT security solution combining machine learning and real-time monitoring to protect connected devices
RIOT IDS/IPS (Real-time IoT Intrusion Detection and Prevention System) is an advanced security framework designed specifically for IoT environments. With the exponential growth of connected devices, securing IoT networks has become a critical challenge that traditional security solutions often fail to address adequately.
Our system leverages the power of machine learning with a dual-model approach, combining supervised (Random Forest) and unsupervised (Isolation Forest) algorithms to detect both known attack patterns and zero-day threats. The solution provides real-time monitoring, automated threat mitigation, and comprehensive analytics through an intuitive dashboard.
What sets RIOT apart is its ability to learn and adapt to specific IoT environments, reducing false positives while maintaining high detection accuracy. The system is designed to be lightweight enough to run on edge devices while scalable for large deployments.
Interactive security dashboard showing real-time device monitoring, threat detection, and automated response capabilities.
Python Flask server with machine learning models (Random Forest + Isolation Forest) for anomaly detection.
Realistic IoT attack simulation with multiple threat vectors (DDoS, brute force, injection, etc.) for testing.
Track all IoT devices and network traffic with live updates every 2 seconds.
Combines Random Forest (supervised) and Isolation Forest (unsupervised) models.
Auto-blocks malicious devices after 3 attack attempts (configurable threshold).
Instant notifications for critical threats via Telegram bot.
Download complete threat logs in CSV format for analysis.
Adjust sensitivity, attack thresholds, and notification preferences.
Ensure you have Python 3.8+ installed, then install required packages:
pip install flask pandas scikit-learn joblib faker
Edit dashboard.html
with your Telegram bot token and chat ID:
const TELEGRAM_BOT_TOKEN = "your_bot_token";
const TELEGRAM_CHAT_ID = "your_chat_id";
Start the backend server (default port: 7000):
python main.py
Open in your browser:
http://localhost:7000/dashboard
Generate test data (run in separate terminal):
python attacker.py --duration 10 --attack-ratio 0.3