Database
 sql >> Datenbank >  >> RDS >> Database

PII in Datenbanken klassifizieren, finden und maskieren…

Sobald sie ihre Datenbankverbindungen hergestellt haben, haben die Benutzer von IRI FieldShield und IRI DarkShield beide eine breite Palette von Optionen zum Klassifizieren, Finden und De-Identifizieren sensibler Daten über ein oder mehrere Schemas hinweg. Sie können jetzt alle diese Ziele auf einmal durch regelbasierte Einrichtungen in IRI Workbench erreichen.

Dieser Artikel zeigt Schritt für Schritt die Verwendung von Datenklassen zum Suchen und Maskieren von PII in einem kleinen relationalen Datenbankschema mit FieldShield, obwohl Sie diese Schritte auf größere oder mehr Schemas ausdehnen könnten. Wenn Ihre Datenbank halb- oder unstrukturierte Spalten enthält, lesen Sie diesen Artikel zu DarkShield-Klassifizierungssuchmaskenverfahren für RDBs oder diesen Artikel für NoSQL-DBs.

In RDB-Operationen mit strukturierten Spalten von FieldShield werden Daten normalerweise Schema für Schema klassifiziert, aber global maskiert, indem Ihre gespeicherten Regeln verwendet werden, ad hoc oder planmäßig für Aktualisierungen.

Die von Ihnen definierten Datenmaskierungsregeln ermöglichen es Ihnen, die für jede Datenklasse am besten geeignete Funktion auszuwählen und konsistent anzuwenden. Die Erzeugung desselben eindeutigen Chiffretext-Ergebnisses für jeden eindeutigen ursprünglichen Klartextwert – in jeder Tabelle oder Datei – bewahrt auch die referenzielle Integrität; z. B. funktionieren Verknüpfungen auch nach dem Maskieren der Daten.

Dieses Beispiel verwendet Beispiel-Oracle-Tabellen im SCOTT-Schema, das in unserer VM-Sandbox bereitgestellt wird. Um eine Verbindung zu einer anderen Datenbank herzustellen, müssen Sie Folgendes konfigurieren:

  • Das DTP-Verbindungsprofil für Ihre DB in IRI Workbench mit JDBC
  • Der ODBC-DSN für diese Quell-DB

Informationen zum Verbinden Ihrer Datenbanken zur Verwendung mit FieldShield finden Sie unter DB-Setup hier.

Die Schritte, die ich beschreiben werde, sind:

  1. Setup – Datenklassen &Maskierungsregeln definieren
  2. Scannen – Ausführen des Assistenten zum Suchen von Schemadatenklassen
  3. Überprüfen und anpassen – Datenklassenbibliothek-Editor
  4. Mask – Führen Sie den Maskierungsassistenten für die Datenklassendatenbank aus

Hier ist auch eine Videoserie mit ähnlichen Schritt-für-Schritt-Anleitungen verlinkt.

Einrichtung – Datenklassen und Maskierungsregeln definieren

Um Datenklassen mit Regeln und Assistenten zu verwenden, müssen die Datenklassen zunächst definiert und gespeichert werden. Dies kann über Fenster> Einstellungen> IRI> Datenklassen und -gruppen erfolgen . Weitere Informationen finden Sie in diesem Artikel zur Datenklassifizierung in der IRI Workbench. Es gibt auch Video-Tutorials für die Einrichtung der Datenklassifizierung und Maskierungsregeln.

Die Datenklassen können Spalten entweder nach Spaltennamen (die Klasse EMAIL stimmt mit einer Spalte mit dem Namen EMAIL überein) oder mit den in der Spalte enthaltenen Daten übereinstimmen. Dieses Beispiel enthält Klassen, die entweder einen regulären Ausdruck oder eine Set-Datei haben. Eine Set-Datei enthält Einträge, die als Nachschlagewerk im Wörterbuch dienen.

