Zurück zu den Updates
New releaseAug 23, 2026

vex8s v0.5.0

Schwachstellen unterdrücken, indem Kubernetes-Kontext auf Scans angewendet wird

Teilen

Vex8s

vex8s (dieses Logo wurde nicht von KI generiert)

Vex8s erzeugt VEX-Dokumente, indem Container-Schwachstellen mit Kubernetes-Einstellungen korreliert werden, um zu bestimmen, welche CVEs in Ihrem Cluster tatsächlich ausnutzbar sind.

Bitte beachten Sie, dass dies ein experimentelles Projekt ist. Dinge können sich schnell ändern.

So funktioniert es

Das Projekt zielt darauf ab, die Ausnutzbarkeit bekannter CVEs in Kubernetes-Workloads zu bewerten, indem es Schwachstellenklassifizierung und securityContext-Analyse kombiniert.

vex8s-logic

Es basiert auf dem folgenden Konzept:

  • Jede CVE wird einer oder mehreren Schwachstellenklassen (CWE) zugeordnet
  • Die CVE-Beschreibung wird von einem eingebetteten ML-Modell verarbeitet, um ihre Ausbeutungskategorie vorherzusagen.
  • Sowohl die CWEs als auch die vorhergesagten Ausbeutungskategorien werden kombiniert, um zu bestimmen, ob die CVE abschwächbar ist.
  • Jede Ausbeutungskategorie ist einer Reihe von Kubernetes-Einstellungen zugeordnet, die die Auswirkung blockieren oder reduzieren können.
  • Durch das Parsen eines Kubernetes-Manifests können wir die Container-Einstellungen untersuchen, um zu bewerten, ob die relevanten Einstellungen vorhanden sind.
  • Die Kombination beider Analysen ermöglicht es dem System, zu bestimmen, ob eine CVE in einer bestimmten Workload-Konfiguration ausnutzbar ist.
  • Wenn dies zu einer CVE-Abschwächung führt, fügen wir dies dem endgültigen VEX-Dokument hinzu.

Für eine vertiefte Lektüre können Sie dieses Paper konsultieren: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX

Installation

Sie können das neueste Binary von der Release-Seite herunterladen.

Oder Sie können es manuell erstellen:

make build

Verwendung

vex8s unterstützt derzeit 2 Möglichkeiten zur Erzeugung von VEX-Dokumenten:

  • passiver Modus: Übergabe eines bereits erzeugten Schwachstellenberichts, der von trivy oder grype erstellt wurde.

  • aktiver Modus: Aktives Scannen der Images mit den Engines trivy oder grype und anschließendes Erzeugen des Dokuments basierend auf den Ergebnissen.

Passiver Modus (empfohlen)

Mit trivy:

# Schwachstellenbericht erzeugen.
trivy image --format json --output nginx.trivy.json nginx:1.21.0

# VEX-Dokument durch Verarbeitung des Schwachstellenberichts erzeugen.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json

# Erneut mit VEX-Dokument scannen, um Schwachstellen zu unterdrücken.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

Dasselbe kann mit grype angewendet werden:

# SBOM-Bericht erzeugen.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# Schwachstellenbericht erzeugen.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json

# VEX-Dokument durch Verarbeitung des Schwachstellenberichts erzeugen.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json

# SBOM mit VEX-Dokument scannen, um Schwachstellen zu unterdrücken.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

Aktiver Modus

Mit trivy:

# Das Image scannen und automatisch ein VEX-Dokument erzeugen.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json

# Erneut mit VEX-Dokument scannen, um Schwachstellen zu unterdrücken.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

Dasselbe kann mit grype angewendet werden:

# SBOM-Bericht erzeugen.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# Das Image scannen und automatisch ein VEX-Dokument erzeugen.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json

# SBOM mit VEX-Dokument scannen, um Schwachstellen zu unterdrücken.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

Klassifikatoren

Jede CVE wird in eine oder mehrere Ausbeutungsklassen eingeteilt, die die Abschwächungsentscheidung steuern. vex8s unterstützt zwei Klassifikator-Engines über --classifier:

  • embedded (Standard): ein Offline-ONNX-ML-Modell, das im Binary gebündelt ist. Kein Netzwerkzugriff erforderlich.
  • gemini: verwendet Googles Gemini-LLM, um die CVE-Beschreibung zu klassifizieren. Erfordert die Umgebungsvariable GEMINI_API_KEY (optional GEMINI_MODEL).
export GEMINI_API_KEY="your-api-key"

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

Siehe die Dokumentation — insbesondere die Benutzeranleitung — für eine vollständige Schritt-für-Schritt-Anleitung, die Einrichtung des Gemini- Klassifikators und eine vollständige Flag-Referenz.

Referenzen

Dieses Projekt wurde von Akihiro Sudas Projekt vexllm inspiriert.

Kategorien