GitHub et PyPI introduisent des délais pour réduire les risques liés à la chaîne d’approvisionnement

GitHub et le Python Package Index (PyPI) ajoutent des mesures de protection basées sur le temps afin de limiter les dommages causés par les paquets malveillants nouvellement publiés ou modifiés. Ces c...

GitHub et le Python Package Index (PyPI) ajoutent des mesures de protection basées sur le temps afin de limiter les dommages causés par les paquets malveillants nouvellement publiés ou modifiés. Ces changements font suite à une série d’incidents touchant la chaîne d’approvisionnement de plusieurs écosystèmes open source, notamment des attaques impliquant des projets npm et PyPI.

Dependabot ajoute une période d’attente de trois jours

Le service de gestion des dépendances Dependabot de GitHub applique désormais par défaut un délai de 72 heures avant de proposer des mises à jour pour les paquets nouvellement publiés. Ce délai donne aux chercheurs en sécurité, aux systèmes d’analyse automatisés et aux mainteneurs davantage de temps pour identifier les versions suspectes avant qu’elles ne soient intégrées aux projets par le biais de workflows de mise à jour automatisés.

Les attaques récentes ont montré que des paquets malveillants peuvent être publiés et téléchargés rapidement, tandis que leur détection et leur suppression prennent souvent plus de temps. GitHub a décrit cette période de trois jours comme un compromis entre la réduction de l’exposition aux versions dangereuses et la possibilité pour les développeurs de recevoir des mises à jour importantes sans délai excessif. Les organisations peuvent modifier ce paramètre afin d’utiliser un délai plus court ou plus long, en fonction de leur tolérance au risque et de leurs processus de développement.

GitHub a également averti que cette fonctionnalité n’est pas destinée à traiter toutes les formes de compromission des dépendances. L’entreprise recommande de combiner ce délai avec des fichiers de verrouillage, des jetons d’accès aux autorisations limitées et la désactivation des scripts d’installation de paquets inutiles dans les environnements d’intégration continue.

PyPI restreint les modifications des versions plus anciennes

PyPI a mis en place un autre contrôle visant à empêcher les attaquants de falsifier des versions établies de paquets. Les mainteneurs ne peuvent plus téléverser de nouveaux fichiers vers une version une fois que 14 jours se sont écoulés depuis sa publication.

Cette politique vise à réduire le risque d’« empoisonnement d’une version », une attaque au cours de laquelle un individu ayant obtenu l’accès aux identifiants ou au workflow de publication d’un mainteneur ajoute un fichier malveillant à une version plus ancienne déjà approuvée par les utilisateurs. PyPI a indiqué que les téléversements légitimes effectués plus de deux semaines après la publication sont rares, ce qui permet à la restriction de contrer un vecteur d’attaque potentiel avec peu de perturbations.

PyPI a précisé n’avoir confirmé l’utilisation de cette technique dans aucune attaque précédente, présentant cette modification comme une mesure préventive. Ensemble, les contrôles de GitHub et de PyPI accordent davantage de temps pour l’examen et la détection, mais les développeurs devront toujours mettre en place des mesures de protection en profondeur, comme l’épinglage des dépendances, la sécurisation des identifiants de publication et une surveillance continue.