GitHub et PyPI ajoutent de nouveaux contrôles pour réduire les risques liés à la chaîne d’approvisionnement des logiciels
GitHub et le Python Package Index (PyPI) mettent en place des mesures destinées à limiter deux risques liés à la chaîne d’approvisionnement des logiciels : la distribution rapide de nouvelles versions...
GitHub et le Python Package Index (PyPI) mettent en place des mesures destinées à limiter deux risques liés à la chaîne d’approvisionnement des logiciels : la distribution rapide de nouvelles versions malveillantes et la modification ultérieure de versions restées stables pendant des mois ou des années.
La modification de GitHub ajoute par défaut un délai de trois jours aux pull requests Dependabot pour les mises à niveau courantes des dépendances. Dependabot attendra au moins 72 heures après la mise à disposition d’une nouvelle version avant de proposer la mise à jour, laissant ainsi davantage de temps aux mainteneurs, aux chercheurs en sécurité et aux systèmes d’analyse automatisés pour détecter un code suspect ou faire retirer un paquet compromis.
Le délai d’attente s’applique aux mises à jour de version qui ne sont pas liées à la sécurité. Les organisations peuvent ajuster ce comportement via le fichier de configuration dependabot.yml, tandis que les mises à jour de sécurité ne sont pas soumises au même délai par défaut. GitHub a indiqué que cette période de trois jours visait à trouver un équilibre entre l’exposition aux paquets malveillants récemment publiés et la nécessité de maintenir les dépendances raisonnablement à jour.
PyPI limite les modifications apportées aux versions plus anciennes
PyPI adopte une autre mesure de protection en limitant l’envoi de nouveaux fichiers aux versions publiées depuis plus de 14 jours. Cette règle vise à empêcher des attaquants qui auraient obtenu les identifiants de publication d’un projet ou compromis son processus de mise à disposition d’ajouter un fichier wheel malveillant ou un autre artefact à une version établie.
La restriction devrait entrer en vigueur après la standardisation de l’API Upload 2.0 et des mécanismes de prévisualisation progressive dans le cadre de la PEP 694. PyPI a indiqué que l’impact devrait rester limité, car relativement peu de projets continuent d’ajouter des fichiers spécifiques à une plateforme à des versions plus anciennes. Dans une analyse des 15 000 paquets les plus téléchargés, seuls 56 avaient publié un fichier wheel compatible avec Python 3.14 plus de deux semaines après la mise à disposition initiale de la version concernée.
Au-delà de la protection des utilisateurs, PyPI a déclaré que cette règle devrait simplifier la réponse aux incidents. Si une version plus ancienne ne peut plus recevoir de nouveaux fichiers, les enquêteurs peuvent plus facilement distinguer les artefacts légitimes des fichiers ajoutés lors d’une compromission.
Ensemble, ces politiques ciblent différents moments du cycle de vie des dépendances : GitHub ralentit l’adoption initiale de versions non fiables, tandis que PyPI réduit la possibilité de modifier des versions que les utilisateurs considèrent déjà comme fiables. Aucun de ces contrôles n’élimine les attaques contre la chaîne d’approvisionnement, mais tous deux offrent davantage de temps et de visibilité pour détecter les modifications malveillantes avant qu’elles ne se propagent largement.
