Pas moins de 207 sites Web ont été infectés par un code malveillant conçu pour lancer un mineur de crypto-monnaie en exploitant WebAssembly (Wasm) sur le navigateur. La société de sécurité Web Sucuri, qui a publié les détails de la campagne, a déclaré avoir lancé une enquête après que l’un de ses clients ait vu son ordinateur considérablement ralenti à chaque fois qu’il naviguait sur son propre portail WordPress. Cela a révélé un compromis d’un fichier de thème pour injecter du code JavaScript malveillant à partir d’un serveur distant – hxxps://wm.bmwebm[.]org/auto.js – qui est chargé chaque fois que la page du site Web est consultée. « Une fois décodé, le contenu d’auto.js révèle immédiatement la fonctionnalité d’un cryptomineur qui commence à miner lorsqu’un visiteur atterrit sur le site compromis », a déclaré Cesar Anjos, chercheur sur les logiciels malveillants Sucuri. De plus, le code auto.js désobscurci utilise WebAssembly pour exécuter du code binaire de bas niveau directement sur le navigateur. WebAssembly, qui est pris en charge par tous les principaux navigateurs, est un format d’instruction binaire qui offre des améliorations de performances par rapport à JavaScript, permettant aux applications écrites dans des langages tels que C, C++ et Rust d’être compilées dans un langage de type assembleur de bas niveau qui peut être directement exécuter sur le navigateur. « Lorsqu’il est utilisé dans un navigateur Web, Wasm s’exécute dans son propre environnement d’exécution en bac à sable », a déclaré Anjos. « Comme il est déjà compilé dans un format d’assemblage, le navigateur peut lire et exécuter ses opérations à une vitesse que JavaScript lui-même ne peut égaler. » Le domaine contrôlé par l’acteur, wm.bmwebm[.]org, aurait été enregistré en janvier 2021, ce qui implique que l’infrastructure est restée active pendant plus d’un an et demi sans attirer l’attention.

En plus de cela, le domaine offre également la possibilité de générer automatiquement des fichiers JavaScript qui se font passer pour des fichiers apparemment inoffensifs ou des services légitimes comme celui de Google Ads (par exemple, adservicegoogle.js, wordpresscore.js et facebook-sdk.js) pour dissimuler son comportement malveillant. « Cette fonctionnalité permet également au mauvais acteur d’injecter les scripts à plusieurs endroits sur le site Web compromis tout en conservant l’apparence que les injections « appartiennent » à l’environnement », a noté Anjos. Ce n’est pas la première fois que la capacité de WebAssembly à exécuter des applications hautes performances sur des pages Web soulève des alertes de sécurité potentielles. Mis à part le fait que le format binaire de Wasm rend la détection et l’analyse par les moteurs antivirus conventionnels plus difficiles, la technique pourrait ouvrir la porte à des attaques plus sophistiquées basées sur les navigateurs, telles que l’e-skimming, qui peuvent passer inaperçues pendant de longues périodes. Le manque de contrôles d’intégrité pour les modules Wasm complique davantage les choses, ce qui rend effectivement impossible de déterminer si une application a été falsifiée. Pour aider à illustrer les faiblesses de sécurité de WebAssembly, une étude réalisée en 2020 par un groupe d’universitaires de l’Université de Stuttgart et de l’Université Bundeswehr de Munich a mis au jour des problèmes de sécurité qui pourraient être utilisés pour écrire dans une mémoire arbitraire, écraser des données sensibles et détourner le flux de contrôle. Des recherches ultérieures publiées en novembre 2021 sur la base d’une traduction de 4 469 programmes C avec des vulnérabilités connues de débordement de mémoire tampon vers Wasm ont révélé que « la compilation d’un programme C existant vers WebAssembly sans précautions supplémentaires peut entraver sa sécurité ».

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *