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.
Artifact Analysis n'analyse pas automatiquement les images existantes. Pour qu'une image existante soit analysée, vous devez la transférer à nouveau.
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 importées ou extraites au cours des 30 derniers jours. Artifact Analysis archive les métadonnées datant de plus de 30 jours.Pour lancer une nouvelle analyse d'une image avec des métadonnées 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 | |
---|---|---|---|
AlmaLinux OS | |||
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:
- AlmaLinux OS
- Alpine
- CentOS : Red Hat et CentOS partagent la même source de données sur les failles. Étant donné que les paquets CentOS sont publiés après les paquets Red Hat, il peut s'écouler un certain temps avant qu'un correctif disponible pour une faille dans Red Hat ne soit également disponible pour CentOS.
- Chainguard
- Debian
- Google Distroless est basé sur Debian et utilise les données de vulnérabilité Debian.
- National Vulnerability Database
- Red Hat Enterprise Linux (RHEL)
- Image de base universelle (UBI) Red Hat
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
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.
- L'analyse à la demande n'est pas disponible pour la version 9 de RHEL.
Gestionnaires de paquets et gestion sémantique des versions
- Go : Artifact Analysis signale les failles des packages de la bibliothèque standard Go et des 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 - L'Artifact Analysis est compatible avec les packages Maven qui respectent les conventions de dénomination Maven. Si la version du package inclut des espaces, elle ne sera pas analysée.
- Node.js : la correspondance des versions de package suit la spécification de la gestion sémantique des versions.
- PHP : Artifact Analysis analyse les packages Composer. Consultez la section Gestion des versions sémantiques dans Composer.
- Python : la correspondance de version Python suit la sémantique PEP 440.
- Ruby : Artifact Analysis analyse les packages RubyGems. Consultez la section Gestion des versions sémantiques de RybyGems.
- Rust : Artifact Analysis analyse les packages Cargo. Consultez la section Gestion des versions sémantiques Rust.
- .NET : Artifact Analysis analyse les packages NuGet. Consultez la page Gestion sémantique des versions NuGet.