sql >> Database >  >> RDS >> Database

Hoe u PII classificeert, zoekt en maskeert in databases...

Zodra ze hun databaseverbindingen hebben gemaakt, hebben IRI FieldShield- en IRI DarkShield-gebruikers allebei een breed scala aan opties voor het classificeren, vinden en de-identificeren van gevoelige gegevens in een of meer schema's. Ze kunnen nu al deze doelen tegelijk bereiken via op regels gebaseerde faciliteiten in IRI Workbench.

Dit artikel demonstreert stapsgewijs het gebruik van gegevensklassen voor het vinden en maskeren van PII in een klein relationeel databaseschema met behulp van FieldShield, hoewel u deze stappen kunt uitbreiden naar grotere of meer schema's. Als uw database semi- of ongestructureerde kolommen bevat, raadpleegt u dit artikel over DarkShield classify-search-mask procedures voor RDB's, of dit artikel voor NoSQL DB's.

In de gestructureerde RDB-bewerkingen van de FieldShield-kolom worden gegevens doorgaans schema voor schema geclassificeerd, maar globaal gemaskeerd met behulp van uw opgeslagen regels, ad hoc of volgens schema voor updates.

Met de regels voor gegevensmaskering die u definieert, kunt u de functie selecteren die het beste bij elke gegevensklasse past en deze consistent toepassen. Het produceren van hetzelfde unieke cijfertekstresultaat voor elke unieke originele leesbare tekstwaarde - in elke tabel of elk bestand - behoudt ook de referentiële integriteit; joins werken bijvoorbeeld nog steeds nadat de gegevens zijn gemaskeerd.

In dit voorbeeld wordt een voorbeeld gebruikt van de Oracle-tabellen in het SCOTT-schema in onze VM-sandbox. Om verbinding te maken met een andere database, moet u het volgende configureren:

  • Het DTP-verbindingsprofiel voor uw database in IRI Workbench met JDBC
  • De ODBC DSN voor die bron-DB

Voor informatie over het verbinden van uw databases voor gebruik met FieldShield, zie DB Setup hier.

De stappen die ik zal beschrijven zijn:

  1. Setup – Definieer gegevensklassen en maskeringsregels
  2. Scannen – Voer de Schema Data Class Search Wizard uit
  3. Bekijken en aanpassen – Editor voor gegevensklassenbibliotheek
  4. Masker – Voer de Data Class Database Masking Wizard uit

Er is hier ook een videoserie met vergelijkbare stapsgewijze instructies.

Setup – Definieer dataklassen en maskeringsregels

Om dataklassen met regels en wizards te gebruiken, moeten de dataklassen eerst worden gedefinieerd en opgeslagen. Dit kan via Venster> Voorkeuren> IRI> Gegevensklassen en -groepen . Zie dit artikel over gegevensclassificatie in IRI Workbench voor een diepere duik. Er zijn ook videohandleidingen voor het instellen van gegevensclassificatie en maskeringsregels.

De gegevensklassen kunnen overeenkomen met kolommen, hetzij op kolomnaam (klasse EMAIL komt overeen met een kolom met de naam EMAIL) of op basis van de gegevens in de kolom. Dit voorbeeld heeft klassen die een reguliere expressie of een setbestand hebben. Een set-bestand bevat items die dienen als een woordenboek om op te zoeken.

Bevestig op die voorkeurspagina dat deze gegevensklassen bestaan:

  • Klasse CREDIT_CARD die gebruikmaakt van \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 die gebruikmaakt van \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
  • Klasse PHONE_US die gebruikmaakt van ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?)? )([2-9]\d{2})([ .-]?)(\d{4})([ #eExXtT]*)(\d{2,6})?&
  • Klasse PIN_US die gebruikmaakt van \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
  • Klasse LAST_NAME die setbestand C:/IRI/cosort100/sets/names/names_last.set gebruikt

Als dit niet het geval is, klikt u op Standaardwaarden herstellen .

Bovenaan de voorkeurenpagina staat een invoer Overeenkomende drempel . Dit vertegenwoordigt het percentage overeenkomsten dat nodig is om aan een kolom een ​​gegevensklasse toe te wijzen. De schema-zoekopdracht scant 4K-gegevensblokken totdat overeenkomsten deze drempel bereiken. Als het deze drempel nooit bereikt, wordt er geen dataklasse toegewezen.

Omdat ik weet dat ik kolommen heb die achternaam bevatten die misschien niet "LAATNAAM" worden genoemd of die misschien zelfs geen overeenkomende gegevens in het setbestand hebben, kan ik een reguliere expressie gebruiken om mijn gegevensklasse te matchen om kolomnamen leuk te vinden. Er kan bijvoorbeeld een kolom zijn met de naam LNAME of LASTNAME.

Als u de gegevensklasse LAST_NAME wilt bewerken, klikt u op het item LAST_NAME in de weergave Gegevensklassen en klikt u op Bewerken . Verander de naam in L(AST)?[_-]?NAME (underscore en streepje tussen haakjes). Klik op OK . Klik op Toepassen en sluiten .

U moet vooraf bepalen hoe u wilt dat de waarden in elke gegevensklasse worden gemaskeerd (d.w.z. hun doelkolomindeling), zodat u die regels vervolgens kunt definiëren. In ons voorbeeld zijn er regels voor redactie, formaatbehoudende codering en pseudonimisering. Elke regel hoeft maar één keer te worden gedefinieerd, in het IRI-menu.

Als u deze regel in dit voorbeeld wilt definiëren, volgt u deze stappen:

Regel 1 – Redactie (voor burgerservicenummers)

  1. Selecteer IRI-menu> Nieuwe regel .
  2. Selecteer Veldregels en klik op Volgende .
  3. Selecteer Bewerkingsfunctie , gebruik SSN voor het begin van de regelnaam zodat deze SSNRedactionRule leest, en klik op Volgende .
  4. Selecteer het Define Mask Radio knop. Typ 1 in Startpositie en 5 over Lengte . Klik op Toevoegen aan tabel en Voltooien .

Regel 2 – Versleuteling (voor creditcardrekeningnummers, e-mailadressen en telefoonnummers)

  1. Selecteer IRI-menu> Nieuwe regel .
  2. Selecteer Veldregels en klik op Volgende .
  3. Selecteer Versleutelings- en ontsleutelingsfuncties en klik op Volgende . Wijzig de naam van de regel niet.
  4. Selecteer de enc_fp_aes256_alphanum optie aan de linkerkant. Voer geheim in voor de Wachtzin . Zie deze pagina over opties voor het beheer van encryptiesleutels.
  5. Klik op Voltooien .

Regel 3 – Pseudonimisering (voor achternamen)

  1. Selecteer IRI-menu> Nieuwe regel .
  2. Selecteer Veldregels en klik op Volgende .
  3. Selecteer Pseudoniemvervanging , hernoem het LNamePseudonymRule en klik op Volgende .
  4. Klik op Uw eigen pseudoniemlijst gebruiken , en Bladeren naar het opzoekbestand, C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
  5. Selecteer Willekeurige trekking uit pseudoniemlijst gebruiken . Houd er rekening mee dat herstelbare pseudonimisering ook mogelijk is, maar gecompliceerder is vanwege mogelijke wijzigingen in uw brongegevens.
  6. Klik op Voltooien .

Nu onze maskeringsregels voor gegevensklassen zijn gedefinieerd, kunnen we zoek- en maskeringsbewerkingen uitvoeren om de gegevens wereldwijd te vinden en te corrigeren in een of meer databaseschema's.

Scannen – Voer de Schema Data Class Search Wizard uit

Gebruik de Schema Data Class Search Wizard om alle gegevens te vinden die voldoen aan onze klassedefinities in alle tabellen van een schema. Dit produceert een rapport van elke tabel en kolom met de vooraf geclassificeerde PII erin, maakt een gegevensklassebestand aan dat specifiek is voor uw project en opent een formuliereditor voor dat bestand. In dat bewerkingsdialoogvenster (onze volgende stap hierna), kunt u de definities van uw gegevensklasse en maskeringsregel bekijken en wijzigen voordat u in de laatste stap overgaat op globale gegevensmaskering.

U kunt de wizard uitvoeren vanuit de menugroep Data Discovery op de IRI Workbench-werkbalk. U kunt de zoekwizard in plaats daarvan ook rechtstreeks vanuit de Data Source Explorer uitvoeren om de wizard vooraf te vullen met een geselecteerd schema. Klik met de rechtermuisknop op het SCOTT-schema in de Data Source Explorer (DSE) en selecteer IRI> Schema Data Class Search .

Voer op de instellingenpagina van de zoekwizard de locatie in om het gegevensklassebestand op te slaan. Er kan slechts één van dit bestandstype in elk project zijn, vandaar de alleen-lezen status van het naamveld. Laat de standaardinstellingen zoals ze zijn. Klik op Volgende .

De invoerpagina laat zien dat één schema is geselecteerd. Klik op Volgende . Op de volgende pagina kunt u de doorzochte kolommen op gegevenstype beperken. Voeg NUMERIEK toe en klik op Volgende .

Op de pagina Items uitsluiten kunt u tabellen of kolommen uitsluiten tijdens de scan. Klik op Volgende .

Op de pagina met gegevensklassen kunt u de gegevensklassen filteren die tijdens de scan worden gebruikt. Selecteer alleen CREDIT_CARD , EMAIL , L(AST)?[_-]?NAME, PHONE_US , en PIN_US . Klik op Voltooien .

Samen met rapporten creëert (of voegt) dit een gegevensklassenbibliotheek toe met toewijzingen tussen bronkolommen en gegevensklassen. Met de formuliereditor die wordt geopend, kunt u regels aan de resultaten toewijzen.

Deze zoekopdracht door 46 tabellen leverde 18 kolomovereenkomsten op, waarvan ik weet dat ze grotendeels zijn, maar niet volledig:

Ik weet dat een paar kolommen niet overeenkwamen omdat de tabellen leeg waren of namen die geen overeenkomsten vonden in de ingestelde bestanden. In de volgende stap kan ik die missers aanpakken en mijn maskeerregels per tafel bevestigen.

Bekijken en aanpassen – Editor voor gegevensklassenbibliotheek

Nu de zoekresultaten zijn geopend in het formulierbewerkingsvenster van de gegevensklassebibliotheek, kunt u kolomregels op tabelniveau bekijken en wijzigen, en lege tabellen in het schema verwijderen met kolomnamen die overeenkomen met uw gegevensklassenamen. Dit alles helpt u te bevestigen dat u correct bent ingesteld voor de bulkmaskeringstaak die moet volgen.

Houd er rekening mee dat deze weergave ook zoekresultaten voor platte bestanden (directorygegevensklasse) ondersteunt, samen met uw databasezoekresultaten. Door die resultaten toe te voegen aan uw gegevensklassebibliotheek, is het gemakkelijker om uw maskeringsfuncties (regels) hetzelfde te houden voor verschillende gegevensbronnen. Dat helpt de referentiële integriteit te behouden en de consistentie van testgegevens te behouden in meer gedistribueerde applicatieomgevingen.

Klik op een gegevensbron (tabel) om details over die bron en een voorbeeld van de gegevens erin weer te geven. Als er een overeenkomst met een gegevensklasse is gemaakt, toont die kolom die klasse en hoe deze is gekoppeld.

In het geval van mijn PERSONEN-tabel hieronder, kunt u het volgende zien:alle SSN-kolomwaarden kwamen overeen met het RegEx-patroon van mijn PIN_US-gegevensklasse, en de LASTNAME- en de CREDIT_CARD-kolommen kwamen overeen met hun gegevensklassenamen, waardoor die kolomscans niet nodig waren.

Bewerkingen van de dataklasse-toewijzingen kunnen worden gemaakt door ofwel de dataklasse te wijzigen via de vervolgkeuzelijst, of de kolom te deselecteren om de toewijzing volledig te verwijderen. Als een tabel leeg is, wijst deze mogelijk niet alle gewenste toewijzingen toe. Er zijn drie manieren om dit aan te pakken:

  1. U kunt de tabellen toevoegen aan de uitsluitingspagina in de classificatiewizard hierboven, zodat ze niet worden toegevoegd aan de gegevensklassenbibliotheek
  2. Als de tabel in de toekomst gegevens bevat, wijst u de gegevensklassen hier handmatig toe. Dan ofwel
    • Deselecteer ze in de maskeerwizard
    • Laat ze staan ​​en de maskeerwizard maakt taakscripts die wel worden uitgevoerd maar niet worden gemaskeerd
  3. of verwijder de gegevensbron uit de gegevensklassenbibliotheek

Selecteer in dit voorbeeld de volgende gegevensbronnen en klik op Verwijderen omdat ze leeg zijn of niet gemaskeerd hoeven te worden:

   SCOTT.DEMO_ROWGEN
   SCOTT.DM_EMPLOYEES
   SCOTT.PATIENT_RECORD_ENCRYPTED

Er moet voor worden gezorgd dat de resultaten in de gegevensklassebibliotheek worden geverifieerd voordat ze worden gemaskeerd. Soms worden overeenkomsten gemist omdat de gegevens niet geldig zijn of omdat de gegevensklasse-matcher moet worden gewijzigd. Het is ook mogelijk dat er valse positieven optreden.

In dit voorbeeld moet een gegevensklasse handmatig worden toegewezen omdat er ongeldige indelingen voor e-mailadressen en Amerikaanse telefoonnummers zijn, maar we willen die kolommen toch maskeren. We kunnen deze kolom selecteren en classificeren als:

   SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US

Zodra de resultaten zijn beoordeeld en indien nodig gewijzigd, klikt u op de gegevensklassen in de bibliotheek aan de linkerkant om standaardregels toe te wijzen. Hiermee kunt u de regels aan alle bronnen toewijzen door gewoon een standaardregel aan een klasse toe te wijzen.

In dit voorbeeld heb ik mijn maskeringsregels als volgt toegewezen aan de gegevensklassen in de bibliotheek:

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

U kunt controleren of uw globale regeltoewijzingen volledig en correct zijn doorgevoerd in de gegevensbronnen door de maskeringsregels in elk ervan te bekijken. In de SCOTT.PERSONS-tabel die hierboven voor het eerst met regels is weergegeven, hebben we nu bijvoorbeeld:

Als een kolom in een bepaalde tabel een regel mist of een andere regel nodig heeft, kan die regel worden toegevoegd of gewijzigd nadat de standaardregels zijn toegepast door ze in elke gegevensbron aan te pakken.

Masker – Voer de Data Class Database Masking Wizard uit

Nadat u hebt geverifieerd dat de juiste maskeerregels zijn toegewezen aan uw dataklassen, bent u klaar om ze wereldwijd toe te passen.

Klik met de rechtermuisknop op de iriLibrary.dataclass object in uw projectmap in uw IRI Workbench Project Explorer-structuur en selecteer IRI> Nieuwe dataklasse-databasemaskertaak . Controleer op de eerste pagina van de wizard of de projectmap de plaats is waar uw gegevensklasse en regelbibliotheek zijn opgeslagen, en geef de taak een naam. Selecteer de Samenvattingspagina weergeven om de details van de baan te zien.

Met de wizard kunt u de gemaskeerde resultaten bijwerken in de Same brontabellen (om ze statisch te maskeren), naar Anders doeltabellen, of naar Platte bestanden (aanbevolen), zodat u eerst de resultaten kunt valideren en ze naar doelen kunt laden. Wijzig de Uitvoer naar Platte bestanden en klik op Volgende .

Laat op de pagina Gegevensklassefilter alle gegevensklassen geselecteerd. Klik op Volgende . Laat op de pagina Gegevensbronnen alle items geselecteerd. Als er tabellen waren waarop u de taak niet wilde uitvoeren, zou u ze hier deselecteren.

Omdat ik ervoor heb gekozen om het overzichtsscherm weer te geven, kan ik de taak verifiëren:

voordat u op Voltooien . klikt .

De scripts worden vervolgens gemaakt en een stroomdiagram wordt geopend om de hele taak te illustreren, die ook is geserialiseerd als een Windows- (of Unix) batchbestand. Elke tabel met een gemaskeerde kolom wordt weergegeven door een bruin transformatietoewijzingsblok, dat is geserialiseerd in een taakscript.

Bekijk de maskeerbewerkingen door te dubbelklikken op de transformatietoewijzingsblokken en de oranje lijnen naar de doelen te onderzoeken. Deze duiden kolommen aan die worden gewijzigd van invoer.

Klik in de velden rechts van de oranje lijn en bekijk de eigenschappenweergave onderaan het scherm. De instructie Advanced Field toont de toegepaste transformatie (maskeringsfunctie).

Als u eenmaal vertrouwd bent met de maskeertaak die is gebouwd, voert u deze uit. In de new_classProtection map, klik met de rechtermuisknop op de new_classProtection.bat bestand en selecteer Uitvoeren als> Batchprogramma .

De taak wordt uitgevoerd op de opdrachtregel en de gemaskeerde uitvoerbestanden kunnen worden geopend voor beoordeling vanuit uw projectmap of bestandssysteem. Inderdaad, nadat de batchbewerking is uitgevoerd, worden alle maskeertaakscripts en flat-file-uitvoer weergegeven in mijn nieuwe taakmap.

De onderstaande schermafbeelding toont die aan de linkerkant, de voor- en na-status van een van mijn tabellen, PERSONEN, in het midden, en de specifieke taakverklaringen in script- en overzichtsvorm aan de rechterkant. Bekijk hoe de drie kolommen die in deze tabel zijn geclassificeerd en toegewezen aan regels zijn gemaskeerd zoals gepland:

Zodra de batch-maskeringstaak is uitgevoerd, kunt u de resultaten nogmaals controleren voordat u:

  1. laad ze in tabellen in IRI Workbench (die automatisch loader-bestanden kan maken);
  2. de taak aanpassen om wijzigingen aan te brengen; en/of, 
  3. voer de wizard opnieuw uit om de uitvoer naar tabellen te sturen.

Deze maskeertaken worden uitgevoerd op de opdrachtregel en kunnen worden geactiveerd of gepland voor gegevensvernieuwing en automatische archivering. Neem contact op als je vragen hebt of hulp nodig hebt bij enig aspect van dit end-to-end configuratieproces of de implementatie ervan.

  1. Om de mogelijkheid van fout-positieve zoekresultaten op creditcard- en nationale ID-nummers uit te sluiten, kunt u tijdens zoekopdrachten automatisch een validiteitscontrole uitvoeren op basis van patroonovereenkomsten. Selecteer of maak een validatiescript voor gegevensklassen om te koppelen aan de definitie van gegevensklassen.
  2. Als je FieldShield in Voracity gebruikt, kun je die bestanden tegelijkertijd of later sorteren op de primaire indexsleutel van de doeltabel om bulkladingen en veelvoorkomende zoekopdrachten te versnellen.

  1. Converteer 'datetimeoffset' naar 'datetime' in SQL Server (T-SQL-voorbeelden)

  2. Hoe Oracle-schemagrootte weer te geven met SQL-query?

  3. Minuten aftrekken van een datetime-waarde in MariaDB

  4. Fout bij het bulksgewijs laden van gegevensconversie (type komt niet overeen of ongeldig teken voor de opgegeven codetabel) voor rij 1, kolom 4 (jaar)