An Interactive Real-Time Dashboard for Simulating and Visualizing DDoS Attacks & Defense Mechanisms
๐ Demo โข ๐ Features โข ๐ ๏ธ Installation โข ๐ Usage โข ๐๏ธ Architecture
Project Sentinel is a comprehensive cybersecurity education tool that provides a real-time, interactive dashboard for simulating Distributed Denial of Service (DDoS) attacks and their mitigation strategies within a secure, sandboxed virtual network environment.
Perfect for cybersecurity students, network administrators, and security researchers who want to understand attack patterns and defense mechanisms in a controlled environment.
- Dynamic CPU Load Monitoring with interactive line charts
- Live Network Traffic Analysis
- Attack Impact Visualization with color-coded severity indicators
- One-Click Attack Simulation (SYN Flood, UDP Flood)
- Defense Mechanism Activation (Firewall rules, Rate limiting)
- Simulation State Management with intelligent UI controls
- Timestamped Event Stream with real-time updates
- Attack Pattern Analysis
- Defense Effectiveness Metrics
- Decoupled Frontend/Backend design
- WebSocket Real-Time Communication
- Sandboxed Network Environment using Mininet
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Interactive Dashboard | |
| Backend | API & WebSocket Server | |
| Simulation | Network Virtualization | |
| Visualization | Real-time Metrics |
graph TB
A[React Frontend] -->|WebSocket| B[Flask Backend]
B -->|Python API| C[Mininet Engine]
C -->|Virtual Network| D[Attack Simulation]
C -->|Defense Rules| E[Firewall/iptables]
B -->|Real-time Data| A
- User Interaction โ React sends commands via WebSocket
- Backend Processing โ Flask validates and executes commands
- Network Simulation โ Mininet creates virtual environment
- Real-time Feedback โ Metrics streamed back to dashboard
# System Requirements
- Ubuntu 20.04+ (or compatible Linux distribution)
- Python 3.8+
- Node.js 16+
- sudo privileges# 1. Clone the repository
git clone https://github.com/yourusername/project-sentinel.git
cd project-sentinel
# 2. Install Mininet (if not already installed)
sudo apt update
sudo apt install mininet
# 3. Backend Setup
cd backend
sudo apt install python3-flask python3-flask-cors python3-flask-socketio
# or using pip
pip3 install flask flask-cors flask-socketio
# 4. Frontend Setup
cd ../frontend
npm installYou'll need 3 terminal windows:
cd backend
sudo python3 app.py๐ข Server running on
http://localhost:5000
cd frontend
npm run dev๐ข Dashboard available at
http://localhost:5173
# Test API endpoints
curl -X POST http://localhost:5000/api/start-simulation
curl -X POST http://localhost:5000/api/launch-attack- ๐ Start Simulation - Initialize the virtual network
- โ๏ธ Launch Attack - Begin DDoS simulation
- ๐ก๏ธ Activate Defense - Deploy countermeasures
- ๐ Monitor Metrics - Watch real-time impact
- ๐ Stop Simulation - Clean up resources
# Backend Configuration
FLASK_HOST=localhost
FLASK_PORT=5000
MININET_CLEANUP=true
# Frontend Configuration
VITE_API_URL=http://localhost:5000# Customize in backend/simulation_manager.py
ATTACK_DURATION = 30 # seconds
ATTACK_RATE = 1000 # packets/second
TARGET_PORT = 80 # HTTP portThis project is licensed under the MIT License - see the LICENSE file for details.
- Team Member Ayush Rathi(23BCE1509), Harjyot Singh Sehgal(23BCE1609), Rohit(23BCE1982)
Made with โค๏ธ for Cybersecurity Education
