La seguridad de contenedores es el proceso de implementación de políticas y herramientas de seguridad para garantizar que todo lo relativo a su contenedor funciona como debería, incluida la protección de infraestructura, la cadena de suministro de software, el tiempo de ejecución y todo lo demás.
Container Security tiene muchas ventajas:
Cambia la implementación de aplicaciones mejorando la velocidad, la eficiencia de los recursos y la escalabilidad. También puede encapsular aplicaciones y sus dependencias, haciendo que la implementación sea más rápida y mejorando el uso eficiente de los recursos del sistema.
Se puede escalar fácilmente hacia arriba o hacia abajo, lo que las hace ideales para workloads dinámicos. Una de las ventajas más importantes de los contenedores es su portabilidad en diferentes entornos y plataformas. Gracias a ello, las aplicaciones pueden ejecutarse de forma uniforme independientemente de dónde se implementen, on premise, en la nube o en entornos híbridos.
Al mantener entornos coherentes, la seguridad de contenedores elimina el problema de "funciona en mi máquina", lo que conduce a transiciones más eficientes e implementaciones más fiables.
El proceso de protección de contenedores es un proceso continuo. Se debería integrar en su proceso de desarrollo, de forma automatizada para eliminar los puntos de contacto manuales y extendida en el mantenimiento y la operación de la infraestructura subyacente. Esto implica la protección de sus imágenes de contenedor en la canalización de desarrollo, de la plataforma del host en tiempo de ejecución y las capas de aplicación. La implementación de la seguridad como parte del ciclo de vida de entrega continua implica la reducción del riesgo y de las vulnerabilidades de su empresa en la siempre cambiante superficie de ataque.
Cuando se trata de proteger los contenedores, las principales inquietudes giran en torno a:
El objetivo de la ciberseguridad es garantizar que todo lo que desarrolle siempre funcione como debería.
La protección del host comienza con la selección de su sistema operativo. Siempre que sea posible, debería utilizar un sistema operativo distribuido que esté optimizado para ejecutar contenedores. Si utiliza las distribuciones de material de Linux® o Microsoft® Windows®, querrá asegurarse de que deshabilita o elimina los servicios innecesarios y fortalece el sistema operativo en general. A continuación, añada una capa de seguridad y herramientas de supervisión para garantizar que su host se está ejecutando tal y como debería. Las herramientas como el control de aplicaciones o un sistema de prevención de intrusiones (IPS) siempre son útiles en esta situación.
Una vez que su contenedor se esté ejecutando en la producción, tendrá que interactuar con otros contenedores y recursos. Este tráfico interno se debe supervisar y proteger garantizando que todo el tráfico de red desde sus contenedores pasa a través de un IPS. Esto modifica la forma en la que implementa el control de la seguridad. En lugar de implementar un pequeño número de grandes motores IPS tradicionales en el perímetro, estaría implementando el IPS en cada host, lo que permite supervisar todo el tráfico de forma efectiva sin repercutir significativamente en el rendimiento.
Una vez que su contenedor se está ejecutando en la producción, está constantemente procesando datos para su aplicación, generando archivos de registro, archivos de caché, etc. Los controles de seguridad pueden ayudar a garantizar que estas actividades sean cotidianas y no maliciosas. Resulta fundamental que los controles anti-malware en tiempo real que se ejecutan en el contenido en el contenedor funcionen a la perfección.
Un IPS también desempeña un papel aquí, utilizando un patrón llamado parche virtual. Si una vulnerabilidad queda expuesta de forma remota, el motor del IPS puede detectar intentos de exploit y lanzar paquetes para proteger su aplicación. Esto le proporciona el tiempo que necesita para abordar la causa raíz en la siguiente versión del contenedor en lugar de forzar una solución de emergencia.
Familiarícese con algunos de los nombres que las empresas utilizan para las necesidades de los contenedores: Docker®, Kubernetes®, Amazon Web Services™ (AWS) y Microsoft®.
Antes de que comience a proteger sus contenedores, necesita conocer los principales agentes en el sector. Docker, un líder en el mercado de contenedores, proporciona una plataforma de contenedores para desarrollar, administrar y proteger aplicaciones. Docker permite que los clientes los implementen aplicaciones tradicionales y los microservicios más recientes en cualquier lugar. Al igual que ocurre con cualquier otra plataforma de contenedores, necesita asegurarse de que cuenta con la protección adecuada. Obtenga más información acerca de la seguridad de contenedores de Docker.
Kubernetes es el siguiente nombre importante que conocer. Kubernetes proporciona una plataforma de open source, extensible y portátil para la gestión de servicios y workloads en contenedores. Si bien Kubernetes ofrece funciones de seguridad, necesita una solución de seguridad dedicada para que le proteja, dado que ha habido un aumento de los ataques en clústeres de Kubernetes. Obtenga más información acerca de la protección de Kubernetes.
El siguiente de la lista es Amazon Web Services (AWS). AWS comprende la necesidad de los contenedores para empoderar a desarrolladores para entregar aplicaciones con mayor rapidez y uniformidad. Es por ello que ofrecen Amazon Elastic Container Service (Amazon ECS), un servicio de orquestación de contenedores de alto rendimiento y escalable que admite contenedores de Docker. Elimina las dependencias en la gestión de sus propias máquinas virtuales y entorno de contenedores, y le permite ejecutar y escalar aplicaciones en contenedores en AWS con gran facilidad. Sin embargo, al igual que los otros agentes mencionados anteriormente, necesita seguridad para obtener todos los beneficios de este servicio. Obtenga más información acerca de la seguridad de contenedores de AWS.
Por último, pero no por ello menos importante, tenemos a Microsoft® Azure™ Container Instances (ACI). Esta solución empodera a los desarrolladores a implementar contenedores en la nube pública de Microsoft® Azure™ sin necesidad de ejecutar ni administrar una infraestructura subyacente. Simplemente puede lanzar un nuevo contenedor utilizando el portal de Microsoft® Azure™, donde a continuación, Microsoft provisionará y escalará los recursos informáticos básicos. Azure Container Instances le permite ganar una mayor agilidad y velocidad, pero es necesario protegerlo adecuadamente para aprovechar todos los beneficios.
Ahora que ya conoce a los principales agentes, analicemos cómo protegerlos o acceda a los enlaces anteriores para obtener más información sobre la protección de cada solución. Obtenga más información acerca de la protección de las instancias de contenedores de Microsoft Azure.
La protección del host comienza con la selección de su sistema operativo. Siempre que sea posible, debería utilizar un sistema operativo distribuido que esté optimizado para ejecutar contenedores. Si utiliza las distribuciones de material de Linux® o Microsoft® Windows®, querrá asegurarse de que deshabilita o elimina los servicios innecesarios y fortalece el sistema operativo en general. A continuación, añada una capa de seguridad y herramientas de supervisión para garantizar que su host se está ejecutando tal y como debería. Las herramientas como el control de aplicaciones o un sistema de prevención de intrusiones (IPS) siempre son útiles en esta situación.
Una vez que su contenedor se esté ejecutando en la producción, tendrá que interactuar con otros contenedores y recursos. Este tráfico interno se debe supervisar y proteger garantizando que todo el tráfico de red desde sus contenedores pasa a través de un IPS. Esto modifica la forma en la que implementa el control de la seguridad. En lugar de implementar un pequeño número de grandes motores IPS tradicionales en el perímetro, estaría implementando el IPS en cada host, lo que permite supervisar todo el tráfico de forma efectiva sin repercutir significativamente en el rendimiento.
Una vez que su contenedor se está ejecutando en la producción, está constantemente procesando datos para su aplicación, generando archivos de registro, archivos de caché, etc. Los controles de seguridad pueden ayudar a garantizar que estas actividades sean cotidianas y no maliciosas. Resulta fundamental que los controles anti-malware en tiempo real que se ejecutan en el contenido en el contenedor funcionen a la perfección.
Un IPS también desempeña un papel aquí, utilizando un patrón llamado parche virtual. Si una vulnerabilidad queda expuesta de forma remota, el motor del IPS puede detectar intentos de exploit y lanzar paquetes para proteger su aplicación. Esto le proporciona el tiempo que necesita para abordar la causa raíz en la siguiente versión del contenedor en lugar de forzar una solución de emergencia.
Un control de seguridad de autoprotección de aplicación en tiempo de ejecución (RASP) puede ayudar cuando se trata de implementar su aplicación en un contenedor. Estos controles de seguridad se ejecutan en su código de aplicación y, a menudo, interceptan o enlazan llamadas claves en su código. Además de las características de seguridad como la supervisión del lenguaje de consulta estructurado (SQL), la remediación y comprobación de dependencias, la verificación de URL y demás controles, el RASP también puede solucionar uno de los desafíos más grandes en materia de seguridad: la identificación de la causa raíz.
Al colocarlos en el código de la aplicación, estos controles de seguridad pueden ayudar a conectar los puntos entre una incidencia de seguridad y la línea de código que lo creó. Resulta difícil competir con ese nivel de conocimiento y proporciona un gran impulso en su postura de seguridad.
Desde una perspectiva de seguridad, la pila de administración que ayuda a coordinar sus contenedores, a menudo, se pasa por alto. Toda organización que se tome en serio la implementación de sus contenedores inevitablemente llegará a dos partes críticas de la infraestructura para ayudar a gestionar el proceso: un registro de contenedores privado como Amazon ECS y Kubernetes para ayudar a orquestar la implementación del contenedor.
La combinación de un registro de contenedor con Kubernetes le permite reforzar automáticamente un conjunto de estándares de seguridad y calidad para sus contenedores antes, y durante, la nueva implementación en su entorno.
Los registros simplifican el intercambio de contenedores y ayudan a los equipos a construir sobre el trabajo de sus compañeros. Sin embargo, para garantizar que cada contenedor cumple sus líneas base de seguridad y desarrollo, necesita un analizador automatizado. Analizar cada contenedor en busca de vulnerabilidades, malware y cualquier secreto expuesto antes de que quede a disposición en el registro ayuda a reducir las incidencias posteriores.
Asimismo, querrá asegurarse de que el registro está correctamente protegido. Se debería ejecutar en un sistema reforzado o en un servicio de nube con gran prestigio. Incluso en el caso del servicio, necesita comprender el modelo de responsabilidad compartida e implementar un sólido enfoque basado en funciones para acceder al registro.
En lo que respecta a la orquestación, una vez que Kubernetes se ejecuta y está implementado en su entorno, ofrece un gran número de ventajas que ayuda a garantizar que sus equipos obtienen el máximo beneficio de su entorno. Kubernetes también proporciona la capacidad de implementar una variedad de controles de seguridad y operacionales, como las políticas de seguridad de red y pod (recursos a nivel del clúster), permitiéndole reforzar numerosas opciones para cumplir con su tolerancia de riesgo.
Necesita contar con un flujo de trabajo de análisis de imágenes de contenedor para garantizar que los contenedores que ha utilizar como base son fiables y están protegidos frente a amenazas comunes. Esta clase de herramientas analizarán el contenido de un contenedor, buscando incidencias antes de que se utilicen como base para su aplicación. También realizarán un conjunto final de comprobaciones antes de implementar un contenedor en la producción.
Cuando está correctamente implementado, el análisis se convierte en una parte natural de su proceso de codificación. Es un proceso completamente automatizado que puede identificar rápida y fácilmente cualquier incidencia a medida que desarrolla su aplicación y sus contenedores.
Los atacantes han comenzado a modificar sus ataques enfocándolos en fases más tempranas de su constante canalización de entrega (CI/CD) o integración. Si un agente malicioso compromete exitosamente su servidor de compilación, repositorio de código o estaciones de trabajo de desarrolladores, pueden residir en su entorno durante un periodo de tiempo significativamente más largo. Necesita un sólido conjunto de controles de seguridad que se mantengan constantemente actualizados.
Implemente una sólida estrategia de control de acceso a lo largo de la canalización, comenzando en su repositorio de código y estrategia de ramificación, extendiéndola por todo el trayecto hasta el repositorio del contenedor. Necesita garantizar la implementación del principio del menor privilegio, proporcionando únicamente el acceso necesario para cumplir con las tareas requeridas, y realizar una auditoría periódicamente sobre dicho acceso.
La protección de sus contenedores requiere un enfoque integral de la seguridad. Debe asegurarse de que aborda las necesidades del resto de los equipos en su organización. Asegúrese de que es posible automatizar su enfoque para que se ajuste a sus procesos de DevOps y de que cumple los plazos de entrega y finaliza las aplicaciones rápidamente sin descuidar la protección de cada grupo. Ya no es posible dejar de lado la seguridad ni analizarla en el último minuto exigiendo cambios en su flujo de trabajo. El desarrollo de controles de seguridad y procesos automatizados fiables desde el inicio aborda las inquietudes de seguridad y facilita la interconexión de los equipos.
Investigaciones relacionadas
Artículos relacionados