image

Security Tip van de Week: onderzoek malware in je eigen lab

maandag 17 juni 2013, 10:46 door Bart Blaze, 16 reacties

In de Security Tip van de week geeft elke week een andere professional, expert, onderzoeker of lezer een security tip. Persoonlijke tips, variërend van het veilig configureren van Windows, een handige security tool of het juist instellen van een firewall, waarmee de tipgever zijn systeem, applicatie of netwerk veiliger maakt.

Heb jij ook een leuke, originele, maar bovenal goede security tip die niet mag ontbreken, stuur dan een mail naar redactie@security.nl.

Deze week de Security Tip van Bart Blaze

Malware lab, de basics

Even een quote uit een artikel van mij:
Before we begin, I’d like to make clear that if you want to test your skills after reading this article or want to test malware in general, you should set up a proper testing environment. Make sure you are using a Virtual Machine if testing on your own machine, or create a machine for the sole use of testing malware and antimalware tools. In either case, it’s a good idea to use a separate network or use a DMZ should you have one. Personally I recommend having the machine connected to the internet, so the malware can do its evil work to its maximum potential and you will be able to carefully study and dissect its workings completely.

Denk wel dat bovenstaande duidelijk is:


  • gebruik geen shared folders tussen VM & host
  • gebruik bij voorkeur een apart netwerk
  • gebruik bij voorkeur een fysiek toestel en geen VM
  • gebruik antivirus op je fysiek toestel als je een VM gebruikt

Malware gaat vaak checken op bepaalde characteristics in het systeem, zoals hardware GUIDs, eigenschappen van de Netwerkkaart, nakijken of X of Y tools geïnstalleerd staan, controleren op X of Y services.... Vandaar dat een echt fysiek toestel soms betere of zelfs compleet andere resultaten (behaviour) kan geven dan in een VM. Indien een fysiek toestel niet mogelijk is, kan je inderdaad kiezen voor virtualisatiesoftware:

  • VirtualBox (Oracle/Sun) of VMware Workstation/VMWare Player. Beiden zijn makkelijk in gebruik.
  • VirtualBox: gratis, kan snapshots nemen
  • VMWare WS: niet gratis, kan snapshots nemen
  • VMWare Player: gratis, kan geen snapshots nemen

Een handig tooltje om na te gaan hoe malware je systeem op bepaalde parameters checkt is Pafish.

Ik raad aan om, als je VM gebruikt, een snapshot te nemen in:
a) een "clean" state
b) een state waarop je tools en dergelijke staan
Hierna voer je X of Y malware uit

Voor de disk zelf kan je best split virtual disk gebruiken, aangezien deze minder schijfruimte gaat innemen (dynamisch), single file wordt meer gebruikt voor oudere toestellen. Qua performantie maakt dit niet veel verschil, voor malware analysis al zeker niet.

Voor de netwerkconnectie wordt meestal bridged gebruikt, aangezien NAT soms problemen kan geven bij bepaalde netwerkkaarten. Voor malware analysis zelf lijkt dit me op zich niet veel uit te maken. Nog een handige link met extra uitleg:

Over het OS dat je kan gebruiken
Buiten uiteraard een Windows OS (bv. een Windows XP en een Windows 7, twee verschillende OS'en kunnen soms 2 verschillende resultaten opleveren) kan je ook een *nix distri gebruiken welke speciaal voor Malware Analysts is ontworpen. Hier heb je keuze:


  • Malnet2 - deze wordt niet meer developed, heb deze ergens in 2010 op HITB leren kennen en maar af en toe gebruikt. Enkel de slides zijn nog nuttig voor referentie. Informatieve slides & pastebin.
  • Remnux - deze gebruik ik tegenwoordig, de ideale toolbox, een must have dus! Info: Zeltser.com & SANS (video)
  • Je eigen distri - Niets houd je tegen om immers zelf een eigen environment op te zetten met tools die jij wil - echter, waarom zou je het wiel heruitvinden?

Tools voor Windows
Idealiter verloopt een analyse van wat X of Y malware doet als volgt:
a) Zet beide VM's op, zowel Windows box als Remnux
b) Prepareer de tools of logging op beide toestellen
c) Bezoek X link of voer Y malware uit
d) Bekijk het behaviour van de malware
e) Sla de logs op en bekijk deze ook nog eens apart, in-depth

