Menaces sans fichier

Que sont exactement les menaces sans fichier ? Le terme « sans fichier » suggère qu’une menace ne se trouve pas dans un fichier, comme une porte dérobée qui réside uniquement dans la mémoire d’une machine. Toutefois, il n’existe pas de définition unique pour les programmes malveillants sans fichier. Le terme est largement utilisé, et parfois pour décrire les familles de logiciels malveillants qui s’appuient sur des fichiers pour fonctionner.

Les attaques impliquent plusieurs étapes pour des fonctionnalités telles que l’exécution, la persistance ou le vol d’informations. Certaines parties de la chaîne d’attaque peuvent être sans fichier, tandis que d’autres peuvent impliquer le système de fichiers sous une forme ou une autre.

Pour plus de clarté, les menaces sans fichier sont regroupées en différentes catégories.

Diagramme complet des programmes malveillants sans fichier.
Figure 1. Diagramme complet des programmes malveillants sans fichier

Les menaces sans fichier peuvent être classées par leur point d’entrée, ce qui indique comment les logiciels malveillants sans fichier peuvent arriver sur une machine. Ils peuvent arriver via un exploit, via du matériel compromis ou via l’exécution régulière d’applications et de scripts.

Ensuite, répertoriez la forme du point d’entrée. Par exemple, les exploits peuvent être basés sur des fichiers ou des données réseau, les périphériques PCI sont un type de vecteur matériel et les scripts et les exécutables sont des sous-catégories du vecteur d’exécution.

Enfin, classifiez l’hôte de l’infection. Par exemple, une application Flash peut contenir diverses menaces telles qu’une attaque, un exécutable simple et un microprogramme malveillant provenant d’un appareil matériel.

La classification vous permet de diviser et de classer les différents types de menaces sans fichier. Certains sont plus dangereux mais aussi plus difficiles à mettre en œuvre, tandis que d’autres sont plus couramment utilisés malgré (ou précisément à cause de) ne sont pas très avancés.

À partir de cette catégorisation, vous pouvez glaner trois types main de menaces sans fichier en fonction de la quantité d’empreintes digitales qu’elles peuvent laisser sur les ordinateurs infectés.

Type I : aucune activité de fichier effectuée

Un programme malveillant entièrement sans fichier peut être considéré comme un programme qui ne nécessite jamais l’écriture d’un fichier sur le disque. Comment un tel programme malveillant infecterait-il une machine en premier lieu ? Par exemple, une machine cible reçoit des paquets réseau malveillants qui exploitent la vulnérabilité EternalBlue. La vulnérabilité permet l’installation de la porte dérobée DoublePulsar, qui finit par résider uniquement dans la mémoire du noyau. Dans ce cas, il n’y a pas de fichier ou de données écrites sur un fichier.

Un appareil compromis peut également avoir du code malveillant qui se cache dans le microprogramme de l’appareil (par exemple, un BIOS), un périphérique USB (comme l’attaque BadUSB) ou dans le microprogramme d’un carte réseau. Tous ces exemples ne nécessitent pas l’exécution d’un fichier sur le disque et peuvent théoriquement vivre uniquement en mémoire. Le code malveillant survivrait aux redémarrages, aux reformats de disque et aux réinstallations du système d’exploitation.

Les infections de ce type peuvent être particulièrement difficiles à détecter, car la plupart des produits antivirus n’ont pas la capacité d’inspecter le microprogramme. Dans les cas où un produit a la possibilité d’inspecter et de détecter les microprogrammes malveillants, il existe encore des défis importants liés à la correction des menaces à ce niveau. Ce type de programme malveillant sans fichier nécessite des niveaux élevés de sophistication et dépend souvent d’une configuration matérielle ou logicielle particulière. Ce n’est pas un vecteur d’attaque qui peut être exploité facilement et de manière fiable. Bien que dangereuses, les menaces de ce type sont rares et peu pratiques pour la plupart des attaques.

Type II : Activité de fichier indirecte

Il existe d’autres façons pour les logiciels malveillants d’atteindre une présence sans fichier sur une machine sans nécessiter d’efforts d’ingénierie importants. Les logiciels malveillants sans fichier de ce type n’écrivent pas directement les fichiers sur le système de fichiers, mais ils peuvent finir par utiliser des fichiers indirectement. Par exemple, avec la porte dérobée Poshspy , les attaquants ont installé une commande PowerShell malveillante dans le référentiel WMI et configuré un filtre WMI pour exécuter la commande régulièrement.

Il est possible d’effectuer une telle installation via la ligne de commande sans nécessiter de porte dérobée déjà dans le fichier. Le programme malveillant peut être installé et s’exécuter en théorie sans jamais toucher au système de fichiers. Toutefois, le référentiel WMI est stocké sur un fichier physique dans une zone de stockage centrale gérée par le gestionnaire d’objets CIM et contient généralement des données légitimes. Même si la chaîne d’infection utilise techniquement un fichier physique, elle est considérée comme une attaque sans fichier, car le référentiel WMI est un conteneur de données polyvalent qui ne peut pas être détecté et supprimé.

Type III : fichiers requis pour fonctionner

Certains logiciels malveillants peuvent avoir une sorte de persistance sans fichier, mais non sans utiliser des fichiers pour fonctionner. Un exemple de ce scénario est Kovter, qui crée un gestionnaire de verbes ouverts d’interpréteur de commandes dans le Registre pour une extension de fichier aléatoire. L’ouverture d’un fichier avec une telle extension entraîne l’exécution d’un script via l’outil légitime mshta.exe.

Image de la clé de Registre de Kovter.
Figure 2. Clé de Registre de Kovter

Lorsque le verbe ouvert est appelé, la commande associée à partir du Registre est lancée, ce qui entraîne l’exécution d’un petit script. Ce script lit les données d’une autre clé de Registre et les exécute, ce qui entraîne le chargement de la charge utile finale. Toutefois, pour déclencher le verbe ouvert en premier lieu, Kovter doit supprimer un fichier avec la même extension ciblée par le verbe (dans l’exemple ci-dessus, l’extension est .bbf5590fd). Il doit également définir une clé d’exécution automatique configurée pour ouvrir ce fichier au démarrage de la machine.

Kovter est considéré comme une menace sans fichier, car le système de fichiers n’est d’aucune utilité pratique. Les fichiers avec des extensions aléatoires contiennent des données indésirables qui ne sont pas utilisables pour vérifier la présence de la menace. Les fichiers qui stockent le registre sont des conteneurs qui ne peuvent pas être détectés et supprimés si du contenu malveillant est présent.

Catégorisation des menaces sans fichier par hôte d’infection

Après avoir décrit les grandes catégories, nous pouvons maintenant explorer les détails et fournir une répartition des hôtes d’infection. Cette classification complète couvre le panorama de ce que l’on appelle généralement les programmes malveillants sans fichier. Il dirige nos efforts de recherche et de développement de nouvelles fonctionnalités de protection qui neutralisent les classes d’attaques et garantissent que les logiciels malveillants ne prendnt pas le dessus dans la course aux armements.

Exploits

Basé sur un fichier (type III : exécutable, Flash, Java, documents) : un fichier initial peut exploiter le système d’exploitation, le navigateur, le moteur Java, le moteur Flash, etc. pour exécuter un shellcode et fournir une charge utile en mémoire. Bien que la charge utile soit sans fichier, le vecteur d’entrée initial est un fichier.

Basée sur le réseau (type I) : une communication réseau qui tire parti d’une vulnérabilité sur l’ordinateur cible peut effectuer l’exécution du code dans le contexte d’une application ou du noyau. WannaCry, par exemple, exploite une vulnérabilité précédemment corrigée dans le protocole SMB pour fournir une porte dérobée dans la mémoire du noyau.

Matériel

Basé sur l’appareil (type I : carte réseau, disque dur) : les appareils tels que les disques durs et les cartes réseau nécessitent des circuits microprogrammés et des logiciels dédiés pour fonctionner. Les logiciels résidant et s’exécutant dans le circuit microprogrammé d’un appareil sont appelés microprogramme. Bien qu’il s’agisse d’une tâche complexe, le microprogramme peut être infecté par un programme malveillant.

Basé sur le processeur (type I) : les processeurs modernes sont complexes et peuvent inclure des sous-systèmes exécutant un microprogramme à des fins de gestion. Ce microprogramme peut être vulnérable au détournement et permettre l’exécution de code malveillant qui fonctionnerait à partir de l’UC. En décembre 2017, deux chercheurs ont signalé une vulnérabilité qui peut permettre aux attaquants d’exécuter du code à l’intérieur du moteur de gestion (ME) présent dans n’importe quel processeur moderne d’Intel. Pendant ce temps, le groupe d’attaquants PLATINUM a été observé pour avoir la capacité d’utiliser la technologie de gestion active (AMT) d’Intel pour effectuer des communications réseau invisibles, en contournant le système d’exploitation installé. ME et AMT sont essentiellement des micro-ordinateurs autonomes qui vivent à l’intérieur du processeur et qui fonctionnent à un niveau très bas. Étant donné que l’objectif de ces technologies est de fournir une gestion à distance, elles ont un accès direct au matériel, sont indépendantes du système d’exploitation et peuvent s’exécuter même si l’ordinateur est éteint.

En plus d’être vulnérables au niveau du microprogramme, les processeurs peuvent être fabriqués avec des portes dérobées insérées directement dans le circuit matériel. Cette attaque a fait l’objet de recherches et s’est avérée possible dans le passé. Il a été signalé que certains modèles de processeurs x86 contiennent un cœur de processeur secondaire incorporé de type RISC qui peut fournir une porte dérobée grâce à laquelle les applications régulières peuvent obtenir une exécution privilégiée.

USB (type I) : les périphériques USB de toutes sortes peuvent être reprogrammés avec un microprogramme malveillant capable d’interagir avec le système d’exploitation de manière néfaste. Par exemple, la technique BadUSB permet à une clé USB reprogrammée d’agir comme un clavier qui envoie des commandes aux machines via des frappes de touches, ou comme un carte réseau qui peut rediriger le trafic à volonté.

