Vulnerability Exploitability eXchange (VEX) verstehen
Der Vulnerability Exploitability eXchange (VEX) ist ein maschinenlesbares Format zur Dokumentation von Schwachstellenbewertungen für Softwareartefakte. Es ermöglicht Maintainern, für jede in einem Container-Image enthaltene Schwachstelle verbindlich zu attestieren, ob diese im konkreten Einsatzkontext tatsächlich ausnutzbar ist oder nicht.
SBOM als Grundlage der Schwachstellenzuordnung
Ein Container-Image enthält eine Vielzahl von Softwarekomponenten – Bibliotheken, Laufzeitumgebungen, Systemwerkzeuge. Eine SBOM (Software Bill of Materials) ist ein maschinenlesbares Inventar dieser Komponenten mit ihren jeweiligen Versionsangaben.
Schwachstellen-Scanner gleichen dieses Inventar automatisiert mit öffentlichen Schwachstellendatenbanken (z. B. NVD, OSV) ab und ermitteln dadurch, welche bekannten CVEs auf Komponenten des Images zutreffen. Entscheidend ist jedoch: Die bloße Anwesenheit einer verwundbaren Komponente bedeutet nicht zwingend, dass die Schwachstelle ausnutzbar ist. Eine Bibliothek kann betroffene Code-Pfade enthalten, die im konkreten Betriebskontext des Images niemals aufgerufen werden – etwa weil ein optionales Subsystem nicht genutzt wird oder ein Angriffspfad durch die Systemarchitektur nicht erreichbar ist.
Genau hier setzt der VEX an: Er beantwortet systematisch und maschinenlesbar die Frage, ob eine via SBOM identifizierte Schwachstelle im jeweiligen Image ein tatsächlich ausnutzbares Risiko darstellt.
Warum ist der VEX wichtig?
Der VEX schafft Transparenz und Nachvollziehbarkeit bei der Bewertung von Schwachstellen. Er versetzt alle Nutzerinnen und Nutzer eines Images in die Lage, die Bewertungen der Maintainer einzusehen und zu verstehen, welche Risiken als tatsächlich relevant eingestuft und welche als nicht ausnutzbar oder akzeptabel bewertet wurden. Ohne VEX stehen Nutzende lediglich rohen Scan-Ergebnissen gegenüber – ohne den notwendigen Kontext, um daraus fundierte Entscheidungen ableiten zu können.
Wie funktioniert der VEX in der container.gov.de Praxis?
- Schwachstellenbewertung: Nachdem ein Vulnerability-Scan durchgeführt wurde, müssen alle kritischen und schwerwiegenden Schwachstellen bewertet werden. Jede Schwachstelle wird mit einer der standardisierten Statusangaben und einer Begründung für diesen Status versehen.
- Automatische VEX-Erstellung: Das Tooling (z.B. openCode DevGuard) erzeugt auf Basis der erfassten Bewertungen automatisch ein VEX-Dokument, das dem Container-Image als Attestierung beigefügt wird.
- Transparenz für Nutzende: Alle Nutzerinnen und Nutzer, die das Image verwenden, können das VEX-Dokument einsehen, die getroffenen Schwachstellenbewertungen nachvollziehen und auf dieser Grundlage eine informierte Entscheidung über den Einsatz des Images treffen.
Nutzungsmöglichkeiten des VEX
- Eigenen VEX erstellen: Maintainer erstellen und pflegen einen VEX, um die Sicherheits- und Transparenzanforderungen für ihre Container-Images zu erfüllen.
- Fremden VEX einsehen: Nutzende von container.gov.de-Images können den VEX einsehen, um die Schwachstellenbewertungen der Maintainer nachzuvollziehen und fundierte Entscheidungen über den Einsatz dieser Images zu treffen - im Rahmen der Softwarelieferkette wurde ein Großteil der Bewertungen bereits von den Maintainer vorgenommen, sodass die Nutzerinnen und Nutzer nicht mehr selbst jede Schwachstelle bewerten müssen.