La première apparition d’une attaque par fileless malware remonterait à 2001. Et malgré des pics d’activité en 2017, 2019 et 2021, ces attaques sans fichier restent le plus souvent mal comprises et interrogent sur leur fonctionnement. Mais quelles sont les caractéristiques techniques de ces attaques ? Les outils de cybersécurité sont-ils vraiment en capacité de les détecter ?
En avril 2020, l’ENISA publie un rapport qui explique que les attaques fileless malware ont 10 fois plus de chances de réussir qu’une attaque conventionnelle. Décryptage des cyberattaques par fileless malware.
Les premières apparitions d’attaques par fileless malware
Le terme apparaît pour la première fois en 2001 avec le ver Code Red. Programme exploitant une vulnérabilité de buffer overrun (dépassement de la pile mémoire des serveurs web Microsoft IIS en l’occurrence), ce ver sera le premier programme malveillant catégorisé comme “fileless malware”. Pas moins de 359 000 serveurs sont alors victimes d’un défacement de la page d’accueil affichant un message “Welcome to http://www.worm.com ! Hacked by Chinese!” par un mystérieux virus ne laissant aucun fichier et aucune trace permanente sur le disque dur. Et pour cause, après investigation, le ver ne se serait exécuté qu’au travers de la mémoire de la machine infectée ; une première.
Durant les deux décennies suivantes, ce mécanisme aura été largement utilisé sur les environnements Microsoft. Dès 2003, le ver SQL Slammer utilise ce même mode opératoire pour compromettre les instances Microsoft SQL Serveurs, dans le but de lancer un déni de service. En 2013, le trojan bancaire Lurk exploite une vulnérabilité du langage Java et télécharge une DLL malveillante en mémoire. En 2014, le mode opératoire de l’attaque fileless malware évolue avec l’apparition du trojan Poweliks ; ce dernier s’installant dans une clé de registre Windows, dont la valeur contient le script malveillant. Dès lors, le malware obtient alors un état de persistance au travers d’un programme légitime utilisé par le système d’exploitation Windows. En 2015, le ver Duqu 2.0 est utilisé comme une boîte à outils au travers d’actions de cyber espionnage grâce à des fonctionnalités comme le déplacement latéral, l’exfiltration de données ou la reconnaissance de l’hôte et de son environnement proche. En 2016, avec le malware PowerSniff, le mode opératoire évolue encore, en intégrant le caractère fileless dans une partie de l’attaque. L'accès initial se fait ici via un dropper classique, à savoir un fichier Word, qui ne rentre pas (du tout) dans le cadre d'une attaque fileless. Mais celui-ci contient une macro qui lance PowerShell en mode caché pour télécharger un fichier distant et ensuite l’exécuter directement dans la mémoire de PowerShell. C'est donc cette deuxième partie de l'attaque qui est considérée comme fileless, sous forme de script et shellcode. Mais c’est surtout en 2017 que l’attaque par fileless malware fera davantage parler d’elle, avec l’exfiltration de données de 150 millions de clients de la société Equifax, au travers d’une vulnérabilité du framework d’application web, Apache Struts.
N’utilisant pas de fichier écrit sur le disque dur, l’attaque fileless malware ne peut être détectée par les antivirus ayant construit leurs protections sur des mécanismes de détection par empreinte fichier. La force de cette attaque réside dans le fait qu’elle cible des éléments qui n’étaient pas pris en compte par les antivirus.
Sébastien Viou, Directeur Cybersécurité Produit et Cyber-Évangeliste Stormshield
Pour Sébastien Viou, Directeur Cybersécurité Produit et Cyber-Évangeliste chez Stormshield, ces innovations prouvent l’avance technologique qu’avaient les cyber-criminels sur les éditeurs d’antivirus de l'époque : « N’utilisant pas de fichier écrit sur le disque dur, l’attaque fileless malware ne peut être détectée par les antivirus ayant construit leurs protections sur des mécanismes de détection par empreinte fichier. La force de cette attaque réside dans le fait qu’elle cible des éléments qui n’étaient pas pris en compte par les antivirus. Les cyber-criminels passaient par un endroit où l’antivirus ne regardait tout simplement pas, une porte restait alors ouverte sur les machines des victimes. »
Fileless malware : une définition et des techniques qui évoluent
Memory-only malware, non-malware attack, zero-footprint attack … plusieurs noms lui sont donné, mais qu’est-ce qu’une attaque par fileless malware ? Une attaque par fileless malware ou attaque par malware sans fichier est donc un mécanisme ayant la particularité d’exécuter un programme malveillant sans laisser aucune trace sur le disque, comme l’explique Cyril Cléaud, analyste malware chez Stormshield : « Une attaque fileless malware est une attaque malveillante dont le code distant est récupéré et exécuté sans passer par un fichier intermédiaire local. Par exemple : sous la forme de chaînes de caractères récupérées depuis un serveur Web et ensuite transmis en paramètre à un interpréteur de scripts tel PowerShell. Le code malveillant sera ensuite exécuté directement dans la mémoire de ce dernier. C’est une attaque qui ne laisse ainsi aucune trace sur le disque. » Et les techniques utilisées dans une attaque par fileless malware pour exécuter du code malveillant en mémoire peuvent être diverses : détournement d’usage de programmes natifs nécessaires au bon fonctionnement du système d’exploitation, injection de code malveillant dans des processus existants, stockage du malware dans des clés de registre Windows … Il existe même des kits d’exploitation prêts à l’emploi, comme les outils PowerShell Empire, PowerSploit et Cobalt Strike. À l’aide de ces outils, les attaquants peuvent prendre le contrôle à distance de la machine victime et tenter par la suite d’accéder à un état de persistance sur la machine en cas de redémarrage. Mais le plus souvent, ces attaques par fileless malware se basent sur une vulnérabilité connue, dans le but d’obtenir un accès privilégié au système d’exploitation. Et une fois sur place, la mise en œuvre technique est relativement simple comme le souligne Cyril Cléaud : « Les informations sur ce type d’attaque sont facilement accessibles sur Internet. Et le plus souvent, les lignes de commandes sont très courtes. Pour un attaquant qui sait comment exploiter la vulnérabilité, la première étape – préparatoire – sera d’exposer un payload malveillant sur un serveur Web à sa main et accessible depuis une URL de son choix. La seconde étape se déroulera lors de l’exploitation de la vulnérabilité : il suffira de demander à un interpréteur de scripts de télécharger ce payload puis de l’exécuter. »
Comment s’articule une attaque fileless malware ? Le scénario communément observé se compose de trois étapes. Dans un premier temps, les cyber-criminels doivent acquérir un accès initial, le plus souvent au travers de campagnes de phishing et de spear phishing. Si cette première phase de l’attaque est uniquement exécutée en mémoire, la seconde étape consiste à rendre persistant l’accès en cas de redémarrage. À cette étape, les clés de registre sont un atout pour les cyber-criminels. Cyril Cléaud précise ainsi que « certaines clés de registre sont lues pour exécuter des programmes à l’ouverture de la session. En écrivant dans ces clés un code de téléchargement et d’exécution de payload en paramètre de PowerShell ou, le cyber-criminel dispose d’une entrée persistante pour télécharger une autre charge virale sur la machine. Le plus pratique pour l’attaquant est que le malware n’est pas stocké sur la machine de la victime : donc, d’une part, il n’y a pas de fichier et, d’autre part, l’attaquant peut faire des mises à jour de son malware en temps réel. En revanche, même sans fichier, cela laisse une trace : l’URL du payload. Tout le jeu devient alors de brouiller cette URL pour qu’elle ne soit pas détectée comme un signal de compromission. ». La troisième et dernière étape tient alors aux objectifs initiaux de l’attaque : vol d’identifiants, exfiltration de données ou encore création d’une porte dérobée.
Une autre forte tendance observée est le détournement ou le remplacement d’un programme légitime. Terme apparu pendant la conférence DerbyCon 3 de 2013, Living Off the Land (LotL, ou LOLBins – pour Living Off The Land Binaries) est une pratique permettant d’usurper un programme utilitaire employé sur les systèmes d’exploitation et donc reconnu légitime par ces derniers. Les LOLBins fréquemment utilisés sur les systèmes d’exploitation Windows sont par exemple les utilitaires certutil.exe, mavinject.exe, cmdl.exe, msixec ou encore WMI (Windows Management Interface) ainsi que les interpréteurs PowerShell et bash. Ces différents programmes légitimes permettent de décupler l’efficience de l’attaque du fait que certains intègrent nativement des fonctionnalités comme le téléchargement de fichier ou la connexion vers une machine à distance. L’utilisation d’un LOLBins dans une cyberattaque peut donc poser problème car il est très difficile de détecter si son utilisation est légitime ou malveillante. Dans certains cas, ces utilitaires sont même présents dans les listes blanches des solutions de sécurité… Il est donc fréquent d’observer l’utilisation de LOLBAS (LOL Binaries And Scripts), scripts tiers exécutés à l’aide des LOLBins et de LOLLibs, librairies développées pour l'occasion pouvant apporter des fonctionnalités supplémentaires à l'exécutable détourné.
En 2018, la plateforme de Ransomware-as-a-Service Grand Crab intégrait l’attaque fileless malware dans son mode opératoire et infectait alors plus de 50 000 machines à travers le monde. Face à de telles innovations, quelles actions mettre en œuvre pour détecter une menace indétectable ?
Fileless malware : comment se protéger contre un logiciel malveillant indétectable ?
Face à un logiciel malveillant sans fichier, il convient d’innover dans les techniques de protection pour compléter les outils de détection traditionnels. Pour remédier à cette situation, de nouvelles méthodes de détection d’attaques ont vu le jour. La plus commune se base sur le mécanisme de signature des exécutables de Windows, comme le résume Sébastien Viou : « Par défaut, Windows signe ses exécutables. Ce qui complique la tâche de l’attaquant qui doit soit remplacer le fichier dans la mémoire après que la signature ait été vérifiée, soit usurper la destination du fichier en faisant croire au système d’exploitation que le fichier qui a été remplacé est bien le fichier original, soit modifier l’application à sa source. Cette stratégie est un moyen assez simple de se protéger des attaques les moins avancées. »
Une seconde stratégie réside dans le perfectionnement de l’utilisation de listes noires. Des blacklists qui doivent aller plus loin dans le détail de ce qu’elles bloquent et qui contiennent désormais des patterns utilisés, comme des chaînes de caractères ou des commandes qui ont été détectées comme faisant partie d’un processus malveillant. Il est alors question d’indicateurs d’attaque (Indicators of Attack, IOA). Un projet open-source intitulé LOLBAS (Living Off The Land Binaries and Scripts) a par ailleurs vu le jour en 2018 sur la plateforme Github et comptabilise aujourd’hui plus de 4 500 utilisations détournées de LOLBins. À destination des équipes purple et blue team des sociétés de services en cybersécurité, ce projet est aujourd’hui maintenu par plus de 60 ingénieurs bénévoles et catégorise plus de 150 binaires pouvant être sujets à un détournement. Pour chaque utilitaire, des indicateurs sont mis à disposition.
Une troisième stratégie est celle de la surveillance comportementale. Utilisée par les solutions de protection des terminaux, elle permet de surveiller de possibles actions comme la connexion à un serveur de commande et contrôle, la connexion à une IP avec une mauvaise réputation ou la corrélation d’actions qui se suivent comme l’utilisation d’un moteur de script à partir d’une ligne de commande suspecte puis la lecture et l’exécution de fichiers. La détection d’incohérences dans l’utilisation des utilitaires système est également un signal fort comme l’analyse Cyril Cléaud : « Au-delà de la signature de l’exécutable, il existe des mécanismes de surveillance comportementale. Il est possible de détecter si un programme subit un dépassement de l’utilisation de sa mémoire tampon, buffer overrun, une injection de code ou plus simplement si l’utilisation d’un utilitaire d'administration est faite par un compte utilisateur n’en ayant pas les droits. »
Année après année, les cyber-criminels démontrent donc une capacité de mise en œuvre de stratégies d’obfuscation permettant d’opérer sous les radars des outils de sécurité. Et l’émergence d’acteurs spécialisés dans la création d’accès initiaux, comme les initial access brokers, laisse malheureusement à penser que les attaques par fileless malware devraient continuer se répandre dans le futur. Plus que jamais, les entreprises doivent adopter des méthodes de détection d'indicateurs d’attaques, tout en s’efforçant de sensibiliser à l’hygiène numérique l’ensemble des collaborateurs.