Quand une unité devient un vecteur de vol: l'attaque de PyTorch Lightning dans PyPI expose les lettres de créances et les secrets

Publié 4 min de lectura 115 lecture

Un paquet légitime et largement utilisé dans l'écosystème Python, PyTorch Lightning, a été manipulé dans une publication malveillante dans PyPI et a livré un chargeur d'identifications aux navigateurs, aux fichiers d'environnement et aux services cloud. Le code malveillant a été activé lors de l'importation de la librairie, a soulevé un processus de fond qui a téléchargé un environnement d'exécution JavaScript (Bun v1.3.13) de GitHub et exécuté un grand fichier opfusqué - identifié par les fournisseurs comme une charge appelée "ShaiWorm" - avec des capacités secrètes d'exécution de vol et de commande à distance.

Les chefs de projet ont détecté l'incident et publié un avis technique dans leur dépôt; Microsoft Threat Intelligence a également signalé que Defender a bloqué la routine dans certains environnements et a alerté les développeurs. La campagne vise à extraire .env, jetons de GitHub, AWS / Azure / Clés GCP / API et données stockées dans Chrome, Firefox et Brave, en plus de pouvoir interagir avec les API dans le nuage pour extrapoler les accès. Pour les détails techniques et la réponse de l'équipe, l'avis public est disponible à GitHub: https: / / github.com / Lightning-AI / Pytorch-lighting / numéros / 21689 et le rapport Microsoft: https: / / x.com / MsftSecIntel / statut / 2050414222592521.

Quand une unité devient un vecteur de vol: l'attaque de PyTorch Lightning dans PyPI expose les lettres de créances et les secrets
Image générée avec IA.

Le fait qu'une telle unité ait été utilisée comme vecteur rappelle que la chaîne d'approvisionnement des logiciels est l'un des maillons les plus fragiles de la sécurité. PyTorch Lightning accumule des millions de téléchargements mensuels, de sorte que la fenêtre d'exposition pour les organisations et les développeurs individuels peut être large si pas agi rapidement. En réponse immédiate, le paquet est retourné à une version précédemment considérée comme sûre de PyPI, mais l'incertitude quant à la façon dont le processus de construction / de publication a été compromis exige que la campagne ait pu atteindre des environnements avec des importations automatiques ou des environnements CI qui installent des dépendances illimitées.

Si vous avez importé la version compromise (2.6.3 selon l'avis) ou exécuté "l'éclairage d'importation" au cours de cette période, Vous devez assumer l'engagement de secrets. La première action nécessaire est la rotation des identifiants : elle révoque et remplace les jetons GitHub, les clés API affectées et les identifiants cloud, et change les mots de passe et les secrets qui résident dans les fichiers .env utilisés par vos projets. Il convient également de vérifier l'accès aux comptes cloud pour détecter les utilisations anormales et appliquer des mesures telles que forcer la rotation des clés et examiner les registres d'authentification.

Dans les systèmes où le code pourrait être exécuté, recherchez des indicateurs de compromis : processus "bun" inattendus, fichiers temporaires avec routeur _ runtime. Noms js, connexions aux dépôts ou aux artefacts externes, et toute exécution de commande à distance enregistrée par votre EDR ou journal. Les outils d'analyse unitaire (p. ex. pip-audit) et les solutions de détection des paramètres peuvent aider à identifier les installations infectées; la page des statistiques du paquet montre sa large diffusion et sert à hiérarchiser les examens : https: / / pypstats.org / paquets / pytorch-lighting.

Quand une unité devient un vecteur de vol: l'attaque de PyTorch Lightning dans PyPI expose les lettres de créances et les secrets
Image générée avec IA.

Pour réduire les risques futurs, il intègre des contrôles dans votre cycle de vie de développement : il utilise des environnements virtuels ou des conteneurs avec des unités définies par hash ou version et vérifie les signatures quand elles sont disponibles; il permet des examens automatiques des unités dans vos dépôts (Dependabot ou autres outils) et applique le principe de privilège mineur dans les identifiants CI / CD et les autorisations API. En outre, envisager de générer des SBOM (inventaires de logiciels) pour vos bâtiments et appliquer des contrôles d'intégrité avant de déployer des appareils en production.

Dans l'infrastructure cloud, adopter des gestionnaires secrets (AWS Secrets Manager, Azure Key Vault, Google Secret Manager) et des références éphémères réduit l'impact d'un vol en temps opportun. Pour les organisations disposant de données et d'équipement ML, il limite l'accès aux clés des ordinateurs portables et des déploiements locaux, évite de garder des secrets dans les fichiers .env dans les dépôts ou dans des environnements non contrôlés, et nécessite l'authentification avec des jetons à court terme ou des rôles en assumant des références plutôt que des clés permanentes.

Enfin, la leçon est claire: les unités de la chaîne d'approvisionnement sont des objectifs essentiels et son engagement exige une réponse rapide, la rotation des secrets et l'examen des processus d'IC / CD et la publication. Gardez un œil sur les avertissements de l'exploitant et les mises à jour de sécurité de l'écosystème; les outils communautaires et de sécurité doivent travailler ensemble pour réduire les fenêtres d'exposition et détecter les manipulations avant qu'elles ne se propagent.

Couverture

Autres

Plus de nouvelles sur le même sujet.