Skip to main content
Cloud Security

Was ist GitLab Container Scanning?

Stärken Sie die Sicherheit und Compliance Ihres Unternehmens mit GitLab Container Scanning. Erkennen Sie Schwachstellen und Malware in Ihren Container-Images vor dem Deployment. Automatisieren Sie Scans, reduzieren Sie Risiken und sichern Sie Ihre Software-Lieferkette.

Von SentinelOne
Was ist GitLab Container Scanning?

GitLab Container Scanning ist ein wichtiges Werkzeug, um die Sicherheit und Integrität containerisierter Anwendungen zu gewährleisten. Da immer mehr Unternehmen Software mithilfe von Containern bereitstellen, wird es zunehmend wichtig, diese Technik zu kennen und einzusetzen.

Dieser Artikel erläutert GitLab Container Scanning im Detail: seine Funktionsweise, unterstützte Containerformate und die Einrichtung für Projekte anhand von Best Practices und Praxisbeispielen. Die Best Practices ziehen sich durch den gesamten Leitfaden und zeigen, wie GitLab Container Scanning sichere Entwicklungsprozesse und reibungslose Workflows unterstützt.

GitLab Container Scanning - Featured Image | SentinelOne

GitLab Container Scanning verstehen

Das Verständnis von GitLab Container Scanning ist wichtig, wenn Sie containerisierte Anwendungen mit GitLab oder anderen Containerisierungsplattformen wie Docker absichern möchten. GitLab Container Scanning prüft jede Komponente Ihrer Software auf Schwachstellen, die Angreifer ausnutzen könnten – ähnlich wie ein Antivirenscan für ihre Bausteine!

Dabei wird die Software in den Containern gründlich auf Probleme und potenzielle Risiken untersucht. Dieser Schritt ist für die moderne Softwareentwicklung entscheidend: Container enthalten häufig Komponenten aus verschiedenen Quellen. Jede davon muss Sicherheitsstandards erfüllen, damit Ihre Anwendung integer bleibt.

GitLab Container Scanning bietet einen wichtigen Schutz für containerisierte Anwendungen. Die frühzeitige Erkennung von Schwachstellen trägt zur Sicherheit der Systeme bei und gibt Entwicklungsteams und anderen Beteiligten Gewissheit.

Wie funktioniert GitLab Container Scanning?

GitLab Container Scanning erkennt Schwachstellen in Container-Images automatisch und unterstützt deren Behebung. So können Sie sicher sein, dass erkannte Schwachstellen schnell und zuverlässig behandelt werden. So funktioniert es:

GitLab Container Scanning lässt sich in die CI/CD-Pipeline integrieren. Dadurch wird jeder Build und jeder Push gescannt, statt nur einzelne Scans durchzuführen. Sicherheitsprüfungen werden so zum festen Bestandteil der Entwicklung.

Schwachstellendatenbanken nutzen

Das Werkzeug gleicht die Komponenten mit Datenbanken bekannter Schwachstellen ab. So erkennt es Schwachstellen in Softwarepaketen und Bibliotheken innerhalb der Container und macht bekannte Bedrohungen sichtbar.

Bericht erstellen

Nach Abschluss erstellt GitLab Container Scanning einen umfassenden Bericht. Er führt erkannte Schwachstellen und deren Schweregrade auf und empfiehlt bei Bedarf Maßnahmen zur Behebung oder Risikominderung.

Reaktionen automatisieren

Je nach Konfiguration kann GitLab Container Scanning automatisch reagieren. Es kann beispielsweise Aufgaben für Entwicklungsteams erstellen oder sogar die CI/CD-Pipeline stoppen, wenn kritische Schwachstellen entdeckt werden. So gelangt kein unsicherer Code in die Produktionsumgebung.

Schwachstellen beheben und kontinuierlich überwachen

Unser Werkzeug zur kontinuierlichen Überwachung scannt Container bei jedem Update. Es prüft automatisch, ob durch Änderungen neue Schwachstellen entstehen, und unterstützt deren laufende Behebung. So bleibt der Schutz auch gegenüber künftig auftretenden Schwachstellen erhalten.

Callout Background Image Gradient

CNAPP-Marktführer

In diesem Gartner Market Guide für Cloud-Native Application Protection Platforms erhalten Sie wichtige Einblicke in den Zustand des CNAPP-Marktes.

