Resumen
La seguridad de los contenedores implica definir y obedecer prácticas de diseño, implementación y tiempo de ejecución que protejan un contenedor de Linux, desde las aplicaciones que admiten hasta la infraestructura en la que se basan.
A medida que las empresas adoptan patrones de diseño de microservicios y tecnologías de contenedores, como Docker y Kubernetes, los equipos de seguridad deben desarrollar soluciones de seguridad de contenedores que faciliten estos cambios de infraestructura. La seguridad de los contenedores debe estar integrada y ser permanente, además de respaldar la estrategia de seguridad general de la empresa. En general, la seguridad permanente de los contenedores de la empresa consiste en dos tareas:
- Proteger el canal de los contenedores y las aplicaciones
- Proteger la infraestructura y los entornos de implementación de los contenedores
Incorporación de la seguridad al canal de los contenedores
Recopilación de imágenes
Los contenedores se crean a partir de capas de archivos. La comunidad de contenedores suele llamar a estos archivos imágenes de contenedores.
Una herramienta como Buildah le permite crear imágenes compatibles con OCI y Docker desde cero, con un punto de partida de imagen de contenedor actual o sin él.
Las imágenes de contenedores son el formato de distribución de aplicaciones estándar en los entornos desarrollados en la nube, pero incluso las empresas de nube combinan cargas de trabajo entre proveedores de nube. La solución de seguridad de contenedores ideal debería admitir todas las arquitecturas.
Las imágenes de base, o imágenes de referencia, son fundamentales para la seguridad, ya que funcionan como punto de partida para crear otras derivadas. Para comenzar a proteger los contenedores, lo primero que debe hacer es hallar fuentes confiables para las imágenes de base. Confirme que la imagen proviene de una empresa conocida o grupo open source, está alojada en un registro confiable y que el código fuente de todos los elementos de la imagen está disponible.
Sin embargo, incluso si utiliza imágenes confiables, cuando se agregan aplicaciones y se modifica la configuración, se introducen variables nuevas. Al incorporar contenido externo para crear sus aplicaciones, tenga en cuenta la gestión proactiva de puntos vulnerables:
- Integre las herramientas de seguridad nativas que se utilizan en una empresa para cumplir o mejorar las políticas de seguridad de red actuales en su ecosistema de contenedores.Establezca estándares sólidos de seguridad de la nube y de seguridad de las aplicaciones.
- Identifique imágenes de contenedores con modificaciones que infrinjan las políticas o las prácticas recomendadas documentadas, conocidas como configuraciones incorrectas de contenedores, para reducir la probabilidad y el impacto de posibles riesgos.
Anticípese a los puntos vulnerables y corríjalos
Los contenedores son muy utilizados porque permiten diseñar, empaquetar y promover aplicaciones o servicios (y todas sus dependencias) con facilidad durante todo el ciclo de vida, en distintos flujos de trabajo y con diferentes objetivos de implementación. Sin embargo, aún existen algunos desafíos en torno a este tema. Los contenedores pueden ayudarlo a implementar una seguridad más detallada en términos de carga de trabajo, pero también introducen nuevos componentes de infraestructura y superficies de ataque desconocidas. La solución de seguridad de contenedores adecuada debe proteger la infraestructura del clúster y el organizador, así como las aplicaciones en contenedores que ejecutan.
Las listas de verificación y las políticas de seguridad estáticas no se adaptan a los contenedores de la empresa.
- La cadena de suministros necesita incorporar más servicios relacionados con estas políticas.
- Los equipos de seguridad deben hallar un equilibrio entre las necesidades relacionadas con las redes y con el control de los entornos en contenedores.
- Las herramientas que se utilizan durante las etapas de diseño, mantenimiento y servicio deben tener diferentes políticas de permisos.
Un programa de seguridad de contenedores eficaz tiene como fin remediar los puntos vulnerables en tiempo real y reducir la superficie de ataque antes de que se implementen las imágenes. Si incorpora la seguridad al canal de los contenedores y protege su infraestructura, podrá garantizar que sus contenedores sean confiables y puedan ampliarse.
Cuando recopile las imágenes de contenedores, hágase una serie de preguntas:
- ¿Las imágenes de contenedores están firmadas y provienen de fuentes confiables?
- ¿Están actualizados el tiempo de ejecución y el sistema operativo?
- ¿Qué tan rápido se actualizará el contenedor y con qué frecuencia lo hará?
- ¿Se han identificado los riesgos de seguridad? ¿De qué forma se realizará un seguimiento de ellos?
Protección de la stack de aplicaciones en contenedores y su ciclo de vida
Mire esta serie de webinars para conocer la opinión de los especialistas sobre las prácticas recomendadas de seguridad de toda la stack de aplicaciones en contenedores y su ciclo de vida.
Gestión del acceso
Una vez que haya obtenido las imágenes, el próximo paso es gestionar el acceso y la promoción de todas las imágenes de contenedores que utiliza su equipo. Esto implica proteger no solo las imágenes que descarga, sino también las que crea. Si usa un registro privado, podrá controlar el acceso a través de asignaciones basadas en funciones y, a la vez, gestionar el contenido mediante la asignación de metadatos relacionados al contenedor. Estos metadatos lo ayudarán a identificar y realizar un seguimiento de los puntos vulnerables conocidos. Un registro de contenedores privado también le permite automatizar y asignar políticas para las imágenes almacenadas, lo cual reduce los errores humanos que podrían generar puntos vulnerables en el entorno del contenedor.
Cuando decida cómo gestionar el acceso, hágase una serie de preguntas:
- ¿Qué controles de acceso basado en funciones puede usar para gestionar las imágenes de contenedores?
- ¿Es posible etiquetar las imágenes para facilitar su clasificación? ¿Puede etiquetar las imágenes para indicar que están aprobadas solo para la etapa de desarrollo, luego para la de prueba y finalmente para la de producción?
- ¿El registro proporciona metadatos visibles que le permitan hacer un seguimiento de los puntos vulnerables conocidos?
- ¿Puede usar el registro para asignar y automatizar las políticas (p. ej., verificar las firmas, escanear códigos, etc.)?
Integración de las pruebas de seguridad y la automatización de la implementación
La última etapa del proceso es la implementación. Una vez que haya completado sus diseños, deberá gestionarlos en función de los estándares del sector. La clave es entender de qué forma puede automatizar las políticas para identificar los diseños que tengan problemas de seguridad, especialmente a medida que se detectan nuevos puntos vulnerables en este aspecto. Si bien el análisis de los puntos vulnerables sigue siendo importante, es solo una parte de un conjunto más amplio de iniciativas de seguridad que se utilizan para proteger los entornos de sus contenedores.
Siempre es más conveniente volver a diseñar los contenedores que ejecutar parches en ellos. Por eso, al integrar las pruebas de seguridad, debe tener en cuenta las políticas que activan el rediseño automático. La primera parte de esta etapa es ejecutar las herramientas de análisis de los elementos que pueden realizar un seguimiento de los problemas e identificarlos. La segunda parte consiste en determinar las herramientas para la implementación automática y basada en políticas.
Cuando integre las pruebas de seguridad y la implementación automatizada, hágase una serie de preguntas:
- ¿Cómo puede evitar aplicar parches en los contenedores en ejecución y, en su lugar, usar activadores para volver a diseñarlos y reemplazarlos con actualizaciones automáticas?
Protección de la infraestructura
Otra capa de la seguridad de los contenedores es el aislamiento que aporta el sistema operativo (SO) host o el nodo del contenedor. Por eso, debe optar por uno que ofrezca el mayor aislamiento posible para los contenedores. Este es un aspecto importante de la protección de su entorno de implementaciones de contenedores. El SO host se habilita con un tiempo de ejecución de contenedores, el cual idealmente se gestiona por medio de un sistema de organización. Para que su plataforma de contenedores sea resistente, debe utilizar espacios de nombres de red que aíslen las aplicaciones y los entornos, y conectar el almacenamiento por medio de montajes seguros. Las soluciones de gestión de las API deben incluir funciones de autenticación y autorización, integración con el protocolo LDAP, controles de acceso en los extremos y límites de frecuencia.
Cuando decida cómo proteger su infraestructura de contenedores, hágase una serie de preguntas:
- ¿Qué contenedores necesitan poder acceder a otros? ¿Cómo harán para detectarse?
- ¿Cómo controlará el acceso a los recursos compartidos (p. ej., la red y el almacenamiento) y su gestión?
- ¿Cómo supervisará el estado de los contenedores?
- ¿Cómo ajustará automáticamente la capacidad de las aplicaciones para satisfacer la demanda?
- ¿Cómo gestionará las actualizaciones del host? ¿Todos los contenedores requerirán actualizaciones al mismo tiempo?
Podemos ayudarlo
Red Hat® OpenShift® incluye Red Hat Enterprise Linux®. Automatiza el ciclo de vida de las aplicaciones de contenedores, integra la seguridad en el canal de los contenedores y permite la transición de la estrategia DevOps a una DevSecOps. Nuestro catálogo de contenedores permite acceder a una gran cantidad de imágenes certificadas, tiempos de ejecución de lenguajes, bases de datos y middleware que pueden ejecutarse en los mismos sitios que Red Hat Enterprise Linux. Las imágenes de Red Hat siempre están firmadas y verificadas, lo cual garantiza su procedencia e integridad.
Controlamos nuestras imágenes de contenedores para detectar puntos vulnerables identificados recientemente (lo cual incluye un índice de estado público que se actualiza de forma permanente) y lanzamos actualizaciones de seguridad y nuevos diseños de contenedores que se envían a nuestro registro público. Red Hat Advanced Cluster Security for Kubernetes se integra a las herramientas de seguridad y las operaciones de desarrollo para mitigar las amenazas y aplicar políticas de seguridad que minimicen el riesgo operativo para las aplicaciones.
Los partners de seguridad de Red Hat pueden ampliar y mejorar las funciones de los contenedores en este aspecto a través de integraciones certificadas. Red Hat OpenShift cuenta con seguridad integrada a la plataforma, la cual complementa las soluciones de estos partners para proteger las aplicaciones y los contenedores durante el ciclo de vida de DevOps.
También ofrece otras características útiles:
- Organización y gestión de contenedores a escala web
- Consola web completa con funciones de colaboración para distintos usuarios
- Interfaces CLI e IDE
- Integración con CI
- Automatización del diseño y herramienta Source-to-Image
- Automatización de la implementación
- Compatibilidad con volúmenes de almacenamiento remoto
- Instalación y administración simplificadas
- Compatibilidad con una amplia variedad de servicios, marcos y lenguajes de programación