Hoe anonimiseer je testdata?

Wat is datamaskering? Waar moet je beginnen? Waar moet je rekening mee houden?

Bij het anonimiseren van testdata gaat erom dat je de data aanpast op zo’n manier dat het bruikbaar blijft voor testwerkzaamheden, maar dat het onmogelijk wordt om personen te identificeren. In dit artikel bespreken we de basics van data-anonimisering en wat je kunt doen om vandaag al je niet-productie omgevingen kunt maskeren.

Inzicht in je data

Het eerste wat je zou moeten doen is vaststellen of je database überhaupt persoonlijke gegevens bevat of niet. Daarvoor heb je inzicht in je data nodig. Als blijkt dat je database privacy gevoelige informatie bevat, hoe gevoelig is deze data? De gevoeligheid en de bijbehorende restricties verschillen van land tot land. Een naam is bijvoorbeeld niet zo gevoelig als iemands adres. De data op zichzelf is niet per se privacygevoelig, het is de zogenaamde characteristic of descriptive data die het gevoelig maakt. Bijvoorbeeld: of iemand een ziekte heeft, of een schuld van €500.000 heeft maakt de data waardevol en dus privacygevoelig. Wetende dat iemand Jan de Boer heet en in een bepaald dorp woont, is (meestal) openbare informatie. Een simpele zoekactie op Google onthult deze informatie. Wat je dus met je database wilt doen is de descriptive data behouden, maar de link met de betreffende persoon verbreken. Dit kunnen we doen door de identifying data te veranderen. Hoe doen we dat?

We starten met het identificeren van de systemen die persoonlijke gegevens bevatten. Wanneer je weet welke systemen persoonlijke gegevens bevatten, kun je meer in detail treden. Welke gegevens bevat dit specifieke systeem en wat willen we ermee doen? Welke actie moet worden ondernomen, hangt van een aantal dingen af. Ten eerste is er de informatie privacy policy. De meeste organisaties hebben zo’n beleid. Sommige beleidsregels beschrijven welke gegevens geanonimiseerd moeten worden.

DATA MASkeer technieken

Wanneer er is vastgesteld welke gegevens moeten worden geanonimiseerd, kun je antwoord geven op de vragen: “Hoe ga ik deze data anonimiseren?” “Welke technieken ga ik gebruiken?” DATPROF Privacy kent een aantal ingebouwde scrambling functies waarmee je kunt beginnen:

Shuffle

De meest gebruikte ingebouwde functie is de shuffle. De shuffle neemt de afzonderlijke waarden uit een of meer kolommen en herschikt deze willekeurig. Door bijvoorbeeld voor- en achternamen afzonderlijk te wisselen, krijg je nieuwe voornaam/achternaam combinaties.

Blank

De blank functie spreekt voor zich. Hij verwijdert (leegt) een kolom. Er blijven geen gegevens achter, dus dit is alleen bruikbaar bij kolommen die niet worden gebruikt bij het testen.

Scramble

De scramble functie vervangt karakters door x’jes en cijfers door 1’tjes. Deze functie laat geen herkenbare data achter waardoor ook deze data niet meer gebruikt kan worden bij het testen.

Value lookup

Bij de value lookup wordt een referentietabel gebruikt als invoer voor het anonimiseren van waarden in een tabel. Deze functie heeft een referentiesleutel nodig, d.w.z. een klant-ID, om de juiste data te vinden. De value lookup wordt vaak gebruikt als onderdeel van een set-up die gegevens consistent houdt. Meestal maakt deze setup ook gebruikt van een translation table (vertaaltabel). Daarover verderop meer.

Random lookup

Bij een random lookup wordt ook een referentietabel gebruikt, maar op een andere manier. Een random lookup vervangt waarden door random data van een andere tabel te selecteren. Dit kan handig zijn als je testcases wilt toevoegen aan bestaande gegevens. Jouw gegevens hebben bijvoorbeeld geen diakritische tekens en je wilt deze toevoegen aan de gegevens van de voornaam. Vervolgens kun je een referentietabel gebruiken die bestaat uit alle verschillende namen, inclusief die met diakritische tekens, en deze gebruiken als lookup.

First day in month / in year

De meeste mensen realiseren zich niet dat een geboortedatum in combinatie met een postcode erg herkenbaar kan zijn. De functie first day in month / in year maakt het mogelijk om de geboortedatum te wijzigen in de eerste van de maand of van het jaar. Door dit te doen, is er minder variatie zodat het moeilijker worden om een specifieke persoon te vinden.

