Logiciels malveillants (Malwares)
Le terme "malware" est une contraction de "malicious software" (logiciel malveillant). Il désigne tout programme conçu pour nuire à un système informatique, à son utilisateur, ou aux deux. Les malwares sont une menace omniprésente et en constante évolution, qui peut prendre de nombreuses formes.
Types de malwares
Voici un aperçu des principaux types de malwares, de leurs caractéristiques et de leurs modes de fonctionnement :
Virus
Un virus est un programme malveillant qui a besoin d'un fichier hôte (un programme exécutable, un document, etc.) pour se propager. Il s'attache à ce fichier et s'exécute lorsque l'utilisateur ouvre le fichier infecté.
- Caractéristiques :
- Réplication : Le virus se copie dans d'autres fichiers ou programmes, infectant ainsi d'autres parties du système ou d'autres ordinateurs.
- Action malveillante : Le virus peut effectuer diverses actions nuisibles, comme supprimer des fichiers, corrompre des données, afficher des messages indésirables, ou voler des informations.
- Exemple : Un virus peut s'attacher à un document Word et s'exécuter lorsque l'utilisateur ouvre le document. Il peut ensuite infecter d'autres documents Word sur l'ordinateur, ou se propager à d'autres ordinateurs via des clés USB ou des emails.
Vers (Worms)
Un ver est un programme malveillant qui se propage de manière autonome, sans avoir besoin d'un fichier hôte. Il utilise généralement les réseaux informatiques (Internet, réseau local) pour se répliquer et infecter d'autres ordinateurs.
- Caractéristiques :
- Autonomie : Le ver n'a pas besoin de l'intervention de l'utilisateur pour se propager.
- Exploitation de failles : Les vers exploitent souvent des vulnérabilités dans les systèmes d'exploitation ou les logiciels pour s'introduire dans les ordinateurs.
- Consommation de ressources : Les vers peuvent consommer beaucoup de bande passante réseau et de ressources système, ralentissant ou paralysant les ordinateurs infectés.
- Exemple : Le ver ILOVEYOU, qui s'est propagé par email en 2000, a infecté des millions d'ordinateurs en quelques heures, causant des milliards de dollars de dégâts.
Chevaux de Troie (Trojans)
Un cheval de Troie (ou Trojan) est un programme malveillant qui se fait passer pour un logiciel légitime ou utile, afin de tromper l'utilisateur et de l'inciter à l'installer.
- Caractéristiques :
- Dissimulation : Le cheval de Troie se cache derrière une apparence inoffensive (un jeu, un utilitaire, une mise à jour logicielle, etc.).
- Fonctionnalités cachées : Une fois installé, le cheval de Troie peut effectuer diverses actions malveillantes à l'insu de l'utilisateur (vol de données, installation d'autres malwares, prise de contrôle de l'ordinateur, etc.).
- Pas de réplication autonome : Contrairement aux virus et aux vers, les chevaux de Troie ne se propagent pas d'eux-mêmes. Ils ont besoin de l'intervention de l'utilisateur pour être installés.
- Exemple : Un utilisateur télécharge un jeu gratuit sur un site web peu fiable. En réalité, le jeu est un cheval de Troie qui installe un keylogger (enregistreur de frappe) sur l'ordinateur, permettant aux pirates de voler les mots de passe et autres informations sensibles de l'utilisateur.
Ransomwares (Rançongiciels)
Un ransomware est un type de malware qui chiffre les fichiers de l'utilisateur (ou bloque l'accès à son ordinateur) et exige une rançon pour les déchiffrer (ou restaurer l'accès).
- Caractéristiques :
- Chiffrement fort : Les ransomwares utilisent des algorithmes de chiffrement puissants, rendant les fichiers inaccessibles sans la clé de déchiffrement.
- Demande de rançon : La rançon est généralement exigée en cryptomonnaie (Bitcoin, etc.) pour rendre le traçage plus difficile.
- Menace de perte de données : Les cybercriminels menacent souvent de supprimer les fichiers si la rançon n'est pas payée dans un délai imparti.
- Exemple : WannaCry et NotPetya, que nous avons déjà évoqués, sont des exemples célèbres de ransomwares.
Spywares (Logiciels espions)
Un spyware est un logiciel malveillant qui collecte des informations sur l'utilisateur à son insu (habitudes de navigation, données personnelles, mots de passe, etc.) et les transmet à un tiers.
- Caractéristiques :
- Surveillance discrète : Le spyware s'exécute en arrière-plan, sans que l'utilisateur ne s'en rende compte.
- Collecte de données : Le spyware peut enregistrer les frappes au clavier (keylogger), capturer des captures d'écran, surveiller les sites web visités, etc.
- Transmission des données : Les informations collectées sont envoyées à un serveur contrôlé par les cybercriminels.
- Exemple : Un spyware peut être installé à l'insu de l'utilisateur via un cheval de Troie, un logiciel gratuit téléchargé sur Internet, ou une faille de sécurité.
Adwares (Logiciels publicitaires)
Un adware est un logiciel qui affiche des publicités indésirables sur l'ordinateur de l'utilisateur. Si certains adwares sont simplement agaçants, d'autres peuvent être plus intrusifs, voire malveillants.
- Caractéristiques :
- Affichage de publicités : Les adwares affichent des pop-ups, des bannières publicitaires, ou modifient les résultats des moteurs de recherche pour afficher des publicités ciblées.
- Ralentissement de l'ordinateur : Les adwares peuvent consommer des ressources système et ralentir l'ordinateur.
- Collecte de données : Certains adwares peuvent collecter des informations sur les habitudes de navigation de l'utilisateur pour afficher des publicités plus ciblées.
- Exemple : Un utilisateur installe un logiciel sur depuis une source non officielle qui contient un adware. L'adware affiche des publicités intempestives, modifie la page d'accueil du navigateur et redirige l'utilisateur vers des sites web non sollicités.
Botnets
Un botnet est un réseau d'ordinateurs infectés (appelés "bots" ou "zombies") contrôlés à distance par un cybercriminel (le "botmaster").
-
Caractéristiques :
- Contrôle à distance : Le botmaster peut utiliser le botnet pour mener diverses attaques (déni de service distribué, envoi de spam, vol de données, etc.) sans que les propriétaires des ordinateurs infectés ne s'en rendent compte.
- Grande échelle : Les botnets peuvent comprendre des milliers, voire des millions d'ordinateurs, ce qui leur confère une puissance considérable.
- Infection discrète : Les ordinateurs sont généralement infectés par des malwares (chevaux de Troie, vers, etc.) qui les transforment en bots à l'insu de leurs propriétaires.
-
Exemple : Le botnet Mirai, composé principalement d'objets connectés (caméras de surveillance, routeurs, etc.) infectés par un malware, a été utilisé en 2016 pour mener des attaques par déni de service distribué (DDoS) massives contre des sites web et des services en ligne afin de les rendre hors ligne.
Rootkits
Un rootkit est un ensemble d'outils logiciels conçus pour masquer la présence d'un malware sur un système et permettre à un attaquant d'y maintenir un accès privilégié (niveau "root" ou administrateur).
- Caractéristiques :
- Dissimulation : Le rootkit cache les processus, les fichiers et les connexions réseau associés au malware, rendant sa détection difficile.
- Accès privilégié : Le rootkit permet à l'attaquant de contrôler le système à distance, de modifier des fichiers, d'installer d'autres malwares, etc.
- Persistance : Le rootkit est conçu pour rester actif même après un redémarrage du système.
- Exemple : Un pirate informatique installe un rootkit sur un serveur web compromis. Le rootkit lui permet de masquer la présence d'un malware qui vole les données des clients du site web, tout en lui donnant un accès permanent au serveur.
RAT (Remote Administration Tools)
Un RAT (Remote Administration Tool, ou outil d'administration à distance) est un logiciel qui permet à un utilisateur distant de contrôler un ordinateur à distance, comme s'il était physiquement devant. Si les RATs peuvent être utilisés à des fins légitimes (support technique, administration de serveurs, etc.) comme TeamViewer, ils peuvent aussi être détournés à des fins malveillantes.
- Caractéristiques :
- Contrôle total : Le RAT permet à l'attaquant de contrôler entièrement l'ordinateur cible (accès aux fichiers, aux périphériques, à la webcam, au microphone, etc.).
- Installation discrète : Les RATs malveillants sont souvent installés à l'insu de l'utilisateur, via des chevaux de Troie ou des failles de sécurité.
- Utilisation à des fins d'espionnage ou de sabotage : Les cybercriminels peuvent utiliser les RATs pour voler des informations, espionner l'utilisateur, détruire des données, ou mener d'autres attaques.
- Exemple : Un pirate informatique envoie un email de phishing contenant un cheval de Troie qui installe un RAT sur l'ordinateur de la victime. Il peut ensuite utiliser le RAT pour accéder à la webcam de la victime, enregistrer ses frappes au clavier, ou voler ses fichiers.
Il est important de noter que ces catégories de malwares ne sont pas mutuellement exclusives. Un malware peut combiner plusieurs caractéristiques (par exemple, un cheval de Troie qui installe un ransomware et un spyware). De plus, de nouveaux types de malwares apparaissent constamment, rendant la lutte contre les logiciels malveillants un défi permanent.
Modes d'infection et de propagation
Après avoir exploré les différents types de malwares, il est essentiel de comprendre comment ils parviennent à infecter les systèmes et à se propager. Connaître les vecteurs d'infection est crucial pour mettre en place des mesures de prévention efficaces.
Principaux modes d'infection
Les malwares utilisent diverses techniques pour s'introduire dans les systèmes. Voici les plus courantes :
Pièces jointes et liens malveillants dans les emails (phishing)
C'est l'une des méthodes les plus utilisées par les cybercriminels. Ils envoient des emails qui semblent provenir d'une source légitime (banque, entreprise, administration, etc.) et qui contiennent :
- Une pièce jointe infectée : Un document (Word, Excel, PDF, etc.), une archive ZIP, ou un fichier exécutable déguisé en document. L'ouverture de la pièce jointe déclenche l'exécution du malware.
- Un lien malveillant : Un lien qui redirige l'utilisateur vers un site web compromis, qui télécharge automatiquement le malware sur son ordinateur ou l'incite à le télécharger en lui faisant miroiter quelque chose (une fausse mise à jour logicielle, un cadeau, etc.).
Téléchargement de logiciels ou de fichiers sur des sites web non fiables
De nombreux sites web proposent des logiciels gratuits, des jeux, des films, ou des musiques piratées. Ces sites sont souvent truffés de malwares, qui s'installent en même temps que le logiciel ou le fichier désiré, ou à l'insu de l'utilisateur.
Exploitation de failles de sécurité (vulnérabilités logicielles)
Les logiciels et les systèmes d'exploitation contiennent souvent des failles de sécurité (bugs, erreurs de programmation, etc.). Les cybercriminels exploitent ces failles pour injecter du code malveillant dans les systèmes, sans même que l'utilisateur n'ait à faire quoi que ce soit.
- Vulnérabilités "zero-day" : Ce sont des failles qui n'ont pas encore été découvertes par l'éditeur du logiciel, ou pour lesquelles il n'existe pas encore de correctif. Elles sont particulièrement dangereuses, car il n'y a pas de protection immédiate.
Supports amovibles infectés (clés USB, disques durs externes, etc.)
Un malware peut être présent sur une clé USB ou un disque dur externe, et infecter un ordinateur dès que le support est connecté.
Publicités malveillantes (malvertising)
Des publicités en ligne, même sur des sites web légitimes, peuvent être compromises et rediriger l'utilisateur vers des sites web malveillants ou télécharger automatiquement des malwares.
Ingénierie sociale
Les cybercriminels utilisent des techniques de manipulation psychologique pour inciter les utilisateurs à effectuer des actions qui compromettent leur sécurité (révéler des informations personnelles, télécharger un malware, cliquer sur un lien malveillant, etc.). Nous aborderons l'ingénierie sociale plus en détail dans le point suivante.
La plupart des infections par malware résultent d'une combinaison de facteurs : une vulnérabilité technique (faille logicielle, absence de pare-feu, etc.) et une erreur humaine (clic sur un lien malveillant, ouverture d'une pièce jointe infectée, téléchargement d'un logiciel non fiable, etc.). C'est pourquoi la sensibilisation des utilisateurs est aussi importante que les mesures techniques de protection.
Détection et prévention
Face à la menace constante des malwares, il est crucial de mettre en place des mesures de détection et de prévention efficaces. L'objectif est double : empêcher les malwares de pénétrer dans les systèmes, et les détecter rapidement s'ils y parviennent malgré tout.
Prévention : les bonnes pratiques
La prévention repose sur une combinaison de mesures techniques et de bonnes pratiques à adopter par les utilisateurs :
Mesures techniques
-
Antivirus et anti-malware : Installer un logiciel antivirus/anti-malware à jour sur tous les appareils (ordinateurs, smartphones, tablettes, etc.) et le configurer pour qu'il effectue des analyses régulières.
-
Fonctionnement : Les antivirus utilisent plusieurs techniques pour détecter et bloquer les malwares :
- Détection par signature : C'est la méthode la plus ancienne et la plus basique. L'antivirus compare les fichiers (ou des portions de fichiers) à une base de données de "signatures" de malwares connus. Une signature est une séquence de code unique caractéristique d'un malware. Si l'antivirus trouve une correspondance, il sait que le fichier est infecté.
- Analyse heuristique : L'antivirus analyse le comportement des fichiers et des programmes pour détecter des actions suspectes, même si le malware n'est pas présent dans la base de signatures. Par exemple, un programme qui essaie de modifier des fichiers système, de s'exécuter automatiquement au démarrage, ou de se connecter à des serveurs distants suspects peut être considéré comme potentiellement malveillant.
- Analyse comportementale : Similaire à l'analyse heuristique, mais souvent plus avancée. L'antivirus surveille le comportement des programmes en temps réel et utilise des algorithmes d'apprentissage automatique (machine learning) pour identifier les comportements anormaux.
- Sandboxing (bac à sable) : L'antivirus exécute les fichiers suspects dans un environnement isolé (une "sandbox") pour observer leur comportement sans risque pour le système réel.
- Machine Learning Les solutions antivirus modernes intègrent de plus en plus des techniques d'apprentissage automatique (machine learning) pour améliorer la détection des malwares, en particulier les malwares polymorphes et les "zero-day".
- Analyse statique : Le modèle d'apprentissage automatique est entraîné sur des caractéristiques extraites du code des fichiers (sans les exécuter) pour distinguer les fichiers malveillants des fichiers légitimes.
- Analyse dynamique : Le modèle est entraîné sur des caractéristiques comportementales observées lors de l'exécution des fichiers (dans un environnement contrôlé, comme une sandbox).
-
Limites : Les antivirus ne sont pas infaillibles. Ils ne détectent pas toujours les malwares les plus récents ou les plus sophistiqués (notamment les "zero-day"). Les techniques d'évasion des malwares (voir plus loin) peuvent également tromper les antivirus.
-
-
Pare-feu (firewall) : Activer le pare-feu intégré au système d'exploitation ou installer un pare-feu tiers.
- Fonctionnement : Le pare-feu filtre le trafic réseau entrant et sortant, bloquant les connexions non autorisées et empêchant les malwares de communiquer avec l'extérieur.
- Types : Il existe des pare-feu matériels (intégrés aux routeurs) et des pare-feu logiciels (installés sur les ordinateurs).
-
Mises à jour régulières : Appliquer systématiquement et rapidement les mises à jour de sécurité du système d'exploitation, des logiciels et des applications.
- Importance : Les mises à jour corrigent souvent des failles de sécurité qui pourraient être exploitées par des malwares.
- Automatisation : Configurer les mises à jour automatiques lorsque c'est possible.
-
Sauvegardes régulières : Effectuer des sauvegardes régulières des données importantes, sur un support externe (disque dur externe, clé USB, cloud, etc.) déconnecté du réseau.
- Utilité : En cas d'infection par un ransomware, les sauvegardes permettent de restaurer les données sans avoir à payer la rançon.
- Règle du 3-2-1 : Avoir au moins trois copies des données, sur deux supports différents, dont une hors site.
-
Filtrage des emails : Utiliser un filtre anti-spam et anti-phishing pour bloquer les emails malveillants avant qu'ils n'atteignent la boîte de réception. De base, beaucoup de fournisseurs intègrent ce filtrage en amont, mais certains sont plus performants que d'autres...
-
Navigation sécurisée : Utiliser un navigateur web à jour, avec des extensions de sécurité (bloqueurs de publicités, anti-traqueurs, etc.) et activer les options de protection contre le phishing et les sites web malveillants.
-
Contrôle des accès : Appliquer le principe du moindre privilège (ne donner aux utilisateurs que les droits d'accès dont ils ont besoin) et utiliser des mots de passe robustes (complexes, uniques et changés régulièrement).
Bonnes pratiques pour les utilisateurs
-
Méfiance envers les emails et les pièces jointes : Ne pas ouvrir les emails provenant d'expéditeurs inconnus ou suspects, et ne pas ouvrir les pièces jointes ou cliquer sur les liens sans être absolument certain de leur légitimité.
- Vérification : En cas de doute, contacter l'expéditeur présumé par un autre moyen (téléphone, etc.) pour vérifier l'authenticité de l'email.
-
Téléchargement prudent : Ne télécharger des logiciels ou des fichiers que sur les sites web officiels des éditeurs, ou sur des plateformes de téléchargement fiables.
-
Vigilance sur les réseaux sociaux : Se méfier des liens et des demandes d'amis suspects, et ne pas partager d'informations personnelles sensibles.
-
Protection des appareils mobiles : Utiliser un code de verrouillage, installer un antivirus, et ne télécharger des applications que sur les boutiques officielles (Google Play Store, Apple App Store).
-
Signalement des incidents : Signaler immédiatement tout comportement suspect ou incident de sécurité à l'équipe informatique ou au responsable de la sécurité.
Détection : les outils et techniques
Si, malgré les mesures de prévention, un malware parvient à infecter un système, il est crucial de le détecter le plus rapidement possible pour limiter les dégâts.
-
Antivirus et anti-malware : Les antivirus peuvent détecter les malwares connus grâce à leurs bases de signatures, et certains peuvent aussi identifier des comportements suspects.
-
EDR (Endpoint Detection and Response) : Les solutions EDR surveillent en continu l'activité des terminaux (ordinateurs, serveurs, etc.) pour détecter les menaces avancées et les comportements anormaux.
-
SIEM (Security Information and Event Management) : Les systèmes SIEM collectent et analysent les journaux d'événements de sécurité provenant de différentes sources (pare-feu, antivirus, serveurs, etc.) pour détecter les incidents de sécurité et les corrélations entre événements.
-
Sandboxing (bac à sable) : Les fichiers suspects peuvent être exécutés dans un environnement isolé (sandbox) pour observer leur comportement sans risque pour le système.
-
Honeypots (pots de miel) : Les honeypots sont des leurres (faux serveurs, faux fichiers, etc.) conçus pour attirer les attaquants et détecter leurs tentatives d'intrusion.
La sécurité informatique est une course permanente entre les attaquants et les défenseurs. Il n'existe pas de solution miracle, mais une combinaison de mesures techniques, de bonnes pratiques et d'outils de détection permet de réduire considérablement les risques.
Cyber-Crime as a Service (RaaS, etc.)
Le paysage de la cybercriminalité a considérablement évolué ces dernières années, avec l'émergence d'un modèle économique structuré autour du "Cyber-Crime as a Service" (CCaaS), parfois abrégé en "Ransomware as a Service" (RaaS) dans le cas spécifique des rançongiciels.
Qu'est-ce que le Cyber-Crime as a Service ?
Le CCaaS est un modèle économique illégal qui permet à des individus ou à des groupes, même sans compétences techniques avancées, de mener des cyberattaques en "louant" des services ou des outils auprès de cybercriminels plus expérimentés. C'est une sorte d'"uberisation" de la cybercriminalité.
-
Principe : Des développeurs de malwares, des hackers, ou des groupes criminels organisés proposent leurs services ou leurs outils sur le dark web ou sur des forums spécialisés. Les "clients" peuvent acheter ou louer :
- Des malwares (ransomwares, chevaux de Troie, botnets, etc.).
- Des kits d'exploitation (ensembles d'outils pour exploiter des failles de sécurité).
- Des services de phishing (création et envoi d'emails de phishing, hébergement de pages web malveillantes, etc.).
- Des services de DDoS (location de botnets pour mener des attaques par déni de service distribué).
- Des données volées (identifiants, mots de passe, numéros de cartes bancaires, etc.).
- Des services de blanchiment d'argent (pour convertir les gains illégaux en argent "propre").
-
Modèles économiques :
- Abonnement : Le client paie un abonnement mensuel ou annuel pour accéder aux services.
- Paiement à l'acte : Le client paie pour chaque attaque ou pour chaque service utilisé.
- Partage des profits : Le client et le fournisseur partagent les profits générés par l'attaque (par exemple, un pourcentage de la rançon payée par les victimes d'un ransomware).
- Affiliation : Le client est rémunéré sur les gains rapportés.
Pourquoi le CCaaS est-il un problème ?
- Démocratisation de la cybercriminalité : Le CCaaS abaisse la barrière d'entrée pour les cybercriminels. Plus besoin d'être un expert en informatique pour mener des attaques sophistiquées.
- Augmentation du nombre d'attaques : La facilité d'accès aux outils et aux services de cybercriminalité entraîne une augmentation du nombre d'attaques, touchant un plus large éventail de victimes (particuliers, petites entreprises, etc.).
- Difficulté d'attribution : Le modèle du CCaaS rend plus difficile l'identification et la poursuite des véritables auteurs des attaques, car les "clients" peuvent être situés n'importe où dans le monde.
- Innovation constante : Les fournisseurs de CCaaS sont en constante recherche de nouvelles techniques d'attaque et de nouveaux outils pour contourner les défenses, ce qui rend la lutte contre la cybercriminalité plus difficile.
Exemples de services CCaaS
- Ransomware as a Service (RaaS) : Des groupes comme REvil, DarkSide ou LockBit ont proposé des plateformes RaaS, permettant à des affiliés de mener des attaques par ransomware en échange d'un partage des profits.
- Botnet as a Service : Des services de location de botnets pour mener des attaques DDoS, envoyer des spams, ou voler des données.
- Phishing as a Service : Des kits de phishing complets, avec des modèles d'emails, des pages web malveillantes, et des outils de gestion des campagnes de phishing.
- Exploit Kits as a Service : Des ensembles d'outils pour exploiter des failles de sécurité connues dans les logiciels ou les systèmes d'exploitation.
Le Cyber-Crime as a Service est une menace majeure qui contribue à l'essor de la cybercriminalité et à la complexification de la lutte contre ce phénomène. Il est crucial de comprendre ce modèle économique pour mieux appréhender le paysage actuel des cybermenaces.
Techniques d'évasion des malwares
Les développeurs de malwares rivalisent d'ingéniosité pour échapper à la détection des antivirus, des pare-feu et des autres solutions de sécurité. Ils utilisent diverses techniques d'évasion pour rendre leurs créations plus discrètes et plus persistantes.
Voici un aperçu des principales techniques utilisées par les malwares pour contourner les défenses :
Obfuscation
L'obfuscation consiste à rendre le code du malware plus difficile à comprendre et à analyser. Cela peut se faire de différentes manières :
- Chiffrement : Le code du malware (ou une partie de celui-ci) est chiffré. Il est déchiffré uniquement au moment de l'exécution, ce qui rend son analyse statique (sans exécution) plus difficile.
- Encodage : Le code est transformé à l'aide d'un algorithme d'encodage (par exemple, Base64). Cela ne le rend pas illisible, mais cela complique son analyse.
- Modification du code : Le code est modifié de manière à ne pas affecter son fonctionnement, mais à changer son apparence (renommage de variables, ajout de code inutile, réorganisation des instructions, etc.).
- Exemple : Un malware peut utiliser un packer (outil de compression et d'obfuscation) pour compresser et chiffrer son code. Le packer ajoute une couche de protection qui rend l'analyse du malware plus difficile.
Polymorphisme et métamorphisme
Ces techniques permettent au malware de modifier son code à chaque infection, tout en conservant ses fonctionnalités.
- Polymorphisme : Le malware utilise un moteur de chiffrement pour chiffrer son code, mais la clé de chiffrement change à chaque infection. Cela rend la détection par signature (basée sur une séquence de code unique) plus difficile.
- Métamorphisme : Le malware modifie complètement son code à chaque infection, en utilisant des techniques comme la réorganisation des instructions, l'ajout de code inutile, ou la substitution d'instructions équivalentes. Cela rend la détection par signature quasiment impossible.
- Exemple : Le ver Sality est un exemple de malware polymorphe. Il utilise différentes techniques d'obfuscation et de chiffrement pour modifier son apparence à chaque infection.
Techniques anti-analyse
Les malwares peuvent intégrer des techniques pour détecter s'ils sont analysés dans un environnement virtuel (machine virtuelle, sandbox) ou par un analyste en sécurité.
- Détection de l'environnement virtuel : Le malware vérifie si des logiciels de virtualisation (VMware, VirtualBox, etc.) sont installés, ou s'il s'exécute dans un environnement avec des ressources limitées (typiques des machines virtuelles). S'il détecte un environnement virtuel, il peut arrêter son exécution ou se comporter différemment.
- Détection des outils d'analyse : Le malware peut rechercher la présence d'outils d'analyse (débogueurs, moniteurs de processus, etc.) et arrêter son exécution s'il les détecte.
- Temporisation : Le malware peut attendre un certain temps avant de commencer ses activités malveillantes, afin d'échapper à la détection par les sandboxes (qui n'exécutent les programmes que pendant une durée limitée).
- Exemple : Certains malwares utilisent des instructions spécifiques qui ne fonctionnent pas correctement (ou pas du tout) dans un environnement virtuel, ce qui leur permet de détecter s'ils sont analysés.
Injection de code
Cette technique consiste à injecter du code malveillant dans un processus légitime, afin de dissimuler l'activité du malware et d'échapper à la détection.
- Exemple :
Un malware peut injecter son code dans le processus
explorer.exe
(l'Explorateur Windows), ce qui lui permet d'exécuter des actions malveillantes tout en apparaissant comme un processus légitime.
Techniques anti-débogage
Les malwares peuvent utiliser des techniques pour empêcher ou compliquer leur analyse par un débogueur (un outil utilisé par les analystes en sécurité pour comprendre le fonctionnement d'un programme).
- Exemple :
Un malware peut utiliser des fonctions spécifiques (comme
IsDebuggerPresent
sous Windows) pour détecter si un débogueur est attaché à son processus. S'il détecte un débogueur, il peut arrêter son exécution ou se comporter différemment.
Utilisation de techniques "fileless" (sans fichier)
Certains malwares n'écrivent pas de fichier sur le disque dur, ou n'y écrivent qu'un minimum de code. Ils s'exécutent directement en mémoire, ce qui les rend plus difficiles à détecter.
- Exemple : Un malware peut s'exécuter en mémoire après avoir été téléchargé via une vulnérabilité dans un navigateur web, sans jamais être écrit sur le disque.
La lutte contre les malwares est une course à l'armement. Les développeurs de malwares inventent constamment de nouvelles techniques d'évasion, et les éditeurs de solutions de sécurité doivent s'adapter en permanence pour détecter et contrer ces techniques.
La backdoor de xz Utils (2024) : une attaque sophistiquée de la chaîne d'approvisionnement
En mars 2024, une backdoor (porte dérobée) extrêmement sophistiquée a été découverte dans xz Utils, une suite d'outils de compression de données très largement utilisée dans les distributions Linux. Cette affaire, encore en cours d'analyse, est un exemple frappant de menace ciblant la chaîne d'approvisionnement logicielle et souligne l'importance de la vigilance, même envers les logiciels open source réputés.
Qu'est-ce que xz Utils ?
xz Utils est une collection d'outils en ligne de commande pour la compression et la décompression de données, utilisant l'algorithme de compression LZMA. Il est inclus par défaut dans de nombreuses distributions Linux (Debian, Ubuntu, Fedora, Red Hat, etc.) et est utilisé dans de nombreux logiciels et systèmes embarqués.
Comment la backdoor a-t-elle été introduite ?
L'attaque a été menée sur une longue période (plusieurs années) par un individu (ou un groupe) utilisant le pseudonyme "Jia Tan". Cet individu a progressivement gagné la confiance de la communauté open source en contribuant au projet xz Utils, avant d'introduire subtilement du code malveillant.
- Ingénierie sociale : L'attaquant a utilisé des techniques d'ingénierie sociale pour faire pression sur le mainteneur principal du projet (Lassee Collin) et obtenir les droits de commit (modification du code source).
- Code obfusqué : Le code malveillant était fortement obfusqué (caché, rendu difficile à comprendre) et introduit en plusieurs étapes, dans des commits (modifications du code) apparemment anodins.
- Exploitation d'une faille : La backdoor exploitait une faille dans la manière dont le processus
sshd
(le démon OpenSSH, utilisé pour les connexions sécurisées à distance) traitait certaines bibliothèques du système. - Téléchargement de code malveillant : La backdoor, une fois activée, téléchargeait et exécutait du code malveillant à distance, permettant à l'attaquant de prendre le contrôle du système infecté.
Comment la backdoor a-t-elle été découverte ?
La backdoor a été découverte par hasard par Andres Freund, un développeur travaillant sur PostgreSQL, qui a remarqué des anomalies de performance lors de tests. Après une analyse approfondie, il a découvert le code malveillant.
Impact potentiel
Si la backdoor n'avait pas été découverte, elle aurait pu permettre à l'attaquant de prendre le contrôle à distance d'un nombre potentiellement énorme de systèmes Linux à travers le monde, avec des conséquences potentiellement désastreuses (vol de données, espionnage, sabotage, etc.).
Leçons à retenir
- La sécurité de la chaîne d'approvisionnement logicielle est cruciale : Même les logiciels open source, réputés pour leur transparence et leur sécurité, peuvent être vulnérables à des attaques sophistiquées.
- L'ingénierie sociale est une arme redoutable : Les attaquants peuvent utiliser des techniques de manipulation psychologique pour infiltrer des projets open source ou des entreprises.
- La vigilance est essentielle : Il est important d'examiner attentivement le code source, même celui provenant de contributeurs apparemment fiables, et de surveiller les anomalies de performance ou de comportement des systèmes.
- La collaboration est indispensable : La découverte rapide de la backdoor a été possible grâce à la vigilance d'un développeur et à la collaboration de la communauté open source.
- La revue de code est importante.
La backdoor de xz Utils est un rappel brutal que la sécurité informatique est un enjeu permanent et complexe, qui nécessite une vigilance constante et une collaboration étroite entre les développeurs, les utilisateurs et les experts en sécurité.