Attaque de typosquatting
Il semble que toutes les mesures de sécurité sur lesquelles ils ont travaillé dans le dépôt de paquets Python PyPI (Python Package Index) n'aient pas été très efficaces, car même s'ils ont forcé les utilisateurs à utiliser l'authentification à deux facteurs et mis en œuvre des mesures de sécurité pour empêcher autant que possible l'introduction de paquets malveillants, ils continuent de rencontrer un grand nombre de problèmes.
Et l'un des gros problèmes qui afflige NPM est le chargement flagrant de paquets malveillants, un problème qu'il a rencontré ces dernières années et qu'il n'a pas pu éradiquer et la raison pour laquelle il est mentionné est que cette situation est la même que celle de PyPi. que nous connaissons, bien que dans une moindre mesure, car des tentatives ont été faites pour implémenter divers filtres de sécurité, et je mentionne ces tentatives car des paquets malveillants continuent d'apparaître.
Il est important de mentionner ce point car une interdiction temporaire a récemment été imposée aux nouvelles inscriptions et à la création de nouveaux projets sur le dépôt de paquets Python PyPI, suite à une attaque automatisée en cours ayant entraîné le téléchargement massif de paquets malveillants. Cette mesure a été prise après la mise en ligne, les 26 et 27 mars, de 566 paquets contenant du code malveillant imitant le style de 16 bibliothèques Python populaires.
Les noms de ces logiciels malveillants sont formés à l'aide de techniques de typosquatting, qui consistent à attribuer des noms similaires ne différant que par de légers changements de caractères. Par exemple, on utilise des noms comme « temsorflow » au lieu de « tensorflow », « requyests » au lieu de « requests » et « asyincio » au lieu de « asyncio ». Ces attaques exploitent la distraction des utilisateurs, qui peuvent commettre des fautes de frappe en cherchant ou en suivant des liens sur des forums et des messageries instantanées où les attaquants laissent des instructions trompeuses.
Les paquets malveillants sont basés sur du code provenant de bibliothèques légitimes et intègrent des modifications qui installent un logiciel malveillant sur le système. Ce logiciel malveillant recherche et envoie des données et des fichiers sensibles, tels que des mots de passe, des clés d'accès, des portefeuilles de cryptomonnaies, des jetons et des cookies de session. Le code malveillant est intégré au fichier setup.py, qui s'exécute lors de l'installation du paquet et qui, une fois activé, télécharge des composants malveillants depuis un serveur externe.
Cette attaque typosquat automatisée a été menée en quelques heures en quelques rafales rapides, a vu la publication de plus de 500 packages et a ciblé 16 packages PyPI populaires. Même si la réponse rapide et énergique de PyPI a certainement contribué à atténuer les conséquences de cette attaque, il convient de noter que tous les écosystèmes ne sont pas aussi rapides et efficaces pour faire face à une telle attaque.
L'attaque contre le dépôt PyPI était d'envergure et a touché plusieurs bibliothèques Python populaires . Les attaquants sont parvenus à télécharger des versions malveillantes de packages tels que TensorFlow, BeautifulSoup, PyGame, SimpleJson, Matplotlib, PyTorch, CustomTKInter, Selenium, Dramaturgo, Asincio et Request. De plus, des cas isolés de bibliothèques falsifiées, comme py-cord, colorama, capmonstercloudclient, pillow et bip-utils, ont été identifiés.
Concernant l'attaque contre la communauté Top.gg, l'attaquant a compromis le compte GitHub de l'un des développeurs, lui permettant de voler les cookies du navigateur et d'effectuer des modifications malveillantes.
Trois packages malveillants ont été ajoutés au référentiel PyPI et de faux domaines ont été enregistrés pour distribuer les dépendances sur les packages malveillants. Grâce à un compte piraté, une modification a été apportée au référentiel GitHub du projet Top.gg, où un fichier Requirements.txt a été ajouté contenant un lien vers un clone malveillant du package « colorama » hébergé sur un faux domaine. L'objectif était d'inciter les développeurs à télécharger la version malveillante du package, car le faux domaine ressemblait au domaine légitime utilisé pour télécharger les packages depuis PyPI.
Ces attaques mettent en évidence l'importance de la sécurité dans les référentiels de packages et la nécessité pour les utilisateurs et les développeurs d'être attentifs aux éventuelles tentatives de compromission de la sécurité et de téléchargement de logiciels malveillants.
Si vous souhaitez en savoir plus, vous trouverez les détails en suivant ce lien.