Campagne pour fournir des paquets npm et PyPI infectés avec Go sckit binaire et des identifiants vol

Auteur: Publié 6 min de lectura 13 lecture

Les images de cet article ont été générées par intelligence artificielle. Notre méthode de publication

Une campagne d'approvisionnement de paquets a récemment compromis les composants légitimes utilisés par les développeurs et les pipelines d'intégration continue pour distribuer un outil multiplateforme malveillant. Les attaquants ont inséré un binaire Go appelé "sckit" dans des versions spécifiques d'un paquet npm et d'un paquet PyPI, et le code malveillant est automatiquement activé lors du chargement de la dépendance ou du traitement des événements de mémoire dans le temps de fonctionnement. Les rapports d'Aikido, SafeDep, Socket et StepSecurity confirment l'implication des versions 0.1.21, 0.1.23 et 0.1.25 du paquet npm @ memtensor / mémos-cloud-openclaw-plugin et de la version 2.0.34 du paquet PyPI MemoryOS (ce dernier a été mis en quarantaine dans PyPI). Le forfait npm est disponible dans votre registre public à npmjs.com et l'entrée affectée de l'écosystème Python dans pypi.org.

Dans ce qui est vérifié jusqu'à présent, les versions malveillantes incluent un chargeur qui lance le binaire Go lorsque le plugin est initialisé (dans le cas de npm) ou lorsque le module "memos" est importé (dans PyPI). L'exécutable est compilé de manière statique et agit comme un voleur d'identification : il recueille des fichiers de configuration et des jetons (.npmrc, .vault-token, id _ ecdsa, identity. db, access _ tokens.json, stocked _ tokens), variables d'environnement contenant des clés (NPM _ TOKEN, PIPI _ API _ TOKEN, etc.), et des clés de service ou des jetons tels que AWS, GitHub, GitLab, Huging Face, et Hashipe, Slack, et Grid. Le malware exfiltre ces informations à un serveur de commande et de contrôle hébergé sous le domaine signalé par des signatures d'analyse comme skyleen.fr.

Campagne pour fournir des paquets npm et PyPI infectés avec Go sckit binaire et des identifiants vol
Image générée avec IA.

Techniquement, comment fonctionne l'intrusion: Le vecteur initial était la publication malveillante de nouvelles versions de bibliothèques légitimes. SafeDep documente que les attaquants ont pu publier ces paquets en utilisant des jetons de publication disponibles dans le projet GitHub Actions of the MemTensor; en particulier, ils ont introduit des engagements qui ont déclenché des flux de travail qui ont exposé ou facilité l'utilisation du jeton de publication. Une fois le paquet distribué, le sckit binaire est exécuté dans le contexte du processus qui charge la dépendance, vous permettant d'hériter des variables d'environnement et d'accéder au même utilisateur et système de fichiers que l'application CI ou le travail où la dépendance a été importée.

En outre, l'analyse des logiciels malveillants indique des capacités d'autopropagation : des modèles et des mécanismes pour insérer la charge utile dans les paquets Npm, les paquets Python et les workflows GitHub Actions, qui vous permettent de vous comporter comme un ver et de publier vous-même de nouvelles versions malveillantes si vous obtenez des jetons valides. Concrètement, cela signifie qu'une équipe ayant accès à des dépôts, des références de publication ou des flux de travail avec des privilèges excessifs pourrait faciliter la diffusion automatique d'autres projets et comptes.

Qui sont les personnes touchées et pourquoi cela compte : la victime principale sont les machines de développement et les emplois CI qui installent ou importent les versions compromises. Comme le plugin affecte un composant conçu pour être intégré dans des agents « mémoire » pour les outils IA et les agents d'exécution, les processus infectés traitent généralement le texte de l'utilisateur, les invites et les références temporaires ou permanentes, de sorte que l'exposition peut inclure des secrets injectés pour une tâche spécifique. Dans la pratique, cela met en danger les dépôts, comptes de services en nuage, jetons de paquet et les secrets utilisés par les pipelines, avec le potentiel d'escalade (réutilisation des références, publication de versions malveillantes, mouvement latéral dans les infrastructures CI / CD).

Faits confirmés : Les versions notées des paquets contiennent le binaire malveillant et le lanceur; le domaine d'exfiltration rapporté est skyleen.fr; la technique d'obtention du jeton de publication impliqué GitHub Pipels Actions du projet; PyPI a mis en quarantaine la version affectée. Les estimations et les éléments demeurent incertains : la portée totale (s'il y a d'autres paquets engagés en plus de MemTensor), la paternité de l'acteur qui a mis la charge utile et le nombre d'organisations concernées n'est pas entièrement confirmée. Les analyses suggèrent également, mais ne garantissent pas, que la campagne est conçue pour s'autodiffuser lorsqu'elle obtient suffisamment de références.

Ce qu'une équipe ou une organisation de développement devrait faire maintenant : agir est urgent et concret. Premièrement, dépendances de peinture pour sécuriser les versions: pour paquet npm, retourner à la version 0.1.20; pour PyPI, à 2.0.33, selon les analyses disponibles. Deuxièmement, révoquer immédiatement et faire pivoter tout titre de compétence qui pourrait avoir été dans l'environnement du processus (jetons npm / PyPI, clés AWS, jetons GitHub / GitLab, secrets Vault, etc.). Troisièmement, rechercher et arrêter les processus suspects appelés ou qui exécutent "sckit" et supprimer binaire non reconnu dans les environnements de développement et les coureurs CI; aussi bloquer le domaine C2 et ses sous-domaines au niveau du réseau et du proxy (skyleen.fr et variantes).

Actions de détection et de confinement techniques recommandées : recherche de "skyleen" et de noms binaires dans les dépôts et les artefacts : grep -R "skyleen." / var & ps aux-124; grep sckit-124;-124; true; vérifier les fichiers de jetons (.npmrc, editors.db, .vault-token, id _ ecdsa) pour les modifications récentes, comparer les comptes de contrôle avec les bâtiments attendus, revoir les logos GitHub Actions dans les paramètres non autorisés et rechercher des dépôts et/ou des remplacements non autorisés. Vérifier quels comptes et flux de travail ont permis la publication et supprimer les jetons de publication intégrés dans les dépôts; utiliser plutôt des mécanismes de fédération temporaire tels que l'OIDC et des principes moins privilégiés (voir le guide de l'OIDC de GitHub : Configuration OpenID Connect dans votre workflow).

Campagne pour fournir des paquets npm et PyPI infectés avec Go sckit binaire et des identifiants vol
Image générée avec IA.

Mesures d'atténuation à moyen terme : permettre le balayage des secrets dans les commits et les artefacts, forcer 2FA dans les comptes pertinents, restreindre les permis des coureurs d'IC, faire pivoter les clés à long terme vers les titres de créance à court terme, vérifier et limiter les jetons de publication, générer des SBOM et signer des artefacts et des rejets pour détecter des modifications non autorisées. Il est également essentiel d'examiner les points d'intégration tiers (bots, plugins, agents de mémoire) et de traiter les unités comme des actifs nécessitant un contrôle du changement et une vérification de l'intégrité.

Enfin, ne doit pas être supposé que l'incidence est contenue jusqu'à ce qu'un examen médico-légal soit terminé. Si votre organisation utilise les versions compromises, effectuez la rotation des secrets, une recherche approfondie de la pollution dans les dépôts et les coureurs, et une reconstruction des artefacts à partir de sources propres. Si vous détectez des publications non autorisées faites par vos comptes ou vos workflows, enquêtez immédiatement et, au besoin, communiquez avec les fournisseurs d'enregistrement (npm, PyPI, GitHub) pour obtenir de l'aide en matière de médiation et de rapports.

L'épisode souligne que les pipelines automatisés et les jetons d'édition sont une cible critique pour les adversaires intéressés à compromettre la chaîne d'approvisionnement du logiciel. La combinaison de binaires multiplateformes et de mécanismes pour hériter du contexte de l'exécution convertit les dépendances populaires en vecteurs extrêmement puissants: la prévention nécessite à la fois des contrôles techniques (le moindre privilège, ODC, rotation des secrets) et opérationnels (examens d'engagement, surveillance des IC, blocage de domaine malveillant et réponses médico-légales rapides).

Couverture

Autres

Plus de nouvelles sur le même sujet.