Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Corregir las exposiciones de los servicios de Amazon ECS
AWS Security Hub puede generar datos de exposición para los servicios de Amazon Elastic Container Service (Amazon ECS).
El servicio Amazon ECS implicado en la detección de una exposición y su información de identificación figuran en la sección Recursos de los detalles de la búsqueda. Puede recuperar estos detalles de los recursos en la consola de Security Hub o mediante programación mediante el GetFindingsV2funcionamiento de la API de Security Hub.
Tras identificar el recurso implicado en la detección de una exposición, puede eliminarlo si no lo necesita. Eliminar un recurso no esencial puede reducir su perfil de exposición y sus AWS costes. Si el recurso es esencial, siga estos pasos de remediación recomendados para ayudar a mitigar el riesgo. Los temas de remediación se dividen según el tipo de característica.
Un único hallazgo de exposición contiene los problemas identificados en varios temas de remediación. Por el contrario, puede abordar un hallazgo de exposición y reducir su nivel de gravedad abordando solo un tema de remediación. Su enfoque de la remediación de riesgos depende de los requisitos y las cargas de trabajo de su organización.
nota
La guía de remediación que se proporciona en este tema puede requerir consultas adicionales en otros recursos. AWS
Contenido
Características de mala configuración de los servicios de Amazon ECS
Características de vulnerabilidad de los servicios de Amazon ECS
Características de mala configuración de los servicios de Amazon ECS
A continuación, se indican las características de los errores de configuración de los servicios de Amazon ECS y se sugieren los pasos para corregirlos.
El servicio Amazon ECS utiliza una definición de tareas configurada con privilegios elevados.
Los contenedores de Amazon ECS que se ejecutan con privilegios elevados tienen capacidades similares a las del sistema anfitrión, lo que podría permitir el acceso a los recursos del host y a otros contenedores. Esta configuración aumenta el riesgo de que un contenedor comprometido se utilice para acceder a recursos o modificarlos fuera del alcance previsto, lo que podría provocar la fuga del contenedor, el acceso no autorizado al host subyacente y las infracciones que afecten a otros contenedores del mismo host. Siguiendo los principios de seguridad estándar, se AWS recomienda conceder los privilegios mínimos, es decir, conceder únicamente los permisos necesarios para realizar una tarea.
Revise y modifique la definición de la tarea
En la exposición, identifique el ARN de la definición de la tarea. Abra la definición de la tarea en la consola de Amazon ECS. En la definición de la tarea, busque el indicador de privilegio establecido en true en las definiciones del contenedor. Si no se requiere el modo privilegiado, cree una nueva revisión de la definición de tareas sin el indicador privilegiado. Si se requiere el modo privilegiado, considere la posibilidad de configurar el contenedor para que utilice un sistema de archivos de solo lectura a fin de evitar modificaciones no autorizadas.
El servicio Amazon ECS tiene un contenedor que puede asumir una función de IAM
Los roles de IAM permiten que las tareas de Amazon ECS accedan de forma segura a otros AWS servicios mediante credenciales temporales. Es posible que se requieran funciones de ejecución de tareas para las tareas de Amazon ECS en las que el contenedor deba interactuar con otros AWS recursos. Si bien esto a veces es necesario para el funcionamiento del contenedor, las funciones mal configuradas pueden otorgar privilegios excesivos que los atacantes pueden aprovechar si un contenedor se ve comprometido, lo que podría permitir el acceso no autorizado a AWS los recursos, el robo de datos o la modificación no autorizada de la infraestructura. Siguiendo los principios de seguridad estándar, AWS recomienda implementar el acceso con privilegios mínimos y revisar las funciones de IAM asociadas a sus tareas de Amazon ECS.
Revise las funciones adjuntas
Ve al panel de control de IAM y selecciona el rol identificado. Revise la política de permisos asociada a la función de IAM. Si la tarea requiere la interacción con otros AWS servicios, mantenga la función de ejecución de la tarea y considere la posibilidad de aplicar permisos con privilegios mínimos. De lo contrario, cree una nueva revisión de la definición de la tarea sin la función de ejecución.
El servicio Amazon ECS utiliza una definición de tareas que permite a los contenedores acceder a los sistemas de archivos raíz.
Los contenedores de Amazon ECS con acceso al sistema de archivos raíz del host pueden leer, modificar o ejecutar archivos críticos en el sistema host. Esta configuración aumenta el riesgo de que un contenedor comprometido se utilice para acceder a recursos o modificarlos fuera del alcance previsto, lo que podría exponer datos confidenciales del sistema de archivos anfitrión. Siguiendo los principios de seguridad estándar, se AWS recomienda conceder el mínimo de privilegios, lo que significa que se concedan únicamente los permisos necesarios para realizar una tarea.
Revise y modifique los contenedores con acceso al sistema de archivos del host
En el hallazgo de exposición, identifique el ARN de la definición de la tarea. Abra la definición de la tarea en la consola de Amazon ECS. Busque la sección de volúmenes en la definición de la tarea que define las asignaciones de rutas de los hosts. Revise la definición de la tarea para determinar si es necesario acceder al sistema de archivos del host para que funcione el contenedor. s Si no es necesario acceder al sistema de archivos del host, cree una nueva revisión de la definición de la tarea y elimine cualquier definición de volumen que utilice las rutas del host. Si es necesario acceder al sistema de archivos del host, considere la posibilidad de configurar el contenedor para que utilice un sistema de archivos de solo lectura a fin de evitar modificaciones no autorizadas.
El servicio Amazon ECS utiliza una definición de tarea configurada para compartir el espacio de nombres de procesos de un host.
Los contenedores de Amazon ECS que se ejecutan con espacios de nombres expuestos pueden acceder a los recursos del sistema anfitrión y a otros espacios de nombres de contenedores. Esta configuración podría permitir que un contenedor comprometido escape de su límite de aislamiento, lo que podría provocar el acceso a procesos, interfaces de red u otros recursos fuera del alcance previsto. Un espacio de nombres de ID de proceso (PID) proporciona separación entre los procesos. Evita que los procesos del sistema sean visibles y PIDs permite su reutilización, incluido el PID 1. Si el espacio de nombres PID del host se comparte con los contenedores, los contenedores podrían ver todos los procesos del sistema anfitrión. Esto reduce la ventaja del aislamiento a nivel de proceso entre el host y los contenedores. Estos factores podrían provocar el acceso no autorizado a los procesos del propio servidor, incluida la posibilidad de manipularlos y cancelarlos. Siguiendo los principios de seguridad estándar, AWS recomienda mantener un aislamiento adecuado del espacio de nombres para los contenedores.
Actualice las definiciones de las tareas con los espacios de nombres expuestos
Abra la pestaña Recursos de la exposición e identifique la definición de la tarea con el espacio de nombres expuesto. Abra la definición de la tarea en la consola de Amazon ECS. Busque la configuración de PIDMode con el valor host, lo que compartiría los espacios de nombres de los ID del proceso con el host. Elimine la configuración PIDMode: host de las definiciones de tareas para garantizar que los contenedores se ejecuten con el aislamiento adecuado del espacio de nombres.
El servicio Amazon ECS utiliza una definición de tarea configurada con credenciales de texto sin cifrar en las variables de entorno.
Los contenedores de Amazon ECS con credenciales de texto sin cifrar en las variables de entorno exponen información de autenticación confidencial que podría verse comprometida si un atacante obtiene acceso a la definición de la tarea, al entorno del contenedor o a los registros del contenedor. Esto supone un riesgo de seguridad importante, ya que las credenciales filtradas podrían utilizarse para acceder a otros AWS servicios o recursos.
Sustituya las credenciales de texto no cifrado
En la búsqueda de exposición, identifique la definición de la tarea con credenciales de texto sin cifrar. Abra la definición de la tarea en la consola de Amazon ECS. Busque variables de entorno en la definición del contenedor que contengan valores confidenciales, como claves de AWS acceso, contraseñas de bases de datos o tokens de API.
Considere las siguientes alternativas para transferir credenciales:
-
En lugar de utilizar claves de AWS acceso, utilice funciones de ejecución de tareas y funciones de tareas de IAM para conceder permisos a sus contenedores.
-
Guarde las credenciales como secretas en AWS Secrets Manager y haga referencia a ellas en la definición de la tarea.
Actualizar definiciones de tareas
Cree una nueva revisión de la definición de la tarea que gestione las credenciales de forma segura. A continuación, actualice su servicio Amazon ECS para utilizar la nueva revisión de la definición de tareas.
El servicio Amazon ECS tiene un grupo de seguridad abierto
Los grupos de seguridad actúan como firewalls virtuales para sus tareas de Amazon ECS a fin de controlar el tráfico entrante y saliente. Los grupos de seguridad abiertos, que permiten el acceso sin restricciones desde cualquier dirección IP, pueden exponer sus contenedores a un acceso no autorizado, lo que aumenta el riesgo de exposición a herramientas de escaneo automatizadas y a ataques dirigidos. Siguiendo los principios de seguridad estándar, AWS recomienda restringir el acceso de los grupos de seguridad a direcciones IP y puertos específicos.
Revise las reglas de los grupos de seguridad y evalúe la configuración actual
Abra el recurso del grupo de seguridad Amazon ECS. Evalúe qué puertos están abiertos y accesibles desde amplios rangos de IP, por ejemplo(0.0.0.0/0 or ::/0)
.
Modifique las reglas de los grupos de seguridad
Modifique las reglas del grupo de seguridad para restringir el acceso a rangos o direcciones IP de confianza específicos. Al actualizar las reglas del grupo de seguridad, considere separar los requisitos de acceso para los distintos segmentos de la red creando reglas para cada rango de IP de origen requerido o restringiendo el acceso a puertos específicos.
Modifique las reglas de los grupos de seguridad
Tenga en cuenta las siguientes opciones para los métodos de acceso alternativos:
-
Session Manager proporciona un acceso seguro desde el shell a sus EC2 instancias de Amazon sin necesidad de puertos de entrada, administrar claves SSH ni mantener hosts bastiones.
-
NACLs proporcionan una capa adicional de seguridad a nivel de subred. A diferencia de los grupos de seguridad, no NACLs tienen estado y requieren que las reglas de entrada y salida se definan de forma explícita.
El servicio Amazon ECS tiene una dirección IP pública
Se puede acceder directamente a los servicios de Amazon ECS con direcciones IP públicas asignadas a sus tareas desde Internet. Si bien esto puede ser necesario para los servicios que deben estar disponibles públicamente, aumenta la superficie de ataque y la posibilidad de acceso no autorizado.
Identifique los servicios con direcciones IP públicas
En el hallazgo de exposición, identifique el servicio Amazon ECS que tiene direcciones IP públicas asignadas a sus tareas. Busque la assignPublicIp
configuración con un valor de ENABLED
en la configuración del servicio.
Actualizar definiciones de tareas
Cree una nueva revisión de la definición de la tarea que deshabilite las direcciones IP públicas. A continuación, actualice su servicio Amazon ECS para utilizar la nueva revisión de la definición de tareas.
Implemente patrones de acceso a redes privadas
Para las instancias que ejecutan aplicaciones web, considere la posibilidad de utilizar un Load Balancer (LB). LBs se puede configurar para permitir que las instancias se ejecuten en subredes privadas mientras que el LB se ejecuta en una subred pública y gestiona el tráfico de Internet.
El servicio Amazon ECS utiliza una definición de tareas que se configura con el modo de red de host activado.
Los contenedores de Amazon ECS que se ejecutan en el modo de red de host comparten el espacio de nombres de la red con el host, lo que permite el acceso directo a las interfaces de red, los puertos y las tablas de enrutamiento del host. Esta configuración evita el aislamiento de red que proporcionan los contenedores, lo que podría exponer los servicios que se ejecutan en el contenedor directamente a redes externas y permitir que los contenedores modifiquen la configuración de la red del host. Siguiendo los principios de seguridad estándar, AWS recomienda mantener un aislamiento de red adecuado para los contenedores.
Deshabilite el modo de red del host
En el hallazgo de exposición, identifique la definición de la tarea con el modo de red host. Abra la definición de la tarea en la consola de Amazon ECS. Busque la configuración NetworkMode con el valor host en la definición de la tarea.
Tenga en cuenta las siguientes opciones para deshabilitar el modo de red del host:
-
El modo
awsvpc
de red proporciona el mayor nivel de aislamiento de la red, ya que proporciona a cada tarea su propia interface de red elástica. -
El modo
bridge
de red proporciona aislamiento y, al mismo tiempo, permite que las asignaciones de puertos expongan puertos contenedores específicos al host.
Actualizar definiciones de tareas
Cree una nueva revisión de la definición de la tarea con la configuración del modo de red actualizada. A continuación, actualice su servicio Amazon ECS para utilizar la nueva revisión de la definición de tareas.
La función de IAM asociada al servicio Amazon ECS tiene una política de acceso administrativo.
Las funciones de IAM con políticas de acceso administrativo adjuntas a las tareas de Amazon ECS proporcionan amplios permisos que superan lo que normalmente se requiere para el funcionamiento de los contenedores. Esta configuración aumenta el riesgo de que un contenedor comprometido se utilice para acceder a los recursos de su AWS entorno o modificarlos. Siguiendo los principios de seguridad estándar, AWS recomienda implementar el acceso con privilegios mínimos concediendo solo los permisos necesarios para que una tarea funcione.
Revise e identifique las políticas administrativas
En el ID del recurso, identifique el nombre del rol de IAM. Vaya al panel de control de IAM y seleccione el rol identificado. Revise la política de permisos asociada a la función de IAM. Si la política es una política AWS gestionada, busqueAdministratorAccess
. De lo contrario, en el documento de política, busque las declaraciones que contengan las declaraciones "Effect": "Allow", "Action": "*", and "Resource": "*"
juntas.
Implementación del acceso a los privilegios mínimos
Sustituya las políticas administrativas por aquellas que concedan únicamente los permisos específicos necesarios para que la instancia funcione. Para identificar los permisos innecesarios, puede utilizar el analizador de acceso de IAM para saber cómo modificar su política en función del historial de acceso. Como alternativa, puede crear una nueva función de IAM para evitar que afecte a otras aplicaciones que utilizan la función existente. En este escenario, cree una nueva función de IAM y, a continuación, asocie la nueva función de IAM a la instancia.
Consideraciones sobre la configuración segura
Si se necesitan permisos administrativos de nivel de servicio para la instancia, considere la posibilidad de implementar estos controles de seguridad adicionales para mitigar el riesgo:
-
La MFA añade una capa de seguridad adicional al requerir una forma adicional de autenticación. Esto ayuda a evitar el acceso no autorizado incluso si las credenciales están comprometidas.
-
La configuración de los elementos de condición le permite restringir cuándo y cómo se pueden usar los permisos administrativos en función de factores como la IP de origen o la antigüedad del MFA.
Actualizar definiciones de tareas
Cree una nueva revisión de la definición de la tarea que haga referencia a las funciones de IAM nuevas o actualizadas. A continuación, actualice su servicio Amazon ECS para utilizar la nueva revisión de la definición de tareas.
Características de vulnerabilidad de los servicios de Amazon ECS
Estas son las características de accesibilidad de Amazon ECS y las medidas de corrección sugeridas.
El servicio Amazon ECS tiene un contenedor con vulnerabilidades de software que pueden explotarse en la red con una alta probabilidad de explotación
-
Comprenda la exposición
Los hallazgos de vulnerabilidades de los paquetes identifican los paquetes de software de su AWS entorno que están expuestos a vulnerabilidades y exposiciones comunes (CVEs). Los atacantes pueden aprovechar las vulnerabilidades no parcheadas y poner en riesgo la confidencialidad, integridad o disponibilidad de los datos, así como acceder a otros sistemas. Las imágenes de los contenedores ECR pueden contener hallazgos de vulnerabilidades en los paquetes.
-
Remedie la exposición
-
Actualice la versión del paquete
Revise el hallazgo de vulnerabilidad del paquete para su función Lambda. Actualice la versión del paquete según lo sugerido por Amazon Inspector. Para obtener más información, consulta Cómo ver los detalles de las conclusiones de Amazon Inspector en la Guía del usuario de Amazon Inspector. La sección Remediación de los detalles de búsqueda de la consola de Amazon Inspector le indica qué comandos puede ejecutar para actualizar el paquete.
-
Actualice las imágenes del contenedor base
Reconstruye y actualiza las imágenes del contenedor base con regularidad para mantenerlos actualizados. Al reconstruir la imagen, no incluya componentes innecesarios para reducir la superficie de ataque. Para obtener instrucciones sobre cómo reconstruir una imagen de contenedor, consulte Reconstruir imágenes con frecuencia
.
-
El servicio Amazon ECS tiene un contenedor con vulnerabilidades de software
Los paquetes de software que se instalan en los contenedores de Amazon ECS pueden estar expuestos a vulnerabilidades y exposiciones comunes (CVEs). Las vulnerabilidades de baja prioridad representan debilidades de seguridad con menor gravedad o capacidad de explotación en comparación con las vulnerabilidades de alta prioridad. Si bien estas vulnerabilidades representan un riesgo menos inmediato, los atacantes pueden aprovechar estas vulnerabilidades sin parches para comprometer la confidencialidad, la integridad o la disponibilidad de los datos, o para acceder a otros sistemas.
Actualice las imágenes de los contenedores afectados
Consulta la sección Referencias de la pestaña Vulnerabilidad de la característica. La documentación del proveedor puede incluir una guía de remediación específica.
Aplique las medidas correctivas adecuadas siguiendo estas pautas generales:
-
Actualice las imágenes del contenedor para usar versiones parcheadas de los paquetes afectados.
-
Actualiza las dependencias afectadas de tu aplicación a sus últimas versiones seguras.
Tras actualizar la imagen del contenedor, envíala al registro del contenedor y actualiza la definición de tareas de Amazon ECS para usar la nueva imagen.
Consideraciones futuras
Para reforzar aún más la postura de seguridad de las imágenes de sus contenedores, considere seguir las prácticas recomendadas de seguridad de contenedores y tareas de Amazon ECS. Amazon Inspector se puede configurar para CVEs que escanee automáticamente sus contenedores. Amazon Inspector también se puede integrar con Security Hub para realizar correcciones automáticas. Considere la posibilidad de implementar un programa de parches regular mediante Windows de mantenimiento de Systems Manager para minimizar las interrupciones en sus contenedores.