Les malwares de minages de cryptomonnaies représentent, avec les ransomwares, l’une des menaces les plus courantes pour les systèmes d’entreprise. Comme les ransomwares, les cryptomineurs sont de plus en plus sophistiqués, incorporant des vecteurs d’attaque et des techniques autrefois associées aux menaces persistantes avancées (APT), comme l’exécution fileless ou sans fichier, la compilation en temps réel et l’injection de code dite « reflective ». Des chercheurs de l’entreprise de sécurité Deep Instinct ont découvert récemment que les systèmes d’une grande entreprise aéronautique asiatique avaient été infectés par un cryptomineur. L’attaque, qui a déployé un mineur de cryptomonnaie Monero, a utilisé le langage de script PowerShell, une injection PE « reflective », une compilation de code d’exécution et Tor pour l’anonymat.

Le malware est arrivé sous la forme de script PowerShell encodé qui, une fois exécuté, configure une tâche planifiée qui s’exécute lors de la configuration du système et lance une seconde commande PowerShell encodée. Cette seconde charge utile se servait d’un module appelé Invoke-ReflectivePEInjection de PowerSploit et PowerShell Empire, deux frameworks d’exploitation basés sur PowerShell, pour extraire le code stocké dans le registre et l’injecter dans son propre processus d’exécution. « Même si la compilation du runtime n’est pas nouvelle, elle est de plus en plus utilisée dans les attaques sans fichier, très populaires, et peut présenter certains avantages pour un attaquant, par exemple l’évitement de certains mécanismes de protection de PowerShell », ont déclaré les chercheurs de Deep Instinct dans un nouveau rapport.

Une technique issue des APT

La technique qui consiste à stocker un code malveillant à l’intérieur du registre, au lieu de le stocker sous forme de fichier sur disque, puis à l’injecter directement dans la mémoire de processus légitimes, a d’abord été utilisée dans les attaques APT pour éviter la détection par les antivirus. Ces tactiques d’exécution sans fichier sont désormais courantes dans diverses attaques de malwares, ransomwares inclus. Dans le cas de l’entreprise citée en exemple, le code stocké dans le registre système était constitué de deux fichiers .DLL – l’un pour les systèmes 32 bits et l’autre pour les systèmes 64 bits – qui implémentaient un programme de minage ce cryptomonnaie Monero.

Une fois chargé, le cryptomineur initiait des communications avec une série de nœuds Tor, lesquels servaient probablement de proxies anonymes pour cacher l’emplacement réel du pool de minage des attaquants. « Au cours de ces deux dernières années, l’usage de malwares de cryptominage n’a cessé d’augmenter. Leur niveau de sophistication est toujours plus élevé. Ils font appel à des techniques avancées sans fichier pour attaquer des cibles dans les environnements d’entreprise », ont encore déclaré les chercheurs de Deep Instinct. « Même si l’analyse et la recherche sur ce malware sont toujours en cours, nous sommes convaincus, d’après les premiers résultats dont nous faisons état plus haut, qu’il s’agit d’une nouvelle variante sophistiquée du cryptomineur, assez différente des autres malwares de ce type précédemment documentés ».

Se défendre contre les attaques PowerShell

PowerShell est un outil puissant et utile d’administration système, mais ces dernières années, il est devenu un vecteur d’attaque très répandu. Il est donc impératif pour les entreprises de limiter son usage sur les systèmes où il n’est pas nécessaire ou, à tout le moins, d’y ajouter des capacités de journalisation et de détection. Microsoft recommande d’utiliser la version 5 de PowerShell, qui possède les fonctions de journalisation les plus avancées de toutes les versions de PowerShell. Malheureusement, même après l’installation de la version 5, la version 2 de PowerShell reste sur le système, ce qui permet les attaques par rétrogradation. Les administrateurs système doivent donc s’assurer de supprimer cette ancienne version de leurs systèmes. PowerShell peut également être configuré dans un mode de langage dit contraint, si les utilisateurs du système n’ont pas besoin de sa pleine puissance. Pour l’administration des serveurs distants, un mode shell limité, appelé Just Enough Administration (JEA), peut être utilisé.

D’autres mesures d’atténuation efficaces consistent à configurer PowerShell pour qu’il n’autorise que l’exécution de scripts signés numériquement et l’utilisation de la fonction AppLocker de Windows 10 afin de valider les scripts avant leur exécution. Enfin, si PowerShell n’est pas nécessaire sur un système, il peut être entièrement supprimé. Mais, si c’est la meilleure protection possible, elle est rarement pratique, car l’outil est souvent nécessaire pour automatiser les tâches d’administration du système.