Exploitketen: hoe hackers meerdere kwetsbaarheden aan elkaar rijgen
Een exploitketen is een reeks van digitale kwetsbaarheden die een aanvaller na elkaar misbruikt om binnen te dringen in een systeem, computer of telefoon. Waar één los beveiligingslek vaak maar een beperkt effect heeft, kan het combineren van meerdere lekken een aanvaller volledige controle geven over een apparaat, zonder dat het slachtoffer iets merkt.
Vergelijk het met een inbreker die een huis wil binnendringen waarin niet één, maar meerdere sloten na elkaar zitten: eerst de voordeur, dan een tussendeur, dan de kluis in de kelder. Elk slot vraagt een andere truc. Pas als de inbreker alle sloten op de juiste volgorde heeft weten te openen, staat hij binnen. Zo werkt een exploitketen ook: de aanvaller schakelt meerdere exploits (stukjes code die een specifieke kwetsbaarheid misbruiken) achter elkaar om laag voor laag de beveiliging van een systeem te doorbreken.
Wat is het precies?
Moderne besturingssystemen zoals iOS, Android en Windows zijn opgebouwd uit meerdere beveiligingslagen die elkaar overlappen. Dat betekent dat een aanvaller zelden met één enkele truc een apparaat volledig kan overnemen. Een typische exploitketen bestaat daarom uit een aantal opeenvolgende stappen.
De eerste stap is meestal initial access: een manier om code op het apparaat te laten draaien, bijvoorbeeld via een kwaadaardig bestand, een besmette website of zelfs een bericht dat automatisch wordt verwerkt zonder dat de gebruiker erop klikt. Dat laatste heet een zero-click exploit: er is geen enkele actie van het slachtoffer nodig.
Vervolgens moet de aanvaller vaak uit een sandbox breken. Een sandbox is een afgeschermde omgeving waarin apps op een telefoon of computer draaien, zodat een app die iets misdoet niet automatisch bij de rest van het systeem kan. Een sandbox escape is een exploit die deze afscherming doorbreekt.
Daarna volgt vaak privilege-escalatie: de aanvaller heeft na de eerste stappen meestal alleen de rechten van een gewone gebruiker of app, en heeft een extra kwetsbaarheid nodig om beheerdersrechten (of in technische termen: kernel- of root-rechten) te krijgen. Met die rechten kan de aanvaller vrijwel alles op het apparaat doen: bestanden lezen, de camera en microfoon aanzetten, berichten onderscheppen.
De laatste stap is vaak persistence: ervoor zorgen dat de toegang blijft bestaan, ook na een herstart, en dat sporen zoveel mogelijk worden gewist. Elke stap in deze keten maakt gebruik van een aparte kwetsbaarheid, vaak met een eigen identificatienummer in het publieke CVE-systeem (Common Vulnerabilities and Exposures), het internationale register waarin bekende beveiligingslekken worden bijgehouden zodra ze zijn ontdekt en gemeld.
Wat wil men ermee bereiken?
Voor aanvallers is het doel van een exploitketen simpel: onopgemerkt en volledig toegang krijgen tot een doelwit. Dat kan gaan om spionage, bijvoorbeeld het afluisteren van journalisten, activisten of diplomaten. Het kan ook gaan om cybercriminaliteit, zoals het installeren van gijzelsoftware (ransomware) op bedrijfsnetwerken. En in een klein aantal gevallen gaat het om sabotage: het fysiek beschadigen van industriële systemen via digitale weg.
Voor verdedigers ligt het belang ergens anders. Beveiligingsonderzoekers, softwarebedrijven en overheidsinstanties bestuderen exploitketens juist om te begrijpen hoe aanvallen in de praktijk verlopen. Die kennis wordt gebruikt om patches te maken (software-updates die een specifiek lek dichten), om detectiesystemen te bouwen die verdacht gedrag herkennen, en om dreigingsanalyses te maken waarmee organisaties inschatten hoe kwetsbaar ze zijn. Het opknippen van een aanval in afzonderlijke, benoembare stappen helpt bovendien om gerichter te patchen: soms is het onmogelijk om alle schakels tegelijk te repareren, maar het wegnemen van slechts één schakel kan de hele keten al onbruikbaar maken.
Voorbeelden uit de praktijk
Een van de bekendste vroege voorbeelden is Stuxnet, een computerworm die in 2010 werd ontdekt en die gericht was op Iraanse uraniumverrijkingscentrifuges. Stuxnet maakte gebruik van meerdere zero-day-kwetsbaarheden tegelijk, dat wil zeggen lekken die op het moment van misbruik nog niet bekend waren bij de softwaremaker en waarvoor dus nog geen patch bestond. De combinatie van deze lekken maakte het mogelijk om industriële besturingssystemen te manipuleren zonder dat operators dit merkten.
In 2017 zorgde de exploit EternalBlue, die eerder was ontwikkeld door de Amerikaanse inlichtingendienst NSA en later uitlekte, voor wereldwijde schade via de ransomware-uitbraak WannaCry. Hoewel dit strikt genomen om één kwetsbaarheid in Windows ging, werd de exploit in de praktijk vaak gecombineerd met andere technieken om zich razendsnel te verspreiden over netwerken.
Een recenter en zeer geavanceerd voorbeeld is FORCEDENTRY, een exploitketen die in 2021 werd blootgelegd door onderzoekers van Citizen Lab (verbonden aan de universiteit van Toronto) en bevestigd door Google Project Zero. Deze keten werd gebruikt om, zonder enige interactie van het slachtoffer, de spyware Pegasus van het Israëlische bedrijf NSO Group te installeren op iPhones, via een kwetsbaarheid in de manier waarop iOS afbeeldingen verwerkte.
Ook de jaarlijkse hackingwedstrijd Pwn2Own laat goed zien hoe exploitketens in de praktijk werken: beveiligingsonderzoekers proberen daar, voor prijzengeld, live browsers, telefoons en auto-systemen te kraken door meerdere kwetsbaarheden na elkaar te combineren. Belangrijk om te vermelden: bij vrijwel al deze voorbeelden blijven veel technische details bewust vertrouwelijk of worden ze pas laat vrijgegeven, in lijn met zogeheten responsible disclosure-afspraken, waarbij ontdekte lekken eerst aan de softwaremaker worden gemeld zodat die tijd heeft om te patchen voordat details openbaar worden.
Hoe ver is de techniek?
Het bouwen van een volledige, werkende exploitketen tegen een modern besturingssysteem is de afgelopen jaren aanzienlijk moeilijker en duurder geworden. Fabrikanten als Apple, Google en Microsoft hebben steeds meer technische beveiligingslagen ingebouwd, zoals ASLR (Address Space Layout Randomization, een techniek die geheugenposities willekeurig maakt zodat een aanvaller moeilijker kan voorspellen waar code in het geheugen staat) en verbeterde sandboxing. Ook wordt er steeds meer nieuwe software geschreven in zogeheten memory-safe programmeertalen, die een hele categorie klassieke geheugenfouten voorkomt.
Tegelijkertijd zijn patch-cycli sneller geworden: grote techbedrijven brengen updates vaak binnen dagen tot weken uit nadat een kwetsbaarheid bekend wordt. Dat heeft geleid tot een verschuiving richting zogeheten N-day-ketens: aanvallen die geen onbekende zero-days meer gebruiken, maar bekende, al gepubliceerde kwetsbaarheden combineren op apparaten die simpelweg nog niet zijn bijgewerkt. Onderzoek van onder meer Google Project Zero laat zien dat een substantieel deel van de exploitketens die in het wild worden aangetroffen, gebruikmaakt van kwetsbaarheden die al eerder gepatcht hadden kunnen zijn.
Precieze cijfers over hoeveel exploitketens er wereldwijd actief zijn, zijn niet beschikbaar: dit is per definitie een schimmig terrein, waarin zowel aanvallers als de handelaren in dit soort kwetsbaarheden weinig belang hebben bij openheid. Wat wel duidelijk is: het aantal publiek gedocumenteerde, volledige zero-click ketens tegen actuele telefoons is klein, wat erop wijst dat het ontwikkelen ervan grote technische expertise en aanzienlijke financiële middelen vereist.
Wie werken eraan?
Aan de aanvallende kant bestaat een divers landschap. Onafhankelijke beveiligingsonderzoekers en bug bounty-jagers zoeken kwetsbaarheden op legale wijze en melden die vaak tegen een beloning bij softwarebedrijven. Daarnaast bestaan er commerciële exploit brokers zoals het bedrijf Zerodium, dat zero-day-kwetsbaarheden opkoopt en doorverkoopt aan overheidsklanten. Ook zijn er zogeheten commerciële surveillance-bedrijven, waarvan NSO Group het bekendste voorbeeld is: dit Israëlische bedrijf verkoopt spyware zoals Pegasus aan overheden, en kwam na de onthullingen over misbruik tegen journalisten en mensenrechtenactivisten in 2021 op een Amerikaanse handelssanctielijst terecht. Ook inlichtingen- en veiligheidsdiensten van diverse landen worden, op basis van publiek onderzoek en lekken, in verband gebracht met de ontwikkeling en het gebruik van exploitketens, al blijft dit een gebied waarin harde bevestiging vaak ontbreekt.
Aan de verdedigende kant speelt Google Project Zero een prominente rol: een team van beveiligingsonderzoekers dat kwetsbaarheden in veelgebruikte software opspoort en, na een vaste onthullingstermijn, publiceert. MITRE beheert het CVE-systeem waarin kwetsbaarheden wereldwijd worden geregistreerd en van een uniek nummer voorzien. Nationale computer-noodhulpteams, zoals het Nederlandse NCSC (Nationaal Cyber Security Centrum) en het Amerikaanse CISA (Cybersecurity and Infrastructure Security Agency), coördineren waarschuwingen en adviezen richting overheden en bedrijven wanneer er actief misbruikte exploitketens worden ontdekt.