IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Une poignée de paquets contenant du code malveillant a été téléchargée 30 000 fois sur PyPI
Et près de la moitié des paquets sur PyPI ont au moins un problème de sécurité, annoncent des chercheurs

Le , par Olivier Famien

43PARTAGES

8  0 
Si vous avez récemment téléchargé des paquets à partir du référentiel open source PyPI, vous devrez peut-être vous en inquiéter. En effet, l’équipe de recherche en sécurité informatique de JFrog vient d’annoncer que huit paquets contenant du code malveillant ont été téléchargés environ 30 ;000 fois par les développeurs. Ces packages pourraient faciliter le vol de mots de passe, de données de carte de crédit, etc. En plus de cette découverte, des chercheurs finlandais viennent de publier un rapport qui montre que sur l’ensemble des instantanés de packages analysés sur PyPI, environ 46 % d’entre eux présentent au moins problème de sécurité.

PyPI : un référentiel de packages Python incontournables… mais qui peut cacher de mauvaises surprises

PyPI (Python Package Index), c’est à ce jour plus de 319 ;000 projets hébergés sur le référentiel pour plus de 525 ;000 utilisateurs. En termes de référence, PyPI est donc un acteur majeur parmi les hébergeurs de packages Python. Conscients de cela, les pirates informatiques n’ont de cesse de cibler ce dépôt en proposant des packages contenant du code malveillant afin d’atteindre facilement et rapidement un nombre élevé d’utilisateurs. Récemment, les chercheurs Andrey Polkovnichenko, Omer Kaspi et Shachar Menashe de JFrog ont noté que huit packages ont réussi à atterrir sur PyPI et ont été téléchargés environ 30 ;000 fois en se basant sur les statistiques de téléchargement des packages Python du site pepy.tech.


Parmi les huit malwares, six d’entre eux possèdent trois charges utiles pour collecter les jetons d’authentification de comptes Discord à partir de Chrome, voler les mots de passe enregistrés par le navigateur Edge, voler les données de carte de crédit enregistrées par Chrome, ou encore collecter des informations telles que les adresses IP, le nom de l’ordinateur et le nom de l’utilisateur sur le système Windows infecté. Ces six paquets malveillants ont été conçus autour d’une même base de code nommée « ;noblesse ;». Les deux autres packages (nommés pytogora et pytagora2) contiennent des malwares qui essayent de se connecter à une adresse IP privée sur le port TCP 9009, puis d’exécuter du code Python lu à partir du socket.


Pour pouvoir passer inaperçus sur le référentiel PyPI, tous les paquets ci-dessus, qui sont des logiciels malveillants novices selon JFrog, utilisent une technique d’obscurcissement simple comme l’encodage de texte Python avec un encodeur simple (ex. Base64) et l’évaluation du texté décodé en tant que code, en utilisant eval.

Si, après avoir vérifié vos dépendances PyPI, vous avez découvert que noblesse (ou l’un de ses clones) a été installé localement, l’équipe de JFrog suggère de :

  • vérifier quels mots de passe ont été enregistrés dans Edge et modifier ces mots de passe compromis dans chaque site Web respectif (ainsi que tous les sites Web où ces mots de passe ont été réutilisés). La vérification peut être effectuée en ouvrant Edge et en accédant à edge://settings/passwords. La liste complète des mots de passe enregistrés (qui ont été potentiellement compromis) peut être consultée sous Mots de passe enregistrés ;;
  • vérifier quelles cartes de crédit ont été enregistrées dans Chrome et d’envisager l’annulation de ces cartes de crédit. La vérification peut être effectuée en ouvrant Chrome et en accédant à chrome://settings/payments. La liste complète des cartes de crédit enregistrées (qui ont été potentiellement compromises) peut être consultée sous Modes de paiement.


Avec seulement huit paquets malveillants assemblés par des « ;amateurs ;», les pirates ont pu atteindre des dizaines de milliers d’utilisateurs. Pour les chercheurs de JFrog, cela est dû en partie au fait que les développeurs font aveuglément confiance aux référentiels et installent des paquets à partir de ces sources, en supposant qu’ils sont sécurisés. Cela donne aux acteurs malveillants la possibilité d’utiliser les dépôts comme outils de diffusion de masse de logiciels malveillants, affirment les chercheurs. Par ailleurs, ces derniers font remarquer que le manque de modération et de contrôles de sécurité automatisés dans les référentiels de logiciels publics permettent même aux attaquants inexpérimentés de les utiliser comme plate-forme pour diffuser des logiciels malveillants, que ce soit par le biais de typosquattage, de confusion de dépendance ou de simples attaques d’ingénierie sociale. À l’avenir, l’équipe de JFrog déclare « ;qu’elle s’attend à voir davantage de logiciels malveillants “Frankenstein” assemblés à partir de différents outils d’attaque (avec des paramètres d’exfiltration modifiés) ;».

