Dependency Cooldowns propose une solution simple pour réduire les risques liés aux attaques par dépendances malveillantes dans les écosystèmes de gestion de paquets. L’idée centrale est d’imposer un délai minimal (cooldown) avant qu’une nouvelle version d’une dépendance ne soit installée, limitant ainsi l’exposition aux attaques rapides. Par exemple, un cooldown de trois jours aurait bloqué 80 à 90 % des attaques analysées, dont des compromissions comme LiteLLM ou axios, où les fenêtres d’exploitation étaient de quelques heures seulement.
Le site détaille les implémentations par écosystème, comme uv pour Python (avec des commandes comme uv pip install --exclude-newer '3 days' foo) ou npm (via des outils comme cooldowns.sh). Bien que certains gestionnaires comme pip ne supportent pas encore les durées relatives, des contournements existent. La méthode s’applique aussi aux dépendances transitives, renforçant la sécurité globale.
Enfin, l’article souligne l’efficacité des cooldowns, même réduits à un jour, et fournit des exemples de configuration pour divers outils (pnpm, Yarn, Cargo, etc.). Une approche pragmatique pour limiter les risques sans complexité majeure.
L'article explique le principe de l'exponential backoff, une technique utilisée pour améliorer la résilience des applications modernes en gérant les tentatives de reconnexion ou de réexécution d'opérations après un échec. Cet algorithme augmente progressivement le délai d'attente entre chaque tentative, réduisant ainsi la pression sur les systèmes en défaillance et augmentant les chances de succès lors de pannes temporaires. L'article décrit comment implémenter cette technique en PHP, en incluant des paramètres comme le jitter pour éviter les tentatives simultanées. Il souligne également l'importance de rendre les opérations idempotentes et de bien configurer les paramètres de délai. L'exponential backoff est largement utilisé dans divers frameworks et bibliothèques pour améliorer la fiabilité des applications.