Cómo se construyen las Docker Hardened Images
Las Docker Hardened Images se construyen a través de un pipeline automatizado que supervisa las fuentes ascendentes (upstream), aplica actualizaciones de seguridad y publica artefactos firmados. Esta página explica el proceso de construcción tanto para las imágenes base DHI como para las imágenes personalizadas disponibles con las suscripciones DHI Select y DHI Enterprise.
Con las suscripciones DHI Select o DHI Enterprise, el pipeline de actualización de seguridad automatizado para las imágenes base y personalizadas está respaldado por compromisos de SLA, incluido un SLA de 7 días para vulnerabilidades críticas y de alta gravedad. DHI Community ofrece una línea base segura pero sin plazos de remediación garantizados.
Transparencia de la construcción
Las Docker Hardened Images proporcionan transparencia sobre cómo se construyen las imágenes a través de definiciones de acceso público y atestaciones verificables.
Definiciones de imagen
Todas las definiciones de imagen están disponibles públicamente en el repositorio del catálogo.
Cada definición de imagen es una especificación declarativa en YAML que incluye metadatos, contenido, pasos del pipeline de construcción, configuraciones de seguridad y ajustes del entorno de ejecución.
Atestaciones de SLSA
Cada Docker Hardened Image incluye una atestación de nivel 3 de construcción de SLSA que proporciona una procedencia de construcción verificable. Para más detalles sobre las atestaciones de SLSA y cómo verificarlas, consulta SLSA.
Disparadores de construcción
Las construcciones comienzan de forma automática. No las inicias manualmente. El sistema supervisa los cambios y arranca las construcciones en dos escenarios:
Actualizaciones ascendentes (upstream)
Las nuevas publicaciones, actualizaciones de paquetes o correcciones de CVE de los proyectos ascendentes (upstream) desencadenan la reconstrucción de la imagen base. Estas construcciones pasan por controles de calidad para garantizar la seguridad y la confiabilidad.
Supervisión de actualizaciones
Docker supervisa continuamente los proyectos ascendentes (upstream) en busca de nuevas versiones, actualizaciones de paquetes y avisos de seguridad. Cuando se detectan cambios, el sistema encola automáticamente las imágenes afectadas para su reconstrucción utilizando un sistema de construcción conforme con el nivel 3 de construcción de SLSA.
Docker utiliza tres estrategias para realizar el seguimiento de las actualizaciones:
- GitHub releases: Supervisa repositorios específicos de GitHub en busca de nuevas versiones y actualiza automáticamente la definición de la imagen cuando se publica una nueva versión.
- GitHub tags: Realiza el seguimiento de las etiquetas (tags) en los repositorios de GitHub para detectar nuevas versiones.
- Repositorios de paquetes: Supervisa los repositorios de paquetes de Alpine Linux, Debian y Ubuntu a través de la base de datos de paquetes de Docker Scout para detectar paquetes actualizados.
Además del seguimiento ascendente explícito, Docker también supervisa las dependencias transitivas. Cuando se detecta una actualización de paquete (por ejemplo, un parche de seguridad para una librería), Docker identifica y reconstruye automáticamente todas las imágenes dentro del periodo de soporte que utilizan ese paquete.
Cambios de personalización
Las actualizaciones en las personalizaciones de tus artefactos OCI desencadenan la reconstrucción de tus imágenes personalizadas.
Al personalizar una imagen DHI con DHI Select o DHI Enterprise, tus cambios se empaquetan como artefactos OCI que se superponen a la imagen base. Docker supervisa tus repositorios de artefactos y reconstruye automáticamente tus imágenes personalizadas cada vez que subes (push) actualizaciones.
El proceso de reconstrucción obtiene la imagen base actual, aplica tus artefactos OCI, firma el resultado y lo publica de forma automática. No necesitas gestionar construcciones ni mantener pipelines de CI para tus imágenes personalizadas.
Las imágenes personalizadas también se reconstruyen de forma automática cuando la imagen base DHI de la que dependen recibe actualizaciones, garantizando que tus imágenes siempre incluyan los parches de seguridad más recientes.
Pipeline de construcción
Las siguientes secciones describen la arquitectura del pipeline de construcción y el flujo de trabajo para las Docker Hardened Images según:
Pipeline de imagen base
Cada Docker Hardened Image se construye a través de un pipeline automatizado:
- Supervisión: Docker supervisa las fuentes ascendentes (upstream) en busca de actualizaciones (nuevas versiones, actualizaciones de paquetes, avisos de seguridad).
- Disparador de reconstrucción: Cuando se detectan cambios, se inicia una reconstrucción automatizada.
- AI guardrail (protección por IA): Un sistema de IA obtiene los diffs ascendentes y los escanea con comprobaciones adaptadas al lenguaje de programación. El guardrail se enfoca en problemas de alto impacto que pueden causar fallos significativos, como comprobaciones de errores invertidas, fallos ignorados, mal manejo de recursos o actividad sospechosa de contribuidores. Cuando detecta riesgos potenciales, bloquea la fusión automática del PR.
- Revisión humana: Si la IA identifica riesgos con un alto nivel de confianza, los ingenieros de Docker revisan el código marcado, reproducen el problema y deciden la acción adecuada. A menudo, los ingenieros aportan correcciones a los proyectos ascendentes, mejorando el código para toda la comunidad. Cuando se aceptan las correcciones ascendentes, el pipeline de construcción de DHI aplica el parche de inmediato para proteger a los clientes mientras la corrección avanza por el proceso de publicación ascendente.
- Pruebas y escaneo: Las imágenes se someten a completas pruebas de compatibilidad y funcionalidad, y se escanean en busca de malware, secretos y vulnerabilidades.
- Firma y atestaciones: Docker firma cada imagen y genera atestaciones (SBOM, documentos VEX, procedencia de la construcción).
- Publicación: La imagen firmada se publica en el registro DHI y las atestaciones se publican en el registro de Docker Scout.
- Reconstrucciones en cascada: Si alguna imagen personalizada utiliza esta base, sus reconstrucciones se activan automáticamente.
Docker responde rápidamente a las vulnerabilidades críticas. Al construir los componentes esenciales a partir del código fuente en lugar de esperar actualizaciones empaquetadas, Docker puede parchear las CVE críticas y de alta gravedad en cuestión de días tras las correcciones ascendentes y publicar imágenes actualizadas con nuevas atestaciones. Para las suscripciones DHI Enterprise, esta respuesta rápida está respaldada por un SLA de 7 días para vulnerabilidades críticas y de alta gravedad.
El siguiente diagrama muestra el flujo de construcción de la imagen base:
Pipeline de imagen personalizada
Al personalizar una imagen DHI con DHI Select o DHI Enterprise, el proceso de construcción se simplifica:
- Supervisión: Docker supervisa tus repositorios de artefactos OCI en busca de cambios.
- Disparador de reconstrucción: Cuando subes (push) actualizaciones a tus artefactos OCI, o cuando la imagen base DHI se actualiza, se inicia una reconstrucción automatizada.
- Obtener la imagen base: Se obtiene la imagen base DHI más reciente.
- Aplicar personalizaciones: Tus artefactos OCI se aplican a la imagen base.
- Escaneo: La imagen personalizada se escanea en busca de malware, secretos y vulnerabilidades.
- Firma y atestaciones: Docker firma la imagen personalizada y genera atestaciones (SBOM, documentos VEX, procedencia de la construcción).
- Publicación: La imagen personalizada firmada se publica en Docker Hub y las atestaciones se publican en el registro de Docker Scout.
Docker maneja todo el proceso de forma automática, de modo que no necesitas gestionar las construcciones de tus imágenes personalizadas. Sin embargo, eres responsable de probar tus imágenes personalizadas y de gestionar cualquier CVE introducido por tus artefactos OCI.
El siguiente diagrama muestra el flujo de construcción de la imagen personalizada: