
vex8s v0.5.0
Sopprimi le vulnerabilità applicando il contesto Kubernetes alle scansioni
Vex8s
(questo logo non è generato da IA)
Vex8s genera documenti VEX correlando le vulnerabilità dei container con le impostazioni di Kubernetes per determinare quali CVE sono effettivamente sfruttabili nel tuo cluster.
Si prega di notare che questo è un progetto sperimentale. Le cose potrebbero cambiare rapidamente.
Come Funziona
Il progetto mira a valutare la sfruttabilità delle CVE note all'interno dei carichi di lavoro Kubernetes combinando la classificazione delle vulnerabilità e l'analisi di securityContext.

Si basa sul seguente concetto:
- Ogni CVE è categorizzato in una o più classi di vulnerabilità (CWE)
- La descrizione della CVE viene elaborata da un modello di ML embedded per prevederne la categoria di sfruttamento.
- Sia le CWE che le categorie di sfruttamento previste vengono combinate per determinare se la CVE è mitigabile.
- Ogni categoria di sfruttamento corrisponde a un insieme di impostazioni Kubernetes che possono bloccare o ridurre l'impatto.
- Analizzando un manifest di Kubernetes, possiamo ispezionare le impostazioni del container per valutare se le impostazioni pertinenti sono in atto.
- La combinazione di entrambe le analisi consente al sistema di determinare se una CVE è sfruttabile in una determinata configurazione del carico di lavoro.
- Se risulta in una mitigazione della CVE, lo aggiungiamo al documento VEX finale.
Per una lettura più approfondita puoi consultare questo documento: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX
Installazione
Puoi scaricare l'ultimo binario dalla pagina release.
Oppure puoi compilarlo manualmente:
make build
Utilizzo
vex8s attualmente supporta 2 modi per generare documenti VEX:
- passive-mode: passare un report di vulnerabilità già generato creato da
trivyogrype. - active-mode: scansionare attivamente le immagini utilizzando i motori
trivyogrypee poi generare il documento basato sui risultati.
Modalità passiva (consigliata)
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 stesso può essere applicato 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
Modalità attiva
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 stesso può essere applicato 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
Riferimenti
Questo progetto è stato ispirato dal progetto vexllm di Akihiro Suda.