Blog Sicherheit So integrierst du benutzerdefinierte Sicherheitsscanner in GitLab
Aktualisiert am: June 10, 2025
8 Minuten Lesezeit

So integrierst du benutzerdefinierte Sicherheitsscanner in GitLab

Erfahre, wie du die DevSecOps-Plattform erweiterst, indem du benutzerdefinierte Sicherheitsscanner in deine Workflows einfügst (einschließlich Tutorial).

securitycheck.png

GitLab, die umfassendste DevSecOps-Plattform, bietet alles, was du zum Planen, Verwalten, Erstellen, Bereitstellen, Sichern, Steuern und Überwachen deiner Anwendungen brauchst. Dennoch gibt es Fälle, in denen du GitLab mit Tools von Drittanbietern oder eigenen Tools erweitern möchtest. Du musst zum Beispiel von separaten Lösungen auf eine DevSecOps-Plattform migrieren, Tools von Drittanbietern evaluieren oder eigene oder selbst entwickelte Lösungen in GitLab integrieren.

Folgende Themen werden hier behandelt

Erweiterbarkeit der DevSecOps-Plattform von GitLab

GitLab kann auf viele Arten erweitert werden, um erweiterte Funktionen zu unterstützen, die dein Unternehmen benötigt. Einige gängige Beispiele für diese Integrationen sind:

  • externe Anwendungsintegrationen wie Jenkins und Slack
  • externe Integrationen zur Ticketverfolgung wie Bugzilla und Jira
  • externe Integrationen von Authentifizierungsanbietern wie LDAP und SAML
  • externe Integrationen von Sicherheitsscannern wie Fortify und Checkmarx
  • die Möglichkeit, auf durchgesickerte Geheimnisse zu reagieren wie AWS- und GCP-Zugriffsschlüssel

Alle verfügbaren Integrationen findest du in der Dokumentation zur Integration mit GitLab (nur in englischer Sprache verfügbar). (Hinweis: Es sind nicht alle Integrationen in der Dokumentation aufgeführt.)

Die GitLab-Sicherheitsscanner-Integration

Sicherheitsscanner von Drittanbietern oder benutzerdefinierte Sicherheitsscanner können in GitLab integriert werden, um das Widget für Merge Requests, den Pipeline-Sicherheitsbereich, den Sicherheitslückenbericht, die Sicherheitslückenseiten, das Sicherheitsdashboard und die Merge-Request-Approvalrichtlinien zu füllen. Sehen wir uns die einzelnen Integrationen an.

Sicherheitswidget für Merge Requests

Ein Merge Request enthält ein Sicherheitswidget, das eine Zusammenfassung der neu entdeckten Sicherheitslücken anzeigt.

Integration von Sicherheitsscannern – Bild 1

Sicherheitswidget für Merge Requests

Wenn du auf eine Sicherheitslücke klickst, wird ein Popup-Fenster angezeigt, das folgende Informationen enthält:

  • Status
  • Beschreibung
  • Projekt
  • Datei
  • Bezeichner
  • Schweregrad
  • Tool
  • Scanner-Anbieter

Integration von Sicherheitsscannern – Bild 2

Sicherheitslücken mit Details, die behoben werden können

Bei diesen Sicherheitslücken kann auch reagiert werden, d. h., du kannst sie entweder ignorieren oder ein vertrauliches Ticket dafür erstellen.

Die Ergebnisse eines benutzerdefinierten Scanners können in das Sicherheitswidget eingefügt werden. Die Daten zu den Sicherheitslücken werden aus dem JSON-Schema, das der Scanner ausgibt, zusammengesetzt.

Pipeline-Sicherheitsbereich

Alle aktivierten Sicherheitsanalysatoren werden in der Pipeline ausgeführt und geben ihre Ergebnisse als Artefakte aus. Diese Artefakte werden verarbeitet, unter anderem durch Deduplizierung, und die Ergebnisse werden auf der Registerkarte „Pipelinesicherheit“ aufgelistet. Von hier aus kannst du auch die resultierenden JSON-Dateien herunterladen.

