Artifact Analysis ofrece dos formas de analizar imágenes: análisis automático y análisis bajo demanda. En este documento se describen los detalles de las funciones de ambos tipos de análisis.
Análisis de artefactos también ofrece gestión de metadatos. Para obtener más información sobre cómo puedes usar el análisis y el almacenamiento de metadatos conjuntamente para proteger tu canalización de CI/CD de principio a fin, consulta la descripción general de Artifact Analysis.
Consulta los precios para obtener más información sobre los costes asociados al análisis de imágenes de contenedor.
En esta descripción general se da por hecho que ya sabes cómo usar los repositorios de Docker en Artifact Registry.
Búsqueda automática
Artifact Analysis realiza análisis de vulnerabilidades en tus artefactos de Artifact Registry. Análisis de artefactos también identifica dependencias y licencias para ayudarte a comprender la composición de tu software.
La búsqueda automática consta de dos tareas principales: la búsqueda al insertar y el análisis continuo.
Análisis push
Artifact Analysis analiza las imágenes nuevas cuando se suben a Artifact Registry. Este análisis extrae información sobre los paquetes del contenedor. Las imágenes se analizan solo una vez, en función del resumen de la imagen. Esto significa que, si añade o modifica etiquetas, no se activarán nuevos análisis.
Artifact Analysis solo detecta vulnerabilidades en paquetes que se monitorizan públicamente para detectar vulnerabilidades de seguridad.
Cuando se completa el análisis de una imagen, el resultado de vulnerabilidad generado es la colección de incidencias de vulnerabilidades de esa imagen.
Análisis continuo
Artifact Analysis crea ocurrencias de las vulnerabilidades que se encuentran al subir la imagen. Después del análisis inicial, monitoriza continuamente los metadatos de las imágenes analizadas en Artifact Registry para detectar nuevas vulnerabilidades.
Análisis de artefactos recibe información nueva y actualizada sobre vulnerabilidades de fuentes de vulnerabilidades varias veces al día. Cuando llegan nuevos datos de vulnerabilidades, el análisis de artefactos actualiza los metadatos de las imágenes analizadas para mantenerlos al día. Análisis de artefactos actualiza las incidencias de vulnerabilidades, crea incidencias de vulnerabilidades para las notas nuevas y elimina las incidencias de vulnerabilidades que ya no son válidas.
Análisis de artefactos solo actualiza los metadatos de las imágenes que se han insertado o extraído en los últimos 30 días. Transcurridos 30 días, los metadatos dejarán de actualizarse y los resultados estarán obsoletos. Además, Análisis de artefactos archiva los metadatos que no se han actualizado en más de 90 días, y estos no estarán disponibles en la consola de Google Cloud , gcloud ni mediante la API. Para volver a analizar una imagen con metadatos obsoletos o archivados, extrae esa imagen. La actualización de los metadatos puede tardar hasta 24 horas.
Listas de manifiestos
También puedes usar el análisis de vulnerabilidades con listas de manifiestos. Una lista de manifiestos es una lista de punteros a manifiestos de varias plataformas. Permiten que una sola imagen funcione con varias arquitecturas o variaciones de un sistema operativo.
El análisis de vulnerabilidades de Artifact Analysis solo admite imágenes de Linux amd64. Si su lista de manifiestos apunta a más de una imagen Linux amd64, solo se analizará la primera. Si no hay punteros a imágenes Linux amd64, no obtendrá ningún resultado del análisis.
Análisis bajo demanda
El análisis bajo demanda te permite analizar imágenes de contenedor de forma local en tu ordenador o en tu registro mediante la CLI de gcloud. De esta forma, puedes personalizar tu canalización de CI/CD en función de cuándo necesites acceder a los resultados de las vulnerabilidades.
Tipos de paquetes admitidos
Cuando envías imágenes de contenedor a repositorios de Docker en Artifact Registry, Artifact Analysis puede buscar vulnerabilidades en varios tipos de paquetes de SO y de lenguajes de aplicación.
En las siguientes tablas se comparan los tipos de paquetes que puede analizar Artifact Analysis con cada servicio de análisis:
Paquetes de SO admitidos
Análisis automático con Artifact Registry | Análisis bajo demanda | |
---|---|---|
Sistema operativo AlmaLinux | ||
Alpina | ||
CentOS | ||
Chainguard | ||
Debian | ||
Google Distroless | ||
Red Hat Enterprise Linux (RHEL) | ||
Imagen base universal (UBI) de Red Hat | ||
Rocky Linux | ||
SUSE Linux Enterprise Server (SLES) | ||
Ubuntu | ||
Wolfi |
Paquetes de idiomas de aplicaciones admitidos
Análisis automático con Artifact Registry | Análisis bajo demanda | |
---|---|---|
Paquetes de Go | ||
Paquetes de Java | ||
Paquetes de Node.js | ||
Paquetes de PHP | ||
Paquetes de Python | ||
Paquetes de Ruby | ||
Paquetes de Rust | ||
Paquetes .NET |
Artifact Analysis solo analiza los paquetes de lenguaje de aplicaciones en Artifact Registry cuando los paquetes se almacenan en contenedores y se guardan en un repositorio con formato Docker. No se admiten otros formatos de repositorio de Artifact Registry.
Para obtener más información sobre las funciones disponibles en cada producto de registro, consulta la tabla comparativa.
El análisis de artefactos no se admite en contenedores de Windows Server.
Interfaces de Artifact Analysis
En la Google Cloud consola, puedes ver las vulnerabilidades y los metadatos de las imágenes de los contenedores de Artifact Registry.
Puedes usar gcloud CLI para ver vulnerabilidades y metadatos de imágenes.
También puedes usar la API REST de análisis de artefactos para realizar cualquiera de estas acciones. Al igual que con otras APIs de Cloud Platform, debes autenticar el acceso mediante OAuth2. Una vez que te hayas autenticado, también podrás usar la API para crear notas y ocurrencias personalizadas, así como para ver las ocurrencias de vulnerabilidades.
La API Artifact Analysis admite gRPC y REST/JSON. Puedes hacer llamadas a la API mediante las bibliotecas de cliente o con cURL para REST/JSON.
Controlar el despliegue de imágenes vulnerables
Puedes integrar Artifact Analysis con la autorización binaria para crear certificaciones, lo que puede evitar que se ejecuten imágenes de contenedor con problemas de seguridad conocidos en tu entorno de implementación.
También puedes usar Autorización binaria para crear una lista de elementos permitidos de vulnerabilidades basada en la información de vulnerabilidades que proporciona Análisis de artefactos como parte de tu despliegue. Si las vulnerabilidades infringen la política de la lista de permitidas, recibirás una alerta.
Por último, puede usar el análisis bajo demanda para bloquear y rechazar compilaciones en función de la gravedad de las vulnerabilidades encontradas.
Fuentes de vulnerabilidades
En la siguiente sección se enumeran las fuentes de vulnerabilidades que usa Artifact Analysis para obtener datos de CVE.
Análisis de paquetes del SO
Análisis de artefactos usa las siguientes fuentes:
- AlmaLinux OS
- Alpine
- CentOS Red Hat y CentOS comparten la misma fuente de datos de vulnerabilidades. Como los paquetes de CentOS se publican después de los de Red Hat, puede que tarde un tiempo en estar disponible una solución para una vulnerabilidad en Red Hat.
- Protector de cadena
- Debian
- Google Distroless se basa en Debian y usa los datos de vulnerabilidades de Debian.
- National Vulnerability Database
- Red Hat Enterprise Linux (RHEL)
- Imagen base universal (UBI) de Red Hat
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
Análisis de paquetes de idiomas
Artifact Analysis admite el análisis de vulnerabilidades de paquetes de idiomas en una imagen de contenedor. Los datos de vulnerabilidades se obtienen de la base de datos de avisos de GitHub.
En la mayoría de los casos, a cada vulnerabilidad se le asigna un ID de CVE, que se convierte en el identificador principal de esa vulnerabilidad. En los casos en los que no se haya asignado ningún ID de CVE a una vulnerabilidad, se asignará un ID de GHSA como identificador. Si más adelante se asigna un ID de CVE a esa vulnerabilidad, el ID de la vulnerabilidad se actualizará para que coincida con el CVE. Consulta más información en el artículo sobre cómo buscar una vulnerabilidad específica en un proyecto.
Versiones de SO compatibles
Análisis de artefactos admite el análisis de vulnerabilidades para las siguientes versiones de software del sistema operativo:
- AlmaLinux OS: versiones 8, 9 y 10, y versiones secundarias
- Alpine Linux - Versiones: 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 y 3.22
- CentOS: versiones 6, 7 y 8, y versiones secundarias
- Chainguard: actualizaciones continuas en un canal de lanzamiento único.
- Debian GNU/Linux: versiones 11, 12, 13, 14 y 15
- Red Hat Enterprise Linux (RHEL): se admiten las versiones 7, 8, 9 y 10, así como las versiones secundarias, para los análisis automáticos del registro.
- Imagen base universal (UBI) de Red Hat: versiones 8, 9 y 10, y versiones secundarias
- Rocky Linux: versiones 8, 9 y 10, así como versiones secundarias
- SUSE Linux Enterprise Server (SLES): versiones 12 y 15, y versiones secundarias. SLES for SAP también es compatible con las mismas versiones.
- Ubuntu: versiones 14.04, 16.04, 18.04, 20.04, 22.04, 24.04, 24.10 y 25.04
- Wolfi: actualizaciones continuas en una única versión.
Limitaciones
La función principal de Artifact Analysis es analizar y detectar vulnerabilidades en contenedores, así como mostrar esas vulnerabilidades a tu organización. Análisis de artefactos no afirma identificar características de las imágenes que puedan aumentar o reducir la capacidad de tu organización para verificar la integridad o la confianza de una imagen. Para seguir desarrollando esta confianza, Google ofrece soluciones que puedes usar de forma individual o combinada. Consulta más información sobre nuestro enfoque de la seguridad de la cadena de suministro de software.
Análisis de artefactos ofrece resultados de análisis de vulnerabilidades para RHEL basados en la última versión secundaria de cada versión principal lanzada. Puede que haya imprecisiones en los resultados del análisis de versiones secundarias anteriores de RHEL.
La versión 9 de RHEL no es compatible con el análisis bajo demanda.
Gestores de paquetes y gestión semántica de versiones
- Go: Artifact Analysis informa de las vulnerabilidades de los paquetes de la biblioteca estándar de Go y de los paquetes de Go externos que no se incluyen en la biblioteca estándar. Las vulnerabilidades se notifican con una etiqueta diferente para cada tipo de paquete.
- Java: el análisis de artefactos admite paquetes de Maven que siguen las convenciones de nomenclatura de Maven. Si la versión del paquete incluye espacios, no se analizará.
- Node.js: la versión del paquete sigue la especificación de versiones semánticas.
- PHP: los análisis de artefactos analizan los paquetes de Composer. Consulta Gestión de versiones semánticas de Composer.
- Python: la versión de Python debe coincidir con la semántica de PEP 440.
- Ruby: Artifact Analysis analiza los paquetes de RubyGems. Consulta la gestión de versiones semántica de RubyGems.
- Rust: los análisis de artefactos analizan los paquetes de Cargo. Consulta Gestión semántica de versiones de Rust.
- .NET: Artifact Analysis analiza los paquetes NuGet. Consulta Gestión semántica de versiones de NuGet.