Next-generation IoT security solution combining machine learning and real-time monitoring to protect connected devices

About The Project

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.

IoT Security Concept

Dashboard

Interactive security dashboard showing real-time device monitoring, threat detection, and automated response capabilities.

HTML5 CSS3 JavaScript Chart.js

Backend

Python Flask server with machine learning models (Random Forest + Isolation Forest) for anomaly detection.

Python Flask Scikit-learn Pandas

Attack Simulator

Realistic IoT attack simulation with multiple threat vectors (DDoS, brute force, injection, etc.) for testing.

Python Faker Logging

Key Features

Real-time Monitoring

Track all IoT devices and network traffic with live updates every 2 seconds.

ML-Powered Detection

Combines Random Forest (supervised) and Isolation Forest (unsupervised) models.

Automated Prevention

Auto-blocks malicious devices after 3 attack attempts (configurable threshold).

Telegram Alerts

Instant notifications for critical threats via Telegram bot.

Log Export

Download complete threat logs in CSV format for analysis.

Customizable

Adjust sensitivity, attack thresholds, and notification preferences.

Getting Started

1

Install Dependencies

Ensure you have Python 3.8+ installed, then install required packages:

pip install flask pandas scikit-learn joblib faker
2

Configure Telegram (Optional)

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";
3

Run the System

Start the backend server (default port: 7000):

python main.py
4

Access Dashboard

Open in your browser:

http://localhost:7000/dashboard
5

Simulate Attacks (Testing)

Generate test data (run in separate terminal):

python attacker.py --duration 10 --attack-ratio 0.3
Gouri Sankar A

Gouri Sankar A

Junior Software Developer & Cybersecurity Researcher

Passionate about building secure software solutions with a focus on IoT security. As a cybersecurity researcher, I specialize in developing intelligent systems that protect connected devices from emerging threats. My work combines software engineering principles with cutting-edge security research to create robust defenses.