Des malwares et bien plus encore...

En plus de ces huit logiciels malveillants découverts sur la chaine d’approvisionnement de paquets open source PyPI, des chercheurs finlandais ont découvert des faits encore plus inquiétants. Après avoir analysé un instantané de presque tous les packages archivés dans PyPI, les chercheurs confient que près de la moitié des packages de PyPI présentent au moins un problème de sécurité.

Plus en détail, les chercheurs Jukka Ruohonen, Kalle Hjerppe, Kalle Rindell expliquent dans leur rapport que pour parvenir à ces conclusions, ils ont analysé PyPI et ont répertorié 224 ;651 packages au moment de l’analyse. Ils ont ensuite récupéré les packages avec le gestionnaire de paquets pip en utilisant les arguments de ligne de commande download --no-deps. Il faut préciser qu’étant donné la transition douloureuse en cours de Python 2 à Python 3, les packages qui n’étaient compatibles qu’avec Python 2.7 ont dû être exclus. Enfin, les paquets pour lesquels l’outil d’analyse statique Bandit a déclaré n’avoir pas scanné une seule ligne de code ou un seul fichier ont également été exclus. Après avoir fait le tri, les chercheurs se sont retrouvés au final avec 197 ;726 packages. Après avoir analysé ces archives, les chercheurs ont découvert 749 ;864 problèmes de sécurité dans environ 46 % des packages du référentiel.


Pour mieux s’organiser, les chercheurs ont regroupé l’ensemble des problèmes détectés en trois catégories. La majorité des problèmes détectés (442 ;373) sont de faible gravité. Il s’agit entre autres de problèmes d’injection de code ou de gestion des exceptions. Par contre, parmi les problèmes de sécurité détectés, 227 ;426 d’entre eux font référence à des problèmes de gravité modérée, tandis que 80 065 sont de gravité élevée. Toutefois, même si de nombreux problèmes de sécurité élevée ont été découverts, 88,8 % des packages sur PyPI ne présentent aucun de ces problèmes sévères. De même, 74,7 % de packages ne présentent pas de problème de sécurité modérée. À côté de ces chiffres, les chercheurs précisent que les bogues ne sont pas uniformément distribués. Par exemple, quelques paquets contiennent beaucoup plus de problèmes et cinq en l’occurrence ont plus d’un millier de problèmes.

Encore une fois, ce rapport vient mettre en avant les dangers qui peuvent se cacher sur les référentiels comme PyPl ou d’autres encore. Pour Asaf Karas, directeur technique de JFrog, « ;la découverte continue de packages malveillants dans des référentiels populaires comme PyPI est une tendance alarmante qui peut conduire à des attaques généralisées de la chaîne d’approvisionnement ;». Il ajoute « ;qu’il s’agit d’une menace systémique, et elle doit être activement combattue à plusieurs niveaux, à la fois par les responsables de la maintenance des référentiels de logiciels et par les développeurs ;».

Source : JFrog, Rapport des chercheurs finlandais

Et vous ?

Quel est votre avis sur les rapports de JFrog et des chercheurs finlandais ;? Inquiétants ou juste surfaits ;?

Comparé aux autres services d’hébergement de packages, pensez-vous que PyPI soit plus ou moins enclin à laisser passer du code malveillant ou des bogues ;?

Utilisez-vous PyPI ;? Allez-vous vous en éloigner avec ces problèmes de sécurité mis en avant ;?

Avez-vous des suggestions pour contourner ces problèmes de sécurité imputés à PyPI ;?

Voir aussi :

Des paquets malveillants portant des noms trompeurs ont été découverts sur la plateforme PyPI, ils pourraient avoir été utilisés dans des logiciels
Confusion de dépendance : un chercheur a piraté Apple, Microsoft, Netflix et des dizaines d’autres entreprises dans le cadre d’une nouvelle attaque qui ne nécessite aucune action de la victime
Node.js : eslint-scope, un paquet npm, a été infecté par un hacker pour lui permettre de voler des identifiants npm
Des hackers ont infecté plus de 700 packages utilisés par les développeurs d’un langage de programmation pour tenter de dérober des bitcoins

Une erreur dans cette actualité ? Signalez-nous-la !