Introduction
Les cooldowns de dépendances sont devenus une pratique courante pour lutter contre les attaques de chaîne d'approvisionnement. Cependant, cette approche présente des limites et des risques importants.
Contexte Technique
Les cooldowns de dépendances fonctionnent en attendant un certain nombre de jours après la publication d'une nouvelle version d'un package avant de l'adopter. Cela permet de laisser le temps aux autres utilisateurs de découvrir les éventuelles failles de sécurité et de les signaler. Mais cette approche repose sur le principe de free-riding, où les utilisateurs qui n'ont pas configuré de cooldown servent de cobayes involontaires pour les nouveaux packages.
Les cooldowns de dépendances nécessitent également une configuration complexe et peuvent être facilement contournés. Par exemple, une simple installation de pip en dehors de la configuration du projet peut rendre le cooldown inopérant.
Analyse et Implications
Les cooldowns de dépendances présentent des risques importants pour la sécurité. Ils ne résolvent pas le problème de fond, qui est la publication et la distribution de packages. Les attaques de chaîne d'approvisionnement peuvent toujours se produire, même avec des cooldowns de dépendances.
Une alternative plus efficace est l'utilisation de files d'attente de publication (upload queues) sur les serveurs de dépendances centraux. Cela permet de faire attendre les nouveaux packages pendant un certain temps avant de les distribuer, ce qui permet de les tester et de les vérifier en interne.
Perspective
Les files d'attente de publication offrent de nombreux avantages, notamment la résolution du problème de free-riding et la réduction des risques de sécurité. Elles permettent également de donner un préavis aux utilisateurs et aux mainteneurs de la publication de nouveaux packages, ce qui peut aider à prévenir les attaques de chaîne d'approvisionnement.
Il est important de noter que les attaques de chaîne d'approvisionnement sont particulièrement critiques dans le contexte de l'IA et des modèles de langage. Les markdown sont maintenant des formats de fichiers exécutables, ce qui signifie que les attaques de chaîne d'approvisionnement peuvent avoir des conséquences graves.