Met een beetje pech ken je Troy Hunt vooral van zijn bekendste project, Have I Been Pwned. Die database omvat inmiddels meer dan tien miljard e-mailadressen die ooit zijn gestolen bij een datalek. Je kunt de dienst gebruiken om te zoeken of je adres ooit, eh… gepwned is bij een datalek. De Australische Troy Hunt verzamelt grote datalekken uit verschillende bronnen, verifieert de authenticiteit en laadt ze vervolgens in zijn zelfgebouwde tool, zodat gebruikers kunnen nagaan of hun inloggegevens kwetsbaar zijn.
Het project begon in 2013, in een tijd dat datalekken steeds vaker voorkwamen en steeds grotere datasets vaker online werden verhandeld. Er zijn inmiddels diverse soortgelijke diensten, waaronder het Nederlandse Scattered Secrets en de dienst van Auth0, maar Have I Been Pwned is de grootste en bekendste, en daarmee is Troy Hunt dat zelf ook. Hij bouwde en onderhoudt de database met de 10.587.144.426 accounts, verdeeld over 501 websites, helemaal zelf. Op goede dagen krijgt de site tienduizenden bezoekers per dag. Daarnaast staat Hunt bekend om zijn frequente en lange blogposts over hoe hij bepaalde problemen aanpakt of hobbyprojecten uitvoert. Have I Been Pwned klinkt als veel werk voor één persoon. Des te opvallender is dat 'HIBP' niet eens Hunts baan is; het is gewoon een hobbyproject. In werkelijkheid verdient Hunt het meeste geld met spreken in het openbaar, trainingen geven en zijn werk als Microsoft regional director and mvp. Tweakers wilde weten wat hem drijft om een sideproject met zo'n formaat te onderhouden, en wat hij daar allemaal van leert.
Wat was je doel toen je met HIBP begon?
"Have I Been Pwned begon eind 2013. Ik werkte toen nog bij farmaceut Pfizer, maar was in mijn vrije tijd al erg geïnteresseerd bezig met datalekken. Ik blogde erover, vooral nadat ik de Adobe-breach met 153 miljoen accounts in handen kreeg. Later wist ik dat te combineren met mijn werk."
"Bij Pfizer probeerde ik het bedrijf meer naar de cloud te bewegen, specifiek naar Azure en nog specifieker naar een platform-as-a-service. Binnen het bedrijf ging dat wat moeizaam, dus deed ik het zelf. Ik zat zelf vooral in een architecturale rol en had daarom niet zoveel mogelijkheden om echt zelf iets te bouwen. Dat wilde ik wel. Ik zocht eigenlijk een excuus om meer over dit onderwerp te leren en tegelijkertijd met de Adobe-breach kwam dat precies goed uit. Het waren dingen die voor HIBP ook goed van pas kwamen."
"In mijn professionele rol lieten ze me m'n gang gaan. Ik ben erg van de filosofie dat je niet om permissie moet vragen, maar om vergiffenis. Ik deed ook veel in mijn eigen tijd, dat scheelde."
Veel programmeurs willen niet dat van ze verwacht wordt dat ze ook in hun vrije tijd aan software werken.
"Dat snap ik niet zo goed. Het is interessant om naar sommige beroepen te kijken en hoe ze hun werk met hun passie delen. Als voorbeeld: mijn vader was piloot. Hij hield van vliegtuigen, ging naar z'n werk en vloog dan, maar in zijn vrije tijd bouwde hij modelvliegtuigen en keek naar tv-shows daarover, allemaal omdat hij er zo van hield. Ik denk dat dat zo is voor veel mensen in dit vak; we doen het omdat het onze passie is. Het is raar om collega's te zien die dit gewoon als baan doen, maar geen verdere interesse in programmeren hebben. Waarom doe je het dan, als je er niet van houdt?"
Heb je zelf dan een passie voor 'cloud'?
"Ik denk dat cloud sexyer is dan mensen denken. Ik heb hier een boek op de plank liggen: HTML For Dummies. Daarmee begon het voor mij eigenlijk. Ik weet nog goed dat ik begon met het bouwen van websites, rond 1995 of zo. Waar ik vooral enthousiast van werd, was dat ik software kon schrijven die mensen over de hele wereld konden zien en gebruiken, en dat vanaf mijn kamer op de universiteit."
"De cloud liet me dat doen en dan ook nog schaalbaar. Inderdaad, cloud is misschien niet zo sexy als infosec of sites bouwen, maar wat het me liet doen, was wel interessant voor me. Zeker in de eerste jaren blogde ik er best veel over, hoe ik de cloud gebruikte om grote stromen verkeer en grote hoeveelheden data af te handelen tegen de prijs van een kop koffie per dag. Daar reageerden mensen enthousiast op, dus dacht ik: oké, daar moet ik dus mee doorgaan."
Heb je er veel over geleerd?
"Ja, wat ik er vooral zo mooi aan vind, is dat je net zoveel cloud kunt krijgen als je nodig hebt en waar je voor betaalt. Als je meer nodig hebt, dan betaal je meer en krijg je ook meer. Ik was vooral enthousiast over Azure-appservices en platforms-as-a-service, dat je geautomatiseerd kunt opschalen in respons op performance bijvoorbeeld. Daar heb ik triggers voor gemaakt die al 7,5 jaar op Have I Been Pwned draaien."
"Ik heb ook veel geleerd over servers die je kunt inzetten voor tijdelijke, gigantische dataverwerkingsmogelijkheden. Ik heb servers gebruikt die dertigduizend dollar per maand zouden kosten als ik ze nodig had, maar gelukkig gebruikte ik die altijd maar een paar uurtjes. Je moet alleen oppassen dat je ze ook tijdig weer afsluit!"
"Het zijn ook niet altijd concrete vaardigheden. Op het gebied van beveiliging zorg ik bijvoorbeeld voor minimalisatie, ik zorg dat Have I Been Pwned alleen e-mailadressen bevat en geen wachtwoorden. Ik vind het belangrijk om te werken volgens het principe dat je niet kunt verliezen wat je niet hebt."
Wat voor andere dingen heb je geleerd van het werken aan HIBP die je eerst nog niet wist of kon?
"Veel dingen zoals databasemanagement en SQL kende ik al vanuit mijn werk, maar er is nog heel veel dat ik nog wil leren, maar waar ik steeds moeilijker aan toekom. Nog vorige maand heb ik bijvoorbeeld creditcardverwerkingen voor de api opgezet. Zoiets had ik nog nooit gedaan, dus heb ik mezelf met Stripe moeten leren werken. Toen ik serverless ging werken in Azure, heb ik dat moeten leren, en ik heb veel moeten leren over frontend-frameworks, zoals Angular."
"Het plezier daarvan is dat ik het heb moeten leren om er iets nuttigs mee te bouwen. Wat me daarnaast ook heel erg heeft geholpen, was dat ik na een tijdje online veel mensen leerde kennen die me met veel dingen konden helpen."
Kun je HIBP met zoveel werk nog steeds een sideproject noemen?
"Dat doe ik nog wel. Tenminste in zoverre dat ik het doe als passie en niet als werk, en om ervan te leren. Ik heb nog zoveel om te leren, maar ik loop er nu tegenaan dat ik daar geen tijd voor heb. Ik heb zoveel tabbladen openstaan waarin ik mezelf dagenlang zou kunnen verliezen. Ik wil nog leren om statische websites in Azure te maken die communiceren met een backend, ik wil dieper in Stripe-api's duiken, want die zijn suboptimaal op HIBP, ik wil api-management in Azure leren om verschillende tiers te kunnen maken met bepaalde rate limits, ik zou willen dat ik git beter begreep voor betere deployment richting Azure…"
Zijn dat allemaal dingen die je wil leren om HIBP beter te maken?
"Sommige wel, maar ik doe de laatste tijd ook erg veel dingen buiten HIBP om. Dat doe ik om mezelf te verbeteren. In 2020 ben ik lang bezig geweest met iot. Ik wilde mijn garagedeur automatiseren en zes maanden en duizenden dollars later heb ik er een hele serie blogposts over geschreven."
"Het zijn coole, geeky dingen waar ik blij van word. Ik heb het geluk dat ik kan kiezen of dat voor een passie is of voor werk."
"Ik wil er ook beter van worden. HIBP kent genoeg zwakke punten, ik weet dat veel van de code die ik schrijf, niet goed is. Omdat ik het in m'n eentje doe, heb ik de mogelijkheid om shortcuts te nemen waar ik zelf mee weg kan komen, maar wat ik misschien beter niet zou kunnen doen. Sinds kort maak ik geleidelijk aan mijn code open source, een verschrikkelijk proces. Er zijn zeker veel dingen aan HIBP die veel mensen een stuk beter kunnen maken dan ik."
Heb je er dan nooit over nagedacht om daar mensen voor aan te nemen?
'Het zijn coole, geeky dingen waar ik blij van word'
"Ik heb daar veel over nagedacht, maar het klinkt als veel verantwoordelijkheid. Met meer mensen wordt iets niet automatisch beter. De kennisoverdracht alleen al kost zoveel tijd, en je moet nieuwe dingen leren, zoals mensen aansturen of hoe salarisadministratie werkt..."
"Zeker, nieuwe mensen hebben hun eigen voordelen, maar veel onderdelen van HIBP komen daar al vandaan. Die zijn gemaakt door gebruikers uit de community, en collega's van Microsoft hebben me veel geholpen met andere dingen. De sweet spot is voor mij om precies genoeg te doen, zodat het blijft werken en het me blij maakt, maar tegelijkertijd om te erkennen dat er ook veel is waar je nog wat aan moet doen."