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.
