Las imágenes de contenedor no son un simple empaquetado del código de la aplicación: son artefactos de software completos que incluyen el código de la aplicación, sus dependencias de tiempo de ejecución, las bibliotecas del sistema, las utilidades del sistema operativo y toda la pila de software de la imagen base. Cuando un proveedor entrega software como imagen de contenedor, la evaluación de seguridad debe extenderse a cada capa de esa imagen: la capa del código de la aplicación, las capas de dependencias añadidas durante el proceso de compilación y la capa de la imagen base que constituye el fundamento. Las vulnerabilidades de las bibliotecas del sistema de la imagen base son vulnerabilidades del software entregado, por limpia que esté la capa del código de la aplicación.
El problema de la obsolescencia de la imagen base es el fallo más común de la cadena de suministro de contenedores. Las imágenes base, las capas de fundamento a partir de las cuales se compilan las imágenes de contenedor de las aplicaciones, contienen paquetes y bibliotecas del sistema operativo que acumulan vulnerabilidades con el tiempo. Un proveedor que compila su aplicación sobre una imagen base y no la actualiza con regularidad aumenta progresivamente el número de vulnerabilidades de los contenedores que entrega. La imagen base python:3.9-slim de hace cuatro meses tiene un perfil de vulnerabilidades distinto del de la misma etiqueta compilada hoy, porque las publicaciones de vulnerabilidades se acumulan y la imagen base incorpora las actualizaciones de los paquetes del sistema operativo cuando se reconstruye, pero solo si se reconstruye.
El malentendido sobre la inmutabilidad de las etiquetas de imagen es el problema de configuración concreto. Las etiquetas de imagen de contenedor (python:3.9-slim, ubuntu:22.04) parecen hacer referencia a versiones fijas, pero en realidad son punteros mutables que el responsable de mantener la imagen base puede actualizar. Una imagen compilada hoy sobre python:3.9-slim puede tener una composición de software distinta de una imagen compilada mañana sobre python:3.9-slim si el responsable de la imagen base publica una actualización de esa etiqueta. Los proveedores que compilan sus imágenes sobre etiquetas mutables y no las reconstruyen con frecuencia pueden tener imágenes con capas base obsoletas, aunque su intención sea utilizar imágenes actuales.
Por qué es importante
El riesgo de la cadena de suministro de imágenes de contenedor es importante para TPRM porque el software entregado en contenedores incluye toda la pila de software del proveedor, incluidas las bibliotecas del sistema y los componentes del sistema operativo, y no solo el código de la aplicación. Un proveedor que ha invertido mucho en la seguridad del código de la aplicación y ha descuidado la actualidad de la imagen base del contenedor puede estar entregando software con vulnerabilidades críticas a nivel de sistema que eluden toda la garantía de seguridad de las aplicaciones que la empresa ha recopilado.
- Seguridad de las aplicaciones evaluada sin evaluar la imagen de contenedor
- Antigüedad y estado de vulnerabilidades de la imagen base no evaluados
- Vulnerabilidades de las bibliotecas del sistema en contenedores fuera del alcance del SCA estándar
- Frecuencia de reconstrucción de las imágenes no evaluada junto con la aplicación de parches a la aplicación
- SBOM del contenedor no solicitado junto con el SBOM de la aplicación
Cómo se ve una buena práctica
Los programas maduros de la cadena de suministro de contenedores evalúan el perfil completo de vulnerabilidades de la imagen, incluidas las capas de la imagen base, con herramientas de análisis específicas para contenedores, solicitan los SBOM de los contenedores junto con los SBOM de las aplicaciones, exigen reconstrucciones periódicas de la imagen base para incorporar las actualizaciones de los paquetes del sistema operativo y hacen un seguimiento de la antigüedad de las imágenes de contenedor como métrica de seguridad.
- Análisis de vulnerabilidades de las imágenes de contenedor: evaluación de todas las capas, incluida la imagen base
- SBOM del contenedor, incluidos los componentes de las bibliotecas del sistema y de la imagen base
- Frecuencia de reconstrucción de la imagen base: con qué frecuencia se reconstruyen las imágenes a partir de una base actualizada
- Seguimiento de la antigüedad de la imagen: qué antigüedad tiene la imagen de contenedor en ejecución respecto de la última reconstrucción
- Imágenes base distroless o mínimas que reducen la superficie de ataque de las bibliotecas del sistema
Herramientas
Análisis de contenedores: Trivy, Grype, análisis de AWS ECR y Google Container Analysis para el análisis de todas las capas de las imágenes de contenedor
Las herramientas de análisis específicas para contenedores evalúan toda la pila de capas de la imagen, incluidas las bibliotecas del sistema de la imagen base, y no solo las dependencias de la aplicación que cubren las herramientas de SCA estándar. Tanto Trivy como Grype admiten el análisis de imágenes de contenedor con un análisis completo de las capas. Para los profesionales de TPRM, preguntar si los proveedores analizan sus imágenes de contenedor con herramientas que cubren todas las capas (y no solo con SCA de la capa de aplicación) aporta una pregunta concreta sobre la seguridad de los contenedores.
Imagen base: Google Distroless y Chainguard Images para imágenes base con una superficie de ataque mínima
Las imágenes base distroless y mínimas, que contienen solo el entorno de ejecución de la aplicación y nada más, reducen significativamente la superficie de ataque de las bibliotecas del sistema en comparación con las imágenes base de uso general. Para los profesionales de TPRM, preguntar si los proveedores utilizan imágenes base distroless o mínimas aporta una pregunta concreta sobre la reducción de la superficie de ataque que aborda el problema de la acumulación de vulnerabilidades en la imagen base.
Desafíos de gobernanza
El desafío de gobernanza de la cadena de suministro de imágenes de contenedor es el problema de la disciplina de reconstrucción. Reconstruir las imágenes de contenedor con regularidad para incorporar las actualizaciones de la imagen base exige una disciplina operativa que compite con la estabilidad de los despliegues. Los proveedores pueden resistirse a las reconstrucciones frecuentes porque cada una introduce un posible riesgo de regresión. La solución de gobernanza son los pipelines de reconstrucción automatizados que se activan con las actualizaciones de la imagen base, combinados con pruebas de regresión que hacen que las reconstrucciones frecuentes sean sostenibles desde el punto de vista operativo.
- Solicite los resultados del análisis de vulnerabilidades de las imágenes de contenedor junto con el SCA de la aplicación
- Pregunte por la frecuencia de reconstrucción de la imagen base: con qué frecuencia se reconstruyen las imágenes
- Solicite el SBOM del contenedor, incluidos los componentes de las bibliotecas del sistema y de la imagen base
- Pregunte por la adopción de imágenes base distroless o mínimas
- Haga un seguimiento de la antigüedad de las imágenes de contenedor como indicador de acumulación de vulnerabilidades
Si usted forma parte de un equipo pequeño
Para el software entregado en contenedores más crítico de su proveedor, solicite los resultados completos del análisis de vulnerabilidades de la imagen de contenedor realizado con Trivy o con un analizador equivalente de todas las capas. Compare esos resultados con los resultados del SCA de la capa de aplicación que el proveedor haya facilitado anteriormente. La diferencia (las vulnerabilidades del análisis del contenedor que no figuran en el SCA de la aplicación) es la exposición a vulnerabilidades de las bibliotecas del sistema y de la imagen base que la evaluación de la aplicación no abordó. Pregunte con qué frecuencia se reconstruye la imagen de contenedor a partir de la imagen base actual.
- Solicite los resultados del análisis de todas las capas del contenedor para el software crítico entregado en contenedores
- Compare el análisis del contenedor con el SCA de la aplicación: identifique la diferencia de vulnerabilidades de la imagen base
- Pregunte por la frecuencia de reconstrucción de la imagen base
- Solicite el SBOM del contenedor, incluidas las bibliotecas del sistema
Qué exigir
Pregunte directamente:
"En el software que entregan en contenedores, ¿analizan toda la pila de capas de la imagen, incluidas las bibliotecas del sistema de la imagen base? ¿Y con qué frecuencia reconstruyen sus imágenes de contenedor a partir de una base actualizada para incorporar las actualizaciones de los paquetes del sistema operativo?"
Evidencia que debe esperar
- Resultados del análisis de todas las capas de la imagen de contenedor
- Frecuencia y proceso de reconstrucción de la imagen base
- SBOM del contenedor, incluidas las bibliotecas del sistema
- Justificación de la elección de la imagen base: preferencia por imágenes distroless o mínimas
A un proveedor que confirma la seguridad de sus aplicaciones se le debe preguntar por la seguridad de sus imágenes de contenedor. El SCA de la aplicación cubre lo que escribió el proveedor. El análisis de contenedores cubre aquello sobre lo que el proveedor construyó su código. Ambos son necesarios para el software entregado en contenedores.
Cómo demostrarlo
- Resultados del análisis de contenedores del software entregado
- Evaluación de la actualidad de la imagen base
- Revisión del SBOM del contenedor
- Requisito de seguridad de contenedores en la evaluación de proveedores
Conclusión clave
Aplicación: segura. Imagen base del contenedor: 4 meses desactualizada, 17 CVE, 2 RCE críticas en glibc. Evaluación de la aplicación: completa. Capa del contenedor: no evaluada. Las imágenes de contenedor incluyen toda la pila de software: el código de la aplicación y las bibliotecas del sistema sobre las que se ejecuta. El SCA de la aplicación cubre la capa de código. El análisis de contenedores cubre toda la pila. Las vulnerabilidades de las bibliotecas del sistema de la imagen base son vulnerabilidades del software entregado, por limpio que esté el código de la aplicación. Las imágenes distroless reducen la superficie. Las reconstrucciones periódicas la mantienen actualizada. El análisis de todas las capas la hace visible.