De Vattenfall case – Responsible Disclosure
Als ethisch hacker doe ik jaarlijks verschillende meldingen bij bedrijven van grote datalekken. Ik ben er vaak niet eens naar op zoek, kom ze meestal bij toeval tegen en ze vallen mij gewoon op. Ik meldde bij een webshop dat ik de gegevens 40.000 klanten kon inzien, bij een marketingbureau dat ik meer dan 1.000 websites over kon nemen en bij een bank dat ik de mailadressen van klanten kon inzien. Soms krijg ik een beloning, soms niet eens een “dank je wel”. Ik schrijf hier eigenlijk nooit over. Totdat ik een lek ontdekte bij Vattenfall.
Administratie is niet mijn sterkste punt. Toen ik bericht kreeg van Vattenfall dat ik mijn meterstanden door moest geven belandde dat op de “dat moet ik nog een keer doen”-stapel. Gelukkig hebben ze hier ervaring mee en sturen ze je herinneringen. Zo’n herinnering sturen ze bijvoorbeeld per SMS.
Wat superhandig is, is dat als je op de link klikt, je direct je meterstanden in kan voeren. Alles was al ingevuld: mijn naam, adres, contactgegevens, nummer van de meter en de laatst bekende meterstand. Alleen de meterstanden zelf hoefde ik nog maar in te vullen. Hier maakte ik dan ook dankbaar gebruik van.
Een dag later bedacht ik mij hoe raar dit eigenlijk was. In een SMS kun je namelijk niet heel veel tekens kwijt, dus alleen op basis van de code “h2G5” zijn al mijn gegevens in te zien. Ik begon te rekenen hoeveel combinaties er theoretisch mogelijk waren. Dit zijn er (26 + 26 + 10)^4 = 14.776.336. Dat lijkt veel, maar met 100 pogingen per seconde ben je na 41 uur klaar. Ik besloot om er een paar duizend te proberen. Al snel kon ik inderdaad de gegevens van andere klanten inzien en hun meterstanden doorgeven.
Impact lek
Een van de basisregels van een responsible disclosure is dat je proportioneel te werk gaat. Dat betekent in dit geval dat je niet de servers overbelast en niet de gegevens van alle klanten zomaar download. Het is belangrijk om je aan deze regels te houden, omdat toen ik de aanval startte feitelijk computervredebreuk pleegde, een strafbaar feit waar een gevangenisstraf van ten hoogste vier jaar op staat. Het Openbaar Ministerie start echter geen onderzoek (ook niet in geval van aangifte) wanneer het gaat om een responsible disclosure en de ethisch hacker zich houdt aan de voorwaarden.
In dit geval kon ik aan de reactie van de server afleiden of op een bepaalde code (zoals in mijn geval h2G5) gegevens aanwezig waren, zonder deze gegevens daadwerkelijk te hoeven te downloaden. Op deze manier kon ik vaststellen dat het om de gegevens van 25.000 huishoudens gaat. Het lek is redelijk makkelijk te vinden, waardoor de kans aanwezig is dat iemand dit al eerder gevonden heeft. Deze gegevens zijn bij uitstek ideaal voor fraude, bijvoorbeeld door een “nacalculatie” op te sturen voor het verbruikte gas / elektra. Maar ook het manipuleren van meterstanden in de factureringssystemen kan vervelende gevolgen hebben.
Reactie Vattenfall
Vattenfall heeft een responsible disclosure programma waarin ze beloven binnen 5 werkdagen te reageren en aan te geven wanneer het probleem opgelost wordt. De melding moet gedaan worden bij een extern bedrijf welke de afhandeling regelt.
Op 28 oktober deed ik melding van het lek en een dag later kreeg ik bevestiging van de tussenpartij. Ze erkenden het probleem en gaven aan Vattenfall geïnformeerd te hebben. Daarna werd het stil.
Omdat er halverwege december, ondanks herinneringen, nog steeds geen inhoudelijke reactie was, besloot ik het probleem wereldkundig te maken. Dit is een zwaar middel, aangezien een dergelijk bericht vaak leidt tot imagoschade. Toch woog het belang van de 25.000 huishoudens zwaarder, zij weten immers niet eens dat ze gevaar lopen.
Na een aantal dagen begon het bericht viral te gaan. Honderden mensen liketen het bericht en in totaal kreeg de post meer dan 84.000 views. Verschillende personen die bij Vattenfall werkten bekeken mijn profiel. Na een week verscheen een reactie van Vattenfall op LinkedIn waarin geclaimd werd dat ze al die tijd heel druk bezig waren, maar vergeten waren op mijn berichten te reageren. Gelukkig hebben ze het inmiddels opgelost.
De fix bleek echter een haastklus geweest te zijn. Er was inderdaad iets veranderd, maar alle gegevens waren nog steeds inzichtelijk. Het gapende gat was nog net zo groot. Uiteindelijk zou Vattenfall 3 pogingen nodig hebben om het probleem daadwerkelijk op te lossen.
Een aantal dagen later reageerde Vattenfall opnieuw waarin de suggestie gewekt werd dat ik wel op de hoogte gehouden werd, maar niet op de juiste plek keek.
Een bezorgde klant melde navraag gedaan te hebben bij Vattenfall. Deze kreeg als reactie dat Vattenfall geen indicatie had dat er ook daadwerkelijk gegevens voor iemand anders zichtbaar geweest zijn.
Uiteindelijk heeft Vattenfall op 3 januari het lek succesvol weten te dichten. Dit was de derde poging. Als dank heb ik een beloning gekregen van €250,- en hebben ze aangegeven een interne evaluatie te doen op deze case. Tot op heden zijn klanten niet geïnformeerd over dat hun gegevens toegankelijk waren.
Hoe wel om te gaan met Responsible Disclosures?
Waar gewerkt wordt, worden fouten gemaakt. Het is daarom belangrijk dat voordat software naar productie gaat, gecontroleerd wordt op veiligheid. Dit kan met een zogenaamde pentest. Maar zelfs dan kan het gebeuren dat er iets doorheen glipt. Belangrijk is daarom te blijven communiceren met de melder en een openstaand lek snel te dichten of tijdelijk een systeem te sluiten. Daarnaast is de kans aanwezig dat de melder niet de eerste is die het lek ontdekt, controleer daarom of er al eerder misbruik van is gemaakt. Als laatste is het gebruikelijk om de melder indien het gaat om een serieus lek een beloning te geven. Niet alleen zit er meestal een hoop tijd in een degelijke melding, maar in sommige gevallen zijn ethische hackers ook afhankelijk van deze bounties.