sql >> Databasteknik >  >> RDS >> Database

Hur man hittar och maskerar PII i Elasticsearch

Elasticsearch är en Java-baserad sökmotor som har ett HTTP-gränssnitt och lagrar sina data i schemafria JSON-dokument. Tyvärr fortsätter en ström av kostsamma och smärtsamma intrång i personligt identifierbar information (PII) att plåga Elasticsearch-databaser online:

Om all PII eller annan känslig information i dessa DB:er var maskerad kanske lyckade hack och utvecklingskopior inte är problematiska. Syftet med IRI DarkShield är att låsa in den informationen i produktion eller test med anonymiseringsfunktioner som följer integritetslagstiftningen.

Elasticsearchs sök- och maskguide i IRI Workbench använder grafiska IDE för IRI DarkShield samma verktyg som MongoDB- och Cassandra-anslutningarna som beskrivs i den här artikeln. Den här guiden kan användas för att klassificera, lokalisera och avidentifiera eller ta bort PII och annan känslig information som finns på Elasticsearch-samlingar och för att producera sök- och granskningsresultat.

Konfigurera

Om du inte har ett Elasticsearch-kluster att ansluta till kan du enkelt skapa ett lokalt kluster genom att ladda ner Elasticsearch härifrån och följa instruktionsguiden.

För min demonstration av den här guiden använder jag ett enda index som heter kunder på ett lokalt värd kluster. Detta index lagrar grundläggande kundinformation som normalt sett skulle ses på ett konto och vara ett rikt mål för missbruk. Detta inkluderar:e-post, namn och telefonnummer:

Sök

Som med de andra datakällorna som DarkShield stöder måste du skapa en .search jobbspecifikationsfil för att definiera dina skannings- och marknadskriterier. Som du skulle göra med MongoDB eller Cassandra, välj Ny NoSQL-sökning/maskeringsjobb … från DarkShield-menyn överst på IRI Workbench-verktygsfältet. Välj en projektmapp och ange ett namn för jobbet.

På nästa sida skapar du en käll-URI:

Här anger du parametrarna för ditt Elasticsearch-kluster. Standardvärden och porten för Elasticsearch är localhost och 9200 om dessa fält lämnas tomma.

Om klustret som du ansluter till behöver ett användarnamn och lösenord anger du dessa i autentiseringssektionen. I det här exemplet använder jag host:localhost, port:9200 och klustret:Elasticsearch.

Ett användarnamn och lösenord kan också läggas till på denna sida. För enkelhetens skull har det lokala klustret inte konfigurerats med säkerhet i åtanke. Alla riktiga kluster bör ha inloggning och behörigheter aktiverade för riktiga användningsfall.

Klicka på OK för att avsluta och du kommer tillbaka till föregående sida. Skriv in det index du vill söka efter. I det här exemplet använder jag indexet kunder .

Därefter måste du ställa in en mål-URI för de maskerade resultaten. Tänk på att endast maskerade resultat från Elasticsearch endast kan skickas till Elasticsearch-mål. I det här fallet kommer jag att använda samma kund-URI som skapats tidigare men med ett annat index. Detta kommer att skapa ett nytt index med de maskerade resultaten som kommer att skapas senare i denna demonstration.

Därefter kommer du att bli ombedd att skapa en sökmatchare, som är ansvarig för att associera en dataklass med en motsvarande data (maskerings-) regel. Detta är ett nödvändigt steg eftersom ingen maskering kan appliceras utan den.

Som förklaras i artikeln om dataklassificering katalogiserar och definierar dataklasser globala kriterier för att hitta och maskera PII i strukturerade, semistrukturerade eller ostrukturerade källor för både FieldShield och DarkShield. IRI Workbench levereras med flera fördefinierade dataklasser (t.ex. namn, e-postadresser och IP-adresser, kreditkortsnummer), som finns i Fönster> Inställningar> IRI> Dataklasser och grupper . Du kan redigera dem och lägga till dina egna.

Klicka på Bläddra eller Skapa på Data Class-raden. Bläddra låter dig välja dina egna dataklasser, eller en av flera fördefinierade klasser eller grupper, inklusive e-post, telefonnummer och namn. I det här fallet inkluderar dataklassgruppen NAMES en dataklass för förnamn.

Här valde jag EMAIL-dataklassen som söker efter e-postmeddelanden i mitt Elasticsearch-index:

Nu måste en maskeringsregel tillämpas på den dataklass som har valts. Klicka på Skapa knappen för att skapa en ny dataregel, eller Bläddra för att använda någon som du kanske redan har definierat.

För e-postmeddelanden väljer jag en redigeringsfunktion:

Mer än en dataklass kan naturligtvis maskeras samtidigt. Jag lade till klasser och tilldelade en formatbevarande krypteringsfunktion till telefonnummer och en slumpmässig pseudonym (set filsökning) för personers namn:

Om några sökfilter behövs kan de läggas till på föregående sida. Filter kan användas för att hitta specifika resultat, eller för att isolera specifika fält i CSV, XML, JSON eller RDB som ska maskeras, vilket utesluter behovet av att skanna radinnehåll. Jag har dock inte angett några i det här fallet.

Klicka på Slutför när det är klart. Detta slutför guiden och skapar en .search fil som innehåller DarkShield-konfigurationsdetaljerna för att utföra sök- och/eller maskeringsjobben.

Obs! Om du använder standardklustret med lokalt värd som det i det här exemplet, se till att klustret är på, eftersom alla sökningar eller maskeringsjobb kommer att misslyckas annars. Du kan kontrollera om servern körs genom att öppna en webbläsare och skriva "http://localhost:9200/" i adressfältet.

Sökning och maskering

DarkShield stöder sökning och maskering som separata eller samtidiga operationer. I det här fallet vill jag söka först och se vad jag har hittat innan jag maskerar det. Det beror på att (större) maskeringsjobb kan ta tid, och jag kanske vill finslipa mina sökmetoder och verifiera dem igen.

För att göra detta, högerklicka på .search fil och kör filen som ett sökjobb. Detta skapar en .darkdata med resultaten av sökningen som just utfördes. Artefakten visas i Workbench så här:

Efter att ha kontrollerat resultaten kan du köra .darkdata fil som en maskering jobb att sanera samlingen med redaktionsfunktionen som jag angav.

De tidigare sökresultaten kommer att maskeras på målplatsen. För att verifiera detta kan du utföra en sökning igen och se att data nu har "DarkShield'ed" som specificerats; d.v.s. e-postmeddelanden redigerats, förnamn pseudonymiserade och telefonnummer maskerade med formatbevarande kryptering:

Om du behöver hjälp med att skydda dina Elasticsearch-samlingar genom att maskera deras data i vila via detta DarkShield-gränssnitt i IRI Workbench eller dess CLI, eller någon semi-/ostrukturerad data under flygning via DarkShields REST API, skicka ett e-postmeddelande till [email protected].


  1. FEL:behörighet nekades för sekvensen city_id_seq med Postgres

  2. Djupdykning i NoSQL:En komplett lista över NoSQL-databaser

  3. Använd OBJECT_NAME() för att hämta ett objekts namn från dess object_id i SQL Server

  4. Hur man hittar när MySQL/MariaDB-servern startades