Des acteurs malveillants inconnus ont été découverts en train de propager des versions trojanisées de jQuery sur npm, GitHub et jsDelivr dans ce qui semble être un exemple d’attaque de chaîne d’approvisionnement « complexe et persistante ».
« Cette attaque se distingue par la grande variabilité entre les packages », a déclaré Phylum dit dans une analyse publiée la semaine dernière.
« L’attaquant a habilement caché le malware dans le fichier rarement utilisé »fin‘ fonction de jQuery, qui est appelée en interne par le plus populaire ‘fondu au« fonctionne à partir de ses utilitaires d’animation ».
Pas moins de 68 packages ont été liés à la campagne. Ils ont été publiés dans le registre npm du 26 mai au 23 juin 2024, sous des noms tels que cdnjquery, footersicons, jquertyi, jqueryxxx, logoo et sytlesheets, entre autres.
Il existe des preuves suggérant que chacun des faux packages a été assemblé et publié manuellement en raison du grand nombre de packages publiés à partir de différents comptes, des différences dans les conventions de dénomination, de l’inclusion de fichiers personnels et de la longue période pendant laquelle ils ont été téléchargés.
Cela diffère des autres méthodes couramment observées dans lesquelles les attaquants ont tendance à suivre un modèle prédéfini qui souligne un élément d’automatisation impliqué dans la création et la publication des packages.
Les modifications malveillantes, selon Phylum, ont été introduites dans une fonction nommée « end », permettant à l’acteur de la menace d’exfiltrer les données du formulaire du site Web vers une URL distante.
Une enquête plus approfondie a révélé que le fichier jQuery trojanisé était hébergé sur un référentiel GitHub associé à un compte appelé «indexc. » Sont également présents dans le même référentiel des fichiers JavaScript contenant un script pointant vers la version modifiée de la bibliothèque.
« Il convient de noter que jsDelivr construit ces URL GitHub automatiquement sans avoir besoin de télécharger quoi que ce soit sur le CDN explicitement », a déclaré Phylum.
« Il s’agit probablement d’une tentative de l’attaquant de rendre la source plus légitime ou de se faufiler à travers les pare-feu en utilisant jsDelivr au lieu de charger le code directement depuis GitHub lui-même. »
Le développement intervient alors que Datadog identifié une série de packages sur le référentiel Python Package Index (PyPI) avec des capacités permettant de télécharger un binaire de deuxième étape à partir d’un serveur contrôlé par un attaquant en fonction de l’architecture du processeur.