Anonimiseren van testdata in een testomgeving

Auteur: Eric Spaargaren– erics70@kpnmail.nl

Welke impact heeft anonimiseren voor organisaties?  In dit artikel geef ik in het kort inzicht in wat de nieuwe AVG-wetgeving inhoudt, welke gevolgen dit heeft voor een organisatie, wat er komt kijken bij het uitvoeren van anonimiseren en welke controles er uitgevoerd kunnen worden na het anonimiseren.  

AVG-wetgeving
AVG staat voor Algemene Verordening Gegevensbescherming, dit is een nieuwe Europese wet. Het betreft het voorkomen van privacyschending van bijvoorbeeld gegevens op je laptop of klantgegevens bij een bedrijf. Er kunnen diverse analyses uitgevoerd worden om te bepalen waar de risico’s liggen binnen een bedrijf.

Het kan zijn dat binnen een bepaalde plaats in het bedrijf helemaal geen persoonsgegevens liggen en dat scheelt een grote investering. Persoonsgegevens zijn alle gegevens die informatie kunnen verschaffen over een identificeerbare natuurlijke persoon in de zin van de wet. Voorbeelden van persoonsgegevens zijn bijvoorbeeld voornaam, achternaam, adres, huisnummer, postcode, woonplaats en telefoonnummer. Dit zijn gegevens die geanonimiseerd dienen te worden om bijvoorbeeld in een testomgeving veilig te kunnen testen.

Anonimiseren in een project
Om anonimiseren als project op te starten binnen een bedrijf dient men met een goed stappenplan te komen. Met name de communicatie over wanneer en wat dient er te gebeuren is essentieel. Bij anonimiseren kan er een SQL-script gebruikt worden om de database te anonimiseren. Het is ook mogelijk om hiervoor tooling te gebruiken, dat ook onderdeel kan zijn van een softwareapplicatie voor anonimiseren. Een onderdeel van de test zou kunnen zijn wat het scrip exact doet. Dat wil zeggen: welke kolommen het script oppakt om te anonimiseren. Als men dit van tevoren goed kan bepalen, dan weet men ook welke kolommen, na anonimiseren, in de database geanonimiseerd zijn met nieuwe waarden. Hierop dient men een validatie uit te voeren.

Daarnaast is het van belang dat er hele goede afspraken gemaakt worden over welke omgevingen van de ‘OTA-straat’ wel en niet dienen te worden geanonimiseerd. Anonimiseren mag nooit en te nimmer in de productie-omgeving uitgevoerd worden omdat de testen juist geanonimiseerd in testomgeving uitgevoerd dienen te worden.

Voordat anonimiseren plaatsvindt, dient eerst een kopie gemaakt te worden van de database uit de P-omgeving of T-omgeving. Zorg ervoor dat de kopie van de database op een secure plek wordt bewaard bestemd voor de DBA-er en dat men deze ook gemakkelijk kan terugvinden.

Zoals hiervoor aangegeven dient men van tevoren te bepalen welke kolommen in de tabel geanonimiseerd moeten worden. Dit kan op verschillende manieren:

  1. In de tabelomgeving van de betreffende applicatie;
  2. Middels een software tool die zorgdraagt voor het anonimiseren van de database;
  3. In het SQL-script;
  4. In de database-omgeving (backoffice van de applicatie).

Hieronder is een voorbeeld weergegeven van twee tabellen waarin aangegeven wordt welke kolommen geanonimiseerd dienen te worden.

Voorbeeld van persoonsgegevens in tabel ‘persoonsgegevens’:

Item Tabelnaam_Kolomnaam Anonimiseren Diakrieten
Voornaam persoonsgegevens_voornaam Onherkenbaar No
Achternaam persoonsgegevens_achternm Onherkenbaar No
Straatnaam persoonsgegevens_adres Onherkenbaar Yes
Straatnr persoonsgegevens_huisnr Herkenbaar Yes
Postcode persoonsgegevens_postcode Onherkenbaar Yes
Woonplaats persoonsgegevens_woonpl Onherkenbaar No
Telefoonnr persoonsgegevens_telnr   Onherkenbaar No

Voorbeeld van persoonsgegevens in tabel ‘verzekeringsgegevens’:

Item Tabelnaam_KolomnaamAnonimiseren Diakrieten
Merk auto verzgegauto_merk Onherkenbaar No
Model auto verzgegauto_modelOnherkenbaar Yes
Type aandrijving verzgegauto_aandrHerkenbaar No
Motorinhoud Verzgegauto_inhouHerkenbaar Yes
Electricpower verzgegauto_ahOnherkenbaar Yes
Kleur verzgegauto_colorHerkenbaar No
Extratype verzgegauto_extratype  Onherkenbaar Yes

SQL-script
Voordat de anonimiseren plaatsvindt, dient eerst een validatie van het SQL-script uitgevoerd te worden. Want het zou kunnen dat bijvoorbeeld bepaalde data voorzien worden van diakrieten. Deze diakrieten kunnen errors geven door de softwareapplicatie. Dit dient men van tevoren goed af te stemmen met het softwareontwikkelteam met de vraag: ‘Hoe vindt het anonimiseren plaats?’. Wat wordt er geanonimiseerd? Welke datavelden in de tabellen worden geanonimiseerd en met welke content? Als hier duidelijkheid over is, kan men met anonimiseren starten.

Het uitvoeren van anonimiseren
Bij het uitvoeren van de anonimiseren komt veel kijken. Het kan namelijk gebeuren dat er toch wel een aantal gebruikers (applicatiebeheerders) of testers dagelijks gebruikmaken van de softwareapplicatie. Zij dienen dus voor het starten van het anonimiseren goed geïnformeerd te zijn. De softwareapplicatie is bij anonimiseren van de database namelijk tijdelijk niet bruikbaar. Bedrijven kunnen er ook voor kiezen om een anonimiseringsdatabase te zetten tussen de productie en de testomgeving om hinder van de anonimisering zo veel mogelijk te beperken.

Het is belangrijk om goed contact te hebben met de DBA (database administrator) die het script voor anonimiseren gaat uitvoeren. Het proces van anonimiseren dient immers gezamenlijk uitgevoerd te worden. Er dient een schaduwcontrole uitgevoerd te worden waarbij de tester meekijkt met de acties die de database-administrator uitvoert zoals een goede storage van de testdatabase op de juiste locatie.

De controle na anonimiseren
Bij de controle na de anonimiseren van de database dient gekeken te worden of de kopie van de database nog terug te vinden is en op de juiste locatie staat. Dit is essentieel want het kan zijn dat de applicatie na anonimiseren niet meer functioneert of althans dat een aantal functies niet meer werken.

In dat geval kan de kopie van de database teruggezet worden. Het terugzetten van de kopie van de database kan nodig zijn opdat bijvoorbeeld functionele regressietesten nog uitgevoerd kunnen worden of omdat er bijvoorbeeld nog een oplevering dient plaats te vinden. Na anonimiseren dient eerst door de DBA gekeken te worden in de databaserecords of de data geanonimiseerd zijn. Er dient bijvoorbeeld een controle uitgevoegd te worden naar de content van voornaam, achternaam, adres, huisnummer, postcode en woonplaats.

Als deze items anoniem in de database records staan, dan is het anonimiseren correct uitgevoerd. Let op: diakrieten kunnen na anonimiseren ook in de database records staan. Er kan een goede controle gedaan worden met diakrieten of de functies van de applicatie nog goed functioneren. Mocht dit niet het geval zijn, dan kan besloten worden om de kopie van de database terug te zetten. Daarnaast kan natuurlijk het SQL-script aangepast worden zodat er geen acties op het gebied van diakrieten invulling plaatsvindt.

Samenvatting
We gaan ervan uit dat bedrijven zich houden aan bepaalde wetgeving zoals de Algemene Verordening Gegevensbescherming (AVG-wetgeving). De implementatie hiervan is vaak geen eenvoudige opdracht.

Er kan een impactanalyse en een risicoanalyse uitgevoerd worden binnen een bedrijf om te onderzoeken welke softwaresystemen persoonsgegevens bevatten. Vervolgens dient bekeken te worden welke softwaresystemen geraakt kunnen worden door de anonimisering. Er kan dan gestart worden met de mogelijkheden om aan te geven welke data geanonimiseerd dient te worden in een softwaresysteem.

Er dienen goede afspraken gemaakt te worden met diverse gebruikers met verschillende rollen van de applicatie om het anonimiseren in goede banen te leiden. Een tester zal andere autorisaties krijgen in de applicatie dan bijvoorbeeld een eindgebruiker. Een ontwikkelaar of een functioneel beheerder zal weer meer rechten nodig hebben. Bijvoorbeeld om productieverstoringen te analyseren. Het adequaat inregelen hiervan vergt de nodige interne afstemming binnen zowel het IT-bedrijf als Human Resources.

Verder moet vastgesteld worden welke velden of tabellen in de database geanonimiseerd dienen te worden. Enkele voorbeelden van anonimiseringssoorten zijn: velden legen, shuffelen of hergenereren. Er bestaan aparte tooling of SQL-scripts om dit uit te voeren.

Na anonimiseren in de testomgeving zal er een goede functionele test gedaan moeten worden om te checken of alle functies goed werken. Gevalideerd moet worden of er mogelijk datacorruptie optreedt na de anonimisering. Het onderwerp diakrieten heeft zijn kenmerken bij het anonimiseren van de database.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *