# 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: ```bash 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:** ```bash git clone cd ENISA_CVEs ``` 2. **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: ```yaml 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: ```bash 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: ```bash 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. ``` ```