Zum Inhalt springen
Categoria: Forensik8 Min. Lesezeit

Malware-Analyse im Isolierten Lab: Sicheres Setup mit FlareVM und REMnux

Por Lucas Andrade ·

Wie man ein air-gapped Labor mit FlareVM und REMnux fuer Reverse Engineering echter Samples baut, ohne das Netzwerk zu kontaminieren oder IOCs zu verbrennen.

Malware-Analyse im Isolierten Lab: Sicheres Setup mit FlareVM und REMnux

Du hast ein verdachtiges Sample aus einer echten Phishing-Kampagne gezogen, auf dem Desktop entpackt und zu spat gemerkt, dass Defender den Hash bereits an MAPS geschickt hat. Gluckwunsch: du hast gerade einen Indikator verbrannt, Telemetrie kontaminiert und vielleicht den Gegner gewarnt. Bevor du irgendeine Binary mit Endung .exe, .iso oder .lnk anfasst, brauchst du ein isoliertes, reproduzierbares und wegwerfbares Labor. Die Kombination aus FlareVM fur Windows-Analyse und REMnux fur Linux-Netzwerk- und Defensiv-Tools ist seit 2020 De-facto-Standard. Diese Anleitung baut es von Grund auf mit VirtualBox, versionierten Snapshots und einem host-only Netz, das nirgendwo Echtes hin routet, und geht dann den vollstandigen Detonations-Workflow durch, der aus einem undurchsichtigen Blob benannte Capabilities und teilbare Indikatoren macht.

Warum Isolation nicht verhandelbar ist

Malware ist Code, der einem Host etwas antun soll, und sobald sie auf einer Maschine lauft, die deine Dateien, dein Netz oder das Internet erreicht, hast du ihr genau das gegeben, was sie will. Analysten verbrennen sich auf drei Arten: das Sample ruft nach Hause und alarmiert seinen Operator, dass es detoniert ist; es breitet sich uber ein gebridgtes Netz lateral in echte Assets aus; oder ein Cloud-Antivirus ladt es still hoch und zerstort die Vertraulichkeit der Untersuchung. Das Labor existiert, um alle drei zu brechen. Alles passiert in virtuellen Maschinen ohne Shared Folders, ohne Clipboard, ohne Drag-and-Drop, ohne USB-Passthrough und mit einem Netz, das an einer Fake-Service-Box endet statt an einem Gateway. Wenn ein Sample nicht merken kann, dass es beobachtet wird, und nicht entkommen kann, besitzt du die Begegnung.

Hypervisor und Netz-Layout

VirtualBox 7.1 oder VMware Workstation 17 funktionieren beide; meide reines KVM, solange du libvirt und VLANs nicht im Griff hast, denn eine Bridge falsch zu konfigurieren und das Sample ins Heim-LAN auszusetzen ist ein realer und haufiger Fehler. Erstelle zwei virtuelle Maschinen: ein Windows 10 22H2 (nicht 11, da manche Implants den Build checken) mit vier vCPU, 8 GB RAM und einer 80 GB dynamischen Disk, das zur FlareVM wird, und ein Ubuntu, das zu REMnux wird. Deaktiviere jede Host-Integration. Nutze ein host-only Netz ohne DHCP und vergib 10.66.66.10 an Windows und 10.66.66.20 an REMnux von Hand. Es gibt keine Default-Route ins Internet; das Einzige, mit dem Windows reden kann, ist die Linux-Box, die die ganze Welt spielt.

Die FlareVM-Analysebox bauen

FlareVM-Installation verlangt ein frisch installiertes Windows, nicht in der Domane, ohne ausstehende Updates, mit per Local Policy temporar deaktiviertem Defender, damit der Installer nicht gegen den Echtzeitschutz kampft. Mandiants install.ps1 aus dem FLARE-VM-Repo zieht dutzende Chocolatey-Pakete: x64dbg, IDA Free, Ghidra, dnSpy, PE-bear, Detect It Easy, FLOSS, CAPA und pestudio. Plane rund zwei Stunden und 30 GB Download. Sobald fertig, mach einen Snapshot namens Clean-FlareVM-Base, bevor du je ein Sample ausfuhrst. Dieser Snapshot ist dein heiliger Rollback: jedes detonierte Sample kehrt dorthin zuruck und garantiert, dass Experiment zwei im selben Zustand wie Experiment eins startet. Dokumentiere jede Toolversion in einer versionierten Datei, weil CAPA 7.x und 8.x inkompatible Outputs erzeugen und Reproduzierbarkeit davon abhangt, genau zu wissen, was lief.

REMnux und INetSim: das Internet faken

REMnux dient als passiver Tap und Fake-Service-Server. Statt von Null zu installieren, lad die offizielle OVA-Appliance von Lenny Zeltser, importiere sie, und beim ersten Boot fuhr remnux update und dann remnux upgrade aus. Konfiguriere INetSim in /etc/inetsim/inetsim.conf auf Bind 10.66.66.20 mit HTTP, HTTPS, DNS, SMTP, IRC und FTP aktiv. Auf der FlareVM-Seite zeigen Default-Gateway und DNS auf diese Adresse. Ergebnis: jeder Command-and-Control-Server, den die Malware erreichen will, landet in INetSim, das mit Fake-Binaries antwortet und jedes Byte loggt. Du bekommst dieselbe Sichtbarkeit wie mit einem Web-Proxy, aber auf Rohpaket-Ebene, und das Sample glaubt, es habe seinen Operator erreicht, obwohl es nur mit deiner Falle gesprochen hat.

Traffic-Capture ist die zweite Saule

Starte Wireshark auf REMnux im Promiscuous-Mode am host-only Adapter und lass tcpdump parallel 100-MB-rotierte PCAPs schreiben, damit nichts verloren geht, wenn die GUI hangt. Lege Suricata als IDS mit dem ET-Open-Regelsatz daruber, plus Emerging Threats Pro bei Forschungslizenz, damit bekannte Familien per Signatur aufleuchten. Fur Samples, die TLS sprechen, bau mitmproxy mit einem Root-Cert im Windows-Trust-Store. Ja, das bricht Certificate-Pinning, aber die meisten Commodity-Stealer wie Redline, Vidar und Lumma implementieren keins, also liest du ihre Beacons im Klartext. Schwereres Gerat wie Cobalt Strike Beacons oder Sliver Implants erfordert eventuell Unhooking und bewussteres Handling, was eine eigene Disziplin abseits der Triage ist.

Statische Analyse, bevor du irgendetwas ausfuhrst

Kopiere das Sample mit deaktivierten Shared Folders; nutze scp von REMnux zur FlareVM uber einen temporaren SSH-Dienst und kill den Dienst danach. Berechne den SHA-256 mit Get-FileHash und trag ihn mit Quelle, Datum und Anfangshypothese ein. Lass FLOSS obfuskierte und Stack-Strings extrahieren, CAPA Capabilities auf MITRE ATT&CK mappen und Detect It Easy den Packer und Compiler fingerprinten. PE-bear zeigt Section-Tabelle, Imports und Entropie: eine Text-Section mit Entropie uber 7,0 schreit nach Packing. pestudio markiert verdachtige Imports wie VirtualAllocEx und WriteProcessMemory, die auf Process Injection deuten. Nichts davon fuhrt den Code aus, und ein uberraschend grosser Teil des Urteils ist schon sichtbar, bevor die erste Instruktion lauft.

Dynamische Analyse: der Detonations-Workflow

Jetzt starte die Monitore und detoniere. Starte Procmon mit einem Filter auf den Prozessbaum des Samples und Process Hacker, um Handles, Threads und injizierten Speicher in Echtzeit zu sehen, dann fuhr die Binary aus. Achte auf Filesystem- und Registry-Indikatoren, wie sie auftauchen: eine Kopie nach %APPDATA%, ein Run-Key fur Persistenz, ein Scheduled Task, ein Mutex gegen Doppelausfuhrung. Korreliere das mit dem Netzwerk-Trace in INetSim, um das Callback-Muster zu sehen. Ist das Sample gepackt, stockt die statische Analyse am Unpacking-Stub; eine UPX-gepackte Binary weicht upx -d, ein Custom Packer braucht x64dbg mit ScyllaHide gegen Anti-Debugging, einen Breakpoint am Original Entry Point und einen Memory-Dump in diesem Moment. Wenn du fertig bist, kehr zum sauberen Snapshot zuruck und verifiziere, dass die Box unberuhrt ist, bevor der nachste Lauf beginnt.

Operative Sicherheit trennt den Profi von Patient Null

Hygiene halt dich davon ab, selbst zum Opfer zu werden. Verbinde die Analyse-VM nie mit deinem echten LAN, logg dich nie in einen personlichen Account darin ein, und behandle jeden Hash als potenziell mit einem Akteur verbunden, der zu Vergeltung fahig ist. VirusTotal-Submissions sind offentlich, nimm also an, ein raffinierter Gegner uberwacht seine eigenen Hashes und lernt in dem Moment, in dem du hochladst; nutze es nur, wenn das Sample ohnehin weithin bekannt ist. Sammle vom Malware Bazaar, triage bei Any.Run zur offentlichen Detonation, wenn deine Rules of Engagement es erlauben, und halte Samples in offline VeraCrypt-Containern verschlusselt, damit ein versehentlicher Doppelklick nie lebende Malware gegen deine eigene Workstation fahrt.

Fallstricke und eine Reproduzierbarkeits-Checkliste

Die klassischen Fehler sind vorhersehbar: Shared Folders an lassen, sodass das Sample zum Host entkommt; das Snapshotten vergessen, sodass der zweite Lauf vom ersten kontaminiert ist; dem Urteil eines einzigen Tools vertrauen; und Samples mit Internetzugang fahren, weil INetSim nach zu viel Setup aussah. Bevor du das Labor fur bereit erklarst, bestatige, dass alle Host-Integrationen aus sind, dass Clean-FlareVM-Base existiert, dass INetSim auf jedem konfigurierten Protokoll antwortet, dass Wireshark und tcpdump beide capturen, und dass ein bekanntes Sample vom Malware Bazaar mit Tag Emotet oder AgentTesla uber zwei aufeinanderfolgende Detonate-und-Revert-Zyklen identisch reagiert. Kannst du dasselbe Ergebnis nicht zweimal reproduzieren, ist das Labor nicht bereit und jede echte Untersuchung darauf schon verdachtig.

Von der Triage zur Memory Forensics

Verhaltens-Triage sagt dir, was ein Sample tut; Memory Forensics sagt dir, was es versteckt hat. Viele moderne Loader schreiben ihre echte Payload nie auf die Disk, sondern entschlusseln sie direkt in eine frisch allozierte Region und fuhren sie dort aus, sodass ein RAM-Snapshot der einzige Ort ist, an dem der entpackte Code existiert. Fang ihn auf dem Hohepunkt der Infektion mit einem Tool wie WinPMEM oder DumpIt und analysiere das Roh-Image mit Volatility 3. Die Arbeitspferd-Plugins sind windows.pslist und windows.pstree fur die Prozesshierarchie, windows.malfind, um injizierten und ausfuhrbaren-aber-unbacked Speicher aufzudecken, windows.netscan, um die C2-Sockets zu bergen, die INetSim schon geloggt hat, und windows.dlllist, um verdachtige Modul-Loads zu erkennen. Weil du die Capture in einer gesnapshotteten VM gemacht hast, kannst du die Detonation erneut fahren, ein zweites Image in einem anderen Stadium greifen und beide diffen, um Persistenz und Injection sich entfalten zu sehen. Memory-Analyse schliesst die Schleife, die statische und dynamische Triage offen lassen, und ist der Ort, an dem fileless Bedrohungen endlich sichtbar werden.

FAQ

Kann Malware erkennen, dass sie in einer VM lauft, und die Detonation verweigern? Ja; viele Familien prufen auf VirtualBox-Artefakte, niedrige Core-Zahl, kleine Disks oder kurze Uptime und gehen schlafen. Kontere mit realistischem Hardware-Profil, versteckten Hypervisor-Strings, Aufwarmen vor der Detonation und, fur sture Samples, einem Bare-Metal-Analysehost, den du zwischen Laufen neu aufsetzt.

Brauche ich noch ein Labor, wenn ich einfach in einen Sandbox-Dienst hochladen kann? Offentliche Sandboxes sind gut fur Triage, aber sie sind offentlich, verpassen eventuell umgebungsspezifische Trigger und nehmen dir die Vertraulichkeitsentscheidung aus der Hand. Ein lokales Labor gibt dir volle Paket-Sichtbarkeit, private Handhabung und die Moglichkeit, mit dem Sample zu interagieren, was automatische Sandboxes nicht konnen.

Praktisches Takeaway: investiere dein erstes Wochenende in den Lab-Aufbau und das Durchprugeln bekannter Samples vom Malware Bazaar, denn die Tags Emotet und AgentTesla sind exzellente Stutzrader. Fahr drei Zyklen aus Detonieren, Zurucksetzen und Verifizieren, dass INetSim den Traffic genau wie erwartet eingefangen hat, bevor du je ein echtes Kundensample anfasst. Reproduzierbarkeit schlagt Geschwindigkeit jedes Mal, und ein Labor, dem du zweimal trauen kannst, ist mehr wert als eine schnelle Antwort, die du nicht verteidigen kannst.

Related posts

Nenhum comentário ainda

Seja o primeiro a comentar.

Deixe seu comentário

Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

Entrar com Canverly