Hoewel de handel in zero-day kwetsbaarheden al jaren plaatsvindt hebben onder andere publicaties op basis van WikiLeaks-documenten het onderwerp ook onder de aandacht gebracht van privacy-activisten, politici en zelfs mainstream media. Maar wat zijn zero-day kwetsbaarheden nou precies, hoe ziet de wereld van zero-day trade in elkaar en wat zijn de belangrijkste dilemma’s?
Een kwetsbaarheid is een afwijking in programmacode (een bug) die misbruikt kan worden om de functionaliteit van de software die de kwetsbaarheid bevat te saboteren. Doorgaans hebben we het over kwetsbaarheden in code die op afstand kunnen worden misbruikt. Door deze kwetsbaarheden kan de aanvaller de kwetsbare software precies laten doen wat hij wil. Hiervoor moet deze eerst kennis inwinnen over de kwetsbaarheid, vervolgens een stukje software (een exploit) ontwikkelen waarmee de kwetsbaarheid kan worden uitgebuit en dan de code afleveren die bij de uitvoering van de exploit helpt het uiteindelijke doel te bereiken (data ontvreemden, spioneren of het versleutelen van alle documenten): de payload.
Wat doet een hacker met een kwetsbaarheid?
Deze afbeelding laat het pad zien dat een kwetsbaarheid doorgaans aflegt. Op een dag maakt een software-ontwikkelaar een fout in de code waaraan hij werkt, bijvoorbeeld voor Adobe Flash. De code wordt gepubliceerd als onderdeel van een nieuwe versie van Flash. Na enige tijd ontdekt een hacker deze bug en ontwikkelt als proof of concept een exploit die inspeelt op de kwetsbaarheid.
Op dit punt heeft de hacker enkele keuzes:
- Het publiekelijk online bekendmaken van de kwetsbaarheid (full disclosure)
- Het melden van de kwetsbaarheid bij Adobe (responsible disclosure)
- Geld verdienen met de kwetsbaarheid door deze te verkopen aan een handelaar
- Geld verdienen met de kwetsbaarheid door er malware van te maken
- De kennis over kwetsbaarheid voor zichzelf houden
Wanneer wordt een zero-day een ‘gewoon lek’?
Afhankelijk van de mogelijke impact van de kwetsbaarheid zal de leverancier direct aan de slag gaan met een patch. Als de kwetsbaarheid actief geëxploiteerd wordt gebeurt dit sneller dan wanneer de kwetsbaarheid alleen bekend is bij degene die het ontdekt heeft en de leverancier. In dat geval wordt de patch beschikbaar gemaakt voor de gebruikers van de software. Op dat moment wordt het feit dat de software een kwetsbaarheid bevat publiek (sommige mensen noemen het een zero-day tot het moment dat er een patch beschikbaar is). Gebruikers kunnen zichzelf dan beschermen door de patch te installeren. Uiteindelijk, als iedereen de patch heeft toegepast (wat zelden gebeurt), is de kwetsbaarheid niet langer een risico.
Wie zijn er betrokken bij zero-day-kwetsbaarheden?
Het voorbeeld laat al zien dat er nogal wat verschillende partijen betrokken zijn bij een kwetsbaarheid. Er is een onderscheid tussen degenen die de kwetsbaarheid ontdekken en degenen die deze uitbuiten. Deze worden samengebracht door de partijen die handelen in kwetsbaarheden. Aan de kant van het ontdekken van de zero-day hebben we de zogenaamde ‘Blackhat’ hackers uit het criminele milieu, professionele security-onderzoekers, medewerkers van inlichtingendiensten, cybercriminelen, handhavers en verkopers van spyware.
Cybercriminelen
Cybercrime is er in vele vormen en in veel gevallen zijn er geen zero-days voor nodig. Vormen van cybercrime die erop zijn gericht om je computer over te nemen zijn echter wel afhankelijk van kwetsbaarheden en het gebruiken van zero-days is doorgaans effectiever dan het gebruiken van kwetsbaarheden waar al een patch voor uitgebracht is. Je ransomware raakt immers meer mensen als niemand nog een patch heeft.
Inlichtingendiensten
Stel dat jouw organisatie verantwoordelijk is voor het beschermen van de belangen van Nederland en daarvoor op de hoogte moet zijn van de plannen en activiteiten van buitenlandse regeringen. Of voor het ondersteunen van militaire missies door het leveren van input voor oorlogsvoering in het cyberdomein. In die gevallen is het erg handig om een aantal zero-day kwetsbaarheden te hebben (aangezien de bekende kwetsbaarheden al gepatcht zullen zijn). Je kunt dan slimme hackers in dienst nemen die op zoek gaan naar die zero-days, je kunt zero-days kopen, of beide. Dit laatste wordt ook gedaan door onder meer de NSA (National Security Agency) die er jaarlijks zelfs 25 miljoen dollar aan uitgeeft.
Politie
Hoewel het bij de politie minder noodzakelijk is om te hacken dan bij inlichtingendiensten is het gebruik van zero-day kwetsbaarheden erg handig. Stel je vindt een iPhone van een terrorist en je denkt dat er relevante informatie voor jouw onderzoek op staat. Of je hebt communicatie onderschept die je naar bepaalde mensen leidt en je hebt een huiszoekingsbevel, maar je kunt niet in een computer komen? Het gebruik van zero-day kwetsbaarheden zorgen er in die gevallen voor dat je toch onderzoek kunt doen.
Leverancier van spionage-software
Sommige software-leveranciers produceren software die gebruikt wordt door inlichtingendiensten, de politie en andere partijen om spionage van computers en telefoons van daders (en slachtoffers) mogelijk te maken. Deze software heeft een centrale beheercomponent waarmee de gebruiker de software bestuurt. Een andere component is de payload die is geïnstalleerd op het apparaat van de gebruiker die onderschepping mogelijk maakt. De derde component zorgt voor de infectie en zorgt ervoor dat de payload terechtkomt op het apparaat zodat het alle communicatie van de centrale controlecomponent kan dupliceren. Om dit te kunnen doen zijn zero-day kwetsbaarheden nodig als het doelwit gepatcht is tegen bekende kwetsbaarheden.
Leverancier van kwetsbare software
En als laatste zijn er uiteraard de leveranciers van de software die kwetsbaarheden bevat. Hoewel sommige leveranciers de strategie hebben om onderzoek naar hun software te ontmoedigen en het proces van het openbaar maken van de kwetsbaarheid frustreren, vinden anderen het juist goed dat hun software wordt onderzocht op kwetsbaarheden en betalen ze zelfs voor het melden ervan. Anders dan de andere betrokkenen in de zero-day wereld draagt de kennis en het oplossen van zero-days niet direct bij aan de missie van deze organisaties dus is de interesse in deze kennis aanzienlijk lager.
Zero-days dilemma’s
Het ecosysteem rond een zero-day kwetsbaarheid laat zien dat het een ingewikkelde wereld is. Verder brengen het ontdekken en het gebruik van zero-days ook de nodige dilemma’s met zich mee zoals: zouden inlichtingendiensten zero-day kwetsbaarheden moeten gebruiken? En als je een zero-day kwetsbaarheid vindt, wat moet je er dan mee doen?
Wil jij nog meer informatie over dit onderwerp of sparren met een van onze ethical hackers? Neem contact op via info@computest.nl.