Zum Inhalt

Data Obfuscation (Datenverschleierung)

Die Datenverschleierung schützt sensible Werte und hält Daten für Tests nutzbar.

Dieser Leitfaden nutzt einen hybriden Ansatz:

  • Aufbau anonymisierungsorientierter Modelle aus Datenbank-Metadaten in der Datenbankansicht.
  • Verfeinerung der Maskierungslogik in DATAMIMIC-DSL-Modellen.
Demo Projekt Anonymisierung
Masking-Demo im Editor mit DSL-basierten Verschleierungsregeln

Schritte

  1. Öffne den Demo Store und klone Basic Masking
  2. Der Demo Store ist über das DATAMIMIC-Icon erreichbar und enthält mehrere Demos und Use-Cases.
  3. Basic Masking ist ein Konzept-Showcase, das den grundlegenden Ablauf für Datenverschleierung demonstriert.

  4. Einrichten von Umgebungen

  5. Stelle sicher, dass beide Umgebungen vorhanden sind:
  6. sourceDB: Datenbank-Lesequelle.
  7. targetDB: Schreibziel für verschleierte Datensätze.
  8. Details findest du in Environments.

  9. Basis-Anonymisierungsmodell in der Datenbankansicht erstellen (optional, aber empfohlen)

  10. Nutze Create Anonymize, um ein erstes Basismodell aus Metadaten zu erzeugen.
  11. Halte diesen Schritt im Demo-Flow bewusst schlank; für den vollständigen Ablauf nutze Automatisches Generieren eines Modells aus einer Datenbank.

  12. Maskierungslogik in 2_generate verfeinern

  13. Nutze das erzeugte Modell als Baseline.

  14. Passe Skripte und Konverter in der DSL für fachliche Maskierungsregeln an.

Variante 1: Verschleierung von Datenbankdatensätzen

Diese Variante liest Datensätze aus der CUSTOMER-Tabelle von source und aktualisiert die Spalte name. Alle anderen Spalten bleiben unverändert. Die name-Spalte wird durch Anhängen von _mask verschleiert. Die maskierten Daten werden nach target geschrieben.

1
2
3
<generate name="CUSTOMER" source="source" type="CUSTOMER" target="target">
    <key name="name" script="name+'_mask'" />
</generate>

Variante 2: Verschleierung von Datenbankdatensätzen mit Konverter

In Variante 2 anonymisieren eingebaute Konverter bestehende Spaltenwerte (full_name, email, tc_creation_src).

1
2
3
4
5
6
7
<generate source="source" name="USER" target="target">
    <key name="full_name" script="full_name + '_mask'" />
    <!-- Verwende den Standard-Mask-Konverter, um in '*' (Standardzeichen) zu maskieren -->
    <key name="email" script="email" converter="Mask" />
    <!-- Optional kann ein bevorzugtes Zeichen an den Mask-Konverter übergeben werden -->
    <key name="tc_creation_src" converter="Mask('!')" script="tc_creation_src" />
</generate>

Variante 3: Verschleierung von CSV-Dateien mit mehreren Ansätzen

Diese Variante verschleiert Personendatensätze aus einer CSV-Datei und schreibt eine neue Ausgabedatei ObfuscateCSV.csv.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<generate name="ObfuscateCSV" type="ObfuscateCSV" source="data/persons.ent.csv" target="CSV">
    <variable name="addr" entity="Address" />
    <!-- Kürze die Länge des Strings vom Anfang -->
    <key name="familyName" script="familyName" converter="CutLength(3)" />
    <key name="givenName" script="givenName" converter="Mask" />
    <key name="alias" script="alias" converter="Append('_demo')" />
    <key name="street" script="addr.street" />
    <key name="city" script="addr.city" />
    <key name="country" constant="US" />
    <key name="accountNo" script="accountNo" converter="Hash('sha256', 'hex')" />
    <key name="ssn" script="ssn" converter="MiddleMask(2,3)" />
    <key name="creditCardNo" script="creditCardNo" converter="Hash('sha1', 'base64')" />
    <key name="secret1" script="secret1" converter="Hash('md5', 'hex')" />
    <key name="secret2" script="secret2" converter="Hash('md5', 'base64')" />
    <key name="secret3" script="secret3" converter="Hash('sha1','hex')" />
    <key name="secret4" script="secret4" converter="Hash('sha1', 'base64')" />
</generate>

Zusammenfassung

  1. Überprüfe das Demo Basic Masking aus dem Demo Store.
  2. Erzeuge in der Datenbankansicht ein Basis-Anonymisierungsmodell über Create Anonymize.
  3. Verfeinere die Maskierungslogik in 2_generate sowie in 3-1-anon-person-constant und 3-2-anon-person-hash.xml.