DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesSécurité DevOps - Débutant03 - Auditer les dépendances avec npm audit et pip audit

Détails

  • 20 minutes
  • Débutant

Objectifs

  • Utiliser npm audit pour identifier les vulnérabilités dans un projet Node.js
  • Utiliser pip audit pour les projets Python
  • Comprendre les niveaux de sévérité et décider quoi corriger
  • Appliquer les correctifs automatiques disponibles
Module Sécurité DevOps - Débutant

Exercice 03 : Auditer les dépendances avec npm audit et pip audit

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Lancer npm audit sur un projet Node.js et interpréter les résultats
  • ✅ Utiliser npm audit fix pour corriger les vulnérabilités automatiquement
  • ✅ Lancer pip audit sur un projet Python
  • ✅ Distinguer les vulnérabilités corrigeables des breaking changes
  • ✅ Comprendre pourquoi mettre à jour les dépendances régulièrement

Durée estimée : 20 minutes

Difficulté : ⭐☆☆☆☆ (Débutant)

Prérequis : Node.js (npm) OU Python (pip) installé


📖 Contexte

85 % des applications web utilisent au moins un package open-source vulnérable. Les attaquants exploitent des CVE (vulnérabilités publiques) dans les dépendances pour compromettre les applications. Les gestionnaires de paquets incluent des outils d'audit intégrés pour détecter ces problèmes.

Log4Shell (2021) est l'exemple le plus connu : une vulnérabilité CVSS 10/10 dans une bibliothèque Java utilisée par des millions d'applications. Elle a été corrigée en 24h, mais des milliers d'applications non mises à jour ont été compromises pendant des semaines.


📋 Énoncé

Auditez un projet avec des dépendances vulnérables intentionnelles et appliquez les correctifs.


🧭 Déroulement de l'exercice

Partie A : npm audit (Node.js)

Tâche 1 : Créer un projet avec des dépendances vulnérables

bash
mkdir demo-audit-node && cd demo-audit-node
npm init -y

Installez des versions anciennement vulnérables pour la démonstration :

bash
# Ces versions ont des CVE documentées (exercice pédagogique)
npm install express@4.17.1 lodash@4.17.4 axios@0.21.0

Note : Ces versions contiennent de vraies CVE historiques utilisées uniquement à des fins d'apprentissage.

Vérification : ls node_modules | head -5 liste les dépendances installées.


Tâche 2 : Lancer l'audit

bash
npm audit

Observez la sortie : chaque vulnérabilité affiche le nom du package, la sévérité (low/moderate/high/critical), la description et si un correctif est disponible.

bash
# Pour un rapport JSON exploitable
npm audit --json > audit-report.json
cat audit-report.json | python3 -c "import json,sys; data=json.load(sys.stdin); print(f'Total: {data[\"metadata\"][\"vulnerabilities\"]}')"

Indice : La sortie de npm audit affiche un résumé comme X vulnerabilities (Y moderate, Z high). La colonne "fix available" indique si npm audit fix peut corriger automatiquement.

Vérification : npm audit doit trouver des vulnérabilités dans les packages installés.


Tâche 3 : Appliquer les correctifs

bash
# Corriger les vulnérabilités sans breaking changes
npm audit fix

# Vérifier ce qui a changé
npm audit

# Si des vulnérabilités critiques restent (avec breaking changes potentiels)
npm audit fix --force  # ⚠️ À utiliser avec précaution - peut casser l'API

Indice : npm audit fix met à jour vers la version la plus récente compatible avec votre semver (ex: ^4.17.1 → ^4.18.x). --force peut monter vers une version majeure, ce qui peut briser votre code. Toujours tester après un --force.

Vérification : npm audit après le fix doit afficher moins (ou zéro) de vulnérabilités.


Partie B : pip audit (Python)

Tâche 4 : Installer pip-audit

bash
# pip-audit est l'outil officiel de la Python Packaging Authority (PyPA)
pip install pip-audit
# Ou avec pipx pour l'isolation
pipx install pip-audit

Vérification : pip-audit --version affiche la version.


Tâche 5 : Créer et auditer un projet Python

bash
mkdir demo-audit-python && cd demo-audit-python

# requirements.txt avec versions volontairement anciennes
cat > requirements.txt << 'EOF'
requests==2.20.0
flask==1.0.0
jinja2==2.10.0
EOF

# Installer dans un environnement virtuel
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Lancer l'audit
pip-audit

Indice : pip-audit compare vos dépendances installées avec la base OSV (Open Source Vulnerabilities) de Google. Il affiche le package, la version installée, la version corrigée et l'identifiant CVE.

Vérification : pip-audit doit trouver des CVE dans les packages old-school installés.


Tâche 6 : Corriger et générer un rapport

bash
# Générer un rapport JSON
pip-audit --format json --output audit-python.json

# Voir les correctifs disponibles
pip-audit --fix  # ⚠️ Modifie l'environnement directement

# Pour voir sans appliquer (dry-run)
pip-audit --fix --dry-run

Vérification : pip-audit --fix --dry-run liste les mises à jour qui seraient appliquées.


✅ Vérification du résultat

  • npm audit trouve des vulnérabilités dans le projet Node.js
  • npm audit fix réduit le nombre de vulnérabilités
  • pip-audit s'installe et scanne le projet Python
  • Les deux outils produisent un rapport JSON

💡 À retenir

OutilÉcosystèmeCommande d'auditCommande de fix
npm auditNode.js / npmnpm auditnpm audit fix
pip-auditPython / pippip-auditpip-audit --fix
cargo auditRust / Cargocargo auditcargo update
trivy fsToustrivy fs .Manuel

L'audit des dépendances devrait être lancé dans chaque pipeline CI/CD. Si une CVE critique est trouvée, le build est bloqué jusqu'à correction.


✨ Solution Complète

bash
# Node.js
mkdir demo-audit && cd demo-audit
npm init -y && npm install express@4.17.1 lodash@4.17.4
npm audit
npm audit fix
npm audit  # Vérifier

# Python
pip install pip-audit
pip-audit  # Sur l'environnement actuel
pip-audit --format json --output rapport.json
Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Partie A : npm audit (Node.js)
  • Partie B : pip audit (Python)
  • ✅ Vérification du résultat
  • 💡 À retenir
  • ✨ Solution Complète