Aller au contenu principal

SCA

Notions théoriques

Un outil SCA (Software Composition Analysis), en français "outil d’analyse de dépendances", est un logiciel qui examine les bibliothèques utilisées dans une application pour détecter les vulnérabilités connues de ces composants, référencées par des CVE.

info

L'outil SCA scanne automatiquement les composants de votre application pour identifier les CVE associées, vous aidant à maintenir une sécurité robuste sans avoir besoin de surveiller manuellement chaque composant.

Exemples simples

Pour comprendre le fonctionnement d'un outil d'analyse de dépendances (SCA), nous allons prendre 2 exemples simples :

  • npm
  • Composer

Utilisation de npm pour la gestion des dépendances d'une application Javascript

Prenons un projet simple en Node.js qui utilise la bibliothèque "express".

  • Vous avez entendu dire qu'une faille a été découverte récemment.
  • Avec un outil SCA, vous lancez une analyse et découvrez que la version de "express" que vous utilisez est affectée par un CVE.
  • L'outil vous fournit des détails sur la vulnérabilité et des recommandations pour la corriger, comme la mise à jour vers une version plus récente de la bibliothèque.

npm audit est un outil SCA qui vous permet d'analyser un projet en Node.js et de détecter les vulnérabilités.

Utilisation de Composer pour la gestion des dépendances d'une application PHP

Dans cette séance, nous allons explorer le rôle de Composer, le gestionnaire de dépendances pour PHP.

Composer est l'outil prédilection pour gérer les bibliothèques PHP sur lesquelles se base votre projet. Il vous aide à installer, mettre à jour et gérer ces bibliothèques et leurs dépendances. Lorsque vous utilisez Composer, il crée :

  • un fichier composer.json qui répertorie les packages requis
  • et un fichier composer.lock qui verrouille ces dépendances à des versions spécifiques, assurant ainsi la cohérence et la stabilité de votre projet.

composer audit est un outil SCA qui vous permet d'analyser un projet en PHP et de détecter les vulnérabilités.

astuce

Utiliser la commande composer show --outdated permet de lister les dépendances qui ont des mises à jour disponibles.

Outils utilisés

Voici 2 outils professionnels utilisés dans l'industrie logicielle pour identifier les vulnérabilités dans les dépendances logicielles :

  • OWASP Dependency-Check : Un outil sécurité logicielle gratuit et open-source qui aide à détecter les dépendances publiques avec des vulnérabilités connues.

  • Fortify Static Code Analyzer (SCA) : Proposé par Micro Focus, cet outil offre une analyse automatisée du code source pour identifier les vulnérabilités de sécurité dans le code avant que l'application ne soit déployée.

attention

Il est important de noter que l'utilisation régulière et intégrée de ces outils dans le cycle de développement logiciel peut grandement contribuer à maintenir la sécurité des applications.

astuce

N'oubliez pas, la sécurité est un processus continu.

Test de mémorisation/compréhension


Quel est le principal objectif des outils d'analyse de dépendances (SCA) ?


Que signifie l'acronyme CVE dans le contexte de la sécurité logicielle ?


Quel fichier Composer répertorie les packages requis pour un projet PHP ?


Quelle est la fonction de la commande `npm audit` ?


Quelle commande permet de mettre à jour une dépendance spécifique avec Composer ?


Quelle affirmation décrit le mieux le fichier `composer.lock` ?


Dans quel fichier d'un projet Node.js les dépendances sont-elles déclarées ?


Quel est l'objectif principal d'un outil SCA ?


Qu'est-ce qu'une dépendance dans un projet logiciel ?


Que signifie CVE ?


Pourquoi est-il important de mettre à jour les composants logiciels ?


Un outil SCA peut-il remplacer complètement la veille de sécurité manuelle ?


Dans un projet PHP, quel fichier `Composer` contient la liste des packages requis pour votre projet ?


Dans un projet PHP, que fait la commande `composer update` ?


Pourquoi est-il important de commiter le fichier `composer.lock` dans votre système de contrôle de version ?


Quelle commande utiliseriez-vous pour ajouter une nouvelle bibliothèque à votre projet PHP avec `Composer` ?



TP pour réfléchir et résoudre des problèmes

Objectif : Utiliser un outil SCA pour analyser un projet que vous avez réalisé en début de 1ère année et identifier les vulnérabilités potentielles.

Instructions :

  1. Installez OWASP Dependency-Check.
info

OWASP Dependency-Check nécessite Java.

Si Java n'est pas installé dans votre ordinateur, il suffit de :

  • Sur le site https://owasp.org/www-project-dependency-check/, cliquez sur Command Line pour télécharger le fichier dependency-check-x.y.z-release.zip

  • Dézippez le fichier dependency-check-x.y.z-release.zip

  • Ouvrez une Invite de commmandes dans le dossier dependency-check-x.y.z-release\dependency-check\bin\

  1. Exécutez l'outil SCA pour analyser les dépendances de votre projet.

Exemple :

dependency-check.bat -s C:\Users\bouquet\Documents\DEV\php\Atedi
  1. Examinez le rapport généré pour identifier toute vulnérabilité connue.