sql >> Database >  >> NoSQL >> MongoDB

PII maskeren in MongoDB, Cassandra en Elasticsearch met DarkShield:...

Dit artikel demonstreert het gebruik van IRI DarkShield om persoonlijk identificeerbare informatie (PII) en andere gevoelige gegevens in MongoDB-, Cassandra- en Elasticsearch-databases te identificeren en te herstellen (maskeren). Hoewel deze stappen voornamelijk gericht zijn op het vinden en afschermen van gegevens in MongoDB-verzamelingen, kunnen dezelfde stappen ook worden gebruikt voor gegevens in Cassandra-tabellen. Zie ook dit artikel op Elasticsearch.

Merk op dat dit artikel de vierde methode vertegenwoordigt die IRI ondersteunt voor het maskeren van gegevens in MongoDB, en de tweede methode voor Cassandra. Die eerdere en nog steeds ondersteunde methoden zijn gebaseerd op gestructureerde gegevensontdekking en de-identificatie via IRI FieldShield, terwijl de DarkShield-methode tekstuele gegevens in zowel gestructureerde als ongestructureerde collecties ondersteunt. Hoewel DarkShield en FieldShield stand-alone IRI-gegevensmaskeringsproducten zijn, zijn beide opgenomen in het IRI Voracity-gegevensbeheerplatform.

De nieuwste aanpak maakt gebruik van enkele elementen van Gegevensclassificatie , een geïntegreerd paradigma voor het catalogiseren van gegevens voor het definiëren van de zoekmethoden die worden gebruikt voor het vinden van PII, onafhankelijk van de bron van de gegevens. Hoewel dit artikel een kleine inleiding biedt tot gegevensclassificatie tijdens stap 1, vindt u het misschien nuttig om te lezen hoe gegevensclassificatie past in onze uniforme benadering van het uitvoeren van zoekopdrachten. Voor meer informatie over gegevensclassificatie in de IRI Workbench-frontend voor DarkShield et al., lees dit artikel voordat u verdergaat.

De identificatie en herstel van PII met IRI DarkShield omvat 4 algemene stappen:

(Optionele) Stap – Registreer uw gegevensbron(nen)

In deze (optionele) stap worden gegevensbronnen voor een Mongo-database, Cassandra-sleutelruimte of Elasticsearch-cluster geregistreerd. Hierdoor zijn databronnen herbruikbaar. Als gevolg hiervan is deze stap optioneel als de gewenste gegevensbron al in het register bestaat, of als u van plan bent deze vanuit de wizard te definiëren.

Stap 1 – Specificeer zoekparameters

Hier worden alle aspecten van een zoekopdracht gekozen. Eerst worden een bron- en doelverzameling/tabel opgezet op basis van de gegevensverbinding die is opgegeven in het register of is gemaakt in de wizard. Vervolgens kunt u met behulp van Search Matchers de zoek- en herstelcriteria voor uw gegevens specificeren naar het soort informatie waarnaar moet worden gezocht en hoe die informatie moet worden hersteld. Het resultaat van deze stap is een .zoekopdracht bestand.

Stap 2 – Voer een zoekopdracht uit

Een zoekopdracht kan worden uitgevoerd vanuit een .search het dossier. Het resultaat is een .darkdata bestand met annotaties van geïdentificeerde PII.

Stap 3 – Herstel (maskering)

Herstel kan worden gedaan vanuit een .darkdata het dossier. Elke geïdentificeerde PII wordt hersteld op de manier die is opgegeven tijdens het maken van de zoekopdracht.

(Optioneel) Stap – Registreer uw gegevensbronnen

Als eerste vereiste moet u de verbindingen met uw online gegevensbronnen (en doelen) registreren in het URL-verbindingsregister, dat zich bevindt in de Voorkeuren> IRI> URL-verbindingsregister dialoogvenster in IRI Workbench.

Alle URL-verbindingen, inclusief URI-verbindingsreeksen voor MongoDB, Cassandra en Elasticsearch, kunnen worden opgeslagen. Hierdoor kunnen de URL's, authenticatiegegevens en eventuele aanvullende parameters worden opgeslagen en opgeslagen door IRI Workbench voor toekomstig gebruik.

Stap 1 – Specificeer zoekparameters (Creëer .Zoekbestand)

