Skip to main content

Aperçu

  • Fonctionnement: L’analyse des images de conteneurs identifie les vulnérabilités de sécurité connues dans les images utilisées par votre projet, notamment dans les paquets du système d’exploitation, les bibliothèques système et les paquets applicatifs installés dans leurs couches. L’analyse avant déploiement permet de détecter rapidement les risques liés aux applications conteneurisées.
  • Public concerné: Équipes de sécurité, développeurs et ingénieurs DevOps qui déploient des applications conteneurisées et souhaitent connaître les vulnérabilités héritées des images de base.

Fonctionnement

Corgea détecte automatiquement les images de conteneurs référencées dans votre projet et recherche leurs vulnérabilités dans des bases de données reconnues.
1

Détection des images

Corgea recherche les fichiers Dockerfile et Docker Compose dans votre projet, puis en extrait les références d’images :
  • Dockerfiles: images de base déclarées avec FROM (par exemple, FROM python:3.11-slim)
  • Docker Compose: images déclarées sous image: pour chaque service (par exemple, image: postgres:15)
Les images détectées sont dédupliquées et associées au fichier qui les référence.
2

Analyse d’image

Chaque image est téléchargée et ses couches sont analysées afin d’inventorier les logiciels installés, notamment les paquets du système d’exploitation ou de la distribution (Debian, Ubuntu, Alpine, etc.) et les paquets applicatifs.
3

Mise en correspondance des vulnérabilités

Les paquets détectés sont comparés aux bases de données de vulnérabilités connues. Toute correspondance est signalée avec les autres résultats du scan.

Scanner une image entièrement construite

Le flux de détection ci-dessus scanne les images de base référencées par votre projet. Pour scanner à la place une image entièrement construite — par exemple une image que vous venez de construire en CI et qui n’a jamais été poussée vers un registre — transmettez-la à la CLI avec --include-image :
Votre moteur de conteneurs local (docker ou podman) exporte l’image et la CLI l’envoie avec votre projet : elle est donc scannée exactement telle qu’elle est livrée. Lorsque vous utilisez --include-image, Corgea scanne les images que vous fournissez au lieu de détecter les images de base depuis votre code. --include-image n’est pris en charge que par le scanner BLAST. Le scan de conteneurs doit être activé pour votre compte. Consultez Scanner des images de conteneurs dans la référence de la CLI pour le comportement complet de l’option.

Suivi des résultats entre les scans

Corgea suit un résultat de conteneur selon son image, son paquet et son avis de vulnérabilité. Les décisions de triage sont conservées lorsque la version du paquet change, tandis que les différents paquets concernés par un même avis restent des résultats distincts.

Registres pris en charge

Corgea scanne les images hébergées sur des registres publics :
  • Docker Hub
  • GitHub Container Registry (GHCR)
  • Google Container Registry (GCR)
  • Quay.io
  • Microsoft Container Registry (MCR)
  • Amazon ECR Public
  • GitLab Container Registry
La détection automatique des images est activée lorsque des fichiers Docker sont détectés dans votre projet et ne nécessite aucune configuration. Scanner une image entièrement construite avec --include-image nécessite que le scan de conteneurs soit activé pour votre compte.

Limitations

Ces limites s’appliquent aux images que Corgea détecte et récupère elle-même :
  • Registres publics uniquement: Les images hébergées sur des registres privés sont ignorées. Pour scanner une image privée, récupérez-la ou construisez-la sur votre propre runner et transmettez-la avec --include-image, qui envoie l’image depuis votre moteur de conteneurs au lieu de laisser Corgea la récupérer.
  • Taille maximale de l’image: Les images de plus de 1 000 Mo (1 Go) sont ignorées.
  • Seules les images référencées dans Dockerfile et les fichiers Docker Compose sont détectées. Utilisez --include-image pour scanner une image qu’aucun des deux fichiers ne référence.

Bonnes pratiques

Utilisez des tags d’image précis (par exemple, python:3.11.5-slim) plutôt que latest pour obtenir des résultats de scan cohérents et reproductibles.
  • Utiliser des tags précis: évitez latest et épinglez des versions exactes pour obtenir des scans reproductibles.
  • Privilégier les images de base minimales: Utilisez des variantes slim, Alpine ou distroless pour réduire la surface d’attaque.
  • Mises à jour régulières: maintenez les images de base à jour afin de bénéficier des correctifs de sécurité.
  • Builds multi-stage: réduisez la taille de l’image finale et le nombre de paquets qu’elle contient.

Voir aussi