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.
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.
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.
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.
N'oubliez pas, la sécurité est un processus continu.
Test de mémorisation/compréhension
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 :
- Installez
OWASP Dependency-Check
.
OWASP Dependency-Check
nécessite Java.
Si Java n'est pas installé dans votre ordinateur, il suffit de :
-
télécharger le programme d'installation sur le site https://www.java.com/fr/download/manual.jsp
Choisir la version 64 bits.
-
installer le JRE
-
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\
- 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
- Examinez le rapport généré pour identifier toute vulnérabilité connue.