Si vous codez en Python, vous avez probablement déjà employé PyPI (Python Package Index). En effet, des gestionnaires comme pip
, qui permettent de télécharger des scripts en Python, récupèrent les données dans cette base de données, à la manière d'un App Store. Et des chercheurs de chez Eset (spécialisée dans la sécurité) viennent de montrer que c'était parfois une mauvaise idée : vous risquez de vous retrouver avec un logiciel malveillant sur votre ordinateur.
La bonne nouvelle, c'est que les malwares installés ne semblent pas toucher macOS, mais attaquent Windows et les distributions GNU/Linux. La mauvaise, c'est que si vous codez en Python avec un de ces deux systèmes, vous avez peut-être été infecté : les chercheurs indiquent qu'ils ont noté plus de 10 000 téléchargements pour un des package infectés, et une moyenne de 80 installations par jour depuis mai 2023.
Il faut bien comprendre comment fonctionne PyPI : il propose de nombreux package, c'est-à-dire des logiciels en Python. Ils peuvent être fournis sous la forme de code (les sources) ou dans des versions déjà compilées pour des versions précises. Le gestionnaire tend à proposer cette seconde version (nommée wheel) quand elle est disponible, et — dans certains cas — elle est différente des sources… et infectée par un programme malveillant.
Ils montrent quelques exemples d'attaques possibles, avec l'importation de modules malicieux au milieu des sources, ou tout simplement l'inclusion de commandes PowerShell (un outil Microsoft) pour exécuter du code. D'autres récupèrent tout simplement du code malicieux depuis Dropbox, par exemple. Ils expliquent aussi que les programmes tentent de s'installer en profondeur, soit avec du code en VBScript (sous Windows) ou en s'attaquant à certains gestionnaires de bureaux sous GNU/Linux.
Enfin, les malandrins récupèrent les malwares eux-mêmes, implémentés en Python sous Windows et en Go sous GNU/Linux. Il y a plusieurs versions, mais ils permettent l'exécution de commandes à distance, la récupération de fichiers (évidemment à l'insu de l'utilisateur) et parfois même la possibilité de prendre des captures d'écran. Différents malwares existent, mais ils s'attaquent essentiellement aux cryptomonnaies, comme le Bitcoin, l'Ethereum ou le Monero. Il y a même des attaques insidieuses, qui consistent à vérifier le contenu du presse-papier pour détecter une éventuelle adresse liée à un portefeuille numérique. En clair, les logiciels infectés sur PyPI peuvent amener des fuites (de données).
Il faut tout de même noter que les programmes malicieux découverts ne sont plus en ligne (la liste est disponible ici) et que le problème n'est pas lié à la sécurité de PyPI, mais plus au fait qu'il est parfois compliqué de vérifier la présence d'un malware dans du code, même s'il est open source. Et donc qu'une vérification des données que vous allez télécharger et installer n'est pas superflue, surtout si vous avez des données sensibles sur votre ordinateur.
Source : Image d'ouverture : Faucet par smalllikeart