Skip to content

NetProtector is a real-time, desktop-based Intrusion Detection System (IDS) built with Java and JavaFX for comprehensive network threat monitoring. It is designed to assist security analysts and network administrators in monitoring suspicious activities and generating actionable insights.

License

Notifications You must be signed in to change notification settings

ZAKARIA-ELOMARI/IDS_NetProtector

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

███╗   ██╗███████╗████████╗██████╗ ██████╗  ██████╗ ████████╗███████╗ ██████╗████████╗ ██████╗ ██████╗ 
████╗  ██║██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██╔═══██╗╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗
██╔██╗ ██║█████╗     ██║   ██████╔╝██████╔╝██║   ██║   ██║   █████╗  ██║        ██║   ██║   ██║██████╔╝
██║╚██╗██║██╔══╝     ██║   ██╔═══╝ ██╔══██╗██║   ██║   ██║   ██╔══╝  ██║        ██║   ██║   ██║██╔══██╗
██║ ╚████║███████╗   ██║   ██║     ██║  ██║╚██████╔╝   ██║   ███████╗╚██████╗   ██║   ╚██████╔╝██║  ██║
╚═╝  ╚═══╝╚══════╝   ╚═╝   ╚═╝     ╚═╝  ╚═╝ ╚═════╝    ╚═╝   ╚══════╝ ╚═════╝   ╚═╝    ╚═════╝ ╚═╝  ╚═╝

Real-time Intrusion Detection System (IDS) built with Java & JavaFX for comprehensive network threat monitoring.

Java JavaFX Maven license


🔗 Table of Contents


📍 Overview

NetProtector is a desktop-based Intrusion Detection System (IDS) developed in Java and JavaFX that captures, analyzes, and alerts on real-time network threats. With 15+ built-in detection rules, an interactive dashboard, and persistent historical data logging, it’s designed to assist security analysts and network administrators in monitoring suspicious activities and generating actionable insights.


👾 Features

🧠 Core Capabilities

  • 🔴 Live Packet Sniffing via pcap4j
  • ⚙️ Multithreaded Detection Engine running over 15 security rules
  • 📊 Interactive JavaFX Dashboard with real-time graphs and logs
  • 🚨 Alerts System: Desktop pop-ups and email notifications
  • 🕓 Historical Tracking: Alerts saved in a local SQLite database

🛡️ Detection Rules

  • DDoS Attack Detection
  • Brute Force Monitoring
  • SQL Injection
  • DNS Tunneling
  • Malicious IP Tracking
  • Port Scanning
  • Suspicious Traffic Heuristics
  • And more...

📤 Reporting Tools

  • PDF Report Generation (iTextPDF)
  • CSV Export (OpenCSV)
  • Real-time Email Notifications (Jakarta Mail)
  • Detailed Logs & Desktop Alerts

📁 Project Structure

IDS_NetProtector/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/NetProtector/
│   │   │       ├── controllers/     # UI Controllers
│   │   │       ├── models/          # Data Models
│   │   │       ├── services/        # IDS Logic & Detection
│   │   │       ├── utils/           # Helper Utilities
│   │   │       └── Main.java        # Entry Point
│   │   └── resources/
│   │       ├── fxml/                # FXML UI Layouts
│   │       ├── css/                 # Stylesheets
│   │       └── images/              # Icons and Assets
├── docs/images/                     # Screenshots
├── pom.xml                          # Maven Config
└── README.md                        # This File

📂 Project Index

Key Components
File/Folder Description
Main.java Application launcher and JavaFX entry point
controllers/ Handles GUI interactions
services/ Core IDS functionality and rule engine
utils/ Email, Logging, and PDF Export Utilities
notification.properties Email settings (requires setup)
pom.xml Maven dependencies and plugins

🚀 Getting Started

☑️ Prerequisites

  • Java 17+
  • Maven 3.8+
  • Administrative privileges (for raw packet capture)
  • Supported OS: Windows, macOS, or Linux
  • Access to network interfaces

⚙️ Installation

  1. Clone the repository
git clone https://github.com/K4YR0/IDS_NetProtector.git
cd IDS_NetProtector
  1. Install dependencies
mvn clean install
  1. Run the application
mvn javafx:run
# Or launch the JAR directly
java -jar target/IDS_NetProtector-1.0.jar

🤖 Usage

  1. Launch the application with administrator/root privileges
  2. Choose the appropriate network interface
  3. Adjust detection rules in the Settings panel
  4. Click Start IDS to begin monitoring
  5. Watch real-time alerts populate the dashboard
  6. Use the Export tab for PDF/CSV reports

📸 Screenshots


Main Dashboard with Live Monitoring


Alerts & Notifications Panel


⚙️ Configuration

✉️ Email Notifications

  1. Copy the template file:
cp notification_placeholder.properties notification.properties
  1. Update SMTP settings:
notification.email.username=your-email@gmail.com
notification.email.recipient=alerts@yourdomain.com
# Use an app-specific password if using Gmail

🔒 Detection Rules

You can fine-tune detection thresholds directly via the Settings panel in the UI or modify rule constants in services/.


🔰 Contributing

  1. Fork this repository
  2. Create a feature branch
git checkout -b feature/amazing-feature
  1. Commit your changes
git commit -m 'Add amazing feature'
  1. Push the branch
git push origin feature/amazing-feature
  1. Open a Pull Request

Made with ❤️ by the Open Source Community.


🎗 License

This project is licensed under the MIT License. See the LICENSE file for details.


🔮 Future Enhancements

  • Machine Learning-based Anomaly Detection
  • Web-based Dashboard Interface
  • Integration with Threat Intelligence Feeds
  • REST API for third-party tools
  • Advanced Traffic Visualizations
  • Multi-node IDS Cluster Support

⭐ If you found NetProtector helpful, please consider giving it a ⭐ on GitHub!

About

NetProtector is a real-time, desktop-based Intrusion Detection System (IDS) built with Java and JavaFX for comprehensive network threat monitoring. It is designed to assist security analysts and network administrators in monitoring suspicious activities and generating actionable insights.

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • Java 90.7%
  • CSS 9.3%