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 si la versión específica configurada se ve afectada tras contrastarla directamente con los metadatos de producto (enisaIdProduct), y genera automáticamente un informe detallado en formatos JSON, Markdown y PDF.
Características
- Consulta precisa a la API de ENISA: Búsqueda orientada por los parámetros nativos
vendoryproduct. - Evaluación exacta por versión/rango: Filtrado local mediante parseo de la propiedad
product_versionde cada registro de ENISA (detección de rangosX to Y, coincidencia exacta y expresiones<= X), evitando falsos positivos. - 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 y tablas resumen.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 -y install python3 python3-pip pandoc texlive-xetex fonts-dejavu fonts-noto-color-emoji
Instalación
- Clonar el repositorio:
git clone https://gitea.soloconlinux.org.es/luisgulo/ENISA_EUVD
cd ENISA_EUVD
- Instalar las dependencias de Python:
En Debian puedes instalar las dependencias necesarias de Python ejecutando:
sudo apt -y install python3-yaml python3-packaging python3-requests
En otros sistemas puedes realizarlo mediante:
pip3 install 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: "Oracle"
product: "OpenJDK"
version: "21"
- vendor: "GitLab"
product: "GitLab CE"
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.jsoninforme_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
Si tienes instalado Pandoc puedes usar directamente el script INFORME.sh que realiza todo el proceso completo:
./INFORME.sh
Estructura del Informe
El informe generado incluye:
- Métricas Globales: Total de elementos auditados, vulnerabilidades analizadas y distribución por criticidad.
- Resumen Ejecutivo: Tabla comparativa indicando los hallazgos por cada componente del archivo YAML.
- 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.
El informe generado incluye:
- Métricas Globales: Total de informes consolidados, vulnerabilidades analizadas, clasificadas como aplicables, descartadas (no aplicables por regla de versión) y pendientes de revisión manual.
- Resumen Ejecutivo por Objetivo: Tabla comparativa indicando las vulnerabilidades analizadas, aplicables y descartadas para cada tecnología declarada en el YAML.
- Detalle de Vulnerabilidades Aplicables: Desglose individual ordenado por puntuación CVSS y clasificado por nivel de severidad ([CRÍTICA], [ALTA], [MEDIA], [BAJA]), indicando el patrón/regla de versión que determinó la afectación y la descripción del impacto.
Licencia
Uso interno para auditorías de seguridad y gestión de vulnerabilidades.