¿Qué es la Seguridad de Containers?

La Seguridad para Containers es el proceso de la implementación de herramientas y políticas de seguridad para asegurar que todo dentro de su container está corriendo de forma correcta, incluyendo la protección de la infraestructura, la cadena de suministro de software, runtime y más.

Seguridad para containers

El proceso de protección para los containers debe de ser continuo. Debe de integrarse al proceso de desarrollo, automatizado para eliminar el número de toques manuales y extendido hacia el mantenimiento y la operación de la infraestructura subyacente. Esto significa proteger sus imágenes de container en el pipeline de desarrollo y en las capas de aplicación, plataforma y host. Implementar la seguridad como parte del ciclo de vida de entrega continua significa que su negocio mitigará el riesgo y reducirá las vulnerabilidades a lo largo de una superficie de ataque en constante expansión.

Cuando proteja los containers, los temas principales son:

  • La seguridad del host del container
  • El tráfico de red del container
  • La seguridad de su aplicación dentro del container
  • Comportamiento malicioso en su aplicación
  • Proteger el stack de administración del container
  • Las capas de cimiento de su aplicación
  • La integridad del pipeline de desarrollo

 

La meta de la ciberseguridad es asegurar que lo que sea que desarrollo funcione como lo ha determinado y sólo como lo ha determinado

Conozca algunos de los nombres que los negocios están utilizando para las necesidades de los containers: Docker®, Kubernetes®, Amazon Web Services™ (AWS), y Microsoft®.

Protegiendo Docker

Antes de que comience a proteger a sus containers, necesita conocer a los jugadores clave. Docker, líder en el mercado de containers, ofrece una plataforma para desarrollar, administrar y proteger aplicaciones. Docker permite que sus clientes desplieguen desde aplicaciones tradicionales hasta los últimos microservicios donde sea. Como con cualquier otra plataforma de containers, necesita asegurar que tiene la protección adecuada. Conozca más acerca de la seguridad de containers de Docker.

Protegiendo Kubernetes

Kubernetes es el siguiente gran nombre que debe conocer. Kubernetes ofrece una plataforma de código abierto portátil y extendible para administrar workloads y servicios contenerizados. Aunque Kubernetes ofrece características de seguridad, necesita una solución de seguridad dedicada que pueda mantenerlo seguro, ya que ha habido un incremento de ataques en clusters de Kubernetes. Conozca más acerca de la seguridad de Kubernetes.

Amazon Web Services y seguridad de containers

Ahora tenemos a Amazon Web Services (AWS). AWS entiende que la necesidad que existe por los containers para empoderar a los desarrolladores para entregar aplicaciones más rápido y con mayor consistencia. Es por esto que ofrecen Amazon Elastic Container Service (Amazon ECS), un servicio escalable y de alto desempeño de orquestación de containers que soporta Docker. Elimina las dependencias de administrar sus propias máquinas virtuales y ambientes de containers y le permite correr y escalar fácilmente las aplicaciones contenerizadas de AWS. Sin embargo, como el resto de los jugadores clave antes mencionados, necesita seguridad para obtener los beneficios completos de este servicio. Conozca más acerca de la seguridad de containers en AWS.

Protegiendo Instancias de Microsoft Azure Container

Por último, tenemos Microsoft® Azure™ Container Instances (ACI). Esta solución empodera a los desarrolladores para desplegar containers en la nube pública de Microsoft® Azure™ sin la necesidad de correr o administrar una infraestructura subyacente. Simplemente puede activar un nuevo container usando el portal de Microsoft® Azure™, donde Microsoft aprovisiona automáticamente y escala los recursos subyacentes de cómputo. Azure Container Instances permiten alcanzar una gran velocidad y agilidad, pero necesitan estar debidamente protegidos para aprovechar todos los beneficios. 

Ahora que ya conoce a los jugadores más importantes, analicemos cómo puede protegerlos, o haga click en los links arriba para las especificaciones para cada solución. Conozca más acerca de la Protección de Instancias de Microsoft Azure Container.

Protegiendo el host

La protección del host inicia con la selección del sistema operativo. Cuando sea posible, debe utilizar un sistema operativo distribuido que esté optimizado para correr containers. Si está usando distribuciones de stock de Linux® o Microsoft® Windows®, querrá asegurarse que deshabilitar o eliminar servicios innecesarios y reforzar el sistema operativo en general. Entonces, agregue una capa de seguridad y herramientas de monitoreo para asegurar que su host está corriendo de la manera en que lo espera. Herramientas como control de aplicaciones o IPS (intrusion prevention system) son muy útiles en esta situación.

Una vez que su container está corriendo en producción, necesitará interactuar con otros containers y recursos. Este tráfico interno debe monitorearse y protegerse asegurando que todo el tráfico de red desde sus containers pase a través de un IPS. Esto cambia cómo se despliega el control de seguridad. En lugar de implementar un pequeño número de motores IPS grandes en el perímetro, podría implementar el IPS en cada host, lo cual permite que todo el tráfico sea monitoreado efectivamente sin impactar al desempeño.

Protegiendo la aplicación en el container

