18 dic 2018

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

Suscríbete a nuestro Boletín

1 comentario:

  1. DOCKER. Seguridad y monitorización en contenedores e imágenes

    https://rclibros.es/producto/docker-seguridad-y-monitorizacion-en-contenedores-e-imagenes/

    https://uploads.disquscdn.com/images/b20bcaa4be796f22e49cbb69f6290794fc5c872b8eac391cedbd0bed0a982243.png?w=800&h=358

    Este libro tiene como objetivo facilitar al lector los conocimientos necesarios para entender cómo gestiona Docker la seguridad tanto desde el punto de vista de la máquina donde lo ejecutamos, como desde el desarrollo y despliegue de imágenes.

    Docker ofrece una serie de herramientas que permiten al usuario analizar cada una de las capas de las imágenes y contenedores en búsqueda de librerías desactualizadas, y vulnerabilidades y exposiciones comunes que podemos encontrar en la base de datos (CVE).

    Además, el cambio hacia un nuevo modelo de DevOps nos permitirá ver cómo estos procesos necesitan integrarse de manera eficiente, en un ciclo de desarrollo e implementación continua para aprovechar al máximo los beneficios de los contenedores manteniendo al mismo tiempo la seguridad.

    En el libro se proponen un conjunto de buenas prácticas para el desarrollador que minimicen en la medida de lo posible la exposición de nuestra aplicación ante posibles ataques. Casi todos los aspectos de las herramientas relacionadas con contenedores descritos en el texto están respaldados con ejemplos reales de cómo funcionan a nivel práctico. Así, el libro le ayudará a entender cómo sacar provecho de la agilidad, control y portabilidad que proporciona Docker, desde un enfoque teórico-práctico.

    https://uploads.disquscdn.com/images/25762b9941d4eca195c6b463e985323a39788b989dd77fd4fe33adc74e44ea58.png?w=800&h=355

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!