Akamai Technologies est une entreprise américaine spécialisée dans la mise à disposition de serveurs de cache pour les entreprises. L'année dernière, Akamai a publié des recherches sur les techniques d'obfuscation utilisées par les cybercriminels pour créer des codes JavaScript malveillants. Le code est illisible, non débuggable et, par conséquent, beaucoup plus difficile à analyser et à détecter. En raison de sa nature côté client, JavaScript donne à ceux qui l'utilisent la possibilité d'échapper à la détection, en créant un code obfusqué qui ne révèle sa vraie nature que lorsqu'il est exécuté par la machine de la victime.
Selon une étude récente portant sur l'analyse de plus de 10 000 échantillons de JavaScript malveillants - représentant des menaces telles que les droppers de logiciels malveillants, les pages de phishing, les escrocs et les logiciels malveillants de cryptomonnaie - au moins le quart (25 %) de ces échantillons examinés utilisent des techniques d'obfuscation de JavaScript pour échapper à la détection. Pour mémoire, en informatique, l'obfuscation consiste à convertir un code source facile à comprendre en un code difficile à comprendre et déroutant pour l'homme, mais qui fonctionne toujours comme prévu.
Selon Akamai, ce fort taux d'adoption de l'obfuscation devrait être une sonnette d'alarme. L'entreprise informe que l'obfuscation peut être réalisé par divers moyens, comme l'injection de code inutilisé dans un script, la division et la concaténation du code (en le divisant en morceaux sans lien entre eux), ou l'utilisation de modèles hexadécimaux et de chevauchements délicats avec les noms de fonctions et de variables. La plupart des échantillons obfusqués analysés semblent avoir un code similaire, car ils ont été regroupés par les mêmes empaqueteurs, de sorte que leur structure de code semble similaire même si la fonction est différente.
Akamai a déclaré qu'il prévoit de présenter plus de détails sur la manière dont il concentre ses efforts de détection sur les techniques d'empaquetage plutôt que sur le code du fichier lui-même lors de la prochaine conférence SecTor. Notons que l'empaquetage de logiciels est une méthode de compression ou de chiffrement du code qui le rend illisible ou non débuggable. En conséquence, le code change pour tenter d'éviter la détection par signature ou hachage. La recherche qui sera présentée introduit une technique qui exploite la fonctionnalité unique des empaqueteurs pour détecter JavaScript avant qu'il ne soit obfusqué, quel que soit le code d'origine.
Ainsi, tout code JavaScript représentant une menace - comme le phishing, les logiciels malveillants ou les escrocs - sera détecté sur la base des techniques introduites par l'empaqueteur. L'image ci-dessus est un instantané de quatre morceaux de code JavaScript provenant de quatre fichiers malveillants sans aucun lien entre eux. Deux d'entre eux sont des fichiers d'hameçonnage, un autre est un logiciel malveillant et le dernier est un escroc de type Magecart. Ces quatre morceaux de code utilisent des variables et des noms de fonctions différents, mais ils ont la même structure et exécutent la même fonctionnalité d'obfuscation.
Ils passent en revue de manière itérative une charge utile donnée sous forme de tableau et remanient l'ordre de ce tableau. Ces différents exemples sont le résultat de l'utilisation de la même fonctionnalité unique d'empaquetage pour obfusquer un code JavaScript donné. En outre, les chercheurs ont déclaré que l'obfuscation du JavaScript n'est pas uniquement utilisé à des fins malveillantes. Certains l'utiliseraient simplement pour rendre difficile la compréhension du code. Une étude portant sur les 20 000 sites Web les mieux classés selon Alexa.com révèle qu'au moins 0,5 % de ces sites contiennent du code JavaScript obfusqué intégré.
Une inspection plus approfondie révèle que l'obfuscation utilisée est le résultat de divers scénarios légitimes, notamment :
- les sites Web tentent de dissimuler certaines de leurs fonctionnalités de code côté client à leurs concurrents ;
- les extraits de JavaScript qu'ils utilisent ont été obfusqués par un fournisseur tiers ;
- des informations sensibles comme les adresses électroniques doivent être cachées au public.
Selon les chercheurs, ces éléments mettent en lumière les difficultés que pose la détection de JavaScript malveillant, car l'obfuscation ne suffit pas à lui seul à indiquer la présence de code malveillant. Ils estiment que l'approche pour détecter l'obfuscation malveillante nécessite des techniques d'apprentissage automatique plus avancées qui permettent de différencier le JavaScript obfusqué malveillant du JavaScript bénin.
Source : Akamai
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous des conclusions de l'étude ?
Utilisez-vous la technique d'obfuscation ? Si oui, à quelle fin l'utilisez-vous ?
Que proposez-vous pour faciliter la détection de l'obfuscation malveillant de l'obfuscation bénigne ?
Voir aussi
Un code JS malveillant peut espionner les onglets d'autres navigateurs pour identifier les sites Web que vous visitez, même Tor n'est pas épargné
Un package npm malveillant ouvre des portes dérobées sur les ordinateurs des programmeurs, le code JavaScript douteux se faisant passer pour une bibliothèque liée à la plateforme Twilio
Quatre packages npm trouvés en train d'ouvrir des shells sur des systèmes Linux et Windows. Tout ordinateur avec l'un de ces packages installés « doit être considéré comme totalement compromis »
68 % des organisations ont été confrontées au cryptominage malveillant au cours des neuf premiers mois de 2020, selon une étude de Cisco