Les applications modernes reposent sur de nombreux composants : image de base, système d’exploitation, paquets système, bibliothèques et dépendances applicatives. Une vulnérabilité peut donc se trouver dans un composant tiers même si le code développé en interne ne contient pas directement de faille.
Dans une démarche DevSecOps, l’objectif est d’intégrer les contrôles de sécurité le plus tôt possible dans le cycle de développement. Trivy répond à ce besoin en permettant d’analyser automatiquement une image, un projet ou une configuration avant son déploiement.
La problématique retenue pour ce projet est la suivante :
Comment vérifier automatiquement qu’une image Docker ne contient pas de vulnérabilités critiques avant son déploiement ?
Trivy est un scanner de sécurité open source maintenu par Aqua Security. Il permet d’identifier plusieurs catégories de problèmes de sécurité dans différents types de cibles.
Son fonctionnement repose principalement sur de l’analyse statique : Trivy inspecte les fichiers, les paquets et les métadonnées sans avoir besoin de démarrer l’application ou le conteneur.
Pour une image Docker, le principe est le suivant :
Image Docker
↓
Détection de l'OS et des paquets
↓
Identification des versions
↓
Comparaison avec les données de vulnérabilités
↓
Rapport
Les vulnérabilités détectées sont généralement référencées par des identifiants CVE (Common Vulnerabilities and Exposures).
Le rapport indique notamment :
Les niveaux principaux utilisés dans les rapports sont LOW, MEDIUM, HIGH et CRITICAL.