Scanner les vulnérabilités de conteneurs avec grype
Mise à jour :
En tant que spécialiste DevOps, je suis constamment à la recherche d’outils
innovants pour renforcer la sécurité des applications, en particulier dans
l’environnement des conteneurs qui devient de plus en plus omniprésent. Parmi
ces outils, Grype se distingue comme une solution robuste et efficace pour
l’analyse de vulnérabilités des images de conteneurs.
Grype offre une approche simplifiée, mais, puissante pour identifier et
gérer les vulnérabilités au sein des conteneurs. Avec l’augmentation des
menaces de sécurité et la complexité croissante des architectures de
microservices, l’utilisation d’un outil comme Grype n’est plus une option,
mais une nécessité pour assurer la sécurité des déploiements conteneurisés.
Pour vérifier que l’installation s’est faite correctement, tapez la commande
suivante :
Si tout est ok, vous devriez voir le numéro de version s’afficher.
Utilisation Grype
Grype peut scanner le contenu d’une image de conteneur ou d’un
répertoire à la recherche de vulnérabilités.
Il prend en charge les gestionnaires de package et les langages de
développement suivant :
Alpine (apk)
C (conan)
C++ (conan)
Dart (pubs)
Debian (dpkg)
Dotnet (deps.json)
Objective-C (cocoapods)
Go (go.mod, Go binaries)
Haskell (cabal, stack)
Java (jar, ear, war, par, sar)
JavaScript (npm, yarn)
Jenkins Plugins (jpi, hpi)
PHP (composer)
Python (wheel, egg, poetry, requirements.txt)
Red Hat (rpm)
Ruby (gem)
Rust (cargo.lock)
Swift (cocoapods)
Recherche de vulnérabilités avec grype
Maintenant, nous pouvons regarder ce que propose grype. Commençons par le
lancer sur une image de container :
On retrouve les mêmes que celles remontées par trivy. Donc plutôt rassurant.
Comme pour trivy il est possible de l’exécuter sur un répertoire. Par exemple
sur le même dossier que précédemment :
Grype prend en argument les sources suivantes :
Obtenir des informations sur les vulnérabilités
Grype possède une fonction explain qui permet d’approfondir la
compréhension des vulnérabilités identifiées lors des scans.
Lorsque vous exécutez la commande explain, Grype fournit une sortie détaillée,
qui comprend :
Origine de la Vulnérabilité : D’où vient la vulnérabilité et comment elle
a été introduite dans l’image.
Chemin de Dépendance : Montre comment le paquet vulnérable est lié à
d’autres composants de l’image.
Détails de la Vulnérabilité : Fournit des informations sur la nature de la
vulnérabilité, sa sévérité et, si disponible, des liens vers des sources
externes pour plus d’informations.
Recommandations de Correction : Des suggestions sur la manière de résoudre
ou de mitiger la vulnérabilité.
Exemple : attention à bien mettre -o json en sortie de l’analyse
Choix du format de sortie
Grype peut produire ces types de fichiers :
table: Un résumé en colonnes (par défaut).
cyclonedx: Un rapport XML conforme à la spécification CycloneDX 1.4 .
cyclonedx-json: Un rapport JSON conforme à la spécification CycloneDX 1.4 .
json: Utilisez-le pour obtenir autant d’informations que possible sur Grype !
template: Permet à l’utilisateur de spécifier le format de sortie.
Fixer le niveau pour produire une erreur
Vous pouvez faire en sorte que Grype se termine avec une erreur si des
vulnérabilités sont signalées au niveau ou au-dessus du niveau de gravité
spécifié. Cela s’avère pratique lorsque vous utilisez Grype dans un script
ou un pipeline CI. Pour ce faire, utilisez l’option suivante :
Configuration de Grype
Pour configurer grype, on peut utiliser un fichier de configuration. Voici
l’ensemble des paramètres que vous pouvez y mettre :
Lors de son lancement Grype vérifie la présence d’un fichier de configuration
correspond à ces chemins :
.grype.yaml
.grype/config.yaml
${HOME}/.grype.yaml
${HOME}/.config/grype/config.yaml
/etc/xdg/grype/config.yaml
Gestion de la DB
Il est utile de vérifier le statut de la base de données de Grype, surtout pour
confirmer que les mises à jour ont été correctement appliquées. La commande
suivante vous donne des informations sur la version actuelle de la base de
données et la date de la dernière mise à jour :
Grype vérifie régulièrement les mises à jour, mais vous pouvez exécuter
manuellement cette commande pour vous assurer que vous utilisez les données les
plus récentes.
Intégration Outils CI/CD
L’intégration de Grype dans votre pipeline CI/CD (Continuous
Integration/Continuous Deployment) est une étape importante pour automatiser la
détection des vulnérabilités dans vos images de conteneurs. Cette intégration
assure une évaluation continue et automatique des vulnérabilités, contribuant
ainsi à une meilleure sécurité des applications.
Si vous utilisez déjà Trivy, vous pouvez
l’intégrer en parralèle.
Conclusion
Grype se distingue par sa simplicité d’utilisation, sa capacité à s’intégrer
facilement dans les pipelines CI/CD et sa mise à jour régulière de la base de
données de vulnérabilités. Ces caractéristiques en font un outil indispensable
pour les consultants DevOps qui souhaitent assurer une surveillance proactive
des vulnérabilités.
En conclusion, je recommande fortement d’adopter Grype comme une composante clé
de votre arsenal DevOps. Son utilisation régulière et son intégration dans vos
processus de développement et de déploiement aideront à garantir que vos
applications restent sécurisées et à jour face aux menaces de sécurité
émergentes.