Analyser les vulnérabilités de vos conteneurs Docker avec Grype
On est en plein hiver et tous les petits vieux normalement constitués sont maintenant vaccinés contre la grippe. C’est cool, Raoult Raoul !
Mais avez-vous pensé à la santé de vos images Docker ? Et bien oui, parce qu’à force de télécharger tout un tas de conteneurs anciens et pas maintenus, vous avez sans le savoir des vulnérabilités dans vos conteneurs.
Mais alors, comment savoir ? Et bien grâce à Grype qui n’est pas un virus, mais un incroyable scanner de vulnérabilités qui peut analyser les images de conteneurs Docker, OCI et Singularity et les systèmes de fichiers.
Cet outil est ainsi capable de débusquer des vulns sur les systèmes d’exploitation containérisés tels que Alpine, Amazon Linux, BusyBox, CentOS, Debian, Ubuntu, mais également tout ce qui est vulnérabilités relatives à des langages de dev tels que Ruby, Java, JavaScript, Python, Dotnet, Golang, sans oublier PHP !
Pour l’installer, vous pouvez récupérer le binaire sur Github ou lancer la commande Curl suivante :
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
Si vous êtes sous Mac, en plus d’être un beau gosse, vous pouvez aussi l’installer avec Brew :
brew tap anchore/grype brew install grype
Ensuite, pour le lancer, rien de plus simple, vous appelez la commande, suivi du nom de l’image Docker telle qu’on la trouve sur le hub.docker.com par exemple. Voici un exemple de scan avec cette image de l’éditeur Balena :
./grype <strong>balena/open-balena-vpn</strong>
Et pour ne voir que les vulnérabilité existantes pour lesquelles il existe un fix, vous pouvez également ajouter le paramètre suivant :
./grype <strong>balena/open-balena-vpn</strong> --only-fixed
Par défaut Grype scanne uniquement les vulnbérabilités visibles du conteneur, mais si vous voulez faire un truc plus en profondeur et scanner toutes les couches de ce même conteneur, ajoutez le paramètre suivant :
./grype <strong>balena/open-balena-vpn</strong> --scope all-layers
Au niveau des exports, vous pouvez sortir tout ça sous la forme d’un tableau dans le terminal, ou d’un rapport JSON ou XML pour ensuite l’interroger avec des outils comme jq.
L’utilisation de Grype vous permet également un niveau élevé de personnalisation. Vous pouvez ainsi définir la portée de la recherche avec des expressions permettant d’inclure ou exclure certains fichiers ou répertoires.
Un autre atout majeur de Grype est sa capacité à intégrer des sources de données externes pour une meilleure correspondance des vulnérabilités. Ainsi, il peut analyser les données provenant de bases telles que Alpine Linux SecDB ou Debian Linux CVE Tracker pour vous fournir des informations encore plus précises sur les failles potentielles que votre image pourrait présenter.
En parlant d’intégration, si vous travaillez avec GitHub et utilisez les Actions GitHub, Grype s’intègre parfaitement pour exécuter des analyses de vulnérabilités lors de vos workflows CI, assurant ainsi la sécurité de votre code et de vos conteneurs à chaque étape du processus.
Bref, dans l’ensemble, Grype est un outil essentiel pour tous ceux qui souhaitent garantir la sécurité et l’intégrité de leurs images Docker et pas que. Que ce soit pour identifier les vulnérabilités ou tirer parti des fonctionnalités avancées telles que les sources externes et l’intégration des actions GitHub, Grype est un allié de taille dans la lutte continuelle contre les failles potentielles qui peuvent compromettre votre infrastructure.
Que faire après le bac quand on est passionné de cybersécurité ?
Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).