Les mainteneurs du package PyTorch ont averti les utilisateurs qui ont installé les versions nocturnes de la bibliothèque entre le 25 décembre 2022 et le 30 décembre 2022 de désinstaller et de télécharger les dernières versions suite à une attaque de confusion de dépendance.
« Les packages Linux PyTorch-nightly installés via pip pendant cette période ont installé une dépendance, torchtritonqui a été compromis sur le référentiel de code Python Package Index (PyPI) et a exécuté un binaire malveillant », l’équipe PyTorch m’a dit en alerte ce week-end.
PyTorch, analogue à Keras et TensorFlow, est un framework d’apprentissage automatique open source basé sur Python qui a été initialement développé par Meta Platforms.
L’équipe PyTorch a déclaré avoir pris connaissance de la dépendance malveillante le 30 décembre à 16h40 GMT. L’attaque de la chaîne d’approvisionnement impliquait le téléchargement d’une version malveillante d’une dépendance légitime nommée torchtriton dans le référentiel de code Python Package Index (PyPI).
Étant donné que les gestionnaires de packages comme pip vérifient les registres de code public tels que PyPI pour un package avant les registres privés, cela a permis au module frauduleux d’être installé sur les systèmes des utilisateurs par opposition à la version réelle extraite de l’index tiers.
La version malveillante, pour sa part, est conçue pour exfiltrer les informations système, y compris les variables d’environnement, le répertoire de travail actuel et le nom d’hôte, en plus d’accéder aux fichiers suivants –
- /etc/hosts
- /etc/passwd
- Les 1 000 premiers fichiers dans $HOME/*
- $HOME/.gitconfig
- $HOME/.ssh/*
Dans une déclaration partagée avec Bleeping Computer, le propriétaire du domaine auquel les données volées ont été transmises revendiqué cela faisait partie d’un exercice de recherche éthique et que toutes les données ont depuis été supprimées.
En guise d’atténuation, torchtriton a été supprimé en tant que dépendance et remplacé par pytorch-triton. Un paquet factice a également été enregistré sur PyPI en tant qu’espace réservé pour éviter d’autres abus.
« Ce n’est pas le vrai paquet torchtriton mais téléchargé ici pour découvrir les vulnérabilités de confusion de dépendance », lit un message sur la page PyPI pour torchtriton. « Vous pouvez obtenir le vrai torchtriton sur https://download.pytorch[.]org/whl/nightly/torchtriton/. »
Le développement intervient également alors que JFrog a divulgué les détails d’un autre package connu sous le nom de cookiezlog qui a été observé en utilisant des techniques anti-débogage pour résister à l’analyse, marquant la première fois que de tels mécanismes ont été incorporés dans les logiciels malveillants PyPI.