ENISA_EUVD/README.md
Luis Gutierrez Lopez a0f1c6b0bc Versiones finales
2026-08-11 18:06:48 +02:00

3.3 KiB

Auditoría de Vulnerabilidades ENISA EUVD

Herramienta en Python para la consulta y generación de informes ejecutivos de vulnerabilidades basados en la API oficial de ENISA EUVD (European Union Vulnerability Database).

El script analiza los componentes de infraestructura definidos por el usuario, evalúa su impacto según métricas CVSS y genera automáticamente un informe detallado en formatos JSON, Markdown y PDF.


🚀 Características

  • Consulta eficiente a la API de ENISA: Filtrado por ventana temporal y nivel de severidad (CVSS > 7.0 por defecto).
  • Gestión de límites de tasa (Rate Limiting): Control automático con reintentos para manejar respuestas HTTP 429.
  • Soporte multiobjetivo: Definición ágil de entornos mediante archivos de configuración YAML.
  • Formatos de salida:
    • reporte_vulnerabilidades.json: Datos estructurados para integración con pipelines o SIEM.
    • informe_vulnerabilidades.md: Informe en Markdown organizado mediante fichas ejecutivas.
    • informe_vulnerabilidades.pdf: Documento compilado mediante Pandoc e listo para presentación.

Requisitos Previos

Entorno Linux (Debian)

Asegúrate de contar con los paquetes base del sistema y el motor de compilación PDF:

sudo apt update
sudo apt install -y python3 python3-pip pandoc texlive-xetex fonts-dejavu fonts-noto-color-emoji


Instalación

  1. Clonar el repositorio:
git clone <URL_DEL_REPOSITORIO>
cd ENISA_CVEs

  1. Instalar las dependencias de Python:

Se necesita:

  • requests
  • pyyaml
  • packaging

Configuración (targets.yaml)

Define en el archivo targets.yaml el listado de tecnologías, proveedores y versiones que deseas auditar:

targets:
  - vendor: "apache"
    product: "tomcat"
    version: "9.0.118"

  - vendor: "jenkins"
    product: "jenkins"
    version: "2.504.3"

  - vendor: "goharbor"
    product: "harbor"
    version: "2.11.0"

  - vendor: "oracle"
    product: "openjdk"
    version: "11.0.21"

  - vendor: "gitlab"
    product: "gitlab"
    version: "19.1.1"


Uso

1. Ejecutar el análisis

Ejecuta el script principal para consultar la API de ENISA y generar los archivos de reporte:

python3 check_EUVD.py

Al finalizar la ejecución se habrán creado dos archivos:

  • reporte_vulnerabilidades.json
  • informe_vulnerabilidades.md

2. Generar el informe en PDF

Utiliza Pandoc junto con el motor XeLaTeX para compilar el Markdown a PDF con márgenes ajustados:

pandoc informe_vulnerabilidades.md -o informe_vulnerabilidades.pdf \
  -V lang=es \
  -V geometry:a4paper \
  -V geometry:margin=2cm \
  -V mainfont="DejaVu Serif" \
  -V monofont="DejaVu Sans Mono" \
  --pdf-engine=xelatex


Estructura del Informe

El informe generado incluye:

  1. Métricas Globales: Total de elementos auditados, vulnerabilidades analizadas y distribución por criticidad.
  2. Resumen Ejecutivo: Tabla comparativa indicando los hallazgos por cada componente del archivo YAML.
  3. Detalle de Vulnerabilidades (Fichas): Desglose individual clasificado por nivel de severidad ([CRÍTICA], [ALTA], etc.), identificadores CVE/EUVD, versión afectada y descripción detallada del impacto.

Licencia

Uso interno para auditorías de seguridad y gestión de vulnerabilidades.