Veröffentlicht am: 1. Dezember 2025

9 Minuten Lesezeit

PII-Rulesets für DSGVO Artikel 32 – ein GitLab-Tutorial

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 verstehen

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.

Zentrale Vorteile

  • Data-Breach-Prävention: Secrets werden erkannt, bevor sie committed werden.
  • Automatisiertes Scanning: Läuft als Teil der CI/CD-Pipeline ohne manuelle Eingriffe.
  • Custom Rules: Erweiterung der Detection-Capabilities durch eigene Pattern.
  • Compliance-Unterstützung: Erfüllt regulatorische Anforderungen wie DSGVO, HIPAA und weitere Datenschutzgesetze.

DSGVO-Kontext: Technische Maßnahmen nach Artikel 32

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.

Custom Rulesets für PII-Detection erstellen

GitLabs Standard-Secret-Detection deckt gängige Secrets wie API-Keys und Passwörter ab. Für unternehmens­spezifische 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-Reisepass­nummern, US-Telefon­nummern 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 Standard­konfiguration 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:

  • Ignoriert phone_number und email von test_user, da die Pattern in der Allowlist enthalten sind.
  • Erkennt sechs potenzielle Vulnerabilities aufgrund der Informationen für justin_case und chris_p_bacon:
    • US-Reisepassnummer mit Schweregrad Critical (Standard)
    • US-Telefonnummer mit Schweregrad Medium (Override)
    • E-Mail-Adresse mit Schweregrad Low (Override)
    • Daten aus Rules Override werden zu jeder Vulnerability hinzugefügt

Nach dem Submit des Merge Requests läuft der Secret-Detection-Scanner und liefert folgende Ergebnisse:

Secret Detection finding custom PII data MR

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

Expanded custom PII data vulnerability

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.

Gängige PII-Typen berücksichtigen

Beim Erstellen von Custom Rulesets Pattern für folgende PII-Typen berücksichtigen:

  • Sozialversicherungsnummern
  • Kreditkartennummern
  • Führerscheinnummern
  • Reisepassnummern
  • E-Mail-Adressen
  • Telefonnummern
  • IP-Adressen
  • Physische Adressen
  • Patientenakten­nummern

Deutsche PII-Kategorien nach DSGVO Artikel 9

Für deutsche Unternehmen sind zusätzlich die besonderen Kategorien personenbezogener Daten nach DSGVO Artikel 9 relevant:

  • Gesundheitsdaten: Patientennummern, Diagnosecodes, Behandlungs­informationen
  • Finanzdaten: IBAN (deutsches Format DE\d{20}), Kontonummern, Steuer-IDs
  • Biometrische Daten: Fingerabdrücke (falls als Identifier gespeichert)
  • Arbeitnehmerdaten: Personalnummern, Gehalts­informationen
  • Deutsche Telefonnummern: Pattern für +49 und 0-Präfixe

Diese Kategorien unterliegen erhöhten Schutzanforderungen und erfordern besondere technische Maßnahmen.

GitLab Duo Chat für Pattern-Erstellung nutzen

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 zur Generierung von PII-Regex-Pattern einsetzen

  1. GitLab Duo Chat aufrufen: Oben rechts GitLab Duo Chat auswählen. Ein Drawer öffnet sich auf der rechten Bildschirmseite.

  2. 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
  1. Review und Verfeinerung: GitLab Duo Chat schlägt ein Regex-Pattern vor, das überprüft und verfeinert werden kann:
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?
  1. Pattern testen: Das Pattern gegen Beispiel­daten testen, um korrekte Funktionsweise sicherzustellen. Websites wie https://regex101.com/ ermöglichen die Validierung von Pattern, bevor diese zum Ruleset hinzugefügt werden.

  2. 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.

Best Practices für PII-Detection

  1. Klein beginnen: Mit wenigen kritischen PII-Typen starten und schrittweise erweitern.
  2. Gründlich testen: Pattern gegen Beispiel­daten testen, um False Positives zu vermeiden.
  3. Regelmäßig aktualisieren: Rulesets überprüfen und aktualisieren, wenn neue PII-Anforderungen entstehen.
  4. Pattern dokumentieren: Dokumentation für Custom-Regex-Pattern pflegen.
  5. Präzision ausbalancieren: Pattern spezifisch genug gestalten, um False Positives zu vermeiden, aber flexibel genug für Variationen.
  6. Secret Push Protection implementieren: Verhindert, dass PII-Daten ins Repository gelangen.
  7. Merge Request Approval Policies einrichten: Approval erforderlich, bevor mögliche PII-Daten gemergt werden.

Nach Einrichtung eines PII-Data-Rulesets für unternehmens­spezifische 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:

Secret-Detection-Findings bearbeiten

Wenn GitLab Secret Detection potenzielle PII im Code identifiziert:

  1. Finding überprüfen: Bewerten, ob es sich um einen legitimen Finding oder False Positive handelt.
  2. Remediieren: Sensible Daten entfernen und durch Environment-Variablen oder Secrets-Management ersetzen.
  3. Text aus Repository redaktieren: Sensible oder vertrauliche Informationen, die versehentlich committed wurden, dauerhaft löschen, sodass sie in der Repository-History nicht mehr zugänglich sind.
  4. Fortschritt tracken: GitLabs Security Dashboard nutzen, um laufende Compliance zu überwachen.

Integration in deutsche Compliance-Frameworks

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 (Mindest­anforderungen an das Risiko­management).

BSI IT-Grundschutz: Der IT-Grundschutz des Bundesamts für Sicherheit in der Informationstechnik (BSI) enthält Bausteine für sichere Software­entwicklung. Secret Detection erfüllt Anforderungen aus APP.3.1 (Webanwendungen) und OPS.1.1.6 (Software-Tests und -Freigaben).

Jetzt starten

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!

Weitere Ressourcen

Mehr über GitLab Security und Compliance und wie wir AppSec-Workflows verbessern können:

Feedback erwünscht

Dieser Blogbeitrag hat gefallen oder es gibt Fragen oder Feedback? Ein neues Diskussionsthema im GitLab-Community-Forum erstellen und Eindrücke austauschen.
Feedback teilen

Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab

Stelle jetzt bessere Software schneller bereit

Erlebe, was dein Team mit der intelligenten

DevSecOps-Plattform erreichen kann.