Volver a actualizaciones
Nuevo releaseAug 23, 2026

vex8s v0.5.0

Suprimir vulnerabilidades aplicando el contexto de Kubernetes a los análisis

Compartir

Vex8s

vex8s (este logotipo no está generado por IA)

Vex8s genera documentos VEX correlacionando vulnerabilidades de contenedores con la configuración de Kubernetes para determinar qué CVEs son realmente explotables en tu clúster.

Ten en cuenta que este es un proyecto experimental. Las cosas pueden cambiar rápidamente.

Cómo Funciona

El proyecto tiene como objetivo evaluar la explotabilidad de CVEs conocidos dentro de cargas de trabajo de Kubernetes combinando la clasificación de vulnerabilidades y el análisis de securityContext.

vex8s-logic

Se basa en el siguiente concepto:

  • Cada CVE se categoriza en una o más clases de vulnerabilidad (CWE)
  • La descripción del CVE se procesa mediante un modelo de ML integrado para predecir su categoría de explotación.
  • Tanto los CWEs como las categorías de explotación predichas se combinan para determinar si el CVE es mitigable.
  • Cada categoría de explotación se asigna a un conjunto de configuraciones de Kubernetes que pueden bloquear o reducir el impacto.
  • Al analizar un manifiesto de Kubernetes, podemos inspeccionar la configuración del contenedor para evaluar si las configuraciones relevantes están presentes.
  • La combinación de ambos análisis permite al sistema determinar si un CVE es explotable en una configuración de carga de trabajo determinada.
  • Si resulta en una mitigación del CVE, lo añadimos al documento VEX final.

Para una lectura más profunda, puedes consultar este artículo: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX

Instalación

Puedes descargar el último binario desde la página de lanzamientos.

O puedes compilarlo manualmente:

make build

Uso

vex8s actualmente soporta 2 formas de generar documentos VEX:

  • modo pasivo: pasando un informe de vulnerabilidades ya generado creado por trivy o grype.

  • modo activo: escaneando activamente las imágenes usando los motores trivy o grype y luego generando el documento basado en los resultados.

Modo pasivo (recomendado)

Usando trivy:

# generar informe de vulnerabilidades.
trivy image --format json --output nginx.trivy.json nginx:1.21.0

# generar documento VEX procesando el informe de vulnerabilidades.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json

# escanear de nuevo con el documento VEX para suprimir vulnerabilidades.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

Lo mismo se puede aplicar usando grype:

# generar informe sbom.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# generar informe de vulnerabilidades.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json

# generar documento VEX procesando el informe de vulnerabilidades.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json

# escanear sbom con el documento VEX para suprimir vulnerabilidades.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

Modo activo

Usando trivy:

# escanear la imagen y generar automáticamente el documento VEX.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json

# escanear de nuevo con el documento VEX para suprimir vulnerabilidades.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

Lo mismo se puede aplicar usando grype:

# generar informe sbom.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# escanear la imagen y generar automáticamente el documento VEX.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json

# escanear sbom con el documento VEX para suprimir vulnerabilidades.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

Clasificadores

Cada CVE se clasifica en una o más clases de explotación, que impulsan la decisión de mitigación. vex8s soporta dos motores de clasificación mediante --classifier:

  • embedded (predeterminado): un modelo de ML ONNX sin conexión incluido en el binario. No requiere acceso a la red.
  • gemini: utiliza el LLM Gemini de Google para clasificar la descripción del CVE. Requiere la variable de entorno GEMINI_API_KEY (opcionalmente GEMINI_MODEL).
export GEMINI_API_KEY="tu-clave-api"

vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json \
  --output nginx.vex.json --classifier gemini

Consulta la documentación — en particular la Guía de Usuario — para un recorrido completo, la configuración del clasificador Gemini y una referencia completa de banderas.

Referencias

Este proyecto se inspiró en el proyecto de Akihiro Suda vexllm.

Categorías