Découvertes Docker
Les découvertes Docker permettent de lister un ensemble d’images Docker à partir d’un registre ou encore d’un déploiement existant. Les images Docker découvertes peuvent ensuite être ajoutées par une action groupée à Cyberwatch afin d’être scannées.
Kubernetes
Prérequis
Les découvertes Kubernetes requièrent :
- Un point d’entrée vers l’API Kubernetes ;
- Un mode d’authentification : Jeton d’authentification ou Certificat client ;
- Des identifiants pouvant accéder à la ressource Pods via le verbe list ;
- Des identifiants pouvant accéder aux ressources namespaces/status et Pods/status via les verbes list et get afin d’avoir accès à l’état des namespaces.
Si vous disposez d’un cluster Kubernetes, il est possible de le scanner avec Cyberwatch pour lister toutes les images Docker qui sont déployées dessus.
Les découvertes Kubernetes requièrent un jeu d’identifiants Kubernetes, que vous pouvez créer depuis le menu Identifiants enregistrés. Les informations de connexions essentielles sont (1) le point d’entrée vers l’API Kubernetes, par exemple https://ip-du-cluster:6443
, (2) le mode d’authentification, qui sera par Jeton d’authentification (typiquement un JWT) ou par Certificat client, et (3) les identifiants de connexion requis par le mode d’authentification choisi.
Le point d’entrée vers l’API Kubernetes et le Jeton d’authentification peuvent facilement être extraits d’un YAML de configuration Kubernetes pour un compte de service en cherchant les clés server:
et token:
.
Vous pouvez générer un Certificat client en suivant la documentation officielle.
Une fois le jeu d’identifiants prêt, vous pourrez créer la découverte Kubernetes depuis le menu Découvertes, en cliquant sur le bouton Ajouter puis sur Kubernetes dans la partie Images Docker.
Il est possible d’ajuster le périmètre d’une découverte Kubernetes de différentes façons :
- Lister les images définies dans la configuration des pods (les images sont alors référencées par tag) ;
- Lister les images en cours d’exécution sur le cluster (les images sont alors référencées par digest) ;
- Lister les namespaces (les images ne seront alors pas référencées).
Ces périmètres sont également disponibles pour les découvertes AKS et EKS.
AWS EKS
Prérequis
Les découvertes AWS EKS requièrent :
- Un rôle IAM avec les permissions suivantes :
Si vous disposez d’un ou plusieurs clusters Amazon Elastic Kubernetes Service, il est possible de les scanner avec Cyberwatch pour lister toutes les images Docker qui sont déployées dessus.
Une fois le jeu d’identifiants créé depuis le menu Identifiants enregistrés prêt, vous pourrez créer la découverte Amazon EKS depuis le menu Découvertes, en cliquant sur le bouton Ajouter puis sur Amazon EKS dans la partie Images Docker.
Service Azure Kubernetes (AKS)
Prérequis
Les découvertes AKS requièrent :
- Un jeu d’identifiants Microsoft Azure avec accès en lecture aux routes Managed Clusters et aux clusters à scanner ;
- Les droits Lecteur RBAC Azure Kubernetes Service et Rôle utilisateur de cluster du service Azure Kubernetes.
Si vous disposez d’un ou plusieurs clusters Service Azure Kubernetes (AKS), il est possible de les scanner avec Cyberwatch pour lister toutes les images Docker qui sont déployées dessus.
L’identifiant peut ensuite être créé depuis le menu Identifiants enregistrés, et est documenté à ce lien. Une fois le jeu d’identifiants prêt, vous pourrez créer la découverte AKS depuis le menu Découvertes, en cliquant sur le bouton Ajouter puis sur Service Azure Kubernetes (AKS) dans la partie Images Docker. Vous pouvez retrouver les informations relatives à la création de la découverte ici.
Registres Docker
Prérequis
Les découvertes Docker requièrent :
- Un compte de service ayant la permission d’énumérer les artéfacts du registre.
Si vous disposez d’un registre Docker privé, ainsi que d’un compte de service ayant la permission d’énumérer son catalogue d’images, vous pouvez créer une découverte d’actifs dans Cyberwatch pour lister automatiquement les objets présents. Cependant, seules les images Docker pourront être scannées par Cyberwatch.
Afin d’utiliser les découvertes d’images Docker, vous devez d’abord enregistrer votre registre Docker depuis le menu Identifiants enregistrés. Vous pourrez ensuite lancer la découverte depuis le menu Découvertes, en cliquant sur le bouton Ajouter puis sur Registre Docker dans la partie Images Docker et en choisissant votre registre comme Identifiants.
Si le registre est bien configuré, la découverte listera l’ensemble des artéfacts trouvés.
Registres Harbor
Prérequis
Les découvertes Registre Harbor requièrent (au choix) :
- Un compte administrateur système Harbor pour avoir accès aux projets publics et privés ;
- Un compte robot avec la permission de lister tous les artéfacts des projets ;
- Un compte invité pour avoir accès aux projets publics.
Afin d’utiliser la découverte Registre Harbor, vous devez d’abord enregistrer votre registre en tant que Registre Docker depuis le menu Identifiants enregistrés. Vous pourrez ensuite lancer la découverte depuis le menu Découvertes, en cliquant sur le bouton Ajouter puis sur Registre Harbor dans la partie Images Docker et en choisissant votre registre comme Identifiants. Si le registre est bien configuré, la découverte listera l’ensemble des images trouvées.
Sur un registre Harbor, la découverte Registre Docker remonte tous les artefacts ayant un tag, et pas seulement les images alors que la découverte Registre Harbor permet de remonter toutes les images qu’elles aient un tag ou non.
Docker Swarm
Prérequis
Les découvertes Docker Swarm requièrent :
- Des images associées à un tag ;
- Un accès configuré à un moteur d’execution Docker.
Les découvertes Docker Swarm permettent de lister l’ensemble des images disponibles localement sur un moteur d’exécution Docker. Elles s’appliquent pour les déploiements Docker Swarm, mais ne s’y limitent pas : tout daemon Docker est compatible.
Seules les images associées à un tag sont reconnues, ce qui exclut toutes les images intermédiaires, ou encore celles spécifiées par ID.
Un jeu d’identifiants Moteur d’exécution Docker est requis pour ce type de découverte. Leur création est décrite dans la documentation sur les images Docker.
Une fois le jeu d’identifiants prêt, vous pourrez créer la découverte Docker Swarm depuis le menu Découvertes, en cliquant sur le bouton Ajouter puis sur Docker Swarm dans la partie Images Docker.
GitLab Container Registry
Prérequis
Les découvertes des images Docker depuis un registre Docker GitLab requièrent :
- Un jeton d’accès GitLab avec la permission read_api.
GitLab intègre un registre Docker appelé GitLab Container Registry permettant de stocker les images Docker de projets GitLab. Il peut être scanné comme tout autre registre Docker, mais exige pour cela des identifiants super-administrateur. La découverte GitLab Container Registry utilise à la place l’API REST de GitLab pour découvrir les images Docker accessibles et fonctionne même avec un utilisateur standard.
Cette découverte requiert un jeton d’accès (access token) GitLab que vous pouvez créer depuis les paramètres utilisateur de votre compte sur GitLab. Le jeton d’accès doit avoir la permission read_api. Une fois créé, vous devrez l’ajouter à Cyberwatch comme Identifiants enregistrés.
Enfin, vous pourrez créer la découverte depuis le menu Découvertes en choisissant le type GitLab Container Registry puis en sélectionnant votre jeu d’identifiants.
Découverte en provenance des Linux
Prérequis
Les découvertes des images Dockers sur les actifs de type Linux requièrent :
- Des images en cours d’exécution ;
- Les droits sudo si l’utilisateur n’est pas root ou si l’écriture sur la socket n’est pas autorisée.
Cette découverte permet de récupérer toutes les images Docker présentes sur toutes les machines Linux dans le Périmètre de transfert.
Par défaut, le Périmètre de transfert inclut tous les actifs Linux, mais il est possible de le restreindre en sélectionnant un ou plusieurs groupes dans le champ Périmètre de transfert du formulaire.
Ajouter les images Docker découvertes
Depuis la liste des actifs découverts, vous pourrez voir et filtrer les images qui n’ont pas d’actifs associés. Pour les ajouter à Cyberwatch, vous pouvez sélectionnez celles que vous souhaitez scanner et cliquer sur Actions groupées > Scanner comme images Docker.
Pour scanner une image, il vous faudra un moteur d’exécution Docker. Si vous n’en avez pas déjà configuré un, veuillez vous référer à la documentation Ajouter une image Docker.
L’ajout d’images Docker nouvellement découvertes à Cyberwatch peut être automatisé en renseignant dans le formulaire d’édition de la découverte un moteur d’exécution.
Le registre est automatiquement choisi à partir du nom de l’image découverte. Par exemple, une image example.com/library/hello
utilisera automatiquement le registre Docker example.com
, à condition cependant qu’il ait été ajouté en tant qu’identifiant enregistré. Si le registre est nouveau, un identifiant enregistré sera automatiquement créé et pourra être manuellement édité par la suite si une authentification est requise. Il est parfois possible d’indiquer un registre de préférence, mais il ne sera utilisé que pour les images découvertes dont le registre figurant dans le nom correspond avec le point d’entrée du registre.