Une dépendance malveillante de PyTorch a été découverte et trompe les développeurs Python. pour qu’ils le téléchargent et volent ensuite leurs données sensibles.
PyTorch a récemment révélé qu’il avait découvert une dépendance malveillante partageant son nom avec la bibliothèque ‘torchtriton’ du framework. Les administrateurs qui ont installé PyTorch-nightly pendant les vacances auraient été compromis, et la plateforme leur a demandé de désinstaller immédiatement le framework et la fausse dépendance ‘torchtriton’.
L’astuce du même nom fonctionne comme suit : lors de la récupération des dépendances, PyPI est prioritaire sur PyTorch-nightly. Par conséquent, les utilisateurs récupèrent la dépendance malveillante au lieu de la dépendance légitime.
Des milliers de victimes
“Comme l’index PyPI est prioritaire, ce paquet malveillant était installé à la place de la version de notre dépôt officiel. Cette conception permet à quelqu’un d’enregistrer un paquet du même nom qu’un paquet existant dans un index tiers, et pip installera sa version par défaut”, a déclaré l’équipe de PyTorch dans son avertissement.
Des rapports ont affirmé que la dépendance malveillante a déjà été téléchargée plus de 2 000 fois et qu’elle saisit toutes sortes de données sensibles, des adresses IP et des noms d’utilisateur aux répertoires de travail actuels. Il lit également le contenu de /etc/hosts, /etc/passwd, et les 1 000 premiers fichiers de $HOME/*, entre autres choses.
Les données volées sont téléchargées vers le domaine h4ck.cfd via des requêtes DNS cryptées, en utilisant le serveur DNS wheezy.io.
L’histoire, cependant, est accompagnée d’un rebondissement : un avis sur le domaine h4ck.cfd semble prétendre que tout l’exercice était une recherche éthique :
“Bonjour, si vous êtes tombé sur ceci dans vos journaux, c’est probablement parce que votre Python a été mal configuré et qu’il était vulnérable à une attaque par confusion de dépendances”, peut-on lire dans l’avis. Pour identifier les entreprises vulnérables, le script m’envoie les métadonnées de l’hôte (telles que son nom d’hôte et son répertoire de travail actuel). Après avoir identifié qui est vulnérable et [reported] la découverte, toutes les métadonnées sur votre serveur seront supprimées.”
Cependant, certains experts ont affirmé que le binaire collecte plus que des ” métadonnées ” : il s’empare des clés SSH, des fichiers .gitconfig, des hôtes et des mots de passe, autant de fichiers auxquels un pirate éthique ne toucherait pas. En outre, ” torchtriton ” a été observé en train d’utiliser des techniques anti-VM connues pour s’assurer qu’il reste sous le radar, et enfin, la charge utile est obfusquée et contenue entièrement dans le format binaire.
Intention malveillante ?
Pourtant, dans une déclaration au BleepingComputerle propriétaire du domaine a maintenu son histoire de pirate blanc :
“Hé, je suis celui qui a revendiqué le paquet torchtriton sur PyPi. Notez que cela n’avait pas l’intention d’être malveillant !
Je comprends que j’aurais pu faire un meilleur travail en n’envoyant pas toutes les données de l’utilisateur. La raison pour laquelle j’ai envoyé plus de métadonnées est que dans le passé, lors d’enquêtes sur des problèmes de confusion de dépendances, dans de nombreux cas, il n’était pas possible d’identifier les victimes par leur nom d’hôte, nom d’utilisateur et CWD. C’est la raison pour laquelle j’ai décidé cette fois-ci d’envoyer plus de données, mais avec le recul, c’était une mauvaise décision et j’aurais dû être plus prudent.
J’en accepte la responsabilité et je m’en excuse. Dans le même temps, je tiens à assurer que mon intention n’était pas de voler les secrets de quelqu’un. J’ai déjà signalé cette vulnérabilité à Facebook le 29 décembre (presque trois jours avant l’annonce) après avoir vérifié qu’elle existait bien. J’ai également effectué de nombreux signalements auprès d’autres entreprises concernées via leurs programmes HackerOne. Si mes intentions avaient été malveillantes, je n’aurais jamais rempli de rapport de bug bounty, et j’aurais simplement vendu les données au plus offrant.
Je m’excuse encore une fois d’avoir causé des perturbations, j’assure que toutes les données que j’ai reçues ont été supprimées.
D’ailleurs dans mon rapport de bogue à Facebook, j’ai déjà proposé de leur transférer le paquet PyPi, mais jusqu’à présent je n’ai reçu aucune réponse de leur part.”
Via : BleepingComputer
€