Zero-Day exploits, wat is het en hoe werkt het?

Ingediend door Dirk Hornstra op 19-feb-2024 20:44

Ik heb mij ooit aangemeld voor de nieuwsbrief van TechRepublic. Soms staan er interessante tools genoemd of artikelen over security-zaken. Zo kwam ook dit artikel voorbij over "Zero Day Exploits": link.

In de samenvatting noem ik de browser als een doelwit voor misbruik, maar zero day exploits gelden voor alle "gaten" in het systeem waarvoor nog geen oplossing bestaat en je dus het risico loopt dat je gegevens gedeeld, gewist of gemuteerd worden. Het lijkt allemaal zo makkelijk, hou maar op met die papieren afschriften van de bank, we doen het wel via de browser. Geen post meer van je energie-leverancier, ga maar naar de "mijn-omgeving" in je browser. Of ga internetbankieren via de app van de bank. Dat laatste is al een stuk veiliger, maar met bepaalde hacks (zoals Spectre, waarbij op processorniveau het systeem gekraakt wordt) is werkelijk niets meer veilig. En in een bevinding van oktober 2023 werd nog een issue genoemd in RoundCube webmail, door het inladen van een afbeelding wordt een stuk javascript uitgevoerd en worden je mails met de buitenwereld gedeeld. Een oplossing die genoemd wordt is: "zet je javascript" uit, maar doordat steeds meer back-end en front-end zaken gescheiden worden door API's en een javascript framework heb je in 9 van de 10 gevallen een website die helemaal niets meer doet.

Op een bijeenkomst van Tweakers heb ik ooit eens gehoord dat bepaalde hackers het voor elkaar kregen dat er "onder je systeem" nog een soort besturingssysteem werd opgestart. Totaal onzichtbaar, maar kan dus alles zien en delen wat jij op je pc doet. Als je dit allemaal tot je door laat dringen begin je bijna bang te worden om überhaupt nog een pc, mobiel of tablet/iPad te gebruiken. Maar goed, het is zo makkelijk, dus we blijven het gebruiken. Dan maar eens dat overzicht van die Zero Day Exploits doornemen en samenvatten, misschien dat door het lezen "hoe" ik straks bij eigen oplossingen denk: op deze manier kan het systeem misbruikt worden, dit moet anders.

 

Stappen van de hacker:

  • Initiële actie: met code proberen binnen te komen (bijvoorbeeld via e-mail). Kijken of met buffer overflows, phishing, hack-websites en aanvallen op het netwerk via fouten/tekortkomingen in netwerkprotocollen.
  • Privilege escalation: als dat gelukt is probeert de aanvaller "meer rechten" te krijgen. Want dan kun je meer doen.
  • Payload delivery: als de aanvaller die admin-rechten heeft kan het echte werk beginnen: de download/installatie van de software die het echte beschadigende werk gaat uitvoeren.
  • Data compromise en/of systeemcontrole: installatie/doorvoeren van ransomware of het verzamelen van informatie en dat doorsturen naar een externe locatie (bijvoobeeld).
  • Exit en cover tracks: en dan proberen "spoorloos" te verdwijnen. Logs opschonen/verwijderen, proxy-servers gebruiken, data-encryptie, bestanden overschrijven, timestamps aanpassen.
  • Verkoop of delen exploits: ook in de hacker-wereld geldt "sharing = caring", dus vaak wordt een succesvolle methode verkocht of gedeeld met andere hackers.

 

In dit overzicht van FireEye Survey duurt een zero-day aanval gemiddeld 8 maanden: link.
En dit rapport van Mandiant laat zien dat die zero day exploits in 2022 vergeleken met 2020 verdubbeld waren. Waarschijnlijk omdat het meer oplevert als het werkt: link.


