Lançamento do Bottlerocket 1.7, uma distribuição baseada em containers isolados

Foi publicado o lançamento da distribuição Linux Bottlerocket 1.7.0, desenvolvida com a participação da Amazon para executar contêineres isolados de forma eficaz e segura. O kit de ferramentas e os componentes de controle da distribuição são escritos em Rust e distribuídos sob as licenças MIT e Apache 2.0. Ele suporta a execução do Bottlerocket nos clusters Amazon ECS, VMware e AWS EKS Kubernetes, bem como a criação de compilações e edições personalizadas que permitem diferentes orquestrações e ferramentas de tempo de execução para contêineres.

A distribuição fornece uma imagem de sistema indivisível atualizada de forma atômica e automática que inclui o kernel do Linux e um ambiente de sistema mínimo que inclui apenas os componentes necessários para executar contêineres. O ambiente inclui o gerenciador de sistema systemd, a biblioteca Glibc, a ferramenta de compilação Buildroot, o carregador de inicialização GRUB, o configurador de rede perverso, o tempo de execução de contêiner isolado containerd, a plataforma de orquestração de contêineres Kubernetes, o aws-iam-authenticator e o agente Amazon ECS .

As ferramentas de orquestração de contêiner vêm em um contêiner de gerenciamento separado que é habilitado por padrão e gerenciado por meio da API e do AWS SSM Agent. A imagem base carece de um shell de comando, um servidor SSH e linguagens interpretadas (por exemplo, sem Python ou Perl) - as ferramentas administrativas e de depuração são movidas para um contêiner de serviço separado, que está desabilitado por padrão.

A principal diferença de distribuições semelhantes, como Fedora CoreOS, CentOS/Red Hat Atomic Host, é o foco principal em fornecer segurança máxima no contexto de fortalecer a proteção do sistema contra possíveis ameaças, complicando a exploração de vulnerabilidades em componentes do sistema operacional e aumentando o isolamento do contêiner. Os contêineres são criados usando os mecanismos regulares do kernel do Linux - cgroups, namespaces e seccomp. Para isolamento adicional, a distribuição usa o SELinux no modo "imposição".

A partição raiz é montada no modo somente leitura e a partição com configurações /etc é montada em tmpfs e restaurada ao seu estado original após uma reinicialização. A modificação direta de arquivos no diretório /etc, como /etc/resolv.conf e /etc/containerd/config.toml, não é suportada - para salvar permanentemente as configurações, você deve usar a API ou mover a funcionalidade para contêineres separados. Para verificação criptográfica da integridade da partição raiz, o módulo dm-verity é usado e, se for detectada uma tentativa de modificar os dados no nível do dispositivo de bloco, o sistema é reinicializado.

A maioria dos componentes do sistema é escrita em Rust, que fornece ferramentas seguras de memória para evitar vulnerabilidades causadas pelo endereçamento de uma área de memória após ela ter sido liberada, desreferenciando ponteiros nulos e saturações de buffer. Ao compilar, os modos de compilação "--enable-default-pie" e "--enable-default-ssp" são usados ​​por padrão para habilitar a randomização do espaço de endereço de arquivos executáveis ​​(PIE) e proteção contra estouros de pilha por meio da substituição de rótulo canário. Para pacotes escritos em C/C++, os sinalizadores "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" e "-fstack-clash" são adicionais incluído -proteção.

Na nova versão:

  • Ao instalar pacotes RPM, é possível gerar uma lista de programas no formato JSON e montá-la no contêiner host como o arquivo /var/lib/bottlerocket/inventory/application.json para obter informações sobre os pacotes disponíveis.
  • Os contêineres “admin” e “control” foram atualizados.
  • Versões de pacotes e dependências atualizadas para linguagens Go e Rust.
  • Versões atualizadas de pacotes com programas de terceiros.
  • Resolvidos problemas de configuração do tmpfilesd para kmod-5.10-nvidia.
  • Ao instalar o tuftool, as versões de dependência são vinculadas.

Fonte: opennet.ru

Adicionar um comentário