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

136 lines
3.3 KiB
Markdown

# 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 <URL_DEL_REPOSITORIO>
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.
```
```