SEC06-BP02 Aprovisionamiento informático a partir de imágenes reforzadas
Ofrezca menos oportunidades de acceso no deseado a sus entornos en tiempo de ejecución mediante el despliegue desde imágenes reforzadas. Adquiera las dependencias de tiempo de ejecución (como imágenes de contenedores y bibliotecas de aplicaciones) únicamente de registros confiables y verifique sus firmas. Cree sus propios registros privados para almacenar imágenes y bibliotecas confiables para usarlas en sus procesos de desarrollo y despliegue.
Resultado deseado: aprovisionar sus recursos informáticos a partir de imágenes de referencia reforzadas. Adquirir dependencias externas, como imágenes de contenedores y bibliotecas de aplicaciones, solamente de registros confiables y verificar sus firmas. Almacenarlas en registros privados para su consulta en los procesos de desarrollo y despliegue. Escanear y actualizar las imágenes y las dependencias con regularidad para ayudar a protegerse contra cualquier vulnerabilidad recién descubierta.
Antipatrones usuales:
-
Adquirir imágenes y bibliotecas de registros confiables, pero no verificar su firma ni realizar análisis de vulnerabilidades antes de utilizarlas.
-
Reforzar las imágenes, pero no probarlas con regularidad para detectar nuevas vulnerabilidades ni actualizarlas a la versión más reciente.
-
Instalar o no eliminar paquetes de software que no sean necesarios durante el ciclo de vida esperado de la imagen.
-
Confiar únicamente en los parches para mantener actualizados los recursos informáticos de producción. El uso de parches por sí solo puede seguir haciendo que los recursos informáticos diverjan del estándar reforzado con el paso del tiempo. También es posible que el uso de parches no elimine el malware que un actor de amenazas pueda haber instalado durante un evento de seguridad.
Beneficios de establecer esta práctica recomendada: el refuerzo de las imágenes ayuda a reducir la cantidad de rutas disponibles en el entorno de tiempo de ejecución que pueden permitir el acceso no deseado a usuarios o servicios no autorizados. También puede reducir el alcance del impacto en caso de que se produzca un acceso no deseado.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto
Guía para la implementación
Para reforzar sus sistemas, comience con las versiones más recientes de los sistemas operativos, las imágenes de contenedores y las bibliotecas de aplicaciones. Aplique parches para solucionar los problemas conocidos. Reduzca al mínimo el sistema eliminando las aplicaciones, los servicios, los controladores de dispositivos, los usuarios predeterminados y otras credenciales que no sean necesarios. Realice cualquier otra acción necesaria, como deshabilitar los puertos para crear un entorno que solo tenga los recursos y las capacidades que necesiten sus cargas de trabajo. A partir de ahí, puede instalar el software, los agentes u otros procesos que necesite para objetivos como la supervisión de la carga de trabajo o la administración de vulnerabilidades.
Puede reducir la carga que supone reforzar los sistemas utilizando la orientación que proporcionan fuentes confiables, como el Center for Internet Security
Si bien existen imágenes reforzadas y recetas de EC2 Image Builder disponibles que aplican las recomendaciones del CIS o de las STIG de la DISA, es posible que su configuración impida que su software se ejecute correctamente. En esta situación, puede partir de una imagen de base no reforzada, instalar el software y, a continuación, aplicar los controles del CIS de forma gradual para comprobar su impacto. Para cualquier control del CIS que impida la ejecución del software, compruebe si puede implementar las recomendaciones de refuerzo más detalladas prescritas por la DISA. Lleve un registro de los diferentes controles del CIS y de las configuraciones especificadas en las STIG de la DISA que puede aplicar correctamente. Utilícelos para definir consecuentemente sus recetas de refuerzo de imágenes en EC2 Image Builder.
Para las cargas de trabajo en contenedores, hay imágenes reforzadas de Docker disponibles en el repositorio público
Al igual que los sistemas operativos y las imágenes de contenedor, puedes obtener paquetes de código (o bibliotecas) de repositorios públicos mediante herramientas como pip, npm, Maven y NuGet. Le recomendamos que administre los paquetes de código integrando repositorios privados, como los que hay en AWS CodeArtifact
Para las cargas de trabajo sin servidor que utilicen AWS Lambda, simplifique la administración de las dependencias de los paquetes mediante capas de Lambda. Use las capas de Lambda para configurar un conjunto de dependencias estándares que se compartan entre diferentes funciones en un archivo independiente. Puede crear y mantener capas siguiendo su propio proceso de creación, que proporciona un método centralizado de mantener al día sus funciones.
Pasos para la implementación
-
Refuerce los sistemas operativos. Utilice imágenes de base de fuentes fiables para crear sus AMI reforzadas. Use EC2 Image Builder
para ayudar a personalizar el software instalado en las imágenes. -
Refuerce los recursos en contenedores. Configure los recursos en contenedores para cumplir con las prácticas recomendadas de seguridad. Cuando utilice contenedores, implemente el análisis de imágenes de ECR en su canalización de compilación y aplíquelo de forma frecuente a su repositorio de imágenes para buscar CVE en sus contenedores.
-
Cuando utilice la implementación sin servidor con AWS Lambda, utilice capas de Lambda para segregar el código de función de la aplicación y las bibliotecas dependientes compartidas. Configure la firma de código para Lambda para asegurarse de que solo se ejecute código confiable en sus funciones de Lambda.
Recursos
Prácticas recomendadas relacionadas:
Vídeos relacionados:
Ejemplos relacionados: