Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Retire.js

devsecops

Définition

Retire.js est un outil open source spécialisé dans la détection de bibliothèques JavaScript obsolètes ou présentant des vulnérabilités de sécurité connues, intégré sous forme d'extension de navigateur, d'outil en ligne de commande, et de plugin pour les outils de build et pipelines CI/CD. Conçu par Erlend Oftedal en 2013, il répond à une problématique spécifique de l'écosystème frontend : l'utilisation de versions anciennes de bibliothèques populaires (jQuery, Angular, Bootstrap, Lodash) qui présentent des failles de sécurité documentées. Retire.js maintient une base de données (repo-checker.retirejs.github.io) des vulnérabilités connues pour les bibliothèques JavaScript côté client et Node.js, avec pour chaque entrée : la bibliothèque concernée, les versions vulnérables, les CVEs associées, la sévérité, et les informations de remédiation. Cette base est mise à jour régulièrement par la communauté et synchronisée avec les CVEs publiées. En tant qu'outil CLI (retire --path ./dist), Retire.js scanne les fichiers JavaScript d'un projet (min ou source) et rapporte les bibliothèques identifiées par leur pattern de code ou leur commentaire d'entête. Cette identification peut fonctionner même sur des fichiers minifiés car de nombreuses bibliothèques incluent des commentaires avec leur version dans les builds de production. L'intégration de Retire.js dans les workflows DevSecOps se fait naturellement en complément de npm audit (qui couvre les dépendances Node.js déclarées dans package.json) : Retire.js couvre les bibliothèques frontend chargées directement via CDN ou copiées dans le projet, que npm audit ne peut pas détecter. Cette complémentarité est particulièrement précieuse pour les projets web qui utilisent des bibliothèques servies depuis des CDN ou copiées localement. Des plugins Retire.js existent pour Grunt, Gulp, Webpack, et Maven, facilitant son intégration dans les workflows de build existants. Grunt-retire et webpack-retirejs sont les plugins les plus utilisés.

Base de données et détection de bibliothèques vulnérables

Base de données et détection

La base de données Retire.js couvre des centaines de bibliothèques JavaScript populaires avec leurs versions vulnérables et les CVEs associées. La détection se fait par analyse du contenu des fichiers JS (commentaires de version, patterns de code spécifiques, hashes SHA), permettant d'identifier des bibliothèques même minifiées ou renommées. La base est mise à jour plusieurs fois par semaine et synchronisable via --updateretiredb.

CLI et intégration dans les pipelines CI

En mode CLI, retire --path ./src --outputformat json génère un rapport JSON des bibliothèques vulnérables. L'intégration dans les pipelines CI (GitHub Actions, Jenkins) permet de valider que les assets frontend ne contiennent pas de bibliothèques vulnérables avant déploiement. Le code de retour non-zéro en cas de vulnérabilité permet de bloquer le build ou d'alerter l'équipe selon la sévérité configurée.

Complémentarité avec npm audit

npm audit couvre les dépendances déclarées dans package.json et leur arbre de dépendances Node.js côté serveur. Retire.js complète cette couverture en scannant les bibliothèques JavaScript intégrées dans les assets frontend : CDN copies, bundles webpack, fichiers vendor. Cette double couverture est essentielle pour les applications qui intègrent des bibliothèques tierces copiées localement sans passer par npm.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis