Op 27 september 2021 heeft de gemeente Den Haag samen met Cybersprint het evenement Hack the Hague georganiseerd. Hackers van over de hele wereld konden zich inschrijven en onder gecontroleerde omstandigheden de beveiliging van verschillende systemen testen zodat de gemeente en de leveranciers van de gemeente de beveiliging kunnen verbeteren. Dat zorgt voor goede PR voor de gemeente, lost de (meeste) gemelde beveiligingsproblemen op, laat de gemeente en de leveranciers oefenen met het snel oplossen van problemen en is voor de hackers een leuk evenement met een kans op prijzen.

Dit jaar was ook de eerste editie in jaren waar de gemeente geen onbeperkte geheimhouding heeft proberen op te leggen aan de deelnemers. De gemeente is voorstander van Coordinated Vulnerability Disclosure, de praktijk waarbij hackers die beveiligingsproblemen die ze ontdekt hebben samenwerken aan de publicatie van de gevonden beveiligingsproblemen zodat de kans op onbedoelde schade geminimaliseerd wordt. Ik heb geen gelegenheid om een hele dag vrij te nemen om mee te doen, maar ben wel nieuwsgierig naar de problemen die gevonden worden dus ik heb de livestream op de website van Cybersprint aangezet. Nog voor het evenement begonnen is merk ik op dat er persoonsgegevens lekken van mijzelf en daarmee waarschijnlijk ook van andere kijkers van de livestream. Ik heb dit probleem onmiddellijk gemeld via het formulier van de gemeente om kwetsbaarheden te melden.


Toevoeging na Publicatie

Na publicatie van deze blog heeft een vertegenwoordiger van de gemeente contact opgenomen om wat te verduidelijken. De gemeente heeft mijn melding doorgezet aan Cybersprint omdat de gemeente niet verantwoordelijk is voor de website van Cybersprint. Ik heb de melding bij de gemeente gedaan omdat ik op dat moment had aangenomen dat Cybersprint namens de gemeente HTH 2021 organiseerde en dat ook de livestream namens de gemeente op de site van Cybersprint is gehost. Cybersprint heeft aangegeven de voorwaarden voor het melden van een kwetsbaarheid als een juridisch afdwingbare overeenkomst te zien en er staan voorwaarden in het beleid van Cybersprint waar ik niet mee akkoord gegaan zou zijn als ik de melding bij Cybersprint had gedaan. Bijvoorbeeld:

Not disclose the vulnerability with others without our permission/approval.

Daarom heb ik bij het schrijven van dit stuk heel expliciet vastgehouden aan de interpretatie dat ik de melding bij de gemeente heb gedaan. Of ik door het melden dan nog een bindende overeenkomst ben aangegegaan is mij op basis van deze nieuwe informatie niet duidelijk. Maar ik heb de melding met zo goed mogelijk overleg met Cybersprint afgehandeld en gepubliceert.

Lees de onderstaande tekst dus met de deze gedachte in het achterhoofd.


Gedurende het overleg met Cybersprint over de afhandeling van de melding ben ik dusdanig veel gevraagd om te verantwoorden waarom ik doe wat ik gedaan heb en waarom ik wil publiceren dat ik ervan overtuigd ben dat dat niet vanzelfsprekend is. Daarnaast zijn er herhaaldelijk vraagtekens gezet bij mijn conclusies die ik met Cybersprint gedeeld heb. Ik zal daarom hierna uitleg geven over waarom ik over de bevindingen wil publiceren en ook in meer detail mijn bevindingen onderbouwen dan normaalgesproken noodzakelijk is.

Het uitgangspunt van Coordinated Vulnerability Disclosure is de disclosure zodat zoveel mogelijk mensen kunnen leren van de bevindingen. Dat doe ik in overleg met Cybersprint, waaraan de gemeente de afhandeling van de melding overgedragen lijkt te hebben, om onnodige schade te voorkomen. Specifiek deze melding is denk ik interessant voor een breder publiek omdat ik heel veel vergelijkbare problemen zie. Helaas worden mijn meldingen hierover doorgaans vrij slecht afgehandeld. Het is ook lastig omdat het een technisch probleem is met significante juridische aspecten en een nette afhandeling vraagt om een aantal ongemakkelijke stappen. Ik heb er wel eens vaker over geschreven vanuit een privacy-perspectief, soms met naam en toenaam van de betreffende organisaties en soms ook niet. Dit keer wil ik gebruik maken van de overtuiging van de gemeente om open over dergelijke problemen te publiceren om wat meer details te geven en het vanuit een ander perspectief te behandelen.

Bevindingen

Stappen om de bevindingen te reproduceren (werkt na 1 november niet meer):

  1. Start een “schone” (geen cookies, cache, etc.) Chrome browser (Versie 94.0.4606.61) die geconfigureerd is om het netwerkverkeer via een TLS interceptie proxy (mitmproxy) te laten lopen. De browser start “schoon” om te voorkomen dat ik zonder het te weten configuratie heb aangepast de die uitkomst beïnvloed en de proxy slaat het netwerkverkeer op zonder te filteren of de inhoud van het verkeer aan te passen.
  2. Bezoek https://www.cybersprint.com/hack-the-hague-2021 zonder interactie aan te gaan die opgevat kan worden als toestemming voor tracking cookies en bekijk de livestream.
  3. Verschillende partijen plaatsen en/of lezen cookies die gebruikt kunnen worden voor tracking zonder dat er toestemming is gegeven.
  4. Een volledige kopie van het netwerkverkeer dat gedurende de test is vastgelegd en waarmee de bevindingen achteraf te verifiëren zijn is verstrekt aan de gemeente als bijlage bij mijn melding.

De volgende partijen heb ik persoonsgegevens zien verzamelen van de webpagina:

Youtube, met de YSC en VISITOR_INFO1_LIVE cookies. Youtube, met de <code>YSC</code> en <code>VISITOR_INFO1_LIVE</code> cookies.

Alexa, die de cookie plaatst als first-party cookie op cybersprint.com maar die als url-parameter naar certify.alexametrics.com wordt verzonden. Alexa, die de cookie plaatst als first-party cookie op cybersprint.com maar die als url-parameter naar certify.alexametrics.com wordt verzonden. Alexa identifier die als first party cookie opgeslagen is.

Linkedin met een UserMatchHistory, AnalyticsSyncHistory, lang, bcookie en lidc cookie. Linkedin met een <code>UserMatchHistory</code>, <code>AnalyticsSyncHistory</code>, <code>lang</code>, <code>bcookie</code> en <code>lidc</code> cookie.

Doubleclick met een IDE cookie. Doubleclick met een <code>IDE</code> cookie.

Hubspot met een __cf_bm cookie. Hubspot met een <code>__cf_bm</code> cookie.

Getroffen maatregelen

In tegenstelling tot de meeste meldingen van kwetsbaarheden heb ik een melding gedaan van een actieve inbreuk. Er zijn over een bij mij onbekende periode persoonsgegevens verstrekt aan of verzameld door partijen die die persoonsgegevens (op deze manier) helemaal niet mogen verzamelen. Cybersprint is ISO 27001 gecertificeerd en moet daarmee beleid hebben om (persoons)gegevens te beveiligen tegen onbevoegde toegang. Cybersprint zegt daarover het volgende in haar publieke Privacy Policy:

We handle data with care and we take appropriate security measures to secure personal data and prevent misuse, loss, unauthorized access, unwanted disclosure and unauthorized modification.

De toegang tot de persoonsgegevens van bezoekers in de hierboven beschreven context is onbevoegd (Art. 11.7a Tw en Art 6 AVG) hopelijk ook ongewenst door Cybersprint. Daarmee is een inbreuk op het beveiligingsbeleid van Cybersprint. Dat betekend dat het gemelde incident in de buurt komt van een meldplichtige inbreuk op de beveiliging dat wel vaker een “datalek” wordt genoemd. Er is daarom meer nodig dan alleen een patch.

Het lekken stoppen

Cybersprint heeft relatief vlot aangegeven maatregelen te treffen om te voorkomen dat er nog persoonsgegevens lekken zonder toestemming van de bezoekers. Na twee controles heeft Cybersprint de website aangepast dat zonder toestemming van de bezoeker geen 3rd party tracking plaatsvindt. Implementatie van een goede tracking-consent module kan best ingewikkeld zijn en vergt altijd een kritische controle zodat er geen tracking over het hoofd gezien wordt. Of de nieuwe cookie consent module helemaal compliant is ingericht heb ik hier buiten beschouwing gelaten.

Verwijderen gelekte gegevens

Omdat de gegevens niet verzameld hadden mogen worden moeten de gegevens ook weer verwijderd worden. Hoewel Cybersprint zelf niet bij de verzamelde gegevens kan komen is Cybersprint (gezamenlijke) verwerkingsverantwoordelijke voor de verzameling van de gegevens en daarmee ook verantwoordelijk voor de rechtmatige verwerking. Cybersprint heeft daarom een aantal partijen gevraagd om de gegevens te verwijderen. Helaas heeft nog geen enkele partij bevestigd dat de gegevens verwijderd zijn.

NaamVerwijdering verzochtBevestiging ontvangen
Google (Youtube en Doubleclick)JaNee
Amazon (Alexa)JaNee
Microsoft (LinkedIn)JaNee
HubSpotJaNee

Betrokkenen informeren

Er zijn verschillende redenen om bekend te maken wat er is gebeurt. Ten eerste zijn zowel de Gemeente Den Haag als Cybersprint uitgesproken voorstanders van Coordinated Vulnerability Disclosure dus zou het ook voor de hand liggen als dat in de praktijk gebracht wordt met een disclosure. In de voorwaarden van de gemeente bij het melden heeft de gemeente het volgende toegezegd:

De gemeente probeert alle problemen zo snel mogelijk op te lossen en alle betrokkenen daarover te informeren. Zij wil graag worden geïnformeerd als er over het opgeloste probleem gepubliceerd wordt.

Deze regel is belangrijk voor de bescherming van melders. Als publicatie het uitgangspunt is voor zowel de melder als de verantwoordelijke organisatie en ook de (hoogte van) de beloning niet afhankelijk gemaakt wordt van de publicatie helpt dat de schijn te voorkomen dat de melder de organisatie probeert af te persen of dat de verantwoordelijke organisatie druk probeert uit te oefenen op de melder om niet te publiceren.

Ten tweede is Cybersprint verplicht om betrokkenen te informeren over de verwerking. Artikel 13 van de AVG schrijft voor dat de betrokkenen pro-actief geïnformeerd moeten worden over de verwerking van persoonsgegevens. Hoewel Cybersprint achteraf een cookie-voorkeuren scherm met informatie over de cookies heeft geïmplementeerd voldoet dat niet volledig aan de informatieverplichtingen. Zo is het niet waarschijnlijk dat alle historische bezoekers die geïnformeerd hadden moeten worden het nieuwe scherm heeft ontvangen. Maar ook sommige informatie ontbreekt. Zo schrijft art. 3(1)(c) AVG voor dat de bezoekers geïnformeerd moeten worden over de grondslag (of in dit geval het gebrek aan gronslag) van de verwerking of dat de persoonsgegevens worden geëxporteerd buiten de Unie (art. 13(1)(f) AVG).

Omdat er een inbreuk is geweest in de beveiliging van persoonsgegevens wordt het ook belangrijk om naar artikel 34 van de AVG te kijken; de “meldplicht datalekken” aan betrokkenen. Wanneer de inbreuk waarschijnlijk een hoog risico inhoudt voor de rechten en vrijheden van de bezoekers van de website moet Cybersprint de bezoekers zonder onnodige vertraging informeren. Een belangrijk aspect voor die overweging is of het lukt om de gegevens te (laten) verwijderen.

De EDPB heeft bijvoorbeeld uitleg gegeven (CASE No. 09) waaruit blijkt dat wanneer data gelekt wordt aan een vertrouwde derde partij, er onmiddellijk verzocht wordt de gegevens te verwijderen en die derde partij bevestigd dat de gegevens zijn verwijderd dat de betrokkenen niet geïnformeerd hoeven worden

In de gesprekken met Cybersprint heb ik echter niet de indruk gekregen dat Cybersprint uit zichzelf van plan was om naar buiten toe te communiceren over dit incident. Ook heb ik niet de indruk gekregen dat Cybersprint enthousiast was bij de gedachte dat ik over het incident zou publiceren. Ik heb toegezegd dat Cybersprint mijn blogpost ter review voor publicatie mocht inzien. Op 23 oktober 2021 heb ik de concept-tekst toegezonden en alle (kleine) opmerkingen zijn verwerkt.

Cybersprint heeft ervoor gekozen om op 5 november een blogpost te publiceren. Deze blogpost, in combinatie met de algemene privacy-informatie op de site, bevatten niet alle informatie die betrokkenen horen te krijgen over een verwerking. De blogpost informeert bijvoorbeeld niet over de identeiten van alle partijen bij wie er persoonsgegevens terecht zijn gekomen door dit incident. Cybersprint is zelf tot de conclusie gekomen dat de verwerking van persoonsgegevens zonder geldige grondslag geen hoog risico oplevert voor de rechten en vrijheden van de bezoekers van de site en het informeren van betrokkene onder artikel 34 AVG niet verplicht is. Voor beloningen van meldingen beoordeeld Cybersprint de melding op drie punten: Ben je de eerste die het probleem meldt, de ernst van het gemelde probleem en de kans opmisbruik. Cybersprint heeft geen indicatie gegeven van een beoordeling op deze drie punten.

Tijdlijn

27 september 2021: Bevindingen gemeld bij Gemeente Den Haag en omdat ik geen account heb in het meldsysteem van de gemeente en mijn melding “anoniem” heb gedaan heb ik ook een bericht aan Cybersprint gestuurd om te laten weten dat de melding van mij afkomstig is en dat ik beschikbaar ben voor vragen.

11 oktober 2021: Aan Cybersprint gevraagd om een verwachte datum voor een oplossing zodat ik deze blogpost kan publiceren. Dezelfde dag antwoord gekregen dat de cookiemuur is geïmplementeerd. Ik heb teruggekoppeld dat de cookiemuur nog niet werkt en feedback gegeven hoe beter getest kan worden.

15 oktober 2021: Bericht gekregen van Cybersprint dat de oplossing 22 oktober verwacht wordt.

19 oktober 2021: Gesprek gehad met de CISO en FG van Cybersprint om mijn bevindingen, de maatregelen die Cybersprint neemt en de deze blogpost te bespreken.

23 oktober 2021: Hercontrole van de maatregelen die door Cybersprint zijn genomen en geconstateerd dat er nog steeds tracking zonder toestemming plaatsvindt.

23 oktober 2021: Concept blogpost naar Cybersprint gestuurd voor feedback en Cybersprint op de hoogte gesteld dat de aangekondigde maatregelen niet volledig werken.

29 oktober 2021: Cybersprint heeft laten weten dat er geen cookies meer worden geplaatst zonder toestemming waar toestemming voor nodig is. Dit heb ik gecontroleerd en aan Cybersprint teruggekoppeld.