Selecteer in de IRI Workbench IDE voor DarkShield New Database Discovery Job in het DarkShield-menu. Selecteer een projectmap en voer een naam in voor de taak:

Een bron en doel specificeren

Alle Mongo-, Cassandra- of Elasticsearch-URL's die eerder zijn gemaakt en opgeslagen in het register zijn toegankelijk via de URI vervolgkeuzelijst voor zowel de bron- als doelselectors. De naam van de bijbehorende MongoDB-verzameling, Cassandra-tabel of Elasticsearch-index moet ook worden ingevoerd:

Een nieuwe URI kan ook worden gemaakt door op de Nieuwe . te drukken knop. Dit opent het dialoogvenster URL-verbindingsdetails. Voer een naam in voor de verbinding, selecteer het gewenste schema, voer de host in en voer de database in. Als er geen poort aanwezig is, wordt de standaardpoort voor het schema aangenomen.

Een gebruikersnaam en wachtwoord kunnen ook worden opgegeven als de database autorisatie vereist. Alle nieuwe URL-verbindingen worden opgeslagen in het URL-verbindingsregister en kunnen opnieuw als doel worden gebruikt.

Nadat een bron is opgegeven, kunt u doorgaan naar de volgende pagina om een ​​doel-URI te selecteren of te maken. Het schema van de doel-URI is beperkt tot de geselecteerde bron-URI, dus een MongoDB-bron kan alleen naar een ander MongoDB-doel worden verzonden, en op dezelfde manier voor Cassandra of Elasticsearch.

Wanneer een maskeertaak wordt uitgevoerd, worden alle rijen in de bron toegevoegd aan het doel en worden alle rijen met overeenkomende sleutels overschreven. Zorg er voor Cassandra voor dat het doeltabelschema compatibel is met gegevens uit de brontabel.

Zoekmatchers toevoegen

Nadat zowel een bron als een doel zijn opgegeven, kunt u naar de volgende pagina gaan om zoekovereenkomsten toe te voegen. Selecteer een bibliotheeklocatie die alle Patronen- of Regelbibliotheken bevat die u wilt gebruiken en klik op Toevoegen om een ​​nieuwe Search Matcher toe te voegen.

KeyNameMatcher

De eerste Search Matcher die we zullen maken, zal worden gebruikt om de volledige waarde te matchen die overeenkomt met een "naam" -sleutel die zich in willekeurig geneste json-structuren bevindt en een algoritme voor codering met behoud van indeling toe te passen om het te maskeren. We kunnen dit bereiken door een JSON-padfilter "$..name" te maken. Meer informatie over JSON-paden vindt u hier.

Aangezien MongoDB-verzamelingen, Cassandra-tabellen en Elasticsearch-indexen door DarkShield worden geparseerd als json-documenten, kan het filter op beide worden toegepast om elke waarde die overeenkomt met een "naam" -sleutel te maskeren.

Om de inhoud van de gefilterde gegevens te matchen, moeten we een nieuwe Data Class maken . Een gegevensklasse vertegenwoordigt PII en de bijbehorende matchers die worden gebruikt om deze te identificeren. Deze matchers kunnen elke combinatie bevatten van:

  • Reguliere expressiepatronen
  • Zoekopdrachten in bestandswoordenboek instellen
  • Benoemde entiteitsherkenningsmodellen
  • Bounding Box Matchers (alleen afbeeldingen)
  • Gezichtsherkenning (alleen afbeeldingen)

U kunt gegevensklassen definiëren in de wizard of door het openen van de Dataklassen en groepen pagina in de IRI-voorkeuren . De gegevensklassen die in de voorkeuren zijn gedefinieerd, kunnen in zowel FieldShield als DarkShield worden gebruikt voor andere gegevensbronnen, inclusief gestructureerde en ongestructureerde gegevens.

We kunnen een bijbehorende ALLES . maken Gegevensklasse voor deze matcher die overeenkomt met de volledige inhoud van de waarde, omdat we er redelijk zeker van zijn dat we alleen namen in de waarden zullen vinden. U kunt zoekacties voor bestanden gebruiken die een namenwoordenboek bevatten als u niet zeker bent van de inhoud van uw "naam"-sleutels of als u alleen een subset van namen wilt maskeren.

Voor de Regelnaam veld van de KeyNameMatcher, kunnen we een bestaande gegevensregel selecteren uit de bibliotheeklocatie die we hebben geselecteerd, of een nieuwe regel maken die gebruikmaakt van Format Preserving Encryption (FPE), bijvoorbeeld:

Als u een FPE-regel wilt maken, klikt u op Maken naast de Regelnaam veld, selecteer Encryptie- of Decryptiefuncties van de gegevensregelwizard die verschijnt:

Geef een geschikte wachtwoordzin op om als uw coderings-/decoderingssleutel te dienen. Dit kan een expliciete tekenreeks, omgevingsvariabele of de naam van een beveiligd bestand zijn dat die tekenreeks bevat.

EmailsMatcher

Nadat we het vorige dialoogvenster hebben voltooid en onze nieuwe KeyNameMatcher hebben gemaakt, kunnen we nog een Search Matcher voor e-mailadressen toevoegen. Klik gewoon op Toevoegen om nog een Search Matcher te maken om aan de lijst toe te voegen.

De IRI-werkbank wordt geleverd met een EMAIL Gegevensklasse die kan worden geselecteerd door op Bladeren . te klikken naast de Naam gegevensklasse veld en selecteer EMAIL uit het vervolgkeuzemenu.

Voor de gegevensregel kunt u de FPE-regel selecteren die u voor de vorige Search Matcher heeft gemaakt door op Bladeren te klikken naast de Regelnaam veld, of maak een nieuwe aan met een van de meerdere beschikbare maskeerfuncties. Ik heb een eenvoudige functie voor gegevensredactie gemaakt die de hele e-mail vervangt door sterretjes.

Uw Search Matcher kan nu aan de lijst worden toegevoegd door op OK . te klikken

NamesMatcher

Onze laatste Search Matcher wordt gebruikt om namen te vinden in vrij vloeiende tekst. Hiervoor gebruiken we Named Entity Recognition (NER) om namen te vinden met behulp van de context van de zin. Om te beginnen, moeten we op Toevoegen . klikken om een ​​nieuwe Search Matcher te maken en een nieuwe gegevensklasse te maken met de naam NAMES_NER:

Een NAMES_NER . maken Data Class, we moeten eerst het Person Name Finder-model downloaden, en-ner-person.bin , uit de OpenNLP sourceforge-repository. Klik vervolgens op Toevoegen om een ​​nieuwe matcher toe te voegen, selecteer NER Model uit de vervolgkeuzelijst. Klik op Bladeren en navigeer naar de locatie van het gedownloade model; bijvoorbeeld:

Nadat u de nieuwe gegevensklasse hebt gemaakt, klikt u op OK en selecteer de FPE-gegevensregel die u eerder hebt gedefinieerd om het maken van de Search Matcher te voltooien:

Merk op dat onze NamesMatcher en KeyNameMatcher kan overlappende overeenkomsten hebben. Als dit gebeurt, selecteert DarkShield de langst beschikbare overeenkomst en verwijdert alle andere overlappende overeenkomsten. Op die manier hoeft u zich geen zorgen te maken dat DarkShield een maskeerfunctie toepast op reeds gemaskeerde waarden.

Zodra u alle gewenste matchers heeft toegevoegd, klikt u op Voltooien om een ​​.search te genereren bestand.

De gegenereerde .search bestand kan worden geïnspecteerd om de details over een zoekopdracht te tonen. Dit omvat de bron- en doel-URI's en informatie over alle matchers.

Stap 2 – Voer een zoekopdracht uit (maak een .Darkdata bestand)

De Dark Data Discovery-taak voltooien wizard genereert een nieuwe .zoekopdracht configuratiebestand. Dat bestand bevat de opties die we hebben geselecteerd, inclusief de bron en het doel van onze gegevens, en de Search Matchers die worden gebruikt om PII te taggen voor ontdekking, levering, verwijdering en/of de-identificatie.

Om te beginnen met zoeken, klikt u met de rechtermuisknop op de .search bestand, selecteer Uitvoeren als, en kies een van de IRI Search Job of IRI zoek- en hersteltaak .

Zoeken voert alleen een zoekopdracht uit, terwijl Zoeken en herstellen zal ook proberen om geïdentificeerde gegevens te maskeren (of te verwijderen). Beide zullen een .darkdata . genereren bestand dat alle relevante gegevens identificeert.

De bron die ik gebruikte was gevuld met willekeurig gegenereerde waarden, dus het kan geen kwaad om de gegenereerde .darkdata te delen bestand hier. Bij het verwerken van werkelijk gevoelige informatie moeten gebruikers echter de .darkdata . verzekeren bestand is niet zichtbaar en wordt veilig gearchiveerd of verwijderd na voltooiing van het herstel om PII-lekkage te voorkomen. IRI zal een quarantaine-optie toevoegen voor het opslaan van de .darkdata bestand en bijbehorende zoekartefacten op een veilige locatie; neem contact op met [email protected] voor details over deze geplande functie.

Stap 3 – Sanering (maskering)

Nogmaals, gegevensmaskering of verwijdering kan worden uitgevoerd tijdens zoekbewerkingen via de Zoeken en herstellen optie in de Dark Data Discovery-wizard. Als u echter alleen geïdentificeerde informatie wilt onderzoeken en deze later wilt herstellen, voert u de maskeertaken uit vanuit de .darkdata bestand geproduceerd in de zoekfunctie (stap 2) op deze manier: 

Klik met de rechtermuisknop op de .darkdata bestand, muis over Uitvoeren als en klik op IRI Remediate Job . Zodra de taak is uitgevoerd, zouden de herstelde gegevens in de doeldatabase moeten verschijnen.

Hier is een voorbeeld van een voor en na van een kleine MongoDB-databaseverzameling met behulp van de Workbench-opdrachtprompt om toegang te krijgen tot de lokale Mongo-server:

CONCLUSIE

In dit artikel hebben we nieuwe IRI-mogelijkheden gedemonstreerd om toegang te krijgen tot ongestructureerde gegevens in Mongo-databases, Cassandra-sleutelruimten en Elasticsearch-clusters met behulp van verschillende Search Matchers in IRI DarkShield. U kunt de gegenereerde .darkdata . controleren model om de zoekresultaten te zien die zijn gevonden en hersteld, en controleer uw database om de bijgewerkte tabellen/verzamelingen te zien.

  1. Als PII is ingesloten in binaire objecten binnen uw MongoDB-, Cassandra-, Elasticsearch-collecties, kunnen we helpen bij het automatiseren van hun extractie naar zelfstandige bestanden voor DarkShield-zoek-/maskerbewerkingen en hun herimport.
  2. De IRI Workbench IDE, gebouwd op Eclipse™,  vormt de front-end voor alle FieldShield, DarkShield en gerelateerde gegevensmaskering — en bredere mogelijkheden voor gegevensverwerking — in het IRI Voracity-platform.
  3. Het URL-verbindingsregister wordt gebruikt voor het configureren en opslaan van op URL's gebaseerde gegevensbronnen die worden gebruikt in DarkShield-zoek-/masker- en CoSort/SortCL (Voracity) ETL-bewerkingen; bijv. HDFS, Kafka, S3-buckets, MongoDB, S/FTP. Dit register is vergelijkbaar, maar niet identiek, aan het register voor gegevensverbindingen in IRI Workbench voor relationele databasebronnen waarbij ODBC-DSN's worden overbrugd naar overeenkomstige JDBC-verbindingsprofielen ten behoeve van jobwizards die gebruikmaken van beide verbindingen.
  4. Een Search Matcher is een koppeling tussen een Data Class , die wordt gebruikt om de zoekmethode voor het vinden en classificeren van PII te definiëren, en een Data Rule die wordt toegepast op elk exemplaar van de gegevensklasse die in de verzameling of tabel wordt gevonden. Bovendien kunt u met Search Matchers filters definiëren die kunnen worden gebruikt om het bereik van de zoekopdracht te verkleinen. Dit is met name handig in Mongo-verzamelingen, Cassandra-tabellen en Elasticsearch-indexen, omdat de sleutelnaam een ​​indicatie kan zijn van de PII die is opgeslagen in de corresponderende waarde.

  1. MySQL naar MongoDB - Een cheatsheet voor beheerders

  2. Een beheerdersgebied creëren in vijf minuten met AdminBro, express, mongoDB, mongoose

  3. 'process.nextTick(function() { throw err; })' - Undefined is geen functie (mongodb/mongoose)

  4. MongoDB:zoek subdocument in parameters voor matrixovereenkomst