Anonimiseren van testdata in een testomgeving



Published 17-07-2019 / By Paul Beving
Auteur: Eric Spaargaren / erics70@kpnmail.nl
Review: 28-6-2019


Inleiding

In dit document wordt er beschreven welke impact anonimiseren voor organisaties heeft. Dat wil zeggen: er wordt in dit document in het kort inzicht gegeven 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 privacy schending 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, dit 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 er 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 wordt een voorbeeld gegeven van 2 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_achternaam
Onherkenbaar
No
Straatnaam
persoonsgegevens_adres
Onherkenbaar
Yes
Straatnummer
persoonsgegevens_huisnummer
Herkenbaar
Yes
Postcode
persoonsgegevens_postcode
Onherkenbaar
Yes
Woonplaats
persoonsgegevens_woonplaats
Onherkenbaar
No
Telefoonnummer
persoonsgegevens_telefoonnummer  
Onherkenbaar
No


Voorbeeld van persoonsgegevens in tabel “verzekeringsgegevens”:
Item
Tabelnaam_Kolomnaam
Anonimiseren
Diakrieten
Merk auto
verzekeringsgegevensauto_merk
Onherkenbaar
No
Model auto
verzekeringsgegevensauto_model
Onherkenbaar
Yes
Type aandrijving
verzekeringsgegevensauto_aandrijving
Herkenbaar
No
Motorinhoud
Verzekeringsgegevensauto_inhoud
Herkenbaar
Yes
Electricpower
verzekeringsgegevensauto_ah
Onherkenbaar
Yes
Kleur
verzekeringsgegevensauto_color
Herkenbaar
No
Extratype
verzekeringsgegevensauto_extratype  
Onherkenbaar
Yes


SQL-script

Voordat de anonimiseren plaatsvindt dient er eerst een validatie van het SQL-script uitgevoerd te worden. Want het zou kunnen dat er bijvoorbeeld bepaalde data voorzien wordt van diakrieten. Deze diakrieten kunnen errors geven door de softwareapplicatie. Dit dient men van tevoren goed af te stemmen met het software-ontwikkelteam 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 zou namelijk kunnen voorkomen dat er toch wel een aantal gebruikers (applicaties beheerders) of testers dagelijks gebruik maken van de softwareapplicatie dus deze dienen 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 test omgeving 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 schaduw controle uitgevoerd te worden waarbij de tester meekijkt met de acties die de database administrator uitvoert zoals een goede storage van de testdatabase op de juist locatie.




De controle na anonimiseren
Bij de controle na de anonimiseren van de database dient er 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 na anonimiseren de applicatie niet meer functioneert of althans dat een aantal functies niet meer werken.  Indien dit het geval is kan de kopie van de database teruggezet worden. Het terugzetten van de kopie van de database kan nodig zijn opdat bijv. functionele regressie testen 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 database records of de data geanonimiseerd is. 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). Het implementeren hiervan is vaak geen eenvoudige opdracht.

Er kan een impact analyse en een risicoanalyse uitgevoerd worden binnen een bedrijf om te onderzoeken welke softwaresystemen persoonsgegevens bevatten. Vervolgens dient er 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 productie verstoringen 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.


Geen opmerkingen:

Een reactie posten

Test Consultancy (ENG)

The IT career of Eric started in 1995 with programming followed by testing,  advanced testing and  the training of junior testers and users ...