Uitgave van Bottlerocket 1.3, een distributie gebaseerd op geïsoleerde containers

De uitgave van de Linux-distributie Bottlerocket 1.3.0 is gepubliceerd, ontwikkeld in samenwerking met Amazon voor een efficiënte en veilige uitvoering van geïsoleerde containers. De tools en beheerscomponenten van de distributie zijn geschreven in Rust en worden verspreid onder de MIT- en Apache 2.0-licenties. Bottlerocket ondersteunt uitvoeringen in Amazon ECS-clusters, VMware en AWS EKS Kubernetes, evenals het creëren van willekeurige builds en edities, die verschillende orkestratietools en runtimes voor containers kunnen gebruiken.

De distributie biedt een atomisch en automatisch bijgewerkt ononderbroken systeembestand dat de Linux-kernel en een minimale systeemomgeving omvat, met alleen de componenten die nodig zijn voor het draaien van containers. In de omgeving zijn de systeembeheerder systemd, de Glibc-bibliotheek, de buildtool Buildroot, de opstartloader GRUB, de netwerkinstellingen configurator wicked, de runtime voor geïsoleerde containers containerd, de containerorkestratieplatform Kubernetes, de authenticator aws-iam-authenticator en de Amazon ECS-agent betrokken.

De tools voor containerorkestratie worden geleverd in een aparte beheerscontainer, die standaard is ingeschakeld en via de API en AWS SSM Agent wordt beheerd. De basisafbeelding heeft geen opdrachtregelinterface. server SSH en geïnterpreteerde talen (bijvoorbeeld geen Python of Perl) - hulpmiddelen voor de beheerder en foutopsporingstools zijn in een aparte hulpprogrammacontainer geplaatst, die standaard is uitgeschakeld.

Het belangrijkste verschil met soortgelijke distributies, zoals Fedora CoreOS, CentOS/Red Hat Atomic Host, is de primaire focus op het bieden van maximale beveiliging in het kader van het versterken van de systeembeveiliging tegen mogelijke bedreigingen, het bemoeilijken van het exploiteren van kwetsbaarheden in OS-componenten en het verhogen van de isolatie van containers. Containers worden gemaakt met behulp van de ingebouwde mechanismen van de Linux-kernel - cgroups, namespaces en seccomp. Voor extra isolatie wordt SELinux in de ‘enforcing’-modus in de distributie toegepast.

De rootpartitie wordt gemonteerd in alleen-lezen modus, terwijl de instellingenpartitie /etc wordt gemonteerd in tmpfs en de oorspronkelijke status herstelt na herstart. Directe wijziging van bestanden in de map /etc, zoals /etc/resolv.conf en /etc/containerd/config.toml, wordt niet ondersteund — voor het permanent opslaan van instellingen dient de API te worden gebruikt of functionaliteit in aparte containers te worden geplaatst. Voor cryptografische verificatie van de integriteit van de rootpartitie wordt de dm-verity-module ingeschakeld, en bij detectie van pogingen om gegevens op het niveau van het blokapparaat te wijzigen, wordt het systeem opnieuw opgestart.

De meeste systeemelementen zijn geschreven in Rust, dat middelen biedt voor veilige geheugentoegang, waardoor kwetsbaarheden door toegang tot vrijgegeven geheugengebieden, dereferencen van null-pointers en buffer-overflows worden voorkomen. Bij de standaardcompilatie worden de compilatiemodi ‘—enable-default-pie’ en ‘—enable-default-ssp’ toegepast om adresrandomisatie van uitvoerbare bestanden (PIE) en bescherming tegen stack-overflows via canary-tags in te schakelen. Voor pakketten geschreven in C/C++ worden bovendien de flags ‘-Wall’, ‘-Werror=format-security’, ‘-Wp,-D_FORTIFY_SOURCE=2’, ‘-Wp,-D_GLIBCXX_ASSERTIONS’ en ‘-fstack-clash-protection’ ingeschakeld.

In de nieuwe release:

  • Kwetsbaarheden in de docker-toolset en de runtime containerd (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) zijn verholpen, die verband hielden met onjuiste installatie van toegangsrechten, waardoor niet-bevoorrechte gebruikers buiten de basisdirectory konden komen en externe programma's konden uitvoeren.
  • Ondersteuning voor kubelet en pluto is toegevoegd. ondersteuning voor IPv6.
  • De mogelijkheid om een container opnieuw te starten na het wijzigen van zijn instellingen is beschikbaar gesteld.
  • De support voor Amazon EC2 M6i-instanties is toegevoegd in het pakket eni-max-pods.
  • Ondersteuning voor apparaatsfilters is toegevoegd aan open-vm-tools, gerealiseerd op basis van de Cilium-toolset.
  • Een hybride opstartmodus met ondersteuning voor EFI en BIOS is geïmplementeerd voor het x86_64-platform.
  • Versies van pakketten en afhankelijkheden voor de taal Rust zijn bijgewerkt.
  • De ondersteuning voor de aws-k8s-1.17-distributievariant, gebaseerd op Kubernetes 1.17, is stopgezet. Het wordt aanbevolen om de aws-k8s-1.21-variant te gebruiken met ondersteuning voor Kubernetes 1.21. In de k8s-varianten zijn de instellingen cgroup runtime.slice en system.slice geconfigureerd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster