Compartir a través de


Seguridad de contenedor en AKS habilitada por Azure Arc

Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server

En este artículo se describen varios métodos para proteger los contenedores usados para empaquetar e implementar aplicaciones y evitar la introducción de vulnerabilidades de seguridad en AKS habilitado por Azure Arc.

Los contenedores proporcionan ventajas operativas y de seguridad porque las aplicaciones y los servicios están separados dentro de un entorno. Los contenedores también ayudan a reducir los efectos de los errores en todo el sistema debido a su abstracción, lo que garantiza el tiempo de actividad y evita ataques que podrían poner en peligro aplicaciones o servicios. Normalmente, los contenedores se ejecutan en una capa abstraída sobre el sistema operativo host, y la abstracción ofrece cierta barrera de separación y la oportunidad de aplicar un modelo de defensa por capas.

También puede configurar la seguridad continua de los contenedores protegiendo la canalización de contenedor, la aplicación y el entorno de implementación de contenedores. En las secciones siguientes se describen algunos procedimientos recomendados para implementar la seguridad del contenedor.

Protección de imágenes

Para evitar el acceso no autorizado, hospede las imágenes en un registro seguro y de confianza. Las imágenes deben tener un certificado TLS con una entidad de certificación raíz de confianza y el registro debe usar el control de acceso basado en rol (RBAC) con autenticación segura. Debe incluir una solución de análisis de imágenes al diseñar CI/CD para la compilación y entrega del contenedor. La solución de análisis de imágenes ayuda a identificar vulnerabilidades y exposiciones comunes (CVE) y garantiza que las imágenes aprovechables no se implementen sin corrección.

Protección del entorno de host

Un aspecto importante de la seguridad de los contenedores es la necesidad de protección de la seguridad de los sistemas en los que se ejecutan los contenedores y la forma en que actúan durante el tiempo de ejecución. La seguridad del contenedor debe centrarse en toda la pila, incluidos el host y los demonios. Debe quitar servicios del host que no son críticos y no debe implementar contenedores no compatibles en el entorno. Al hacerlo, el acceso al host solo puede producirse a través de los contenedores y el control se centraliza en el demonio de contenedor, lo que quita el host de la superficie expuesta a ataques. Estos pasos son especialmente útiles cuando se usan servidores proxy para acceder a los contenedores, lo que puede omitir accidentalmente los controles de seguridad de los contenedores.

Limitación de los recursos de contenedor

Cuando un contenedor está en peligro, los atacantes pueden intentar usar los recursos de host subyacentes para realizar actividades malintencionadas. Es una buena práctica establecer límites de uso de memoria y CPU para minimizar el impacto de las infracciones.

Secretos protegidos correctamente

Un secreto es un objeto que contiene información confidencial que podría necesitar pasarse entre el host y el contenedor; por ejemplo, contraseñas, certificados SSL/TLS, claves privadas SSH, tokens, cadenas de conexión y otros datos que no se deben transmitir en texto sin cifrar o almacenarse sin cifrar. Debe mantener todos los secretos fuera de las imágenes y montarlos a través del motor de orquestación de contenedores o un administrador de secretos externos.

Aislamiento de la práctica

Use el aislamiento y no use un usuario con privilegios ni un usuario raíz para ejecutar la aplicación en un contenedor. Evite ejecutar contenedores en modo con privilegios porque, al hacerlo, puede permitir que un atacante escale fácilmente los privilegios si el contenedor está en peligro. Conocer el UID (código de identificación único) y GID (código de identificación de grupo) del usuario raíz en un contenedor puede permitir que un atacante acceda y modifique los archivos escritos por la raíz en el equipo host. También es necesario usar el principio de privilegios mínimos cuando una aplicación solo tiene acceso a los secretos que necesita. Puede crear un usuario de aplicación para ejecutar el proceso de aplicación.

Implementación de la supervisión de seguridad en tiempo de ejecución

Dado que todavía existe la posibilidad de verse comprometido incluso después de tomar precauciones contra los ataques a la infraestructura, es importante supervisar y registrar continuamente el comportamiento de la aplicación para evitar y detectar actividades malintencionadas. Las herramientas como Prometheus proporcionan un medio eficaz para supervisar la infraestructura.

Pasos siguientes