L'analyse des conteneurs identifie les failles nouvelles et existantes, ainsi que les packages malveillants dans les dépendances Open Source des images de conteneurs de vos dépôts Artifact Registry. Artifact Analysis propose deux façons d'analyser vos packages : l'analyse automatique et l'analyse à la demande. Ce document décrit les deux types d'analyse.
Artifact Analysis fournit également une gestion des métadonnées. Pour découvrir comment utiliser l'analyse et le stockage des métadonnées afin de sécuriser votre pipeline CI/CD de bout en bout, consultez la présentation d'Artifact Analysis.
Consultez les tarifs pour en savoir plus sur les coûts associés à l'analyse des images de conteneurs.
Cette présentation suppose que vous savez déjà utiliser les dépôts Docker dans Artifact Registry.
Rechercher des failles dans les images
Artifact Analysis effectue des analyses de failles et de packages malveillants sur vos artefacts dans Artifact Registry. Artifact Analysis identifie également les dépendances et les licences pour vous aider à comprendre la composition de vos logiciels.
L'analyse automatique comprend deux tâches principales : l'analyse automatique et l'analyse continue.
Analyse automatique
Artifact Analysis analyse les nouvelles images au fur et à mesure de leur importation dans Artifact 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 et les logiciels malveillants dans les packages surveillés publiquement. Les données sur les failles proviennent de différents fournisseurs en amont, et les données sur les packages malveillants proviennent du dépôt OpenSSF Malicious Packages. Les packages malveillants sont signalés comme des failles de gravité CRITICAL.
Lorsque l'analyse d'une image est terminée, le résultat de la faille produit est l'ensemble des occurrences de faille pour cette image.
Les analyses automatiques des failles détectent également les secrets, tels que les clés API et les clés de compte de service, afin d'éviter l'exposition de données sensibles. Cette fonctionnalité est en version preview. Pour en savoir plus, consultez la section Rechercher des secrets.
Analyse continue
Artifact Analysis crée des occurrences pour les failles et les packages malveillants détectés lors de l'importation de l'image. Une fois l'analyse initiale terminée, il surveille en permanence les métadonnées des images analysées dans Artifact Registry afin de détecter de nouvelles failles et de nouveaux packages malveillants.
Artifact Analysis reçoit plusieurs fois par jour de nouvelles informations et des informations actualisées sur les failles et les packages malveillants provenant de sources de failles. Lorsque de nouvelles données sur les failles ou les packages malveillants arrivent, Artifact Analysis met à jour les métadonnées des images analysées afin de les actualiser. Artifact Analysis met à jour les occurrences existantes, crée de nouvelles occurrences pour les nouvelles notes et supprime les occurrences qui ne sont plus valides.
Artifact Analysis continue d'analyser les images et les packages tant qu'ils ont été extraits au cours des 30 derniers jours. Après 30 jours, les métadonnées des images et des packages analysés ne seront plus mises à jour, et les résultats seront obsolètes.
Artifact Analysis archive les métadonnées qui sont obsolètes depuis plus de 90 jours. Ces métadonnées archivées ne peuvent être évaluées qu'à l'aide de l'API. Vous pouvez relancer l'analyse d'une image avec des métadonnées non actualisées ou archivées en extrayant cette image. L'actualisation des métadonnées peut prendre jusqu'à 24 heures. Il n'est pas possible de relancer l'analyse des packages dont les métadonnées sont obsolètes ou archivées.
Architectures
Artifact Analysis peut analyser des images sur n'importe quelle architecture basée sur Linux.
Vous pouvez également utiliser l'analyse des failles avec des listes de manifestes. Une liste de manifestes est une liste de pointeurs vers des manifestes pour plusieurs plates-formes. Ils permettent à une seule image de fonctionner avec plusieurs architectures ou variantes d'un système d'exploitation.
Si votre liste de manifestes contient une image Linux amd64, Artifact Analysis l'analysera. Sinon, Artifact Analysis sélectionne une autre image dans la liste.
On-Demand Scanning
L'analyse à la demande vous permet d'analyser les images de conteneurs localement 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 l'analyse des failles.
Types de packages compatibles
Lorsque vous transférez des images de conteneurs 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 langage d'application.
Les tableaux suivants comparent les types de packages qu'Artifact Analysis peut analyser avec chaque service d'analyse :
Packages d'OS compatibles
| Analyse automatique avec Artifact Registry | Analyse à la demande | |
|---|---|---|
| AlmaLinux OS | ||
| Alpine | ||
| CentOS | ||
| Chainguard. | ||
| Debian | ||
| Distroless Google | ||
| MinimOS | ||
| Red Hat Enterprise Linux (RHEL) | ||
| Image de base universelle Red Hat (UBI) | ||
| Rocky Linux | ||
| SUSE Linux Enterprise Server (SLES) | ||
| Ubuntu | ||
| Wolfi |
Packages de langage d'application compatibles
| Analyse automatique avec Artifact Registry | Analyse à la demande | |
|---|---|---|
| Packages Go | ||
| Packages Java | ||
| Packages Node.js | ||
| Packages PHP | ||
| Packages Python | ||
| Packages Ruby | ||
| Packages Rust | ||
| Packages .NET |
Pour en savoir plus sur les fonctionnalités disponibles pour chaque produit de registre, consultez le tableau comparatif.
Artifact Analysis n'est pas compatible avec les conteneurs Windows Server.
Interfaces Artifact Analysis
Dans la Google Cloud console, 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 OAuth2. Une fois authentifié, vous pouvez également utiliser l'API pour créer des notes et des occurrences personnalisées, et afficher les 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.
Rechercher les chemins d'accès aux fichiers de package
Lorsque Artifact Analysis détecte une faille, vous ne reconnaissez peut-être pas le package vulnérable comme une dépendance dans votre artefact. Cela peut se produire si le gestionnaire de packages l'introduit ou si le package est une dépendance transitive (une dépendance de l'une de vos dépendances).
Pour trouver le chemin d'accès au fichier qui a provoqué la détection d'un résultat de vulnérabilité, procédez comme suit :
- Dans la Google Cloud console, accédez à la liste des failles d'un artefact dans Accéder à Artifact Registry.
- Pour la faille que vous souhaitez examiner, cliquez sur AFFICHER LE CORRECTIF.
Dans le volet d'informations, cliquez sur AFFICHER PLUS D'INFOS.
Le champ Emplacement du fichier indique le chemin d'accès au package vulnérable.
Contrôler le déploiement d'images contenant des failles
Vous pouvez 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.
Vous pouvez également utiliser l'autorisation binaire pour créer une liste d'autorisation de failles basée sur les informations sur les failles fournies par Artifact Analysis dans le cadre de votre déploiement. Si les failles enfreignent la règle de la liste d'autorisation, vous recevrez une alerte.
Enfin, vous pouvez utiliser l'analyse à la demande pour bloquer et faire échouer les compilations en fonction de la gravité des failles détectées.
Sources de failles
La section suivante répertorie les sources de failles qu' Artifact Analysis utilise pour obtenir des données CVE.
Analyses des packages d'OS
Artifact Analysis utilise les sources suivantes :
- AlmaLinux OS
- Alpine
- CentOS : Red Hat et CentOS partagent la même source de données sur les failles. Étant donné que les packages CentOS sont publiés après les packages Red Hat, un correctif disponible pour une faille dans Red Hat peut prendre un certain temps avant d'être également disponible pour CentOS.
- Chainguard.
- Debian
- Distroless Google est basé sur Debian et utilise les données sur les failles de Debian.
- National Vulnerability Database
- Minimus
- Red Hat Enterprise Linux (RHEL)
- Image de base universelle Red Hat (UBI)
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
Analyses des packages de langages
Artifact Analysis est compatible avec l'analyse des failles et des packages malveillants pour les packages de langages dans une image de conteneur.
- Les données sur les failles proviennent de la base de données GitHub Advisory.
Les données sur les packages malveillants proviennent du dépôt OpenSSF Malicious Packages. Les packages malveillants sont signalés comme des résultats de gravité CRITICAL. Artifact Analysis détecte les packages malveillants qui appartiennent aux catégories suivantes :
- Typosquat ou confusion de dépendances : packages publiés avec des noms semblables à ceux de packages populaires pour inciter les utilisateurs à les installer.
- Prise de contrôle de compte : packages légitimes qui ont été compromis par des acteurs malveillants.
- Binaires malveillants : binaires précompilés pour un package contenant du code malveillant.
- Activité des chercheurs en sécurité : packages créés par des chercheurs pour démontrer des failles ou suivre l'utilisation des packages.
Dans la plupart des cas, un ID CVE est attribué à chaque faille, et cet ID
devient l'identifiant principal de cette faille. Dans les cas où aucun
ID CVE n'est attribué à une faille, un ID GHSA est attribué à la place comme
identifiant. Si, par la suite, un ID CVE est attribué à cette faille, l'ID de la faille est mis à jour pour correspondre au CVE. Les avis concernant les packages malveillants ont des ID avec le préfixe MAL-. Pour en savoir plus, consultez la section
Rechercher une faille spécifique dans un projet.
Versions d'OS compatibles
Artifact Analysis est compatible avec l'analyse des failles pour les versions suivantes de logiciels de système d'exploitation :
- AlmaLinux OS : versions 8, 9, 10 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, 3.21, 3.22, 3.23
- CentOS : versions 6, 7, 8 et versions mineures
- Chainguard : mises à jour progressives sur un seul canal de publication.
- Debian GNU/Linux : versions 11, 12, 13, 14, 15
- MinimOS : mises à jour progressives sur un seul canal de publication.
- Red Hat Enterprise Linux (RHEL) : les versions 7, 8, 9 et les versions mineures sont compatibles avec les analyses automatiques du registre.
- Image de base universelle Red Hat (UBI) : versions 8, 9 et versions mineures
- Rocky Linux : versions 8, 9, 10 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 14.04, 16.04, 18.04, 20.04, 22.04, 24.04, 24.10, 25.04, 25.10
- Wolfi : mises à jour progressives sur un seul canal de publication.
Limites
La fonction principale d'Artifact Analysis est d'analyser et de détecter les failles dans les conteneurs, et de les rendre visibles pour votre organisation. Artifact Analysis ne prétend pas identifier les caractéristiques des images qui pourraient augmenter ou réduire la capacité de votre organisation à vérifier l'intégrité ou la fiabilité d'une image. Pour renforcer cette confiance, Google propose des solutions que vous pouvez utiliser individuellement ou en combinaison. En savoir plus sur notre approche de la sécurité de la chaîne d'approvisionnement logicielle.
Artifact Analysis fournit des résultats d'analyse des failles pour RHEL en fonction de la dernière version mineure de chaque version majeure publiée. Si vous analysez une ancienne version mineure, les résultats peuvent être inexacts.
La version 9 de RHEL n'est pas compatible avec l'analyse à la demande.
Gestionnaires de packages et gestion sémantique des versions
- Go : Artifact Analysis signale les failles pour les packages de la bibliothèque standard Go et les packages Go externes non inclus dans la bibliothèque standard. Les failles sont signalées avec un libellé différent pour chaque type de package.
- Java : Artifact Analysis est compatible avec les packages Maven qui suivent les conventions d'attribution de noms Maven. Si la version du package contient des espaces, elle ne sera pas analysée.
- Node.js : la correspondance des versions de package suit la gestion sémantique des versions spécification.
- PHP : Artifact Analysis analyse les packages Composer. Consultez la section Gestion sémantique des versions de Composer.
- Python : la correspondance des versions Python suit la sémantique PEP 440.
- Ruby : Artifact Analysis analyse les packages RubyGems. Consultez la section Gestion sémantique des versions de RubyGems.
- Rust : Artifact Analysis analyse les packages Cargo. Consultez la section Gestion sémantique des versions de Rust.
- .NET : Artifact Analysis analyse les packages NuGet. Consultez la section Gestion sémantique des versions de NuGet.