Beheer

Security
Belastingdienst

Hoe een ethisch hacker wist binnen te dringen bij de Belastingdienst

Simpele zoekopdracht en multifactor authentication-fout maakte hack eenvoudig.

25 februari 2022

Simpele zoekopdracht en multifactor authentication-fout maakte hack eenvoudig.

Alles kan gehackt worden, zo ook de Belastingdienst. En soms is dat niet eens heel moeilijk. Dat bewees ethisch hacker en developer Jelle Ursem – op social media beter bekend als SchizoDuckie – vorig jaar, toen hij wist binnen te dringen bij de fiscus, waar hij een bokaal voor ontving als beloning. Zijn advies aan softwareontwikkelaars en bedrijven wereldwijd klinkt nu: “Check welke repositories je kunt vinden voor jouw bedrijf.”

Het is november 2021 als Ursem op GitHub een repository van de Belastingdienst op het spoor komt. De softwareontwikkelaar – die in zijn vrije tijd als ethisch hacker actief is – doet wat hij vaker doet: bij GitHub in het zoekveld een bedrijfsnaam samen met het woord ‘password’ intypen. Op die manier probeert hij interessante repositories (waarin softwarepakketten opgeslagen zijn) met potentiële beveiligingsproblemen te vinden, die mogelijk weer naar andere ingangen in een bedrijf leiden. Van dergelijke beveiligingsgaten maakt hij dan melding bij de organisatie in kwestie. “Ik wilde de Belastingdienst gewoon eens proberen, omdat ik nog nooit naar hen had gezocht.”

De repository die hij op deze manier weet te vinden, is van een werknemer van de Belastingdienst en staat openbaar op GitHub. “Daarin stond een verwijzing naar zijn privéomgeving op GitLab, met de inloggegevens.” Ursem logt in en vindt daar talloze wachtwoorden, waaronder de admin-inloggegevens van een Azure-omgeving van de Belastingdienst. “Best eng, want niet alleen ik kan dit. Ook iemand van 13 jaar zonder geweten kan dit vinden. En staatshackers ook.“

Ursem probeert de inloggegevens uit en ze blijken te werken. “Het is de Belastingdienst, dus ik zat echt te shaken. Ik dacht: volgens mij heb ik iets wat echt is.” Toch was hij nog niet helemaal binnen: de omgeving is beschermd met multifactor authentication (MFA). Ursem besluit zijn rapport over zijn bevindingen tot nu toe af te ronden, zodat hij deze via responsible disclosure met de Belastingdienst kan delen. Maar tijdens het schrijven van dat rapport ziet hij tot zijn ontsteltenis dat de eigenaar van het account het MFA-verzoek geaccepteerd heeft. Dat betekent dat Ursem in een Azure-ontwikkelomgeving van de Belastingdienst is binnengekomen. “Toen had ik het helemaal niet meer!”

Dat de IT’er het MFA-verzoek accepteerde, lijkt op het eerste oog vreemd. Toch zijn er wel scenario’s waarin dit goed te verklaren is. “Ik denk dat hij eerder bij een serviceaccount in een configuratiestap een fout heeft gemaakt, waardoor er nu steeds een MFA-popup getriggerd wordt. Dus dan komt dat verzoek vaker naar boven. Op die manier word je blind voor de MFA-verzoeken en dat is natuurlijk gevaarlijk.”

Groot risico

De omgeving waar Ursem in terechtkomt, blijkt een Office 365 adminportaal te zijn. “Dat is vaak een omgeving waar je virtual machines kunt aanmaken en de complete omgeving tot je beschikking hebt”, legt Ursem uit. “Dit was een aparte omgeving die de medewerker zelf opgezet had. Dus die stond wel los van de rest van de infrastructuur en er stonden geen klantgegevens op. De omgeving at alleen logs op die uit allerlei mobiele applicatie-ontwikkelomgevingen kwamen en verwerkte die.”

Toch kan toegang tot een dergelijke omgeving wel degelijk een risico zijn. “Je bent administrator, dus vanuit daar heb je een stronghold naar de rest. Je hebt bijvoorbeeld een vertrouwd e-mailadres dat aan de Belastingdienst gelieerd is. Dus vanuit daar kun je verder gaan werken. En vanuit deze omgeving kun je door naar het eerstvolgende systeem en proberen daar binnen te dringen. Je kunt een laptop infecteren of kijken waar deze administrator nog meer toegang toe heeft. Want ook een aantal keys van de apparaten waarmee hij toegang had tot die servers stonden in zijn repository. Ik had me kunnen voordoen als één van die apparaten en daarmee verder kunnen komen.”

Normaal gesproken blijft Ursem enige tijd in een omgeving als hangen, om verder onderzoek te doen. Zo kijkt hij vaak of er ook betaalgegevens aan een omgeving hangen. Maar in dit geval besluit hij dat niet te doen, want door het feit dat hij met de Belastingdienst te maken heeft, knijpt hij hem toch wel. “We hebben allemaal gelezen hoe zuur ze het je kunnen maken.”

‘Zou hem een baan aanbieden’

De ethisch hacker besluit zijn rapport af te ronden en op te sturen naar de Belastingdienst, met het woord ‘Urgent’ in de onderwerpregel. Daarna kijkt hij verder in de GitLab-repositories van de IT’er van de overheidsorganisatie, waar hij ook backups van zijn NAS vindt en het telefoonnummer dat gebruikt werd voor de MFA. Na enige tijd besluit hij de IT’er te bellen en hem te helpen met het verhelpen van het probleem. Ondertussen blijkt de IT’er zelf ook al benaderd te zijn door het Security Operations Center (SOC) van de Belastingdienst, dat de melding van Ursem gezien had en snel actie ondernam. “Die jongen wist niet meer hoe hij het had. Hij had echt wel even kortsluiting”, vertelt Ursem. “Maar ik heb hem geholpen zijn repo’s te nuken en nieuwe keys te genereren.”

De bokaal die Jelle Ursem kreeg van de Belastingdienst (klik om te vergroten) © Jelle Ursem

En hoewel Ursem via een fout van deze IT’er binnen kon komen, heeft hij wel respect voor hem. “Ik zou hem zelf een baan aanbieden. Hij heeft namelijk wel de vaardigheden om zo’n infrastructuur op te zetten en alles aan elkaar te knopen. Bovendien maakt hij deze fout nooit meer. Ik denk zelfs dat iedere developer zo’n eye opening-moment nodig heeft. Daarom maken we dit ook openbaar: we [Ursem en de Belastingdienst, red.] willen er aandacht voor krijgen. We willen mensen bewust maken van dit soort fouten.”

Voorkom fouten

Het beveiligingslek bij de Belastingdienst liep uiteindelijk met een sisser af: rond half 11 ’s avonds – zo’n 6,5 uur nadat Ursem zijn melding maakte – was het probleem volledig verholpen. Voor zijn inspanningen ontving hij een bokaal als beloning, met daarop de tekst: “I hacked the Dutch Tax Administration and never got a refund” (“Ik hackte de Nederlandse Belastingdienst en kreeg geen geld terug.”

Het verhaal deelt hij nu – met toestemming van de Belastingdienst – om anderen bewust te maken van dit soort fouten. Zo deelde hij het verhaal vlak voor de Kerst op Twitter. “Eigenlijk moet dit niet meer kunnen in 2022, dat je nog wachtwoorden in je code stopt. Maar het gebeurt nog steeds. Dus daar wil ik meer aandacht voor vragen, want blijkbaar weten mensen dit niet.”

Daarnaast adviseert hij bedrijven om zelf in GitHub te gaan zoeken naar repositories. “Log gewoon eens in op GitHub en zoek naar de interne domeinnamen en het .nl-domeinnaam  die je als bedrijf hebt. Want het engste van dit alles is dat je als bedrijf dingen zo goed kunt doen, maar nooit iemand die zijn werk even mee wil nemen naar huis kunt tegenhouden. Een repository op GitHub is in twee minuten aangemaakt en die zijn automatisch openbaar. Die moet je zelf privé maken. Mensen zijn zich er dus niet eens van bewust dat ze proprietary dingen openbaar maken. Zo omzeil je alles wat er aan securitymaatregelen is aangemaakt binnen het bedrijf.”

De laatste tip is dan ook aan softwareontwikkelaars en anderen die repositories met dingen van werk aanmaken: maak hem privé.

Reactie Belastingdienst

De Belastingdienst bevestigt in een schriftelijke reactie aan AG Connect het verhaal van SchizoDuckie:

“De Belastingdienst kan bevestigen dat SchizoDuckie in november 2021 toegang had tot een ontwikkelomgeving van de Belastingdienst. Er is intensief geweest tussen het Security Operations Center (SOC) van de Belastingdienst en SchizoDuckie over de melding die door hem is gedaan. Door een menselijke fout kon SchizoDuckie toegang krijgen tot deze ontwikkelomgeving. De Belastingdienst heeft SchizoDuckie de ruimte gegeven om hierover te publiceren. De Belastingdienst wil namelijk bewustzijn creëren voor het feit dat zelfs met multi-factor beveiliging de mens een zwakke schakel kan zijn.

Er is geen sprake geweest van toegang tot persoonsgegevens of fiscale informatie van burgers. Deze gegevens waren immers niet aanwezig in de ontwikkelomgeving waar SchizoDuckie toegang tot had verkregen. Er is dus ook geen sprake geweest van een datalek voor de AVG.”

De organisatie benadrukt verder dat ethische hackers uitgenodigd worden om beveiligingslekken bij hen te melden. “Afspraken hierover zijn te vinden op belastingdienst.nl/security. SchizoDuckie heeft zich overigens keurig aan deze afspraken gehouden en het contact hierover verliep goed. Als dank voor zijn melding heeft SchizoDuckie een bokaal ontvangen van de Belastingdienst.”

1
Reacties
RBx 25 februari 2022 18:34

Mja dat is het nadeel wanneer je van developers ook beheerders en netwerkarchitecten gaat maken, de meeste zeggen daar geen nee tegen DevOps. Ik ben wel van de oude stempel maar vind nog steeds dat vooral grotere organisaties het echt moeten opsplitsen tussen Beheer, ontwikkeling en security het zijn echt 3 aparte specialisaties. een van de tegens waarom men dit niet meer wilt is omdat er moeilijkheden in de communicatie zijn maar dit is dus precies de reden waarom het moeilijk is voor deze 3 groepen om samen te werken developers (zoals ik) kunnen echt niet overzien wat de impact van een applicatie op netwerkniveau kan zijn en de consequenties voor security.

Maar ja iedereen wilt graag "senior" snelle jongens die net afgestuurd zijn met 3-5 jaar ervaring en alles goed weten te vertellen en geen vragen stellen. Het is jammer dat ZZP-ers niet meer welkom zijn bij de belastingdienst.

Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.