Skip to content

comandre-ex/cve-notifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ CVE Notifier v2.0

Plataforma de inteligencia de vulnerabilidades en tiempo real contra la base de datos oficial NVD (National Vulnerability Database) v2.0.
Incluye dashboard web con React, gráficas interactivas, análisis con IA (Claude) y CLI para terminal.
Diseñada para pentesters, investigadores de seguridad y equipos Blue/Red Team.


Tabla de Contenidos


Características

Módulo Función
🔍 Búsqueda por keyword Consulta CVEs por tecnología (linux, apache, openssl...)
🎯 Búsqueda por CVE-ID Consulta directa por CVE-XXXX-XXXXX
🔢 Filtro por versión Afina resultados por versión específica (ej. 2.4.51)
📅 Filtro por año Limita resultados por año de publicación
⚠️ Filtro por severidad Critical / High / Medium / Low según score CVSS
🤖 Análisis con IA Análisis de amenaza, vector de ataque y remediación via Claude
📊 Gráficas interactivas Donut de severidades + histograma de scores CVSS
📄 Reportes automáticos Genera JSON y CSV con cada búsqueda
🎨 CLI coloreada Interfaz terminal via pwntools
🌐 API REST Backend FastAPI consumible desde cualquier cliente

Arquitectura

┌─────────────────────────────────────────────────┐
│                  Browser / CLI                  │
└────────────────┬───────────────┬────────────────┘
                 │               │
        React UI (Vite)    cve-notifier.py
                 │               │
        ┌────────▼───────────────▼────────┐
        │         FastAPI  server.py      │
        │  /api/search   /api/ai/analyze  │
        └────────┬───────────────┬────────┘
                 │               │
          NVD API v2.0     Anthropic API
         (nvd.nist.gov)   (claude-sonnet)

Requisitos

  • Python 3.8+
  • Node.js 18+
  • Conexión a internet (acceso a services.nvd.nist.gov y api.anthropic.com)
  • API Key de Anthropic (para análisis con IA)

Instalación

1. Clona el repositorio

git clone https://github.com/tu-usuario/cve-notifier.git
cd cve-notifier

2. Instala dependencias Python

pip install -r requirements.txt

3. Instala dependencias del frontend

cd frontend
npm install
cd ..

4. Configura tu API Key de Anthropic

export ANTHROPIC_API_KEY="sk-ant-..."

Obtén tu key en https://console.anthropic.com


Uso CLI

La interfaz de terminal original sigue funcionando exactamente igual:

python3 cve-notifier.py <query>

Búsqueda por tecnología

python3 cve-notifier.py linux
python3 cve-notifier.py apache
python3 cve-notifier.py openssl

Búsqueda por CVE-ID exacto

python3 cve-notifier.py CVE-2023-44487
python3 cve-notifier.py CVE-2021-44228

Salida de ejemplo

[+] Consultando NVD: apache
[+] Encontrados 20 registros

[CVE-2024-38475]
Severity: 9.1
CWEs:     CWE-284
Links:
-> https://httpd.apache.org/security/vulnerabilities_24.html
-> https://nvd.nist.gov/vuln/detail/CVE-2024-38475
Desc: Improper escaping in the Apache HTTP Server...
---------------------------------------------

Los reportes se guardan automáticamente en data/:

data/reporte_apache_2025-04-09.json
data/reporte_apache_2025-04-09.csv

Uso Web

Modo desarrollo (dos terminales)

Terminal 1 — Backend:

uvicorn server:app --reload --port 8000

Terminal 2 — Frontend:

cd frontend
npm run dev

Abre http://localhost:5173


Modo producción (todo en un puerto)

cd frontend && npm run build && cd ..
uvicorn server:app --host 0.0.0.0 --port 8000

Abre http://localhost:8000


Funcionalidades del dashboard

Búsqueda avanzada

  • Keyword o CVE-ID en el campo principal
  • Campo de versión para filtrar (ej. 2.4, 3.11.2)
  • Selector de año de publicación
  • Selector de severidad mínima

Tarjetas de resultados

  • Score CVSS con badge de color por nivel
  • CWEs asociados como tags
  • Descripción resumida
  • Links directos a referencias

Análisis con IA (clic en cualquier CVE)

  • Resumen de amenaza
  • Vector de ataque concreto
  • Sistemas y versiones afectadas
  • Pasos de remediación ordenados por prioridad
  • Rating de riesgo contextualizado

Checkbox "Save results"

  • Activa el guardado automático en data/ al buscar

API REST

El backend expone los siguientes endpoints:

GET /api/search

Busca CVEs por keyword o ID.

Parámetro Tipo Requerido Descripción
q string Keyword o CVE-ID
version string Filtro de versión
severity string critical, high, medium, low
year string Año de publicación (ej. 2024)
save bool Guarda resultado en data/
curl "http://localhost:8000/api/search?q=nginx&severity=critical&year=2024"
{
  "results": [
    {
      "id": "CVE-2024-7347",
      "severity": 9.8,
      "cwes": ["CWE-787"],
      "description": "...",
      "urls": ["https://..."],
      "published": "2024-08-14"
    }
  ],
  "total": 1
}

GET /api/cve/{cve_id}

Consulta directa por ID exacto.

curl "http://localhost:8000/api/cve/CVE-2021-44228"

POST /api/ai/analyze

Genera análisis de IA para un CVE.

curl -X POST "http://localhost:8000/api/ai/analyze" \
  -H "Content-Type: application/json" \
  -d '{
    "cve_id": "CVE-2021-44228",
    "prompt": "Analyze this CVE: Log4Shell..."
  }'
{
  "cve_id": "CVE-2021-44228",
  "analysis": "THREAT SUMMARY\nLog4Shell es una vulnerabilidad crítica..."
}

GET /api/reports

Lista los reportes guardados en data/.

curl "http://localhost:8000/api/reports"

Documentación interactiva

FastAPI genera docs automáticamente en:


Despliegue

Railway (recomendado — más rápido)

  1. Sube el proyecto a GitHub
  2. Crea Procfile en la raíz:
    web: uvicorn server:app --host 0.0.0.0 --port $PORT
    
  3. Crea build.sh en la raíz:
    #!/bin/bash
    cd frontend && npm install && npm run build && cd ..
    pip install -r requirements.txt
  4. Conecta el repo en railway.app
  5. Añade la variable ANTHROPIC_API_KEY en el panel de Railway

Docker

FROM node:20-alpine AS builder
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN npm install
COPY frontend/ .
RUN npm run build

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY src/ ./src/
COPY server.py .
COPY --from=builder /app/frontend/dist ./frontend/dist

EXPOSE 8000
CMD ["uvicorn", "server:app", "--host", "0.0.0.0", "--port", "8000"]
docker build -t cve-notifier .
docker run -p 8000:8000 -e ANTHROPIC_API_KEY=sk-ant-... cve-notifier

VPS con Nginx + SSL

# Instalar y correr
git clone https://github.com/tu-usuario/cve-notifier && cd cve-notifier
pip install -r requirements.txt
cd frontend && npm install && npm run build && cd ..

# Systemd service
sudo nano /etc/systemd/system/cve-notifier.service
[Unit]
Description=CVE Notifier
After=network.target

[Service]
WorkingDirectory=/root/cve-notifier
ExecStart=uvicorn server:app --host 0.0.0.0 --port 8000
Environment=ANTHROPIC_API_KEY=sk-ant-...
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable cve-notifier && sudo systemctl start cve-notifier

Nginx reverse proxy:

server {
    server_name tudominio.com;
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

SSL gratuito con Certbot:

certbot --nginx -d tudominio.com

Variables de Entorno

Variable Requerida Descripción
ANTHROPIC_API_KEY API key para análisis con IA. Obtener en console.anthropic.com

Estructura del Proyecto

cve-notifier/
│
├── server.py               ← Backend FastAPI (API REST + proxy IA)
├── cve-notifier.py         ← CLI original con pwntools
├── requirements.txt        ← Dependencias Python
├── Procfile                ← Para Railway
├── build.sh                ← Build script para Railway
├── Dockerfile              ← Imagen Docker multi-stage
│
├── src/
│   ├── __init__.py
│   ├── api.py              ← Cliente NVD API v2.0
│   ├── parser.py           ← Parser de respuestas NVD
│   └── storage.py          ← Guardado JSON y CSV
│
├── frontend/               ← React + Vite
│   ├── package.json
│   ├── vite.config.js      ← Proxy /api → :8000
│   ├── index.html
│   └── src/
│       ├── main.jsx
│       ├── App.jsx
│       ├── index.css
│       └── components/
│           ├── Header.jsx
│           ├── SearchBar.jsx   ← Filtros: keyword, versión, año, severidad
│           ├── StatsRow.jsx    ← Métricas: total, critical, high, avg score
│           ├── ChartsRow.jsx   ← Donut + histograma CVSS (Recharts)
│           ├── ResultsList.jsx ← Cards de CVEs con badges
│           └── AIPanel.jsx     ← Análisis IA al seleccionar CVE
│
└── data/                   ← Generada automáticamente
    ├── reporte_apache_2025-04-09.json
    ├── reporte_apache_2025-04-09.csv
    └── ...

Tecnologías

Backend

Frontend

Fuentes de datos

About

🛡️ Herramienta CLI para auditoría de vulnerabilidades en tiempo real via NVD API v2.0. Búsqueda por keyword o CVE ID exacto. reportes JSON/CSV automáticos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors