Aller au contenu

Chapitre 1 — Introduction à l'analyse de malwares : taxonomie et cycle de vie

Présentation de ce chapitre

🖥 Ouvrir les diapositives

1. Qu'est-ce qu'un malware ?

Un malware (contraction de malicious software, logiciel malveillant) désigne tout programme conçu intentionnellement pour nuire à un système informatique, à ses données ou à ses utilisateurs, sans le consentement légitime de la victime. Cette définition volontairement large recouvre des familles très différentes par leur mode de propagation, leur charge utile (payload) et leurs objectifs : espionnage, extorsion financière, sabotage, prise de contrôle à distance, ou simple nuisance.

L'analyse de malwares est la discipline qui consiste à examiner un échantillon suspect — de manière statique (sans l'exécuter) ou dynamique (en l'exécutant en environnement contrôlé) — afin de comprendre son fonctionnement, ses capacités, ses objectifs et les moyens de le détecter et de s'en protéger. C'est une discipline strictement défensive : son but est de produire de la connaissance utile à la protection (signatures, indicateurs de compromission, recommandations), jamais de produire ou d'améliorer du code offensif.

2. Taxonomie des logiciels malveillants

La classification des malwares repose principalement sur leur mode de propagation et sur leur comportement. Les catégories ne sont pas mutuellement exclusives : un échantillon réel combine souvent plusieurs de ces caractéristiques (par exemple un ver qui installe une porte dérobée).

Virus

Un virus est un fragment de code qui s'insère dans un programme hôte légitime et se réplique lorsque ce programme est exécuté, en infectant d'autres fichiers exécutables. Comme un virus biologique, il a besoin d'un hôte pour se propager : il ne se déplace pas seul sur un réseau. Les virus historiques infectaient des fichiers exécutables ou le secteur de démarrage des disques ; ils sont aujourd'hui moins répandus que d'autres familles, notamment grâce aux mécanismes modernes de vérification d'intégrité et de signature de code.

Ver (worm)

Un ver est un programme autonome capable de se propager de machine en machine sans intervention humaine, en général en exploitant une vulnérabilité réseau ou un service mal configuré. Contrairement au virus, il n'a pas besoin d'un fichier hôte : il se réplique lui-même et diffuse ses copies. Sa capacité de propagation automatique en fait historiquement l'une des familles capables de générer les incidents à plus grande échelle et les plus rapides à se répandre.

Cheval de Troie (trojan)

Un cheval de Troie se présente comme un logiciel légitime ou utile, mais dissimule une fonction malveillante cachée (vol de données, ouverture d'un accès distant, téléchargement d'autres charges utiles). À la différence du virus et du ver, il ne se réplique pas de lui-même : sa propagation dépend de l'ingénierie sociale (l'utilisateur est incité à l'installer volontairement). Les chevaux de Troie d'accès distant (RAT — Remote Access Trojan) donnent à l'attaquant un contrôle étendu de la machine infectée.

Ransomware (rançongiciel)

Un ransomware chiffre (ou prétend chiffrer) les données de la victime et exige le paiement d'une rançon en échange de la clé de déchiffrement. Cette famille illustre bien le lien entre analyse de malwares et sécurisation des données (chapitre 6) : la meilleure défense contre un ransomware n'est pas seulement la détection, mais aussi une politique de sauvegarde robuste et testée qui rend la rançon inutile.

Spyware (logiciel espion)

Un spyware collecte discrètement des informations sur l'utilisateur ou le système (frappes clavier, historique de navigation, identifiants) et les exfiltre vers l'attaquant. Un keylogger (enregistreur de frappe) en est une sous-catégorie fréquente. L'objectif est généralement la discrétion et la persistance plutôt que la destruction visible de données.

Rootkit

Un rootkit est un ensemble de techniques (souvent combinées à un autre malware) visant à dissimuler la présence d'un programme malveillant sur le système, en manipulant le système d'exploitation lui-même (interception d'appels système, modification de structures noyau) pour masquer des fichiers, des processus ou des connexions réseau à l'utilisateur et aux outils de sécurité classiques. Un rootkit fonctionnant au niveau noyau est particulièrement difficile à détecter et à retirer, car il peut compromettre la fiabilité des outils d'inspection eux-mêmes exécutés sur la machine infectée.

Tableau récapitulatif

Famille Se réplique seul ? Besoin d'un hôte ? Objectif typique
Virus Oui (via l'hôte) Oui Corruption, propagation
Ver Oui, de façon autonome Non Propagation massive, charge utile diverse
Cheval de Troie Non Non (se fait passer pour un logiciel légitime) Accès distant, vol de données
Ransomware Variable Variable Extorsion financière
Spyware Non Variable Espionnage, exfiltration discrète
Rootkit Non (technique de dissimulation) Accompagne souvent un autre malware Dissimulation, persistance

3. Cycle de vie d'une attaque malveillante

Comprendre l'analyse d'un échantillon isolé ne suffit pas : un malware s'inscrit généralement dans une chaîne d'attaque plus large. Un modèle classique, popularisé sous le nom de cyber kill chain, décompose cette chaîne en étapes successives (le vocabulaire varie selon les sources, l'idée générale reste stable) :

  1. Reconnaissance : collecte d'informations sur la cible (technologies utilisées, employés, surface d'attaque).
  2. Armement (weaponization) : préparation d'une charge malveillante, souvent couplée à un vecteur de livraison (document piégé, exploit).
  3. Livraison (delivery) : transmission du malware à la cible (courriel de hameçonnage, site web compromis, clé USB, exploitation directe d'un service exposé).
  4. Exploitation : déclenchement effectif du code malveillant, typiquement via l'exploitation d'une vulnérabilité logicielle ou l'exécution d'une pièce jointe par l'utilisateur.
  5. Installation : mise en place de la persistance sur le système (démarrage automatique, tâche planifiée, service).
  6. Commande et contrôle (C2) : établissement d'un canal de communication entre le malware et l'infrastructure de l'attaquant, permettant de recevoir des instructions ou d'exfiltrer des données.
  7. Actions sur objectifs : réalisation de l'objectif final de l'attaquant (vol de données, chiffrement de rançon, sabotage, mouvement latéral vers d'autres systèmes).

Ce découpage a une conséquence pratique importante pour la défense : une interruption de la chaîne à n'importe quelle étape suffit à empêcher l'attaquant d'atteindre son objectif. C'est le principe de la défense en profondeur appliqué au cycle d'attaque : il n'est pas nécessaire de bloquer parfaitement chaque étape individuellement pour être efficace globalement.

Le référentiel MITRE ATT&CK®, largement utilisé dans l'industrie et repris au chapitre 5, formalise ce type de démarche de façon plus détaillée, en cataloguant des tactiques (les objectifs, proches des étapes ci-dessus) et des techniques (les moyens concrets observés pour les atteindre), à partir d'observations documentées de campagnes réelles.

4. Panorama du domaine de l'analyse de malwares

L'analyse de malwares se pratique à plusieurs niveaux de profondeur, qui structurent le reste de ce module :

  • Analyse statique (chapitre 2) : étude du fichier sans l'exécuter — hachage, chaînes de caractères, structure du binaire, désassemblage.
  • Analyse dynamique (chapitre 3) : observation du comportement de l'échantillon lors de son exécution dans un environnement isolé et instrumenté (sandbox).
  • Rétro-ingénierie (chapitre 4) : analyse approfondie du code assembleur pour comprendre précisément la logique interne d'un échantillon, au-delà de son comportement observable en boîte noire.
  • Détection et réponse (chapitre 5) : traduction des résultats d'analyse en mécanismes de défense opérationnels (signatures, règles heuristiques, indicateurs de compromission) et en procédures de réponse à incident.

Ces approches sont complémentaires plutôt que concurrentes : une analyse professionnelle combine généralement une première passe statique rapide, une exécution en sandbox pour observer le comportement réel, puis, si nécessaire, une rétro-ingénierie ciblée sur les parties les plus intéressantes du code.

L'analyse de malwares implique, par nature, de manipuler du code potentiellement dangereux. Ce module impose donc un cadre strict, qui doit être considéré comme un prérequis non négociable à toute activité pratique :

  • Isolation stricte : tout échantillon (y compris les échantillons pédagogiques bénins utilisés en TP) doit être manipulé dans une machine virtuelle dédiée, sans partage de dossiers avec la machine hôte, avec une carte réseau désactivée ou isolée dans un réseau interne sans accès à Internet ni au réseau de l'établissement.
  • Autorisation explicite : en dehors du cadre pédagogique strictement encadré de ce cours, l'analyse d'un échantillon suspect doit se faire avec une autorisation claire (par exemple dans le cadre d'une mission professionnelle de réponse à incident) et jamais sur un système de production sans accord préalable.
  • Aucune manipulation de malware réel dans ce cours : tous les échantillons utilisés en TP sont des programmes fictifs ou bénins construits spécifiquement pour l'exercice, qui simulent des comportements suspects (écriture de fichiers, tentative de connexion réseau) sans jamais causer de dommage réel ni contenir de code malveillant fonctionnel.
  • Non-divulgation irresponsable : dans un contexte professionnel réel, la découverte d'une vulnérabilité ou d'un incident suit un principe de divulgation responsable (informer les parties concernées avant toute publication), qui sera repris au chapitre 5 dans le contexte de la réponse à incident.
  • Cadre légal : la détention, la création ou la diffusion de code malveillant sans cadre légal approprié est un délit dans la plupart des juridictions. Ce module ne fournit et ne fournira jamais de code malveillant fonctionnel, ni d'instructions opérationnelles permettant d'en créer.

À retenir

  • Un malware se définit par son intentionnalité malveillante ; ses familles (virus, ver, cheval de Troie, ransomware, spyware, rootkit) se distinguent surtout par leur mode de propagation et leur comportement, et se combinent souvent dans un même échantillon réel.
  • Une attaque malveillante s'inscrit typiquement dans un cycle de vie en plusieurs étapes (reconnaissance, livraison, exploitation, installation, commande et contrôle, actions sur objectifs) : interrompre une seule étape suffit à protéger la cible.
  • L'analyse de malwares se décline en plusieurs approches complémentaires — statique, dynamique, rétro-ingénierie — combinées en pratique plutôt qu'utilisées isolément.
  • Ce module et l'ensemble de ses TP reposent sur un cadre éthique strict : isolation systématique, autorisation explicite, et absence totale de manipulation de code malveillant réel.
  • MITRE ATT&CK constitue un référentiel de référence pour structurer la connaissance des tactiques et techniques adverses ; il sera approfondi au chapitre 5.

Dr. Zakaria Sawadogo — École Polytechnique de Ouagadougou