1. Wat is Malware?
Malware (Malicious Software) is de verzamelnaam voor alle kwaadaardige software. Er zijn verschillende subcategorieën:
- Ransomware: Versleutelt al je bestanden en eist losgeld (bijv. in Bitcoin) voor de decryptiesleutel.
- Trojans: Een programma dat nuttig of legitiem lijkt (zoals een gratis game of PDF-lezer), maar stiekem op de achtergrond een hacker toegang geeft tot je systeem (een backdoor).
- Worms: Malware die zichzelf autonoom kan verspreiden via het netwerk naar andere computers, zonder dat er menselijke interactie (zoals ergens op klikken) nodig is.
- Spyware: Kijkt stiekem mee, zoals keyloggers die registreren welke wachtwoorden je typt.
2. Malware Analyse: Statisch vs Dynamisch
Als beveiligingsonderzoeker wil je een virus onderzoeken zónder dat je per ongeluk je eigen computer of bedrijfsinfrastructuur infecteert. Dat doe je in een Sandbox (een geïsoleerde, streng beveiligde virtuele machine zonder netwerkverbinding naar je hoofdsysteem).
Dynamische Analyse (Behavioral): Je voert de malware wel uit (in een Sandbox!) en je observeert wat er gebeurt. Welke bestanden verwijdert hij? Welke IP-adressen probeert hij te contacteren? (Command & Control servers).
3. Reverse Engineering
Software is geschreven in programmeertalen (zoals C of C++). Voordat je de software kunt gebruiken, wordt deze 'gecompileerd' naar computertaal (enken en nullen / machinecode of Assembly). Dit maakt de originele broncode onleesbaar.
Reverse Engineering (omgekeerd ontwerpen) is de kunst van het 'decompileren' of 'disassemblen' van een .exe bestand. Je probeert de enen en nullen weer om te zetten in menselijk leesbare instructies.
Tools die Reverse Engineers gebruiken:
- Ghidra: De beroemdste en gratis Reverse Engineering tool, verrassend genoeg ontwikkeld door de NSA (Amerikaanse inlichtingendienst) en later open-source gemaakt.
- IDA Pro: De absolute (maar zeer dure) industriestandaard voor professionals.
- x64dbg: Een debugger voor Windows om malware stap-voor-stap (instructie voor instructie) door de processor te loodsen om te zien wat elke regel code precies doet.
4. Obfuscation (Code Verbergen)
Malware schrijvers weten dat onderzoekers hun code gaan decompileren en dat Antivirus programma's zoeken naar specifieke kwaadaardige tekst (signatures). Daarom gebruiken hackers Obfuscation en Packing.
Dit is een techniek waarbij het virus zijn eigen code versleutelt of in de war gooit. De malware pakt zichzelf pas weer uit ('unpacks') op het moment dat het in het RAM-geheugen (tijdens het runnen) zit. Dit maakt statische analyse nagenoeg onmogelijk.