Bestätigen Sie auf dieser Einstellungsseite, dass diese Datenklassen vorhanden sind:

  • Klasse CREDIT_CARD das verwendet \b((4\d{12}(\d{3})?))|(?:5[1-5][0-9]{2}|222[1-9] |22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|( 3[47]\d{13})|(3(0[0-5]|[68]\d)\d{11})|(6(011|5\d{2})\d{12 })|((2131|1800|35\d{3})\d{11})|(8\d{15})\b als Matcher.
  • Klasse EMAIL das verwendet \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
  • Klasse PHONE_US die ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?)? )([2-9]\d{2})([ .-]?)(\d{4})([ #eExXtT]*)(\d{2,6})?&
  • Klasse PIN_US das verwendet \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
  • Klasse NACHNAME, die die Set-Datei C:/IRI/cosort100/sets/names/names_last.set verwendet

Wenn dies nicht der Fall ist, klicken Sie auf Standardeinstellungen wiederherstellen .

Oben auf der Einstellungsseite befindet sich ein Eintrag Matching Threshold . Dies stellt den Prozentsatz der Übereinstimmungen dar, der erforderlich ist, damit einer Spalte eine Datenklasse zugewiesen wird. Die Schemasuche durchsucht 4K-Datenblöcke, bis Übereinstimmungen diesen Schwellenwert erreichen. Wenn es diesen Schwellenwert nie erreicht, wird keine Datenklasse zugewiesen.

Da ich weiß, dass ich Spalten habe, die Nachnamen enthalten, die möglicherweise nicht „LAST_NAME“ heißen oder nicht einmal übereinstimmende Daten in der Set-Datei enthalten, kann ich einen regulären Ausdruck verwenden, um meine Datenklasse mit Spaltennamen. Beispielsweise kann es eine Spalte mit dem Namen LNAME oder NACHNAME geben.

Um die Datenklasse LAST_NAME zu bearbeiten, klicken Sie in der Datenklassenansicht auf den Eintrag LAST_NAME und dann auf Bearbeiten . Ändern Sie seinen Namen in L(AST)?[_-]?NAME (Unterstrich und Bindestrich in den Klammern). Klicken Sie auf OK . Klicken Sie auf Übernehmen und schließen .

Sie sollten im Voraus festlegen, wie die Werte in jeder Datenklasse maskiert werden sollen (d. h. ihr Zielspaltenformat), damit Sie diese Regeln als Nächstes definieren können. In unserem Beispiel gibt es Schwärzungs-, formaterhaltende Verschlüsselungs- und Pseudonymisierungsregeln. Jede muss nur einmal im IRI-Menü definiert werden.

Um diese Regel in diesem Beispiel zu definieren, gehen Sie folgendermaßen vor:

Regel 1 – Schwärzung (für Sozialversicherungsnummern)

  1. Wählen Sie IRI-Menü> Neue Regel .
  2. Wählen Sie Feldregeln aus und klicken Sie auf Weiter .
  3. Wählen Sie Schwärzungsfunktion , verwenden Sie SSN für den Beginn des Regelnamens so, dass SSNRedactionRule lautet, und klicken Sie auf Weiter .
  4. Wählen Sie die Option Maske definieren Radio knopf. Geben Sie 1 ein in Startposition und 5 in Länge . Klicken Sie auf Zur Tabelle hinzufügen und Fertig stellen .

Regel 2 – Verschlüsselung (für Kreditkartenkontonummern, E-Mail-Adressen und Telefonnummern)

  1. Wählen Sie IRI-Menü> Neue Regel .
  2. Wählen Sie Feldregeln aus und klicken Sie auf Weiter .
  3. Wählen Sie Verschlüsselungs- und Entschlüsselungsfunktionen und klicken Sie auf Weiter . Benennen Sie die Regel nicht um.
  4. Wählen Sie enc_fp_aes256_alphanum aus Option auf der linken Seite. Geben Sie Geheimnis ein für die Passphrase . Siehe diese Seite zu den Verwaltungsoptionen für Verschlüsselungsschlüssel.
  5. Klicken Sie auf Fertig stellen .

Regel 3 – Pseudonymisierung (für Nachnamen)

  1. Wählen Sie IRI-Menü> Neue Regel .
  2. Wählen Sie Feldregeln aus und klicken Sie auf Weiter .
  3. Wählen Sie Pseudonym-Ersetzung aus , benennen Sie sie in LNamePseudonymRule um und klicken Sie auf Weiter .
  4. Klicken Sie auf Eigene Pseudonymliste verwenden und Durchsuchen zur Lookup-Datei C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
  5. Wählen Sie Zufällige Ziehung aus Pseudonymliste verwenden . Beachten Sie, dass eine wiederherstellbare Pseudonymisierung ebenfalls möglich ist, jedoch aufgrund wahrscheinlicher Änderungen an Ihren Quelldaten komplizierter ist.
  6. Klicken Sie auf Fertig stellen .

Nachdem unsere Datenklassen-Maskierungsregeln definiert sind, können wir Such- und Maskierungsvorgänge durchführen, um die Daten global in einem oder mehreren Datenbankschemata zu finden und zu korrigieren.

Scannen – Führen Sie den Assistenten zum Suchen von Schemadatenklassen aus

Verwenden Sie den Assistenten zum Suchen von Schemadatenklassen, um alle Daten zu finden, die unseren Klassendefinitionen in allen Tabellen eines Schemas entsprechen. Dadurch wird ein Bericht für jede Tabelle und Spalte mit den vorklassifizierten PII erstellt, eine für Ihr Projekt spezifische Datenklassendatei erstellt und ein Formulareditor für diese Datei geöffnet. In diesem Bearbeitungsdialog (unser nächster Schritt danach) können Sie Ihre Datenklassen- und Maskierungsregeldefinitionen überprüfen und ändern, bevor Sie im letzten Schritt zur globalen Datenmaskierung übergehen.

Sie können den Assistenten über die Menügruppe Data Discovery in der Symbolleiste der IRI Workbench ausführen. Sie können den Suchassistenten stattdessen auch direkt aus dem Datenquellen-Explorer ausführen, um den Assistenten vorab mit einem ausgewählten Schema zu füllen. Klicken Sie im Data Source Explorer (DSE) mit der rechten Maustaste auf das SCOTT-Schema und wählen Sie IRI> Schema Data Class Search .

Geben Sie auf der Einrichtungsseite des Suchassistenten den Speicherort für die Datenklassendatei ein. In jedem Projekt kann es nur eine Datei dieses Typs geben, daher der schreibgeschützte Status des Namensfelds. Lassen Sie die Standardeinstellungen unverändert. Klicken Sie auf Weiter .

Die Eingabeseite zeigt, dass ein Schema ausgewählt ist. Klicken Sie auf Weiter . Auf der nächsten Seite können Sie die durchsuchten Spalten nach Datentypen einschränken. Fügen Sie NUMERIC hinzu , und klicken Sie auf Weiter .

Auf der Seite Elemente ausschließen können Sie Tabellen oder Spalten während des Scans ausschließen. Klicken Sie auf Weiter .

Auf der Datenklassenseite können Sie die Datenklassen filtern, die während des Scans verwendet werden. Wählen Sie nur CREDIT_CARD aus , E-MAIL , L(AST)?[_-]?NAME, PHONE_US , und PIN_US . Klicken Sie auf Fertig stellen .

Zusammen mit Berichten wird dadurch eine Datenklassenbibliothek mit Zuordnungen zwischen Quellspalten und Datenklassen erstellt (oder angehängt). Mit dem sich öffnenden Formulareditor können Sie den Ergebnissen Regeln zuweisen.

Diese Suche durch 46 Tabellen ergab 18 Spaltenübereinstimmungen, von denen ich weiß, dass sie größtenteils, aber nicht vollständig sind:

Ich weiß, dass einige Spalten nicht abgeglichen wurden, weil die Tabellen leer waren oder Namen keine Übereinstimmungen in den Set-Dateien fanden. Im nächsten Schritt kann ich diese Fehler beheben und meine Maskierungsregeln auf Tischbasis bestätigen.

Überprüfen und anpassen – Datenklassenbibliothek-Editor

Jetzt, da die Suchergebnisse im Formularbearbeitungsfenster der Datenklassenbibliothek geöffnet sind, können Sie Spaltenregeln auf Tabellenebene untersuchen und ändern und leere Tabellen im Schema entfernen, deren Spaltennamen mit Ihren Datenklassennamen übereinstimmen. All dies hilft zu bestätigen, dass Sie für den folgenden Bulk-Masking-Job richtig eingerichtet sind.

Beachten Sie, dass diese Ansicht zusammen mit Ihren Datenbanksuchergebnissen auch Flatfile-Suchergebnisse (Verzeichnisdatenklasse) unterstützt. Indem Sie diese Ergebnisse mit Ihrer Datenklassenbibliothek verknüpfen, ist es einfacher, Ihre Maskierungsfunktionen (Regeln) über unterschiedliche Datenquellen hinweg gleich zu halten. Dies trägt dazu bei, die referenzielle Integrität aufrechtzuerhalten und die Datenkonsistenz in stärker verteilten Anwendungsumgebungen zu testen.

Klicken Sie auf eine Datenquelle (Tabelle), um Details zu dieser Quelle und eine Vorschau der darin enthaltenen Daten anzuzeigen. Wenn eine Übereinstimmung mit einer Datenklasse gefunden wurde, zeigt diese Spalte diese Klasse und wie sie abgeglichen wurde.

Im Fall meiner PERSONS-Tabelle unten können Sie Folgendes sehen:Alle SSN-Spaltenwerte stimmten mit dem RegEx-Muster meiner PIN_US-Datenklasse überein, und die Spalten LASTNAME und CREDIT_CARD stimmten mit ihren Datenklassennamen überein, was die Notwendigkeit für diese Spaltenscans ausschließt.

Änderungen an den Datenklassenzuordnungen können vorgenommen werden, indem Sie entweder die Datenklasse über die Dropdown-Liste ändern oder die Spalte abwählen, um die Zuordnung vollständig zu entfernen. Wenn eine Tabelle leer ist, weist sie möglicherweise nicht alle gewünschten Zuordnungen zu. Es gibt drei Möglichkeiten, dies zu handhaben:

  1. Sie können die Tabellen zur Ausschlussseite im Klassifizierungsassistenten oben hinzufügen, sodass sie nicht zur Datenklassenbibliothek hinzugefügt wird
  2. Falls die Tabelle zukünftig Daten enthalten kann, weisen Sie hier die Datenklassen manuell zu. Dann entweder
    • Deaktivieren Sie sie im Maskierungsassistenten
    • Lassen Sie sie und der Maskierungsassistent erstellt Auftragsskripte, die ausgeführt werden, aber nicht maskieren
  3. oder entfernen Sie die Datenquelle aus der Datenklassenbibliothek

Wählen Sie in diesem Beispiel die folgenden Datenquellen aus und klicken Sie auf Entfernen da sie leer sind oder nicht maskiert werden müssen:

   SCOTT.DEMO_ROWGEN
   SCOTT.DM_EMPLOYEES
   SCOTT.PATIENT_RECORD_ENCRYPTED

Vor dem Maskieren müssen die Ergebnisse in der Datenklassenbibliothek sorgfältig überprüft werden. Manchmal werden Übereinstimmungen verpasst, weil die Daten nicht gültig sind oder der Datenklassen-Matcher geändert werden muss. Es ist auch möglich, dass falsch positive Ergebnisse auftreten können.

In diesem Beispiel muss eine Datenklasse manuell zugewiesen werden, da es ungültige E-Mail-Adressen und US-Telefonnummernformate gibt, aber wir möchten diese Spalten trotzdem maskieren. Wir können diese Spalte auswählen und klassifizieren nach:

   SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US

Sobald die Ergebnisse überprüft und bei Bedarf geändert wurden, klicken Sie auf die Datenklassen in der Bibliothek auf der linken Seite, um Standardregeln zuzuweisen. Auf diese Weise können Sie die Regeln allen Quellen zuweisen, indem Sie einer Klasse einfach eine Standardregel zuweisen.

In diesem Beispiel habe ich meine Maskierungsregeln den Datenklassen in der Bibliothek wie folgt zugewiesen:

   CREDIT_CARD> FieldEncryptionRule
   EMAIL> FieldEncryptionRule
   L(AST)?[_-]?NAME> LNamePseudonymRule
   PHONE_US> FieldEncryptionRule
   PIN_US> SSNRedactionRule

Sie können überprüfen, ob Ihre globalen Regelzuweisungen vollständig und korrekt in den Datenquellen weitergegeben wurden, indem Sie die Maskierungsregeln in jeder überprüfen. Zum Beispiel haben wir in der Tabelle SCOTT.PERSONS, die oben zuerst mit Regeln gezeigt wurde, jetzt:

Wenn einer Spalte in einer bestimmten Tabelle eine Regel fehlt oder eine andere Regel benötigt wird, kann diese Regel hinzugefügt oder geändert werden, nachdem die Standardregeln angewendet wurden, indem sie in jeder Datenquelle angesprochen werden.

Mask – Ausführen des Assistenten zum Maskieren der Datenklassendatenbank

Nachdem Sie überprüft haben, dass Ihren Datenklassen die richtigen Maskierungsregeln zugewiesen sind, können Sie sie global anwenden.

Klicken Sie mit der rechten Maustaste auf iriLibrary.dataclass Objekt in Ihrem Projektordner in Ihrem Projekt-Explorer-Baum der IRI Workbench und wählen Sie IRI> Neuer Datenklassen-Datenbank-Maskierungsauftrag . Vergewissern Sie sich auf der ersten Seite des Assistenten, dass der Projektordner der Ort ist, an dem Ihre Datenklassen- und Regelbibliothek gespeichert wurden, und benennen Sie den Job. Wählen Sie die Zusammenfassungsseite anzeigen aus um die Details des Auftrags anzuzeigen.

Mit dem Assistenten können Sie die maskierten Ergebnisse im Gleichen aktualisieren Quelltabellen (um sie statisch zu maskieren), zu Different Zieltabellen oder in Flatfiles (empfohlen), damit Sie die Ergebnisse zunächst validieren und in Ziele laden können. Ändern Sie die Ausgabe zu Flatfiles und klicken Sie auf Weiter .

Lassen Sie auf der Seite Datenklassenfilter alle Datenklassen ausgewählt. Klicken Sie auf Weiter . Lassen Sie auf der Seite Datenquellen alle Elemente ausgewählt. Wenn es Tabellen gibt, für die Sie den Job nicht ausführen möchten, würden Sie sie hier abwählen.

Da ich mich entschieden habe, den Zusammenfassungsbildschirm anzuzeigen, kann ich den Job überprüfen:

bevor Sie auf Fertig stellen klicken .

Anschließend werden die Skripte erstellt und ein Flussdiagramm geöffnet, um den gesamten Job zu veranschaulichen, der auch als Windows- (oder Unix-) Batchdatei serialisiert wird. Jede Tabelle, in der eine Spalte maskiert wird, wird durch einen braunen Transformationszuordnungsblock dargestellt, der in einem Aufgabenskript serialisiert wird.

Überprüfen Sie die Maskierungsvorgänge, indem Sie auf die Transformationszuordnungsblöcke doppelklicken und die orangefarbenen Linien zu den Zielen untersuchen. Diese kennzeichnen Spalten, die von der Eingabe geändert werden.

Klicken Sie in die Felder rechts neben der orangefarbenen Linie und sehen Sie sich die Eigenschaftsansicht am unteren Bildschirmrand an. Die Advanced Field-Anweisung zeigt die angewendete Transformation (Maskierungsfunktion).

Sobald Sie mit dem erstellten Maskierungsjob vertraut sind, führen Sie ihn aus. In der new_classProtection Klicken Sie mit der rechten Maustaste auf new_classProtection.bat Datei und wählen Sie Ausführen als> Batch-Programm .

Der Job wird auf der Befehlszeile ausgeführt, und die maskierten Ausgabedateien können zur Überprüfung aus Ihrem Projektordner oder Dateisystem geöffnet werden. In der Tat werden nach dem Ausführen des Batch-Vorgangs alle Maskierungsaufgabenskripts und Flatfile-Ausgaben in meinem neuen Jobordner angezeigt.

Der folgende Screenshot zeigt diese auf der linken Seite, den Vorher- und Nachher-Zustand einer meiner Tabellen, PERSONS, in der Mitte und die spezifischen Aufgabenbeschreibungen in Skript- und Gliederungsform auf der rechten Seite. Sehen Sie, wie die drei klassifizierten und regelzugewiesenen Spalten in dieser Tabelle wie geplant maskiert wurden:

Sobald der Stapelmaskierungsjob ausgeführt wird, können Sie die Ergebnisse noch einmal überprüfen, bevor Sie:

  1. Laden Sie sie in Tabellen in IRI Workbench (die Ladedateien automatisch erstellen kann);
  2. Ändern Sie den Job, um Änderungen vorzunehmen; und/oder 
  3. führen Sie den Assistenten erneut aus, um die Ausgabe stattdessen in Tabellen umzuleiten.

Diese Maskierungsjobs werden auf der Befehlszeile ausgeführt und können für Datenaktualisierungen und automatische Archivierung ausgelöst oder geplant werden. Wenden Sie sich an uns, wenn Sie Fragen haben oder Hilfe zu einem Aspekt dieses End-to-End-Konfigurationsprozesses oder seiner Bereitstellung benötigen.

  1. Um die Möglichkeit falsch positiver Suchergebnisse für Kreditkarten- und Personalausweisnummern auszuschließen, können Sie während der Suche automatisch eine rechnerische Gültigkeitsprüfung durch Musterabgleichswerte durchführen. Wählen Sie ein Datenklassenvalidierungsskript aus oder erstellen Sie es, um es der Datenklassendefinition zuzuordnen.
  2. Wenn Sie FieldShield in Voracity verwenden, können Sie diese Dateien gleichzeitig oder anschließend nach dem primären Indexschlüssel der Zieltabelle sortieren, um Massenladevorgänge und allgemeine Abfragen zu beschleunigen.