Comment utiliser Docker Scan en local

Docker nov. 15, 2020

Docker et Snyk ont récemment conclu un partenariat pour fournir une analyse des vulnérabilités des images Docker ce qui permet de mieux gérer la sécurité des containers que vous mettez à disposition (aussi bien sur le DockerHub que sur une registry privée). Cette feature a également été intégrée dans les clients Docker Desktop. Avant cela il n'existait pas de moyen simple et rapide de fournir une analyse des vulnérabilités, c'était possible certes, mais de maniÚre plus ou moins complexe. Cette feature est aussi intégrée sur DockerHub et de maniÚre automatique (idéal quand vous avez les builds automatiques aussi) mais uniquement disponible sur l'offre payante :

Aperçu de mes images mis à disposition sur DockerHub
Les offres payantes du DockerHub

Docker a donc inclus une nouvelle commande à partir de la version 2.3.6.0 (on parle de la version du Docker Desktop) appelée "docker scan".

Cette commande va permettre de scanner vos images locales par rapport au moteur de sécurité Snyk, vous offrant ainsi une visibilité de sécurité dans vos fichiers Docker et vos images en local. Le moteur Snyk analyse les fichiers Docker et vos images pour des vulnérabilités et expositions courantes (CVE) et fournit des recommandations pour les remédiations.

Lancer un scan manuellement depuis la CLI est tout aussi simple qu'un build :

La liste des options disponibles

Par exemple voici le résultat d'un scan de l'image Redis (redis:latest) :

RĂ©sultat d'un scan de l'image redis:latest

Ou bien de mon image kube-rclone (djerfy/kube-rclone:1.53.2) :

RĂ©sultat d'un scan de l'image djerfy/kube-rclone:1.53.2

Lorsque vous incluez le Dockerfile associé à l'image, vous obtenez des résultats encore plus détaillés, à savoir quelle couche exacte du Dockerfile est responsable de quelles vulnérabilités. Dans cet exemple j'ai pris mon image "djerfy/imapsync" qui est basée sur un Ubuntu 19.10 avec plusieurs dépendances en Perl :

Résultat du scan de l'image djerfy/imapsync:latest sans spécifier le Dockerfile
Résultat du scan de l'image djerfy/imapsync:latest en spécifiant le Dockerfile

Il est Ă©galement possible d'avoir une sortie au format JSON qui peut ĂȘtre utile Ă  des intĂ©grations (webhook par exemple) ou sous forme d'arborescence de dĂ©pendances qui est utile a mieux comprendre la structure de l'image.

Pour conclure, l'analyse vous aide à éviter une potentielle catastrophe en production, ce qui vous permettra d'économiser du temps et de l'argent. Rassurez-vous sur le fait qu'il est tout à fait possible d'utiliser le scan en local gratuitement. L'offre payante est uniquement nécessaire pour l'inclure de maniÚre automatique lors de vos pushs, rassurant ainsi les personnes qui utilisent vos images. DÚs à présent je vous recommande de rajouter une tùche dans votre backlog afin d'intégrer cette logique de sécurité (pour au minimum avoir connaissance des risques dans votre image).

Ok? Now let's go!

Mots clés

DJΞRFY đŸŒ±

Engineer UNIX/Linux System & DevOps. I like #Apple, #Linux, #Docker, #Python, #Hashicorp tools, #Hacking, #Pentesting, #API, #GitLab CI/CD !

Super ! Vous vous ĂȘtes inscrit avec succĂšs.
Super ! Effectuez le paiement pour obtenir l'accĂšs complet.
Bon retour parmi nous ! Vous vous ĂȘtes connectĂ© avec succĂšs.
Parfait ! Votre compte est entiÚrement activé, vous avez désormais accÚs à tout le contenu.