Veröffentlicht am: 1. Dezember 2025
9 Minuten Lesezeit
Personenbezogene Daten im Quellcode automatisch erkennen: Custom Rulesets in 5 Schritten erstellen, testen und mit GitLab Duo Chat optimieren.

DSGVO Artikel 32 verlangt technische und organisatorische Maßnahmen zur Sicherstellung der Integrität und Vertraulichkeit personenbezogener Daten. GitLab Secret Detection mit Custom PII Rulesets erfüllt diese Anforderung durch automatisierte Erkennung personenbezogener Daten im Quellcode. Dieses Tutorial zeigt die Vorgehensweise: systematische Ruleset-Erstellung, Test-Szenarien und KI-gestützte Regex-Generierung mit GitLab Duo Chat.
GitLab Secret Detection ist ein Security-Scanning-Feature, das in die GitLab-CI/CD-Pipeline integriert ist. Die Funktion scannt Codebasen automatisch und identifiziert hardcodierte Secrets, Credentials und personenbezogene Daten, die nicht im Repository gespeichert werden sollten.
Die DSGVO verpflichtet Unternehmen in Artikel 32 zur Implementierung technischer Maßnahmen, die die Sicherheit der Verarbeitung personenbezogener Daten gewährleisten. Automatisierte PII-Erkennung im Quellcode erfüllt diese Anforderung durch systematische Identifikation vor dem Deployment. Bei Verstößen drohen Bußgelder bis zu 20 Millionen Euro oder 4 Prozent des weltweiten Jahresumsatzes – je nachdem, welcher Betrag höher ist.
Besonders relevant für deutsche Unternehmen: Die deutschen Datenschutzbehörden gehören zu den aktivsten Enforcement-Stellen in der EU. Beispiele aus der Praxis zeigen, dass unzureichende technische Maßnahmen bei Datenpannen zu erheblichen Strafen führen.
GitLabs Standard-Secret-Detection deckt gängige Secrets wie API-Keys und Passwörter ab. Für unternehmensspezifische PII-Typen lassen sich Custom Rules erstellen.
Zum Einstieg ein neues GitLab-Projekt anlegen und die folgenden Schritte ausführen. Beispiele finden sich in der PII Demo Application.
Schritt 1: Secret Detection aktivieren
Secret Detection in der .gitlab-ci.yml-Datei aktivieren:
include:
- template: Security/Secret-Detection.gitlab-ci.yml
secret_detection:
variables:
SECRET_DETECTION_EXCLUDED_PATHS: "rules,.gitlab,README.md,LICENSE"
SECRET_DETECTION_HISTORIC_SCAN: "true"
Schritt 2: Custom-Ruleset-Datei erstellen
Das Verzeichnis und die Datei rules/pii-data-extension.toml anlegen. Diese enthält Regex-Pattern für PII-Daten sowie eine Allowlist für Pattern, die ignoriert werden sollen. Nachfolgend Pattern für US-Reisepassnummern, US-Telefonnummern und E-Mail-Adressen:
[extend]
# Extends default packaged ruleset, NOTE: do not change the path.
path = "/gitleaks.toml"
# Patterns to ignore (used for tests)
[allowlist]
description = "allowlist of patterns and paths to ignore in detection"
regexTarget = "match"
regexes = ['''555-555-5555''', '''[email protected]''']
paths = ['''(.*?)(jpg|gif|doc|pdf|bin|svg|socket)''']
# US Passport Number (USA)
[[rules]]
id = "us_passport_detection"
title = "US Passport Number"
description = "Detects US passport numbers"
regex = '''\b[A-Z]{1,2}[0-9]{6,9}\b'''
keywords = ["passport"]
# Phone Number (USA)
[[rules]]
id = "us_phone_number_detection_basic"
title = "US Phone Number"
description = "Detects US phone numbers in basic format"
regex = '''\b\d{3}-\d{3}-\d{4}\b'''
keywords = ["phone", "mobile"]
# Email Address
[[rules]]
id = "email_address"
title = "Email Address"
description = "Detects email addresses"
regex = '''[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'''
keywords = ["email", "e-mail"]
Schritt 3: Secret Detection mit Custom-Ruleset-Datei erweitern
Das Verzeichnis und die Datei .gitlab/secret-detection-ruleset.toml im Repository-Root anlegen. Diese Datei ermöglicht die Erweiterung der Standardkonfiguration mit der PII-Rules-Datei und überschreibt den Schweregrad erkannter Vulnerabilities (Standard-Schweregrad ist Critical).
# Define the pii rules to add to default configuration
[[secrets.passthrough]]
type = "file"
target = "gitleaks.toml"
value = "rules/pii-data-extension.toml"
# Overwrite Phone Number (USA) PII Severity
[[secrets.ruleset]]
[secrets.ruleset.identifier]
type = "gitleaks_rule_id"
value = "us_phone_number_detection_basic"
[secrets.ruleset.override]
severity = "Medium"
# Overwrite Email Address PII Severity
[[secrets.ruleset]]
[secrets.ruleset.identifier]
type = "gitleaks_rule_id"
value = "email_address"
[secrets.ruleset.override]
severity = "Low"
Schritt 4: Änderungen committen
Die Änderungen aus den obigen Schritten zum Projekt hinzufügen:
cd /path/to/your/project
git add .
git commit -m "Add PII data ruleset and Secret Scanning"
git push
Nach dem Commit läuft Secret Detection im Default-Branch.
Schritt 5: PII-Data-Detection testen
Nach der Konfiguration des Secret-Detection-Scanners erfolgt ein Test, um zu prüfen, ob der Scanner die neuen Custom-Pattern erkennt. Dazu einen Merge Request erstellen, der eine neue Datei customer-data.yaml mit folgendem Inhalt hinzufügt:
customers:
test_user:
phone_number: 555-555-555
email: [email protected]
justin_case:
phone_number: 512-123-4567
passport_number: A12345678
email: [email protected]
chris_p_bacon:
phone_number: 305-123-4567
passport_number: B09876543
email: [email protected]
Der Scanner führt nun Folgendes aus:
phone_number und email von test_user, da die Pattern in der Allowlist enthalten sind.justin_case und chris_p_bacon:
Critical (Standard)Medium (Override)Low (Override)Nach dem Submit des Merge Requests läuft der Secret-Detection-Scanner und liefert folgende Ergebnisse:

Bei Klick auf eine Vulnerability werden detaillierte Vulnerability-Daten angezeigt, basierend auf der Konfiguration in den neu erstellten Rules:

Diese Daten ermöglichen die Beurteilung der Validität der vorhandenen Daten und entsprechende Maßnahmen.
Weitere Konfigurationsmöglichkeiten für Custom Rulesets existieren. Beispielsweise lassen sich Rules remote auf mehrere Projekte anwenden, um die Duplizierung der Rules-Datei zu vermeiden. Details in der Secret Detection Configuration Documentation.
Beim Erstellen von Custom Rulesets Pattern für folgende PII-Typen berücksichtigen:
Für deutsche Unternehmen sind zusätzlich die besonderen Kategorien personenbezogener Daten nach DSGVO Artikel 9 relevant:
DE\d{20}), Kontonummern, Steuer-IDs+49 und 0-PräfixeDiese Kategorien unterliegen erhöhten Schutzanforderungen und erfordern besondere technische Maßnahmen.
Die Erstellung effektiver Regex-Pattern kann komplex sein. GitLab Duo Chat unterstützt dabei. GitLab Duo Chat ist ein KI-gestützter Assistent, der Entwicklungsabläufe durch kontextuelle, konversationelle KI beschleunigt. Chat ist für jeden Nutzer mit einem zugewiesenen GitLab-Duo-Seat verfügbar.
GitLab Duo Chat aufrufen: Oben rechts GitLab Duo Chat auswählen. Ein Drawer öffnet sich auf der rechten Bildschirmseite.
Chat-Eingabe formulieren: Einen Prompt in die Chat-Eingabebox eingeben und Enter drücken oder Senden auswählen:
I need a regex pattern to detect Canadian Zip Codes in our codebase for secret detection
Canadian postal codes follow the format "A1A 1A1" (where A is a letter and 1 is a digit). Here's a regex pattern that will detect Canadian postal codes in your codebase, accounting for both spaced and non-spaced formats:
[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d
This pattern matches:
* A letter, followed by a digit, followed by a letter
* An optional space or hyphen
* A digit, followed by a letter, followed by a digit
If you need a more strict pattern that only matches uppercase letters (as official Canadian postal codes use), you can use:
[A-Z]\d[A-Z][ -]?\d[A-Z]\d
For implementation in a secret detection tool, you might want to add word boundaries to avoid partial matches:
\b[A-Z]\d[A-Z][ -]?\d[A-Z]\d\b
Would you like more details about implementing this in a specific secret detection system?
Pattern testen: Das Pattern gegen Beispieldaten testen, um korrekte Funktionsweise sicherzustellen. Websites wie https://regex101.com/ ermöglichen die Validierung von Pattern, bevor diese zum Ruleset hinzugefügt werden.
Zum Ruleset hinzufügen: Nach erfolgreicher Validierung das Pattern zur rules/pii-data-extension.toml-Datei hinzufügen und Tests durchführen. Dieser Beispiel-Merge Request enthält eine neu hinzugefügte Rule für Canadian Zip Codes basierend auf dem obigen Pattern.
GitLab Duo Chat lässt sich zusätzlich nutzen in:
In Zukunft lässt sich GitLab Duo Workflow (derzeit in Private Beta) nutzen, um Pattern automatisch zu generieren und direkt aus der IDE zur Codebasis hinzuzufügen. GitLab Duo Workflow ist ein KI-Agent, der KI vom reaktiven Assistenten zum autonomen Contributor transformiert und den Software-Development-Lifecycle optimiert. Mehr zu GitLab Duo Workflow.
Nach Einrichtung eines PII-Data-Rulesets für unternehmensspezifische Anforderungen lassen sich Remote Rulesets nutzen, um PII-Daten über mehrere Repositories hinweg zu scannen, ohne die Rules-Datei duplizieren zu müssen. Mehr dazu in diesem Video:
Wenn GitLab Secret Detection potenzielle PII im Code identifiziert:
Für deutsche Unternehmen lässt sich Secret Detection mit weiteren Compliance-Anforderungen integrieren:
NIS2-Richtlinie (ab Oktober 2024 verpflichtend): Artikel 21 der NIS2-Richtlinie verlangt von wesentlichen und wichtigen Einrichtungen Cybersecurity-Risk-Management-Maßnahmen. Automatisierte PII-Erkennung erfüllt die Anforderung technischer Maßnahmen zur Risikoreduzierung.
BaFin-Anforderungen für Finanzinstitute: Die Bankenaufsicht (BaFin) verlangt in den BAIT (Bankaufsichtliche Anforderungen an die IT) systematische Kontrollen für Kundendaten. GitLab Secret Detection dokumentiert technische Maßnahmen für MaRisk-Compliance (Mindestanforderungen an das Risikomanagement).
BSI IT-Grundschutz: Der IT-Grundschutz des Bundesamts für Sicherheit in der Informationstechnik (BSI) enthält Bausteine für sichere Softwareentwicklung. Secret Detection erfüllt Anforderungen aus APP.3.1 (Webanwendungen) und OPS.1.1.6 (Software-Tests und -Freigaben).
GitLab Secret Detection kombiniert mit Custom PII Rulesets bietet systematischen Schutz gegen unbeabsichtigte Exposition sensibler Informationen. Durch Nutzung von GitLab Duo Chat zur Erstellung präziser Regex-Pattern lässt sich umfassende PII-Detection über die gesamte Codebasis effizient implementieren und regulatorische Compliance sicherstellen.
Secret Detection ist eine Komponente einer umfassenden Security-Strategie. Kombination mit weiteren GitLab-Security-Features wie Static Application Security Testing, Dynamic Application Security Testing und Dependency Scanning ergibt eine robuste Security-Posture.
Diese Praktiken noch heute implementieren, um personenbezogene Daten besser zu schützen und die Security-Integrität von Anwendungen zu gewährleisten.
Kostenlose Testversion von GitLab Ultimate und GitLab Duo starten!
Mehr über GitLab Security und Compliance und wie wir AppSec-Workflows verbessern können: