
vex8s v0.5.0
Suprimir vulnerabilidades aplicando el contexto de Kubernetes a los análisis
Vex8s
(este logo no ha sido generado por IA)
Vex8s genera documentos VEX correlacionando las 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 conocidas en cargas de trabajo de Kubernetes combinando la clasificación de vulnerabilidades y el análisis de securityContext.

Se basa en el siguiente concepto:
- Cada CVE se clasifica en una o más clases de vulnerabilidad (CWE)
- La descripción de la CVE es procesada por un modelo de ML incrustado para predecir su categoría de explotación.
- Tanto las CWE como las categorías de explotación predichas se combinan para determinar si la CVE es mitigable.
- Cada categoría de explotación se mapea 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 en su lugar.
- La combinación de ambos análisis permite al sistema determinar si una CVE es explotable en una configuración de carga de trabajo determinada.
- Si resulta en una mitigación de CVE, agregamos esto 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
Actualmente vex8s admite 2 formas de generar documentos VEX:
-
modo pasivo: pasar un informe de vulnerabilidad ya generado creado por
trivyogrype. -
modo activo: escanear activamente las imágenes usando los motores
trivyogrypey luego generar el documento basado en los resultados.
Modo pasivo (recomendado)
Usando trivy:
# generate vulnerability report.
trivy image --format json --output nginx.trivy.json nginx:1.21.0
# generate VEX document by processing vulnerability report.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json
# scan again with VEX document to suppress vulnerabilities.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
Lo mismo se puede aplicar usando grype:
# generate sbom report.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# generate vulnerability report.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json
# generate VEX document by processing vulnerability report.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json
# scan sbom with VEX document to suppress vulnerabilities.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
Modo activo
Usando trivy:
# scan the image and automatically generate VEX document.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json
# scan again with VEX document to suppress vulnerabilities.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
Lo mismo se puede aplicar usando grype:
# generate sbom report.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# scan the image and automatically generate VEX document.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json
# scan sbom with VEX document to suppress vulnerabilities.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
Referencias
Este proyecto fue inspirado por el proyecto vexllm de Akihiro Suda.