Una vez que su container está corriendo en producción, este está procesando datos constantemente para sus aplicaciones, generando archivos de logs, haciendo cachés de archivos, etc. Los controles de seguridad pueden ayudar a asegurar que todas estas actividades ordinarias no sean maliciosas. Los controles anti-malware en tiempo real que corren en el contenido en el container son críticos para el éxito.

Un IPS aquí también juega un papel importante, en el uso de un patrón llamado parcheo virtual. Si se expone una vulnerabilidad de forma remota, el motor IPS puede detectar intentos de explotarla y libera paquetes para proteger su aplicación. Esto le compra el tiempo necesario para abordar la causa raíz en la siguiente versión de ese container en lugar de arreglarlo de emergencia.

Monitoreando su aplicación

Cuando despliega su aplicación en un container, un control de seguridad RASP (runtime application self-protection) puede ayudar. Estos controles de seguridad corren dentro del código de su aplicación y a menudo interceptan o atrapan llamadas clave dentro de su código. Además de las características de seguridad como el monitoreo de Structured Query Language (SQL), revisión y remediación de dependencias, verificación de URLs y otros controles, RASP también puede resolver uno de los retos más grandes en la seguridad: la identificación de la causa raíz.

Al estar posicionado dentro del código de la aplicación, estos controles de seguridad pueden unir los puntos entre un problema de seguridad y la línea de código que lo creó. Es difícil competir con ese nivel de conocimiento y crea una mejora importante en su postura de seguridad.

Protegiendo su stack de administración de containers

Desde una perspectiva de seguridad, el stack de administración que ayuda a coordinar sus containers a menudo es ignorado. Cualquier organización que toma en serio su implementación de containers inevitablemente terminará con dos piezas críticas de infraestructura para ayudar a administrar el proceso: un registro de privacidad de containers como Amazon ECS y Kubernetes para ayudar a orquestar el despliegue de los containers.

La combinación de un registro de containers y Kubernetes le permite reforzar automáticamente un conjunto de estándares de calidad y de seguridad para sus containers antes, y durante, su implementación en el ambiente.

Los registros simplifican compartir los containers y ayudan a que los equipos expandan sobre su trabajo y el de los demás. Sin embargo, para asegurar que cada container cumple con sus líneas base de desarrollo y de seguridad, necesita un escáner automático. Escanear cada container para detectar vulnerabilidades, malware y cualquier secreto expuesto antes de que esté disponible en el registro ayuda a reducir los problemas más adelante.

Además, querrá asegurarse de que el registro también está bien protegido. Debería correr en un sistema reforzado o un servicio en la nube de buena reputación. Incluso en el escenario de servicio, necesita entender el modelo de responsabilidad compartida e implementar un fuerte enfoque basado en roles para poder acceder al registro.

Desde el lado de la orquestación, una vez que Kubernetes está corriendo e implementado dentro de su ambiente, ofrece un número importante de ventajas que ayudan a asegurar que sus equipos obtienen el máximo provecho del ambiente. Kubernetes también ofrece la habilidad de implementar un número de controles operativos y de seguridad, como Pod (recursos al nivel del cluster) y políticas de seguridad de la red, permitiéndole reforzar varias opciones para cumplir con su tolerancia al riesgo.

Desarrollando su aplicación en un cimiento seguro: escaneo de containers

Necesita tener un flujo de trabajo de escaneo de imágenes de containers para asegurar que los containers que usa son confiables y están seguros contra amenazas comunes. Esta clase de herramientas escanearán el contenido del container y buscarán problemas antes de que usen dentro de la aplicación. También realizará un conjunto final de revisiones antes de que un container sea desplegado a producción.

Cuando se implementa correctamente, escanear se convierte en una parte natural de su proceso de código. Es un proceso completamente automatizado que puede fácil y rápidamente identificar cualquier problema mientras usted desarrolla su aplicación y sus containers. 

Asegurando la integridad del pipeline de desarrollo

Los atacantes han comenzado a dirigir sus ataques hacia etapas más tempranas del pipeline CI/CD. Si un atacante compromete exitosamente su servidor de desarrollo, repositorio de código o estaciones de trabajo de desarrolladores, pueden quedarse más tiempo en su ambiente. Necesita un conjunto de controles de seguridad fuertes que se mantengan actualizados.

Implemente una estrategia de control de accesos a lo largo del pipeline, comenzando en su repositorio de código y estrategia de diversificación, extendiéndose hasta el repositorio de containers. Necesita asegurarse de implementar el principio del menor privilegio – solamente dando el acceso necesario para cumplir con las tareas necesarias – y auditar esos accesos regularmente.

Uniendo los puntos

La protección de sus containers requiere de un enfoque integral de seguridad. Debe asegurarse de que está abordando las necesidades de todos los equipos dentro de su organización. Asegúrese de que su enfoque puede automatizarse para adaptarse a sus procesos DevOps, y que puede cumplir con fechas límite y entregar aplicaciones rápidamente mientras protege a cada grupo. La seguridad ya no puede dejarse de lado o agregarse al último minuto, demandando cambios en su flujo entero de trabajo. Construir controles confiables de seguridad y procesos automatizados desde el inicio aborda estas preocupaciones de seguridad y hace que sea más fácil cerrar la brecha entre equipos.