Unterstützte Containerformate für GitLab

Die Unterstützung bestimmter Containerformate durch GitLab Container Scanning bezieht sich auf deren Struktur und die Anordnung der enthaltenen Daten. Die Scan-Werkzeuge Trivy und Grype unterstützen zahlreiche Linux-Distributionen. Dadurch lassen sich Schwachstellen in verschiedenen Umgebungen schnell erkennen.

Open-Source-Scan-Werkzeuge:

  • Trivy (ein Open-Source-Schwachstellenscanner für Container und Betriebssysteme): Trivy ist ein etabliertes Open-Source-Werkzeug, das speziell Container und Betriebssysteme auf Schwachstellen prüft. Seine Scans sind ressourcenschonend und gründlich und erkennen Schwachstellen in vielen Linux-Distributionen.
  • Grype: Grype liefert präzise Schwachstellendaten für Container-Images. Als Analysewerkzeug ergänzt es Trivy, indem es Sicherheitsbedrohungen gründlich untersucht und konkrete, verwertbare Informationen zu Schwachstellen bereitstellt.

Unterstützte Linux-Distributionen

Die Unterscheidung zwischen Containerformaten und Distributionen ist wichtig. Containerformate bestimmen, wie Daten in Containern gespeichert werden. Distributionen sind verschiedene Varianten des Linux-Betriebssystems, die von Trivy und Grype unterstützt werden. GitLab unterstützt zahlreiche Distributionen; hier ein kurzer Überblick:

  • Alma Linux: Wird mit Trivy gescannt
  • Alpine Linux: Wird von Grype und Trivy unterstützt
  • Amazon Linux: Wird von Grype und Trivy unterstützt
  • BusyBox: Wird mit Grype gescannt
  • CentOS: Wird von Grype und Trivy unterstützt
  • CBL-Mariner: Wird mit Trivy gescannt
  • Debian: Wird von Grype und Trivy unterstützt
  • Distroless: Wird von Grype und Trivy unterstützt
  • Oracle Linux: Wird von Grype und Trivy unterstützt
  • Photon OS: Wird mit Trivy gescannt
  • Red Hat (RHEL): Wird von Grype und Trivy unterstützt
  • Rocky Linux: Wird mit Trivy gescannt
  • SUSE: Wird mit Trivy gescannt
  • Ubuntu: Wird von Grype und Trivy unterstützt

Warum die Unterstützung vieler Distributionen wichtig ist

Bei GitLab Container Scanning wissen wir, dass die Unterstützung zahlreicher Distributionen immer wichtiger wird, da containerisierte Anwendungen bei Entwicklern an Beliebtheit gewinnen und diese Linux-Distributionen häufig nach Leistung, Sicherheit, Kompatibilität oder persönlichen Vorlieben auswählen. Durch die gleichzeitige Unterstützung mehrerer Distributionen stellt GitLab Container Scanning sicher, dass Entwickler die Sicherheit ihrer Anwendungen unabhängig von der gewählten Umgebung weiterhin gewährleisten können – und unterstreicht damit unser Engagement für die umfassende Absicherung containerisierter Workloads.

Wie richten Sie GitLab für Container Scanning ein?

GitLab für Container Scanning einzurichten ist unkompliziert und sorgt dafür, dass Ihre containerisierten Anwendungen automatisch auf Schwachstellen geprüft werden. So gehen Sie vor:

1. Container Scanning über einen automatischen Merge Request aktivieren

Mit GitLab 14.9 aktivieren Sie Container Scanning schnell über einen automatischen Merge Request; so funktioniert es:

  • Öffnen Sie das gewünschte Projekt.
  • Gehen Sie zu Secure > Security Configuration.
  • Wählen Sie in der Zeile Container Scanning die Option Configure with a merge request.

Daraufhin wird automatisch ein Merge Request mit allen Änderungen erstellt, die zur Aktivierung von Container Scanning erforderlich sind. Prüfen Sie ihn vor dem Zusammenführen, um die Konfiguration abzuschließen.

2. Konfiguration über die Datei .gitlab-ci.yml:

Für die manuelle Konfiguration von Container Scanning fügen Sie Ihrer Datei .gitlab-ci.yml die entsprechende Vorlage hinzu:

include:   - template: Security/Container-Scanning.gitlab-ci.yml

Diese Vorlage fügt Ihrer CI/CD-Pipeline einen container_scanning-Job hinzu. Er prüft Docker-Images auf Schwachstellen und speichert die Ergebnisse als Container-Scanning-Berichtsartefakt.

Eine .gitlab-ci.yml-Datei, die Docker-Images erstellt und prüft, könnte so aussehen.

include:   - template: Jobs/Build.gitlab-ci.yml   - template: Security/Container-Scanning.gitlab-ci.yml container_scanning:   variables:     CS_DEFAULT_BRANCH_IMAGE: $CI_REGISTRY_IMAGE/$CI_DEFAULT_BRANCH:$CI_COMMIT_SHA

3. Einstellungen für Container Scanning anpassen

GitLab bietet verschiedene Möglichkeiten, Container-Scans an Ihre Anforderungen anzupassen: von ausführlicheren Ausgaben über die Authentifizierung bei einer bestimmten Registry bis hin zu detaillierteren Ergebnissen.

Für ausführlichere Ausgaben passen Sie beispielsweise Ihre .gitlab-ci.yml entsprechend an:

include:   - template: Security/Container-Scanning.gitlab-ci.yml variables:     SECURE_LOG_LEVEL: 'debug'

4. Ein Image in einer Remote-Registry prüfen:

Mit der folgenden Konfiguration prüfen Sie auch Images in einer Registry außerhalb Ihres Projekts:

include:   - template: Security/Container-Scanning.gitlab-ci.yml container_scanning:   variables:     CS_IMAGE: example.com/user/image:tag

GitLab Container Scanning lässt sich einfach einrichten, ob über automatische Merge Requests oder manuell. Mit leistungsfähigen Scan-Tools integriert GitLab Sicherheitsprüfungen in den Entwicklungsablauf und ist damit ein wichtiger Bestandteil moderner, sicherer Softwareentwicklung.

Best Practices für GitLab Container Scanning

1. Scan-Tools regelmäßig aktualisieren

Scan-Tools wie Trivy und Grype müssen aktuell bleiben. Nur so erkennen sie neue Schwachstellen frühzeitig und bleiben mit Änderungen an unterstützten Distributionen kompatibel. Regelmäßige Updates stellen dies sicher.

2. Scans früh in die Entwicklung integrieren

Je früher Container Scanning Teil Ihres Entwicklungszyklus wird, desto früher können Sie Schwachstellen erkennen und beheben. Integrieren Sie GitLab Container Scanning in Ihre kontinuierliche Integration (CI)-Pipeline, damit bei jedem Code-Push automatisch ein Scan erfolgt – als fester Bestandteil Ihres Entwicklungsablaufs für eine schnellere Erkennung und Behebung von Schwachstellen.

3. Scans an Ihre Anforderungen anpassen

Nicht jedes Projekt benötigt dieselben Scans. Passen Sie die Ausführlichkeit, die zu prüfenden Registries und die Variablen an Ihre Projektanforderungen an – so werden Scans schneller und effizienter. Nutzen Sie die Konfigurationsmöglichkeiten in der .gitlab-ci.yml file, um Scans gezielt anzupassen.

4. Scan-Berichte regelmäßig prüfen und Maßnahmen ergreifen

Scans allein reichen nicht aus – ihre Ergebnisse müssen zeitnah geprüft und bearbeitet werden. Prüfen Sie Container-Scanning-Berichtsartefakte regelmäßig und beheben Sie Schwachstellen systematisch. Integrieren Sie die Behebung in bestehende Entwicklungsprozesse, damit Erkenntnisse rasch zu Maßnahmen führen.

Workflow zur Behebung von Schwachstellen mit GitLab Container Scanning