Nu wat betreft de tools zelf. Uiteraard zijn er verschillende logging tools beschikbaar, maar we gaan beginnen met enkele automatisch systemen:


Deze drie bovenste zijn in feite online sandboxes, waar je malware naar kan uploaden en hierna een (al dan niet) uitgebreid rapport kan bekijken. Dit kan handig zijn moest een sample weigeren te runnen op jouw systeem, of je hebt geen tijd om zelf uitgebreid onderzoek te doen. Uiteraard zijn er nog andere sandboxes online, maar deze zijn wel de bekendste. (vooral Malwr is een aanrader)

Sandboxie
Indien je geen VM hebt of geen kunt gebruiken maar toch min of meer malware analysis gaan uitvoeren, kan je Sandboxie gebruiken. Deze gaat in feite programma's (of in dit geval malware), op een "apart stukje" van je harde schijf uitvoeren. Ik vermoed echter dat iedereen hiermee bekend is. Note: voer nooit een VM uit in een sandbox!

Malzilla
Malzilla is een excellente tool voor als je geen VM hebt (anders natuurlijk ook). Malzilla kan eigenlijk heel wat, zoals bv. Javascript decoden, lijst van links op een site weergeven, maar het voornaamste is eigenlijk dat je een URL kan bezoeken en kan bekijken wat er allemaal gebeurt (bv. een redirect naar X site, een redirect naar Google, helemaal niets,...). Handig is ook dat je al dan niet een referrer kan instellen. Bepaalde malware gaat controleren of je via X of Y referral gaat en zoniet, redirect gewoon naar Google. Het kan ook gebeuren dat hetzelfde IP slechts 1x dezelfde malware site mag/kan bezoeken. In Malzilla kan je dan een proxy instellen.

URLQuery en JSunpack zijn beide tools om malware sites te analyseren, indien je moeilijkheden hebt met Malzilla of, wegens tijdsgebrek snel iets moet checken. URLquery is meer intuïtief. Beide tools zijn echter onmisbaar.

Last, but not least: VirusTotal
Schitterende service om snel een sample te checken. Houd in het achterhoofd dat detecties kunnen verschillen via VirusTotal of op een echt systeem (bv. behaviour analysis wordt niet mee opgenomen in de scanners op VirusTotal). Eveneens kan je bij File Detail makkelijk de mèta-data checken. Afhankelijk van het type bestand (PE files, Android files, others) worden extra scanners uitgevoerd. (.exe, .com, .apk, .jar, .pdf)

Nu, manuele systemen en tools. Je kan al een schat aan tools op deze link vinden:

Mijn persoonlijke favorieten:
Fiddler: bekijken wat X of Y URL precies probeert te laden, handig voor de infection vector en methodiek te bepalen.
RegShot: neem een "snapshot" van het huidige systeem en vergelijk daarna welke wijzigingen malware heeft doorgevoerd.
Revelo: meer een all-in-one tool, vergelijkbaar met Malzilla, maar anders.

Uiteraard kan je ook Wireshark gebruiken maar:
a) Dit is redundant als je ook Remnux gebruikt.
b) Ik heb effectief al malware tegengekomen die gewoon weigert iets te doen als Wireshark op het toestel staat.

Andere "monitoring" tools on-the-fly zijn bijvoorbeeld:


Algemene tips & trucs
  • Nog enkele leuke slides voor de eerste keer dat je malware analysis gaat performen, inclusief de sample
  • Gebruik tools zoals Process Explorer om na te kijken wat de malware gaat doen. Bv. wordt CMD geladen voor een bepaald commando uit te voeren? Wordt er in explorer.exe geïnjecteerd? Spawnt deze child-process? Gaat deze aan click-fraude doen? Welke strings worden er precies ingeladen? Wat is de malware naam exact? Hoe bereikt deze persistentie op het systeem? Is deze malware signed (digitaal certificaat)?
  • Heb je malware uitgevoerd maar lijkt er niet meteen iets te gebeuren? Check met Process Explorer of je een proces ziet. Ja? Oké, ga verder met analyse. Nee? Wacht 5 minuten en kijk of er iets verandert. Nog steeds niet? Herstart het systeem. Mogelijk moet je de systeemtijd zelfs enkele dagen verder zetten.
  • Mogelijk kan de malware ook packed zijn, dit is ofwel voor compressie ofwel voor antivirus-detectie te omzeilen. Meer uitleg over packers vind je op deze pagina.

    Er zijn verschillende packers, de bekendste is wel UPX. Eveneens zijn er nog een pak andere packers en zelfs custom packers gemaakt door - de malware author zelf. Bestand kan je unpacken in een disassembler (bv. IDA Pro, OllyDBG). Kijken of er een packer aanwezig is kan je met VirusTotal, of met tools zoals PEiD of LordPE

  • Tools voor analyse van PDF kan je zowel online vinden, bv. MalwareTracker, VirusTotal (zie ook hierboven), of kan je zelf doen met bv. PDFiD of PDF-Parser.
    Tools voor analyse van JAR zijn schaarser, bv. ShowMyCode - of je bekijkt deze zelf met JD-GUI.
  • Werkt een bepaalde malware site niet? Dubbelcheck eens met URLquery of isup.me om te kijken of die wel online is. Deze is ofwel
    a) Effectief offline (offline gehaald)
    b) Je IP is gebanned (op land)
    c) Je hebt geen correcte referrer gebruikt
    d) Nog niet actief
    e) Iets in je netwerk blokkeert de link, bijvoorbeeld MBAM, of een URL/Malware filter ingebakken in je router of andere appliance

Slot
Een heel pak informatie, naar ik hoop voldoende uitgelegd en voorzien van informatie. Verdere vragen mag je natuurlijk altijd stellen, maar zoek eerst zelf even op of je er iets over terugvind. Belangrijk is altijd dat je vragen blijft stellen, niet alleen over deze post, maar ook als je eenmaal aan analysis zelf begint. Waarom zou deze malware X of Y actie uitvoeren? Waarom dit niet en dit wel? Waarom op deze manier? Wat is het nut van deze string of naamgeving van malwarefile/folder? Stay curious!

Bart werkt bij Panda Security overdag als corporate & malware technician en werkt 's nachts als malware researcher. Meer informatie kan je terugvinden op zijn Twitter of blog.

Dit artikel is geschreven op persoonlijke titel van de auteur en reflecteert niet noodzakelijk de zienswijze van Security.NL.

Reacties (16)
17-06-2013, 13:28 door Whacko
Kijk, dit zijn nou eens hele nuttige artikelen. Dit zou eigenlijk bij elk groot bedrijf van toepassing moeten zijn. Maar afgezien van een firewall en een virusscanner, wordt er vaak niet veel tegen malware gedaan.
17-06-2013, 14:55 door Anoniem
Nuttig? Nee helaas
Laatst trof ik toch echt Malware aan die zicht door de virtuele laag op m'n machine wilde gaan nestelen..
Gelukkig heb ik goedeprotectie...

Let hier dus op!
17-06-2013, 15:02 door lucb1e
Door Bart Blaze: Personally I recommend having the machine connected to the internet, so the malware can do its evil work to its maximum potential and you will be able to carefully study and dissect its workings completely.
Let wel op dat dit je een aantal dagen internettoegang kan kosten. Bijvoorbeeld bij XS4ALL worden klanten met malware afgesloten tot de klant een e-mail stuurt (de xs4all webmail is nog benaderbaar) met daarin uitleg over hoe het kan en welke actie is ondernomen. Telefonisch contact is niet mogelijk, en ze willen je niet eens zeggen wat de melding was "vanwege privacyredenen" (???), dus het is altijd gissen wat ze willen horen. Daarnaast gaat deze luie abuse-afdeling op vrijdag om 5 uur naar huis en komen tot maandag 9 uur niet meer terug, dus vooral een weekendje fun met malware testen zou ik mee oppassen. Overigens doet XS4ALL niet aan deep packet inspection, naar eigen zeggen, maar krijgen ze info van honeypots. Wat andere providers doen weet ik niet, maar het is dus oppassen.
17-06-2013, 16:56 door X-max
Een goed en informatief artikel en zeker voor de security enthousiasten een goede basis voor het opzetten van een research project om eens wat effectiever naar de werking van malware te kunnen kijken.

@anoniem 14:55
Nuttig? Nee helaas
Dit is wel een redelijk kort door de bocht opmerking, als je alleen spreekt over malware die zich uit een VM kan extraheren.
17-06-2013, 17:18 door Anoniem
Hallo Bart Blaze,

Dank voor je waardevolle artikel. Een opmerkinkje over Revelo.
Ik krijg een blokkering van avast webschild als ik deze all-in-one tool probeer te downloaden:
Is dit riskware? Er wordt geobfusceerd javascript gedetecteerd zegt men.
Zie wie het allemaal detecteren: https://www.virustotal.com/nl/file/c6b23e2a3a458dd8d8b8bf431d1bef22bc546b0b83a799cb14da0e65c05e8c71/analysis/1367778723/
Zie tevens: http://www.malwarepatrol.com/cgi/search.pl?id=VHJvamFuLkpTLklmcmFtZS55dQ==

groetjes,

polonus
17-06-2013, 20:08 door Anoniem
Als je een hub (dus geen switch) tussen je lab en je gateway zet, kan je kan je Wireshark op een aparte machine uitvoeren. Een hub stuurt data naar alle apparaten en niet alleen naar de machine waar het voor bedoeld is. Zo kan je dus Wireshark gebruiken zonder het op de machine zelf te draaien.
17-06-2013, 22:51 door bartblaze
Door Anoniem: Nuttig? Nee helaas
Laatst trof ik toch echt Malware aan die zicht door de virtuele laag op m'n machine wilde gaan nestelen..
Gelukkig heb ik goedeprotectie...

Let hier dus op!

That's besides the point. Een klein percentage van de malware zal dit misschien proberen, de meesten zullen echter geen kik geven indien ze merken dat er in een virtuele omgeving gewerkt wordt.

Tevens staat ook bij de punten in mijn artikel een vermelding dat je, als je een virtuele machine gebruikt, op je fysieke host een degelijke antivirus en/of HIPS moet hebben.


Door Anoniem: Hallo Bart Blaze,

Dank voor je waardevolle artikel. Een opmerkinkje over Revelo.
Ik krijg een blokkering van avast webschild als ik deze all-in-one tool probeer te downloaden:
Is dit riskware? Er wordt geobfusceerd javascript gedetecteerd zegt men.
Zie wie het allemaal detecteren: https://www.virustotal.com/nl/file/c6b23e2a3a458dd8d8b8bf431d1bef22bc546b0b83a799cb14da0e65c05e8c71/analysis/1367778723/
Zie tevens: http://www.malwarepatrol.com/cgi/search.pl?id=VHJvamFuLkpTLklmcmFtZS55dQ==

groetjes,

polonus

Dag polonus, dank voor je reactie. De tool is zeker geen riskware of malware, anders zou ik ze niet aanraden ;-). Dit zijn dus False Positives van bepaalde antivirus vendors. Revelo zelf heeft enkele scripts ingebakken om malware (meer specifiek malicious Javascript) te detecteren. Ook zijn er enkele voorbeelden in de ZIP-file waardoor je wat met Revelo kan 'spelen'.
Ik vermoed dat hierdoor de virusscanners alarm slaan.

Ik heb een mirror opgezet op Mijnbestand.nl: http://www.mijnbestand.nl/Bestand-7UBJ6ZSCINMK.zip
Het wachtwoord om uit te pakken is: tools

Revelo gaat zich installeren in de %programfiles% folder. Handig is dus dat je deze exclude in je antivirusproduct.
(bv.: C:\Program Files(x86)\Revelo )

Echter is het meer de bedoeling om Revelo in VM of in een Sandbox(ie) te laten draaien. Immers ga je kwaadaardige scripts uitvoeren, die malware kunnen downloaden of shellcode starten op je systeem. Revelo gaat hier geen bescherming tegen bieden.

Groeten.
18-06-2013, 11:20 door Anoniem
Eindelijk een nuttige tip van de week! Hier kan ik zeker wat mee, bedankt voor de info!
18-06-2013, 15:32 door Jion
Handig en duidelijk uitgelegd artikel Bart!
Toppertje!
18-06-2013, 21:27 door schele
Kijk, dit lijkt er meer op. Vergelijk dit met die "open deur 2013" nominatie van vorige week. Hoeft niet per se nuttig te zijn omdat je het wil toepassen (hoe interessant ook, ik zal het waarschijnlijk nooit proberen) maar hoe dan ook interessant om te lezen hoe dat in zijn werk gaat, malware onderzoeken.
Encore!
19-06-2013, 07:46 door Anoniem
Door Anoniem: Nuttig? Nee helaas
Laatst trof ik toch echt Malware aan die zicht door de virtuele laag op m'n machine wilde gaan nestelen..
Gelukkig heb ik goedeprotectie...

Let hier dus op!

Misschien kan je ons dan informeren over deze goede protectie? Voor zij dit de tips uit dit artikel wel willen gaan toepassen in hun lab-omgeving.
19-06-2013, 13:53 door Anoniem
Wat ik bij de tools mis is de Cuckoo Sandbox. Dit is de software waarvan Malwr een wat oudere versie gebruikt. Het is best wat werk om het werkende te krijgen en meer geschikt om grote hoeveelheden malware te analyseren maar als je je gewenste tests gedefinieerd hebt is het analyseren van een bestand een kwestie van submit en go.
19-06-2013, 17:17 door beamer
Goede Tip Bart!
20-06-2013, 09:28 door Simplect
Dit is dus echt geen goed idee voor een gemiddelde hobbyist. Door dit op deze manier aan te raden zeg je dat het "oke" is. Maar zomenteen zitten er een groepje hobbyisten met een geblokkeerd ip adres vanwege spam die verstuurd word. Laat de Mallware research maar over aan de echte mensen, de mensen die het echt kunnen reversen en er niet een paar tools voor gebruiken. Ik raad je aan om hier mee op te passen, er zijn mallware versies/wormen die zo je virtual box breken of je eigen computer in je netwerk neer te halen :). Of natuurlijk spam versturen of een andere manier van botting waarmee je dus weer andere mensen lastig valt,.
20-06-2013, 16:20 door Anoniem
@Factionwars

Het is ook niet de bedoeling denk ik hier om een gemiddelde hobbyist dit te laten doen, wat is immers een hobbyist? Je moet immers al iets van computers kennen voor je hiermee aan de slag kan... Zoals @Whacko al zei is dit zeker handig voor in bedrijven.

Trouwens: het is malware en geen "mallware"

Zeker een goede tip in het algemeen, aangevuld met de tips van anderen!
23-06-2013, 19:55 door bartblaze
Bedankt allemaal voor jullie feedback! In de toekomst schrijf ik nog wel eens een artikel als opvolging hierop.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.