Integration von Sicherheitsscannern – Bild 3

Registerkarte „Pipelinesicherheit“

Die Ergebnisse eines benutzerdefinierten Scanners können in die Registerkarte „Pipelinesicherheit“ eingefügt werden. Die Spalten werden anhand des JSON-Schemas, das der Scanner ausgibt, ausgefüllt.

Sicherheitslückenbericht

Der Sicherheitslückenbericht enthält Informationen zu Sicherheitslücken aus Scans des default-Branch, einschließlich:

  • der Gesamtanzahl der Sicherheitslücken pro Schweregrad
  • Filtern für gängige Attribute für Sicherheitslücken
  • Details zu jeder Sicherheitslücke in einer Tabelle

Integration von Sicherheitsscannern – Bild 4

Sicherheitslückenbericht

Die Ergebnisse eines benutzerdefinierten Scanners für den default-Branch können für den Sicherheitslückenbericht verwendet werden.

Sicherheitslückenseiten

Wenn du im Sicherheitslückenbericht auf eine Sicherheitslücke klickst, gelangst du zur Sicherheitslückenseite. Für jede Sicherheitslücke in einem Projekt gibt es eine Seite, auf der du Details findest, z. B:

  • Beschreibung
  • Wann sie erkannt wurde
  • Aktueller Status
  • Wo sie erkannt wurde
  • Verfügbare Aktionen
  • Verknüpfte Tickets
  • Aktionsprotokoll
  • Lösungen
  • Bezeichner
  • Training

Du kannst die Daten auf der Seite mit den Sicherheitslücken nutzen, um eine entdeckte Sicherheitslücke einzugrenzen und sie zu beheben.

Integration von Sicherheitsscannern – Bild 5

Sicherheitslückenseite für Sicherheitslücken, bei denen Geheimnisse erkannt wurden

Die Ergebnisse eines benutzerdefinierten Scanners können in die Sicherheitslückenseite eingefügt werden. Die Daten zu den Sicherheitslücken werden aus dem JSON-Schema, das der Scanner ausgibt, zusammengesetzt.

Sicherheitsdashboard

Sicherheitsdashboards werden verwendet, um den Sicherheitsstatus deiner Anwendungen zu bewerten. GitLab stellt dir eine Sammlung von Metriken, Bewertungen und Diagrammen für die Sicherheitslücken zur Verfügung, die von den Sicherheitsscannern in deinem Projekt entdeckt wurden. Das Sicherheitsdashboard liefert Daten wie:

  • Trends bei Sicherheitslücken über einen Zeitraum von 30, 60 oder 90 Tagen für alle Projekte in einer Gruppe
  • Eine Bewertung in Buchstaben für jedes Projekt, basierend auf dem Schweregrad der Sicherheitslücke
  • Die Gesamtzahl der in den letzten 365 Tagen entdeckten Sicherheitslücken und deren Schweregrad

Integration von Sicherheitsscannern – Bild 6

Sicherheitsdashboard auf Gruppenebene

Im Sicherheitsdashboard auf Gruppenebene kannst du auf ein Projekt klicken, um auf das spezifische Sicherheitsdashboard zuzugreifen. So erhältst du die 365-Tage-Ansicht.

Integration von Sicherheitsscannern – Bild 7

Sicherheitsdashboard auf Projektebene

Merge-Request-Approvalrichtlinien-Integration

Merge-Request-Approvalrichtlinien werden verwendet, um eine Genehmigung auf der Grundlage der Ergebnisse eines oder mehrerer Sicherheitsscanaufträge zu verlangen. Dies kann verhindern, dass unsicherer Code in die Produktion übernommen wird. Merge-Request-Approvalrichtlinien werden nach der vollständigen Ausführung eines CI-Scanauftrags ausgewertet, wobei die Richtlinien auf der Grundlage der Job-Artefaktberichte, die in der abgeschlossenen Pipeline veröffentlicht werden, bewertet werden.

Du kannst beispielsweise eine Richtlinie für Merge-Request-Approvalrichtlinien erstellen, die die Genehmigung von Projektbetreuer(inne)n erfordert, wenn ein Scanner zur Erkennung von Geheimnissen Sicherheitslücken findet. Das geht so:

  1. Wähle in der linken Seitenleiste Suchen oder aufrufen aus und suche nach dem Projekt, dem du eine Richtlinie hinzufügen möchtest.
  2. Gehe in der linken Seitenleiste des Projekts zu Sicherheit > Richtlinien.
  3. Wähle Neue Richtlinie aus.
  4. Wähle im Abschnitt Merge-Request-Approvalrichtlinien Richtlinie auswählen aus.
  5. Fülle die Felder aus:
  • Name: der Name der Richtlinie
  • Beschreibung: die Beschreibung der Richtlinie
  • Richtlinienstatus: ob sie aktiviert ist oder nicht
  • Regeln: die Bedingungen, die erfüllt sein müssen, damit eine Aktion (Approval erforderlich) ausgeführt wird

Integration von Sicherheitsscannern – Bild 8

Regeln für Merge-Request-Approvalrichtlinien

  • Aktionen: die Aktion, die ausgeführt werden soll, wenn die Bedingungen in den Regeln (definierte Schwachstellen/erkannte Lizenzen) erfüllt sind

Integration von Sicherheitsscannern – Bild 9

Aktionen für Merge-Request-Approvalrichtlinien

  • Überschreiben von Projekt-Approvaleinstellungen: Wenn diese Option ausgewählt ist, überschreiben die folgenden Optionen die Projekteinstellungen. Dies wirkt sich jedoch nur auf die in der Richtlinie ausgewählten Branches aus.

Integration von Sicherheitsscannern – Bild 11

Einstellungen für Merge-Request-Approvalrichtlinien

  1. Klicke auf die Schaltfläche „Mit einem Merge Request konfigurieren“.

Sobald die Merge-Request-Approvalrichtlinie zusammengeführt wurde, wird die definierte Aktion ausgelöst, wenn du einen Merge Request erstellst und die in den Regeln definierten Kriterien erfüllt sind. In diesem Fall ist mindestens die Zustimmung einer Person erforderlich, bevor der Code zusammengeführt werden kann.

Integrierter Sicherheitsscanner – Bild 10

Merge Request aufgrund erkannter Sicherheitslücken blockiert

Die Ergebnisse eines benutzerdefinierten Scanners können vollständig in die Merge-Request-Approvalrichtlinien integriert werden. Wenn der benutzerdefinierte Scanner eine Sicherheitslücke entdeckt, ist ein Approval erforderlich, bevor der Code zusammengeführt werden kann. Der Scanner, den du in einer Merge-Request-Approvalrichtlinie auswählst, muss das entsprechende JSON-Schema verwenden.

Tutorial: Integration von benutzerdefinierten Sicherheitsscannern

Jetzt kommen wir zum spannenden Teil: der Integration eines benutzerdefinierten Sicherheitsscanners. In diesem Tutorial lernst du, wie du einen benutzerdefinierten Sicherheitsscanner erstellst und wie du ihn in GitLab integrierst. Wir werden die folgenden Projekte nutzen:

  • Fern Pattern Scanner: Er durchsucht deine Dateien nach bestimmten Mustern wie Passwörtern, privaten Schlüsseln und Sozialversicherungsnummern. – Secret List: Enthält eine Liste von Benutzerpasswörtern, Clients und Schlüsseln. Dieses Projekt wird verwendet, um zu zeigen, wie ein benutzerdefinierter Sicherheitsscanner in GitLab integriert werden kann.

Im folgenden Video kannst du dir ansehen, wie die Anwendung erstellt wurde und wie sie im Detail verwendet wird:

Erstellen eines benutzerdefinierten Sicherheitsscanners

Jetzt erstellen wir einen benutzerdefinierten Scanner, der in GitLab integriert werden kann. Bevor ein benutzerdefinierter Scanner vollständig in GitLab integriert werden kann, muss der Scanner:

  • Ein Verzeichnis nach definierten Mustern scannen
  • Eine JSON-Datei nach dem entsprechenden Schema ausgeben
  • Containerisiert und zugänglich sein
  • Eine Vorlage bereitstellen, damit er in einem anderen Projekt ausgeführt werden kann

Wenn der Fern Pattern Scanner in einem Projekt mit der bereitgestellten Vorlage ausgeführt wird, führt er die folgenden Schritte aus:

  1. Er lädt einen Satz von Regeln, die Muster (Regex) definieren, die erkannt werden sollen.
  • Die Regeln können konfiguriert werden, um den sich ändernden Anforderungen deines Unternehmens gerecht zu werden.
  1. Er scannt Dateien auf definierte Muster.
  2. Er gibt einen JSON-Bericht aus, der dem Schema zur Erkennung von Geheimnissen folgt.
  • In diesem Projekt werden Go-Vorlagen verwendet, um eine JSON-Datei zu erstellen.
  • Stelle sicher, dass du das entsprechende Schema verwendest, je nachdem, wonach dein Scanner sucht.

Sobald der JSON-Bericht als Artefakt in GitLab geladen wurde, werden das Merge-Request-Widget, der Sicherheitslückenbericht, die Sicherheitslückenseiten, die Merge-Request-Approvalrichtlinien und die Sicherheitsdashboards wie oben definiert befüllt.

Integrieren eines benutzerdefinierten Sicherheitsscanners in GitLab

Sobald du deinen benutzerdefinierten Scanner erstellt hast, der alle Anforderungen für die Integration erfüllt, kannst du ihn in GitLab ausführen.

Das Ausführen eines benutzerdefinierten Scanners ist so einfach wie das Hinzufügen einer Vorlage. Wir können sehen, wie die Vorlage für den Fern Pattern Scanner geladen wird, indem wir uns die Datei .gitlab-ci.yml im Projekt Secret List ansehen.

  1. Erstelle eine .gitlab-ci.yml-Datei (Anleitung nur in englischer Sprache verfügbar) in dem Projekt, in dem du den Scanner ausführen möchtest.
  2. Füge die Vorlage für einen benutzerdefinierten Scanner hinzu.
    • Du solltest die Vorlage auch mit Umgebungsvariablen konfigurieren können.
  3. Committe die Datei in den Main-Branch.

Sobald die Datei übergeben wurde, kannst du sehen, dass der benutzerdefinierte Scanner in deiner Pipeline ausgeführt wird. Sobald die Pipeline abgeschlossen ist, befüllt der Scanner alle oben im Abschnitt Die GitLab-Sicherheitsscanner-Integration definierten Bereiche.

Mehr erfahren

In diesen englischsprachigen Ressourcen erfährst du mehr über GitLab und die anderen Möglichkeiten, wie du deine DevSecOps-Plattform erweitern kannst:

Wir möchten gern von dir hören

Hat dir dieser Blogbeitrag gefallen oder hast du Fragen oder Feedback? Erstelle ein neues Diskussionsthema im GitLab Community-Forum und tausche deine Eindrücke aus. Teile dein Feedback

Bist du bereit?

Sieh dir an, was dein Team mit einer einheitlichen DevSecOps-Plattform erreichen könnte.

Kostenlose Testversion anfordern

Finde heraus, welcher Tarif für dein Team am besten geeignet ist

Erfahre mehr über die Preise

Erfahre mehr darüber, was GitLab für dein Team tun kann

Sprich mit einem Experten/einer Expertin