SEC11-BP05 Centralización de servicios para paquetes y dependencias
Proporcione servicios centralizados para que los equipos de creadores obtengan paquetes de software y otras dependencias. De este modo, se podrán validar los paquetes antes de incluirlos en el software que escriba y se dispondrá de un origen de datos para el análisis del software que se utiliza en su organización.
Resultado deseado: el software se compone de un conjunto de otros paquetes de software además del código que se está programando. Esto facilita el consumo de implementaciones de funcionalidades que se utilizan repetidamente, como un analizador JSON o una biblioteca de cifrado. La centralización lógica de los orígenes de estos paquetes y dependencias proporciona un mecanismo para que los equipos de seguridad validen las propiedades de los paquetes antes de utilizarlos. Este planteamiento también reduce el riesgo de que se produzca un problema inesperado debido a un cambio en un paquete existente o a la inclusión por equipos de creadores de paquetes arbitrarios directamente desde Internet. Utilice este planteamiento junto con los flujos de pruebas manuales y automatizadas para aumentar la confianza en la calidad del software que desarrolla.
Patrones comunes de uso no recomendados:
-
Obtener paquetes de repositorios arbitrarios de Internet.
-
No probar nuevos paquetes antes de ponerlos a disposición de los desarrolladores.
Beneficios de establecer esta práctica recomendada:
-
Mejor comprensión de los paquetes que se utilizan en el software que se crea.
-
Poder notificar a los equipos de carga de trabajo cuándo es necesario actualizar un paquete en función de la comprensión de quién utiliza qué.
-
Reducción del riesgo de que se incluya en el software un paquete con problemas.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio
Guía para la implementación
Proporcione servicios centralizados para paquetes y dependencias de una manera que resulte sencilla de consumir a los creadores. Los servicios centralizados pueden ser lógicamente centrales en lugar de implementarse como un sistema monolítico. Este método le permite proporcionar servicios de una manera que satisfaga las necesidades de los creadores. Debe implementar una forma eficaz de agregar paquetes al repositorio cuando se produzcan actualizaciones o surjan nuevos requisitos. Los servicios de AWS como AWS CodeArtifact
Pasos para la implementación:
Implemente un servicio de repositorio lógicamente centralizado que esté disponible en todos los entornos en los que se desarrolla software.
Incluya el acceso al repositorio como parte del proceso de aprovisionamiento de cuentas de Cuenta de AWS.
Consolide la automatización para probar paquetes antes de que se publiquen en un repositorio.
Mantenga métricas de los paquetes, lenguajes y equipos más utilizados y con mayor cantidad de cambios.
-
Proporcione un mecanismo automatizado para que los equipos de creación soliciten nuevos paquetes y proporcionen comentarios.
-
Analice periódicamente los paquetes del repositorio para identificar la posible repercusión de los problemas que se acaban de detectar.
Recursos
Prácticas recomendadas relacionadas:
Documentos relacionados:
Videos relacionados:
Ejemplos relacionados: