0Pricing
Cyber Security Academy · Leçon

Analyse de la composition logicielle (SCA)

Analysez les dépendances à la recherche de CVE connues avec OWASP Dependency-Check, Snyk ou GitHub Dependabot.

Analyse de la composition logicielle (SCA) est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu’est-ce que SCA ?

Analyse de la composition logicielle (SCA) identifie les dépendances à code source ouvert de votre projet et les compare aux bases de données de vulnérabilités (NVD, CVE, avis de sécurité de GitHub). Elle signale également les problèmes de conformité des licences.

Pourquoi les dépendances tierces présentent un risque

Les applications modernes utilisent des centaines de bibliothèques à code source ouvert. Une seule bibliothèque vulnérable peut exposer toute l’application. La vulnérabilité Log4Shell de 2021 (CVE-2021-44228) a touché des millions d’applications Java à cause d’une seule bibliothèque de journalisation largement utilisée.

Outils SCA

Outils SCA couramment utilisés :

# npm audit (Node.js):
npm audit
npm audit fix

# pip-audit (Python):
pip-audit

# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./

# Snyk:
snyk test
snyk monitor

Dependabot et Renovate

Outils automatisés de mise à jour des dépendances :

  • Dependabot (GitHub) — ouvre automatiquement des PR pour mettre à jour les dépendances vulnérables
  • Renovate — plus configurable et compatible avec davantage de registres

Activez-les dans chaque dépôt : ils réduisent la charge manuelle liée au suivi des mises à jour des dépendances.

Comprendre la gravité des CVE

Toute vulnérabilité présente dans une dépendance n’est pas forcément exploitable dans votre contexte. Évaluez les points suivants :

  • Le chemin de code vulnérable est-il accessible dans votre utilisation ?
  • Votre application expose-t-elle cette fonctionnalité ?
  • Un WAF ou un autre contrôle permet-il d’atténuer le risque ?

Le score CVSS n’est qu’un point de départ : le contexte détermine le risque réel.

Dépendances transitives

Les dépendances directes ont leurs propres dépendances (transitives). Une vulnérabilité dans une bibliothèque dont vous n’avez jamais entendu parler peut malgré tout vous affecter. Les outils SCA cartographient l’arbre complet des dépendances. Exécutez npm ls ou pip show -r requirements.txt pour examiner cet arbre.

npm ls --all | grep "vulnerable-pkg"
pip show requests | grep Requires

Nomenclature logicielle (SBOM)

Un SBOM est un inventaire officiel de tous les composants d’un produit logiciel. Le décret exécutif 14028 des US impose des SBOM pour les logiciels vendus au gouvernement des US. Formats : SPDX, CycloneDX.

# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.json

Conformité des licences

SCA vérifie également les licences. Les dépendances sous licence GPL dans des logiciels commerciaux peuvent vous obliger à publier votre code sous une licence libre. LGPL, MIT et Apache 2.0 sont généralement permissives. Les équipes juridiques doivent connaître les licences des dépendances — SCA fournit automatiquement cette visibilité.

Attaques contre la chaîne d’approvisionnement

Les attaquants injectent du code malveillant dans des paquets à code source ouvert populaires :

  • Typosquattage : reqeusts au lieu de requests
  • Comptes de mainteneurs compromis, à la manière de SolarWinds
  • Confusion de dépendances : noms de paquets privés divulgués dans un registre public

La SCA, associée à une vérification de l’intégrité (sommes de contrôle, fichiers de verrouillage), réduit ce risque.

Fichiers de verrouillage

Les fichiers de verrouillage (package-lock.json, Pipfile.lock) figent les versions exactes et vérifient les sommes de contrôle. Validez les fichiers de verrouillage dans le système de gestion de versions. N’utilisez jamais npm install --legacy-peer-deps pour ignorer les vérifications des fichiers de verrouillage dans les compilations de production.

SCA dans la chaîne d’intégration et de livraison continues

Intégrez SCA comme étape obligatoire de l’intégration continue :

# GitHub Actions example:
- name: Run npm audit
  run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter posture

Contrôle rapide : SCA

Quel est l’objectif principal de l’analyse de la composition logicielle (SCA) ?

Récapitulatif de la leçon

SCA analyse les dépendances du projet à la recherche de CVE connues, de problèmes de licence et de risques liés à la chaîne d’approvisionnement. Elle est essentielle en raison des dépendances transitives : une vulnérabilité dans une bibliothèque dont dépend une autre bibliothèque vous affecte également. Activez Dependabot ou Renovate pour automatiser les mises à jour. Générez des SBOM (SPDX/CycloneDX) pour assurer la visibilité sur la chaîne d’approvisionnement. Les fichiers de verrouillage figent les versions et vérifient les sommes de contrôle. Intégrez SCA comme étape de contrôle de l’intégration continue, avec des seuils de gravité.

Questions Fréquemment Posées

La leçon « Analyse de la composition logicielle (SCA) » est-elle gratuite ?

Oui — le texte complet de « Analyse de la composition logicielle (SCA) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Analyse de la composition logicielle (SCA) » ?

Analysez les dépendances à la recherche de CVE connues avec OWASP Dependency-Check, Snyk ou GitHub Dependabot. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?

Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Analyse de la composition logicielle (SCA) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?

Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. SAST et DAST dans les pipelines CI/CD
  2. Analyse de la composition logicielle (SCA)
  3. Analyse des secrets et identifiants codés en dur
  4. Référents sécurité et modélisation des menaces
← Retour à Cyber Security Academy