La seguridad de contenedores es la práctica de proteger todos los componentes de las cargas de trabajo en contenedores, incluidas las imágenes de contenedores y los repositorios de imágenes, el contenido de los contenedores en ejecución y la infraestructura de contenedores subyacente.
Debido a que hoy en día existe una amplia variedad de herramientas y plataformas para implementar contenedores, los procesos específicos que tienen en cuenta la seguridad de los contenedores varían de un entorno a otro. Sin embargo, los componentes fundamentales para asegurar los contenedores son los mismos independientemente de las tecnologías particulares involucradas.
Demostración de seguridad de contenedores Guía de seguridad de contenedores
Dado que los contenedores ofrecen una forma flexible y portátil de ejecutar aplicaciones, se han convertido en una solución popular para implementar software. Sin embargo, los contenedores también introducen nuevas capas en las canalizaciones de entrega de software y las pilas de alojamiento, tales como:
Estos componentes agregan complejidad a los entornos de software y aumentan su superficie de ataque. La seguridad de los contenedores es importante para garantizar que las organizaciones cuenten con las defensas para proteger estos componentes contra riesgos y amenazas y, al mismo tiempo, defender otros recursos, como los sistemas operativos que se ejecutan en servidores que alojan contenedores, que existen tanto en entornos de alojamiento en contenedores como no contenerizados.
Además del hecho de que la seguridad de los contenedores requiere administrar una superficie de ataque más grande, la seguridad de los contenedores es un desafío porque los contenedores restringen la visibilidad directa que los desarrolladores, ingenieros de TI y analistas de seguridad tienen sobre las cargas de trabajo. Como resultado, detectar y reaccionar a las amenazas puede ser más desafiante.
Por ejemplo, si los analistas realizan un monitoreo de seguridad basado únicamente en las métricas y registros disponibles en el sistema operativo que aloja los contenedores, es posible que no detecten actividad anómala dentro de un contenedor porque las métricas y los registros producidos por los propios contenedores generalmente no son administrados por el sistema operativo. Para obtener visibilidad de lo que sucede dentro de cada contenedor, los ingenieros necesitan herramientas de seguridad que sean capaces de romper la capa de abstracción que separa los contenedores de sus servidores host.
No todos los entornos en contenedores incluyen los mismos tipos de herramientas. Por ejemplo, es posible ejecutar contenedores sin usar un orquestador. Esto significa que los componentes de la seguridad de contenedores pueden variar según las herramientas y plataformas específicas que utilice un equipo para administrar sus contenedores.
Dicho esto, en la mayoría de los casos, la seguridad del contenedor incluye los siguientes componentes clave:
Si los atacantes violan el registro que aloja las imágenes de los contenedores, podrían insertar código malicioso en ellos, lo que a su vez propagará malware a cualquier entorno que ejecute contenedores basados en imágenes contaminadas.
Para protegerse contra este riesgo, los ingenieros deben implementar estrictos controles de acceso que impidan el acceso no autorizado al contenido de los registros de contenedores. También deben monitorear los registros para detectar patrones de acceso inusuales que podrían ser un signo de actividad maliciosa.
Los atacantes pueden aprovechar la vulnerabilidad en los tiempos de ejecución de los contenedores para tomar el control de los contenedores y posiblemente incluso de los servidores que los alojan. Las organizaciones pueden gestionar este riesgo asegurándose de administrar la seguridad del contenedor Docker (o la seguridad del tiempo de ejecución que utilicen) manteniendo el software de tiempo de ejecución del contenedor parcheado y actualizado.
La configuración del entorno que los administradores aplican cuando ejecutan contenedores puede tener implicaciones de seguridad. Por ejemplo, ejecutar contenedores como root generalmente no es una práctica óptima porque les otorga permisos elevados que aumentan el daño potencial causado por una violación. Asegurar la configuración que se aplica a los entornos en los que alojan contenedores es un componente esencial de la seguridad del contenedor.
Para cargas de trabajo en contenedores que utilizan orquestadores, como Kubernetes, es fundamental mantener la plataforma de orquestación libre de vulnerabilidades conocidas. Además, los administradores deben seguir las mejores prácticas al configurar y administrar el orquestador para defenderse de las amenazas. En la seguridad de contenedores de Kubernetes, por ejemplo, los administradores deben utilizar el marco de control de acceso basado en roles (RBAC) integrado para restringir el acceso a los recursos.
Las aplicaciones en contenedores con estado dependen de los recursos de almacenamiento. Proteger los datos alojados en ese almacenamiento de información es otro componente importante de la seguridad del contenedor.
Los contenedores dependen del rojo para comunicarse entre sí y para aceptar y recibir solicitudes externas. Por lo tanto, los ingenieros deben proteger tanto el rojo interno como el externo asegurándose de que estén configurados correctamente, así como monitoreándolos para detectar actividades inusuales.
Dependiendo de dónde se alojen los contenedores, es posible que estén disponibles ciertas soluciones o prácticas adicionales de seguridad de contenedores.
Por ejemplo, los equipos que utilizan Docker pueden administrar algunos aspectos de la seguridad del contenedor Docker a través del escáner de seguridad integrado de la plataforma para detectar dependencias maliciosas dentro de las imágenes de contenedores. En Kubernetes, el marco RBAC nativo puede ayudar a proteger las cargas de trabajo en contenedores.
De manera similar, al ejecutar contenedores a través de un servicio administrado como Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) o Elastic Kubernetes Service (EKS), las organizaciones pueden optar por aprovechar las herramientas de seguridad integradas en las plataformas de cada uno. proveedor de servicios en la nube para ayudar a monitorear y proteger sus cargas de trabajo.
Las soluciones de seguridad de contenedores que un equipo utiliza para proteger contenedores deben proporcionar las siguientes características principales:
Para la mayoría de las cargas de trabajo en contenedores, las siguientes prácticas recomendadas pueden ayudar a minimizar el riesgo de ataque y maximizar la capacidad de un equipo para detectarlo:
Los administradores deben seguir el principio de privilegio mínimo al configurar los componentes dentro de una pila de alojamiento en contenedores. El privilegio mínimo significa restringir los permisos al nivel más bajo necesario.
Evite descargar imágenes de contenedores de registros que no sean de confianza, que es más probable que contengan malware. Cuando sea posible, elija registros mantenidos por organizaciones bien establecidas y confiables.
Cuando se trata de seguridad de contenedores, escanear y monitorear solo algunas capas de un entorno no es suficiente. Las organizaciones deben monitorear continuamente todos los componentes, desde registros de contenedores e imágenes hasta entornos de tiempo de ejecución, la infraestructura subyacente y todo lo demás. El monitoreo integral maximiza la capacidad de los administradores para detectar riesgos.
Aunque la superficie de ataque para contenedores es inherentemente más grande que para una aplicación no contenerizada, los equipos pueden reducir su superficie de ataque asegurándose de evitar la ejecución de componentes o capas innecesarios. Por ejemplo, los contenedores que los desarrolladores lanzan con fines de prueba deben cerrarse tan pronto como se completen las pruebas.
Cuantos menos contenidos existan dentro de una imagen de contenedor, menor será el riesgo de vulnerabilidad. Por esa razón, prefiera imágenes minimalistas, es decir, aquellas que incluyan sólo las bibliotecas, paquetes de software y otros componentes necesarios para ejecutar una aplicación.
La clave para una seguridad efectiva de contenedores es integrar la seguridad en cada proceso y recurso de los que dependen los contenedores. CloudGuard for Workload Protection facilita esto al proporcionar una solución integral de seguridad de contenedores que proporciona:
Obtenga más información leyendo la guía Container Security o solicitando una demostración gratuita.