Custom expression

Bovengenoemde functies zullen niet in alle situaties werken. Om extra flexibiliteit toe te voegen, kun je de custom expression gebruiken. Dit geeft je de mogelijkheid om een eigen functie te maken. Of dit nu de samenstelling van een e-mailadres is of iets geavanceerder dan dat, met de custom expression kun je alles doen wat mogelijk is in de SELECT van een SQL Statement.

Vertaaltabellen gebruiken in DATPROF Privacy

In de databases van tegenwoordig worden sommige waarden vaker dan één keer opgeslagen. De naam van een persoon kan bijvoorbeeld zowel in een klantentabel als in een facturentabel worden opgeslagen. Het kan nuttig zijn om beide waarden synchroon te houden. Om dit mogelijk te maken, kan DATPROF Privacy de vertaling van een anonimisering opslaan in een aparte tabel. Deze functie is te vinden in de function editor onder het tabblad translation table. Wanneer je deze hebt ingeschakeld, kun je selecteren in welk schema en onder welke naam je de tabel wilt opslaan (bijvoorbeeld TT_FIRST_NAME, TT zoals in de vertaaltabel).

Een vertaaltabel bewaart een kopie van de oude waarde (bijvoorbeeld de oorspronkelijke voornaam) en de nieuwe waarde (de shuffled voornaam) van een anonimiseringsfunctie. Het voegt ook de primaire sleutelwaarde(n) van de geanonimiseerde tabel toe. Deze keys kunnen in andere functies worden gebruikt om de juiste geanonimiseerde waarde in de vertaaltabel te vinden, zodat een andere tabel op dezelfde manier kan worden geanonimiseerd.

Using a translation table

Een vertaaltabel wordt vaak gebruikt als invoer voor een value lookup. Een vertaaltabel maakt consistente anonimisering mogelijk in een hele database of een hele reeks databases. Het is absoluut noodzakelijk dat de sleutel die je gebruikt, beschikbaar is in beide systemen en/of tabellen. Een primary key is niet altijd de juiste sleutel hiervoor. Daarom kun je met DATPROF Privacy een translation key aanduiden. Dit is een virtuele key; er worden geen werkelijke beperkingen in de database gemaakt, maar alle kolommen die zijn aangewezen als translation key worden toegevoegd aan de vertaaltabel. BSN-nummers en rekeningnummers zijn bijvoorbeeld goede kandidaten voor een translation key.

Advanced uses

Het gebruik van een vertaaltabel kan simpel zijn, maar het is ook mogelijk om meerdere vertaaltabellen te combineren in één weergave of tabel. Je hebt bijvoorbeeld meerdere vertaaltabellen als resultaat van het instellen van meerdere functies op een klanttabel; een voornaam shuffle, een achternaam shuffle, en een functie die een nieuw BSN-nummer genereert. Alle resulterende vertaaltabellen hebben dezelfde key: de primary key van de klantentabel en eventuele translation keys die je hebt gedefinieerd. Met behulp van deze keys en een script kun je een tabel of weergave maken die alle vertaaltabellen omvat. Zo’n tabel of weergave is erg handig als je later exact dezelfde anonimisering elders in je database toepast. Je hoeft dan maar één functie te gebruiken in plaats van drie.

Security

Je vertaaltabellen bevatten originele waarden. We adviseren klanten dan ook om vertaaltabellen te behandelen alsof ze productiegegevens bevatten. Om het risico te minimaliseren, kun je vertaaltabellen in een afzonderlijk schema plaatsen met een afzonderlijk privilegeschema. Als je nog een stap verder gaat, kun je gegevens in één database anonimiseren en daar testsets distribueren in plaats van dat ontwikkelaars rechtstreeks toegang hebben tot mogelijk gevoelige gegevens.

Zelf uitproberen?

 Met onze 14-dagen free trial kun je alle bovenstaande uitgelegde DATPROF Privacy functies zelf uitproberen, op je eigen database. 

Klik op de download button en begin vandaag nog!

 

Data Masking

Maskeer je privacygevoelige gegevens en gebruik deze voor ontwikkeling en testen.

Data Masking

DATPROF Privacy

Data Subsetting

DATPROF Subset

Data Automation

DATPROF Runtime

Data Discovery

DATPROF Analyze