Maar hoe vinden ze die zwakte(s)?

  • Fuzzing: lekker via automatisch testen een grote hoeveelheid afwijkende data naar een software applicatie sturen om te kijken of de boel crasht of bepaalde data toont die gebruikt kan worden (bepaalde versie van software die gebruikt wordt, het pad op het systeem waar de website draait bijvoorbeeld).
  • Reverse engineering: iets intelligenter: de code decompileren en dan kijken of je daar fouten/zwakke punten in kunt vinden.
  • Code review: als je de broncode hebt kun je dat decompileren overslaan en daar kijken of je fouten/zwakke punten kunt vinden.
  • Geautomatiseerde scantools: bepaalde tools kun je gebruiken om je applicaties/sites te testen en op basis van data van rapportage zelf stappen ondernemen om het te fixen. Maar die software kan natuurlijk ook misbruikt worden door een externe partij om te kijken of er zwakke punten zijn.
  • Social engineering: via-via een werknemer benaderen (of online volgen) om zo informatie los te peuteren.
  • Publieke informatie: forums, sociale media platformen en andere publieke omgevingen waar ontwikkelaars of gebruikers per ongeluk bepaalde informatie delen die niet voor buitenstaanders bedoeld was.
  • Structurele vergelijking van executable objects: hiermee zou je kunnen zien wat er in de nieuwe versie gepatcht is (mocht de maker dit niet delen) en zo kunnen bepalen welke zwaktes in de oude versie zitten. De oude versie wordt vast nog op meerdere plekken gebruikt, dus nu kun je je daar op richten...
  • Bug bounty programma's: dit lijkt een goed iets (white hackers die je de boel laat proberen te hacken, zij delen de resultaten met jou), bijvoorbeeld Bugcrowd. Maar "bad actors" kunnen zo ook aan de slag met een product waar ze anders misschien niet of moeilijk bij konden komen, vinden zwaktes, maar delen die niet, ze misbruiken deze op een later tijdstip.
  • Inside informatie: ontevreden werknemers die verkondigen "wat voor ouwe systemen/troep" hun vorige werkgever online had staan. Of voor geld die informatie verkopen.


In het artikel staan een paar zero-day aanvallen genoemd.

Stuxnet, die weet ik nog, in 2010 is dat gebruikt om centrifuges die Iran gebruikte voor het ontwikkelen van nucleair materiaal te laten crashen.

MovIT ken ik niet, maar is redelijk recent (mei 2023). Russische hackers vonden een zwak punt en hebben via SQL Injection ransomware aanvallen uitgevoerd. Honderden organisaties, waaronder banken, scholen en de overheid waren daarvan het slachtoffer. Dus hoewel SQL Injection volgens mij niet meer bovenaan in de lijst van OWASP staat blijft het een factor om rekening mee te houden.

Cytrox, een beveiligingsorganisatie bleek zero day zaken te verkopen aan overheden. 2021, dus ook redelijk recent.


En dan natuurlijk de tips.

Voorkomen blijft moeilijk, maar je kunt in ieder geval moeite doen om te proberen te voorkomen dat de hel losbreekt.

  • Hou software up-to-date. Wacht niet te lang met het doorvoeren van updates. Maar blijf wel alert: is de update van een betrouwbare bron? Dus ook daarbij: niet te gehaast, controleer wat je gaat doen en bij twijfel: doe het niet.
  • Gebruik inbraakpreventie systemen: als je netwerk gemonitord wordt en zo vreemde patronen waarneemt, dan heb je in ieder geval meer/sneller inzicht van een potentiële situatie dan dat je er pas na een half jaar achter komt.
  • Implementeer endpoint beveiliging: er zijn oplossingen die real-time monitoring uitvoeren en bescherming bieden tegen bekende en onbekende bedreigingen.
  • Zorg voor analyserende tools: hiermee zou je vreemd gedrag van gebruikers of systemen moeten kunnen monitoren en valideren.
  • Leid je werknemers op: hamer op de social-media engineering aanvallen.
  • Blijf geïnformeerd: abonneer jezelf op diensten die real-time informatie over zwaktes en misbruik delen zodat je snel(ler) actie kunt ondernemen.
  • Voer regelmatig security audits uit: een checklist om zaken regelmatig te controleren.
  • Ontwerp een incident response plan: als de "shit hits the fan" optreedt, zorg dat je een plan heb klaarliggen.
  • Overleg met externe experts: niemand kan 100% bij blijven, een extern iemand kan met een frisse blik kijken of heeft juist uitgebreide ervaring met het probleem/de problemen die jij nu hebt.
  • Overweeg AI technologie: door het zelflerende aspect van AI kan vaak pro-actief actie ondernomen worden. Mogelijk een foutieve actie (bij een false positive), maar als je zorgt dat die actie ongedaan kan worden gemaakt en dit teruggekoppeld wordt aan de AI technologie, dan zou deze daarvan moeten leren en worden de vervolgenstappen alleen maar beter.