Présentation de l'analyse des conteneurs

Artifact Analysis propose deux méthodes d'analyse des images: l'analyse automatique et l'analyse à la demande. Ce document décrit les fonctionnalités des deux types d'analyse.

Artifact Analysis fournit également une gestion des métadonnées. Pour en savoir plus sur l'utilisation conjointe de l'analyse et du stockage de métadonnées pour sécuriser votre pipeline CI/CD de bout en bout, consultez la présentation de l'analyse des artefacts.

Consultez les tarifs pour en savoir plus sur les coûts associés à l'analyse des images de conteneur.

Cette présentation suppose que vous savez déjà utiliser des dépôts Docker dans Artifact Registry ou Container Registry (obsolète).

Analyse automatique

Artifact Analysis recherche les failles de sécurité de vos artefacts dans Artifact Registry ou Container Registry (obsolète). Artifact Analysis identifie également les dépendances et les licences pour vous aider à comprendre la composition de votre logiciel.

L'analyse automatique comprend deux tâches principales : l'analyse à la demande et l'analyse continue.

Analyse à la demande

Artifact Analysis analyse les nouvelles images au fur et à mesure de leur importation dans Artifact Registry ou Container Registry. Cette analyse extrait des informations sur les packages du conteneur. Les images ne sont analysées qu'une seule fois, en fonction de leur condensé. Cela signifie que l'ajout ou la modification de tags ne déclenche pas de nouvelles analyses.

Artifact Analysis ne détecte que les failles dans les packages surveillés publiquement pour détecter les failles de sécurité.

Lorsque l'analyse d'une image est terminée, le résultat de faille produit est l'ensemble des occurrences de faille pour cette image.

Analyse continue

Artifact Analysis crée des occurrences pour les failles détectées lors de l'importation de l'image. Une fois l'analyse initiale terminée, Artifact Analysis surveille en permanence les métadonnées des images analysées dans Artifact Registry et Container Registry afin de détecter de nouvelles failles.

Artifact Analysis reçoit de nouvelles informations et des informations actualisées sur les failles provenant de sources de failles plusieurs fois par jour. Lorsque de nouvelles données sur les failles arrivent, Artifact Analysis met à jour les métadonnées des images analysées afin de les actualiser. Artifact Analysis met à jour les occurrences de failles existantes, crée des occurrences de failles pour les nouvelles notes et supprime les occurrences de failles qui ne sont plus valides.

Artifact Analysis ne met à jour que les métadonnées des images transférées ou extraites au cours des 30 derniers jours. Au bout de 30 jours, les métadonnées ne seront plus mises à jour et les résultats seront obsolètes. De plus, Artifact Analysis archive les métadonnées obsolètes depuis plus de 90 jours. Elles ne seront pas disponibles dans la console Google Cloud, gcloud ni via l'API. Pour lancer une nouvelle analyse d'une image avec des métadonnées obsolètes ou archivées, extrayez cette image. L'actualisation des métadonnées peut prendre jusqu'à 24 heures.

Listes de manifestes

Vous pouvez également utiliser l'analyse des failles avec des listes de fichiers manifestes. Une liste de fichiers manifestes est une liste de pointeurs vers des fichiers manifestes pour plusieurs plates-formes. Ils permettent à une seule image de fonctionner avec plusieurs architectures ou variantes d'un système d'exploitation.

L'analyse des failles Artifact Analysis n'est compatible qu'avec les images Linux amd64. Si votre liste de fichiers manifestes pointe vers plusieurs images Linux amd64, seule la première sera analysée. Si aucun pointeur ne pointe vers des images Linux amd64, vous n'obtiendrez aucun résultat d'analyse.

Analyse à la demande

L'analyse à la demande vous permet d'analyser des images de conteneur en local sur votre ordinateur ou dans votre registre à l'aide de gcloud CLI. Vous pouvez ainsi personnaliser votre pipeline CI/CD en fonction du moment où vous devez accéder aux résultats de la faille.

Types de packages compatibles

Lorsque vous transférez des images de conteneur vers des dépôts Docker dans Artifact Registry, Artifact Analysis peut rechercher des failles dans plusieurs types de packages d'OS et de packages de langages d'application.

Container Registry est obsolète. Avec Container Registry, l'analyse automatique n'analyse que les packages de l'OS. Si vous utilisez Container Registry, découvrez comment passer à Artifact Registry.

Les tableaux suivants comparent les types de packages que l'Artifact Analysis peut analyser avec chaque service d'analyse:

Packages de système d'exploitation compatibles

Analyse automatique avec Artifact Registry Analyse automatique avec Container Registry (obsolète) Analyse à la demande
Système d'exploitation AlmaLinux
Alpine
CentOS
Chainguard
Debian
Distroless Google
Red Hat Enterprise Linux (RHEL)
Image de base universelle (UBI) Red Hat
Rocky Linux
SUSE Linux Enterprise Server (SLES)
Ubuntu
Wolfi

Packages de langues d'application compatibles

Analyse automatique avec Artifact Registry Analyse automatique avec Container Registry (obsolète) Analyse à la demande
Packages Go
Packages Java
Packages Node.js
Packages PHP
Packages Python
Packages Ruby
Packages Rust
Packages .NET

Artifact Analysis n'analyse les packages de langage d'application dans Artifact Registry que lorsque les packages sont conteneurisés et stockés dans un dépôt au format Docker. Les autres formats de dépôt d'Artifact Registry ne sont pas acceptés.

Pour en savoir plus sur les fonctionnalités disponibles pour chaque produit de registre, consultez le tableau comparatif.

L'Artifact Analysis n'est pas disponible pour les conteneurs Windows Server.

Interfaces Artifact Analysis

Dans la console Google Cloud, vous pouvez afficher les failles et les métadonnées des images pour les conteneurs dans Artifact Registry.

Vous pouvez utiliser la gcloud CLI pour afficher les failles et les métadonnées des images.

Vous pouvez également utiliser l'API REST Artifact Analysis pour effectuer l'une de ces actions. Comme pour les autres API Cloud Platform, vous devez autoriser l'accès à l'aide d'OAuth2. Une fois authentifié, vous pouvez également utiliser l'API pour créer des notes et des occurrences personnalisées, et afficher des occurrences de failles.

L'API Artifact Analysis est compatible avec gRPC et REST/JSON. Vous pouvez envoyer des appels à l'API à l'aide des bibliothèques clientes ou de cURL pour REST/JSON.

Contrôler le déploiement d'images contenant des failles

Vous pouvez utiliser l'autorisation binaire pour créer une liste d'autorisation de failles à partir des informations sur les failles fournies par Artifact Analysis dans le cadre de votre pipeline Cloud Build. Si les failles enfreignent la règle de la liste d'autorisation, la compilation échoue.

Vous pouvez également intégrer Artifact Analysis à l'autorisation binaire pour créer des attestations, ce qui peut empêcher les images de conteneurs présentant des problèmes de sécurité connus de s'exécuter dans votre environnement de déploiement.

Sources de failles

La section suivante liste les sources de failles utilisées par l'Artifact Analysis pour obtenir des données CVE.

Analyses des packages de l'OS

Artifact Analysis utilise les sources suivantes:

Analyse des packages de langages

Artifact Analysis est compatible avec l'analyse des failles pour les packages de langages dans une image de conteneur. Les données sur les failles sont obtenues à partir de la base de données Advisory GitHub.

Dans la plupart des cas, chaque faille se voit attribuer un ID CVE, qui devient l'identifiant principal de cette faille. Lorsqu'aucun ID CVE n'est attribué à une faille, un ID GHSA est attribué à la place. Si cette faille reçoit ultérieurement un ID CVE, l'ID de la faille est mis à jour pour correspondre à la CVE. Pour en savoir plus, consultez la section Rechercher une faille spécifique dans un projet.

Versions de système d'exploitation compatibles

Artifact Analysis est compatible avec l'analyse des failles pour les versions de logiciels de système d'exploitation suivantes:

  • AlmaLinux OS: versions 8, 9 et versions mineures
  • Alpine Linux - Versions: 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 3.16, 3.17, 3.18, 3.19, 3.20
  • CentOS: versions 6, 7, 8 et versions mineures
  • Chainguard : mises à jour progressives sur un canal de publication unique.
  • Debian GNU/Linux - Versions: 9, 10, 11, 12
  • Red Hat Enterprise Linux (RHEL) : les versions 6, 7, 8, 9 et les versions mineures sont compatibles avec les analyses automatiques du Registre.
  • Red Hat Universal Base Image (UBI) : versions 8, 9 et versions mineures
  • Rocky Linux: versions 8, 9 et versions mineures
  • SUSE Linux Enterprise Server (SLES) : versions 12, 15 et versions mineures ; SLES pour SAP est également compatible avec les mêmes versions
  • Ubuntu: versions 12.04, 12.10, 13.04, 14.04, 14.10, 15.04, 15.10, 16.04, 16.10, 17.04, 17.10, 18.04, 18.10, 20.04, 20.10, 21.04, 21.10, 22.04, 22.10, 23.04, 23.10, 24.04
  • Wolfi : mises à jour progressives sur un canal de publication unique.

Limites

  • L'Artifact Analysis fournit les résultats de l'analyse des failles pour RHEL en fonction de la dernière version mineure de chaque version majeure publiée. Les résultats de l'analyse peuvent être inexacts pour les anciennes versions mineures de RHEL.
  • La version 9 de RHEL n'est pas compatible avec l'analyse à la demande.

Gestionnaires de paquets et gestion sémantique des versions

Étape suivante