Simple Science

La science de pointe expliquée simplement

# Informatique# Cryptographie et sécurité

WebAssembly et la menace du cryptojacking

WebAssembly amène de nouveaux risques comme le cryptojacking que les utilisateurs doivent comprendre.

― 8 min lire


Menaces de cryptojackingMenaces de cryptojackingdans WebAssemblydu cryptojacking.Découvrir les risques de WebAssembly et
Table des matières

WebAssembly, souvent appelé wasm, est une nouvelle façon d'exécuter du code sur le web. Ça permet aux développeurs d'écrire du code dans des langages comme C, C++ et Rust, et de faire tourner ce code dans les navigateurs web rapidement et en toute sécurité. C'est important parce que ça ouvre plein d'opportunités pour créer des applications web puissantes. Mais comme avec toute nouvelle technologie, WebAssembly amène aussi des risques de sécurité. Un gros risque, c'est le Cryptojacking, une méthode pour que des méchants utilisent secrètement l'ordinateur de quelqu'un pour miner des cryptomonnaies.

Le cryptojacking peut se faire sans que les utilisateurs le sachent, ce qui en fait une vraie menace. À mesure que WebAssembly gagne en popularité, il est essentiel de comprendre comment il est utilisé dans le cryptojacking et comment s'en protéger.

Qu'est-ce que WebAssembly ?

WebAssembly est un langage de programmation bas niveau conçu pour fonctionner dans les navigateurs web. Il est fait pour être rapide, efficace et sécurisé, ce qui plait aux développeurs. Avec WebAssembly, les applications peuvent tourner presque aussi vite que les applications natives, qui sont des programmes qui fonctionnent directement sur le système d'exploitation de ton ordi.

WebAssembly permet aux développeurs de prendre leur code existant et de le faire tourner dans le navigateur sans avoir besoin de le réécrire en JavaScript. Ça facilite le portage des applications de bureau vers le web, améliorant ainsi la Performance et l'expérience utilisateur. Depuis son introduction en 2017, WebAssembly a attiré l'attention des grandes entreprises tech et des développeurs.

Comprendre le Cryptojacking

Le cryptojacking est un type de cyberattaque où des attaquants utilisent les ressources d'un autre ordinateur pour miner des cryptomonnaies sans leur consentement. Le cryptojacking peut se produire par divers moyens, y compris des sites web compromis qui utilisent WebAssembly pour faire tourner des scripts de minage en arrière-plan.

Le minage de cryptomonnaies est un processus qui demande beaucoup de puissance de calcul, et ça peut pomper la puissance CPU d'une personne, ce qui ralentit souvent son appareil. Le problème avec le cryptojacking, c'est que les victimes ne réalisent même pas que leurs appareils sont exploités.

Comment fonctionne le Cryptojacking

Quand un utilisateur visite un site compromis, son navigateur peut télécharger un code malveillant sous forme d'un binaire WebAssembly. Ce code peut souvent s'exécuter rapidement et efficacement, utilisant l'appareil de l'utilisateur pour faire le travail lourd de minage de cryptomonnaies. Le minage, c'est essentiellement le processus de résoudre des problèmes mathématiques complexes pour créer de nouvelles pièces de cryptomonnaies.

Souvent, le processus de minage peut être déclenché par une simple visite sur un site web, ce qui signifie que les utilisateurs n'ont même pas besoin de cliquer sur quoi que ce soit pour que leurs appareils soient utilisés pour le minage. Le navigateur va exécuter le code WebAssembly, et le minage va commencer en arrière-plan.

Défis de Détection

Détecter le cryptojacking peut être compliqué à cause des façons astucieuses dont il se fond dans le trafic web normal ou se comporte comme des applications légitimes. Les méthodes traditionnelles de détection reposent souvent sur l'analyse des comportements des applications, mais celles-ci peuvent parfois louper des cas de cryptojacking. De plus, étant donné que WebAssembly peut camoufler son véritable objectif en cours d'exploitation, ça ajoute une couche de difficulté supplémentaire aux efforts de détection.