Der Workflow zur Behebung von Schwachstellen mit GitLab Container Scanning umfasst mehrere Schritte. Sie dienen dazu, Schwachstellen in Container-Images zu erkennen und effizient sowie systematisch zu beheben. Ein typischer Ablauf sieht so aus:

  1. Schwachstellen erkennen: GitLab bietet Container Scanning und Sicherheitsprüfungen mit Trivy oder Grype; nach dem Erkennen von Schwachstellen wird in diesem Schritt ein ausführlicher Bericht mit allen Ergebnissen erstellt.
  2. Ergebnisse analysieren: Prüfen Sie die Container-Scanning-Berichte eingehend, um Schweregrad, Art und Ursprung der Schwachstellen zu ermitteln. So erkennen Sie, welche Probleme sofort behoben werden müssen.
  3. Behebung priorisieren: Priorisieren Sie die Probleme anhand dieser Bewertung. Vorrang haben meist Schwachstellen, die Anwendungen unmittelbar gefährden. Auch die möglichen Auswirkungen und die Einfachheit der Ausnutzung spielen eine Rolle.
  4. Plan zur Behebung erstellen: Erstellen Sie nach der Priorisierung einen Plan, um jede Schwachstelle wirksam zu beheben. Dazu können Updates, Änderungen an der Konfiguration oder direkte Anpassungen am Code gehören.
  5. Korrekturen umsetzen: Setzen Sie den Plan mit GitLab Merge Requests um, die Code, Konfigurationen oder Abhängigkeiten der betroffenen Codebasen ändern; die Zusammenarbeit von Entwicklungsteams, Sicherheitsteams und weiteren Beteiligten ist dabei oft entscheidend.
  6. Behebung überprüfen: Prüfen Sie nach den Korrekturen, ob die Schwachstellen tatsächlich behoben wurden und keine neuen Probleme entstanden sind. Erneute Scans der Container-Images oder zusätzliche Tests können die Wirksamkeit der Maßnahmen überprüfen und neue Sicherheitslücken aufdecken.
  7. Überwachung und kontinuierliche Verbesserung: Workflows zur Behebung entstehen nicht über Nacht; kontinuierliche Überwachung, Scans und Anpassungen sichern ihre langfristige Wirksamkeit. Ein iterativer Ansatz gewährleistet, dass sie dauerhaft funktionieren.

Praxisbeispiele und Anwendungsfälle

1. Bankwesen

Sicherheit hat bei Banking-Anwendungen höchste Priorität. Herkömmliche Methoden erkennen Schwachstellen häufig nicht rechtzeitig. Wird GitLab Container Scanning in die CI/CD-Pipeline von Banking-Anwendungen integriert, lassen sich Schwachstellen in Echtzeit prüfen und beheben. Das stärkt die Sicherheit und fördert Vertrauen und Compliance in der Branche.

2. Gesundheitswesen

Systeme im Gesundheitswesen verarbeiten sensible Daten, die nach strengen regulatorischen Vorgaben geschützt werden müssen. Manuelle Prüfungen sind jedoch oft aufwendig und fehleranfällig. Setzen Einrichtungen des Gesundheitswesens GitLab Container Scanning für Schwachstellenbewertungen und die kontinuierliche Compliance-Berichterstattung ein, können sie sich besser vor Sicherheitsverletzungen schützen und die Berichterstattung erheblich vereinfachen.

3. Technologie-Start-ups

Technologie-Start-ups müssen schnelle Entwicklung und hohe Sicherheitsstandards miteinander vereinbaren. GitLab Container Scanning unterstützt beides: Kontinuierliche Schwachstellenscans containerisierter Anwendungen beschleunigen Entwicklungszyklen und gewährleisten zugleich Sicherheit – damit Start-ups flexibel Neues entwickeln und eine starke Sicherheitslage aufrechterhalten können.

Callout Background Image Gradient

SentinelOne in Aktion sehen

Entdecken Sie in einer persönlichen Demo mit einem SentinelOne-Produktexperten, wie KI-gestützte Cloud-Sicherheit Ihr Unternehmen schützen kann.

Fazit

GitLab Container Scanning ist aus der modernen Entwicklung nicht mehr wegzudenken. Unternehmen können damit Schwachstellen in containerisierten Anwendungen schnell und zuverlässig erkennen. Durch die Integration in Entwicklungspipelines werden Schwachstellen frühzeitig sichtbar. So verankern Unternehmen Sicherheit im Entwicklungsprozess, reduzieren Risiken und verbessern ihre Sicherheitslage.

GitLab Container Scanning ist ein zentraler Bestandteil einer wirksamen DevSecOps-Strategie und fördert die kontinuierliche Verbesserung der Sicherheit. Ob bei der Einhaltung von Vorschriften, beim Schutz von Kundendaten oder bei agilen Entwicklungszyklen: Es hält Sicherheit im Zentrum der Innovation und erfüllt unterschiedliche Sicherheitsanforderungen in verschiedenen Branchen und Anwendungsfällen.

"

Häufig gestellte Fragen zu GitLab Container Scanning

GitLab Container Scanning prüft Ihre Container-Images während der CI/CD auf Schwachstellen. Scanner wie Trivy untersuchen jede Schicht—von den Paketen des Basisbetriebssystems bis zu den Anwendungsabhängigkeiten—bevor die Images in die Produktionsumgebung gelangen. Sie aktivieren die Funktion, indem Sie die Container-Scanning-CI-Vorlage von GitLab einbinden oder einen Merge Request mit einem Klick erstellen.

Die Ergebnisse erscheinen als JSON-Artefakte und auf dem Tab Security Ihrer Pipeline. Dort werden riskante CVEs und veraltete Betriebssystemversionen angezeigt.

Es erkennt bekannte CVEs im Basis-Image und in Betriebssystempaketen sowie, falls aktiviert, Schwachstellen in sprachspezifischen Bibliotheken, etwa Java- oder Python-Paketen. Zudem kennzeichnet es Betriebssysteme, deren Support ausgelaufen ist und die keine Sicherheitsupdates mehr erhalten. Der zugrunde liegende Scanner Trivy nutzt Quellen wie NVD, Sicherheitshinweise der Distributionen und die eigene Hinweisdatenbank von GitLab, um Schwachstellen zu identifizieren und nach CVSS-Wert und Ausnutzbarkeit einzuordnen.

Fügen Sie die integrierte GitLab-Vorlage in Ihre .gitlab-ci.yml.

include:

  - template: Jobs/Container-Scanning.gitlab-ci.yml

Alternativ öffnen Sie in Ihrem Projekt Secure > Security configuration, klicken auf Configure with a merge request und führen den Merge Request zusammen. Dadurch werden die erforderlichen Jobs in Ihre Pipeline eingefügt. Wenn Sie Ihr Docker-Image bereits erstellen und in die Projekt-Registry übertragen, ist kein zusätzliches Skript erforderlich

Öffnen Sie nach dem Pipeline-Durchlauf Build > Pipelines, wählen Sie den Durchlauf und anschließend den Tab Security. Dort sehen Sie für jeden Fund den Schweregrad, den CVSS-Wert, die Wahrscheinlichkeit einer Ausnutzung (EPSS) und Hinweise zur Behebung. Der Scanbericht im Rohformat (gl-container-scanning-report.json) und eine CycloneDX-SBOM (gl-sbom-report.cdx.json) stehen unter Job Artifacts zur Verfügung.

In der Ultimate-Stufe sehen Sie die Ergebnisse außerdem direkt in Merge Requests sowie einen zusammengefassten Vulnerability Report für den Standard-Branch.

Ja. Jeder Schwachstelleneintrag enthält eine Beschreibung des Problems und seiner Auswirkungen sowie empfohlene Schritte zur Behebung, etwa Paket-Upgrades oder Konfigurationsänderungen. In der Ultimate-Stufe kann GitLab sogar Patches zur automatischen Behebung erstellen—Merge Requests, die Ihr Dockerfile oder Paketmanifest auf Versionen ohne die Schwachstelle aktualisieren.

Erstellen Sie eine vulnerability-allowlist.yml im Stammverzeichnis Ihres Repositorys. Tragen Sie CVE-IDs ein, die Sie als Fehlalarme bestätigt haben, entweder global oder für einzelne Images. GitLab schließt diese CVEs dann aus künftigen Scanberichten aus und kennzeichnet sie im Job-Log als „Approved“. So konzentriert sich der Tab Security auf tatsächliche Risiken, ohne echte Probleme zu verbergen.

Mehr erfahren über Cloud Security

Decorative background gradient

Ihre Cloud-Sicherheit – vollständig bewertet in 30 Minuten.

Treffen Sie sich mit einem SentinelOne-Experten, um Ihre Cloud-Sicherheitslage über Multi-Cloud-Umgebungen hinweg zu bewerten, Cloud-Assets, Fehlkonfigurationen und Secret-Scanning aufzudecken und Risiken mit Verified Exploit Paths™ zu priorisieren.
Dark dashboard UI with purple-highlighted nav, summary cards showing 149, 7, 78, 56, 1.2 h, and a status table with linked purple text