GitLab-Integrationshandbuch

Übersicht

Diese Anleitung konfiguriert GitLab so, dass der CBOM Secure Source Code Discovery Sensor kryptografisches Material in Repositories erkennen kann – fest codierte private Schlüssel und Zertifikate, API-Token und -Geheimnisse, SSH-Privatschlüssel und kryptografische Konfigurationsdateien. Sie gilt für GitLab SaaS (gitlab.com) und selbstverwaltete Instanzen. Der Zugriff ist ausschließlich lesend.

Voraussetzungen:

  • Ein GitLab-Konto (SaaS oder selbstverwaltet) mit mindestens der Rolle „Reporter“ für die Zielgruppe/das Projekt.
  • Selbstverwaltet: GitLab 13.0+ (Persönliche Zugriffstoken) oder 14.1+ (Projektzugriffstoken).
  • Der CBOM Collector hat HTTP/HTTPS-Zugriff auf die GitLab-Instanz.

Schritt-für-Schritt-Anleitung

Schritt 1: Erstellen Sie ein persönliches Zugriffstoken

Unter Ihrem Avatar → Profil bearbeiten → Zugriffstoken erstellen Sie ein Token namens „cbom-source-discovery“ mit den minimalen Berechtigungen „read_api“ und „read_repository“ (ohne Schreibberechtigung). Kopieren Sie das Token (wird nur einmal angezeigt); es hat die Form „glpat-xxxxxxxxxxxxxxxxxxxx“.

Schritt 2: (Optional) Erstellen Sie ein Projektzugriffstoken.

Um die Zugriffe auf ein einzelnes Projekt zu beschränken, verwenden Sie Projekt → Einstellungen → Zugriffstoken mit der Rolle Reporter und den Bereichen read_api und read_repository.

Schritt 3: (Selbstverwaltet) Bestätigen Sie die API-Basis-URL.

curl -s --header "PRIVATE-TOKEN: " \ "https:// /api/v4/version"

Bei einer internen Zertifizierungsstelle (CA) rufen Sie die CA-PEM ab und referenzieren Sie diese über ssl_ca_cert in der Sensorkonfiguration.

Schritt 4: Konfigurieren Sie den CBOM-Sicherheitssensor

GitLab SaaS mit einem persönlichen Zugriffstoken:

Sensor: Discover_SourceCode Plattform: GitLab GitLab-URL: "https://gitlab.com" Privater Token: "glpat-xxxxxxxxxxxxxxxxxxxx" Scan-Gruppen: - "my-org-group" Scan-Name: GitLabSourceCodeDiscovery

Selbstverwaltet mit einem internen CA oder auf ein einzelnes Projekt beschränkt:

# selbstverwaltete gitlab_url: "https://gitlab.internal.example.com" ssl_ca_cert: "/etc/cbom/certs/gitlab-ca.pem" scan_groups: ["engineering", "security"] # einzelnes Projekt (Projektzugriffstoken) scan_projects: ["my-org-group/my-repository"]

Schritt 5: Validieren

curl -s --header "PRIVATE-TOKEN: glpat-xxxx" \ "https://gitlab.com/api/v4/projects?membership=true&per_page=5" curl -s --header "PRIVATE-TOKEN: glpat-xxxx" \ "https://gitlab.com/api/v4/projects/ /repository/tree"

Führen Sie die Erkennungsaufgabe aus und vergewissern Sie sich, dass sie ohne 401/403-Fehler abgeschlossen wird; überprüfen Sie, ob der Zeitstempel „Zuletzt verwendet“ des Tokens in GitLab aktualisiert wird.

Häufige Fehler

401 Nicht autorisiert

Ursache: Der Tokenwert ist falsch, widerrufen oder abgelaufen.

Lösung: Überprüfen Sie, ob das Token in der YAML-Datei exakt übereinstimmt; prüfen Sie das Ablaufdatum; generieren Sie die Konfiguration neu und aktualisieren Sie sie.

403 Verboten

Ursache: Fehlender read_api-/read_repository-Bereich oder ein Projektzugriffstoken unterhalb des Melders.

Lösung: Erstellen Sie das Token mit beiden Berechtigungen neu; stellen Sie sicher, dass der Reporter mindestens Zugriff auf den Ziel-Namespace hat.

SSL-Zertifikatprüfung fehlgeschlagen

Ursache: Selbstverwaltetes GitLab verwendet eine interne Zertifizierungsstelle, die vom Collector nicht als vertrauenswürdig eingestuft wird.

Lösung: Setzen Sie ssl_ca_cert auf die interne CA-PEM-Datei und stellen Sie sicher, dass der Collector diese lesen kann.

Sicherheitsempfehlungen

  • Verwenden Sie ein dediziertes GitLab-Dienstkonto (z. B. cbom-scanner), kein persönliches Konto.
  • Gewähren Sie ausschließlich die Berechtigungen read_api und read_repository – niemals die Berechtigungen api (full) oder write.
  • Token-Ablaufdatum festlegen und planmäßig rotieren; Sensorkonfiguration bei Rotation aktualisieren.
  • Bei selbstverwalteten GitLab EE-Installationen sollten Token-IP-Zulassungslisten verwendet werden, die auf die Collector-IP beschränkt sind.
  • Überprüfen Sie die GitLab-Audit-Ereignisse, um sicherzustellen, dass die Aktivitäten mit den Scan-Zeitplänen übereinstimmen.

Fazit

Der Discover_SourceCode-Sensor arbeitet ausschließlich mit den Berechtigungen read_api und read_repository und scannt GitLab SaaS- und selbstverwaltete Repositories im Nur-Lese-Modus – mit entsprechendem TLS-Vertrauen für interne Zertifizierungsstellen – und speist das gefundene kryptografische Material in CBOM Secure ein.