Mejores prácticas para asegurar contenedores Docker y Kubernetes

Los contenedores Docker presentan retos únicos de seguridad. Hay algunas preocupaciones de seguridad de Docker a tener en cuenta. En primer lugar, ejecutar contenedores y aplicaciones con Docker significa ejecutar el daemon Docker, que requiere privilegios de raíz (root). Pero, esto significa que usted le está dando a esos procesos las llaves del reino, y este es solo un ejemplo de cómo los contenedores pueden alarmar a un profesional de la seguridad de TI.

Otras preocupaciones incluyen la flexibilidad de los contenedores, que hace que sea sencillo ejecutar varias instancias de contenedores. Muchos de estos contenedores pueden estar en diferentes niveles de parches de seguridad. Por otra parte, si bien a menudo son comparados con la virtualización, Docker no es tan bueno en la segregación; los contenedores están, en gran parte, aislados. Los profesionales de TI nuevos con los contenedores no siempre tienen una buena comprensión del desarrollo y la producción de contenedores. Como resultado, aquellos que gestionan y aseguran las aplicaciones en contenedores necesitan aprender esas habilidades rápidamente.

Los modelos de seguridad de contenedores son similares a los de otros sistemas distribuidos, pero las mejores prácticas y herramientas son nuevas. Por ejemplo, la encriptación, la gestión de identidades y la seguridad basada en roles funcionan bien con los contenedores, pero hay nuevas herramientas y sistemas que juegan un papel importante en asegurar Docker.

Herramientas y mejores prácticas para asegurar contenedores Docker

Docker Content Trust (DCT), una nueva característica de Docker, puede ayudar a los profesionales de TI a garantizar la seguridad de Docker. DCT utiliza un enfoque de infraestructura de clave pública (PKI), y tiene dos claves distintas: una clave offline (root) y una clave de etiquetado (por repositorio) que se crean y se almacenan en el lado del cliente la primera vez que un editor sube una imagen.

DCT también genera una clave de marca de tiempo que protege contra ataques de repetición, lo que significa ejecutar contenido firmado, pero expirados. Esto resuelve el problema mencionado anteriormente acerca de los contenedores que tienen diferentes niveles de parches de seguridad.

Para hacer frente a las preocupaciones en torno a la seguridad de contenedores, muchas empresas, incluyendo Docker y Amazon, han dado a conocer puntos de seguridad de referencia para Docker. Este documento del Centro para la seguridad en internet (CIS) de 200 páginas incluye 84 mejores prácticas para la implementación de contenedores Docker, junto con una lista de verificación que resume todas ellas.

Existe una página del proyecto alojada en github donde podemos ampliar información sobre sus funcionalidades. 
Otra manera de comprobar cómo de seguras son nuestras imágenes es mediante el escaneo en búsqueda de vulnerabilidades conocidas. Docker Inc mantiene un servicio encargado de esto que utiliza la base de datos de CVE para encontrar en nuestras imágenes librerías, binarios y exploits de los programas que se ejecutan en ellas. Este servicio está disponible para los repositorios privados de Docker hub, en Docker cloud y recientemente on-premise en la versión 1.13 de Docker DataCenter, siendo en todos los casos un servicio de pago aunque hay servicios de terceros como Anchore que ofrecen una funcionalidad similar de manera gratuita.

Content trust

Si queremos que en nuestro motor solo se ejecuten imágenes firmadas en las que confiemos podemos habilitar Content trust. Para habilitar esta opción que por defecto viene desactivada simplemente tenemos que definir la variable de entorno DOCKER_CONTENT_TRUST o ejecutar Docker Engine con la opción --disable-content-trust=false

Como el mantener una infraestructura basado en confianza mediante claves públicas y privadas puede ser algo tedioso, tenemos la posibilidad de instalar un componente llamado Docker Notary que hará la labor de "certificadora" entre el repositorio de imágenes (Docker Registry) y nuestro nodo.

En Docker Datacenter esta funcionalidad está integrada con Docker Trusted Registry y podemos habilitarla de forma nativa añadiendo toda la capilaridad de la gestión de roles y usuarios corporativos.

Contenedores en solo lectura

Docker utiliza la tecnología copy on write para acelerar el inicio de los contenedores y optimizar el uso de disco en las imágenes, es decir, por naturaleza podríamos decir que son inmutables (o siguen los preceptos de la infraestructura inmutable). Para ser exactos, los contenedores montan una capa temporal en modo lectura/escritura que perdura solo mientras el contenedor está en ejecución. Al desaparecer el contenedor esta capa desaparece con él.

Una buena práctica, si nuestra aplicación no necesita tener acceso al disco, es crear esta capa en modo solo lectura con el fin de poner aún más difícil la tarea de explotar vulnerabilidades a un potencial atacante. Simplemente pondremos en ejecución nuestros contenedores con la opción --read-only.

Escáner de Seguridad Kubernetes con Kube-Bench

Este es un recurso utilizado para eliminar alrededor del 95% de defectos de configuración, generando pautas bastante específicas para garantizar la configuración de su red de computadores mediante la aplicación de Kubernetes Benchmark de CIS. Kube Bench es recomendado para ejecutar en primera instancia antes de probar cualquier otro método.

Así que, ¿qué pasa si se le pone a cargo de asegurar contenedores Docker y no sabe por dónde empezar? Aquí hay algunas sugerencias:
  • Lea la documentación de referencia de seguridad Docker mencionada anteriormente. Concéntrese en cómo las sugerencias y las mejores prácticas se relacionan con la forma en que ha desplegado sus aplicaciones basadas en contenedores. Esta es realmente su mejor opción, teniendo en cuenta que la mayoría de los problemas de seguridad de Docker provienen de un mal diseño.
  • Tenga en cuenta sus necesidades de seguridad específicas. Esto impulsará su selección de herramientas y enfoques. Muchas empresas que se mueven hacia contenedores aseguran de forma insuficiente o excesiva sus aplicaciones basadas en contenedores.
  • Pruebe lo más que pueda. Los contenedores son nuevos, así que tenemos que averiguar lo que funciona y lo que no, y la única manera de hacerlo es a través de pruebas relacionadas con la seguridad, tales como pruebas de penetración.
La seguridad de los contenedores probablemente evolucionará como lo hizo la seguridad de la virtualización. Mientras que la seguridad era una preocupación con las primeras implementaciones de VM, años de buenas prácticas de seguridad, arquitecturas y herramientas han demostrado ser eficaces. Lo mismo debería funcionar para asegurar los contenedores Docker.

Con todo esto, el tema de la seguridad es un mundo complejo en el que conviene estar bien informado y al día. Para esto podemos consultar la página de seguridad de Docker, realizar los laboratorios oficiales sobre seguridad o empaparnos de los principios de seguridad de Docker Engine.

Fuente: SearchDataCenter | Babel

Via: feedproxy.google.com
Mejores prácticas para asegurar contenedores Docker y Kubernetes Mejores prácticas para asegurar contenedores Docker y Kubernetes Reviewed by Anónimo on 8:44 Rating: 5