Data anonimiseren

Software is erg belangrijk in de ondersteuning van bedrijfsprocessen. De meeste van deze software en applicaties bevatten vaker en meer privacygevoelige persoonsgegevens of kritische bedrijfsinformatie. Toch worden de databases achter deze applicaties veel gebruikt voor andere doeleinden dan het primaire proces. Databases worden gekopieerd voor ontwikkeling, testen, acceptatie, training, etc. met alle risico’s van dien. Deze data mag daarom alleen worden gebruikt als het geanonimiseerd is.

Bij het anonimiseren van test data gaat het 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 te maskeren.

Wat is data anonimiseren?

“Het maskeren van gegevens is het proces waarbij originele privacygevoelige gegevens (personally identifiable information of sensitive data) worden getransformeerd met behulp van maskeringstechnieken om te voldoen aan databeveiliging en privacyregels.”

Het doel van data anonimiseren is ervoor te zorgen dat data niet herleidbaar is naar een natuurlijke persoon. De belangrijkste drijfveer voor de meeste bedrijven is compliance. Er zijn verschillende termen die worden gebruikt voor de definitie van maskering van gegevens, zoals data anonimiseren of data pseudonimiseren. De termen data maskeren (Engels: data masking) en data anonimiseren zijn in onze optiek uitwisselbaar en worden beide in dit artikel gebruikt. Pseudonimiseren richt zich op het versleutelen van data en valt onder informatiebeveiliging. Gepseudonimiseerde data heeft nog de mogelijkheid om persoonsgegevens terug te halen. Anonimiseren van persoonsgegevens gaat een stap verder en zorgt er op een veilige manier voor dat een individu niet meer geïdentificeerd kan worden.

Er zijn verschillende methodes en technieken om gegevens te anonimiseren. Ook kan er onderscheid worden gemaakt tussen dynamisch en statisch data maskeren. De te kiezen methode is afhankelijk van het type gegevens dat je wilt anonimiseren.

Waarom data anonimiseren?

Anonimisering of maskering van productiedata in non-productieomgevingen wordt steeds vaker ingezet. Je hebt nog steeds je volledige dataset met ‘normale’ data, maar in de gemaskeerde data zijn alle gevoeligheden weggehaald zodat het niet herleidbaar is naar de originele individu.

Er zijn meerdere redenen om door data maskering te kiezen:

  • Het is een oplossing om het risico op datalekken te verkleinen;
  • Gemaskeerde data helpt bij compliance met regels en wetgeving zoals de AVG;
  • Je beschermt gevoelig data. Niet alleen voor de individu maar ook tegen concurrenten bijvoorbeeld;
  • Het hebben van representatieve data is essentieel in softwareontwikkeling.

Het proces is niet slechts datavelden blanco maken; het omvat een transformatie van persoonlijke data naar karakteristiek onherleidbare gegevens.

Voordelen van anonieme data

Data anonimiseren biedt verschillende voordelen, met als belangrijkste reden voor organisaties om te starten is om de kwetsbaarheid van gegevensbeveiliging te verminderen. De bescherming van klanten/burgers wordt steeds meer gereguleerd, nieuwe dataregels worden opgesteld of bijgewerkt. Maskering van persoonlijke informatie zorgt er echter voor dat softwareontwikkelings- en testteams toegang hebben tot data met een sterk verminderd risico.

Nadelen van data anonimiseren

Het anonimiseren van data is een project op zich en heeft wat aandacht nodig. De eerste uitdaging is het onherleidbaar maken van gevoelige gegevens, terwijl deze als kenmerkend voor de productie (kwaliteit) houden blijft. Dus onherleidbaar maken en tegelijkertijd bruikbaar houden voor testen. De tweede uitdaging is het creëren van gemaskeerde gegevens, consistent over meerdere systemen en databases. De derde is het omgaan met de triggers, beperkingen, bedrijfsregels en indexen tijdens het uitvoeren van de transformaties.

Voldoen aan de AVG (internationaal: GDPR)

Productie databases worden vaak gekopieerd. In veel gevallen worden er wel 4 tot 10 kopieën gemaakt voor één database in productie. Een database kopiëren betekent dat je nu niet één maar bijvoorbeeld tien databases moet beveiligen. Daarom hebben de meeste regeringen gegevensprivacywetten uitgevaardigd om de klanten, burgers, tegen wangedrag te beschermen. Als je geen bescherming biedt, riskeer je het volgende:

  • Niet voldoen aan data-privacy wetgeving van de Europese Unie (AVG, internationaal GDPR)
  • Verlies van privacy gevoelige informatie aan ongeautoriseerde gebruikers (ex-medewerkers, externen)
  • Datalek veroorzaakt imagoschade door slechte publiciteit
  • Klanten beëindigen de relatie: verlies in vertrouwen in je organisatie

Hoe maskeer 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.

We starten met het identificeren van de systemen met persoonlijke gegevens. Zodra 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.

Wanneer zijn gegevens persoonlijk of privacygevoelig?

Een naam is persoonlijk, maar niet per definitie privacygevoelig. De stad waarin je woont en andere adresgegevens zijn ook niet privacygevoelig. Het is openbare informatie. Het feit dat je een enorme schuld of een ziekte hebt, maakt je gegevens privacy gevoelig. Echter, als je deze gegevens (naam, woonplaats, schuld, ziekte) of herleidbare termen lostrekt van elkaar, kan niet meer terugverwezen worden naar een bepaalde persoon. Op die manier heb je geen privacygevoelige data meer.

Welke anonimiseer methodes zijn er?

Als je hebt bepaald welke data gemaskeerd of geanonimiseerd dient te worden, kun je kiezen welke techniek of methode je daarvoor gaat gebruiken. Over het algemeen zijn er twee data maskeer methodes om data te anonimiseren, namelijk synthetische data generatie en data maskering. Data maskering gebruikt functies zoals shuffle, scrable etc. Je kunt de twee methodes of technieken onderscheiden door te stellen dat maskering data in de databases hergebruikt en dat generatie nieuwe data creëert die nog niet bestond.

De derde methode is een combinatie: genereer synthetische data als maskeertechniek om bestaande data te vervangen. Het grote voordeel hiervan is dat schema’s en structuren van de originele data behouden blijven wanneer je gevoelige data vervangt door synthetische data.

Technieken

Zodra je hebt vastgesteld welke gegevens moeten worden geanonimiseerd, kun je gaan specificeren hoe het moet worden uitgevoerd. De ontwikkeling van het maskeertemplate kan beginnen. Welke anonimiseerregels ga je gebruiken?

Shuffle
Een shuffle neemt de afzonderlijke waarden uit één of meer kolommen en herschikt deze willekeurig. Door bijvoorbeeld voor- en achternaam afzonderlijk te wisselen, krijg je nieuwe 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 9’s. Deze functie laat geen herkenbare data achter waardoor het ook niet meer gebruikt kan worden bij het testen.

First Day in Month/Year
Deze functie maakt het mogelijk om de geboortedatum te wijzigen. Door dit te doen, is er minder variatie zodat het moeilijker worden om een specifieke persoon te vinden.

Random Lookup
Bij een random lookup wordt ook een referentietabel gebruikt, op een alternatieve 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.

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).

Custom Expression
De standaardfuncties zullen niet voor elke situatie werken. Om extra flexibiliteit toe te voegen, kun je de custom expression gebruiken 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.

Data Generation
DATPROF Privacy heeft ingebouwde synthetische data generators waarmee je bestaande privacy gevoelige data kunt vervangen met synthetisch gegenereerde data. Het hangt van je testbehoeftes af of je data maskeer functies, synthetische data of een combinatie van deze twee wilt gebruiken om je data te anonimiseren.

DATA SCRAMBLING EXAMPLES

Wanneer je begint met implementeren van data maskeer regels, krijg je uiteindelijk representatieve doch onherkenbare testdata. Er zijn veel technieken welke kunnen worden gebruikt, zoals hierboven getoond. Bekijk de video om te zien hoe dat er in de praktijk uitziet.

[video_lightbox_youtube video_id=”OCFE-OdfEFI” width=”640″ height=”480″ anchor=”https://www.datprof.com/wp-content/uploads/2020/06/video-datprof-privacy-min.jpg” alt=”how to data masking”]

Maskeer test data end-to-end

In veel databases worden sommige waarden meer dan eens opgeslagen. De complexiteit begint wanneer (test)data consequent gemaskeerd moeten worden over meerdere systemen. De naam van een persoon kan bijvoorbeeld zowel in de klantentabel als in de factureringstabel worden opgeslagen. Voor end-to-end testen is het essentieel dat gegevens in elke bron en toepassing in dezelfde volgorde worden gemaskeerd.

 

Een vertaaltabel gebruiken

Een vertaaltabel houdt een kopie bij van de oude waarde (bijv. de oorspronkelijke voornaam) en de nieuwe waarde (bijv. de geshuffelde voornaam) van een maskeerfunctie. Het voegt ook de primary key waarde(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. Dit maakt consistente anonimisering mogelijk in een database / applicatie of keten van databases en applicaties.

 

Beveiliging

Je vertaaltabellen bevatten de oorspronkelijke waarden. Wij adviseren klanten daarom om vertaaltabellen te behandelen alsof ze productiegegevens bevatten. Om het risico te minimaliseren, kun je alle vertaaltabellen in een apart schema plaatsen met een apart privilegeschema. Als je nog een stap verder gaat, kun je gegevens in één database anonimiseren en van daaruit testsets distribueren, in plaats van ontwikkelaars rechtstreeks toegang te geven tot mogelijk gevoelige gegevens.

Deterministisch data maskeren

Een andere manier om test data consistent over meerdere systenemen (of cloud) applicaties te maskeren, is met deterministic data masking. Bij deterministische maskering wordt een waarde in een kolom vervangen door dezelfde waarde, of het nu in dezelfde rij, dezelfde tabel, dezelfde database/ hetzelfde schema en tussen instanties/databasetypen is. Dankzij deterministische maskering zijn er geen vertaaltabellen meer nodig.

Data anonimiseer best practices en tips

Er zijn een aantal best practices voor het maskeren van data. De eerste is: ontdek waar privacygevoelige gegevens zijn opgeslagen. Krijg inzicht! Zonder data-inzicht is het onmogelijk om te beginnen. Er zijn een aantal specifieke datatype verbindingen die ‘gevoeliger’ zijn dan andere, zoals geboortedatum en postcode. Onderzoek toont aan dat als deze gegevens niet worden gemaskeerd, je behoorlijk identificeerbaar bent.

Een wijs man zei ooit: “If you’re failing to plan, you’re planning to fail.” Dat is de tweede best practice. Begin niet zonder een plan. We hebben een document dat daar heel handig voor kan zijn.

Data Masking Project Plan

Begin met analyseren waar gegevens worden opgeslagen en bespreek de maskeringsregels met de CISO (Chief Information Security officer) of DPO (Data Protection Officer). Vertel hen dat het bedrijf niet zal helpen om gegevens te vervangen door alleen ‘xxxxxx’. Ontdek gewoon waar gemeenschappelijke gronden te vinden zijn.

En misschien wel de belangrijkste tip voor het maskeren van gegevens: probeer eenvoudig te beginnen. We zien veel organisaties het data maskeer project opblazen. Niet doen. Dat is echt een tijdrovende klus. Begin gewoon op een eenvoudige manier en verbeter gaandeweg. Niets doen is nog erger. Dus zelfs als je eerste maskeerrun niet 100% perfect is, is het beter dan niets!

 

Data anonimiseer tools

Er zijn heel veel tools voor het maskeren of anonimiseren van data. Waar wij ons in onderscheiden is het gebruiksgemak van ons product DATPROF Privacy en de maatwerkservice. Elke klant en elke maskeerbehoefte is anders en vraagt om een andere aanpak. Daarom heeft elke organisatie een op maat gemaakte template nodig, die wij in de eerste PoC-fase helpen ontwikkelen. Het gebruiksgemak van de database masking tool stelt de klant in staat om wijzigingen aan te brengen en een eigen sjabloon te ontwikkelen.

Database maskering

DATPROF is van toepassing op de softwarelevenscyclus van de databaseleveranciers. We willen ervoor zorgen dat u versluierde gegevens kunt aanleveren in de bronnen, applicaties of databases van uw keuze. Daarom hebben we integratie voor de nieuwste versies van alle belangrijke relationele db’s zoals weergegeven in de onderstaande tabel. Als jouw platform niet in de lijst staat, betekent dit niet dat we het niet ondersteunen – in de meeste gevallen vinden we een manier om het te laten werken (of ontwikkelen we extra ondersteuning voor het versleutelen van databases).

Oracle11.2 and above» More info
Microsoft SQL Server2008 | 2012 | 2014 | 2016* | 2017* | 2019*» More info
DB2 LUW10.5 and above
DB2 for i7.2 and 7.3
PostgreSQL9.5 | 9.6 | 10.5 | 11 | 11.2 | 11.6 | 12 | 12.1» More info
MySQL8.0» More info
MariaDB10.4

* Check the Powershell module remarks

Start your
DATPROF Privacy free trial

Enable test teams with high quality masked production data and synthetically generated data for compliance.

Free Trial - Privacy

"*" geeft vereiste velden aan

1Step 1
2Step 2

FAQ

Wat is data anonimisatie?

Het anonimiseren van data is het proces van het verbergen van persoonlijke en gevoelige informatie. De belangrijkste reden is ervoor te zorgen dat data niet kan terugverwijzen naar een natuurlijke persoon.

Waarom data anonimiseren?

Om persoonlijk identificeerbare informatie te beschermen moet data worden geanonimiseerd voordat je het kunt gebruiken voor doeleinden zoals testen en ontwikkelen.

Hoe moet je data anonimiseren?

Data kan worden gemaskeerd of geanonimiseerd met behulp van maskeerregels (shuffle, blank, scramble) en synthetische data generatie. Een goede data maskeer tool combineert verschillende technieken om een goed maskeer template te bouwen.

Welke gegevens moet je anonimiseren?

We maken onderscheid tussen persoonlijke informatie en karakteristieken die bij een persoon horen. Door deze informatie van elkaar te scheiden, door de data te anonimiseren en eventueel aan te vullen met synthetische data, is de data niet meer herleidbaar naar een individu en dus anoniem. Denk hierbij aan naam, adres, BSN, IBAN maar ook aan schulden, medicijngebruik, politieke overtuiging etc.

Wanneer is data privacy gevoelig?

Een naam is persoonlijk, maar niet privacy-gevoelig. De stad waar je woont is ook niet privacy-gevoelig. Het is publieke informatie. Echter, het feit dat je schulden of een ziekte hebt maakt je data privacy-gevoelig.