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.0por 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
- Clonar el repositorio:
git clone <URL_DEL_REPOSITORIO>
cd ENISA_CVEs
- Instalar las dependencias de Python:
Se necesita:
requestspyyamlpackaging
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.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
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.
Licencia
Uso interno para auditorías de seguridad y gestión de vulnerabilidades.