Jobert Abma en Michiel Prins runnen vanuit San Francisco het bedrijf HackerOne. Dat onderzoekt voor ongeveer 1700 organisaties wereldwijd of er beveiligingslekken in hun systemen zitten. Denk aan het Amerikaanse ministerie van Defensie, Google, Dropbox en Twitter. HackerOne doet dat op een bijzondere manier: elke wereldbewoner kan zich aanmelden als infiltratietester.
Na een selectieprocedure kun je aan de slag als ‘whitehat’-hacker en verdien je een geldbedrag per gevonden kwetsbaarheid. In 2019 verdienden de freelancers van HackerOne samen zo veertig miljoen dollar. Acht hackers overschreden daarbij het miljoen, dertien verdienden minimaal 500.000 dollar en 146 hackers haalden meer dan een ton binnen.
Het zaadje voor HackerOne werd geplant in 2001. Toen maakten de elfjarige vrienden Jobert Abma en Michiel Prins uit Drachten een website waarop ze artikelen publiceerden met programmeertips. “Op een dag bleek onze website gehackt. Op de voorpagina stond: haha gehackt”, vertelt Prins. Deze gebeurtenis intrigeerde de twee. “We waren niet boos, maar erg benieuwd hoe dat die persoon was gelukt. Dus probeerden we zelf onze eigen website te hacken. We kwamen er zo achter dat de hacker waarschijnlijk gebruik had gemaakt van sql-injectie.”
Vanaf toen was het hek van de dam. “We kraakten Age of Empires: we bemachtigden de landkaart waarop alle vijanden zijn gelokaliseerd, zonder eerst alle levels uit te spelen. Op school ontdekten we een kwetsbaarheid in het systeem waarmee roosteraanwijzingen werden gepubliceerd en we plaatsten daarop onze eigen mededelingen.”
Intussen maakten de ouders van de twee vrienden zich wat zorgen over hun hack-activiteiten. Prins: “Ze beseften dat het om een handige vaardigheid ging, maar ook dat we het risico liepen om het slechte pad op te gaan, of ten onrechte achter de tralies te belanden. Daarom moedigden ze ons aan om ons in te schrijven bij de Kamer van Koophandel en onze diensten aan te bieden aan bedrijven.” Het duo was inmiddels gaan studeren in Groningen.
Het was lastig om klanten te vinden. “Wie gaat er nu in zee met twee jongens van tienerjongens?” Daarvoor bedacht het tweetal een oplossing. “We bezochten elke week een netwerkborrel van plaatselijke ondernemers en besloten hen uit te dagen: als we jouw systeem onderzoeken en we vinden geen kwetsbaarheid, dan krijg je van ons een taart.”
Elke ondernemer die ze aanspraken, ging op die uitdaging in, maar Prins en Abma hoefden nooit een taart te kopen. Het effect was wel dat een aantal ondernemers de jongens inhuurde. Zo ging het balletje rollen en. “Uiteindelijk werkten we via ons bedrijf Online24 onder meer voor de Nederlandse overheid en voor de Dienst Uitvoering Onderwijs.”
Naar San Francisco
Prins ging voor zijn informatiestudie in de binnenstad van Groningen stage lopen bij Codigy. Op die werkplek ontmoette hij Merijn Terheggen van Kalooga, die na een studie medische wetenschappen in Maastricht een start-up was begonnen in Silicon Valley. Inmiddels had hij dat bedrijf verkocht, maar hij had nog steeds een huis in San Francisco.
Prins: “Ik had geen idee waar San Francisco lag. Maar toen ik het onderzocht bleek het dat Google, Facebook en Twitter daar gevestigd waren. Het leek me daar hartstikke cool, en ik stelde voor om er samen heen te gaan. Merijn, Jobert en ik vlogen naar San Francisco. Daar zaten we dan, in een soort Starbucks, met onze laptops opengeklapt. We dachten: we kunnen ofwel als toeristen de bezienswaardigheden van San Francisco langsgaan, of we kijken of we hier klanten kunnen vinden.”
Abma en Prins maakten een spreadsheet met honderd technische bedrijven in Silicon Valley, waaronder Facebook, Google, Apple, Microsoft, and Twitter. Van elk van die bedrijven speurden ze een kwetsbaarheid op. Daarna benaderden ze elk bedrijf op de lijst. In sommige gevallen kregen ze een reactie, zoals van Facebook. Daar bracht COO Sheryl Sandberg hen in contact met hoofd productbeveiliging Alex Rice.
In veel andere gevallen vingen Abma en Prins bot. “Of we nu belden of mailden, we bereikten zelden de juiste persoon: een ingenieur op de ontwikkelafdeling die ons verhaal zou begrijpen en de kwetsbaarheid kon verhelpen. Vaak hadden bedrijven geen idee waar we het over hadden, terwijl we nota bene expres technische bedrijven als doelwit hadden gekozen.”
Zo ontstond de inspiratie voor HackerOne. Prins: “Als het voor ons al zo lastig was om kwetsbaarheden te vinden, terwijl we vasthoudend en gestructureerd te werk gingen en bovendien ervaring hadden met het melden van kwetsbaarheden aan opdrachtgevers, hoe moest dat dan wel niet zijn voor gewone hackers? We beseften dat er wereldwijd continu kwetsbaarheden werden gevonden door getalenteerde personen, maar dat de betrokken bedrijven daar zelden over hoorden.”
“Hackers drongen niet tot de juiste personen door of durfden geen contact te zoeken. Er was een bemiddelende instantie nodig, een veilige haven.” In 2012 werd HackerOne opgericht, door Merijn Terheggen, Michiel Prins, Jobert Abma en Alex Rice van Facebook.
De hackers van HackerOne proberen op afstand te infiltreren in de systemen van zo’n 1700 opdrachtgevers. Als dat lukt, melden ze de hack op de website van HackerOne. Vervolgens probeert een HackerOne-medewerker de hack te reproduceren. Als dat lukt en het betreft een kwetsbaarheid is die nog niet eerder gemeld is, dan krijgt de klant bericht. De hacker verdient een premie, waarvan de hoogte van tevoren is bekendgemaakt op de website.
Beste hackers
Toen x1m – alias Martijn Baalman – voor het eerst over HackerOne hoorde, was dat een openbaring. “Ik wilde al een tijdje graag hacken, maar ik associeerde die activiteit vooral met gevangenisstraf. Ik wist niet dat je er ook een professionele toekomst op kunt baseren.” Al van jongs af aan experimenteerde Martijn op de pc van zijn vader. “Ik onderzocht bijvoorbeeld of ik kon valsspelen in games door onderdelen van de software te wijzigen.”
Hij begon als achttienjarige aan een ict-opleiding, maar moest die afbreken wegens privéomstandigheden. Daarna had hij verschillende banen in de horeca. In zijn vrije tijd bleef Martijn bezig met computers. Het ontging hem niet dat veel websites, ook van overheidsinstellingen, slecht beveiligd waren. “Zo’n tachtig tot negentig procent van de online systemen had kwetsbaarheden.” Iets doen met deze informatie, durfde Martijn niet. Alleen als organisaties een ‘responsible disclosure’-beleid hadden opgesteld, kwam hij in actie.
“Ik informeerde op deze manier de Belastingdienst en het Nationaal Cyber Security Centrum (NSCS) over beveiligingslekken.” Van de eerste organisatie ontving Martijn een trofee, van de tweede een T-shirt. Op vijfentwintigjarige leeftijd begon Martijn opnieuw aan een studie informatica. “In de eerste week van die studie stuitte ik toevallig op een interview met Jobert over legaal hacken. Dat was nieuw voor mij. Tot dan toe was mijn plan geweest om ontwikkelaar te worden, maar daarna heb ik me volledig op het hacken gestort. Zowel in mijn vrije tijd, als in mijn opleiding.
Inmiddels behoort Martijn tot de 1584 beste hackers van HackerOne, geen geringe prestatie op een totaal van ongeveer 600.000 geregistreerde hackers. Die positie heeft hij behaald dankzij zijn grote handigheid in het infiltreren in mobiele app-platforms.
Zo verwierf hij zichzelf toegang tot een database met alle e-mailadressen van alle gebruikers van een app. Ook nam hij het zakelijke Twitter-account van een bedrijf achter een app over. “Ik had opeens 120.000 volgers. Ik heb één testbericht verstuurd en dat daarna meteen weer verwijderd.”
Martijn werkt als pentester bij het Groningse beveiligingsbedrijf Qbit. In zijn vrije tijd is hij daarnaast twintig tot dertig uur in de week bezig met de jacht op zogeheten bug bounty’s. Inmiddels heeft hij daarom ook zijn eigen bedrijf opgericht, Hacksclusive.
“In het begin was ik niet zo bezig met de financiën. Ik liet mijn premies gewoon storten op mijn PayPal-account. Maar toen klopte de belasting aan. Sindsdien heb ik het allemaal netjes geregeld en draag ik keurig belasting af over al mijn inkomsten.”
Wie een kwetsbaarheid vindt, meldt die op de website van HackerOne. HackerOne vraagt hackers dat op een gestructureerde manier te doen en ook stap voor stap instructies te geven over hoe de hack kan worden herhaald. Vervolgens controleert HackerOne of de melding klopt en of je de eerste bent die deze melding doet.
Behalve dat je een premie kan verdienen, verhoog je met elke gerapporteerde kwetsbaarheid ook je ‘reputatie’. HackerOne houdt per hacker statistieken bij. Behalve om je reputatie gaat het daarbij ook om het gemiddelde aantal reputatiepunten dat je verdient per ingediend rapport en om de gemiddelde ernst van de kwetsbaarheden die je vindt.
Wie goed presteert op al deze drie aspecten, loop je de kans uitgenodigd te worden voor een Private Program, zoals Martijn inmiddels enkele malen is overkomen. “Privé-programma’s zijn over het algemeen lucratiever, omdat er maar enkele tientallen hackers aan meedoen. Daardoor is de kans veel groter dat je een bepaalde kwetsbaarheid als eerste vindt.”
Ook tijdens live-hacking-events vallen op deze manier premies te verdienen. Die vinden normaal overal ter wereld plaats. Er wordt een select groepje freelancers voor ingevlogen. In 2019 keerde HackerOne op deze events in totaal 3,8 miljoen dollar aan prijzengeld uit.
Zelf hacker worden
Bijzonder aan HackerOne, in vergelijking met veel andere bug bounty-platforms, is dat een aardig deel van de uitdagingen openstaat voor iedereen. Elke wereldburger kan zich op de website registreren door het aanmaken van een gebruikersnaam en wachtwoord. Daarna kunnen aspirant-hackers meteen op zoek naar een ‘hackable target’.
Vanaf een overzichtspagina kun je alle openbare programma’s bekijken, ze sorteren op bijvoorbeeld premiehoogte of een selectie uitfilteren. Zo kun je de voorkeur geven aan een bepaald platform – zoals de App Store, Android Play Store of Windows Microsoft Store – of kiezen voor projecten die gericht zijn op IoT-apparaten of andere hardware.
In alle gevallen is het belangrijk de voorwaarden van de verschillende programma’s goed te lezen. HackerOne stelt in samenspraak met elke klant duidelijke regels op. Daarbij gaat het onder meer over welke systemen wel en niet mogen worden getest. Zo is Sony bijvoorbeeld wel geïnteresseerd in het opsporen van beveiligingslekken in het PlayStation 4-systeem, maar niet in vorige versies en ook niet in hacks van de eigen ict-infrastructuur. Zolang hackers zich aan de opgestelde regels houden, hoeven ze niet bang te zijn voor vervolging.
Premies variëren op HackerOne van een tientje tot duizenden dollars per gevonden kwetsbaarheid. Daarnaast zijn er ook veel opdrachten waarvoor helemaal geen premie wordt uitbetaald, maar waarmee je enkel reputatiepunten kunt verdienen. Ook Martijn meldt weleens gratis een bug, zoals aan het Amerikaanse ministerie van Defensie. “Het is leuk om een overheid te mogen hacken zonder dat je in de gevangenis terechtkomt.”
Ook meldde hij ooit gratis een kwetsbaarheid aan een grote autofabrikant via de website van HackerOne. “Ik ontdekte dat je een formulier op hun website kon misbruiken, waar mensen subsidies konden aanvragen voor sponsoring van een auto-evenement. Een van de invoervelden bleek vatbaar voor cross-site scripting. Door gebruik te maken van ‘blind xss’ kon ik screenshots maken van het scherm van de admin. Ik kon alle subsidieaanvragen inzien, inclusief de persoonlijke gegevens van de indieners. Ook kon ik de sessie overnemen als ik dat wilde.”
Om te hacken kun je verschillende tools inzetten, zoals Burp Suite. Daarmee kun je alle ingaande en uitgaande data afvangen en eventueel aanpassen. Maar met enkel tools kom je er niet als hacker. Je zult zeker een aantal verschillende programmeertalen moeten beheersen. Zo is Martijn aardig bekwaam in Python, Golang en JavaScript.
Swift en Java kent hij vooral passief. “Ik kan ze niet schrijven, maar wel lezen.” Tijdens de analysefase onderzoekt hij eerst hoe een programma in elkaar steekt. “Ik probeer te achterhalen hoe de ontwikkelaars hebben gedacht en welke oplossingen ze gevonden hebben. Vervolgens tracht ik te bedenken hoe je die oplossingen zo kunt gebruiken, dat de uitkomst heel anders is dan de ontwikkelaars hebben voorzien.”
Gewoon beginnen
Een ander uniek aspect van HackerOne is het eigen trainingsprogramma. Voor aspirant-hackers die nog te weinig skills in huis hebben om succes te boeken zijn er video’s en huiswerkopdrachten. Daarin leer je over veelvoorkomende kwetsbaarheden en hoe je die kunt vinden. Ook leer je door de ogen van een infiltratietester naar software te kijken. Wie het trainingsprogramma afrondt, kan binnen een simulatieomgeving op de website de opgedane kennis proberen toe te passen.
Als dat goed lukt, kun je uiteindelijk zelfs uitgenodigd worden voor privéprogramma’s. Martijn: “Ik ben niet meteen begonnen met hacken, maar las in het begin eindeloos de rapporten die andere hackers hadden ingediend over de kwetsbaarheden die ze meldden. Daarnaast probeerde ik mijn opgedane kennis toe te passen in Capture the Flag-simulatieomgevingen.”
Om een succesvolle hacker te worden, moet je volhardend zijn. Het kan jaren duren voordat je er je brood mee kunt verdienen en al helemaal om tot de top door te dringen. Martijn: “De top 100 beste hackers van HackerOne hebben bijna allemaal op hoog niveau binnen de ict gewerkt. Ze hebben vaak minimaal tien tot vijftien jaar ervaring met hacken. Ze zien daardoor heel snel wat er mogelijk niet klopt aan een applicatie.”
Voor wie ook aan de slag als hacker wil, heeft Martijn een belangrijk advies: “Begin gewoon. Veel mensen die graag hacker willen worden, hebben daar al veel over gelezen. Ze bezitten een schat aan theoretische kennis. Vaak hebben ze die kennis nog nooit geprobeerd toe te passen. Terwijl het in de praktijk toch vaak net weer wat anders werkt, en je zo ook het meest leert.”
Tekst: Jolein de Rooij
Publicatie door: PCMweb.nl