Compartir a través de


Información general sobre la fase de compilación

La creación de imágenes de contenedor es la tercera fase del marco de la cadena de suministro segura (CSSC) de contenedores. Aunque algunas empresas extraen las imágenes base de orígenes externos directamente, otras pueden extraer las imágenes base del catálogo interno sin comprobar las imágenes con sus firmas y atestaciones. Es fundamental asegurarse de que las imágenes base siempre se extraen del catálogo interno y se comprueben antes de su uso. Después de compilar las imágenes, algunas empresas las publican sin detección de vulnerabilidades y malware, y no generan atestaciones como SBOM, que no se pueden comprobar en las fases posteriores de la cadena de suministro. Es esencial asegurarse de que las imágenes de contenedor generadas son de confianza y compatibles con las directivas empresariales.

El marco de la cadena de suministro segura (CSSC) de contenedores de Microsoft identifica la necesidad de crear imágenes de contenedor y proporciona un conjunto de procedimientos recomendados y herramientas que le ayudarán a crear imágenes de confianza y compatibles de forma segura. En este artículo, obtendrá información sobre los objetivos, los procedimientos recomendados y las herramientas que puede usar en la fase de compilación del marco CSSC.

Fondo

Actualmente, las empresas usan varios enfoques para crear imágenes de contenedor compatibles de forma segura. Antes de compilar imágenes de contenedor, se necesitan equipos internos para extraer imágenes base de registros dorados internos. Sin embargo, estas imágenes no se comprueban antes de su uso, lo que no se recomienda, ya que los registros dorados se pueden poner en peligro y las imágenes pueden ser malintencionadas. Las empresas también controlan el origen de las bibliotecas y paquetes que se agregan a las imágenes de contenedor para garantizar la calidad.

Después de compilar imágenes de contenedor, las empresas generan metadatos adicionales para asegurarse de que las imágenes de contenedor son compatibles. Algunas empresas aprovechan un documento de la procedencia de SLSA para saber qué confirmación de Git es responsable de generar la imagen de contenedor y si es reproducible. Otros usan etiquetas de Docker para proporcionar la procedencia en el propietario de la imagen de contenedor y quién es responsable de la confirmación de la imagen. Algunas empresas examinan la imagen para detectar vulnerabilidades y malware y generan informes en consecuencia.

La fase de compilación del marco CSSC recomienda un conjunto de pasos y controles de seguridad que se deben implementar para generar imágenes de contenedor confiables y compatibles antes de que se publiquen.

Microsoft recomienda los procedimientos siguientes para crear imágenes de contenedor compatibles de forma segura.

  • Extraiga imágenes base solo del catálogo interno para reducir la superficie expuesta a ataques y mejorar la seguridad.
  • Cuando esté disponible, compruebe las firmas y atestaciones de las imágenes base antes de usarlas para asegurarse de que son confiables y compatibles.
  • Las imágenes sin distribución solo contienen la aplicación y sus dependencias en tiempo de ejecución, sin ningún software adicional ni componentes del sistema operativo. Use imágenes sin distribución como imágenes base para reducir la superficie expuesta a ataques y mejorar la seguridad.
  • Aplique el acceso con privilegios mínimos a la plataforma o servicio de compilación para asegurarse de que solo los usuarios autorizados puedan realizar cambios o modificaciones, lo que reduce el riesgo de acceso no autorizado, infracciones de datos y otros incidentes de seguridad.
  • Examine las imágenes de contenedor para detectar vulnerabilidades y malware después de la compilación para mitigar el riesgo de introducir vulnerabilidades de seguridad.
  • Enriquecer las imágenes de contenedor después de la compilación con metadatos adicionales, como SBOM y metadatos de origen.
  • Firmar imágenes de contenedor y metadatos relevantes después de la compilación con claves de empresa para garantizar la integridad y proporcionar una marca de confianza de aprobación para uso interno.
  • Aplique revisiones a las imágenes de contenedor de forma oportuna para solucionar las vulnerabilidades conocidas.
  • Mantenga las dependencias razonablemente actualizadas para mantenerse al día con las vulnerabilidades y las correcciones de seguridad.

Flujo de trabajo para crear imágenes de contenedor compatibles

La fase de compilación tiene un flujo de trabajo implementado para crear una imagen de contenedor compatible con las organizaciones y las directivas de seguridad. Es fundamental aplicar el control de acceso de nivel de privilegios a la plataforma o servicio de compilación solo para los usuarios autorizados. Cuando las imágenes base están disponibles en el catálogo, el flujo de trabajo de compilación hace lo siguiente:

  1. Extraiga imágenes base solo del catálogo interno.
  2. Compruebe las imágenes base antes de usarlas para asegurarse de que es confiable y compatible.
  3. Agregue marcos adicionales, código de aplicación o configuraciones del origen de confianza sobre las imágenes base para la compilación.
  4. Genere SBOM durante el proceso de compilación.
  5. Examine la imagen de contenedor resultante para detectar vulnerabilidades conocidas y malware después de la compilación para evitar la introducción de errores de seguridad.
  6. Aplicar revisiones a la imagen de contenedor resultante para solucionar vulnerabilidades conocidas y malware
  7. Adjunte los informes de vulnerabilidades y malware como atestaciones de imagen que se usarán en las fases posteriores de la cadena de suministro.
  8. Adjunte SBOM como atestaciones de imagen para usarlas en las fases posteriores de la cadena de suministro.
  9. Enriquecer la imagen resultante con metadatos adicionales, como metadatos de origen, para usarlos en fases posteriores de la cadena de suministro.
  10. Firmar la imagen resultante y los metadatos pertinentes con claves de empresa para garantizar la integridad y proporcionar una marca de aprobación de confianza para la fase de implementación

Objetivos de seguridad en la fase de compilación

Tener un flujo de trabajo bien definido para crear imágenes de contenedor de confianza y compatibles ayuda a las empresas a aumentar su seguridad y reducir la superficie expuesta a ataques en su cadena de suministro para contenedores. La fase de compilación del marco CSSC está pensada para satisfacer los siguientes objetivos de seguridad.

Reducir la superficie expuesta a ataques debido a un control de acceso incorrecto

Los usuarios internos pueden realizar cambios inesperados o configuraciones incorrectas en la infraestructura de compilación. La fase de compilación del marco CSSC aborda este riesgo aplicando el control de acceso con privilegios mínimos de forma predeterminada, para que los propietarios de recursos puedan asegurarse de que la persona adecuada tenga los permisos adecuados para realizar cambios y configuraciones, lo que reduce la superficie expuesta a ataques.

Reducir la superficie expuesta a ataques de usuarios internos malintencionados

El robo de identidad se puede usar para acceder a la plataforma de compilación, modificar archivos binarios e insertar cambios ilícitos que son invisibles para el desarrollador y los usuarios originales. También existe el riesgo de insertar código vulnerable o una configuración incorrecta por parte de los usuarios internos. La fase de compilación del marco CSSC aborda este riesgo aplicando el control de acceso basado en rol de Azure (Azure RBAC) y aplicando la revisión de código de varios propietarios de código.

Reducir la superficie expuesta a ataques debido a dependencias externas

Las imágenes base de orígenes externos pueden ser malintencionadas. Los registros externos se pueden poner en peligro. La fase de compilación del marco CSSC aborda este riesgo mediante el uso de imágenes base del catálogo solo y su comprobación en sus firmas, vulnerabilidades e informes de malware, y otros metadatos de imagen antes de usarlos.

Los paquetes malintencionados de software de código abierto (OSS) con puertas traseras ocultas pueden hacer que los archivos binarios del paquete no coincidan con el código fuente. La validez de las dependencias o los componentes de código abierto puede expirar, bloqueando las correcciones de seguridad más recientes de nivel superior. La fase de compilación del marco CSSC aborda este riesgo mediante bibliotecas aprobadas, el examen de vulnerabilidades y malware de forma periódica y mantener actualizadas las bibliotecas.

Reducir la superficie expuesta a ataques debido a compilaciones en peligro

Los agentes de compilación vulnerables pueden insertar archivos binarios secundarios o código malintencionado que puedan causar ataques como el ataque SolarWinds. La fase de compilación del marco CSSC aborda este riesgo mediante la aplicación de revisiones a los agentes de compilación de forma periódica.

Garantizar una calidad de imagen mínima

En la fase de compilación del marco CSSC, las empresas pueden configurar los pasos necesarios para el examen de vulnerabilidades y malware de las imágenes después de la compilación y generar informes. Las empresas también pueden enriquecer las imágenes después de la compilación con metadatos adicionales, incluidos SBOM, metadatos de provenencia y otros metadatos internos que cumplen sus directivas. También pueden firmar los artefactos con claves de empresa para garantizar la integridad y proporcionar una marca de confianza de aprobación para la fase de implementación.

Microsoft ofrece un conjunto de herramientas y servicios que pueden ayudar a las empresas a implementar los pasos recomendados en el flujo de trabajo de la fase de compilación y abordar los objetivos de seguridad enumerados anteriormente.

Herramientas para mantenerse al día después de la compilación

Dependabot es una herramienta para automatizar las actualizaciones de dependencia a través de solicitudes de incorporación de cambios. Para más información y los pasos siguientes, consulte esta guía.

Copa es un proyecto de código abierto respaldado por Microsoft, que aborda las vulnerabilidades del paquete del sistema operativo Linux en imágenes de contenedor en función de los resultados del examen de vulnerabilidades. Para más información y los pasos siguientes, consulte esta guía.

Herramientas y servicio para el examen continuo de vulnerabilidades e imágenes de aplicación de revisiones

Microsoft Defender for Cloud es la solución nativa de la nube para mejorar, supervisar y mantener la seguridad de las cargas de trabajo en contenedores. Microsoft Defender for Cloud ofrece herramientas de evaluación y administración de vulnerabilidades para imágenes almacenadas en Azure Container Registry.

Copa es un proyecto de código abierto respaldado por Microsoft, que aborda las vulnerabilidades del paquete del sistema operativo Linux en imágenes de contenedor en función de los resultados del examen de vulnerabilidades. Para más información y los pasos siguientes, consulte esta guía.

Herramientas y servicios para enriquecer imágenes externas con metadatos empresariales

ORAS es un proyecto CNCF respaldado por Microsoft que ofrece una CLI de código abierto y bibliotecas para interactuar con los registros de OCI. ORAS se puede usar para agregar anotaciones y adjuntar metadatos a una imagen de contenedor. ORAS se puede usar para agregar SBOM, metadatos de origen y otros metadatos para enriquecer las imágenes para las fases posteriores de la cadena de suministro.

La herramienta SBOM de Microsoft es una herramienta de código abierto, altamente escalable y lista para la empresa para crear SBOM compatibles con SPDX 2.2 para cualquier variedad de artefactos. La herramienta SBOM se puede usar para generar SBOM detallados para imágenes de contenedor.

Notary Project es un proyecto CNCF respaldado por Microsoft que desarrolla especificaciones y herramientas para firmar y comprobar artefactos de software. La herramienta Notary Project notation se puede usar para firmar imágenes de contenedor y otros artefactos nativos de la nube con claves de empresa.

Azure Key Vault es un servicio basado en la nube que proporciona una ubicación segura y centralizada para almacenar y administrar claves criptográficas, secretos y certificados. AKV se puede usar para almacenar y administrar las claves empresariales de forma segura y confiable.

Pasos siguientes

Consulte información general de la fase Implementación para implementar imágenes de contenedor de forma segura.