Le nouveau ver Shai-Hulud se propage via npm, GitHub

Lucas Morel

Selon les chercheurs, la dernière version exécute également du code malveillant pendant la phase de préinstallation et est plus volumineuse et plus rapide que la première vague.

Une nouvelle version du ver auto-propagation voleur d’informations d’identification Shai-Hulud se développe via le registre ouvert npm, une menace à laquelle les développeurs qui téléchargent des packages à partir du référentiel doivent faire face immédiatement.

Les chercheurs de Wiz Inc. ont déclaré lundi qu’au début de la campagne, à la fin de la semaine dernière, un millier de nouveaux référentiels GitHub contenant les données collectées sur les victimes étaient ajoutés toutes les 30 minutes. Et les chercheurs de JFrog ont identifié 181 packages compromis.

La campagne actuelle introduit une nouvelle variante, que les chercheurs de Wiz appellent Shai-Hulud 2.0, qui exécute du code malveillant pendant la phase de préinstallation, « augmentant considérablement l’exposition potentielle dans les environnements de construction et d’exécution ».

La menace exploite les comptes compromis des responsables de packages pour publier des versions trojanisées de packages npm légitimes. Une fois installé, le malware exfiltre les secrets du développeur et des CI/CD vers les référentiels GitHub, et insère également la charge utile malveillante dans tous les packages npm disponibles des utilisateurs. Les acteurs malveillants pourraient également utiliser les secrets exfiltrés pour pénétrer et installer davantage de logiciels malveillants dans les systèmes informatiques des victimes.

JFrog a déclaré que cette nouvelle variante génère des noms de référentiels aléatoires pour l’exfiltration, ce qui rend plus difficile pour les équipes de sécurité de traquer et d’effacer les secrets divulgués. JFrog a également déclaré que la nouvelle charge utile contient de nouvelles fonctionnalités, notamment l’élévation de privilèges, le détournement DNS et la possibilité de supprimer des données de la machine de la victime.

Plusieurs packages populaires utilisés par les développeurs, notamment ceux de Zapier, ENS Domains, PostHog et Postman, ont été compromis.

Les chercheurs de ReversingLabs ont également noté que la liste des packages compromis comprend des packages liés à AsyncAPI, notamment , qui a enregistré plus de 100 millions de téléchargements au cours de sa vie et une moyenne de 1,4 million de téléchargements hebdomadaires. Ce paquet en particulier est également considéré comme le « patient zéro », ou le premier paquet infecté connu, pour cette vague d’attaques, ont ajouté les chercheurs.

La deuxième vague est plus grosse et plus rapide

Les développeurs et les équipes de sécurité à la recherche d’indicateurs de compromission doivent noter que la nouvelle variante ajoute deux nouveaux fichiers de charge utile : et .

Shai-Hulud est apparu pour la première fois en septembre, révélé par la découverte que des dizaines de bibliothèques npm, dont une bibliothèque de couleurs avec plus de 2 millions de téléchargements par semaine, avaient été remplacées par des versions malveillantes.

Supposons un compromis

Si une personne avait retiré l’un des colis concernés entre le 21 et le 23 novembre, a-t-elle déclaré, elle devrait supposer que son environnement est exposé. Les solutions incluent la suppression du cache npm sur leur poste de travail, la suppression, la réinstallation à partir de versions propres ou l’épinglage sur des versions publiées avant les versions malveillantes, ainsi que la rotation de tous les jetons ou secrets présents (PAT GitHub, jetons npm, clés SSH, informations d’identification cloud).

Il est également essentiel d’activer une MFA puissante sur GitHub/npm et de surveiller les nouveaux dépôts ou fichiers de workflow inattendus dans le compte personnel du développeur, a-t-elle ajouté.

La deuxième vague de Shai-Hulud n’est pas surprenante, a déclaré Brad LaPorte, conseiller en cybersécurité chez Morphisec. « La première attaque a montré avec quelle facilité les scripts de préinstallation pouvaient être utilisés comme armes. Cette vague prouve ce qui se produit lorsque ces avertissements ne sont pas pris en compte : des charges utiles à plus grande échelle, plus destructrices et une automatisation qui infecte des milliers de référentiels en quelques heures. « 

Recommandations pour les référentiels

Pour empêcher les attaquants de télécharger facilement des packages malveillants, npm doit renforcer son processus de publication, a déclaré LaPorte, notamment en s’assurant que l’identité des nouveaux comptes est vérifiée avant qu’ils ne soient autorisés à publier des packages ; en mettant en œuvre des limites de débit pour empêcher les attaquants de télécharger plusieurs packages malveillants sur une courte période et en surveillant les responsables des packages pour détecter les activités suspectes telles que des pics soudains de publication ou des packages présentant des changements inexpliqués importants.

« D’après ce que nous avons observé lors des incidents de Shai-Hulud », a déclaré Bar of Wiz, « le problème principal n’est pas spécifiquement npm. Il s’agit plutôt du fait que les registres open source fonctionnent désormais comme des centres de distribution à fort impact et que les attaquants profitent de la confiance que les développeurs leur accordent. Dans ce contexte, le plus important est de continuer à renforcer les garde-fous autour de la manière dont les paquets sont publiés et mis à jour. Cela inclut de rendre plus difficile pour les comptes de responsables compromis de diffuser des versions malveillantes, d’augmenter la visibilité sur les comportements de publication inhabituels et aider les utilisateurs en aval à comprendre rapidement quand une version de package peut être dangereuse. Il s’agit de défenses au niveau de l’écosystème plutôt que de critiques d’un seul registre, mais elles reflètent la direction que l’ensemble de la communauté open source devra prendre à mesure que les attaques comme Shai-Hulud deviennent plus automatisées et de plus grande envergure.

Ensar Seker, RSSI chez SOCRadar, a averti que Shai‑Hulud n’est pas ce qu’il appelle un compromis de package typique. « Il s’agit d’un ver intégré à la chaîne logistique des développeurs. Cela indique que les attaquants ne ciblent plus les binaires compilés et les environnements d’exécution, mais les processus mêmes que les développeurs utilisent pour créer et livrer des logiciels. Aucune organisation ne devrait supposer : « Nous n’utilisons pas npm, nous sommes donc en sécurité », car même les dépendances en aval ou les chaînes d’outils de développement peuvent devenir la rampe de lancement. « 

Jusqu’à présent, npm s’est concentré sur la garantie que les auteurs de packages sont correctement authentifiés et que les packages ne sont pas modifiés après leur publication, a déclaré Ullrich de l’Institut SANS. Mais, a-t-il ajouté, cela n’empêche pas un acteur malveillant de publier des paquets malveillants. Récemment, npm a encore restreint la durée de vie des jetons d’accès par défaut et a commencé à révoquer les anciens « jetons classiques », a-t-il reconnu. « NPM devra peut-être mettre en œuvre une forme d’analyse automatisée pour détecter les contenus malveillants évidents, mais il sera difficile de mettre en œuvre une solution significative. »

Recommandations pour les équipes de sécurité, les développeurs

Wiz affirme que les équipes de sécurité des organisations comprenant des équipes de développeurs d’applications qui utilisent npm – et des développeurs individuels utilisant npm et GitHub – devraient :

  • vider le cache npm de chaque développeur ;
  • épingler les dépendances aux versions propres connues ou revenir aux versions antérieures au 21 novembre ;
  • révoquer et régénérer les jetons npm, les PAT GitHub, les clés SSH et les informations d’identification du fournisseur de cloud ;
  • appliquez une authentification multifacteur résistante au phishing pour les comptes de développeur et CI/CD (intégration continue/livraison continue).

Dans les environnements GitHub et CI/CD, ils doivent rechercher les référentiels nouvellement créés avec « Shai-Hulud » dans la description, examiner les flux de travail non autorisés ou les validations suspectes faisant référence à hulud et surveiller les nouvelles publications npm sous leur organisation.

SécuritéDéveloppement de logicielsSystèmes de contrôle de versionsVulnérabilités