Intrus “invisibles” : le malware GlassWorm déclenche une attaque massive sur la chaîne d’approvisionnement de l’écosystème open source
Plus de 400 dépôts de code et extensions sur GitHub, npm et VSCode ont été compromis lors d’une vaste campagne de malware furtive.
Tout a commencé par un murmure dans le code. Lorsque des développeurs du monde entier ont remarqué des anomalies dans leurs projets - fichiers inexpliqués, historiques de commits étranges et caractères Unicode cryptiques - ils étaient déjà pris dans la toile de GlassWorm. Cette dernière attaque sur la chaîne d’approvisionnement n’est pas seulement un exploit technique ; c’est un signal d’alarme pour le monde open source, où la confiance est la monnaie et où des menaces invisibles peuvent frapper au cœur de l’innovation.
La campagne GlassWorm, détectée pour la première fois en octobre, est revenue avec une ampleur et une sophistication sans précédent. Des chercheurs en sécurité d’Aikido, Socket, Step Security et de la communauté OpenSourceMalware ont retracé plus de 400 dépôts et paquets infectés jusqu’à un seul acteur malveillant, probablement russophone, selon les commentaires dans le code et des techniques d’évitement régionales. Le mode opératoire des attaquants est aussi créatif qu’inquiétant : ils compromettent des comptes développeur sur GitHub, forcent des commits malveillants, puis propagent leurs paquets contaminés via les marketplaces d’extensions npm et VSCode - des plateformes de confiance pour des millions d’utilisateurs.
Ce qui rend GlassWorm particulièrement insidieux, c’est l’utilisation de caractères Unicode invisibles, qui masquent les lignes de code malveillant à l’œil nu. Ces instructions “fantômes” récoltent des informations sensibles, dont des données de portefeuilles crypto et des identifiants développeur, tout en échappant aux revues de code classiques. Une fois installé, le malware persiste en créant des fichiers furtifs (comme ~/init.json) et installe même un runtime Node.js caché - souvent ignoré par les solutions antivirus.
Les attaquants coordonnent leurs opérations via la blockchain Solana, envoyant de nouvelles instructions toutes les cinq secondes par des transactions blockchain. Chaque mémo contient des URLs de payload mises à jour, transformant la blockchain en centre de commande décentralisé. Le malware exécute des stealers basés sur JavaScript, siphonnant clés SSH, tokens et autres biens numériques. Les signes révélateurs d’une compromission incluent la présence de la variable marqueur lzcdrtfxyqiplpd, des dossiers node-v22* inattendus et des fichiers suspects i.js dans les projets clonés.
L’ampleur de GlassWorm est vaste : plus de 200 dépôts Python, 151 projets JavaScript/TypeScript, 72 extensions VSCode/OpenVSX et 10 paquets npm ont été confirmés comme affectés. Même les utilisateurs macOS ont été ciblés via des clients de portefeuilles crypto trojanisés et des extensions compromises. L’infrastructure des attaquants est partagée sur toutes les plateformes, la campagne évoluant par vagues successives, chacune plus agressive et étendue que la précédente.
Pour les développeurs et les organisations, l’incident GlassWorm rappelle crûment que la force de l’écosystème open source - son ouverture et sa collaboration - est aussi sa plus grande vulnérabilité. La vigilance, l’hygiène des revues de code et une réponse rapide aux incidents sont désormais plus cruciales que jamais. Alors que GlassWorm continue d’évoluer, la bataille pour la sécurité de la chaîne d’approvisionnement ne fait que commencer.
WIKICROOK
- Attaque sur la chaîne d’approvisionnement : Une attaque sur la chaîne d’approvisionnement est une cyberattaque qui compromet des fournisseurs de logiciels ou matériels de confiance, propageant des malwares ou vulnérabilités à de nombreuses organisations en même temps.
- Caractères Unicode invisibles : Les caractères Unicode invisibles sont des symboles non visibles utilisés dans la mise en forme du texte, souvent exploités par des attaquants pour dissimuler du code malveillant ou tromper les utilisateurs.
- Commande : Une commande est une instruction envoyée à un appareil ou un logiciel, souvent par un serveur C2, lui ordonnant d’effectuer des actions spécifiques, parfois à des fins malveillantes.
- Obfuscation : L’obfuscation est la pratique qui consiste à déguiser du code ou des données pour les rendre difficiles à comprendre, analyser ou détecter par des humains ou des outils de sécurité.
- Persistance : La persistance regroupe les techniques utilisées par les malwares pour survivre aux redémarrages et rester cachés sur les systèmes, souvent en imitant des processus ou mises à jour légitimes.