Datalekken komen steeds vaker in het nieuws. En sinds de invoering van de meldplicht voor datalekken, lijken steeds meer mensen zich bewust te zijn van het feit dat hun persoonlijke gegevens bij bedrijven en overheden zijn ondergebracht. Als tester bij verschillende organisaties word ik dagelijks geconfronteerd met de enorme hoeveelheid data die bedrijven en instellingen hebben over personen. Als testers moeten we hier natuurlijk voorzichtig mee omgaan. Maar wat zegt de wet hier eigenlijk over? Is die duidelijk genoeg? En hoe houd je daar als tester rekening mee, zonder op testkwaliteit in te boeten?

Wetten en verordeningen

Om te beginnen met de wet: de meeste mensen hebben weleens gehoord van de Wet Bescherming Persoonsgegevens (WBP), en dan vooral in de context van wat er wettelijk gezien niet mag. De WBP is de Nederlandse uitwerking van de Europese richtlijn voor dataprotectie (95/46/EG). Deze richtlijn is in mei 2016 vervangen door de General Data Protection Regulation (GDPR) (Regulation (EU) 2016679). De GDPR is geen richtlijn meer, maar een verordening; in mei 2018 moet iedereen binnen de EU hieraan voldoen. Terug naar de WBP. Belangrijk in de naam van die wet is de term persoonsgegevens. Daarmee wordt bedoeld: ‘elk gegeven betreffende een geïdentificeerde of identificeerbare natuurlijke persoon’. Hierbij kun je denken aan zaken als naam, adres, geboortedatum, pasfoto, handtekening, BSN, rekeningnummer, familie, lengte of gewicht. Kortom, alle soorten gegevens die betrekking kunnen hebben op een persoon. Voor deze data geldt, dat burgers bepaalde rechten hebben, zoals het recht om te weten waar de data voor wordt gebruikt, welke data bekend is en het recht om bezwaar te maken tegen de verwerking van de data. Organisaties die persoonlijke data verwerken, moeten rekening houden met bepaalde verplichtingen. Zo moet de dataverwerking worden gemeld bij de Autoriteit Persoonsgegevens, mogen de gegevens alleen worden verwerkt met het doel waarvoor ze zijn verzameld en moet de verwerking passend zijn beveiligd. Verwerking is in dit geval een heel ruim begrip, want eigenlijk valt alles wat je doet met data (inclusief bewaren) hieronder.

En de GDPR? Per 25 mei 2018 vervangt deze verordening alle nationale wetten, dus ook de WBP. De verplichtingen van organisaties die beschikken over persoonsgegevens worden dan uitgebreid. Zo moeten zij bijvoorbeeld kunnen aantonen aan de GDPR te kunnen voldoen en is het mogelijk dat ze verplicht worden een privacy-impactassessment uit te voeren. Burgers moeten nadrukkelijker om toestemming gevraagd worden en moeten die toestemming kunnen intrekken.

Testen en privacy

Interessante materie, maar wat moeten wij testers hiermee? We testen niet op de productieomgeving (hoop ik!), dus wat hebben wij met productiedata te maken? Tijdens mijn werk hoor ik geregeld: ‘dat kunnen we alleen testen met productiedata’. Dat is verklaarbaar, want productiedata is de enige echte data. Er zijn vaak grote hoeveelheden van en productiedata kent een goede variatie. Bovendien laat productiedata precies zien welke rare dingen voor kunnen komen (initialen met punt, met punt en spatie, zonder punt met spatie, zonder punt en zonder spatie). Als tester kun je dat nooit op die manier namaken. Belangrijke elementen in de WBP zijn: het verwerken van data, persoonsgegevens en het doel waarvoor de gegevens verzameld zijn. Over het verwerken kunnen we kort zijn, testen valt ook onder het verwerken van data. In die zin vallen de persoonsgegevens die gebruikt worden voor testen dus ook onder de WBP.

What’s in a name?

Persoonsgegevens is een ruim begrip. Je denkt meteen aan naam, adres, woonplaats en geboortedatum, de zogenaamde identificerende gegevens. Daarnaast heb je kenmerkende persoonsgegevens. Dit zijn extra beschermde bijzondere persoonsgegevens zoals geslacht, geaardheid en geloof, maar ook banksaldo, schulden, medicijngebruik en telefoongebruik. Maar er kan nog veel meer onder vallen. Denk aan opleidingsniveau. Of bankrekeningnummer(s). Aankoopgeschiedenis. En dat is meteen het lastige aan persoonsgegevens, want de exacte invulling van het begrip ligt niet vast in de wet, maar wordt bepaald door (Europese) jurisprudentie. Zoals het in de wet beschreven is: ‘alle informatie betreffende een geïdentificeerde of identificeerbare natuurlijke persoon’.

Waarom worden deze gegevens verzameld? Over het algemeen gebeurt dit in het kader van dienstverlening. Bijvoorbeeld om een aankoop in een webshop te verzenden, om een OV-kaart te maken en bezorgen, in het kader van een online sollicitatie of voor de aanvraag van een abonnement. Echter, het doel van het verzamelen (zoals verteld of begrepen door de klant) is meestal niet ‘testen om het systeem te verbeteren’.

Datagebruik voor testen

Wat betekent dit nou concreet voor testers? De Autoriteit Persoonsgegevens is heel duidelijk: we mogen niet testen met echte gegevens, omdat deze gegevens niet met dat doel zijn verzameld. In een ouder (2013) stuk van het Centrum Informatiebeveiliging en Privacybescherming staat dat echte gegevens alleen gebruikt mogen worden als het de enige manier is om goed te kunnen testen. Arnoud Engelfriet, ICT-jurist geeft aan dat er impliciet wel toestemming is verleend, omdat het functioneren van de diensten afhangt van goed kunnen testen. Mijn advies? Doe het niet, tenzij je niet anders kunt. En denk er dan nog eens drie keer over na of het wel écht nodig is. Buiten de juridische haken en ogen is het risico op imagoschade, door bijvoorbeeld een datalek of een test-email die toch verzonden wordt, altijd aanwezig. Overleg sowieso altijd eerst met de securityofficer. Daarnaast is het belangrijk om te weten dat je nooit met echte burgerservicenummers mag testen.

Anonimiseer!

Via deze (flinke lap) tekst, wil ik je vooral laten weten dat wij testers niets met productiedata mogen doen. En dat terwijl dat juist zo handig is! Gelukkig zijn er wel mogelijkheden om legaal en correct met productiedata te testen, namelijk door deze te anonimiseren. Je kunt dit zelf doen door een script of een beschikbare tool te gebruiken. Tooling heeft als voordeel dat deze vaak over meerdere tabellen en soms zelfs meerdere databases de data consistent kan anonimiseren, zonder de relatie tussen gegevens kwijt te raken.

Anonimiseren kan op verschillende manieren. De beste methode is afhankelijk van de soort data, de gevoeligheid van de data en de eisen die de te testen software stelt aan de data.

Hieronder in het kort enkele veelgebruikte technieken:

  • Je kunt data helemaal weghalen.
  • Je kunt data vervangen door random tekens, maar de leestekens laten staan (bijvoorbeeld door e-mailadres te vervangen door xxxx@xxxx.com.) Hierdoor voldoet het nog wel aan de eisen die gesteld worden aan een veld.
  • Je kunt data door elkaar husselen, waardoor bijvoorbeeld Jan Jansen en Piet Pietersen Jan Pietersen en Piet Jansen worden. Hiermee behoud je de unieke data (met al zijn rare tekens, lengtes en variatie).
  • Je kunt alle data aanpassen naar de eerste van de maand (postcodecijfers met de geboortedatum is in 67% van de gevallen identificeerbaar).

Fakers

Naast anonimiseren is het gebruik van een faker ook een mogelijkheid. Hierbij maak je met behulp van een tool volledig fictieve data. Er zijn verschillende fakers beschikbaar die verschillende soorten data kunnen genereren die voldoen aan bepaalde conventies, zoals e-mailadressen, telefoonnummers en adressen. Het is wel zo dat deze vaak op de Amerikaanse markt gericht zijn en bijvoorbeeld telefoonnummers maken met de opzet 123 123-1234 in plaats van het bij ons gebruikelijke 1234-567890 of 06-12345678.

De taak van de tester

Als tester vind ik het onze taak om onze opdrachtgevers en managers te wijzen op foutief en onnodig gebruik van productiedata voor het testen van software. Het is een schending van de WBP en bovendien: de regels worden in de toekomst alleen maar strenger ter bescherming van de privacy. Het is ook helemaal niet nodig om productiedate te gebruiken, nog los van de consequenties die het kan hebben voor het imago van een bedrijf. Er zijn genoeg mogelijkheden om dezelfde waarde uit de tests te halen, met geanonimiseerde productiedata of fictieve data.