Open-Source-Tools für Container-Sicherheit Clair, Syft, Grype und Docker Bench for Security im Praxiseinsatz

Von Thomas Joos 6 min Lesedauer

Container-Sicherheit erfordert mehr als Image-Scanning: Mit Open-Source-Tools wie Clair, Syft, Grype und Docker Bench for Security lässt sich ein durchgängiger Security-Workflow aufbauen – von der Abhängigkeitsanalyse bis zur Systemhärtung. Unternehmen profitieren von höherer Transparenz, besserer Compliance und automatisierten Schwachstellenprüfungen.

Mit Tools wie Clair, Syft, Grype und Docker Bench for Security lassen sich Container-Images, Abhängigkeiten und Hostsysteme durchgängig auf Schwachstellen prüfen.(Bild: ©  Sergey Novikov - stock.adobe.com)
Mit Tools wie Clair, Syft, Grype und Docker Bench for Security lassen sich Container-Images, Abhängigkeiten und Hostsysteme durchgängig auf Schwachstellen prüfen.
(Bild: © Sergey Novikov - stock.adobe.com)

Containerbasierte Infrastrukturen bilden das Fundament vieler IT-Architekturen, stellen jedoch neue Anforderungen an die Sicherheit. Um Risiken systematisch zu erfassen und zu minimieren, haben sich spezialisierte Open-Source-Tools wie Clair, Syft, Grype und Docker Bench for Security etabliert. Wir zeigen die Möglichkeiten dieser Tools in diesem Beitrag.

Containerisierung vereinfacht die Bereitstellung von Anwendungen, führt aber zu einer neuen Komplexität im Sicherheitsmanagement. Neben den eigentlichen Images müssen auch deren Abhängigkeiten, die kontinuierlich veröffentlichten Schwachstellen, die Software-Lieferketten und die Hostumgebung berücksichtigt werden. Einzelne Werkzeuge decken jeweils nur einen Teil dieser Aufgaben ab. Setzt man Clair, Syft, Grype und Docker Bench for Security gemeinsam ein, entsteht ein durchgängiger Workflow, der alle sicherheitsrelevanten Ebenen von der Image-Erstellung bis zum Betrieb überprüft. Natürlich ergibt auch der Einsatz einzelner Tools Sinn, denn die Kombination der Tools ist möglich, aber optional. Jedes Tool bietet für sich bereits einen echten Mehrwert.

Statische Analyse von Container-Images mit Clair

Clair ist ein Analyse-Backend für Container-Images, das jede Schicht (Layer) eines Images zerlegt, deren Inhalte erfasst und gegen eine Schwach­stellen­datenbank abgleicht. Das Open Source-Tool hilft dabei Schwachstellen in Container-Images zu identifizieren. Dabei werden Betriebssystempakete und Sprachbibliotheken berücksichtigt. Unterstützt werden unter anderem Ubuntu, Debian, RHEL, Alpine, Oracle Linux sowie Python, Java, Go und Ruby.

Beispiel: Ein Entwickler möchte prüfen, ob sein Ubuntu-basiertes Image kritische CVEs enthält. Zunächst wird das Image indexiert:

clairctl index local/myapp:1.0

Der erzeugte IndexReport enthält alle Pakete und Metadaten. Anschließend wird der Matcher genutzt:

clairctl report local/myapp:1.0 --format json

Das Ergebnis listet alle bekannten Schwachstellen mit CVE, Schweregrad, Versionsbezug und empfohlenem Fix auf. Clair speichert diese Informationen in einer PostgreSQL-Datenbank. Der Vorteil: Bereits indexierte Images müssen bei einem neuen CVE nicht erneut komplett analysiert werden, sondern können direkt mit den aktualisierten Datenbanken abgeglichen werden. Das ist vor allem in produktiven Umgebungen mit vielen Images von Nutzen, da neue Schwachstellen automatisch mit bestehenden Deployments korreliert werden.

Bildergalerie
Bildergalerie mit 8 Bildern

Vollständige Software-Stücklisten mit Syft

Syft ist ein weiteres Open Source-Tool. Es erzeugt eine Software Bill of Materials (SBOM), die alle Abhängigkeiten eines Images dokumentiert. Damit wird Transparenz in der Software-Lieferkette erreicht. Unternehmen können auf diese Weise nachvollziehen, welche Pakete enthalten sind und welche Lizenzen gelten.

SBOM in Tabellenform für ein Node.js-Image:

syft node:latest -o table

SBOM im CycloneDX-Format (für weiterführende Integrationen in Compliance-Tools):

syft myimage:2.0 -o cyclonedx-json > sbom.json

SBOM über alle Schichten hinweg:

syft myimage:2.0 --scope all-layers -o spdx-json > sbom_all.json

Unternehmen können diese SBOMs archivieren, um bei Audits oder Sicherheitsvorfällen jederzeit nachweisen zu können, welche Softwarebestandteile in einer bestimmten Version einer Anwendung enthalten waren. Besonders wertvoll ist die Möglichkeit, SBOMs mit attestierten Signaturen zu versehen. Mit dem Befehl:

syft attest myimage:2.0 --key cosign.key > attestation.json

können Unternehmen sicherstellen, dass die SBOMs nicht manipuliert wurden und eindeutig zu einem bestimmten Image gehören.

Schwachstellenanalyse mit Grype

Grype ist ein Vulnerability Scanner, der direkt auf Images oder auf SBOM-Dateien von Syft angewendet werden kann. Die Integration mit Syft ist nahtlos, da Grype die von Syft erzeugten Formate (SPDX, CycloneDX, Syft-JSON) versteht.

Beispiel -Scan eines Images mit allen Schichten:

grype myimage:2.0 --scope all-layers

Beispiel: Scan einer SBOM-Datei:

grype sbom:sbom.json

Ein Vorteil ist die Priorisierung nach Risk Score, der Schweregrad, Ausnutzbarkeit (EPSS) und bekannte Exploits (CISA KEV-Katalog) kombiniert. Beispielausgabe:

NAME INSTALLED FIXED-IN VULNERABILITY SEVERITY RISKlibssl1.1 1.1.1k-r0 CVE-2021-3711 Critical 98

Praktisch ist auch die Option, Builds bei kritischen Lücken automatisch abzubrechen:

grype myimage:2.0 --fail-on high

In CI/CD-Pipelines verhindert dies, dass unsichere Images in Produktion gelangen. Für Unternehmen ist die Möglichkeit interessant, nur „fixed“-Vulnerabilities zu melden. Mit --only-fixed werden nur Schwachstellen aufgelistet, für die bereits ein Patch verfügbar ist. Das reduziert den Lärm in Reports und hilft, die Aufmerksamkeit auf tatsächlich umsetzbare Maßnahmen zu lenken.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung
Bildergalerie
Bildergalerie mit 8 Bildern

Systemhärtung mit Docker Bench for Security

Während Clair, Syft und Grype den Fokus auf Images legen, überprüft Docker Bench for Security die Docker-Laufzeitumgebung selbst. Grundlage ist der CIS Docker Benchmark.

Beispielbefehl zur Ausführung:

docker run -it --net host --pid host --userns host \ --cap-add audit_control \ -v /var/lib:/var/lib:ro \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /usr/lib/systemd:/usr/lib/systemd:ro \ docker/docker-bench-security

Die Auswertung umfasst Hunderte Tests. Beispiele:

  • Läuft der Docker-Daemon mit root-Rechten?
  • Werden Container mit privilegierten Flags gestartet?
  • Ist das Docker-Socket zu weitreichend freigegeben?
  • Sind Sicherheitsprofile wie AppArmor oder SELinux aktiviert?

Unternehmen können die Ergebnisse als Grundlage für Compliance-Berichte verwenden und systematisch die Härtung ihrer Umgebung verbessern. Neben den Standardfunktionen lohnt es sich, die erweiterten Befehle der Tools gezielt einzusetzen. Mit Syft lassen sich SBOMs beispielsweise nicht nur für Images, sondern auch für lokale Verzeichnisse erzeugen, was die Analyse von Quellcode-Repositories ermöglicht:

syft dir:./meinprojekt -o spdx-json

Dadurch kann ein Unternehmen bereits vor der Containerisierung prüfen, welche Abhängigkeiten sicherheitskritisch sind. Grype ergänzt dies, indem bestehende SBOM-Dateien direkt als Quelle genutzt werden können, um eine erneute Paketerkennung zu vermeiden und die Scans erheblich zu beschleunigen:

grype sbom:./meinprojekt.spdx.json --fail-on high

So lassen sich CI/CD-Pipelines so konfigurieren, dass Builds bei schwerwiegenden Sicherheitslücken automatisch fehlschlagen. ClairCore bietet wiederum die Möglichkeit, IndexReports über die API gezielt abzurufen und im nächsten Schritt mit Libvuln in VulnerabilityReports zu überführen, was eine Integration in eigene Analyseplattformen ermöglicht. Docker Bench for Security geht über Image-Analysen hinaus, indem es laufende Hosts überprüft. Mit

docker run --net host --pid host --cap-add audit_control \-v /var/lib:/var/lib -v /var/run/docker.sock:/var/run/docker.sock \--label docker_bench_security \docker/docker-bench-security

können Administratoren systematische Prüfungen der Host- und Daemon-Konfiguration durchführen. Diese Möglichkeiten zusammen eröffnen eine durchgängige Sicherheitsarchitektur von der Paket- und Abhängigkeitsanalyse über Schwachstellenscans bis hin zur Konfigurationsprüfung.

Durchgängige Workflows mit allen vier Werkzeugen

Die kombinierte Nutzung der Tools schafft einen vollständigen Sicherheits-Stack. Ein Beispiel für einen CI/CD-Workflow:

SBOM-Erzeugung nach dem Build:

syft myapp:latest -o spdx-json > sbom.json

Vulnerability Scan mit Grype auf Basis der SBOM:

grype sbom:sbom.json --fail-on medium

Indexierung mit Clair, um die Ergebnisse persistent zu speichern und später gegen neue CVEs abzugleichen:

clairctl index myapp:latest

Regelmäßige Sicherheitsprüfungen der Hostumgebung mit Docker Bench for Security:

docker run --rm docker/docker-bench-security

So werden Image-Inhalte, Abhängigkeiten, Schwachstellenlage und Hostkonfigurationen gleichermaßen überprüft.

In großen Infrastrukturen spielt neben der reinen Analyse auch die Automatisierung und Wiederverwendbarkeit der Daten eine Rolle. Mit Syft lassen sich SBOMs im JSON-Format regelmäßig exportieren und versionieren, sodass sie als Teil eines internen Compliance-Archivs dienen:

syft registry.example.com/projekt/app:3.4 -o syft-json > /archive/sbom_app_3.4.json

Grype kann diese gespeicherten SBOMs wiederverwenden und gezielt nur nach neu veröffentlichten CVEs prüfen, was die Laufzeit der Scans erheblich reduziert:

grype sbom:/archive/sbom_app_3.4.json --only-fixed --sort-by risk

ClairCore eröffnet Unternehmen die Möglichkeit, IndexReports direkt per API in eigene Dashboards oder SIEM-Systeme einzubinden, um Korrelationen mit anderen Sicherheitsdaten herzustellen. Ein Request an die Libvuln-API liefert eine aktuelle Vulnerability-Analyse ohne erneute Paketerkennung. Docker Bench for Security ergänzt diesen Ansatz, indem Prüfungen als Cronjobs auf Hostsystemen eingeplant werden können, um kontinuierlich sicherheitsrelevante Abweichungen zu identifizieren:

0 3 * * * docker run --rm --net host --pid host \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ docker/docker-bench-security > /var/log/docker_bench_$(date +\%F).log

Auf diese Weise entsteht eine Sicherheitsarchitektur, die nicht nur punktuelle Scans ermöglicht, sondern kontinuierliche und reproduzierbare Ergebnisse liefert.

Bildergalerie
Bildergalerie mit 8 Bildern

Vorteile für Unternehmen und Administratoren

Jedes der Tools bietet für sich bereits viel Möglichkeiten. Vor allem Syft und Grype machen gemeinsam besonders viel Sinn. Aber die Kombination aller Tools bietet einen durchaus interessanten Mehrwert, wenn es um die Sicherheit von Container-Umgebungen geht:

  • Clair sorgt für kontinuierliche Schwachstellenüberwachung bereits bereitgestellter Images.
  • Syft liefert eine detaillierte Dokumentation aller Abhängigkeiten, wichtig für Nachvollziehbarkeit und Compliance.
  • Grype ermöglicht präzise und priorisierte Schwachstellenanalysen, die in automatisierte Pipelines integriert werden können.
  • Docker Bench for Security prüft die Laufzeitumgebung selbst und deckt Fehlkonfigurationen auf, die Angriffsflächen öffnen würden.

Gemeinsam eingesetzt, entsteht ein Sicherheitskonzept, das sowohl technische Schwachstellen als auch organisatorische Anforderungen adressiert. Administratoren erhalten konkrete Handlungsempfehlungen, Security-Teams konsistente Datenquellen, und Unternehmen eine belastbare Grundlage für Auditierbarkeit und Compliance.

(ID:50603713)