Supprimer les vulnérabilités en appliquant le contexte Kubernetes aux analyses.
(ce logo n'est pas généré par IA)
Vex8s génère des documents VEX en corrélant les vulnérabilités des conteneurs avec les paramètres Kubernetes afin de déterminer quelles CVE sont réellement exploitables dans votre cluster.
Veuillez noter qu'il s'agit d'un projet expérimental. Les choses peuvent évoluer rapidement.
Le projet vise à évaluer l'exploitabilité des CVE connues dans les charges de travail Kubernetes en combinant la classification des vulnérabilités et l'analyse du securityContext.

Il repose sur le concept suivant :
Pour une lecture plus approfondie, vous pouvez consulter cet article : Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX
Vous pouvez télécharger le dernier binaire depuis la page des versions.
Ou vous pouvez le compiler manuellement :
make build
vex8s prend actuellement en charge 2 façons de générer des documents VEX :
mode passif : en transmettant un rapport de vulnérabilités déjà généré par trivy ou grype.
mode actif : en analysant activement les images à l'aide des moteurs trivy ou grype, puis en générant le document à partir des résultats.
Avec trivy :
# générer le rapport de vulnérabilités.
trivy image --format json --output nginx.trivy.json nginx:1.21.0
# générer le document VEX en traitant le rapport de vulnérabilités.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json
# analyser à nouveau avec le document VEX pour supprimer les vulnérabilités.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
La même procédure peut être appliquée avec grype :
# générer le rapport SBOM.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# générer le rapport de vulnérabilités.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json
# générer le document VEX en traitant le rapport de vulnérabilités.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json
# analyser le SBOM avec le document VEX pour supprimer les vulnérabilités.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
Avec trivy :
# analyser l'image et générer automatiquement le document VEX.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json
# analyser à nouveau avec le document VEX pour supprimer les vulnérabilités.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
La même procédure peut être appliquée avec grype :
# générer le rapport SBOM.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# analyser l'image et générer automatiquement le document VEX.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json
# analyser le SBOM avec le document VEX pour supprimer les vulnérabilités.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
Chaque CVE est classée dans une ou plusieurs classes d'exploitation, qui orientent la
décision d'atténuation. vex8s prend en charge deux moteurs de classification via --classifier :
embedded (par défaut) : un modèle ML ONNX hors ligne
intégré dans le binaire. Aucun accès réseau requis.gemini : utilise le LLM Gemini de Google pour classer la description de la CVE.
Nécessite la variable d'environnement GEMINI_API_KEY (et éventuellement GEMINI_MODEL).export GEMINI_API_KEY="votre-clé-api"
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json \
--output nginx.vex.json --classifier gemini
Consultez la documentation — en particulier le Guide de l'utilisateur — pour une procédure complète, la configuration du classificateur Gemini et une référence complète des options.
Ce projet s'inspire du projet vexllm d'Akihiro Suda.