Malware TestLab Bouwen!
Hoe vaak komt het wel niet voor dat je een spam e-mail ontvangt waarvan je denkt… dit is niet pluis? En uiteraard ben je nieuwsgierig en wil je eigenlijk weten wat er achter de hyperlink zit? Of je hebt een bestand in handen welke je eerst wilt testen op malware alvorens je deze op je eigen computer plaatst? Eigenlijk wil je dit doen op een computer welke niet met je (zakelijke) netwerk verbonden is en waar geen persoonlijke bestanden op staan. In deze post gaan we kijken naar het bouwen van een Malware TestLab. Deze post beschrijft verschillende overwegingen en tips waarmee je aan de slag kunt om je eigen Malware Testlab te bouwen. Let’s play…!
Beschikken over een gecontroleerde omgeving waar je veilig je malafide bestanden kunt testen en ontleden is essentieel als security researcher. De manier waarop je dit lab inricht is afhankelijk van een aantal factoren. Er is geen eenduidig antwoord op de vraag die ik laatst ontving: “wat is het beste Malware TestLab”? Zo moet je denken aan:
- Hoe belangrijk is performance? Wordt er veel en intensief gescand?
- Hoe belangrijk is recovery? Wat doe je als het mis gaat?
- Hoe vatbaar wil je je lab maken. Wil je primair onderzoeken of wil je de effecten van de malware analyseren?
- Welke tools ga je hanteren… en daarmee ook, wat is dan het OS waar ik van afhankelijk ben?
In de meeste gevallen zal de performance minder belangrijk zijn. Intensieve en hoge scan loads komen bij malware analyse minder voor dan dat ze voorkomen bij b.v. brute-force hacking. Als de performance minder belangrijk is dan is het prima om je malware analyse op een virtuele machine te draaien. Bij voorkeur plaats je deze virtuele machine op een separate computer welke niet verbonden is met je netwerk. Mocht het toch misgaan en de malware door de virtuele laag breken (ik heb het nog nooit zien gebeuren) dan is het host systeem aangetast en zal dan opnieuw geïnstalleerd moeten worden. Virtualbox van Oracle is een prachtige layer2 hypervisor die je hiervoor kunt gebruiken. Ook VMWare’s Workstation of Player zijn prachtige omgevingen. Wil je liever een layer1 hypervisor gebruiken dan is VMWare’s vSphere uiteraard sterk aan te raden.
Het werken op een virtuele machine geeft je meteen een ander enorm groot voordeel. Je kunt namelijk een snapshot maken. Zie deze snapshot als een foto van je machine. Deze snapshot is snel gemaakt en als het mis gaat is deze ook snel terug te zetten. Zie de snapshot als een snelle restore waardoor de machine weer snel terug in zijn oorspronkelijke staat is.
Dan komt de vraag, welke machines moeten geïnstalleerd worden. Om malware te testen en om de effecten ervan te bestuderen is het aan te raden meerdere VM’s (Virtual Machines) te installeren met verschillende OS systemen. Wil je alleen malware ontleden en analyseren dan is 1 VM voldoende.
Denk erom niet alleen je VM’s te scheiden van je eigen computer, maar koppel de VM’s ook niet aan je eigen netwerk. Malware kan namelijk ook prima via het netwerk andere computers infecteren. Gebruik dus een fysiek gescheiden netwerk of regel het virtuele netwerk zo in (NAT en niet Bridged) dat de hosts wel bij elkaar kunnen maar nooit op je eigen netwerk kunnen komen.
Tenslotte ga je kijken naar de tools die je graag wilt gebruiken. In de meeste gevallen zul je Windows OS systemen zeker willen testen en vaak wil je ook op een Windows based systeem analyseren. Uiteraard kun je dit ook prima op een Linux based OS doen. De keuze is aan jezelf. Als je de keuze gemaakt hebt dan zorg je ervoor dat je je analyse omgeving zo goed mogelijk beveiligd met virusscanners en andere tools. Je wilt hier namelijk op analyseren. De andere machines moeten dan wisselend ingericht worden. In mijn demo lab draai ik de volgende systemen:
- Windows 10 – kaal (out-of-the-box)
- Windows 10 – Windows Defender – Windows updates zijn out-of-the-box
- Windows 10 – Windows Defender – Windows updates zijn up-to-date
- Windows 7 – kaal (out-of-the-box)
- Windows 7 – Sophos virusscanner – Windows updates zijn out-of-the-box
- Windows 7 – Sophos virusscanner – Windows updates zijn up-to-date
- Linux Debian – kaal (out-of-the-box)
- Linux Debian – up-to-date
- Windows 10 – Analyse station – Windows Defender, Sophos, MalwareBytes – Windows updates zijn up-to-date
Zoals je ziet gebruik ik incl. mijn analyse station 9 verschillende OS versies in mijn Malware TestLab. Dit kun je zelf naar wens uitbreiden. Mijn analyse stations is wat zwaarder beveiligd dan de “victim-machines”. Maar van allemaal maak ik een snapshot alvorens ik begin met testen. Na het testen zet ik altijd de snapshots terug zodat ik zeker weet dat er geen rommel achterblijft na het testen. Daarnaast is mijn hostmachine en netwerk volledig geïsoleerd dus heel veel spannends kan er niet gebeuren. Dit zijn echter allemaal overwegingen die je zelf moet maken. Je kunt deze setup uitgebreider en veiliger uitvoeren en je kunt voor quick-and-dirty gaan.
Wanneer je lab staat dan is het taak om je analyse station te voorzien van een toolset. Er zijn allerlei goede, uitgebreide en betaalde tools. Maar je kunt al een heel eind komen met gratis of relatief goedkope tools. Belangrijk bij Malware analyse is zijn een aantal zaken waaronder de bekende malware scanners, sandboxing, code analyse, gedrag analyse.
De virus / malware scanners kunnen snel inzicht geven in het type malware, of de malware al bekend is en wat de eigenschappen van de malware zijn. Uiteraard weet je ook meteen welke virusscanners de malware herkennen en waarschijnlijk blokkeren. Sandboxing tools kunnen handig zijn als extra beschermingsaag tussen je OS en de malware. Sandboxes voeren de code namelijk uit in een afgekaderde omgeving waardoor schadelijke code zich moeilijk verder kan verspreiden. Sommige sandboxes bieden zelfs de optie om te spelen met tijd en andere factoren die malware kunnen triggeren. Code analyse tools gebruik je uiteraard om de malafide code beter te analyseren en ontleden en de gedragsanalyse tools geven je inzicht in het gedrag van de malware. Welke stappen worden er doorlopen en welke processen worden aangeraakt.
Mijn favoriete tools zijn:
Malware / Anti-Virus Scanners
Uiteraard kun je on-premise virusscanners je files laten scannen. Ik vindt Sophos en Malwarebytes altijd een prima gratis on-premise combinatie. Maar je kunt ook diverse cloud-diensten gebruiken om je files te analyseren, waaronder VirusTotal – Anti-Virus / Malware file & URL scanner.
Sandboxing
- SandBoxie – Sandboxed broweser en sandboxed app container. Browse en draai programma’s in een veilige omgeving. De gratis variant is beperkt.
- Cybergenic Shade Sandbox – Sandbox app container met minder functies als SandBoxie maar wel makkelijker in gebruik.
- Toolwiz Time Freeze – System snapshot welke automatisch teruggeplaatst wordt na een reboot.
Code Analyse
Ook hier hebben we de keuze tussen diverse online tools die we kunnen gebruiken en een aantal hele fijne on-premise apps.
Online tools:
- Joe Sandbox – Deep malware analysis tool
- Comodo Valkyrie – Online malware scanner
- Any.Run – Interactive malware analyse
- Hybrid Analysis – Malware analyse tool
- PDF Examiner – Scan en analyser malafide PDF files
On-Premise tools:
- GHidra – NSA’s reverse engineering tool
- Cuckoo Sandbox – Open Source Malware Analysis tool.
- Yara Rules – Malware classificatie tool die samenwerkt met Cuckoo
- Remnux – Dit is een Linux toolkit welke ideaal is voor het reverse engineren van malware samples. Om deze tool te gebruiken moet je dus een Linux Debian analyse machine toevoegen aan je malware lab.
- PEview – Analyseer de content en de structuur van x32 PE (Portable Executable) files en COFF (Component Object File Format) files.
- IDA Pro – File disassembler en debugger
- DRAKVUF – Black Box binary analyse toolkit voor het opsporen van arbitrary binaries.
- FireEye Labs Obfuscated String Solver – DeObfuscate strings uit malware binaries.
Gedrag Analyse
- GRR (Google Rapid Response) Framework – Malware footprint analyse. Werkt met een cliënt en een server gedeelte. Installeer het agent gedeelte dus op je teststations en het server gedeelte op je analyse station.
- OllyDumpEx – Memory Dumper van specifieke processen
- Proces Monitor – Monitor je Windows filesystem
- Proces Explorer – Monitor je Windows processen
- Registry Workshop – Bewerk, Backup en Vergelijk je register
- Wireshark – Monitor je netwerkverkeer op packet basis
- Packet Total – Online analyse van PCAP files voor het detecteren van malware in het netwerkverkeer.
- Dependency Walker – Dependency Walker laat alle afhankelijkheden zien van x32 en x64 Windows modules zoals .exe, .dll, .ocx en .sys.
- INetSim – Test netwerkgedrag van malware analyseren door het simuleren van verschillende internet services.
- Volatility – RAM memory analyse
- NirSoft HTTPNetworkSniffer – HTTP Sniffer, bekijk welke sites op de achtergrond bezocht worden.
Extra tools
- FlashBack Screen Recorder – Screen Recorder. Neem de malware events op. Naslag en bewijs altijd aanwezig!
- Notepad++ – Een handige en universele code editor is altijd welkom! Je kunt eventueel ook Windows Visual Studio gebruiken.
- SysInternal Tools – We hebben een aantal tools in bovengaande secties vermeld, maar een link naar de hele toolkit is zeker geen overbodige luxe en geeft je snel toegang tot een ton aan handige tools.
- Detect-It-Easy – Applicatie om het “echte” filetype op te sporen.
- HxD – Hex & Disk Editor.
- NirSoft HashMyFiles – Bereken hashes in verschillende formaten van je files
- Rainmeter – Desktop Statistics
En zo kunnen we nog wel even doorgaan met de lijst. Dit zijn in ieder geval een aantal van de belangrijkste tools uit mijn “gratis” toolkit. Ben je gespecialiseerd op een bepaalde niche dan zul je uiteraard over meer tools beschikken uit die niche. Onderzoek je veel malafide websites dan heb je uiteraard meer aan network & URL analyzers dan aan een memory analyser.
Met bovenstaande tips moet het lukken om je eigen Malware TestLab te maken en om op een veilige manier malware te onderzoeken. Ga aan de slag en help ons mee met het maken van een veiliger internet 🙂
Hopelijk vond je deze post interessant? Ja? Deel hem dan op je sociale kanalen of geef me een like op een van mijn kanalen! Mijn dank is zeer groot!