Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ VulnMonitor — Automated Vulnerability Monitoring Tool

Team: CodeCrafters | Event: IntrusionX Second Edition — Cyberonites, GLA University


📌 Overview

VulnMonitor is a full-stack web application that automatically fetches, deduplicates, and displays CVE (Common Vulnerabilities & Exposures) data from the NIST National Vulnerability Database. It provides real-time alerts for critical threats and a clean cyberpunk-styled dashboard for security teams.


🏗️ Tech Stack

Layer Technology
Frontend HTML5, CSS3, Vanilla JavaScript
Backend Python 3, Flask, Flask-CORS
Database Supabase
Data Sources NVD REST API (nvd.nist.gov), CVE feeds
Scheduler APScheduler (Cron Jobs, auto-fetch)
Deployment Render

🚀 Quick Start

Prerequisites

  • Python 3.8+
  • Any modern browser

1. Install & Run Backend

cd backend
pip install -r requirements.txt
python app.py

The backend starts on http://localhost:5000 and automatically fetches the last 7 days of CVE data on first run.

2. Open Frontend

Open frontend/index.html in your browser — no build step needed.


📡 API Endpoints

Method Endpoint Description
GET /api/vulnerabilities List CVEs (paginated, filtered)
GET /api/vulnerabilities/<cve_id> Get single CVE details
GET /api/stats Dashboard statistics
GET /api/alerts Security alerts
POST /api/alerts/<id>/read Mark alert as read
POST /api/alerts/read-all Mark all alerts as read
POST /api/fetch Trigger manual CVE sync
GET /api/fetch-log Fetch history log
GET /api/health Health check

Query Parameters for /api/vulnerabilities

  • severity — CRITICAL | HIGH | MEDIUM | LOW
  • search — Full-text search on CVE ID or description
  • page, per_page — Pagination
  • sort_by — cve_id | cvss_score | published
  • order — asc | desc

✨ Features

  • 🔄 Auto-sync — APScheduler fetches new CVEs every hour via NVD REST API
  • 🔍 Smart deduplication — MD5 hash-based deduplication prevents duplicates
  • 📊 Dashboard — Stats cards, donut chart, 7-day trend, top affected products
  • 🚨 Real-time alerts — Instant alerts for CRITICAL and HIGH severity CVEs
  • 🔎 Search & Filter — Search by CVE ID or description, filter by severity
  • 📋 CVE Detail Modal — Full details with CVSS score bar, vector, references
  • 📡 Fetch Log — History of all data sync operations
  • 📱 Responsive — Mobile-friendly sidebar + layout

📁 Project Structure

vuln-monitor/
├── backend/
│   ├── app.py               # Flask API server
│   ├── requirements.txt     # Python dependencies
│   └── vulnerabilities.db   # SQLite database (auto-created)
├── frontend/
│   └── index.html           # Complete SPA (HTML + CSS + JS)
├── start.sh                 # One-command startup script
└── README.md

🔒 Security Notes

  • All CVE data sourced from NIST NVD — authoritative, government-maintained
  • CORS configured for local development; restrict in production
  • SQLite is sufficient for prototype; PostgreSQL recommended for production scale

📚 References


Built with ❤️ by Team CodeCrafters for IntrusionX SE | Cyberonites


🤖 v2.0 — AI Features (New)

Setup Groq API (Free)

  1. Go to https://console.groq.com → sign up free
  2. Create an API key
  3. Set before running backend:
    # Windows
    set GROQ_API_KEY=gsk_your_key_here
    # Mac / Linux
    export GROQ_API_KEY=gsk_your_key_here

New Features

  • AI Risk Scoring — Click "Analyse with AI" on any CVE modal → Groq LLaMA 3 explains the risk in plain English, describes a realistic attack scenario, and gives patch advice
  • Asset Radar — Enter your tech stack (apache, windows, php…) → AI scans all CVEs and returns only threats that affect YOUR environment
  • PDF Export — Export any single CVE or the full Asset Radar report as a professional PDF

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages