Lanzamento de Bottlerocket 1.3, unha distribución baseada en contedores illados

Publicouse o lanzamento da distribución Linux Bottlerocket 1.3.0, desenvolvida coa participación de Amazon para o lanzamento eficiente e seguro de contedores illados. As ferramentas e compoñentes de control da distribución están escritos en Rust e distribúense baixo as licenzas MIT e Apache 2.0. Admite a execución de Bottlerocket en clusters de Amazon ECS, VMware e AWS EKS Kubernetes, así como a creación de compilacións e edicións personalizadas que permiten o uso de varias ferramentas de orquestración e tempo de execución para contedores.

A distribución proporciona unha imaxe do sistema indivisible actualizada atómica e automática que inclúe o núcleo de Linux e un ambiente mínimo do sistema, incluíndo só os compoñentes necesarios para executar os contedores. O ambiente inclúe o xestor de sistema systemd, a biblioteca Glibc, a ferramenta de compilación Buildroot, o cargador de arranque GRUB, o configurador de rede malvado, o tempo de execución containerd para contedores illados, a plataforma de orquestración de contedores Kubernetes, o aws-iam-authenticator e o Amazon. Agente ECS.

As ferramentas de orquestración de contedores veñen nun contedor de xestión separado que está activado de forma predeterminada e xestionado a través da API e do axente AWS SSM. A imaxe base carece de shell de comandos, servidor SSH e linguaxes interpretadas (por exemplo, sen Python ou Perl): as ferramentas administrativas e as ferramentas de depuración colócanse nun contedor de servizos separado, que está desactivado por defecto.

A diferenza fundamental con distribucións similares, como Fedora CoreOS, CentOS/Red Hat Atomic Host é o foco principal en proporcionar a máxima seguridade no contexto de reforzar a protección do sistema contra posibles ameazas, facendo máis difícil explotar as vulnerabilidades dos compoñentes do sistema operativo e aumentar o illamento dos contedores. . Os contedores créanse usando mecanismos estándar do núcleo de Linux: cgroups, namespaces e seccomp. Para un illamento adicional, a distribución usa SELinux en modo de "aplicación".

A partición raíz está montada de só lectura, e a partición de configuración /etc móntase en tmpfs e restablece o seu estado orixinal despois dun reinicio. Non se admite a modificación directa dos ficheiros do directorio /etc, como /etc/resolv.conf e /etc/containerd/config.toml. Para gardar a configuración de forma permanente, debes usar a API ou mover a funcionalidade a contedores separados. O módulo dm-verity úsase para verificar criptográficamente a integridade da partición raíz e, se se detecta un intento de modificar datos a nivel de dispositivo de bloque, o sistema reinicia.

A maioría dos compoñentes do sistema están escritos en Rust, que ofrece funcións seguras para a memoria para evitar vulnerabilidades causadas por accesos á memoria posteriores á liberación, desreferencias de punteiros nulos e desbordamentos do búfer. Cando se crea de forma predeterminada, os modos de compilación "-enable-default-pie" e "-enable-default-ssp" úsanse para activar a aleatorización do espazo de enderezos de ficheiros executables (PIE) e a protección contra desbordamentos de pila mediante a substitución canaria. Para paquetes escritos en C/C++, as marcas “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” e “-fstack-clash” son adicionalmente protección activada".

Na nova versión:

  • Corrixíronse as vulnerabilidades nas ferramentas docker e do contedor en tempo de execución (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) relacionadas coa configuración incorrecta dos dereitos de acceso, que permitían aos usuarios sen privilexios ir máis aló da base. directorio e executar programas externos.
  • Engadiuse compatibilidade con IPv6 a kubelet e pluto.
  • É posible reiniciar o contedor despois de cambiar a súa configuración.
  • Engadiuse soporte para instancias de Amazon EC2 M6i ao paquete eni-max-pods.
  • Open-vm-tools engadiu soporte para filtros de dispositivos, baseado no kit de ferramentas Cilium.
  • Para a plataforma x86_64, implícase un modo de arranque híbrido (con soporte para EFI e BIOS).
  • Versións e dependencias de paquetes actualizadas para a linguaxe Rust.
  • O soporte para a variante de distribución aws-k8s-1.17 baseada en Kubernetes 1.17 descontinuouse. Recoméndase utilizar a versión aws-k8s-1.21 con soporte para Kubernetes 1.21. As variantes de k8s usan os axustes runtime.slice e system.slice de cgroup.

Fonte: opennet.ru

Engadir un comentario