Scanner les images Docker sur un registre Harbor
Harbor définit l’API REST Scanner Adapter HTTP API qui peut être implémentée par un scanneur de vulnérabilités. Le registre peut alors se connecter à un tel scanneur de vulnérabilités pour obtenir un rapport de vulnérabilités ou un fichier SBOM (Software Bill of Materials) de ses images Docker. Cela permet notamment d’afficher directement dans l’interface Harbor les vulnérabilités détectées sur chaque image et de définir une politique de sécurité de déploiement des images.
Cyberwatch implémente cette API et peut donc être utilisé pour scanner les images d’un registre Harbor ou générer le SBOM de ses images. Nous allons voir comment configurer et utiliser cette fonctionnalité.
Prérequis
Afin de pouvoir utiliser cette fonctionnalité, il est nécessaire d’avoir préalablement configuré un moteur d’exécution Docker. Cyberwatch propose un moteur de scan embarqué par défaut. Si toutefois vous souhaitez utiliser votre moteur d’exécution, la procédure est expliquée ici.
Configurer le scanneur Harbor
Pour permettre à votre registre Harbor de se connecter à Cyberwatch, il est nécessaire de configurer le scanneur Harbor :
- Cliquer sur Administration
- Cliquer sur Outils externes
- Cliquer sur l’onglet Scanneur de conteneurs
- Cliquer sur le bouton Ajouter
- Choisir la source et le moteur d’exécution Docker qui seront utilisés pour scanner les images Docker
- Enregistrer
Vous obtenez les données nécessaires pour ajouter Cyberwatch comme scanneur de vulnérabilités dans Harbor. Pensez à enregistrer ces données, elles ne seront plus accessibles par la suite.
Il est possible de créer plusieurs jeux d’identifiants et définir ainsi plusieurs scanneurs dans Harbor. Cela permet de configurer au niveau de chaque projet le scanneur à utiliser. On peut ainsi répartir les scans d’image Docker entre les nœuds dans une instance multi-nœuds ou ajouter de la concurrence sur un même nœud.
Associer un registre au scanneur Harbor dans le champ Identifiants
permet d’utiliser ses identifiants lors des requêtes d’analyse des images par Harbor, les images Docker créées pourront être scannées à nouveau depuis l’interface de Cyberwatch. Le comportement par défaut est d’utiliser les identifiants éphémères fournis par Harbor. À noter que ces identifiants expirent après l’analyse initiale.
Il est également possible de régler le délai entre deux requêtes de l’API Harbor. Ce temps correspond à l’intervalle entre deux requêtes de l’API lors de la création du rapport de vulnérabilités d’une image Docker.
Un temps trop court peut entraîner des problèmes de surcharge de l’API, un temps trop long va allonger inutilement le temps nécessaire pour scanner une image. La valeur par défaut est de 30 secondes.
Ajouter Cyberwatch comme scanneur de vulnérabilités
Vous pouvez maintenant ajouter Cyberwatch comme scanneur de vulnérabilités pour votre registre Harbor :
- Se connecter à votre registre Harbor avec un compte ayant des droits d’administrateur
- Dans Administration, cliquer sur
Services d'Analyse
- Cliquer sur le bouton
Nouveau scanneur
- Remplir les informations requises en utilisant les données générées à l’étape précédente
- Tester vos informations en cliquant sur le bouton
Tester la connexion
- Si tout est OK, cliquer sur le bouton
Ajouter
Cyberwatch est maintenant ajouté comme scanneur d’images et est prêt à l’emploi.
Pour des explications complémentaires, vous pouvez vous référer à la documentation officielle (en anglais).
Scanner une image Docker
Pour scanner une image Docker depuis votre interface Harbor :
- Se rendre dans le projet du registre où se trouve l’image
- Cliquer sur l’image
- Cocher, dans la colonne de gauche, les versions de cette image que vous souhaitez scanner
- Cliquer sur le bouton
Scan Vulnerabibilty
- Une fois l’analyse terminée, un rapport succinct apparaît dans la colonne Vulnérabilité
- Pour une version plus détaillée, cliquer sur la version analysée et descendre en bas de la page pour trouver le tableau des vulnérabilités
Pour plus de détails, se référer à la documentation de Harbor.
Lorsqu’un scan d’image est effectué ou un fichier SBOM est généré, si l’image n’existe pas déjà localement dans Cyberwatch, celle-ci est créée et peut être retrouvée dans la liste des images Docker ainsi que l’analyse complète effectuée par Cyberwatch.
Générer le SBOM d’une image Docker
Pour générer le SBOM d’une image Docker depuis votre interface Harbor :
- Se rendre dans le projet du registre où se trouve l’image
- Cliquer sur l’image
- Cocher, dans la colonne de gauche, les versions de cette image dont vous souhaitez obtenir le SBOM
- Cliquer sur le bouton
Generate SBOM
- Une fois le SBOM généré, un lien apparaît dans la colonne SBOM
- Cliquer sur le lien, et dans le bas de la page dans l’onglet SBOM, vous pouvez télécharger le fichier
Workflow pour un registre Harbor
Pour faciliter le suivi des images Docker d’un registre Harbor, nous vous suggérons le workflow suivant.
Dans l’interface Cyberwatch :
- Configurer le registre Harbor
- Créer une découverte registre Harbor Dans les paramètres, sélectionner l’option
Supprimer uniquement les actifs dissociés de toutes découvertes
ouSupprimer tous les actifs dissociés de cette découverte
pour le champSuppression des actifs dissociés
et une période de lancement adéquate au cas d’usage - Configurer le scanneur Harbor en associant le registre Harbor créé précédemment
Dans l’interface de Harbor :
- Ajouter Cyberwatch comme scanneur de vulnérabilités avec les données que vous venez de générer durant la configuration du scanneur Harbor
- Lancer un scan des images Docker présentes : dans
Administration > Services d'analyse > Vulnerability
, cliquer sur le boutonAnalyser maintenant
- Cocher l’option
Analyse automatique des images lors de l'envoi
dans l’ongletConfiguration
de chaque projet du registre - Il est également possible d’automatiser la génération des SBOM en cochant l’option
Générer automatiquement un SBOM au push
dans l’ongletConfiguration
de chaque projet du registre
Une fois ces étapes effectuées, les images Docker du registre ont été scannées et les futures nouvelles images le seront automatiquement. Et la découverte Registre Harbor permet de maintenir à jour les images Docker du registre dans Cyberwatch.
Pour aller plus loin
Harbor permet de :
- mettre en place une politique de sécurité en empêchant par exemple le déploiement d’images ayant des vulnérabilités dépassant une certaine criticité
- scanner toutes les images disponibles sur le registre
- planifier les scans
Ces différentes fonctionnalités sont détaillées dans la documentation de Harbor sur les scans de vulnérabilités.