Analyse de Malware en Lab Isole: Setup Securise avec FlareVM et REMnux
Comment monter un laboratoire air-gapped avec FlareVM et REMnux pour le reverse engineering d'echantillons reels sans contaminer votre reseau ni bruler des IOCs.

Vous avez tire un sample suspect dune vraie campagne de phishing, decompresse sur le bureau, et compris trop tard que Defender avait deja envoye le hash a MAPS. Felicitations: vous venez de bruler un indicateur, de polluer la telemetrie et peut-etre dalerter ladversaire. Avant de toucher un binaire avec extension .exe, .iso ou .lnk, il vous faut un lab isole, reproductible et jetable. Le duo FlareVM pour lanalyse Windows et REMnux pour le reseau et loutillage defensif Linux est le standard de facto depuis 2020. Ce guide le construit de zero sur VirtualBox avec des snapshots versionnes et un reseau host-only qui ne route vers rien de reel, puis parcourt le workflow complet de detonation qui transforme un blob opaque en capacites nommees et indicateurs partageables.
Pourquoi lisolation nest pas negociable
Le malware est du code ecrit pour faire quelque chose a un hote, et des linstant ou il tourne sur une machine qui atteint vos fichiers, votre reseau ou internet, vous lui avez donne exactement ce quil veut. Les analystes se brulent de trois facons: le sample appelle a la maison et alerte son operateur quil a detone; il se propage lateralement via un reseau en bridge vers de vrais actifs; ou un antivirus cloud lupload en silence et detruit la confidentialite de lenquete. Le lab existe pour casser les trois. Tout se passe dans des machines virtuelles sans shared folders, sans presse-papiers, sans glisser-deposer, sans USB passthrough, et avec un reseau qui se termine sur une box de faux services plutot quun gateway. Si un sample ne peut pas savoir quil est observe et ne peut pas sechapper, vous possedez la rencontre.
Hyperviseur et topologie reseau
VirtualBox 7.1 ou VMware Workstation 17 marchent tous deux; evitez le KVM brut sauf si vous maitrisez deja libvirt et les VLANs, car mal configurer un bridge et exposer le sample a votre LAN maison est une erreur reelle et frequente. Creez deux machines virtuelles: un Windows 10 22H2 (pas 11, car certains implants verifient le build) avec quatre vCPU, 8 Go de RAM et un disque dynamique de 80 Go qui devient FlareVM, et un Ubuntu qui devient REMnux. Desactivez toute integration hote. Utilisez un reseau host-only sans DHCP et assignez 10.66.66.10 a Windows et 10.66.66.20 a REMnux a la main. Il ny a pas de route par defaut vers internet; la seule chose a qui Windows peut parler est la box Linux qui joue le monde entier.
Construire la box danalyse FlareVM
Linstallation de FlareVM exige un Windows fraichement installe, hors domaine, sans updates en attente, avec Defender temporairement desactive par local policy pour que linstalleur ne se batte pas contre la protection temps reel. Le install.ps1 de Mandiant depuis le repo FLARE-VM tire des dizaines de paquets Chocolatey: x64dbg, IDA Free, Ghidra, dnSpy, PE-bear, Detect It Easy, FLOSS, CAPA et pestudio. Prevoyez environ deux heures et 30 Go de telechargement. Une fois fini, prenez un snapshot nomme Clean-FlareVM-Base avant de lancer le moindre sample. Ce snapshot est votre rollback sacre: chaque sample detone y revient, garantissant que lexperience deux demarre dans le meme etat que la un. Documentez chaque version doutil dans un fichier versionne, car CAPA 7.x et 8.x produisent des sorties incompatibles et la reproductibilite depend de savoir exactement ce qui a tourne.
REMnux et INetSim: simuler internet
REMnux sert de tap passif et de serveur de faux services. Au lieu dinstaller de zero, recuperez lappliance OVA officielle de Lenny Zeltser, importez-la, et au premier boot lancez remnux update puis remnux upgrade. Configurez INetSim dans /etc/inetsim/inetsim.conf pour binder sur 10.66.66.20 avec HTTP, HTTPS, DNS, SMTP, IRC et FTP actifs. Cote FlareVM, pointez la gateway par defaut et le DNS sur cette adresse. Resultat: tout serveur de command-and-control que le malware tente datteindre atterrit dans INetSim, qui repond avec de faux binaires et logue chaque octet. Vous obtenez la meme visibilite quun proxy web, mais au niveau paquet brut, et le sample croit avoir atteint son operateur alors quil na parle qua votre piege.
La capture de trafic est le second pilier
Lancez Wireshark sur REMnux en mode promiscuous sur ladaptateur host-only, et lancez tcpdump en parallele ecrivant des PCAPs rotates de 100 Mo pour ne rien perdre si la GUI se fige. Superposez Suricata en IDS avec le ruleset ET Open, plus Emerging Threats Pro si vous avez une licence de recherche, pour que les familles connues sallument par signature. Pour les samples qui parlent TLS, montez mitmproxy avec un root cert pousse dans le trust store Windows. Oui, ca casse le certificate pinning, mais la plupart des stealers commodity comme Redline, Vidar et Lumma nen implementent pas, donc vous lisez leurs beacons en clair. Du materiel plus lourd comme les beacons Cobalt Strike ou les implants Sliver peut necessiter du unhooking et une manipulation plus deliberee, une discipline distincte du triage.
Analyse statique avant de rien lancer
Copiez le sample avec les shared folders desactives; utilisez scp de REMnux vers FlareVM via un service SSH temporaire puis tuez le service. Calculez le SHA-256 avec Get-FileHash et consignez-le avec source, date et hypothese initiale. Lancez FLOSS pour extraire les strings obfusquees et de stack, CAPA pour mapper les capacites aux techniques MITRE ATT&CK, et Detect It Easy pour fingerprinter le packer et le compilateur. PE-bear revele la table des sections, les imports et lentropie: une section de texte avec entropie au-dessus de 7,0 hurle le packing. pestudio signale les imports suspects comme VirtualAllocEx et WriteProcessMemory qui trahissent linjection de processus. Rien de tout cela nexecute le code, et une part surprenante du verdict est deja visible avant que la premiere instruction ne tourne.
Analyse dynamique: le workflow de detonation
Maintenant demarrez les moniteurs et detonez. Lancez Procmon avec un filtre sur larbre de processus du sample et Process Hacker pour voir handles, threads et memoire injectee en temps reel, puis executez le binaire. Guettez les indicateurs de systeme de fichiers et de registre a mesure quils apparaissent: une copie vers %APPDATA%, une cle Run pour la persistance, une tache planifiee, un mutex qui empeche la double execution. Correlez cela avec la trace reseau dans INetSim pour voir le pattern de callback. Si le sample est packe, lanalyse statique cale sur le stub de unpacking; un binaire packe UPX cede a upx -d, tandis quun packer custom demande x64dbg avec ScyllaHide contre lanti-debug, un breakpoint a loriginal entry point et un dump memoire a cet instant. Une fois fini, revenez au snapshot propre et verifiez que la box est vierge avant la prochaine execution.
La securite operationnelle separe le pro du patient zero
Lhygiene est ce qui vous empeche de devenir la victime. Ne connectez jamais la VM danalyse a votre vrai LAN, ne vous connectez jamais a un compte personnel dedans, et traitez chaque hash comme potentiellement lie a un acteur capable de represailles. Les soumissions VirusTotal sont publiques, donc supposez quun adversaire sophistique surveille ses propres hashes et apprend a linstant ou vous uploadez; ne lutilisez que quand le sample est deja largement connu. Collectez depuis Malware Bazaar, triez sur Any.Run pour la detonation publique quand vos regles dengagement lautorisent, et gardez les samples chiffres dans des conteneurs VeraCrypt hors ligne pour quun double-clic accidentel ne lance jamais du malware vivant contre votre propre poste.
Pieges et une checklist de reproductibilite
Les erreurs classiques sont previsibles: laisser les shared folders actifs pour que le sample sechappe vers lhote; oublier le snapshot pour que la deuxieme execution soit contaminee par la premiere; faire confiance au verdict dun seul outil; et lancer des samples avec acces internet parce quINetSim semblait trop de setup. Avant de declarer le lab pret, confirmez que toutes les integrations hote sont coupees, que Clean-FlareVM-Base existe, quINetSim repond sur chaque protocole configure, que Wireshark et tcpdump capturent tous deux, et quun sample connu de Malware Bazaar tagge Emotet ou AgentTesla se comporte identiquement sur deux cycles consecutifs de detoner et revenir. Si vous ne pouvez pas reproduire le meme resultat deux fois, le lab nest pas pret et toute enquete reelle que vous y menez est deja suspecte.
Du triage a la forensique memoire
Le triage comportemental vous dit ce que fait un sample; la forensique memoire vous dit ce quil a cache. Beaucoup de loaders modernes necrivent jamais leur vraie payload sur le disque, la dechiffrent directement dans une region fraichement allouee et lexecutent la, si bien quun snapshot de RAM est le seul endroit ou le code depacke existe. Capturez-le au pic de linfection avec un outil comme WinPMEM ou DumpIt, puis analysez limage brute avec Volatility 3. Les plugins de trait sont windows.pslist et windows.pstree pour la hierarchie de processus, windows.malfind pour faire remonter la memoire injectee et executable-mais-non-adossee, windows.netscan pour recuperer les sockets C2 quINetSim a deja logues, et windows.dlllist pour reperer les chargements de modules suspects. Comme vous avez pris la capture dans une VM snapshottee, vous pouvez rejouer la detonation et saisir une seconde image a un autre stade, puis differ les deux pour voir la persistance et linjection se derouler. Lanalyse memoire ferme la boucle que le triage statique et dynamique laissent ouverte, et cest la que les menaces fileless deviennent enfin visibles.
FAQ
Un malware peut-il detecter quil tourne dans une VM et refuser de detoner? Oui; beaucoup de familles verifient les artefacts VirtualBox, le faible nombre de cores, les petits disques ou luptime court et restent dormantes. Contrez avec un profil materiel realiste, en cachant les strings dhyperviseur, en chauffant la machine avant la detonation et, pour les samples tetus, en passant a un hote danalyse bare-metal que vous reimagez entre les executions.
Ai-je encore besoin dun lab si je peux juste uploader vers un service sandbox? Les sandboxes publics sont parfaits pour le triage mais ils sont publics, peuvent rater des declencheurs specifiques a lenvironnement et vous retirent la decision de confidentialite. Un lab local vous donne une visibilite paquet complete, une manipulation privee et la capacite dinteragir avec le sample, ce que les sandboxes automatiques ne peuvent pas.
A retenir en pratique: passez votre premier week-end a construire le lab et a taper des samples connus de Malware Bazaar, car les tags Emotet et AgentTesla sont dexcellentes roues dapprentissage. Faites trois cycles de detoner, revenir et verifier quINetSim a capture le trafic exactement comme attendu avant de toucher un vrai sample client. La reproductibilite bat la vitesse a chaque fois, et un lab en qui vous pouvez avoir confiance deux fois vaut plus quune reponse rapide que vous ne pouvez pas defendre.