Bios ( type I) : un BIOS est un microprogramme s’exécutant à l’intérieur d’un circuit microprogrammé. Il s’exécute lorsqu’une machine est sous tension, initialise le matériel, puis transfère le contrôle au secteur de démarrage. Le BIOS est un composant important qui fonctionne à un niveau bas et s’exécute avant le secteur de démarrage. Il est possible de reprogrammer le microprogramme du BIOS avec du code malveillant, comme cela s’est produit dans le passé avec le rootkit Mebromi.

Basée sur un hyperviseur (type I) : les processeurs modernes prennent en charge l’hyperviseur matériel, ce qui permet au système d’exploitation de créer des machines virtuelles robustes. Une machine virtuelle s’exécute dans un environnement limité et simulé et ignore en théorie l’émulation. Un programme malveillant prenant le contrôle d’une machine peut implémenter un petit hyperviseur pour se cacher en dehors du domaine du système d’exploitation en cours d’exécution. Les programmes malveillants de ce type ont été théorisés dans le passé, et finalement de vrais rootkits d’hyperviseur ont été observés, bien que peu sont connus à ce jour.

Exécution et injection

Basé sur des fichiers (type III : exécutables, DLL, fichiers LNK, tâches planifiées) : il s’agit du vecteur d’exécution standard. Un exécutable simple peut être lancé en tant que programme malveillant de première étape pour exécuter une charge utile supplémentaire en mémoire, ou injecté dans d’autres processus en cours d’exécution légitimes.

Basé sur des macros (type III : documents Office) : le langage VBA est un outil flexible et puissant conçu pour automatiser les tâches d’édition et ajouter des fonctionnalités dynamiques aux documents. Par conséquent, il peut être utilisé par des attaquants pour effectuer des opérations malveillantes telles que le décodage, l’exécution ou l’injection d’une charge utile exécutable, ou même l’implémentation d’un ransomware entier, comme dans le cas de qkG. Les macros sont exécutées dans le contexte d’un processus Office (par exemple, Winword.exe) et implémentées dans un langage de script. Il n’existe aucun exécutable binaire qu’un antivirus peut inspecter. Bien que les applications Office nécessitent le consentement explicite de l’utilisateur pour exécuter des macros à partir d’un document, les attaquants utilisent des techniques d’ingénierie sociale pour inciter les utilisateurs à autoriser l’exécution des macros.

Basé sur un script (type II : fichier, service, registre, référentiel WMI, interpréteur de commandes) : les langages de script JavaScript, VBScript et PowerShell sont disponibles par défaut sur les plateformes Windows. Les scripts présentent les mêmes avantages que les macros : ils sont des fichiers texte (et non des exécutables binaires) et s’exécutent dans le contexte de l’interpréteur (comme wscript.exe, powershell.exe), qui est un composant propre et légitime. Les scripts sont polyvalents et peuvent être exécutés à partir d’un fichier (en double-cliquant dessus) ou exécutés directement sur la ligne de commande d’un interpréteur. L’exécution sur la ligne de commande permet aux programmes malveillants d’encoder des scripts malveillants en tant que services de démarrage automatique à l’intérieur de clés de Registre d’exécution automatique en tant qu’abonnements aux événements WMI à partir du référentiel WMI. En outre, un attaquant qui a obtenu l’accès à une machine infectée peut entrer le script à l’invite de commandes.

Basé sur disque (Type II : Enregistrement de démarrage) : l’enregistrement de démarrage est le premier secteur d’un disque ou d’un volume et contient le code exécutable requis pour démarrer le processus de démarrage du système d’exploitation. Les menaces telles que Petya sont capables d’infecter l’enregistrement de démarrage en le remplaçant par du code malveillant. Lorsque la machine est démarrée, le programme malveillant prend immédiatement le contrôle. L’enregistrement de démarrage réside en dehors du système de fichiers, mais il est accessible par le système d’exploitation. Les produits antivirus modernes ont la possibilité de les analyser et de les restaurer.

Vaincre les programmes malveillants sans fichier

Chez Microsoft, nous surveillons activement le paysage de la sécurité pour identifier les nouvelles tendances des menaces et développer des solutions pour atténuer les classes de menaces. Nous instrumentons des protections durables efficaces contre un large éventail de menaces. Grâce à l’interface AMSI (AntiMalware Scan Interface), à la surveillance du comportement, à l’analyse de la mémoire et à la protection du secteur de démarrage, Microsoft Defender pour point de terminaison pouvez inspecter les menaces sans fichier, même avec une obfuscation intensive. Les technologies de Machine Learning dans le cloud nous permettent de mettre à l’échelle ces protections contre les menaces nouvelles et émergentes.

Pour en savoir plus, lisez : Hors de vue mais pas invisible : Vaincre les logiciels malveillants sans fichier avec la surveillance du comportement, AMSI et AV nouvelle génération

Ressources et informations supplémentaires

Découvrez comment déployer des fonctionnalités de protection contre les menaces sur Microsoft 365 E5.