Recherche de site Web

L'Index des Packages Python répond à une attaque de logiciels malveillants en invalidant les jetons


L'Index des packages Python (PyPI), géré par la Python Software Foundation, a officiellement invalidé tous les jetons de publication qui ont été volés lors de l'attaque de la chaîne d'approvisionnement GhostAction survenue début septembre. Cela signifie que les attaquants ne peuvent pas utiliser ces jetons volés pour publier des logiciels malveillants.

L'attaque visait une grande variété de dépôts où des jetons PyPI étaient stockés en tant que secrets GitHub. Les acteurs malveillants injectaient du code dans les workflows GitHub Actions pour exfiltrer ces jetons vers des serveurs externes. Bien que les attaquants aient réussi à voler les jetons, il est rassurant de savoir qu'ils ne les ont pas utilisés pour publier des packages malveillants sur PyPI, donc toutes les personnes concernées devraient être en sécurité.

Toute l'affaire a été révélée lorsqu'un employé de GitGuardian a utilisé le bouton « Signaler comme logiciel malveillant » sur PyPI pour signaler un projet appelé « fastuuid ». L'employé a découvert un flux de travail malveillant GitHub Actions qui tentait de voler des jetons PyPI. PyPI a immédiatement invalidé les jetons et contacté les propriétaires du projet. Un autre chercheur de GitGuardian a envoyé un e-mail avec des découvertes supplémentaires, mais celui-ci s'est retrouvé dans le dossier spam, ce qui a malheureusement retardé la réponse jusqu'au 10 septembre.

Une fois que l'équipe de PyPI a pris connaissance de l'ampleur totale de l'attaque, le groupe a immédiatement commencé à examiner les conclusions des chercheurs. Pendant ce temps, GitGuardian était occupé à ouvrir des issues sur GitHub concernant plus de 570 dépôts affectés pour informer les propriétaires. De nombreux mainteneurs de projets ont réagi rapidement, soit en annulant les modifications apportées à leurs workflows, soit en supprimant entièrement les workflows affectés. Beaucoup d'entre eux ont également procédé de manière proactive à la rotation de leurs jetons PyPI, ce qui est une démarche judicieuse.

Après avoir confirmé qu'aucun compte PyPI n'avait été compromis, PyPI a contacté tous les mainteneurs concernés le 15 septembre pour les informer que leurs jetons avaient été invalidés. L'équipe de la Python Software Foundation encourage les mainteneurs à passer des jetons à longue durée de vie à une méthode beaucoup plus sûre appelée « Éditeurs de confiance ».

Le fonctionnement de Trusted Publishers repose sur l'utilisation de jetons à courte durée de vie, spécifiques à un certain dépôt et expirant après un court laps de temps. Cela réduit considérablement le risque qu'une attaque similaire se reproduise, et c'est quelque chose que vous devriez sérieusement envisager si vous utilisez ce type de flux de travail.

Bien que les jetons des éditeurs de confiance puissent toujours être exfiltrés, leur courte durée de vie les rend beaucoup moins précieux pour les attaquants. PyPI recommande également de vous connecter à votre compte et de vérifier la section Historique de sécurité pour toute activité suspecte. C'est une étape simple qui pourrait vous éviter beaucoup de problèmes à l'avenir.

Cette campagne GhostAction n'était pas une mince affaire. GitGuardian a estimé que plus de 3 300 secrets ont été volés lors de l'attaque, et il ne s'agit pas seulement de jetons PyPI. L'équipe a également trouvé des jetons volés pour des services tels que npm, DockerHub et Cloudflare, ainsi que des clés d'accès AWS et des identifiants de base de données. Il semble que plusieurs entreprises aient vu l'ensemble de leur portefeuille SDK compromis dans plusieurs langages, y compris Python, Rust, JavaScript et Go.

Ce qui est effrayant dans tout cela, c'est que si GitGuardian n'avait rien remarqué, cela aurait pu aller plus loin. Cependant, si vous utilisez des éditeurs de confiance et vérifiez de temps en temps votre historique de sécurité, vous trouverez probablement ces types de problèmes ou pourrez les éviter.

Source : Blog PyPI