Certaines méthodes pour détecter le cryptojacking impliquent d'analyser des métriques de performance comme l'utilisation du CPU et de la mémoire ou de vérifier pour un trafic réseau inhabituel. Cependant, beaucoup d'outils de détection ne se concentrent pas spécifiquement sur les binaires WebAssembly, ce qui peut rendre l'identification des usages malveillants dans ce contexte encore plus difficile.

Techniques d'Obfuscation

Une façon de lutter contre le cryptojacking est via l'obfuscation, un processus qui rend un code ou un binaire plus difficile à analyser et à comprendre. Dans le contexte de WebAssembly, l'obfuscation transforme le code pour qu'il ait l'air différent tout en réalisant la même fonction. Ça veut dire que même si un détecteur essaie d'analyser le code, il pourrait ne pas reconnaître les actions nuisibles qui sont effectuées.

Plusieurs types de techniques d'obfuscation peuvent être utilisées, y compris :

  1. Obfuscation du Flux de Contrôle : Cette méthode modifie l'ordre et le flux d'exécution dans un programme. Par exemple, ça peut ajouter des conditions fictives ou changer les comportements des boucles pour embrouiller les outils de détection.

  2. Obfuscation des Données : Cette technique change la façon dont les données sont représentées dans le code, rendant difficile pour quelqu'un qui analyse le code de comprendre ce qu'il fait. Ça peut inclure l'encodage de certaines valeurs ou la décomposition des structures de données en formes moins reconnaissables.

  3. Transformations Préventives : Ces ajustements visent à perturber les technologies de rétro-ingénierie couramment utilisées pour analyser les codes, comme les techniques pour détecter le débogage ou la manipulation.

  4. Obfuscation de la Structure : Ça change la façon dont les éléments du code sont arrangés, rendant plus difficile la lecture et le suivi.

En appliquant ces techniques, l'objectif est de créer un environnement où les méthodes de détection ont du mal à identifier la véritable nature du code et échouent ainsi à déceler les tentatives de cryptojacking.

L'Importance d'Évaluer l'Obfuscation

Pour s'assurer que les techniques d'obfuscation sont efficaces, il est crucial d'évaluer leur impact sur la détection du code et la performance. Évaluer à quel point ces méthodes d'obfuscation peuvent déguiser des actions nuisibles est essentiel pour comprendre leur valeur dans la prévention du cryptojacking.

Une évaluation efficace mesure plusieurs aspects clés :

  1. Efficacité : À quel point l'obfuscation dissimule-t-elle la véritable intention du code ? Les binaires résultants sont-ils suffisamment différents pour que les détecteurs aient du mal à reconnaître un comportement malveillant ?

  2. Détectabilité : Les binaires obfusqués parviennent-ils à éviter la reconnaissance par les outils de détection existants ? Cela englobe la détermination des types d'obfuscation qui fonctionnent le mieux contre des méthodes de détection spécifiques.

  3. Surcharge : L'obfuscation ajoute-t-elle une surcharge de traitement significative qui impacte la performance ? Cela veut dire examiner si le code obfusqué fonctionne plus lentement que l'original, ce qui pourrait décourager son utilisation dans des scénarios en temps réel.

Configuration Expérimentale

Dans les expériences pour analyser les techniques d'obfuscation, une variété d'applications existantes écrites en C a été utilisée. L'objectif était d'appliquer différentes méthodes d'obfuscation à ces applications, de les compiler en WebAssembly, puis d'évaluer leur efficacité contre des stratégies de détection courantes. Les outils utilisés dans ces tests comprenaient :

  • Tigress : Un obfuscateur de source à source qui applique diverses transformations.
  • emcc-obf : Une version modifiée d'un compilateur WebAssembly populaire avec un support d'obfuscation intégré.
  • wasm-mutate : Un outil qui se concentre sur la diversification des binaires WebAssembly.

Après avoir appliqué l'obfuscation, les applications résultantes ont été testées à l'aide de méthodes de détection de cryptojacking pour voir à quel point elles pouvaient identifier la présence d'activités de minage cachées.

Résultats des Techniques d'Obfuscation

Les expériences ont révélé plusieurs informations sur l'efficacité des méthodes d'obfuscation.

  1. Efficacité Générale : Tigress s'est avéré être le plus efficace pour produire un code difficile à analyser pour les outils de détection. Il a réussi à générer des binaires qui étaient significativement différents de leurs versions originales.

  2. Détectabilité : Lorsqu'ils ont été testés contre des méthodes de détection, de nombreux binaires obfusqués ont réussi à échapper à la reconnaissance, notamment ceux transformés à l'aide de techniques d'obfuscation du flux de contrôle.

  3. Surcharge : Bien que certaines techniques d'obfuscation aient introduit des réductions de performance en termes de puissance de traitement utilisée, d'autres ont réussi à maintenir voire améliorer la performance. Cela suggère que l'obfuscation peut être appliquée stratégiquement sans nuire gravement aux opérations en temps réel.

  4. Résultats Spécifiques aux Applications : L'efficacité de transformations spécifiques dépendait souvent du type d'application obfusquée. Par exemple, les mineurs de cryptojacking bénéficiaient davantage des techniques d'encodage arithmétique.

Conclusion

L'essor de WebAssembly apporte à la fois des opportunités et des défis. Sa capacité à exécuter des applications complexes directement dans les navigateurs web ouvre de nouvelles possibilités pour les développeurs, mais expose aussi les utilisateurs à des risques potentiels, y compris le cryptojacking.

Alors que les attaquants se tournent de plus en plus vers des technologies comme WebAssembly à des fins malveillantes, il est vital de continuer à rechercher et à développer des contre-mesures efficaces. Les techniques d'obfuscation offrent une voie pour atténuer les risques de cryptojacking, mais une évaluation et une adaptation continues seront nécessaires pour suivre l'évolution des menaces.

Sensibiliser à ces risques et développer de meilleures méthodes de détection sera essentiel pour s'assurer que les avantages de WebAssembly peuvent être appréciés sans compromettre la sécurité. En abordant efficacement le problème du cryptojacking, les utilisateurs peuvent se sentir en sécurité en sachant que leurs appareils ne sont pas silencieusement exploités à des fins malveillantes.

Source originale

Titre: Cryptic Bytes: WebAssembly Obfuscation for Evading Cryptojacking Detection

Résumé: WebAssembly has gained significant traction as a high-performance, secure, and portable compilation target for the Web and beyond. However, its growing adoption has also introduced new security challenges. One such threat is cryptojacking, where websites mine cryptocurrencies on visitors' devices without their knowledge or consent, often through the use of WebAssembly. While detection methods have been proposed, research on circumventing them remains limited. In this paper, we present the most comprehensive evaluation of code obfuscation techniques for WebAssembly to date, assessing their effectiveness, detectability, and overhead across multiple abstraction levels. We obfuscate a diverse set of applications, including utilities, games, and crypto miners, using state-of-the-art obfuscation tools like Tigress and wasm-mutate, as well as our novel tool, emcc-obf. Our findings suggest that obfuscation can effectively produce dissimilar WebAssembly binaries, with Tigress proving most effective, followed by emcc-obf and wasm-mutate. The impact on the resulting native code is also significant, although the V8 engine's TurboFan optimizer can reduce native code size by 30\% on average. Notably, we find that obfuscation can successfully evade state-of-the-art cryptojacking detectors. Although obfuscation can introduce substantial performance overheads, we demonstrate how obfuscation can be used for evading detection with minimal overhead in real-world scenarios by strategically applying transformations. These insights are valuable for researchers, providing a foundation for developing more robust detection methods. Additionally, we make our dataset of over 20,000 obfuscated WebAssembly binaries and the emcc-obf tool publicly available to stimulate further research.

Auteurs: Håkon Harnes, Donn Morrison

Dernière mise à jour: 2024-03-22 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2403.15197

Source PDF: https://arxiv.org/pdf/2403.15197

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Articles similaires