CIBERSEGURIDAD

Protección de Docker con controles CIS

Los contenedores, junto con orquestadores como Kubernetes, han marcado el comienzo de una nueva era en la metodología de desarrollo de aplicaciones, lo que permite arquitecturas de microservicios, así como el desarrollo y la entrega continuos. Docker es, con mucho, el motor de tiempo de ejecución de contenedores más dominante, con una penetración del 91% según el Informe sobre el estado del contenedor y la seguridad de Kubernetes.

La contenerización tiene muchos beneficios y, como resultado, ha tenido una amplia adopción. Gartner predice que para 2023, el 70% de las organizaciones ejecutarán tres o más aplicaciones en contenedores en producción. Los patrones de aplicación de contenedores, Kubernetes y microservicios son tres de los principales impulsores de la innovación de TI empresarial y la transformación digital. Las empresas han adoptado estas tecnologías por sus ventajas en el desarrollo y la implementación de aplicaciones.

Sin embargo, la creación de aplicaciones con contenedores Docker también presenta nuevos desafíos y riesgos de seguridad. Un único contenedor de Docker comprometido puede amenazar a todos los demás contenedores, así como al host subyacente, lo que subraya la importancia de asegurar Docker.

La protección de Docker se puede clasificar libremente en dos áreas:

  • Asegurar y fortalecer el host para que una infracción del contenedor no conduzca también a una infracción del host
  • Asegurar y fortalecer los contenedores Docker durante las fases de compilación e implementación y proteger sus contenedores Docker durante el tiempo de ejecución.

Para ayudar a los administradores de sistemas y aplicaciones, especialistas en seguridad, auditores, mesa de ayuda y personal de implementación de plataformas que planean desarrollar, implementar, evaluar o asegurar soluciones que incorporen la tecnología Docker 1.6 o posterior, el Center for Internet Security (CIS) ha lanzado su primera configuración de seguridad punto de referencia para Docker 1.6, que hace más de 80 recomendaciones para configurar y operar Docker en entornos de producción. El punto de referencia se creó por consenso con representantes de Docker, VMware, Cognitive Scale, International Securities Exchange, Rakuten y CIS.

El punto de referencia CIS para Docker 1.6

El índice de referencia CIS cubre ocho categorías de recomendaciones, que se cubrirán en el presente en breve. Las recomendaciones también se asignan a los controles CIS para permitir la coherencia entre estas mejores prácticas.

  1. Configuración de host

Esta sección cubre las recomendaciones de seguridad que debe seguir para preparar la máquina host que planea usar para ejecutar cargas de trabajo en contenedores. Asegurar el host de Docker y seguir las mejores prácticas de seguridad de su infraestructura construiría una base sólida y segura para ejecutar cargas de trabajo en contenedores. La sección incluye las mejores prácticas como:

  • Asegúrese de que Docker esté actualizado para mitigar las vulnerabilidades del software
  • Asegúrese de que se haya creado una partición separada para los contenedores para evitar que el directorio / var / lib / docker se llene rápidamente y que tanto Docker como el host se vuelvan inutilizables.
  • Asegúrese de que solo los usuarios de confianza puedan controlar el demonio de Docker para minimizar los privilegios administrativos y usar cuentas administrativas solo cuando sea necesario.
  • Asegúrese de que la auditoría esté configurada para el demonio de Docker y los archivos y directorios de Docker para auditar las actividades y el uso del demonio que se ejecuta con root
  1. Configuración del demonio de Docker

Esta sección enumera las recomendaciones que alteran y aseguran el comportamiento del demonio de Docker. La sección incluye las mejores prácticas como:

  • Asegúrese de que el tráfico de red esté restringido entre contenedores en el puente predeterminado. Si no lo hace, podría dar lugar a una divulgación de información no intencionada y no deseada a otros contenedores.
  • Asegúrese de que Docker pueda realizar cambios en iptables automáticamente para evitar configuraciones erróneas de red que podrían afectar la comunicación entre contenedores y con el mundo exterior. Además, esto reduce la sobrecarga administrativa de actualizar iptables cada vez que agrega contenedores o modifica las opciones de red.
  • Asegúrese de que no se utilicen registros inseguros. Un registro seguro usa TLS. Un registro inseguro es uno que no tiene un certificado de registro válido o uno que no usa TLS. No se deben utilizar registros inseguros ya que presentan un riesgo de interceptación y modificación del tráfico.
  • Asegúrese de que la autenticación TLS para el demonio de Docker esté configurada
  • Habilite el soporte de «espacio de nombres de usuario» para proporcionar seguridad adicional para el sistema host de Docker al permitir que un contenedor tenga un rango único de ID de usuario y grupo que están fuera del rango tradicional de usuario y grupo utilizado por el sistema host.
  • Asegúrese de que los contenedores no puedan adquirir nuevos privilegios. Esto reduce los riesgos de seguridad asociados con muchas operaciones peligrosas porque hay una capacidad mucho menor para subvertir binarios privilegiados.
  1. Archivos de configuración del demonio de Docker

Esta sección cubre los archivos relacionados con Docker y los permisos y la propiedad del directorio. Mantener seguros los archivos y directorios que pueden contener parámetros confidenciales es importante para el funcionamiento correcto y seguro del demonio de Docker. Esto es necesario para minimizar los privilegios administrativos y usar cuentas administrativas solo cuando sean necesarias. Estos controles harán cumplir el principio de que solo las personas autorizadas deben tener acceso a la información en función de su necesidad de acceder a la información como parte de sus responsabilidades.

  1. Imágenes de contenedor y configuración de archivos de compilación

Las imágenes de base de contenedor y los archivos de compilación gobiernan los fundamentos de cómo se comportaría una instancia de contenedor de una imagen en particular. Asegurarse de que está utilizando imágenes base adecuadas y archivos de compilación adecuados puede ser muy importante para construir su infraestructura en contenedores. Las recomendaciones incluyen mejores prácticas como:

  • Ejecutar el contenedor como un usuario no root, cuando sea posible.
  • Asegúrese de que la confianza en el contenido para Docker esté habilitada. La confianza en el contenido brinda la capacidad de utilizar firmas digitales para los datos enviados y recibidos desde registros de Docker remotos. Estas firmas permiten la verificación del lado del cliente de la identidad y el editor de etiquetas de imagen específicas y asegura la procedencia de las imágenes del contenedor.
  • Asegúrese de que se hayan agregado las instrucciones HEALTHCHECK a las imágenes del contenedor. Un control de seguridad importante es el de la disponibilidad. Agregar la instrucción HEALTHCHECK a la imagen de su contenedor garantiza que el motor de Docker verifique periódicamente las instancias de contenedor en ejecución con esa instrucción para asegurarse de que los contenedores aún estén operativos.
  1. Configuración del tiempo de ejecución del contenedor

Hay muchas implicaciones de seguridad asociadas con las formas en que se inician los contenedores. Se pueden proporcionar algunos parámetros de tiempo de ejecución que tienen consecuencias de seguridad que podrían comprometer el host y los contenedores que se ejecutan en él. Por lo tanto, es muy importante verificar la forma en que se inician los contenedores y qué parámetros están asociados con ellos. La configuración del tiempo de ejecución del contenedor debe revisarse de acuerdo con la política de seguridad de la organización.

  • Asegúrese de que, si corresponde, esté habilitado un perfil de AppArmor. AppArmor protege el sistema operativo y las aplicaciones de diversas amenazas mediante la aplicación de una política de seguridad que también se conoce como perfil de AppArmor. Al habilitar esta función, se aplican las políticas de seguridad en los contenedores según se define en el perfil.
  • Asegúrese de que, si corresponde, las opciones de seguridad de SELinux estén configuradas para agregar una capa adicional de seguridad a los contenedores.
  • Asegúrese de que las capacidades del kernel de Linux estén restringidas dentro de los contenedores, porque de lo contrario pueden otorgar a un atacante con acceso a un contenedor la capacidad de crear tráfico de red falsificado.
  • Asegúrese de que no se utilicen contenedores privilegiados.
  • Asegúrese de que los directorios del sistema host sensibles, como /, / boot, / etc no estén montados en los contenedores. Si los directorios confidenciales se montan en modo lectura-escritura, es posible realizar cambios en los archivos que contienen. Esto tiene obvias implicaciones de seguridad y debe evitarse.
  • Asegúrese de que SSH Daemon (sshd) no se ejecute dentro de los contenedores, ya que aumenta la complejidad de la gestión de la seguridad.
  • Asegúrese de que el espacio de nombres de la red del host no se comparta. Seleccionar esta opción es potencialmente peligroso y podría llevar a cabo acciones no deseadas, como apagar el host de Docker. Esta opción no debe utilizarse a menos que exista una razón muy específica para habilitarla.
  • Asegúrese de que el uso de memoria para contenedores sea limitado. No tener un límite en el uso de la memoria puede generar problemas en los que un contenedor puede hacer que todo el sistema sea inestable y, como resultado, inutilizable.
  • Asegúrese de que el sistema de archivos raíz del contenedor esté montado como de solo lectura. Esta opción reduce los vectores de ataque de seguridad ya que el sistema de archivos de la instancia del contenedor no se puede manipular ni escribir a menos que tenga permisos explícitos de lectura y escritura en la carpeta y los directorios del sistema de archivos.
  • Asegúrese de que el tráfico de contenedores entrante esté vinculado a una interfaz de host específica. Esta interfaz también puede estar protegida con servicios como detección de intrusos, prevención de intrusos, firewall, equilibrio de carga, etc. para filtrar el tráfico público entrante.
  1. Operaciones de seguridad de Docker

Esta sección cubre algunos de los problemas de seguridad operativa asociados con las implementaciones de Docker. Estas son las mejores prácticas que deben seguirse siempre que sea posible. La mayoría de las recomendaciones de esta sección simplemente actúan como recordatorios de que las organizaciones deben ampliar sus mejores prácticas y políticas de seguridad actuales para incluir contenedores.

  1. Configuración de Docker Swarm

Esta sección enumera las recomendaciones que alteran y aseguran el comportamiento del Docker Swarm. Si no está utilizando Docker Swarm, las recomendaciones de esta sección no se aplican. Cuando el modo de enjambre de Docker está habilitado en una instancia de motor de Docker, se abren varios puertos de red en el sistema y se ponen a disposición de otros sistemas en la red para fines de administración de clústeres y comunicaciones de nodos. La apertura de puertos de red en un sistema aumenta su superficie de ataque y esto debe evitarse a menos que sea necesario.

  1. Configuración de Docker Enterprise

Esta sección contiene recomendaciones para proteger los componentes de Docker Enterprise, como para:

  • Configurar el servicio de autenticación LDAP
  • Utilice certificados externos y no los predeterminados, no certificados autofirmados seguros.
  • Habilite la aplicación de imágenes firmadas, lo que le brinda más control sobre la validez y el origen de sus imágenes de Docker antes de la implementación. La aplicación de imágenes firmadas puede prohibir la implementación de imágenes sin firmar, con firmas mal formadas y / o firmas comprometidas.
  • Habilite el escaneo de vulnerabilidades de imágenes contra la base de datos MITRE Common Vulnerabilities and Exposures (CVE) y NIST National Vulnerability Database (NVD).

Conclusión

Si las empresas siguen las mejores prácticas recomendadas por CIS, habrán tomado los pasos más importantes para fortalecer con éxito sus entornos Docker y proteger sus aplicaciones comerciales críticas.

Sobre el Autor: Anastasios Arampatzis es un oficial retirado de la Fuerza Aérea Helénica con más de 20 años de experiencia en la gestión de proyectos de TI y la evaluación de la ciberseguridad. Durante su servicio en las Fuerzas Armadas, fue asignado a varios puestos clave en las sedes nacionales, de la OTAN y de la UE y ha sido honrado por numerosos oficiales de alto rango por su experiencia y profesionalismo. Fue nombrado evaluador certificado de la OTAN para la seguridad de la información. Los intereses de Anastasios incluyen, entre otros, la política y la gobernanza de ciberseguridad, la seguridad ICS e IoT, el cifrado y la gestión de certificados. También está explorando el lado humano de la ciberseguridad: la psicología de la seguridad, la educación pública, los programas de capacitación organizacional y el efecto de los sesgos (culturales, heurísticos y cognitivos) en la aplicación de políticas de ciberseguridad y la integración de la tecnología en el aprendizaje. Le intrigan los nuevos desafíos, es de mente abierta y flexible. Actualmente, trabaja como redactor de contenidos de ciberseguridad para Bora y es miembro de la organización sin fines de lucro Homo Digitalis.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar