Compartir comentarios
Las respuestas se generan en base a la documentación.

Niveles de cadena de suministro para artefactos de software (SLSA)

¿Qué es SLSA?

Supply-chain Levels for Software Artifacts (SLSA) es un marco de seguridad diseñado para mejorar la integridad y la seguridad de las cadenas de suministro de software. Desarrollado por Google y mantenido por la Open Source Security Foundation (OpenSSF), SLSA proporciona un conjunto de directrices y mejores prácticas para prevenir manipulaciones, mejorar la integridad y proteger los paquetes y la infraestructura en los proyectos de software.

SLSA define cuatro niveles de construcción (0–3) con un rigor de seguridad creciente, centrándose en áreas como la procedencia de la construcción, la integridad de las fuentes y la seguridad del entorno de construcción. Cada nivel se basa en el anterior, ofreciendo un enfoque estructurado para alcanzar niveles más altos de seguridad en la cadena de suministro de software.

¿Por qué es importante SLSA?

SLSA es crucial para el desarrollo de software moderno debido a la creciente complejidad e interconexión de las cadenas de suministro de software. Los ataques a la cadena de suministro, como la brecha de SolarWinds, han puesto de manifiesto las vulnerabilidades en los procesos de desarrollo de software. Al implementar SLSA, las organizaciones pueden:

  • Garantizar la integridad del artefacto: Verificar que los artefactos de software no hayan sido manipulados durante los procesos de construcción y despliegue.

  • Mejorar la procedencia de la construcción: Mantener registros verificables de cómo y cuándo se produjeron los artefactos de software, proporcionando transparencia y rendición de cuentas.

  • Proteger los entornos de construcción: Implementar controles para proteger los sistemas de construcción de accesos y modificaciones no autorizados.

  • Mitigar los riesgos de la cadena de suministro: Reducir el riesgo de introducir vulnerabilidades o código malicioso en la cadena de suministro de software.

¿Qué es el nivel 3 de construcción de SLSA?

El nivel 3 de construcción de SLSA, construcciones endurecidas (Hardened Builds), es el más alto de los cuatro niveles progresivos en el marco de SLSA. Introduce requisitos estrictos para garantizar que los artefactos de software se construyan de forma segura y rastreable. Para cumplir con el nivel 3, una construcción debe:

  • Estar completamente automatizada y programada mediante scripts para evitar manipulaciones manuales
  • Utilizar un servicio de construcción confiable que aplique la autenticación del origen y del constructor
  • Generar un registro de procedencia firmado y resistente a manipulaciones que describa cómo se construyó el artefacto
  • Capturar metadatos sobre el entorno de construcción, el repositorio de origen y los pasos de construcción

Este nivel proporciona sólidas garantías de que el software se construyó a partir de la fuente esperada en un entorno controlado y auditable, lo que reduce significativamente el riesgo de ataques a la cadena de suministro.

Las Docker Hardened Images y SLSA

Las Docker Hardened Images (DHI) son imágenes de contenedor seguras por defecto, diseñadas específicamente para entornos de producción modernos. Cada DHI está firmada criptográficamente y cumple con el estándar de nivel 3 de construcción de SLSA, lo que garantiza la procedencia e integridad verificables de la construcción.

Al integrar las DHI compatibles con SLSA en tus procesos de desarrollo y despliegue, puedes:

  • Alcanzar niveles de seguridad más altos: Utilizar imágenes que cumplen con estrictos estándares de seguridad, reduciendo el riesgo de vulnerabilidades y ataques.

  • Facilitar el cumplimiento: Aprovechar características integradas como las listas de materiales de software (SBOM) firmadas y las declaraciones de excepciones de vulnerabilidad (VEX) para facilitar el cumplimiento de regulaciones como FedRAMP.

  • Mejorar la transparencia: Acceder a información detallada sobre los componentes y el proceso de construcción de cada imagen, promoviendo la transparencia y la confianza.

  • Optimizar las auditorías: Utilizar firmas y registros de construcción verificables para facilitar las auditorías y evaluaciones de seguridad.

Obtener y verificar la procedencia de SLSA para las Docker Hardened Images

Cada Docker Hardened Image (DHI) está firmada criptográficamente e incluye atestaciones. Estas atestaciones proporcionan una procedencia de construcción verificable y demuestran la adhesión a los estándares del nivel 3 de construcción de SLSA.

Para obtener y verificar la procedencia de SLSA para una DHI, puedes utilizar Docker Scout.

$ docker scout attest get dhi.io/<image>:<tag> \
  --predicate-type https://slsa.dev/provenance/v0.2 \
  --verify

Por ejemplo:

$ docker scout attest get dhi.io/node:20.19-debian12 \
  --predicate-type https://slsa.dev/provenance/v0.2 \
  --verify

Recursos

Para obtener más detalles sobre las definiciones de SLSA y Docker Build, consulta las definiciones de SLSA.