Pavel Shalin, analyste en cybersécurité chez Dr.Web, explique comment de petits fichiers texte à l’allure inoffensive sont en vérité les plus redoutables des malwares.
Les pirates n’attaquent plus les PC avec des exécutables Windows, mais avec des scripts. De conception bien plus simple que les exécutables – un simple éditeur de texte permet à un néophyte de lire et même de comprendre leur contenu – les scripts n’en sont pas moins dangereux. Au contraire : ils sont modifiables à volonté pour ne pas que les systèmes de protection les repèrent et ont la capacité de se déclencher directement depuis le navigateur.
Un script est un document texte qui liste de manière compréhensible une chronologie de fonctions à exécuter. Alors qu’un exécutable Windows est un fichier binaire rempli de codes uniquement interprétables par l’ordinateur. L’ouverture d’un exécutable dans un éditeur de texte n’affichera d’ailleurs qu’un salmigondis de caractères dont certains ne sont même pas affichables.
Il n’est d’ailleurs pas possible de modifier directement un fichier binaire sans condamner le déroulement normal de son exécution. Un simple caractère ajouté, changerait non seulement l’ordre mais aussi la nature de toutes les instructions suivantes. Pour modifier son empreinte sans altérer son fonctionnement, il faudrait revenir au code source du programme, lorsqu’il est rédigé dans un langage de programmation intelligible et avant qu’il ne soit compilé, c’est-à-dire transformé en code ingérable par le processeur. Dans le monde de la cybersécurité, cette opération n’est pas nécessairement possible, car le pirate est rarement la personne qui a écrit le code de son malware ; il a juste récupéré l’exécutable sur une plateforme d’échange spécialisée, souvent commerciale.
Pas de code malveillant, juste un scénario d’attaque avec les composants de Windows
Un script n’est pas compilé une bonne fois pour toutes mais interprété à la volée. Son exécution est par conséquent bien plus lente, mais cela n’a pas beaucoup d’importance lorsqu’il s’agit juste d’infecter une machine. En revanche, le script étant ouvrable par tout éditeur de texte, il suffit à un néophyte d’ajouter par ci un commentaire ou de rallonger par là le nom d’une variable, pour que le programme ne ressemble plus stricto sensu au malware que les systèmes de protection ont appris à détecter.
Un script malveillant ne contient pas forcément de code malveillant. Il est par exemple possible d’écrire un ransomware en n’utilisant que les fonctions de Windows : tous les logiciels nécessaires sont présents dans le système d’un PC, il suffit juste de les lancer dans le bon ordre. En fait, un script n’est qu’une sorte de scénario des actions à mener.
Éventuellement, le script préférera télécharger depuis le site du pirate des exécutables dont il a besoin. Pour rester sur l’exemple du ransomware, il s’agira de PGP, un programme légitime dont les utilisateurs se servent pour protéger d’eux-mêmes le contenu de leurs documents.
Un même script est exécutable sur un grand nombre d’appareils
Être relativement autonome du système est d’ailleurs le second avantage qui séduit les cyber-assaillants, car ils peuvent infecter avec le même script des configurations très variées. En décembre 2016, les analystes de Doctor Web ont ainsi découvert 31 scripts écrits en langage Lua capables de s’exécuter sur de nombreuses implémentations de Linux, quelle que soit la machine en dessous. Ces scripts, regroupés sous le nom familial de Linux.LuaBot, infectaient ainsi aussi bien des PC et des serveurs x86, que des équipements réseau (routeurs, passerelles, NAS...) basés sur des processeurs ARM, Power ou MIPS.
Dernièrement, Doctor Web a particulièrement relevé la popularité de malwares écrits en Javascripts, c’est-à-dire des scripts qui s’exécutent cette fois-ci non pas sur un système, mais depuis n’importe quel navigateur web. Parmi ceux-ci, citons JS.BtcMine, qui mine furtivement de la cryptomonnaie pendant que l’internaute visite un site web.
Il est intéressant de noter que les scripts ne font jamais office de virus : ils ne servent pas à contaminer d’autres fichiers. En revanche, on trouve de nombreux vers, qui se propagent de sites web en navigateurs et de navigateurs en sites web (JS.Faceworm.1, par exemple, qui se répand via Facebook), ainsi que nombreux chevaux de Troie (Trojan.Encoder.4860, alias JS.Crypt, un ransomware).
Bien que l’on ne puisse pas compter sur la reconnaissance de leur empreinte pour les détecter efficacement, il est possible de se protéger contre les scripts malveillants grâce à l’intelligence artificielle. En l’occurrence, il s’agit d’utiliser un moteur de Machine Learning spécialement entraîné pour reconnaître leur comportement. Cette fonctionnalité est par exemple présente dans les dernières versions de logiciels comme Dr.Web Security Space et Dr.Web Enterprise Security Suite.