Débuter avec l'analyse de malware
Un guide pour débutants sur l'analyse de malware : les quatre types d'analyse, monter un labo sûr, le triage statique et dynamique, un parcours d'apprentissage.
L'analyse de malware est la pratique consistant à décortiquer un fichier suspect pour comprendre ce qu'il fait, comment il le fait, et comment le détecter et l'arrêter. C'est une discipline défensive : les analystes disséquent les menaces afin que les intervenants en réponse aux incidents, les ingénieurs de détection et les équipes de renseignement sur les menaces puissent protéger de vrais systèmes. Ce guide est un point d'entrée pour les débutants qui veulent apprendre à analyser un malware en toute sécurité — pas à en écrire.
Ce à quoi l'analyse de malware répond réellement
Lorsqu'un échantillon atterrit sur le bureau d'un analyste, l'objectif est de répondre à une poignée de questions pratiques :
- Qu'est-ce que ce fichier, et est-il réellement malveillant ?
- Que fait-il lorsqu'il s'exécute — que touche-t-il, modifie-t-il ou vole-t-il ?
- Comment persiste-t-il, se cache-t-il ou se propage-t-il ?
- Quels indicateurs de compromission (IOC) pouvons-nous extraire pour le détecter ailleurs ?
Tout le reste — l'outillage, le labo, la méthodologie — existe pour répondre à ces questions de manière fiable et sans se faire infecter au passage.
Les quatre types d'analyse
La plupart des workflows combinent quatre approches complémentaires. On n'en utilise rarement une seule.
Analyse statique
Examiner le fichier sans l'exécuter : type de fichier, hachages, chaînes intégrées, en-têtes, imports et ressources. C'est rapide, à faible risque, et la première étape naturelle.
Analyse dynamique
Exécuter l'échantillon dans un environnement contrôlé et instrumenté et observer son comportement — processus engendrés, fichiers écrits, clés de registre définies et connexions réseau établies.
Analyse de code
Reverse engineering approfondi du binaire lui-même. L'analyse de code statique consiste à lire le désassemblage ou la sortie décompilée ; l'analyse de code dynamique consiste à parcourir le programme pas à pas dans un débogueur pour observer la logique se dérouler. C'est là que vous déjouez les astuces documentées sous techniques anti-analyse.
Analyse comportementale
Prendre du recul pour caractériser l'intention : s'agit-il d'un downloader, d'un banker, d'un ransomware, d'une backdoor ? L'analyse comportementale corrèle les observations brutes des trois autres en une histoire et une attribution à une famille.
Montez d'abord un labo sûr et isolé
C'est la section la plus importante de toutes. N'analysez jamais de malware sur une machine à laquelle vous tenez. Construisez le labo avant de toucher au moindre échantillon.
Utilisez des machines virtuelles avec instantanés
Exécutez un système d'exploitation invité (généralement Windows pour la plupart des malwares) à l'intérieur d'un hyperviseur tel que VirtualBox ou VMware. Prenez un instantané propre avant chaque exécution afin de pouvoir revenir à un état vierge en quelques secondes. Les instantanés sont votre bouton d'annulation — utilisez-les généreusement.
Isolez le réseau
Par défaut, le malware tentera de téléphoner à la maison (phone home). Configurez un réseau host-only ou entièrement isolé afin que l'invité ne puisse atteindre ni votre vrai réseau local, ni votre hôte, ni internet. Des outils comme INetSim ou FakeDNS peuvent simuler des services internet pour que l'échantillon se comporte naturellement tout en restant confiné.
Utilisez des distributions dédiées
Deux boîtes à outils gratuites font économiser des semaines d'installation :
- FLARE-VM — une collection d'outils d'analyse sous Windows (désassembleurs, débogueurs, visualiseurs de PE, moniteurs).
- REMnux — une distribution Linux remplie d'utilitaires d'analyse statique, réseau et de documents.
Durcissez le labo davantage : désactivez les dossiers partagés et le partage du presse-papiers, retirez les guest additions si elles élargissent la surface d'attaque, et ne vous connectez jamais à des comptes personnels à l'intérieur de la VM.
Triage statique de base
Une fois le labo prêt, commencez chaque échantillon par un triage statique. C'est sûr et cela vous dit fréquemment l'essentiel de ce dont vous avez besoin.
- Hachez le fichier. Calculez MD5, SHA-1 et SHA-256. Les hachages sont l'IOC universel et permettent d'interroger les bases de renseignement sur les menaces pour des observations antérieures.
- Identifiez le type de fichier. Ne vous fiez pas à l'extension. Confirmez s'il s'agit d'un PE Windows, d'un ELF, d'un script ou d'un document.
- Extrayez les chaînes. Extrayez les chaînes ASCII et Unicode imprimables. Les URL, adresses IP, chemins de registre, noms de mutex et messages d'erreur trahissent souvent le but de l'échantillon.
- Inspectez les en-têtes PE. L'horodatage de compilation, les sections et l'entropie donnent des indices sur la nature de l'échantillon. Une entropie élevée dans une section signale souvent une compression ou un chiffrement — un signe classique de packing. Un binaire packé avec UPX, par exemple, est un cas courant et rapidement réversible traité dans packing UPX.
- Lisez les imports. Les API Windows qu'un binaire importe sont une feuille de route de ses capacités —
CreateRemoteThreadetWriteProcessMemorysuggèrent une injection,RegSetValueExsuggère une persistance, et les API réseau suggèrent du command-and-control.
Une table d'imports courte sur un gros fichier est en soi un signal d'alerte : cela signifie généralement que le vrai code est packé et ne se déploie qu'à l'exécution.
Triage dynamique de base
Lorsque l'analyse statique cale — généralement parce que l'échantillon est packé ou obfusqué — faites-le détoner dans le labo et observez. Prenez d'abord un instantané, puis surveillez :
- Processus. Guettez les enfants engendrés, les threads injectés et les processus légitimes évidés (hollowed). Cacher du code dans un processus de confiance est une technique de base ; voir process hollowing.
- Système de fichiers. Notez les fichiers déposés, en particulier dans les emplacements temporaires et de démarrage.
- Registre. Suivez les nouvelles clés et les clés Run modifiées — l'ossature de la plupart des mécanismes de persistance.
- Réseau. Capturez les résolutions DNS, les requêtes HTTP et les connexions brutes pour révéler l'infrastructure C2 et les URL de téléchargement.
Exécutez l'échantillon, laissez-le agir quelques minutes, recueillez vos observations, puis revenez à l'instantané. Recommencez avec différentes conditions (faux internet activé/désactivé, privilèges différents) pour faire ressortir davantage de comportements.
Rester sûr et éthique
- Confinez tout. Supposez que n'importe quel échantillon peut s'échapper d'un labo mal configuré. Par défaut, pas d'internet et retour à l'instantané après chaque exécution.
- N'exécutez jamais d'échantillons sur du matériel de production ou personnel. Pas même « juste cette fois ».
- Obtenez les échantillons légalement et ne les manipulez qu'à des fins défensives, de recherche ou éducatives.
- Respectez la loi et votre politique. Ne distribuez pas de malware actif et ne le testez pas contre des systèmes qui ne vous appartiennent pas.
- Documentez au fur et à mesure. La reproductibilité fait la différence entre une intuition et une analyse.
Un parcours d'apprentissage réaliste
Vous n'avez pas à tout apprendre d'un coup. Un ordre sensé :
- Fondamentaux. Apprenez comment fonctionnent les systèmes d'exploitation, les processus, la mémoire et l'API Windows.
- Triage statique. Devenez fluide avec le hachage, les chaînes et l'inspection de PE. Forgez le réflexe de formuler une hypothèse avant d'exécuter quoi que ce soit.
- Labo et triage dynamique. Montez FLARE-VM et REMnux, maîtrisez les instantanés et le réseau isolé, et entraînez-vous à la détonation sûre.
- Assembleur et analyse de code. Apprenez l'assembleur x86/x64 et un désassembleur, puis passez au débogage à travers les packers et les astuces anti-analyse.
- Automatisation et renseignement. Scriptez le triage répétitif et apprenez à écrire des règles de détection à partir de vos découvertes.
Entraînez-vous sur des échantillons délibérément vulnérables et autorisés et sur des défis de type CTF avant de toucher à quoi que ce soit d'actif. Parcourez la bibliothèque complète de techniques de reverse engineering pour voir comment des astuces précises fonctionnent, et gardez le glossaire ouvert pour les termes que vous croiserez en chemin.
Commencez à analyser
L'analyse de malware récompense la patience, la curiosité et la discipline en matière de sécurité. Montez votre labo isolé, lancez votre premier triage statique sur un échantillon connu pour être sûr, et progressez petit à petit. Explorez la bibliothèque de techniques pour approfondir chaque compétence — un échantillon sûrement confiné à la fois.