El análisis de contenedores identifica vulnerabilidades nuevas y existentes en las dependencias de código abierto para imágenes de contenedores en tus repositorios de Artifact Registry. Artifact Analysis proporciona dos formas de analizar tus paquetes: análisis automático y análisis a pedido. En este documento, se describen ambos tipos de análisis.
Artifact Analysis también proporciona administración de metadatos. Para obtener más información sobre cómo puedes usar el análisis y el almacenamiento de metadatos en conjunto para proteger tu canalización de CI/CD de extremo a extremo, consulta la descripción general de Artifact Analysis.
Consulta los precios para obtener más información sobre los costos asociados con el análisis de imágenes de contenedores.
En esta descripción general, se supone que ya estás familiarizado con el uso de repositorios de Docker en Artifact Registry.
Analiza las imágenes en busca de vulnerabilidades
Artifact Analysis realiza análisis de vulnerabilidades en tus artefactos en Artifact Registry. Artifact Analysis también identifica dependencias y licencias para ayudarte a comprender la composición de tu software.
El análisis automático incluye dos tareas principales: el análisis automático y el análisis continuo.
Análisis automático
Artifact Analysis analiza las imágenes nuevas cuando se suben a Artifact Registry. Este análisis extrae información sobre los paquetes en el contenedor. Las imágenes se analizan solo una vez, según el resumen de la imagen. Esto significa que agregar o modificar etiquetas no activará análisis nuevos.
Artifact Analysis solo detecta vulnerabilidades en paquetes que se supervisan públicamente para detectar vulnerabilidades de seguridad.
Cuando se completa el análisis de una imagen, el resultado de vulnerabilidad producido es el conjunto de casos de vulnerabilidades para esa imagen.
Los análisis automáticos de vulnerabilidades también detectan secretos, como claves de API y claves de cuentas de servicio, para que puedas evitar la exposición de datos sensibles. Esta función está en versión preliminar pública. Para obtener más información, consulta Analiza en busca de secretos.
Análisis continuo
Artifact Analysis crea casos para las vulnerabilidades que se encuentran cuando subes la imagen. Después del análisis inicial, supervisa continuamente los metadatos de las imágenes analizadas en Artifact Registry para detectar vulnerabilidades nuevas.
Artifact Analysis recibe información nueva y actualizada sobre vulnerabilidades de las fuentes de vulnerabilidades varias veces al día. Cuando llegan datos de vulnerabilidad nuevos, Artifact Analysis actualiza los metadatos de las imágenes analizadas para mantenerlos actualizados. Artifact Analysis actualiza los casos de vulnerabilidades existentes, crea casos de vulnerabilidades nuevos para las notas nuevas y borra los casos de vulnerabilidades que ya no son válidos.
Artifact Analysis continúa analizando imágenes y paquetes siempre que se hayan extraído en los últimos 30 días. Después de 30 días, los metadatos de las imágenes y los paquetes analizados ya no se actualizarán y los resultados estarán inactivos.
Artifact Analysis archiva los metadatos que han estado inactivos durante más de 90 días. Estos metadatos archivados solo se pueden evaluar con la API. Para volver a analizar una imagen con metadatos inactivos o archivados, extráela. Los metadatos pueden tardar hasta 24 horas en actualizarse. No se pueden volver a analizar los paquetes con metadatos inactivos o archivados.
Arquitecturas
Artifact Analysis puede analizar imágenes en cualquier arquitectura basada en Linux.
También puedes usar el análisis de vulnerabilidades con listas de manifiestos. Una lista de manifiestos es una lista de punteros a manifiestos para varias plataformas. Permiten que una sola imagen funcione con varias arquitecturas o variaciones de un sistema operativo.
Si tu lista de manifiestos contiene una imagen de Linux amd64, Artifact Analysis analizará esa imagen. De lo contrario, Artifact Analysis selecciona una imagen diferente de la lista.
On-Demand Scanning
El análisis a pedido te permite analizar imágenes de contenedores de forma local en tu computadora o en tu registro con gcloud CLI. Esto te brinda la flexibilidad de personalizar tu canalización de CI/CD, según cuándo necesites acceder a los resultados de vulnerabilidades.
Tipos de paquetes compatibles
Cuando envías imágenes de contenedores a repositorios de Docker en Artifact Registry, Artifact Analysis puede analizar en busca de vulnerabilidades en varios tipos de paquetes de SO y paquetes de lenguajes de aplicaciones.
En las siguientes tablas, se comparan los tipos de paquetes que Artifact Analysis puede analizar con cada servicio de análisis:
Paquetes de SO compatibles
| Análisis automático con Artifact Registry | Análisis a pedido | |
|---|---|---|
| SO AlmaLinux | ||
| Alpine | ||
| CentOS | ||
| Chainguard | ||
| Debian | ||
| Distroless de Google | ||
| MinimOS | ||
| Red Hat Enterprise Linux (RHEL) | ||
| Imagen base universal (UBI) de Red Hat | ||
| Rocky Linux | ||
| SUSE Linux Enterprise Server (SLES) | ||
| Ubuntu | ||
| Wolfi |
Paquetes de lenguajes de aplicaciones compatibles
| Análisis automático con Artifact Registry | Análisis a pedido | |
|---|---|---|
| Paquetes de Go | ||
| Paquetes de Java | ||
| Paquetes de Node.js | ||
| Paquetes de PHP | ||
| Paquetes de Python | ||
| Paquetes de Ruby | ||
| Paquetes de Rust | ||
| Paquetes de .NET |
Para obtener más información sobre las funciones disponibles para cada producto de registro, consulta el cuadro comparativo.
Artifact Analysis no es compatible con los contenedores de Windows Server.
Interfaces de Artifact Analysis
En la Google Cloud consola, puedes ver las vulnerabilidades de imágenes y los metadatos de las imágenes de los contenedores en Artifact Registry.
Puedes usar gcloud CLI para ver las vulnerabilidades y los metadatos de las imágenes.
También puedes usar la API de REST de Artifact Analysis para realizar cualquiera de estas acciones. Al igual que con otras APIs de Cloud Platform, debes autenticar el acceso con OAuth2. Una vez que te hayas autenticado, también puedes usar la API para crear notas y casos personalizados, y ver los casos de vulnerabilidades.
La API de Artifact Analysis admite gRPC y REST/JSON. Puedes realizar llamadas a la API a través de las bibliotecas cliente o mediante el uso de cURL para REST/JSON.
Cómo encontrar rutas de acceso a archivos de paquetes
Cuando Artifact Analysis encuentra una vulnerabilidad, es posible que no reconozcas el paquete vulnerable como una dependencia en tu artefacto. Esto puede suceder si el administrador de paquetes lo introduce o si el paquete es una dependencia transitiva, es decir, una dependencia de una de tus dependencias.
Para encontrar la ruta de acceso al archivo que causó un hallazgo de vulnerabilidad, sigue estos pasos:
- En la Google Cloud consola, ve a la lista de vulnerabilidades de un artefacto en Ir a Artifact Registry.
- Para la vulnerabilidad que deseas investigar, haz clic en VER CORRECCIÓN.
En el panel de detalles, haz clic en MOSTRAR MÁS INFORMACIÓN.
El campo Ubicación del archivo muestra la ruta de acceso al paquete vulnerable.
Controla la implementación de imágenes vulnerables
Puedes integrar Artifact Analysis en la autorización binaria para crear certificaciones, lo que puede evitar que las imágenes de contenedor con problemas de seguridad conocidos se ejecuten en tu entorno de implementación.
También puedes usar la autorización binaria para crear una lista de anunciantes permitidos de vulnerabilidad basada en la información de vulnerabilidad que proporciona Artifact Analysis como parte de tu implementación. Si las vulnerabilidades infringen la política en la lista de anunciantes permitidos, recibirás una alerta.
Por último, puedes usar el análisis a pedido para bloquear y fallar las compilaciones según la gravedad de las vulnerabilidades encontradas.
Fuentes de vulnerabilidades
En la siguiente sección, se enumeran las fuentes de vulnerabilidades que Artifact Analysis usa para obtener CVE.
Análisis de paquetes de SO
Artifact Analysis usa las siguientes fuentes:
- SO AlmaLinux
- Alpine
- CentOS: Red Hat y CentOS comparten la misma fuente de datos de vulnerabilidad. Debido a que los paquetes de CentOS se publican después de los paquetes de Red Hat, una corrección disponible para una vulnerabilidad en Red Hat puede tardar un tiempo en estar disponible para CentOS.
- Chainguard
- Debian
- Distroless de Google se basa en Debian y usa los datos de vulnerabilidad de Debian.
- Base de datos nacional de vulnerabilidades
- Minimus
- 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 para paquetes de idiomas dentro de una imagen de contenedor. Los datos de vulnerabilidad se obtienen de la base de datos de asesoría de GitHub.
En la mayoría de los casos, a cada vulnerabilidad se le asigna un ID de CVE, y este ID se convierte en el identificador principal de esa vulnerabilidad. En los casos en los que no se asigna un ID de CVE a una vulnerabilidad, se asigna un ID de GHSA como identificador. Si más adelante esa vulnerabilidad obtiene un ID de CVE, el ID de vulnerabilidad se actualiza para que coincida con el CVE. Consulta Busca una vulnerabilidad específica en un proyecto para obtener más información.
Versiones de SO compatibles
Artifact Analysis admite el análisis de vulnerabilidades para las siguientes versiones de software del sistema operativo:
- SO AlmaLinux: Versiones: 8, 9, 10 y versiones anteriores
- 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, 3.22, 3.23
- CentOS: Versiones: 6, 7, 8 y versiones anteriores
- Chainguard: Actualizaciones progresivas en un solo segmento de lanzamiento
- Debian GNU/Linux: Versiones: 11, 12, 13, 14, 15
- MinimOS: Actualizaciones progresivas en un solo segmento de lanzamiento
- Red Hat Enterprise Linux (RHEL): Se admiten las versiones 7, 8, 9 y las versiones anteriores para los análisis automáticos del registro.
- Imagen base universal (UBI) de Red Hat: Versiones 8, 9 y versiones anteriores
- Rocky Linux: Versiones: 8, 9, 10 y versiones anteriores
- SUSE Linux Enterprise Server (SLES): Versiones: 12, 15 y versiones anteriores; SLES para 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, 25.04, 25.10
- Wolfi: Actualizaciones progresivas en un solo segmento de lanzamiento
Limitaciones
La función principal de Artifact Analysis es analizar y detectar vulnerabilidades en contenedores, y hacer que esas vulnerabilidades sean visibles para tu organización. Artifact Analysis no afirma identificar características de las imágenes que podrían aumentar o disminuir la capacidad de tu organización para verificar la integridad o la confianza de una imagen. Para desarrollar aún más esta confianza, Google tiene soluciones que puedes usar de forma individual o combinada. Obtén más información sobre nuestro enfoque de seguridad de la cadena de suministro de software.
Artifact Analysis entrega resultados de análisis de vulnerabilidades para RHEL basados en la última versión secundaria de cada versión principal publicada. Si analizas una versión secundaria anterior, es posible que obtengas resultados inexactos.
La versión 9 de RHEL no es compatible con el análisis a pedido.
Administradores de paquetes y control de versiones semántico
- Go: Artifact Analysis informa vulnerabilidades para paquetes en la biblioteca estándar de Go y paquetes externos de Go que no están incluidos en la biblioteca estándar. Las vulnerabilidades se informan con una etiqueta diferente para cada tipo de paquete.
- Java: Artifact Analysis admite paquetes de Maven que siguen las convenciones de nombres de Maven. Si la versión del paquete incluye espacios, no se analizará.
- Node.js: La coincidencia de versiones de paquetes sigue la especificación de control de versiones semántico.
- PHP: Artifact Analysis analiza paquetes de Composer. Consulta Control de versiones semántico de Composer.
- Python: La coincidencia de versiones de Python sigue la semántica de PEP 440.
- Ruby: Artifact Analysis analiza paquetes de RubyGems. Consulta Control de versiones semántico de RubyGems.
- Rust: Artifact Analysis analiza paquetes de Cargo. Consulta Control de versiones semántico de Rust.
- .NET: Artifact Analysis analiza paquetes de NuGet. Consulta Control de versiones semántico de NuGet.